首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为anaconda安装(CentOS 6)构建驱动磁盘

如何为anaconda安装(CentOS 6)构建驱动磁盘
EN

Server Fault用户
提问于 2012-03-29 14:43:19
回答 2查看 9.8K关注 0票数 6

我要为蟒蛇做一个驱动盘。此磁盘将包含更新后的新笔记本电脑网卡模块,其目标是使CentOS 6.2的网络安装工作正常。我使用的是鞋匠,所以即使是启动文件本身也在网络上。我不介意安装是否完全无人值守,也不介意在安装和手动选择正确项时将USB棒与驱动程序磁盘映像连接,但我确实希望将其他所有内容保留在网络上(内核映像、initrd、kickstart文件、RPM存储库)。

我已经构建了更新的驱动程序,甚至在/usr/lib/ RPM /redhat/kmodtool的帮助下构建了一个"kmod“rpm。不幸的是,我没有找到任何关于驱动程序磁盘外观的文档。

http://www.phil.muni.cz/~letty/linuxfaq/pracovni/driver-disk-howto是我唯一能找到的链接,它描述了那些做了我做过的同样事情的人的挣扎--下载驱动程序磁盘并试图探索它们。不幸的是,CentOS 6中的格式似乎已经改变了,我能做的最好的事情就是让anaconda告诉我:“对于CentOS的这个版本,驱动磁盘是无效的。”日志本身写着“无法找到/tmp/驱动器/rpms/x86_64/repodata”,到目前为止,我还没有看到有"repodata“的驱动程序磁盘。

目前深入anaconda源代码,但我希望有人能指出我的正确方向。

EN

回答 2

Server Fault用户

回答已采纳

发布于 2012-05-09 09:56:48

毕竟,我在水蟒源上找到了我的答案。

要生成兼容CentOS 6的驱动程序磁盘,您可以使用以下布局创建一个squashfs映像(其他文件系统也可能工作,但squashfs是迄今为止最容易创建的):

  • rhdd3 --一个带有简单一行注释的文件,用于描述磁盘。
  • .rundepmod -该文件的存在告诉安装程序,它应该运行depmod以获取模块。
  • rpms/x86_64 -包含kmod RPM的可选yum存储库
  • lib/modules/2.6.32-220.el6.x86_64/... --实际的内核模块位于这里;如果驱动程序磁盘包含上游驱动程序的更新驱动程序,那么这里的目录结构应该与上游内核模块位置相匹配。当然,内核的版本应该与安装程序的版本相匹配。

由于一张图片值一千字,下面是我们用来启动最近需要更新的atl1c.ko驱动程序的笔记本电脑的驱动程序磁盘示例:

代码语言:javascript
复制
$ unsquashfs -ls driver-disk.dd 
Parallel unsquashfs: Using 2 processors
8 inodes (26 blocks) to write

squashfs-root
squashfs-root/.rundepmod
squashfs-root/lib
squashfs-root/lib/modules
squashfs-root/lib/modules/2.6.32-220.el6.x86_64
squashfs-root/lib/modules/2.6.32-220.el6.x86_64/kernel
squashfs-root/lib/modules/2.6.32-220.el6.x86_64/kernel/drivers
squashfs-root/lib/modules/2.6.32-220.el6.x86_64/kernel/drivers/net
squashfs-root/lib/modules/2.6.32-220.el6.x86_64/kernel/drivers/net/atl1c
squashfs-root/lib/modules/2.6.32-220.el6.x86_64/kernel/drivers/net/atl1c/atl1c.ko
squashfs-root/lib/modules/2.6.32-220.el6.x86_64/updates
squashfs-root/rhdd3
squashfs-root/rpms
squashfs-root/rpms/x86_64
squashfs-root/rpms/x86_64/kmod-compat-wireless-3.3_2_n-2.el6.x86_64.rpm
squashfs-root/rpms/x86_64/repodata
squashfs-root/rpms/x86_64/repodata/filelists.xml.gz
squashfs-root/rpms/x86_64/repodata/other.xml.gz
squashfs-root/rpms/x86_64/repodata/primary.xml.gz
squashfs-root/rpms/x86_64/repodata/repomd.xml
票数 9
EN

Server Fault用户

发布于 2021-06-10 00:37:24

从anaconda driverdisc.txt:

代码语言:javascript
复制
The new DriverDisc format uses simple layout which can be created on top of
any anaconda's supported filesystem (vfat, squashfs, ext2 and ext3).

/
|rhdd3   - DD marker, contains the DD's description string
/rpms
|  /i386 - contains RPMs for this arch and acts as Yum repo
|  /i586
|  /x86_64
|  /ppc
|  /...  - any other architecture the DD provides drivers for

如果您正在执行类似于inst.dd=http://10.0.0.80/e1000e.rpm的操作,则此部分至关重要:

对于用于更新驱动程序的RPM有一个特殊要求。Anaconda只选择提供“内核-模块=<运行内核version>”的RPM。

因此,您需要编辑.spec,并在顶部添加"Provides: kernel= 3.10.0-1160.el7.x86_64“或其他任何同等的安装版本。

还请注意,inst.sshd是很好的故障排除网络启动安装。见/tmp/packaging.log:

代码语言:javascript
复制
# ssh <installer-host-ip>
[anaconda root@localhost ~]# less /tmp/packaging.log

这将完成安装,但未来的内核升级可能无法获得驱动程序更新。当内核更新时,您可以在/etc/ copy /postinst.d/中添加一个挂钩,以便将驱动程序复制到更新的内核版本(假设ABI兼容)。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/374870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档