我正在 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(稳定),我没有更改任何内容并再次运行它,仍然出现相同的错误,所以我再次尝试扩大我的内存,它起作用了。
我没有意识到这一点,因为我之前已经将其从 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
成功!
答案2
我在尝试将 Debian 安装为 Proxmox VM 时也遇到了这个问题...
然而问题只是我下载了不正确的 Debian iso。当我实际需要 amd64 版本时,我下载了 i386 版本。
输入uname -m
shell,它将返回您的架构类型。