如何添加新的模塊到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
#cp /lib/modules/
(拷貝atl1e.ko 到當前目錄。)
3.###zip modules.cgz###
#find
#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/
version:
license: GPL
description: Atheros
author: Atheros Corporation, <[email protected]>
srcversion: D
alias: pci:v00001969d00001026sv*sd*bc*sc*i*
depends:
vermagic:
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
4)vi 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 ../