我正在研究加载新型视频驱动程序的 Linux 内核。我最初通过以下命令在 Linux Ubuntu 18.04(32 位)上加载了该驱动程序:
$sudo insmod myDriverName.ko myParam
此命令的结果在终端中产生“killed”。查看 dmesg(内核消息),我发现以下内容:
[ 239.265508] 大小为 67112960 的 vmap 分配失败:使用 vmalloc= 增加大小
我应该在哪里设置 vmalloc?
答案1
这里有一个很好的答案:http://thinking-electron.blogspot.com/2015/05/how-to-increase-vmalloc-size-vmalloc.html
基本上,需要通过 Grub 在启动时设置 vmalloc 值。
在 /etc/default/grub 中,将以下行:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 更改为 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash vmalloc=512M" 这会将可用的总 vmalloc 增加到 512MB,而不是 128MB(默认情况下)
设置新值后,执行以下命令$sudo update-grub
重新生成正确的 Grub 配置文件。重新启动机器并再次测试驱动程序。问题应该已经消失,驱动程序应该可以正常启动。