
システムコールを追加する作業があるため、Ubuntu 14.04でカーネル4.19をコンパイルしていますが、カーネルを起動しようとするとエラーが発生します。
Kernel panic - not syncing: System is deadlocked on memory
このメッセージが表示された後は何も起こりません
- カーネルを何度もコンパイルし、モジュールをインストールしました。以前の端末にエラーは表示されません。
- GPartedを使用して鉱山を拡張し、スワップ
/dev/sda1
領域を設定しましたが、すべての作業が完了しました。 - デフォルトのUbuntu 14.04カーネルは正常に起動できます。問題なくログインして使えます。
私が使用したコマンドは次のとおりです。
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
システムコールの場合は、次の場所に非常に単純なhelloworldを追加します
sys.c
。asmlinkage int sys_mysyscall(int arg){printk("hello %d\n",arg);return 0;}
syscalls.h
合計に追加しましたsyscall_64.tbl
。
答え1
メモリを4Gに変更し、この問題を解決しました。
Ubuntu 18.04、カーネル4.20.1(安定)をダウンロードしましたが、何も変更せずに再実行しましたが、まだ同じエラーが発生してメモリ拡張を再試行しましたが、うまくいきました
以前は1Gから2Gに変更しましたが、うまくいかなかったのでこれを実現できませんでした。今、すべてが正しいです。
使用:
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
成功!
答え2
DebianをProxmox VMとしてインストールしようとしたときにもこの問題が発生しました...
しかし、問題は単に間違ったDebian ISOをダウンロードしたということです。私は実際にamd64バージョンが必要なときにi386バージョンをダウンロードしました。
shell と入力すると、uname -m
スキーマタイプが返されます。