我按照以下说明进行操作,以便在启动后更改内核启动参数: https://wiki.archlinux.org/index.php/kernel_parameters#Hijacking_cmdline
我创建了 /root/cmdline ,但是安装时我得到:
root@linaro-developer:~# mount -n --bind -o ro /root/cmdline /proc/cmdline
mount: mount(2) failed: No such file or directory
这两个文件似乎都存在:
root@linaro-developer:~# ls -l /proc/cmdline
-r--r--r-- 0 root root 231 May 11 14:17 /proc/cmdline
root@linaro-developer:~# ls -l /root/cmdline
-r--r--r-- 1 root root 251 May 11 14:26 /root/cmdline
我在dragonboard410c上有内核为4.4.23的Debian,它是arm64
我想这样做是为了打开内置模块的调试。
答案1
由于您使用的是 drangonboard410c,我假设您使用 U-Boot 作为引导加载程序?
如果是这样,所有内核参数都在 boot.scr (或者可能是 uEnv.txt)中设置。在这种情况下,您无法覆盖 cmdline 参数并重新启动计算机。它不会持久。
请检查 /boot 是否已挂载(或者您的 eMMC / SD 卡上是否有一个可以挂载为 /boot 的小引导分区)。请告诉我们您在里面发现了什么,以便我们可以帮助您解决真正的问题。
答案2
我想这样做是为了打开内置模块的调试。
那么/proc/cmdline
用绑定安装隐藏对你没有帮助。绑定挂载/proc/cmdline
不会更改内核参数。它仅向读取的应用程序显示不同的数据/proc/cmdline
。可以将其视为在盒子上粘贴标签:它不会改变盒子中的内容。
您可以通过设置一些模块参数系统文件系统。查看下面的内容,看看您感兴趣的参数是否具有写入权限。如果是这样,那么您可以使用例如更改该值。如果该文件是只读的或未出现,则无法在运行时更改参数。即使您可以更改参数,也不能保证更改会产生任何效果:这取决于模块的编写方式。/sys/module/name_of_the_module/parameters
echo 1 >/sys/module/mymodule</em>/parameters/debug