LoginSignup
6
6

More than 5 years have passed since last update.

Debian Wheezyのnetboot(PXE boot)インストーラにファームウェアを追加したい

Posted at

PXEブートによるネットワークインストールはディスクレスのインストールが簡単にできて便利なのであるが、CD/DVDと違ってファームウェアが含まれてないことがあって、ディスクやNICが認識されなくて困ることがある。

こういうとき、基本的には下記ページを参考にする。

debパッケージをインストーラに付属させる

debパッケージをダウンロードし、cpio.gz形式で固めたあと、initrd.gzに結合する。

# paxコマンドがなければインストールしておく
sudo aptitude install pax

mkdir -p /tmp/initrd_firmware
cd /tmp/initrd_firmware
mkdir firmware # ファームウェアのdebパッケージを入れるディレクトリをつくる

# wgetでダウンロードしてくる
cd firmware
wget http://ftp.jp.debian.org/debian/pool/main/f/firmware-free/firmware-linux-free_3.2_all.deb
cd .. # ひとつ上の階層に戻る

# firmware.cpio.gzを作成
pax -x sv4cpio -w firmware | gzip -c >firmware.cpio.gz

# initrd.gzに結合する
cd /var/lib/tftpboot/debian-installer/amd64
cat initrd.gz $FWTMP/firmware.cpio.gz > initrd_nonfree.gz

どのdebパッケージが必要かわからないけど、とりあえず入れたい

標準で付属していないパッケージを固めた非公式アーカイブがあるので、これを使うと、non-freeのドライバが大量に入る。

# paxコマンドがなければインストールしておく
sudo aptitude install pax

mkdir -p /tmp/initrd_firmware
cd /tmp/initrd_firmware

mkdir firmware
wget http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/squeeze/current/firmware.tar.gz
tar -C firmware -zxf firmware.tar.gz
pax -x sv4cpio -s'%firmware%/firmware%' -w firmware | gzip -c >firmware.cpio.gz

# initrd.gzに結合する
cd /var/lib/tftpboot/debian-installer/amd64
cat initrd.gz /tmp/initrd_firmware/firmware.cpio.gz > initrd_nonfree.gz

pxelinux.cfgを書き換えるのを忘れないようにする

忘れるとあれ?、ってなる。

label wheezy_nonfree
    kernel wheezy-installer-c600/amd64/linux
    append auto=true interface=auto (..snip..) initrd=wheezy-installer/amd64/initrd_nonfree.gz  -- quiet
6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6