在grub.conf
配置文件中,我可以指定内核将使用的命令行参数,即:
kernel /boot/kernel-3-2-1-gentoo root=/dev/sda1 vga=791 plasticDuck
启动给定内核后,有没有办法判断所有参数是否“正确”传递?
即没有plasticDuck
内核参数,但是:
dmesg | grep plasticDuck
只返回:
Kernel command line: root=/dev/sda1 vga=791 plasticDuck
(没有错误)
答案1
我认为没有一个命令可以列出内置模块参数及其值。如果您知道驱动程序文件的路径,您可以列出该模块的参数,例如,如果您用作ipv6.autoconf=0
内核启动参数,您可以运行:
ls -1 /sys/module/ipv6/parameters/
autoconf
disable
disable_ipv6
然后,如果指定的参数在列表中(即有效),则检查其值:
cat /sys/module/ipv6/parameters/autoconf
0
或者,在您的具体情况下 - atkbd
:
cat /sys/bus/serio/drivers/atkbd/serio0/softraw
1
按照吉尔斯波斯特,对于可加载模块,您可以用来modinfo
列出特定参数和可能的值,但这不适用于内置模块(尽管已经尝试过添加支持对于内置模块):
modinfo ipv6
modinfo: ERROR: Module ipv6 not found.
答案2
您无法判断参数是否有效。传递给内核的参数也会传递给模块(除了加载模块本身时传递的参数之外),也许你还没有加载的模块会理解这个参数。
该modinfo
命令列出了模块可以理解的参数。您可以在 中查看已加载模块的参数/sys/module/$module_name/parameteres/
。我不知道内核本身有什么类似的事情。
答案3
/proc/cmdline
文件包含传递给内核的参数。