linux内核编译笔记

说明:我现在的配置情况

内核版本:3.2.4

系统版本:archlinux

系统情况:新装的系统,好多东西都没弄好,勉强达到最基本使用要求。


第一步:配置

这个步骤算最复杂的。需要配置menuconfig。进入内核源文件目录下,输入

# make menuconfig

就可以看到配置的界面。

今天是第一次见到这个配置界面,里面的东西基本看不懂,更别提去配置了。找了个高手过来教,结果“刷刷刷”的一堆选择搞定,当然我现在是没办法这样了。

最后高手教了一个偷懒的方法


1)删除源文件目录下的.config文件,里面的都是编译内核时候使用的配置信息。我们不需要使用它

# rm .config

2)输入:

make menuconfig

linux内核编译笔记_第1张图片

图-1

linux内核编译笔记_第2张图片

图-2
进入:按照图-1到图-2,将 Enable access to .config through /proc/config.gz给选上


然后确认下是否再内核源文件目录下,是的话输入:意思就是把config.gz内部的内容重定向到.config里面

# zcat /proc/config.gz > ./.config

3)导入现有的驱动的配置情况。

使用 make localmodconfig可以导入本地驱动的配置列表


注:为了避免以后还要去弄usb驱动,所以这边可以这么做,找一个U盘插入电脑,然后输入命令:

# lsmod | grep usb
如果有结果出现,就说明本地驱动列表中有usb驱动了,然后可以拔出U盘.


接着输入命令:

# make localmodconfig


这样就可以把驱动的配置导入到配置文件夹下了。


到此配置工作完成,


第二步:编译内核镜像

1)先确定下是再内核源文件目录下,输入:

# make -j3

注: 这里可以直接使用make,加上 -j3 的意思就是,使用3个线程进行并行编译(job 3的意思),这样就可以大大提高编译速度

另:至于为什么是3,高手的解释是因为我的电脑是双核的,然后两个线程在CPU中执行,然后每次再系统调度的时候,第三个闲置的线程可以插入,这样占用CPU时间就多了。速度自然快了。是不是真的我不清楚,感觉是这样


最后生成的镜像文件在:./arch/x86/boot下有一个bzImage文件,这个就是内核镜像。


注:估计每个人电脑不同,所在路径也不会一样。可以使用find命令来查找:

# find . -name "bzImage"

2)把这个bzImage拷贝到 /boot/目录下,使用文件名可以自己定义,容易记住就行。

比如我输入的命令就是:

cp ./arch/x86/bzImage /boot/vanet.vmlinuz

这样在/boot目录下就有我们的一个内核镜像了。


第三步:制作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

这样就会再 /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一下就可以看到自己编译的内核,之后使用和以前系统没有区别。




你可能感兴趣的:(工作,ubuntu,System,Access,linux内核)