linux installer os的驱动更新
installer os的驱动更新
linux系统可以简单的分为installer OS与运行时的OS,安装阶段识别不到硬件设备大概率因为installers OS版本较低,没有驱动来识别新的硬件,可以尝试更新驱动。
安装installer OS对应的linux-headers
在系统界面进入Rescue a broken system或者在系统开始安装的时候中断,进入命令行模式,
~ # uname -r
3.2.0-23-generic
拿到版本后
apt-get install linux-headers-3.2.0-23-generic
安装完成后检查
dpkg -l|grep linux-headers
# 输出中含有下面两项即可
ii linux-headers-3.2.0-23 3.2.0-23.36 Header files related to Linux kernel version 3.2.0
ii linux-headers-3.2.0-23-generic 3.2.0-23.36 Linux kernel headers for version 3.2.0 on 64 bit x86 SMP
编译新的驱动
去 http://www.broadcom.com/site-search 搜索需要的驱动,这里使用MR Linux Driver - 07.703.05.00,下载到root目录下。
在root下创建megaraid_sas_07.703文件夹之后
tar -xf ../MR_LINUX_DRIVER_7.3-07.703.05.00.tgz
cd src
rpm2cpio ../generic_srpm/megaraid_sas-07.703.05.00-1.src.rpm | cpio -i
此时src目录下生成文件如下
drwxr-xr-x 2 root root 4096 Jan 2 15:40 ./
drwxr-xr-x 16 root root 4096 Jan 2 15:36 ../
-rw-r--r-- 1 root root 142594 Jan 2 15:40 megaraid_sas-07.703.05.00.tar.gz
-rw-r--r-- 1 root root 8049 Jan 2 15:40 megaraid_sas.spec
-rwxr-xr-x 1 root root 25 Jan 2 15:40 Module.supported*
tar -xf megaraid_sas-07.703.05.00.tar.gz
进入解压后的目录drivers/scsi/megaraid_sas,这里就是我们要编译出.ko文件的地方,在该目录下执行
make -j4 CONFIG_DEBUG_INFO=1 -C /usr/src/linux-headers-3.2.0-23-generic M=${PWD} modules
修改initrd.gz文件
首先挂载我们的iso,此时可以看到iso中的内容,但是只读的,所以将整个挂载目录复制到root下
cp -a galen/. /root/copy_mount_is/
root目录下
root@g6:~# mkdir initrd.dir
root@g6:~# cd initrd.dir/
# 将initrd.gz解压出来到initrd.dir文件夹下
root@g6:~/initrd.dir# gzip -d -c < /root/copy_mount_is/install/initrd.gz | cpio -i
# 替换.ko文件
root@g6:~# cp megaraid_sas_07.703/src/drivers/scsi/megaraid_sas/megaraid_sas.ko initrd.dir/lib/modules/3.2.0-23-generic/kernel/drivers/scsi/megaraid_sas.ko
# 将initrd.dir文件压缩回去
root@g6:~/initrd.dir# find . | cpio --create --format='newc' | gzip > ../copy_mount_is/install/initrd.gz
替换完initrd.gz之后要修改copy_mount_is目录下md5sum.txt中的校验码,先获取当前的md5校验码
md5sum initrd.gz
然后替换下图中的校验码
重新打包ISO
以上操作全部完成后,将我们的文件重新合为iso就可以了。
mkisofs -joliet-long -J -l -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -z -iso-level 4 -c isolinux/isolinux.cat -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot -o 6.1-scaler-galen-test.iso copy_mount_is