Chinaunix首页 | 论坛 | 博客
  • 博客访问: 481723
  • 博文数量: 67
  • 博客积分: 2952
  • 博客等级: 少校
  • 技术积分: 679
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-24 10:50
文章分类

全部博文(67)

文章存档

2011年(9)

2010年(36)

2009年(8)

2008年(5)

2007年(5)

2006年(4)

我的朋友

分类: LINUX

2010-01-20 16:11:51

linux下制作网卡驱动盘
  新买的Dell R410机器网卡是 Broadcom Corporation NetXtreme II BCM5716 Gigabit Ethernet, CentOS 4.4并不支持,于是手动做一个张改网卡的驱动软盘。
 
1. 下载改网卡的驱动,并在CentOS4.4上编译。产生驱动程序bnx2.ko

2. 制作modules.cgz
   modules.cgz是一个gzip-cpio文件。目录结构就是/平台/*.ko,在这里,我kernel就是2.6.9-42.EL,平台就是i686(32位系统)和x86_64(64位系统)。
2.6.9-42.EL
2.6.9-42.EL/i686
2.6.9-42.EL/i686/bnx2.ko
# find .|cpio -c -o >../modules
# cd ..
# gzip -9 modules
# mv modules.gz modules.cgz
 
3. 创建modinfo
modinfo的文件格式是这样的:
Version 0

    
     ""
除了注释行以外(以"#" 号开头),首行必须是"Version 0";
是硬件内核驱动的名称(不包含路径名也不包括扩展名)。
是硬件种类,目前仅支持网络设备和SCSI 设备,网络设备用eth 表示,SCSI/RAID类设备用scsi表示,前面必须插入tab 符或空格。
是该驱动模块的简单说明,前面也必须插入tab 符或空格,同时必须用双引导将说明内容括起来。
[root@szpxe driver]# cat modinfo
Version 0
bnx2
        eth
        "Broadcom Corporation NetXtreme II BCM5716 Gigabit Ethernet"
 
4. modules.dep
该文件用于描述本模块对其他模块的依赖关系。 本例中没有依赖关系,故该文件为空。
 
5. pcitable
该文件用于硬件设备的描述,以便用户更好的识别该硬件。这些描述信息用户可以使用命令lspci -n 列出,也可以直接查看文件/proc/bus/pci/devices。
文件格式如下:
"" ""
上述各项的表示如下:
:硬件厂商代码
:设备代码
:"硬件驱动名"
:"硬件设备驱动描述"
例如该驱动的pcitable文件内容:
[root@szpxe driver]# cat pcitable
0x14e4 0x163b "bnx2" "Broadcom Corporation NetXtreme II BCM5716 Gigabit Ethernet
 
6. rhdd
该文件是linux操作系统设备驱动软盘标志文件。文件中可以写入任何一行不以空格开头的字符串,但文件名必须是rhdd!如该驱动的rhdd内容是:
[root@szpxe driver]# cat rhdd
bnx2 driver disk
 
7. 制作软盘镜像
# dd if=/dev/zero of=bnx2.img bs=1k count=1440
# mkfs.ext2 bnx2.img
# mkdir 1
# mount -o loop bnx2.img 1
# copy modinfo,modules.cgz,modules.dep,pcitable,rhdd 到1
# cd ..; umount 1
于是driver disk镜像就是bnx2.img,启动是用linux dd加载。
参考资料:
linux下driver disk 的制作 http://blog.chinaunix.net/u/25100/showart_373565.html
 
阅读(1573) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~