感谢支持
我们一直在努力

Linux PXE中如何重新封装initrd.img

如何添加新的模块到initrd.img中:


(由于linux版本的升级,原网上已经没有一篇文档适合现在的2.6.18-128.el5的核心了,原张超文档提供的initrd-util已经无法完成initrd.img文件的解压了。有关新版本initrd.img分解见下面测试.)


一.测试环境:


主板:P5QL-VM-EPU


软件:CentOS5.3 核心版本:2.6.18.128.e15xen


主板驱动:LAN(linux-v1.0.0.7)可以看readme文档进行安装。


(安装后生成atl1e.ko)


二、解压initrd.img文件,重新封装网卡驱动。



1.#### unzip initrd.img####


#### cp $cdrom(rhel5.3) /tftpboot/images/rhel/i386/5.3/###


#cd /tftpboot/images/rhel/i386/5.3


#cp initrd.img initrd.img.old


#mv initrd.img initrd.img.gz


#gunzip initrd.img.gz


#mkdir initrd


#cd ./initrd


#cp ../initrd.img .


#cpio -iv < initrd.img


#ls


bin dev etc init modules proc sbin selinux sys tmp var


2.###unzip modules.cgz###


#cd /tftpboot/images/rhel/i386/5.3/initrd/modules



# ls


module-info modules.alias modules.cgz modules.dep pci.ids



#zcat modules.cgz | cpio -idm


#find


#ls


#cd 2.6.18-128.el5/i686


#cp /lib/modules/2.6.18-128el5xen(uname-r)/kernel/drivers/net/atl1e/atl1e.ko .


(拷贝atl1e.ko 到当前目录。)


3.###zip modules.cgz###


#find 2.6.18-128.el5/ | cpio -o -H crc > newmodules


#gzip -n -9 newmodules


#rm -rf modules.cgz


#mv newmodules.gz modules.cgz



4.###edit the module-info modules.alias modules.dep pci.ids….####


1#vi module-info


添加:


atl1e


      eth


      “ATL1E NIC driver”


保存退出。


2#vi modules.alias


   ……


alias pcmcia:m015Fc000Af*fn*pfn*pa*pb*pc*pd* airo_cs


alias pci:v00001969d00001026sv*sd*bc*sc*i* atl1e


alias pci:v00001022d00007462sv*sd*bc*sc*i* amd8111e


alias pci:v000017D3d00001681sv*sd*bc*sc*i* arcmsr


……


保存退出。


注:例如:alias pci:v00008086d00007190sv000015ADsd00001976bc06sc00i00
      表示该设备的设备编号是 0x7190,制造商编号是 0x8086,模块子系统提供商编号 0x15ad 等等,v即是代表 vendor,sv
代表 subsystem-vendor,sd代表 subsystem-device


我们可以直接从系统里得到(因为已经手动安装过了)。通过 modinfo .


[root@localhost modules]# modinfo atl1e


filename:       /lib/modules/2.6.18-128.el5xen/kernel/drivers/net/atl1e/atl1e.ko


version:        1.0.0.7


license:        GPL


description:    Atheros 1000M Ethernet Network Driver


author:         Atheros Corporation, <xiong.huang@atheros.com>


srcversion:     D7C9E6C2BF57DCDD60364C3


alias:          pci:v00001969d00001026sv*sd*bc*sc*i*


depends:       


vermagic:       2.6.18-128.el5xen SMP mod_unload 686 REGPARM 4KSTACKS gcc-4.1


parm:           TxRingSz:Transmit Ring Sizen (array of int)


parm:           RxfMemSize:memory size of rx buffer(KB) (array of int)


parm:           MediaType:MediaType Select (array of int)


parm:           IntModTimer:Interrupt Moderator Timer (array of int)


   其中:depends 是和模块相依赖的包。


3#vi modules.dep (可以从modinfo atl1e中看出没有依赖的包。)


   iscsi_tcp: libiscsi scsi_transport_iscsi scsi_mod


libiscsi: scsi_transport_iscsi scsi_mod


arcmsr: scsi_mod


epic100: mii


atl1e.ko:       (添加的内容。)


qla4xxx: scsi_transport_iscsi scsi_mod


4vi pci.ids


添加:


1969 atl1e Ethernet Franck.chen


        1026 Atl1e -100 Fast Ethernet Adapter


保存退出。


其中: 1969 制造商编号


        1026 设备编号。


4.###zip initrd.img####


#/tftpboot/images/rhel/i386/5.3/initrd


#find ./ -print |cpio -ov > initrd.img


#gzip -9 initrd.img


#mv initrd.img.gz initrd.img


#cp initrd.img ../

赞(0) 打赏
转载请注明出处:服务器评测 » Linux PXE中如何重新封装initrd.img
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏