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文件中的内容是否已经加上你新编译的内核
如果是,恭喜你,放心大胆的重启吧
重启后,就可以进入你自己编译的内核了
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文件中的内容是否已经加上你新编译的内核
如果是,恭喜你,放心大胆的重启吧
重启后,就可以进入你自己编译的内核了