wjr*_*ber 5 compiling ubuntu kernel memory deadlock
我正在 Ubuntu 14.04 上编译内核 4.19,因为我有一个添加系统调用的任务,但是当我尝试启动这个内核时出现错误:
Kernel panic - not syncing: System is deadlocked on memory
Run Code Online (Sandbox Code Playgroud)
出现此消息后没有任何反应
/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
Run Code Online (Sandbox Code Playgroud)对于系统调用,我只是在以下文件中添加了一个非常简单的 helloworld sys.c:
asmlinkage int sys_mysyscall(int arg){printk("hello %d\n",arg);return 0;}
Run Code Online (Sandbox Code Playgroud)
我已将其添加到syscalls.hand 中syscall_64.tbl。
我把内存改成4G就解决了问题;
我下载了 Ubuntu 18.04,内核 4.20.1(稳定版),我没有更改任何内容并再次运行它,仍然出现相同的错误,所以我再次尝试扩大内存,它有效。
我没有意识到这一点,因为我之前已经将其从 1 G 更改为 2 G,但是没有用,现在一切正常。
用:
wjrforcyber@wjr:~$ uname -a
Run Code Online (Sandbox Code Playgroud)
表明:
Linux wjr 4.20.1 #1 SMP Fri Jan 11 20:57:27 CST 2019 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
成功!