![如何定制 Linux 内核:修改 CONFIG_STRICT_DEVMEM](https://linux22.com/image/1582424/%E5%A6%82%E4%BD%95%E5%AE%9A%E5%88%B6%20Linux%20%E5%86%85%E6%A0%B8%EF%BC%9A%E4%BF%AE%E6%94%B9%20CONFIG_STRICT_DEVMEM.png)
我想设置CONFIG_STRICT_DEVMEM=n
并重新编译我的内核,以尝试@Oliv 在评论中所建议的我在 stackoverflow 上的问题。
我正在关注构建自己的内核ubuntu wiki 上的教程:
$ git clone git://kernel.ubuntu.com/ubuntu/ubuntu-bionic.git
$ cd ubuntu-bionic/
$ chmod a+x debian/rules
$ chmod a+x debian/scripts/*
$ chmod a+x debian/scripts/misc/*
$ fakeroot debian/rules clean
$ sudo fakeroot debian/rules editconfigs
dh_testdir;
/bin/bash -e debian/scripts/misc/kernelconfig editconfigs
Do you want to edit config: amd64/config.flavour.generic? [Y/n] Y
我到处搜索,希望找到我需要更改的变量(CONFIG_STRICT_DEVMEM
),但我没有找到。
我在互联网上找到的大多数资源都详细说明了如何编译/构建内核,但我没有找到任何关于实际进行具体更改的内容。
有人可以给我指明正确的方向吗?
编辑1:
一份文件:
./build/.config
sudo fakeroot debian/rules editconfigs
中止时创建。
$ cat ./build/.config | grep CONFIG_STRICT_DEVMEM
返回
CONFIG_STRICT_DEVMEM=y
CONFIG_STRICT_DEVMEM=y
我将这些变量设置为 n 并运行
fakeroot debian/rules binary-headers binary-generic binary-perarch
最终出现错误:
/bin/bash: gawk: command not found
debian/rules.d/2-binary-arch.mk:123: recipe for target 'install-generic' failed
make: *** [install-generic] Error 127
编辑2:
现在我正在关注不同的教程和@Oliv 的建议:
- 我安装了
gawk
- 我运行后在 git 仓库的根目录
make menuconfig
生成了一个名为 的文件。.config
- 我设定
CONFIG_STRICT_DEVMEM
从=y
到=n
- 我
make menuconfig
又跑了。 cat .config | grep CONFIG_STRICT_DEVMEM
返回# CONFIG_STRICT_DEVMEM is not set
- 现在我以 root 身份运行
make && make modules_install && make install
。
我会报告任何进一步的进展...
答案1
好的,成功了。
对于想要修改内核的人来说,这是一个通用的“秘诀”
使用
ll /proc/ | grep conf
和ll /boot/ | grep conf
找到您的配置文件。检查感兴趣的变量是如何配置的,
path_to_config | grep variable_of_interest
或者根据需要解压缩它:path_to_config.gz | gunzip | grep variable_of_interest
如果您想更改其中一个变量的值,您需要执行以下操作:
克隆包含你的内核的 git 存储库。我使用了:
git clone git://kernel.ubuntu.com/ubuntu/ubuntu-bionic.git
替换
bionic
为您的操作系统的代码名称。安装软件:
sudo apt-get build-dep linux-image-$(uname -r) && sudo apt-get install gawk
cd ubuntu-bionic/
再次用你的操作系统的代号替换bionic。使以下文件可执行:
chmod a+x debian/rules chmod a+x debian/scripts/* chmod a+x debian/scripts/misc/*
跑步
fakeroot debian/rules clean
将当前配置复制到 git 存储库的根目录中:
cp path_to_config ./.config
.config
根据您的需要进行配置。我建议设置CONFIG_DEBUG_INFO=n
和CONFIG_DEBUG_INFO_DWARF4=n
以减少编译时间并避免在编译过程中占用太多磁盘空间。跑步:
sudo su make menuconfig make && make modules_install && make install
现在请耐心等待...
就我而言,path_to_config | grep variable_of_interest
完成上述步骤后仍然返回旧配置,但内核已做出更改并且按要求工作。