システムコールを追加する割り当てがあるため、Ubuntu 14.04でカーネル4.19をコンパイルしていますが、このカーネルを起動しようとすると、エラーが発生します。
Kernel panic - not syncing: System is deadlocked on memory
このメッセージが表示された後、何も起こりません
/dev/sda1
を拡大し、スワップ領域を設定しました。私が使用したコマンド:
Sudo cp /boot/config-**** .config
Sudo make menuconfig # I did not change anything here
Sudo make -j4
Sudo make modules_install
Sudo make install
reboot
Syscallの場合、sys.c
に非常に単純なhelloworldを追加するだけです。
asmlinkage int sys_mysyscall(int arg){printk("hello %d\n",arg);return 0;}
syscalls.h
とsyscall_64.tbl
に追加しました。
私はメモリを4 Gに変更することで問題を解決しました。
Ubuntu 18.04、カーネル4.20.1(stable)をダウンロードしましたが、何も変更せずにもう一度実行しましたが、同じエラーがまだ表示されるので、メモリを再度拡大しようとしましたが、動作します。
以前に1 Gから2 Gに変更したことが原因だとは思いませんでしたが、うまくいきませんでした。
使用する:
wjrforcyber@wjr:~$ uname -a
それが示している:
Linux wjr 4.20.1 #1 SMP Fri Jan 11 20:57:27 CST 2019 x86_64 x86_64 x86_64 GNU/Linux
成功!