web-dev-qa-db-ja.com

コンパイルされたカーネル4.19が起動しない:「カーネルパニックが同期しない:システムがメモリ上でデッドロックしています」

システムコールを追加する割り当てがあるため、Ubuntu 14.04でカーネル4.19をコンパイルしていますが、このカーネルを起動しようとすると、エラーが発生します。

Kernel panic - not syncing: System is deadlocked on memory

このメッセージが表示された後、何も起こりません

boot sequence stop at deadlock error

  1. カーネルを数回コンパイルして、モジュールをインストールしました。古いターミナルではエラーは表示されませんでした。
  2. GPartedを使用して/dev/sda1を拡大し、スワップ領域を設定しました。
  3. 標準のUbuntu 14.04カーネルは正常に起動します。ログインしてスムーズに利用できます。
  4. 私が使用したコマンド:

    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
    
  5. Syscallの場合、sys.cに非常に単純なhelloworldを追加するだけです。

    asmlinkage int sys_mysyscall(int arg){printk("hello %d\n",arg);return 0;}
    

    syscalls.hsyscall_64.tblに追加しました。

2
wjrforcyber

私はメモリを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

成功!

1
wjrforcyber