Chinaunix首页 | 论坛 | 博客
  • 博客访问: 298393
  • 博文数量: 34
  • 博客积分: 2375
  • 博客等级: 大尉
  • 技术积分: 354
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-09 05:49
文章存档

2013年(1)

2012年(3)

2011年(10)

2010年(20)

我的朋友

分类: LINUX

2013-01-09 15:15:21

最近为电视台的dell r720服务器装debian的系统,发现debian系统并没有带对应的raid及网卡驱动,导致网卡及磁盘阵列无法识别,去dell及博通的官网下载相关驱动源码,在同样版本的debian系统(安装在我的虚拟机中)中编译出驱动模块,然后修改debian的系统光盘,将编译好的驱动模块添加进去,重新制作光盘,安装顺利通过。编译驱动没啥大问题,主要是头文件缺失,这个要下载对应版本的内核源码,将头文件拷贝过来即可,再有就是驱动源代码中使用的某些参数或函数在debian的内核中不被支持,这个主要是debian的内核太老的缘故,没有办法,只能根据错误提示,手动修改。

因为是第一次为系统盘添加内容,这里记录一下
1. 先将系统盘解压到目录~/debian_iso_source中,取出里边的initrd.gz,放到另一个目录中
2. 管理员登录终端,解压initrd.gz
   #gunzip initrd.gz
3. 创建临时目录,进入临时目录,进一步解压2.中解压出来的initrd文件到临时目录
   #mkdir tmp
   #cd tmp
   #cpio -i -t -F ../initrd > list
4. 添加驱动到3.解压出来的文件夹中
   4-1. 添加网卡驱动(tg3.ko)到lib/modules/2.6.32-5-amd64/kernel/drivers/net/目录下,
        若无net目录则自己建一个
   4-2. 添加raid驱动(megaraid_sas.ko)到lib/modules/2.6.32-5-amd64/kernel/drivers/scsi/目录下
5. 将添加的文件及路径记录到list文件中
6. 使用list文件重新打包回initrd
   #cpio -o -H newc -O ../initrd < list
7. 重新打包回initrd.gz
   #cd .. && gzip -c initrd > initrd.gz
8. 用新制作的initrd.gz替换debian_iso_source中的原文件
9. 用genisoimage命令将debian_iso_source重新制作成安装光盘
   #genisoimage -o /root/debian_6.0.6_amd64_Raid_BCom.iso -r -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table ~/debian_iso_source/

这个新生成的debian_6.0.6_amd64_Raid_BCom.iso既是包含网卡,raid卡驱动的系统安装镜像

BTW:附件中包含的分别是我修改好的raid及BroadCom网卡驱动源码 
     debian最新稳定版 6.0.6基于2.6.32-5内核,所以要基于该源码编译对应版本的驱动,请确保你系统      的内核版本高于2.6.32-5(低于此版本没有测试)

附源码:


阅读(5753) | 评论(2) | 转发(0) |
1

上一篇:谷歌三大核心技术(三)Google BigTable

下一篇:没有了

给主人留下些什么吧!~~

shuni92013-04-18 15:39:39

给吞掉了 ?
原有的 tg3.ko 在两个包中存在: 


一个包是:
pool/main/l/linux-2.6/linux-image-2.6.32-5-amd64_2.6.32-46_amd64.deb 

另一个包是:   
pool/main/l/linux-kernel-di-amd64-2.6/nic-modules-2.6.32-5-amd64-di_1.76+squeeze8_amd64.udeb


你是怎么处理这个问题的哪?  你使用的iso源是哪个?

shuni92013-04-17 19:52:51

hello , god_father  , 我按照你的方法实验, 并没有成功,    我使用的iso镜像为  debian-6.0.6-amd64-CD-1.iso    

解压后   drivers/  下面没有 net 这个文件夹, 所以新建了一个

安装系统时 发现, 写在 initrd.gz 中的 tg3.ko  并没有被加载,   而是加载了 光盘中原有的 tg3驱动, 这个驱动是不包含 r720这款网卡的,     这个tg3的驱动来自于  pool/main/l/linux-kernel-