ubuntu下linux内核编译与配置
- 格式:docx
- 大小:7.66 KB
- 文档页数:2
ubuntu下linux内核编译与配置
1,嵌入式概念官方版:
以 应用为中心,软硬件可裁剪,对功耗,体积和成本等有严格要求的 专业计算机系统。
2,内核编译的准备:
到官网下载内核稳定版3.7.1
清除临时文件,中间 文件和配置文件
#make clean (删除大部分产生的文件但是保持配置文件)
#make mrproper (删除所有产生的文件包括配置文件)
#make distclean (mrproper命令且 删除 编译环境和路径 )
命令执行位置:内核代码文件夹的顶层位置
3.确定目标系统的软硬件配置情况,比如说CPU的型号,网卡信号,系统将要支持的协议类型等。
4.内核配置命令:
#make config(基于文本的最为传统的配置界面,不推荐使用)
#make menuconfig(基于文本选单的配置界面,字符终端下推荐使用,不知道为什么,ubuntu下
这条命令会报错,所以就用了下一条命令)
#make xconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用)
#make oldconfig(使用已有的.config配置文件,如果只想在原来内核配置的基础上修改一些小地
方,会省去不少麻烦)
四条命令目的都是生成一个.config文件,这三个命令中,make xconfig的界面最为友好,如果你可以
使用Xwindow,你就用这个好了,这个比较方便,也好设置。如果你不能使用Xwindow,那么就使用
make menuconfig好了。界面虽然比上面一个差点,总比make config的要好多了。 选择相应的配置时,
有三种选择,它们分别代表的含义如下:
Y -将该功能编译进内核
N -不将该功能编译进内核
M -将该功能编译成可以在需要时动态插入到内核中的模块
内核中包含了许多默认的配置文件,可利用这个配置 文件做修改。
5.编译内核:
#make zImage (注意I是大写 )
#make bzImage
区别:在X86平台上,zlmage只能用于小于512K的内核;
在其它平台上没区别;
如需获取编译详细信息 ,用make bzImage V=1
编译好的内核位于arch/
*在ubuntu下实验时 将/boot下的内核复制到内核代码文件夹的顶层位置来做编译实验。
6.编译内核模块
命令#make modules
*编译内核和内核模块时花了近2个小时
7 .安装内核模块
命令#make modules _install
* 将编译好的内核模块从内核源代码目录copy到/lib/modules下;
在/lib/modules文件夹下产生了一个3.7.1的文件夹,3.7.1是我这次用到的内核版本。
8.制作init ramdisk
先介绍一下什么是RamDisk。RamDisk实际是从内存中划出一部分作为一个分区使用,换句话说,
就是把内存一部分当做硬盘使用,你可以向里边存文件。那么为什么要用RamDisk呢?假设有几个文件
要频繁的使用,你如果将它们加到内存当中,程序运行速度会大副提高,因为内存的读写速度远高于硬
盘。况且内存价格低廉,一台PC有2G已不是什么新鲜事。划出部分内存提高整体性能不亚于更换新的
CPU。何乐而不为呢?象WEB服务器这样的计算机,需要大量的读取和交换特定的文件,因此,在
WEB服务器上建立RamDisk会大大提高网络读取速度。
在进行内核编译时,需要进行制作initrd.img.在Fedora下面一般是用mkinitrd,而在Ubuntu/Debian下
是用mkinitramfs.
先进入/lib/modules目录,输入下面命令:
命令 : mkinitramfs 3.7.1 -o initrd-3.7. 1
产生initrd-3.7.1文件;
9. 安装内核 (X86平台)
1 cp arch/x86/boot/bzImage /boot/vmlinuz-3.7.1
2 cp /lib/modules/initrd-3.7.1 /boot/
3 修改/etc/grub.conf 或者 /etc/lilo.cong 这个地方在ubuntu下纠结了好久.
本文参考自国嵌视频. 2012.12.29