说明:我现在的配置情况
内核版本:3.2.4
系统版本:archlinux
系统情况:新装的系统,好多东西都没弄好,勉强达到最基本使用要求。
第一步:配置
这个步骤算最复杂的。需要配置menuconfig。进入内核源文件目录下,输入
# make menuconfig
今天是第一次见到这个配置界面,里面的东西基本看不懂,更别提去配置了。找了个高手过来教,结果“刷刷刷”的一堆选择搞定,当然我现在是没办法这样了。
最后高手教了一个偷懒的方法。
1)删除源文件目录下的.config文件,里面的都是编译内核时候使用的配置信息。我们不需要使用它
# rm .config
make menuconfig
图-1
然后确认下是否再内核源文件目录下,是的话输入:意思就是把config.gz内部的内容重定向到.config里面
# zcat /proc/config.gz > ./.config
使用 make localmodconfig可以导入本地驱动的配置列表
注:为了避免以后还要去弄usb驱动,所以这边可以这么做,找一个U盘插入电脑,然后输入命令:
# lsmod | grep usb如果有结果出现,就说明本地驱动列表中有usb驱动了,然后可以拔出U盘.
接着输入命令:
# make localmodconfig
到此配置工作完成,
第二步:编译内核镜像
1)先确定下是再内核源文件目录下,输入:
# make -j3
另:至于为什么是3,高手的解释是因为我的电脑是双核的,然后两个线程在CPU中执行,然后每次再系统调度的时候,第三个闲置的线程可以插入,这样占用CPU时间就多了。速度自然快了。是不是真的我不清楚,感觉是这样
最后我生成的镜像文件在:./arch/x86/boot下有一个bzImage文件,这个就是内核镜像。
注:估计每个人电脑不同,所在路径也不会一样。可以使用find命令来查找:
# find . -name "bzImage"
比如我输入的命令就是:
cp ./arch/x86/bzImage /boot/vanet.vmlinuz
第三步:制作ramfs。
1)先确保在内核源文件目录下,输入:
# make modules_install
具体做什么用的,我给忘记了。
在它结束的时候,会给出这么一句 DEPMOD 3.2.4-VANET-g3878406,这是一个文件夹,地方在/lib/modules/目录下,以后就是要用它来生成ramfs。
注:每个人编译环境不同,生成的名字也可能不同,最少肯定不是我这个
2)输入:
# mkinitcpio -k 3.2.4-VANET-g3878406 -g /boot/vanet.img
注:mkinitcpio是我这边装的,貌似还有别的命令也可以实现,使用方法有所不同
第四步:修改grub,这样开机才能启动。
1)grub的开机文件在 /boot/grub目录下,名字叫做menu.list
注:archlinux下面的grub使用的是System V规则。ubuntu下语法规则就不一样。忘记名字了
2)修改开启选项:添加以下内容
# (2) VANET Linux title Vanet Linux-3.2.4 root (hd0,2) kernel /boot/vanet.vmlinuz root=/dev/sda3 ro initrd /boot/vanet.img
title 开机时候显示的名称,后面可以是任何内容,不影响使用
root 对着抄吧。
kernel 开机使用的内核镜像,意思就是开机的时候使用的是/boot/目录下的vanet.vmlinuz(之前生成的,见第二步),挂载点是:/dev/目录下的sda3(每个人的情况不一样,认真选择) ro就不用管了,抄吧
initrd 开机使用的ramfs,意思就是开机时候使用/boot/目录下的vanet.img(之前生成了,见第三步)
保存退出后,就reboot一下就可以看到自己编译的内核,之后使用和以前系统没有区别。