首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将驱动程序加载到initrd

将驱动程序加载到initrd
EN

Ask Ubuntu用户
提问于 2022-10-14 13:25:22
回答 1查看 592关注 0票数 1

我对pxe部署有一个问题。我已经安装了ubuntu-20.04.5-,并将initrd和vmlinuz用于pxe。

在pxe部署中,initrd和vmlinuz已经下载并在initrd上启动,但它无法检测到我的网络设备( lan-usb-c dongle (r8152模块))丢失了。

我提取了initrd的内容,首先注意到main/lib/modules/5.4.0-125-generic/kernel/drivers/net/下的usb文件夹丢失了。(一个Ubuntu22.04 initrd有该文件夹)

所以我创建了/usb/文件夹,然后我选择了主文件夹,如果我被卡住了,我就没有main /lib/modules/5.4.0-125-泛型/build/文件夹,只有一把工具。根本就没有制造。

如何将模块安装到ubuntu-20.04.5-live initrd文件?相关模块是r8152。

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2022-11-01 22:14:40

我在20.04服务器上使用的步骤,其中包含来自ubuntu-20.04.5-live-server-amd64.isoD1文件。

展开从ISO复制的initrd initramfs文件。

代码语言:javascript
复制
mkdir expand
unmkinitramfs initrd expand/

确保特定内核的驱动程序在本地可用。linux-modules-extra-...包包含net/usb驱动程序。

代码语言:javascript
复制
apt-get -y install linux-modules-extra-5.4.0-125-generic

从本地包复制驱动程序。这会复制整个net/usb目录,但您可以进行更多的选择。

代码语言:javascript
复制
cp -r /usr/lib/modules/5.4.0-125-generic/kernel/drivers/net/usb/ expand/main/usr/lib/modules/5.4.0-125-generic/kernel/drivers/net/

创建一个新的initramfs文件。

代码语言:javascript
复制
cd expand/
pushd early  && find . | cpio -o -H newc >  ../myinitrd && popd
pushd early2 && find . | cpio -o -H newc >> ../myinitrd && popd
pushd main   && find . | cpio -o -H newc | gzip >> ../myinitrd && popd

现在您将有一个myinitrd initramfs文件,您可以在您的PXE安装程序中使用该文件。

下载驱动程序的alternate方法

可以下载和提取deb包。这可能更容易,特别是如果您没有一个20.04安装可用。

代码语言:javascript
复制
wget http://mirrors.kernel.org/ubuntu/pool/main/l/linux/linux-modules-extra-5.4.0-125-generic_5.4.0-125.141_amd64.deb
mkdir extract
dpkg --extract linux-modules-extra-5.4.0-125-generic_5.4.0-125.141_amd64.deb extract/
cp -r extract/lib/modules/5.4.0-125-generic/kernel/drivers/net/usb/ expand/main/usr/lib/modules/5.4.0-125-generic/kernel/drivers/net/

<#>注释/链接

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

https://askubuntu.com/questions/1435396

复制
相关文章

相似问题

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