ubuntu编译内核

来源:互联网 发布:安卓7.0源码 编辑:程序博客网 时间:2024/04/28 15:35
65296349

Step 1:

下载最新的(或你想要的Linux内核源码)

下载地址:www.kernel.org

可以通过uname -a命令查看当前系统内核的版本好及编译时间

得到源码后,将其解压到某个目录下

推荐解压到~/linux/ 目录下,至于为什么,等我明白了再告诉你

Step 2:

打开终端,进入源代码目录下,比如:

cd ~/linux/linux-2.6.20.1/

进入后,安全起见,先 make mrproper 一下,

以清除目录下所有配置文件和先前生成内核时产生的中间文件

接下来将要进行内核配置,这是最难也是最关键的一步

有四种方法可完成这件事情:

 
#make config

#make menuconfig

#make xconfig

#make oldconfig

我用的是第二种,但这时问题来了,运行命令后发生错误,而且一堆

最关键的错误信息是少一个库

原来,Ubuntu安装时缺少很多东西,尤其是编程方面的,需要自己通过“源”来安装

所谓“源”,不清楚,大概就相当于Windows的在线升级程序吧

Ubuntu自己带的源不全,速度慢不说,有的还连不上,所以要自己添加一些源

具体方法参见:http://wiki.ubuntu.org.cn/%E5%BF%AB%E9%80%9F%E8%AE%BE%E7%BD%AE%E6%8C%87%E5%8D%97/DapperDrake

把源设置好之后,就可以在线安装所需要的东西了

在这提醒一下使用Ubuntu的朋友:

使用源第一次进行自动更新的时候,Ubuntu里带的输入法也会更新

但这次的更新与上个版本不兼容,因此会导致输入法无法使用

我为这个问题郁闷半天,上网查很久才找到解决方法:

sudo apt-get remove fcitx
rm -R ~/.fcitx
sudo apt-get install fcitx

就是把原来的fcitx输入法卸掉,移除它在根目录下的配置文件(?好像是),然后重装

ok,言归正传,编译内核需要下面一些东西:

apt-get install libncurses5-dev  (meke menuconfig要调用的)

apt-get install libqt3-headers   (make xconfig要调用的)

上面列的不全,但你安装的时候,源会提示你,哪些包是推荐安装的

都装上就是了
如果连基本的编程库(gcc, make等)也没有的话

apt-get install build-essential

如果上面的东西都装完了,恭喜你,终于可以make menuconfig了

但先别急,相信你现在的系统正用得很爽

上网,声音,显示···什么问题都没有

但等你重新编译内核后,可能你就少些东西了,比如上不了网,声音没了等等
 

严重的连系统都进不了

为此,你最好把现在内核用的.config文件拷贝过来,当作模版

当你make menuconfig后,选倒数第二项:load config(好像是这个名字,记不清了)

把.config加载进来,这样你就能在原来内核的基础之上修改了

这时相信你只要别随便减去什么东西

编好内核后一样用得很爽

至于menuconfig里面数不清的选项都是什么意思

相信你即使很懂英文也看不太明白

但有一个选项,一般很少提到,就是如果你发现编译完之后

重启时进度条没有了

多半是因为你在Device-drivers==>Graphic ···==>Console···(路径记不清了)下有个

CONFIG_FRAMEBUFFER_CONSOLE,不能是M(动态加载),而是要×(编译进内核)

就是顺便提一下,如果你有这个问题,去找一找,呵呵
配置好后,强烈建议你把生成的.config文件备份一下

这样将来一旦有什么问题

你可以马上copy过来,在原来的基础上继续


--------------------------------------------------------------------------------

Step 3:

接下来就简单了
 

如果你人品够好,下面四个命令之后就ok了:

make clean

make -j4  (-j4是让处理器分成四个线程来编译内核,速度快,推荐CPU好的使用)

make modules_install

make install

结束后重启,就可以在启动菜单上看到新内核了

我人品不够,或者说Ubuntu太另类

居然不给我生成initrd文件

上网查,原来要用下面的命令:

make-kpkg clean (kpkg具体什么作用不懂)

make-kpkg --initrd --append to version Wing1 kernel_image kernel_headers  //这里原文有错误

应该是:(用root权限)

make-kpkg --initrd --append_to_version fly1 kernel_image kernel_headers

其中--initrd必需要,不然生成不了initrd文件

--append生成多重镜像,也就是在启动菜单里看到的选项

Wing1是你自己取的镜像的名字,必须以数字结尾,比如在这里写Wing1 //错误

镜像名字不能大写,所以改成fly1。

编号内核后,就会显示linux-2.6.20.1Wing1最后两项是生成镜像包和头文件包

make完之后,会在上一层目录看到两个deb包

用dpkg -i命令安装这两个包就好了

这个时候,一切都弄好了

可以去/boot目录下看看Vmlinuz、initrd、System.map文件是否都在

然后看看/boot/Grub/menulist文件中的内容是否已经加上你新编译的内核

如果是,恭喜你,放心大胆的重启吧

重启后,就可以进入你自己编译的内核了


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 妻子出轨水电工在线播放 老公把婆婆干怀孕 在丈夫面前被侵 中文字幕全集 部长的妻子味道中文字幕 中文字幕被水电工掠夺的妻子 妻子在厨房跟水电工 互动 妻子与水电工在线 丈夫出差妻子与水电工 樱萌子被水电工侵犯中文字幕 在丈夫的面前侵犯入侵中文字幕 好妻子在线中文字幕 前田香织侵犯中文字幕 佐佐木明希上司中文字幕迅雷 医生d淫孕妇 公公一晚上要8次 公公现在就想要白关婷中文字幕 丈夫上司侵犯系列在线 义父犯美媳嫁樱花叶菜在线播放 儿子的妻子在线中文字幕云播 老公去世公公每天晚上抱着我睡 被水电工掠夺的妻子在线播放b 佐佐木明希大嫂中文字幕全集 善良的小妻子字幕 公公在我洗碗时在厨房要了我 大嫂被肉翻了天佐佐木明希1 教师蕾丝短裙中文字幕 瓜棚里和大嫂乱禽 强睡大嫂中文字 免费 佐佐木明希 房东中文字幕 与父亲干柴烈火 中文字幕丈夫不在 9大嫂被禽翻中文字幕 侵犯你的贞洁 中文字幕 年轻的妻子在线观中文字幕 大嫂被翻天了佐佐木b希中文7 美丽的大嫂中文字幕影迅雷下载 邻居的妻子中文字幕下载 神马电影院电影中文 神马电影院理论中文 女儿的朋友5中文神马电影院 97手机2019电影院专用版中文