为 openSUSE添加 RAID 驱动(opensuse loading basic drivers)
gudong366 2025-07-13 18:34 5 浏览
概述:系统版本:opensuse11.3
initrd:系统引导内核!系统安装光盘和硬盘上的系统均需要此内核引导!
所在目录: /boot/ 下
.ko文件:驱动程序模块!所在目录‘
/initrd/lib/modules/2.6.5-override-default/initrd/’ 目录下!
1 使用linux dd 或者是(suse)按 f5 f6 进取安装驱动画面!
suse: yes 和no 是是否允许用软驱安装驱动,此软驱可以用u盘顶替! (dd if=xxx.iso 或者是xxx.img of=dev/sdd) 注意是sdd 不
是sdd1
2 在initrd 内添加
首先得到.ko文件: 方法: 使用源码进行编译
在一台机器上安装需要安装的操作系统,可以是虚拟机!
进入驱动源目录 make -c "本机内核目录" M=要安装的目的地址 modules
例如 make -c /lib/modules/内核/build M=/tmp modules
在M后边的目录找到.ko文件
3 将ko文件添加到initrd文件中
file initrd
mkdir ./suse
cd suse
cp initrd suse
gzip -dc initrd |cpio -ivd rm -f initrd
cp xxx.ko /initrd/lib/modules/2.6.5-override-default/initrd/
cd suse
find . |cpio -o -H newc |gzip -9 >/tmp/initrd
4 将 ko文件在安装系统最后一步的时候拷贝到硬盘上 !
ctrl+alt f2 切后台
挂在u盘
查看mount ,看看根分区挂在到那个目录下 ,一般是/mnt目录
拷贝u盘内的ko文件到/mnt/lib/modules/。。。。。。
#不要进入/lib目录 ,这里是系统缓存目录!
疑问 :modinfo -F alias modules/e1000e.ko | sed -e 's/^/alias /' -e 's/$/ e1000e/' >>
lib/modules/2.6.16.60-0.21-default/modules.alias
make 其他的文件干嘛用的
疑问:opensuse 因为 /dev/sda 盘符跳转问题,可能需要删除引导扇区
dd if=/dev/zero of=/dev/sdx bs=446 count=1
注意sdx没有数字
列出rpm包内容和解压rpm包内容
列出rpm包的内容:
rpm -qpl *.rpm
解压rpm包的内容:(没有安装,就像解压tgz包一样rpm包)
rpm2cpio *.rpm | cpio -div
(1)
然而,为了建立外部模块,用户必须先完成内核源代码树接口的编写。这样可以建立一些临时目录以供编译时使用。下面是一个为2.6内核构建模块的命令行。它可以从包含模块源代码目录下执行:
# make -C /usr/src/linux-2.6.1 SUBDIRS=$PWD modules
此示例命令假设用户的模块源代码和Makefile所在的目录与用户正在运行的命令中的相同。如果用户不使用POSIX命令(例如BASH),那么可以通过“SUBDIRS=`pwd`”命令,用$PWD变量代替SUBDIRS参数。这样用户就可以使用“pwd”命令识别工作目录。建立出口的命令如下所示:
#make: Entering directory `/usr/src/linux-2.6.1'
*** Warning: Overriding SUBDIRS on the command line can cause
*** inconsistencies
make[1]: `arch/i386/kernel/asm-offsets.s' is up to date.
Building modules, stage 2.
MODPOST
CC /home/wvh/timesys/2.6/testmod/testmod.mod.o
LD [M] /home/wvh/timesys/2.6/testmod/testmod.ko
#make: Leaving directory `/usr/src/linux-2.6.1'
在模块的加载方面,最主要的开机时即加载模块的档案在于:/etc/modprobe.conf
如果你有任何的新的驱动程序需要在开机的时候加载,呵呵!写入这个档案就对了!而核心的驱动程序写在哪里?就是在:/lib/modules/`uname–r`/kernel/drivers。
手动编译一些驱动程序或者是 tarball 的套件时,得到了 *.ko 这个编译成功的目标档案。这样就编译完成了,接着下来就是将编译好的模块放置在核心应该要放置的地方!
因此,我们要把模块给他直接 copy 到该目录. 完成编译之后,想要在开机的时候立即启动这个模块的对应,那么就写入/etc/modprobe.conf 当中.
(2)vmlinuz 和 vmlinux
vmlinuz是可引导的、压缩的内核,“vm”代表“Virtual Memory”。Linux 支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制,Linux能够使用硬盘空间作为虚拟内存,因此得名“vm”。
vmlinuz是可执行的Linux内核,vmlinuz的建立有两种方式:
一是编译内核时通过“make zImage”创建,zImage适用于小内核的情况,它的存在是为了向后的兼容性;
二是内核编译时通过命令make bzImage创建,bzImage是压缩的内核映像,需要注意,bzImage不是用bzip2压缩的,bzImage中的bz容易引起误解,bz表示“big zImage”,bzImage中的b是“big”意思。 zImage(vmlinuz)和bzImage(vmlinuz)都是用gzip压缩的。它们不仅是一个压缩文件,而且在这两个文件的开头部分内嵌有gzip解压缩代码,所以你不能用gunzip 或 gzip –dc解包vmlinuz。内核文件中包含一个微型的gzip用于解压缩内核并引导它。两者的不同之处在于,老的zImage解压缩内核到低端内存(第一个640K),bzImage解压缩内核到高端内存(1M以上)。如果内核比较小,那么可以采用zImage 或bzImage之一,两种方式引导的系统运行时是相同的。大的内核采用bzImage,不能采用zImage。 vmlinux是未压缩的内核,vmlinuz是vmlinux的压缩文件。
(3)initrd.img
initrd是“initial ramdisk”的简写。
initrd一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态。比如initrd- 2.4.7-10.img主要是用于加载ext3等文件系统及scsi设备的驱动。如果你使用的是scsi硬盘,而内核vmlinuz中并没有这个 scsi硬件的驱动,那么在装入scsi模块之前,内核不能加载根文件系统,但scsi模块存储在根文件系统的/lib/modules下。为了解决这个问题,可以引导一个能够读实际内核的initrd内核并用initrd修正scsi引导问题,initrd-2.4.7-10.img是用gzip压缩的文件。initrd映象文件是使用mkinitrd创建的,mkinitrd实用程序能够创建initrd映象文件,这个命令是RedHat专有的,其它Linux发行版或许有相应的命令。这是个很方便的实用程序。具体情况请看帮助:man mkinitrd
(4)
Linux操作系统中模块操作相关命令解释
lsmod 查看已经安装好的模块, 也可以查看/proc/modules文件的内容. 实际上,lsmod读命令就是通过查看/proc/modules的内容来显示模块信息的.
modinfo 显示模块信息
modprobe 不需要指定路径,它会到默认路径下寻找模块。模块也存在依赖性问题: 比如你要加载msdos.ko, 需要先加载fat.ko. modprobe查看
/lib/module/version/modules.dep得知模块的依赖关系
rmmod 卸载模块,但是内核会认为卸载模块不安全,可以添加命令强制卸载。
depmod 检查系统中模块之间的依赖关系,并把依赖关系信息存于
/lib/modules/2.6.18-1.2798/modules.dep中。 一般加载模块后,要命令行下先执行 depmod -a后,在系统加载模块时候会查看modules.dep中模块依赖及路径信息,这样子才可以成功加载需要模块。
insmod 加载模块,需要指定完整的路径和模块名字。
modprobe
[root @test /root]# modprobe [-l |-c]
[root @test /root]# modprobe modules_name<==直接加载该模块与其相依属性的模块
参数说明:
-l :列出目前系统所有的模块 ( 在 /lib/modules/`uname -r`/kernel 底下 )
-c :列出目前系统所有的模块!(更详细的代号对应表)
范例:
[root @test /root]# modprobe ip_tables <==直接加载 ip_tables.ko 这个模块
需要特别留意的是,模块全部都摆在『 /lib/modules/`uname -r`/kernel 』这个目录下,而且模块的名称都是以 *.ko 这个附档名存在,但是在实际加载模块的时候,只要写入名称即可,千万不可写入 .ko 或者是路径名称。
insmod
[root @test /root]# insmod [-fkps] module_name
参数说明:
-f :强制将模块加载,要加载不相同版本的模块时候可能会用到的参数
-k :自动在核心没有使用到该模块的时候,先清除干净!
-p :测试模块是否可以被加载,不会直接加载系统中!
-s :将一些执行讯息写到 syslog 这种登录档,而不是写到 terminal 当中!
insmod 可以读取非 /lib/modules/`uname -r`/kernel 内的模块,而且还可以为模块进行加载测试呢!您可以加上路径与完整的文件名来加载模块,加上 -p 这个参数可以验证该模块的可执行性与否!
rmmod
[root @test /root]# rmmod modules_name
参数说明:
范例:[root @test /root]# rmmod 8139too
顾名思义,呵呵!移除模块的程序啦!!使用 lsmod 得到以存在的模块之后,,然后再输入『 rmmod 模块名称』就可以移除模块!
(5) 驱动程序在内核的开关(选项)
基础知识:
make menuconfig 图形化的内核配置make mrproper -----删除不必要的文件和目录.
1 #make config(基于文本的最为传统的配置界面,不推荐使用)
2 #make menuconfig(基于文本选单的配置界面,字符终端下推荐使用)
注意:使用make menuconfig 需要安装ncurses( sudo apt-get install ncurses-dev)
3 #make xconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用)
注意:如果要用make xconfig,则要先安装libqt3-compat-headers( sudo apt-get install libqt3-compat-headers)
4 #make oldconfig(如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦)
目的都是生成一个.config文件,这三个命令中,make
xconfig的界面最为友好,如果你可以使用Xwindow,你就用这个好了,这个比较方便,也好设置。如果你不能使用Xwindow,那么就使用make
menuconfig好了。界面虽然比上面一个差点,总比make config的要好多了。 选择相应的配置时,有三种选择,它们分别代表的含义如下:
Y或者是 * --将该功能编译进内核 N--不将该功能编译进内核 M--将该功能编译成可以在需要时动态插入到内核中的模块
执行make menuconfig,就可以在Device Drivers !
Multiple devices driver support:多设备驱动支持
未测试的解决办法
把你的driver.i586.img挂载
mount -o loop driver.i586.img /mnt/dud
cd /mnt/dud
mkfs.cramfs ./ /tmp/driverupdate
把生成的driverupdate拷贝到光盘的根目录
cp /tmp/driverupdate /tmp/SLES10SP2_DVD/
然后重新生成ISO
相关推荐
- U盘文件被删怎么简单恢复(u盘里的文件被误删了怎么找回)
-
现在这个社会不是靠关系靠路子,主要还是靠实力。刘强在机关工作,人长得帅气,工作能力又强。唯独一样不好,脾气太大,动不动就发火,因为小事常和同事发生口角。一次他火大的差点把办公桌给掀翻了,领导见他野蛮的...
- 不小心删除了一些文件?9 个最佳免费硬盘恢复软件
-
恢复您曾经无意或意外删除的所有文件和数据。您是否曾经错误地删除了一个对您的工作至关重要并导致您丢失所有进度的文件?我们为您提供了一些最好的免费硬盘恢复软件,以帮助您恢复意外删除的文件,以解决您的文件删...
- Studio 中文版:数据救援神器,误删 / 分区损坏 / RAID 恢复一键找回
-
Studio中文版:数据救援神器,误删/分区损坏/RAID恢复一键找回当文件意外删除、分区损坏,或RAID阵列崩溃时,一款可靠的数据恢复工具往往能挽回关键损失。R-Studio中文版...
- 你值得拥有的11款Linux数据恢复工具
-
如果你使用的是Linux操作系统,那么你一定想知道一旦硬盘崩溃的话又该如何保存和恢复数据。其实,现在有很多Linux数据恢复工具可以让我们摆脱数据安全的困扰。小编已经为各位准备好了一些最好的Linux...
- 误删文件内容怎么恢复(误删文件内容怎么恢复回来)
-
在日常使用电脑的过程中,误删文件的情况时有发生。无论是由于操作失误还是病毒攻击,误删文件都会给我们带来不小的困扰。幸运的是,随着技术的发展,误删文件恢复已不再是难题。本文将介绍几款国内外知名的误删...
- u盘如何恢复删除的文件?推荐5款u盘数据恢复软件!
-
在日常生活与工作中,U盘作为便捷的数据存储载体,频繁用于传输和保存各类重要文件。然而,误删文件的情况却时有发生,无论是珍贵的照片、重要的工作文档,还是精心制作的视频,一旦删除,都可能带来不小的麻烦。...
- 怎么恢复删除的数据?5种有效的数据恢复方法汇总!
-
在数字化办公与生活的时代,电脑里的每一份数据都承载着重要信息。然而,一个误操作就可能导致数据被删除,无论是尚未保存的重要文档,还是珍藏多年的照片,都可能瞬间“消失”。但其实,数据删除并不意味着永久丢...
- u盘删除文件怎么找回?5个数据恢复工具汇总,助你巧妙恢复数据!
-
在日常使用U盘的过程中,误删文件的情况时有发生,重要的工作文档、珍贵的照片视频一旦消失,难免让人焦急万分。别担心,只要选对数据恢复工具,被删除的数据仍有找回的可能。下面就为你汇总5款实用的数据...
- Linux下恢复误删文件:思路+实践(linux删除如何恢复)
-
周五篮球群里有人问误删文件了怎么恢复,得知是ext4文件系统之后我推荐了ext4magic这个工具,然后又有人提到了xfs的话怎么办,正好前几天看到DaveChinner在邮件列表里提到了这个问题,...
- 苹果放大招!不用虚拟机了,Mac直接跑Linux容器,开发者效率翻倍
-
苹果这次真给开发者送福利了!今天凌晨(6月10日),苹果在官宣的Containerization框架直接炸了技术圈——Mac现在能原生运行Linux容器镜像了!这可不是虚拟机那种“套娃”方案,而是基...
- 7 款老牌经典软件,值得收藏(经典老歌软件)
-
Calibrehttps://calibre-ebook.com/Calibre是一个电脑电子书管理软件。肯定有人说了,电子书还要管理?那当然了。它的功能更强大的让你想象不到,首先它可以导入PDF,...
- 神仙级的免费开源电子书阅读器,还支持听书功能
-
神仙级的免费开源电子书阅读器,还支持听书功能,极空间部署『KoodoReader』哈喽小伙伴们好,我是Stark-C~前段时间不是给大家分享的电子书管理工具『TaleBook』嘛~,然后就有粉丝私信...
- 如何在Ubuntu系统中重置root密码(ubuntu忘记密码重置root密码命令)
-
很多人有个问题,就是喜欢把密码设置得很长很复杂,结果谁也没防住,却成功防住了自己ヽ(.ˇдˇ;)ノ对于现代人,特别是年轻人,都有过忘记密码的经历吧。在这篇文章中,我们来了解如何在Ubuntu1...
- 5款功能强大的PDF阅读器,让PDF阅读更轻松
-
分享5款功能强大的PDF阅读器,拥有丰富的PDF阅读工具,支持PDF文档划线、笔记、标记等操作,让PDF阅读更轻松!1.嗨动PDF编辑器一款实用的PDF处理软件,不仅可以阅读PDF文档,还能直接编辑、...
- 上班摸鱼利器! 免费好用的电子书阅读器,NAS轻松部署Koodo Reader
-
哈喽,大家好我是生活爱好者。笔者也是一名小说爱好者,平时用手机用某信读书,会员也开了,在家看体验也不错,但是上班的时候,在工作快速完成之后,想摸个鱼用手机就不太方便啦,作为爱折腾的人,必须要工作认真,...
- 一周热门
- 最近发表
- 标签列表
-
- linux一键安装 (31)
- linux运行java (33)
- ln linux (27)
- linux 磁盘管理 (31)
- linux 内核升级 (30)
- linux 运行python (28)
- linux 备份文件 (30)
- linux 网络测试 (30)
- linux 网关配置 (31)
- linux jre (32)
- linux 杀毒软件 (32)
- linux语法 (33)
- linux博客 (33)
- linux 压缩目录 (37)
- linux 查看任务 (32)
- 制作linux启动u盘 (35)
- linux 查看存储 (29)
- linux乌班图 (31)
- linux挂载镜像 (31)
- linux 软件源 (28)
- linux题目 (30)
- linux 定时脚本 (30)
- linux 网站搭建 (28)
- linux 远程控制 (34)
- linux bind (31)