问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用ubuntu编译linux内核

发布网友 发布时间:2022-05-10 18:41

我来回答

1个回答

热心网友 时间:2023-10-22 10:47

1、在http://www.kernel.org/上下载最新的内核源代码linux-2.6.33.1.tar.bz2,放在/liqiong/Linux内核 目录下,liqiong是Linux OS的第一个用户名。
2、进入Linux内核源码所在的目录(cd Linux内核),解压该内核代码到/usr/src下:
sudo tar -xjvf linux-2.6.33.1.tar.bz2 -C /usr/src
3、进入Linux内核源码解压后的目录/usr/src/linux-2.6.33.1(cd /usr/src/linux-2.6.33.1)
4、sudo make mrproper 净化解压后的源代码
5、sudo make menuconfig 对内核选项进行配置
在配置过程中会发生如下错误:
*** Unable to find the ncurses libraries or the
*** required header files.
*** 'make menuconfig' requires the ncurses libraries.
***
*** Install ncurses (ncurses-devel) and try again.
***
make[1]: *** [scripts/kconfig/dochecklxdialog] 错误 1
make: *** [menuconfig] 错误2
解决办法:
(1)cd / 进入根目录后,在终端输入:sudo apt-get install ncurses
信息:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
现在没有可用的软件包 ncurses,但是它被其它的软件包引用了。
这可能意味着这个缺失的软件包可能已被废弃,
或者只能在其他发布源中找到
E: 软件包 ncurses 还没有可供安装的候选者
(2)然后接着在终端输入:sudo apt-get install libncurses*
(3)再cd /usr/src/linux-2.6.33.1进入内核所在目录,再次输入sudo make menuconfig就好了!
6、对于配置可选择General Setup或者选择其他的自定义选项保存后退出。
7、sudo make dep 建立模块间的依赖信息
8、sudo make clean 删除配置时留下的一些不用的文件
(7、8两步可能对于一些PC没有作用)
9、sudo make bzImage 编译内核,内核较小时可以用make zImage
10、sudo make moles 编译内核模块
当然,在编译内核时,可通过make-j<n>来加速内核的编译,n一般等于CPU数量的两倍。单核,n=2;双核,n=4.即执行sudo make -j4就可以编译了!
11、sudo make moles_install 安装内核模块
12、sudo make install 安装内核
13、cd / 后在终端输入:sudo mkinitramfs 2.6.33.1 -o /boot/initrd.img-2.6.33.1-generic
14、到此为止,构建内核完毕,第十二步把内核映象和System.map拷贝到/boot/下
#sudo cp /usr/src/linux-2.6.33.1/arch/i386/boot/bzImage /boot/vmlinuz-2.6.33.1-generic
#sudo cp System.map /boot/System.map-KERNEL_VERSION
#sudo ln -s /boot/System.map-KERNEL_VERSION /boot/System.map
15、
(1)修改grub配置文件
在终端输入:sudo update-grub2,就会把刚才编译的内核加入了Grub;(此时就可以重启了,重启后在Grub启动项里多了Ubuntu, Linux 2.6.33.1-generic)
若还需修改(在Ubuntu10.04中没有采用menu.lst,而是用的grub.cfg(/boot/grub/)),则修改grub.cfg就可以了,
在终端中输入:sudo gedit /boot/grub/grub.cfg 用root账户进入grub.cfg并编辑
(或用sudo chmod +w /boot/grub/grub.cfg改变grub.cfg的权限后在进行编辑)
如将Grub中的menuentry "Ubuntu, Linux 2.6.33.1-generic"{...}修改为menuentry "Ubuntu, Linux 2.6.33.1-liqiong"{...}(Linux 2.6.33.1-generic是我们刚才编译的内核)
(2)修改default变量
在/boot/grub/grub.cfg中,设置set default="【某个数字】"(设置Grub启动项里的默认启动项)
在Grub启动项里,从0数起,我的XP在第10项,所以set default="10",即XP就是默认的启动项了。
最后重启即可。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
招商银行的美元天添金怎么样? 天添美蒸馒头为什么开裂呢 上海食堂送菜 邮政跨地区取款手续费多? 谁能告诉我邮政储蓄卡跨省取钱要不要收费啊? 自贡市龙盛世纪仿真模型制造有限公司公司简介 学PS真的很难吗 红烧萝卜牛筋 微信怎么转发公众号部分内容 转发公众号部分内容方法 微信公众号内的视频如何下载?一个F12搞定 动火证里的动火措施应填什么内容 公共娱乐场所的消防安全应由什么人负责 燃气电厂一级动火工作票消防监护人应具备什么条件 动火作业监护人必须要帮提灭火器铺设防火布吗 消防监护人应有的责任有哪些 动火工作时消防监护人的责任 二级动火票中消防监护人和工作负责人是同一个人签字吗 刚注册的微信可以改吗? 可以改掉吗? 在知苗易约上预约成功,又点取消了,怎么办? 请问设置了以后能改吗? 消防监护人的安全职责 微信可以改吗? 消防监护人主要安全责任包括哪些内容 易约出行司机可以提现到银行卡吗 什么是消防监护人? 已经设置过的还能再更改吗?我想修改,和前任分了,是他的名字,所以我要改_百度问一问 消防监护人的安全职责是什么 已经设置后怎样更改 已经设置过的还能再更改吗? Linux内核源码如何编译?简单告诉我过程 小金猪年金险有必要买?贵吗? 可以改吗? 已设置过怎么改 可以更改吗? 设置过的可以改吗 已设置过如何更改? 设置了,有办法修改吗? 可以更改吗 如何修改已经设置了的 设置过。还可以改吗 设置后的能改吗? 设置后的能改吗? 能改吗怎么改掉 我设置过一次了,还能改第二次吗?怎么改 已经设置过的还能再更改吗? 已经设置后怎样更改 已经设置过的还能再更改吗?我想修改,和前任分了,是他的名字,所以我要改_百度问一问 微信可以改吗? 请问设置了以后能改吗?