设为首页 加入收藏

TOP

Linux Kernel 2.6.37.2内核编译实战(一)
2014-11-24 07:54:03 来源: 作者: 【 】 浏览:0
Tags:Linux Kernel 2.6.37.2 内核 编译 实战

昨天因为/etc/rc.d/rc文件被我弄坏,不得不重新安装系统,安装的发行版内核用的还是2.6.18,决定要赶紧升级下内核,呵呵。话说linux2.6.37.2内核出来也已经有一段时间了,目前2.6.38还在开发当中,于是还是下个stable的,步骤如下:


1. ftp://ftp.kernel.org/pub/linux-2.6.37.2.tar.bz2获取源代码,放在/usr/src/kernel下, 并用tar解压


2. 首先看一下源目录中Documentation/Changes,看看要升级哪些软件


o Gnu C 3.2 # gcc --version
o Gnu make 3.80 # make --version
o binutils 2.12 # ld -v
o util-linux 2.10o # fdformat --version
o module-init-tools 0.9.10 # depmod -V
o e2fsprogs 1.41.4 # e2fsck -V
o jfsutils 1.1.3 # fsck.jfs -V
o reiserfsprogs 3.6.3 # reiserfsck -V 2>&1|grep reiserfsprogs
o xfsprogs 2.6.0 # xfs_db -V
o squashfs-tools 4.0 # mksquashfs -version
o btrfs-progs 0.18 # btrfsck
o pcmciautils 004 # pccardctl -V
o quota-tools 3.09 # quota -V
o PPP 2.4.0 # pppd --version
o isdn4k-utils 3.1pre1 # isdnctrl 2>&1|grep version
o nfs-utils 1.0.5 # showmount --version
o procps 3.2.0 # ps --version
o oprofile 0.9 # oprofiled --version
o udev 081 # udevinfo -V
o grub 0.93 # grub --version
o mcelog 0.6
o iptables 1.4.2 # iptables -V


Changes中包含了大多数软件包的下载地址,按找版本要求安装即可


我需要升级e2fsprogs,reiserfsprogs,xfsprogs,squashfs-tools,btrfs-progs,mcelog,iptables


安装iptables的时候,要把/sbin中的iptables*和ip6tables*删除,并将/usr/local/sbin中的相应文件复制到/sbin中


3.好,安装完需要的软件包后,可以开始进入配置内核的界面了


#make mrproper 确保源代码目录下没有不正确的.o文件


#make menuconfig 根据自己硬件配置,不确定的选择默认吧


需要注意的是,在General setup --->


[*] enable deprecated sysfs features to support old userspace too


[*] enabled deprecated sysfs features by default


要选中,否则会因为mkinitrd和nash的版本问题出现如下错误:


mount: could not find filesystem ‘/dev/root’
setuproot: moving /dev failed: No such file or directory
setuproot: error mounting /proc: No such file or directory
setuproot: error mounting /sys: No such file or directory
switchroot: mount failed: No such file or directory


#make dep 建立编译时需要的从属文 件,没有编译过的代码可以跳过


#make clean 这里也可以跳过


#make


漫长的等待中...


#make modules (编译模块)


#make modules_install


#make install(安装内核)


[root@localhost linux-2.6.37.2]# make install
sh /usr/src/kernels/linux-2.6.37.2/arch/x86/boot/install.sh 2.6.37.2 arch/x86/boot/bzImage \
System.map "/boot"


4.把新镜像文件放到tmp中


# cp /boot/initrd-2.6.37.2.img /tmp


在tmp中新建一个文件夹


# mkdir /tmp/newinitrd


# cd /tmp/newinitrd


然后解压initrd-2.6.37.2.img到newinitrd文件夹


[root@localhost newinitrd]# zcat ../initrd-2.6.37.2.img | cpio -i
11260 blocks
[root@localhost newinitrd]# ls
bin dev etc init lib proc sbin sys sysroot


用vim修改init文件


其中:


echo "Loading dm-region-hash.ko module"
insmod /lib/dm-region-hash.ko
echo "Loading dm-region-hash.ko module"
insmod /

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇ARM+Linux驱动----点亮开发板的LED 下一篇利用Java反射解决Android系统方法..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·在 Redis 中如何查看 (2025-12-26 03:19:03)
·Redis在实际应用中, (2025-12-26 03:19:01)
·Redis配置中`require (2025-12-26 03:18:58)
·Asus Armoury Crate (2025-12-26 02:52:33)
·WindowsFX (LinuxFX) (2025-12-26 02:52:30)