linux源码编译

linux 源码编译

下载linux源码

先安装环境和依赖

sudo apt-get install libncurses5-dev libncursesw5-dev
sudo apt-get install ncurses-dev
apt-get install flex
apt-get install bison
sudo apt-get install libelf-dev
sudo apt-get install libssl-dev
sudo apt-get install dwarves
sudo apt-get install zstd

内核配置

make menuconfig

不做任何改变,保存退出

开始编译

.config 文件以下要修改 10618行左右,对应的4行引号内容清空

CONFIG_MODULE_SIG_KEY="cert/signing_key.pem" #这个可能不需要删除,删除了反而可能出其他问题make modules_install时报错
CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem" #这个要删除
CONFIG_SYSTEM_BLACKLIST_HASH_LIST="" #这个要删除
CONFIG_SYSTEM_REVOCATION_KEYS="" #这个要删除

改为

CONFIG_MODULE_SIG_KEY="" #这个可能不需要删除,删除了反而可能出其他问题make modules_install时报错
CONFIG_SYSTEM_TRUSTED_KEYS="" #这个要删除
CONFIG_SYSTEM_BLACKLIST_HASH_LIST="" #这个要删除
CONFIG_SYSTEM_REVOCATION_KEYS="" #这个要删除

开始编译,编译时间半个小时以上

make -j8

使用编译好的内核模块(如果只是编译驱动,不用进行以下步骤)

sudo make modules_install #将编译生成的内核模块复制到指定的系统目录中,以供内核使用
make -j4 #需要再编译一下
sudo make install #这个命令会将新的内核设置为默认启动内核

这会将编译后的内核和模块复制到系统文件夹中,并更新启动加载程序以引导新内核。在这个过程中会遇到一系列错误,下面是我遇到的错误及解决方案,希望能给大家帮助

运行sudo make modules_install报错:

$ sudo make modules_install
sed: can't read modules.order: No such file or directory
make: *** [Makefile:1479: __modinst_pre] Error 2

解决方案:

sudo depmod
sudo make modules_prepare
dpkg --list | grep linux-image #列出已安装内核版本

rc表示软件包已被卸载但未完全清除;
ii表示软件包已经安装;

vim /etc/default/grub #修改默认启动的内核版本

修改GRUB_DEFAULT选项设置为所需的内核版本编号,此步骤也可直接GRUB设置

reboot

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值