VAIOにVAINE

PCG-Z505 Vaine Linux Install 奮戦記

Last Updated:

SONY VAIO PCG-Z505にVaine Linux 2.0 ftp版を入れました。
正確には、最近出向している会社で、「これにもLinux入れるんですよ。」って一言いったら「どれどれ」と1時間ぐらいで、インストールしてくれたのが最初です。

そのときは、結局実績のあるネットワークカードで入れてくれたような記憶が、、。それにしてもインストールなれているなーって関心しました、。ほんとに。インストールして貰った後、チェックしてみると、ネットワークが動かない、、、。システムフォントもなぜか入れなおさないとだめそう、、。

うう〜ん?おかしい、、

iLINKを認識してIntel8255xを認識しないのです。結局、このまま調べながらインストールしても、リカバリーに時間掛かるし、スワップの位置も直したくて、インストールしなおすことにしたのです。最初にやってくれた方が、簡単にやっていたので、バックアップもとらずに、気楽にパテーションも切りなおし、インストールを始めたのでした、、。初めは自作インストールCDの出来がなぜかだめで、上手くいかない、、。?はて?デスクトップではインストールできるのですが、VAIOでは動作がおかしすぎ、、。
最初は、2ndで認識しなくなるので、1st bootのメッセージにらめっこしていたら、cdのideが出てこない。コンフィグではide1が0x180,0x386に割り当てられているのですが、順にやっていったら、なぜかlilo: linux eide2=0x180,0x386で認識するようになりました。pnpドライバーとのばかしあい?ですね。(これはネットワークカードの情報収集していたら、あっちこっちのページに載っているようでした。)

でもなんで?インストール用に作成したcd-rはWin32の環境で焼いたのですが、それがだめ!とのことでした。でも、せいぜいディレクトリのシンボリックリンクが切れるぐらいで、インストールは出来るはずなのですが、、。
しょうがないので、Vine2.0のFTPバージョンが付属している雑誌を買いに走ってインストールしてみました。これで、パタパタできるかな?と期待しつつ、、、

しかし、しかし、しかし、、、、。

ビデオインターフェースも、内蔵ネットワークカードもかすりもしない、、。やっぱり、iLINKを認識してIntel8255xを認識しないのです。

うーんん。どうしたものか?、、、

/usr/lib/modulesを検索してビデオカードはsvgaで、ネットワークカードはeepro100を利用するようたな?ということは分かったのです。ビデオはXF86SetupでもXconfigureでも設定できず、しょうがないので、/etc/X11/XF86Configを直接編集してあげたら動作しました。が、ネットワークカードはやっぱり動作しない、、。

ほんとはカーネルの2.4を入れたら解決するのかもしれませんが、デストリビューションで、ネットワークカードが利用できないのも悔しいので、調べてみました。
結論からすると、eepro100の1.09rというドライバーが必要でした。しかも、呼び出しのオプションが増加しているので、モジュールの再ビルドだけではだめなようで、カーネルの再構築になりました。
インストールのへぼでなくて良かったよ、、、。

1.VAIO PCG-Z505のハードウエアデバイス

部位ベンダーデバイス名Linuxのモジュール前
VideoNeo MagicMagicMedia256AVsvga(NM2200)
NICIntelIntel8255xeepro100

2.ネットワークインターフェース

カーネルバージョン2.2.14-1vl6に付属のドライバは1.06で動作しませんでした。 カーネルのバージョンの確認は uname -rvでできます。 動作するドライバーのバージョンは1.09rです。

2.1.ドライバーの取得先

Intel PCI EtherExpress Pro 100のドライバのページ
http://www.scyld.com/network/eepro100.html
解説ページ
http://www.scyld.com/network/updates.html#rpm
対象ファイル
ftp://ftp.scyld.com/pub/network/netdriver-2.0.src.rpm
ftp://ftp.scyld.com/pub/network/eepro100-1.09r.tgz

rpmはSuSEのもの?なのか正体が良くわからないので、tgzを展開してカーネルを再構築することにしました。
(注意:最新のカーネルのパッチを当てれば動作するかもしれません。)

2.2.関連するファイル

ファイルパッケージ解説
/etc/conf.modulesVineドライバをロードするファイル
/etc/lilo.confVine,TurboLILOの構成ファイル
/etc/modules.confTurboドライバをロードするファイル
/lib/modules/2.2----/netVine,Turboドライバーを保存しているディレクトリ
/usr/src/Linux----/Documentation/networkingVine,Turboドキュメント
/usr/doc/JF/....Vine,Turbo日本語ドキュメント
/usr/src/linux/configs/kernel-xxxVine,Turbo最初から用意されているコンフィグファイル

2.3. modules.confの書式

alias <if> <driver> [<options>]
options <if|driver> <symbol>=<value>

if:eth0|eth1,,,,
driver: filename[.o]
symbol: io|irq|addr
value:0xXXXX

2.4 関連するコマンド

コマンド名解説
lsmodドライバーのインストール状況
modprobe [.o]ドライバーをロード
modprobe -c 全てのドライバーを表示
insmod [.o]ドライバーをロード
rmmod ドライバーをリムーブ
ifup インストールしたネットワークドライバーを起動
ifconfig -a ロードしている全てのデバイスを表示
netconf ネットワークの設定コマンド
uname -rv カーネルのバージョンを取得するためのコマンド
lilo [-c &tl;filename>]LILOの再構築


2.5ドライバーの取得とソースの組み込み

以下のページからeepro100-1.09r.tgzを取得 http://www.killer.iki.fi/sdb/de/html/evepro100.html 展開してソースコードを以下の手順でディレクトリにコピーします。 以下は/tmp/netに展開した場合の手順です。
cd /usr/src/linux/drivers/net
mv eepro100.c  eepro100.c.org
cp /tmp/net/*.c .
cp /tmp/net/*.h .
cp /tmp/Makefile.diff .
cp /tmp/00-README eepro100.readme
この後、Makefile.diffの内容を見て、Maikefileを書き換えます。 (たぶん行数が狂っていてそのままではpatchは動きません。)

2.6 再構築

cd /usr/src/linux
make clean
cd ..
mkdir linux-2.2.14-org
tar cvf - linux-2.2.14 |(cd linux-2.2.14-org; tar xvf -)
cd /usr/src/linux/
make xconfig
make dep
make clean
make bzImage
make modules
mv /lib/modules/2.2.14-1vl6 /lib/modules/2.2.14-1vl6-org
make modules_install
cd arc/i386/boot
cp bzImage /boot/bzImage-2.2.14-new

2.7. lilo.confの書式と設定

boot=/dev/hdaブートするデバイスの指定
map=/boot/mapマップファイルの指定
install=/boot/boot.b
promptブート指定をキー入力するためのキーワード
timeout=50タイムアウト
append="apm=on"
default=linuxデフォルトのブートセット
 
image=/boot/vmlinuz-2.2.14-1vl6.imgブートイメージ
  label=linuxブートセット名
  initrd=/boot/initrd-2.2.14-1vl6.imbデスクレスのブートイメージ
  read-only
  root=/dev/hda6ルートパテーション
設定ファイルが/etc/lilo.confなら、上記の要領で設定して、liloを実行します。
新しいカーネルを構築したときは、新しいエントリーを作成して、古いものは残します。
もしも設定ファイルが/etc/lilo.confでは無い場合はlilo -c >file<とファイルを指定するオプションを付けて実行します。
私の環境では以下のようにしました。
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
append="apm=on"
default=linux

image=/boot/vmlinuz-2.2.14-1vl6
        label=linux.old
        initrd=/boot/initrd-2.2.14-1vl6.img
        read-only
        root=/dev/hda6

image=/boot/bzImage-2.2.14-new
        label=linux
        read-only
        root=/dev/hda6

other=/dev/hda1
        label=dos

あとはliloを実行してエラーが出なかったらrebootしてみます。もちろん、ブートの時、lilo:と出てきたら、linuxとするかリターンを押します。ブートして、上手く動作しないようなら、リブートしてlinux.oldで起動して、再構築をやり直します。
カーネルにパッチを当てるときは、モジュールの対応カーネルバージョンが変わるので、ブートディスクを作成したほうが安全です。
liloを実行してエラーが出る場合は、絶対にrebootしてはいけません。


2.9 ネットワークの設定

設定するファイル
/etc/hosts
/etc/resolv.conf
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0

ifcfg-eth0の設定(アドレス固定)

   DEVICE="eth0"
   IPADDR=192.168.0.20
   NETMASK=255.255.255.0
   NETWORK=192.168.0.0
   BROADCAST=192.168.0.255
   ONBOOT="yes"
   BOOTPROTO="non"


ifcfg-eth0の設定(DHCP)

   DEVICE="eth0"
   BOOTPROTO="dhcp"
   ONBOOT="yes"

2.20 netconfの注意(/etc/hosts)

netconfを利用するとlocalhostの記述がクリアされるようです。
ローカルループバック用のアドレスなので、これが欠落すると、Xがなかなか上がってこなかったり、ローカルでログインできなくなるので、最初の行に以下の一行を追加します。
127.0.0.1       localhost               localhost.localdomain