linux installer os的驱动更新

Posted Galen Tong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于linux installer os的驱动更新的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu Nvidia driver install

实验四

centos linux编译安装Ralink无线网卡驱动出现错误,iinstall: 无法获取"rt3090sta.ko" 的文件状态(stat):

[架构之路-36]:目标系统 - 系统软件 - Linux OS硬件驱动程序架构中隐藏的六大“分离”的思想与主要的驱动程序框架案例分析

os.path.isfile() 为 linux smb 网络驱动器上的文件返回 false

install_name_tool 更新可执行文件以在 Mac OS X 中搜索 dylib