私のメモです。参考になればいいですが、間違っていたらごめんなさい。
また、このページはMP-XP5220でブート可能なCD-ROMを持っている
ことを前提に書かれてます。
--------------------------------------------------------
インストール時の注意点
VineLinux3.0
のインストーラで使っているカーネル(2.4.26)は、標準のFrame Bufferが有効&まともに動くので
Debianのwoodyのようにインストール画面の下が
切れるということはありません。しかしBIOSでLCD Expansionが有効になっている場合、
グラフィカルインストール中にXが起動したとたん、Xがちらつきながら4つ表示されて
しまい非常に見にくいです。インストール時はBIOSの”LCD Expansion”は無効にしておきましょう。
BIOSの設定画面は、起動画面("Victor"と表示されている時)でAlt+F2を押すと表示されます。
インストール
特に難しいことは無いと思います。
- リカバリ領域のバックアップ
プリインストールのWindowsXPとデュアルブートのするならば、
後から使うことを考えてハードディスク先頭にあるリカバリ領域を何とかして
バックアップを取ります。
僕は、Drive Image for CD-ROMを使って復元用の起動CD-ROMを作成しました。
CD-Rは4枚必要です。
WindowsXPを削除したところにLinuxを入れるならば、この工程は不要かも知れません。
- BIOSの設定
起動画面("Victor"と表示されている時)でAlt+F2を押してBIOSの設定を表示させます。
Advancedタブの一番下にあるLCD Expansionを”無効(Disabled)”にしておきます。
また、同じAdvancedタブの中程にあるPCMCIA Locked for CD-ROMを”有効(Enabled)”にします。これで
PCMCIAのCD-ROMから起動できるようになります。
- インストールCDの入手
- パーティションの作成
この工程は必須ではありません。VineLinuxのインストール中に
パーティションを変更できるからです。
僕はいつもの癖でVineLinxのインストールを開始する前に、パーティションを変更できる
ツールであらかじめLinuxのルートとスワップのパーティションを切りました。よく使うツールは
RamFloppyで、
CD-RWに焼いて
RamFloppy
を起動し、fdiskで編集しました。
RamFloppyは1CD Linuxではありませんが、
Bootable CD Versionを
ブータブルイメージとして焼くと1CD Linuxになります。CD-R焼きソフトがブートイメージ
ではなくブートFloppyを要求する場合(WinCDRなど)、RamFloppyの入ったフロッピーを
読み込ませれば同じように1CD Linuxになります。
- VineLinuxのインストール
VineLinux3.0が入ったインストールCDで起動し、後はインストーラに従っていくだけです。
但し、後述の
カーネルの再構築をする場合、空きディスクスペースが500MB以上無いと
実行できないようです。その場合は、最小インストールをします。
また、インストールの途中、Xが起動した後は800x600の画面でインストールが進みます。
Xをインストールすると終わりの方でXの設定があり、1024x600を選択するとインストール後は1024x600になります。
(モニタは未検出のままでOKのようです)
ここでは最小インストールをして、付属のCD-ROMをPCMCIAデバイスとして
使うことを前提に話を進めます。PCMCIAデバイスを使用しない場合、
インストール後の設定
から読んでください。
カーネルのアップデート
2004/10/10の時点で、カーネルのアップデートパッケージが出ています。そこで、Vine製カーネルをアップ
デートします。
FTP Siteから次のrpmファイルを
入手します。
- FTP Site/updates/3.0/RPMS/i386/kernel-2.4.26-0vl16.i686.rpm
- FTP Site/updates/3.0/RPMS/i386/kernel-headers-2.4.26-0vl16.i686.rpm
まず、カーネルをインストールします。次のコマンドでインストールします。
# rpm -ivh rpmファイルのでディレクトリ/kernel-2.4.26-0vl16.i686.rpm
インストール後はlilo.confに次の行を加えます(もしかするとrpmファイルのインストール後に
liloをアップデートしているかも知れません。その場合は、以下の確認をすることになります)。
image=/boot/vmlinuz-2.4.26-0vl16
label=linux
#initrd=/boot/initrd-2.4.26-0vl16.img # SCSIディスクから起動していないので不要
read-only
root=/dev/hda1
append=" resume2=swap:/dev/hda7"
lilo.confを確認したら、liloをインストールします。
# mv /boot/boot.XXXX /boot/boot.XXXX.back # 前のbootイメージのバックアップ
# lilo -v
liloが正常にインストールできたら(=エラーが出なかったら)、再起動します。
再起動後、カーネルのヘッダファイル群をアップデートしておきます(いろいろな場面で
要求されることが多いからです)。
# rpm -Uvh rpmファイルのでディレクトリ/kernel-headers-2.4.26-0vl16.i686.rpm
カーネルの再構築(Stand Alone PCMCIA用カーネルの作成)
VineLinux3.0でインストールされるkernel-pcmcia-cs-3.2.7では、
PCMCIAのチップ( Ricoh RL5C476)を認識しません。そこで、
Stand Alone PCMCIAを使うために、PCMCIA/CardBusサポートを無効にしたカーネルを作成します。
最小インストールをした場合、gcc、rpm-buildがインストールされていないのでCD-ROMからapt-getで
インストールします。
- BIOSの設定
gccをインストールする場合(最小インストールの場合)、CD-ROMをIDEデバイスと
して使えるように、次の設定をします。
- Victorのロゴの画面でAlt+F2を押してBIOS設定画面を起動
- AdvancedタブのPCMCIA Locked for IDE CD-ROMを”Enabled(有効)”
- BootタブのATAPI CD-ROMを”Disabled(無効)”
- rpmファイルの入手
カーネル再構築用に、次のrpmファイルを入手します※。
- FTP Site/updates/3.0/RPMS/i386/kernel-source-2.4.26-0vl16.i686.rpm
- FTP Site/updates/3.0/SRPMS/kernel-2.4.26-0vl16.src.rpm
- FTP Site/VinePlus/3.0/i386/pool/mkkpkg-2.4.2-0vl1.noarch.rpm
- FTP Site/VineSeed/i386/Vine/RPMS/ncurses-devel-5.4-0vl2.i386.rpm
mkkpkgは、カーネルを再構築してrpmパッケージにしてくれるスクリプトです。
ncurses-develは、mkkpkgが必要とするパッケージです。
※インストール直後はメッセージが文字化けしています。これを解消するには、
# export LANG=Cとタイプします。これでも文字化けする場合、/etc/sysconfig/i18nファイルを次の
ように修正します。
LANG="ja_JP.eucJP" → LANG="en_US"
- apt用の設定
CD-ROMからapt-getできるよう、次のようにCD-ROMをapt-getの対象に加えます。
このコマンドを実行する前に、VineLinuxのインストールに使用したCDをCDドライブに入れておきます。
# apt-cdrom add
CDを認識すると、名前を付けるように促されますので、適当に付けておきましょう。
- gcc、rpm-buildのインストール
次のコマンドで、gccとそれが依存するパッケージ、及びmkkpkgに必要なrpm-buildを
CD-ROMからインストールします。
# apt-get install gcc rpm-build
- rpmファイルのインストール
前述で
入手したrpmファイルで、
kernel-2.4.26-0vl16.src.rpm以外をインストールします。
# cd rpmファイルのあるディレクトリ
# rpm -ivh kernel-source-2.4.26-0vl16.i686.rpm
# mkkpkg-2.4.2-0vl1.noarch.rpm
# ncurses-devel-5.4-0vl2.i386.rpm
- カーネルパッケージの作成
いよいよカーネルパッケージを作成します。mkkpkgは/root、/var/tmp以下で作業を行い、
合計で数百MBのディスクスペースを使います。また、最終的にできあがったパッケージは、
/usr/src/vine以下に置かれます。まず、次のコマンド※を実行します。
※ --target=i686と付けるとi686用カーネルが
作成できるようです。
# mkkpkg 右のファイルがあるディレクトリ/kernel-source-2.4.26-0vl16.i686.rpm
# menuconfig
mkkpkgは、カーネルの設定を変更した後にrpmパッケージを作成するスクリプトです。
そのため、カーネルソースのrpm(kernel-source-2.4.26-0vl16.i686.rpm)を指定した後ろに、設定変更方法を
決めるオプション(config、menuconfig、xconfigのどれか)を付けます。
最小インストールでは、GUI環境がインストールされないためmunuconfigを選択しています。
上記を実行すると、mkkpkgがいろいろ聞いてきます。次のことを聞かれるので、適当に答えましょう
- リビジョン番号 : 0vl16のソースから作成するならば0vl16.1(Vine推奨)
- specファイルの編集: rpmパッケージを熟知しているわけではないのでnを選択
- SRPMファイルの作成: 再利用しないと思うのでnを選択
次にmenuconfigが起動します。ここで、”General setup”→”PCMCIA/CardBus support”を選択し、
”PCMCIA/CardBus support”をnにします。変更後、保存して終了します。
次に、「ログを/tmp/kernel-mkkpkg.logに保存するよ」という確認メッセージが
表示されますので、何かボタンを押すとコンパイルが始まります。相当長い時間がかかりますので、
お茶でもすすって待ちましょう。
MP-XP5220EXでは、45分程度でコンパイルが終わります。その後、ログ、Build tree
の扱いについて聞かれますので、特に問題なければ消去しましょう。
- カーネルパッケージのインストール
カーネルのアップデートと同じ方法でカスタムカーネルを
インストールします。カーネルのrpmファイルは、/usr/src/vine/RPMS/iXXX(又は、/root/rpm/RPMS/iXXX)以下に
あります。カスタムカーネルインストール後は再起動しましょう。
PCMCIAの設定
- Stand Alone PCMCIAのインストール
# tar zxvf 右のパッケージがあるディレクトリ/pcmcia-cs-x.x.x.tar.gz
-C /usr/src
解凍後、/usr/srcに移動してコンパイルします。まずは、configを設定します。
# cd /usr/src/pcmcia-cs-x.x.x
# make config
make configでは、次のことを聞かれますが、ほぼデフォルトでOKでしょう。
(私はデフォルトのままリターンしました)
- カーネルのソースツリーのある場所 :/usr/src/linux
- Card Utilityが信用するバージョンをビルドするか? : n
- 32bit CardBusをサポートするか : y
- PnP BIOS Resourceをチェックするか : n
- モジュールをインストールする場所 : /lib/modules/カスタムカーネルのバージョン
後はコンパイルをしてインストールするだけです。
# make all
# make install
- /etc/pcmcia/configの編集
デフォルトのconfigファイルでは、なぜかKXLC005のversionがコメントアウトされ、
manfidが間違っています(正しくは0x0032,0x2904)。これを次のように修正します。
但し、/etc/pcmcia/configは、ReadOnly(444)になっていますので、一度読み書き可能(644)にしてから
編集する必要があります。また、/etc/pcmcia/configは/etc/init.d/pcmciaを再起動(restart)しないと
有効になりません。configファイルを修正したら、必ずpcmciaサービスをrestartしましょう。
card "KME KXLC005 CD-ROM"
version KME", KXLC005" #コメントアウトされているので”#”を消去
#manfid 0x0032, 0x0704 #manfidをコメントアウト。
bind "ide-cs"
- PCICの設定
次に、pcmciaが使うICを指定します。/etc/sysconfig/pcmciaの”PCIC=”にi82365を
指定します。他のオプションは特に指定しなくてOKです。/etc/sysconfig/pcmciaは次のようになります。
PCMCIA=yes
PCIC=i82365
PCIC_OPTS=
CORE_OPTS=
CARDMGR_OPTS=
- KXLC005の認識状態
ここまでの設定をした後、/etc/init.d/pcmcia restartを行うと付属CD KXLC005を
使えことが出来る状態なります。認識したKXLC005は、/dev/hdcになるので適当にマウントすれば
使用可能になります。KXLC005をPCMCIAソケットに挿した際の認識状態は下のようになります。
(tail -f /var/log/messageの一部)
cardmgr[561]: socket 0: KME KXLC005 CD-ROM
kernel: cs: memory probe 0xa0000000-0xa0ffffff: clean.
kernel: cs: IO port probe 0x0100-0x04ff: excluding 0x3c0-0x3df 0x480-0x48f 0x4d0-0x4d7
kernel: cs: IO port probe 0x0800-0x08ff: clean.
kernel: cs: IO port probe 0x0a00-0x0aff: clean.
kernel: cs: IO port probe 0x0c00-0x0cff: clean.
kernel: hdc: UJDB130, ATAPI CD/DVD-ROM drive
kernel: ide1 at 0x190-0x197,0x396 on irq 3
kernel: hdc: attached ide-cdrom driver.
kernel: hdc: ATAPI 20X CD-ROM drive, 128kB Cache
kernel: Uniform CD-ROM driver Revision: 3.12
kernel: ide-cs: hdc: Vcc = 5.0, Vpp = 0.0
- SDカードスロットに関して
/etc/init.d/pcmcia startをすると、2つのスロットを監視するというメッセージが
出ますが、残念ながらSDカードスロットは全く認識しないようです。残念・・・。
インストール後の設定
- BIOSの設定
起動画面("Victor"と表示されている時)でAlt+F2を押してBIOSの設定を表示させます。
Advancedタブの一番下にあるLCD Expansionを”有効(Enabled)”に戻します。これでコンソール画面が
画面全体に表示されるようになります。
一方、同じAdvancedタブの中程にあるPCMCIA Locked for CD-ROMは、IDEのCDとして使用したい場合は
”有効(Enabled)”のままにしておきます。私は、せっかくPCMCIAを使えるようにしたので、
他のデバイスにも使えるように”無効(Disabled”に戻しました。ちなみに、戻さないとPCMCIAソケットを
認識しないようです。
- 起動時のモジュールのロードの設定
ほとんどのデバイスを認識しますが、オーディオデバイス(trident)のモジュールは
なぜか自動でロードされない設定になってます(いろいろとトラブルが多いデバイスだからでしょうか)。
次の一行を/etc/modules.confに記述すると、起動時にオーディオデバイスモジュールを読み込みます。
alias sound trident
また、ACPI関係のモジュールも読み込むように次の設定を/etc/init.d/rc.localに追加します。
これで/proc/acpi以下でバッテリー状態などをチェックできるようになります。
#### Vine stuff ends here ←元々書いてあります
modprobe ac
modprobe battery
modprobe acpi # processor、thermalモジュールを読み込みます
- その他パッケージ(Xconfigurator、Gnome、Mozilla、Sylpheedのインストール)
apt用の設定を終えた後、CD-ROMからapt-getでインストールします。
VineLinux3.0のCDが入ったCDドライブをPCMCIAに挿し、次のコマンドでインストールできます。
# apt-get install Xconfigurator gnome-utils gnome-media gnome-session control-center mozilla sylpheed
Xは、Xconfiguratorが依存するため自動でインストールされます。その他、必要なパッケージも
自動でインストールされます。
- Xの設定
Xの設定をXconfiguratorで行います。コマンドでXconfiguratorと打つと、Xconfiguratorが
起動します。Xconfiguratorの作業と設定内容は次の通りです。
- ビデオチップの検出
これはXconfiguratorが自動でSiS630を見つけてくれました。そのままOKです。
- xorg.confファイルのリンク
「/usr/X11R6/lib/X11/xorg.confがなんか変なので、/etc/X11/xorg.confにリンクしますよ?」
と聞いてきたので、Yesを選択。
- モニタの設定
さすがにモニタは検出できないようなので、Customを選択します。さらに解像度の選択でも
Customを選択し、HorizSync 31.5-48.5、VertRefresh 50-70を選択します。モニタの解像度を
検出するかと聞かれますので、検出(Probe)を選択します。ここでDon't Probeを選択すると、
うまく設定できないようです。
ちなみにここではProbeに失敗し、「No Valid Modes」という確認メッセージが表示されます。
そのままOKを押して先へ進みます。
- Custom Monitorの設定
検出に失敗したので、再びモニタの設定に戻ってきます。同様にCustomモニタで設定します。
(以前の値が残ってますので、そのままOKを押していくだけです)
- Xのスタート
本来、モニタの検出に行くべきなのですが、なぜかStarting Xという画面に行きます。
ここで「OK」を押してXのテストを行います。すると、1024x600 8bitのモニタを検出して
無事Xが起動します。この設定を保存します。
その後、グラフィカルログインするか?と聞かれますので、僕はYesを選択しました。これで
Xconfiguratorが終了し、/etc/X11/xorg.confというXの設定ファイルが作成されます。
- 画面の色の変更
上記で作成したxorg.confでは、画面の色が8bitになってます。そこで、/etc/X11/xorg.confの
ScreenセッションのDefaultDepthを16にします。これで画面の色が16bitになります。
- GUI環境の設定
Xの環境設定も終わったので、GUI環境用の設定をします。まず、gdm、Canna、kinput2をインストールします。
PCMCIAにCD-ROMを挿し、VineLinux3.0のインストールディスクを入れます。
そして、次のようにインストールします。
# mount -t iso9660 /dev/hdc /mnt/cdrom
# apt-get install gdm Canna kinput2
次にデフォルトセッションをgnomenにします。次のコマンドで設定します。
# setwm gnome
次回の起動時からディスプレーマネージャーgdmが起動するようにします。/etc/inittabの設定を
次のように3から5に変更します。
id:3:initdefault: → id:5:initdefault:
日本語入力ができるよう、Cannnaserverを起動します。
/etc/init.d/canna start
環境が整ったので、RunLevelを3から5にし、ディスプレーマネージャーを起動します。
init 5
これでGUI環境が整ったと思います。
ハイバネーション
デフォルトの設定のままで、ハイバネーションが正常に起動します。
次のコマンドで、休止状態(swap領域にデータを保存して電源断)になります。
# echo 4 > /proc/acpi/sleep
電源が切れた後、再び電源を入れるとハイバネーション前の状態で正常に起動します。
もし、カーネルを更新したりして/etc/lilo.confを編集する際には、オプションに次の行を
加える必要があります。
append=" resume2=swap:/dev/{スワップ領域のディスク}"
但し、現状では次の不具合があるようです。
- 復帰後、USB機器が使えないことがある
この場合、一度/etc/init.d/murasaki stopでmurasakiを止めて、rmmod usb-ohciでusb-ohciを
アンロードします。USB機器を抜いた後、/etc/init.d/murasaki startをしてから再び挿すと
使えるようになります。
- PCMCIAに付属CD-ROMが挿さっているとレジュームできない
PCMCIAカードは、ハイバネーション前にcardctl resumeもしくはcardctl suspendをしておくようです。
しかし、付属のCD-ROMのカードでは、cardctl resumeは”Device or resource busy”で実行できませんでした。
一方、cardctl suspendは成功しますが、そのままハイバネーションをするとSwapへの書き込み前に
元の画面に戻ってしまいます。そして、コンソールから起動していないときはハングアップするようです。
付属のCD-ROMはcardctl ejectし、PCMCIAからカードを抜いてからハイバネーションを行えば正常に
ハイバネーションが可能です。
動作がおかしい?
- ポインティングデバイスの動作がおかしい
カーソルが飛んだり、ポインティングデバイスをいじると応答が無く
なったりする場合、インストール時にマウスの種類をInteliMouse(IMPS/2)にしたのが
原因のようです。
/etc/X11/xorg.confでInputDeviceセクションを次のように修正してXを再起動すると
治ります。
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "PS/2"
Option "Device" "/dev/psaux"
Option "ZAxisMapping" "4 5"
Option "Emulate3Buttons" "no"
EndSection
参考:再構築したカーネル(rpmパッケージ)、Xの設定ファイル
ここには私の環境で使用している設定ファイルなどがあります。参考になれば。。。
- Stand Alone PCMCIA用のカスタムカーネル関係
- Xの設定ファイル(xorg.conf)
無線LANカードGW-NS54Gとndiswrapper
- シンボリックリンク、カーネルコンフィグレーションの修正
カスタムカーネルをインストールすると、/lib/modules/カーネルバージョン/buildという
シンボリックリンクできます。これは、/usr/src/カーネルバージョンにリンクを張っているの
ですが、リビジョンを変えてもrpmからインストールしたソールにリンクしてします。このため、
カーネルのリビジョンとbuildのリンク先のリビジョンが異なることになります。一方、ndiswrapperは
/lib/modules/カーネルバージョン/buildのカーネルバージョンを
ndiswrapper.oモジュールが対応するカーネルバージョンとします。そのため、、
カスタムカーネル作成時にリビジョンの変更をしているとmodprobe ndiswrapperに失敗します
(”バージョンが違う”と言われます)。そこで、これを避けるために以下の作業をします。
ここでは、2.4.26-0vl16から作成した2.4.26-0vl16.1というカスタムカーネルを想定しています。
- カーネルソースのコピー
カスタムカーネルを作成したバージョンのカーネルソースをコピーして、
カスタムカーネルのリビジョンに一致するカーネルソースディレクトリを作ります。
# cp -r /usr/src/linux-2.4.26-0vl16 /usr/src/linux-2.4.26-0vl16.1
- シンボリックリンクの張り直し
次のようにシンボリックリンクを張り直します。
# rm /lib/modules/2.4.26-0vl16.1/build
# ln -s /usr/src/linux-2.4.26-0vl16.1 /lib/modules/2.4.26-0vl16.1/build
# rm /usr/src/linux
# ln -s /usr/src/linux-2.4.26-0vl16.1 /usr/src/linux
- make depの実行
コピーしたソースのコンフィグレーションは、src.rpm内のコンフィグレーションと異なるため、
これを修正します。まず、rpm作成用のカーネルソースファイル(*.src.rpm)から、
kernel-カーネルバージョン-i386.configというコンフィグレーションファイルを持ってきます。
# rpm -qlp /右のファイルがある場所/kernel-2.4.26-0vl16.src.rpm | grep config
(上記でkernel-2.4.26-i386.configファイルがあることを確認)
# ln -s /usr/src/linux-2.4.26-0vl16.1 /lib/modules/2.4.26-0vl16.1/build
# rpm2cpio /右のファイルがある場所/kernel-2.4.26-0vl16.src.rpm |
cpio -id "kernel-2.4.26-i386.config"
# cp kernel-2.4.26-i386.config /usr/src/linux/.config
コピーしたconfigファイルは、VineLinuxのkernel-imageの設定になっています。
カスタムカーネルのコンフィグレーションと一致させるため、make menuconfig等で不一致点を修正して
コンフィグレーションを合わせます(合わせないと、modprobe ndiswrapperの際に、unresolved symbolの
エラーを吐きまくってインストールできません)。
上述のカスタムカーネルの場合、PCMCIA/CardBus supportをnにしてsaveするだけです。
その後、make depを実行します。
# cd /usr/src/linux
# make menuconfig(或いはconfig、xconfig)
(カーネルの設定をカスタムカーネルと一致させてから保存)
# make dep
これでようやくndiswrapperをインストールする準備が整いました。
もし、make dep
でエラーが発生するようならば、カスタムカーネル用のソース<
a href="kernel-source-2.4.26-0vl16.1.i386.rpm">kernel-source-2.4.26-0vl16.1.i386.rpmを
インストールした後に「カーネルソースのコピー」から実行してください。
- ndiswrapperのインストール
# tar zxvf /右のファイルがある場所/ndiswrapper-0.11.tar.gz
# cd ndiswrapper-0.11.tar.gz
# make install
- Windows用ドライバのインストール
ndiswrapperはWindows用のドライバをLinux上で使えるようにするものです。
そこで、
GW-NS54Gの
Windows用ドライバをダウンロード(gwns54g_v?.exe)します。自己解凍書庫であるexeファイルをクリックし、
出てきた次のファイルをLinuxのドライブにコピーしておきます。
- CheckDLL.dll
- N54GNDS.sys
- N54GNDS.inf
上記の3つのファイルは、同じディレクトリにコピーします。そして、次のコマンドでドライバを
インストールします。
# cd Windows用ドライバのある場所
# ndiswrapper -i N54GNDS.inf
- dummy_cbの設定
pcmcia-csとカーネルのhot plug PCIに不整合があるため、CardBusデバイスをうまく認識できない
ことがあるようです。私の場合も、GW-NS54GをPCMCIAスロットに挿してからlspciをすると、
”cannot open /proc/bus/pci/02/00.0”というエラーが出てしまいます(挿さない場合はlspciは通常通り
使えます)。しかし、直接ハードウェアにアクセスするオプション(-H1)を付けて実行すると、
ちゃんとpciに接続している機器を見ることができます。このような時は、dummy_cbを使うと良いようです。
次のように設定します。
- PCI idの確認
GW-NS54GをPCMCIAスロットに挿し、電源が供給されているのを確認します。
その後、cardctl ident 0を実行し、PCI idの隣に表示される数値をメモします。
# cardctl ident 0
product info: "Broadcom", "802.11b CardBus", "8.0"
manfid: 0x02d0, 0x0406
function: 6 (network)
PCI id: 0x14e4, 0x4320
- /etc/pcmcia/config.optsの設定
/etc/pcmcia/config.optsに次の3行を書き加えます。
card "no product info available"
pci 0x14e4, 0x4320
bind "dummy_cb"
- PCMCIA(cardmgr)のリスタート
次のように、PCMCIAサービス(cardmgr)をリスタートします。
# /etc/init.d/pcmcia restart
/var/log/messageに次のような出力が見つかると思います。
cardmgr[1409]: exiting
kernel: cs: cb_free(bus 2)
kernel: unloading PCMCIA Card Services
kernel: Linux PCMCIA Card Services 3.2.8
kernel: kernel build: 2.4.26-0vl16.1 #1 Sun Oct 10 22:26:10 JST 2004
kernel: options: [pci] [cardbus] [apm]
kernel: Intel ISA/PCI/CardBus PCIC probe:
kernel: Ricoh RL5C476 rev 88 PCI-to-CardBus at slot 00:09, mem 0x0de000
kernel: host opts [0]: [serial irq] [io 3/6/1] [mem 3/6/1] [pci irq 11] [lat 32/176] [bus 2/5]
kernel: host opts [1]: [serial irq] [io 3/6/1] [mem 3/6/1] [pci irq 11] [lat 32/176] [bus 6/9]
kernel: ISA irqs (default) = 3,10,15 PCI status changes
cardmgr[1780]: watching 2 sockets
kernel: cs: cb_alloc(bus 2): vendor 0x14e4, device 0x4320
cardmgr[1781]: socket 0: no product info available
kernel: cs: cb_config(bus 2)
kernel: fn 0 bar 1: mem 0x60002000-0x60003fff
kernel: irq 11
kernel: dummy_attach(device 02:00.0)
- Aliasの設定
/etc/modules.confに次の行を加えます。
alias wlan0 ndiswrapper
- wireless-toolsのインストール
wireless-toolsをapt-getでインストールします。
wireless-toolsは、ワイヤレスLANを使うのに必要&有用なユーティリティを含むパッケージです。
wireless-toolsはVineLinux3.0のインストールCDに含まれていますので、
apt用の設定を
してから、次のコマンドを実行します。
# apt-get install wireless-tools
ちなみに、wireless-toolsをインストールし忘れると、一見まともにwlan0が
upしたようになりますが、いざ通信しようとするとハングアップします。
- wlan0の設定
wireless-toolsに含まれるiwconfig、或いはndiswrapperを使っても設定できますが、
私はifcfg-wlan0ファイルを/etc/sysconfig/network-scriptに作成し、直接編集しました。
次のようになっています。
DEVICE=wlan0
ONBOOT=no #OS起動時に有効にしない
BOOTPROTO=static #固定IPを使用
IPADDR=192.168.0.xxx
NETMASK=255.255.255.0
NETWORK=192.168.0.0
BROADCAST=192.168.0.255
GATEWAY=192.168.0.zzz #GATEWAYになるIPアドレス
MODE=Managed #アクセスポイントに接続するモード
ESSID=SSIDを記述します #SSIDを隠しているときは必須の項目になります
KEY=各自のWEPキーを記述します #WEPキーは64bitならば10桁、128bitならば26桁
上記の設定は、私のネットワーク環境の場合です。ESSIDは、大文字、小文字を区別するので
気を付けてください。
一方、DHCPやESSIDをスキャンして利用する場合は、
googleなどで
設定方法を検索してみてください。
また、このファイルにはWEPキーが記述されることになるため、/etc/sysconfig/network-script/ifcfg-wlan0の
パーミッションをroot以外編集/読み取りができないようにします。
# chmod 600 /etc/sysconfig/network-script/ifcfg-wlan0
さて、上記のように設定すると、別のワイヤレスLANカードを挿しても同じ設定を
使用することになります。カードごとに設定を変えたい場合、/etc/pcmcia/wireless.optsに
記述するといいでしょう。
- ndiswrapperモジュールの読み込み
上記でネットワークの設定が整いましたので、
ndiswrapperを使ってGW-NS54Gをnetworkデバイスとして認識させます。
modprobeでndiswrapperをロードします。
# modprobe ndiswrapper
ndiswrapperのロードに成功し、ndiswrapperがWindowsドライバをロードすると
次のメッセージが/var/log/messageに出力されます。tail -f /var/log/message
などで確認してみてください。
kernel: ndiswrapper version 0.11 loaded (preempt=yes,smp=no)
kernel: ndiswrapper: using irq 11
kernel: wlan0: ndiswrapper ethernet device 00:90:cc:6c:a9:ae using driver n54gnds
kernel: wlan0: encryption modes supported: WEP, WPA with TKIP, AES/CCMP
kernel: ndiswrapper: driver n54gnds (PLANEX COMMUNICATIONS INC.,07/17/2003, 3.30.15.0) added
murasaki.generic[1476]: net device is registered
murasaki.generic[1476]: Dependence(net) was found
murasaki.generic[1476]: Executing "net" "start"
- wlan0の有効化
デバイスの準備が整ったので、ifupを使ってwlan0を有効にします。
# ifup wlan0
これでネットワークに接続できるようになります。(別途/etc/resolv.confに
DNSサーバの設定をしておく必要があるかも知れませんが、その辺は省略します。)
- 次の起動時から使うには?
次の手順で使えるようになります。
- カードをPCMCIAスロットに挿す
- # modprobe ndiswrapperでndiswrapperモジュールをロード
- # ifup wlan0でwlan0を有効化
「ndiswrapperは起動時にロードするようにしておくといいのでは?」と思うかも
知れません。しかし、カードを挿す前にndiswrapperをロードしていると、GW-NS54GをPCMCIAスロットに
挿してもnetworkデバイスとして認識してくれません。そのため、上の手順を踏む必要があるようです。
- 困ったこととか注意点とか
- wlan0を有効化したいのだが・・・
次のようなシェルスクリプトを作ってカード挿入後の手順を減らそうとしても失敗します。
#!/bin/sh
modprobe ndiswrapper
ifup wlan0
原因は、ndiswrapperがGW-NS54Gをnetworkデバイスに設定する前にifupが
呼び出されてしまいwlan0が見つからないためようです。
同じ理由で、同様の内容を/etc/rc.d/rc.localに記述しても、
PCMCIAスロットにGW-NS54Gを挿したままOSを起動してwlan0が使えるようにはならないようです。
- OS終了前にやるべきこと
OSを立ち下げる際、或いはPCMCIAサービスを再起動する前には、
必ずwlan0を無効化してndiswrapperモジュールをアンロードしておきましょう(下を参照)。
そうしないと、PCMCIAサービスのシャットダウン中にハングアップします。
# ifdown wlan0
# modprobe -r ndiswrapper