[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:54543] d-i非対応NICを積載したPCにlennyをインストールする(長文)



有家@愛媛です。

lennyをShuttle XS35GTにインストールしました。
超小型、低電力、無音、安価という理由で購入した機械ですが、
lennyのd-iが同機のNICに対応していなかったため少し苦労しました。
この問題は、preseed fileを使うことで解決しました。
汎用性のある方法だと思うので以下に報告します。

-------------------------------------------------------------------
1) 本体      Shuttle XS35GT
   メモリー  UMAX So-DIMM DDR2-800 2GB
   外部記憶  Intel SATA SSD 40GB SSDSA2MP040G2R5

2) 最初の起動はUSB経由で行います。
   私はDebian-Liveが起動できるようにしたUSBメモリーを使用しましたが、
   Linuxを起動できて、読み書きできる媒体なら何でもよいと思います。

3) その媒体に /debian というディレクトリを作り、
   以下のようにファイルを置きます。
   isoファイルのバージョンは最新のものでなくとも大丈夫と思います。

   /debian/debian-506-i386-netinst.iso
   /debian/50/boot/initrd.gz
   /debian/50/boot/vmlinuz

   cf) debian-506-i386-netinst.iso は
   http://cdimage.debian.org/debian-cd/5.0.6/i386/iso-cd の下に、
   initrd.gzとvmlinuzは
   http://ftp.jp.debian.org/debian/dists/lenny/main/installer-i386/current/images/hd-media
   の下にあります。

4) 起動媒体に置くsyslinux.cfgまたはextlinux.cfg
  (menu.lstの場合は多少書き換えて)の中に
   以下のようなエントリー "install" を作ります。
   この場合、append行は改行せずに1行で記載します。

label install
kernel /debian/50/boot/vmlinuz
append initrd=/debian/50/boot/initrd.gz root=/dev/ram devfs=mount,dall vga=0x305 edd=off ramdisk_size=10000 debconf/priority=high debian-installer/locale=ja_JP.UTF-8 languagechooser/language-name=Japanese console-keymaps-at/keymap=jp106 preseed/file=/hd-media/debian/50/cfg/common.cfg

5) 次にJmicron NIC用のモジュールを作ります。
   ftp://driver.jmicron.com.tw/jmc2xx/Linux/jme-1.0.5.tbz2
   をダウンロードし、
   それぞれ486カーネル環境と686カーネル環境でbuildして以下のファイルを作ります。
   (486/686カーネル環境は、Debian-Liveなどでそれぞれ起動できるようにしておくと、
   何かと便利です)

   jme105_486.tgz (内容は lib/modules/2.6.26-2-486/kernel/drivers/net/jme.ko だけ)
   jme105_686.tgz (内容は lib/modules/2.6.26-2-686/kernel/drivers/net/jme.ko だけ)

   各ファイルの名称は、拡張子が tgz ならば何でもかまいません。
   これらのファイルを、起動媒体の、以下の場所に置きます。
   /debian/50/install/opt_early/jme105_486.tgz
   /debian/50/install/opt_late/jme105_686.tgz

6) 次に /debian/50/install/di_early.sh として
   ----------------------------------------------------------
   #!/bin/sh
   optdir=/hd-media/debian/50/install/opt_early
   for i in $optdir/*.tgz; do
       ( cd /; gunzip -c $i | tar xf - )
   done
   ----------------------------------------------------------

   また、/debian/50/install/di_late.sh として
   ----------------------------------------------------------
   #!/bin/sh
   optdir=/hd-media/debian/50/install/opt_late
   for i in $optdir/*.tgz; do
       ( cd /target; gunzip -c $i | tar xf - )
   done
   ----------------------------------------------------------
   という内容のファイルを作り、それぞれ実行属性を与えます。

7) preseedファイルである /debian/50/cfg/common.cfg の中に

   d-i preseed/early_command string /hd-media/debian/50/install/di_early.sh
   d-i preseed/late_command  string /hd-media/debian/50/install/di_late.sh

   という行を追加します。
   preseedファイルの内容は、以前に書いたd-u #41562とほぼ同じです。
   (lennyでは lilo-installer/skip が使えるようになりました)
   これで起動し、たとえばsyslinuxないしextlinuxの場合、プロンプト Boot: で
   install(改行)と入力すればd-iが起動し、自動的にjmeモジュールが使用され、
   XS35GTのNICが認識されます。

8) 当該パーティションから再起動した直後には以下の操作が必要です。
   # depmod -a
   # modprobe jme
   # /etc/init.d/networking restart
-------------------------------------------------------------------

上記6)7)の方法で、どんなファイルでもd-i環境に追加することが可能となり、
インストール後の環境にも任意のファイルが追加できます。
debian的ではありませんが、緊急避難の方法としては意味を持つと思います。
あと、蛇足ですが、ひととおりパッケージをインストールしたのち
-------------------------------------------------------------------
XS35GTの画面まわりはION2なので、
NVIDIAのサイトからION/Linux対応のドライバを落として
   # CC=gcc-4.1 sh NVIDIA-Linux-x86-256.53.run -a -s
として、vesaではなくnvidiaドライバを使えるようにします。
当該ドライバの現在のバージョンは256.53でした。
-------------------------------------------------------------------

ここまでが、とりあえず今までにおこなったインストール過程です。
長々と書いてしまいましたが、どなたかの参考になれば幸いです。

-- 
ariie-ehi@xxxxxxxxxx
pba00250@xxxxxxxxx
-------------------------
有家佳紀  Yoshinori Ariie