第二章 构造和运行模块(1)

第二章开始进入到实际的编程了。第一个测试代码:Hello World。

第一件事就是建立测试系统。

我安装的系统是rhel-5.1-server-i386-dvd.iso,你可以到网上下载其他版本。里面自带的内核版本是2.6.18-53.e15。我觉得不爽,在kernerl.org镜像网站上下了linux-2.6.29.tar.bz2安装包,准备安装自己的内核。

(1)将其解压到/home目录下

#tar xjvf linux-2.6.29.tar.bz2

#cd linux-2.6.29

# pwd

  /home/linux-2.6.29

(2)清理内核中间文件,配置文件

#cd linux-2.6.29

#make distclean

(3)选择参考配置文件

              使用正在运行的RHEL5的内核配置作为参考

#cp /boot/config-2.6.18-53.el5 .config

解释一下,这里是将当前内核运行的配置文件拷贝出来作为我们的配置文件。

(4)配置内核

#make menuconfig

这里使用默认的配置即可,退出。

(5)编译内核

#make bzImage

一片片字符飘过……..,完成后,生成的内核映像bzImage位于arch/x86/boot/目录下。

(6)编译和安装内核模块

#make modules

#make modules_install

又是一片片字符飘过…….,完成安装后,编译好的内核模块会从内核源代码目录拷贝至/lib/modules下,可以看到在目录/lib/rnodules生成了2.6.29目录。

(7)制作init ramdisk

#cd /home

#mkinitrd initrd-2.6.29 2.6.29

完成操作后,在当前目录下会生成initrd-2.6.29

(8)安装内核

       Linux启动时,会从/boot目录下来寻找内核文件与init ramdisk,所以需要将内核和init ramdisk拷贝至/boot目录下。

#cp /home/linux-2.6.29/arch/x86/boot/bzImage /boot/vmlinuz-2.6.29

#cp /home/initrd-2.6.29 /boot/

(9)修改grub配置文件

   为了让grub在启动时能提供一项我们自己制作的linux内核的选择项,需要修改grub的配置文件

#vim /etc/grub.conf

在文件的末位添加:

title My Linux (2.6.29)

       root(hd0,0)

       kernel /vmlinuz-2.6.29 ro root=/dev/VolGroup00/LogVol00 rhgb quiet

       initrd /initrd-2.6.29

哈哈,结束了。。。重启系统,就可以在grub菜单里看到我们自己制作的一项:

My Linux (2.6.29)

掌声响起来。。。。

进入linux系统,在终端下输入:

#uname –r

出现:2.6.29 ,证明刚才启动的linux系统就是运行在2.6.29内核版本上。

 

好的,自己的系统搭建起来了,下面可以进入驱动模块的编写和测试了。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值