歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux PXE中如何重新封裝initrd.img

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

日期:2017/2/28 16:30:01   编辑:Linux教程

如何添加新的模塊到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, <[email protected]>

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

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 ../

Copyright © Linux教程網 All Rights Reserved