如何创建具有第三方网络驱动程序的 Debian netinst 安装程序?

如何创建具有第三方网络驱动程序的 Debian netinst 安装程序?

我想在一台机器上安装 Debian,但 squeeze netinst 模块中的内核和模块不支持网络驱动程序。我可以构建一个可以运行的内核模块,但是:

  1. 我如何获取用于 debian 安装程序的相同内核头,以便我可以构建兼容的模块?
  2. 如何让安装程序自动了解该模块?

目前,我使用的是 hd-media 映像,因此我有一个采用 FAT16 文件系统的 USB 驱动器,其中有 .iso 安装程序映像。因此,一旦模块构建完成,将其放在此驱动器上就相当简单了,但是我如何让 Debian 安装程序以自动方式加载它呢?

答案1

这是最简单的,如果使用hd-media 安装方法必须从 Debian FTP 服务器上一个不起眼的位置下载。这将为您提供 FAT16 文件系统的安装媒体,比 ISO 更容易修改。

Syslinux 从这个 FAT16 文件系统运行并从中解压 initrd.gz,这样您就可以运行 Debian 安装程序。安装过程的前几个步骤是扫描硬盘设备,寻找包含适当 .iso 的设备,一旦找到,安装就会正常进行。

可以根据主 Squeeze 存储库中的内核头文件构建内核模块。

包含自定义驱动程序的一种方法是修改 initrd.gz,它将成为安装程序的根文件系统。不过这有点麻烦。

一种更简单的方法是将自定义内核模块放入 FAT16 文件系统,然后使用预播种让安装程序在安装过程的早期运行一个脚本,该脚本将内核模块从 FAT16 文件系统(将安装在 /hd-media 上)复制到根文件系统(从 initrd.gz 创建的 ramdisk)。例如,我在 preseed.cfg 中使用了这个:

d-i preseed/early_command string /hd-media/early_command

early_command并在安装媒体上创建脚本:

#!/bin/sh
kernelmoddir="/lib/modules/2.6.32-5-amd64/updates"
mkdir "$kernelmoddir"
cp /hd-media/tg3.ko "${kernelmoddir}/tg3.ko"

相关内容