Vine Linux 2.6CR

インストール前に
いままでにも何度かチャレンジして挫折していたLinuxにまたまたチャレンジです。
Slackware,Vine2.0等(あとBSD系でFreeBSDとかも)
失敗の原因はなんだろう?以下対策とともに記載しておく。
1.雑誌の付録とかについているディストリビューションを使用した
→ よくわかっている人ならともかく初心者の私がそんなことしちゃダメ
2.自宅、会社のデスクトップパソコンにインスコした
→ 使いこなしてもいないのに会社のはダメ、自宅のパソコンもほとんど使わない
3.OSのマルチブートをおこなわなかった
→ そう、単一OS環境だったので何かと不都合がでちゃったのだ。
ということで、ちゃんとしたパッケージを購入していつも持ち歩いているレッツノートに
WindowsXPとともにインスコしてちょっとずつ慣していくのだ!
いくぜインスコ
インスコするのはややこなれた感じのするVine2.6CR
(選定のいちばんのポイントは……竹千代博士も使っているから(^^;)
まず、最初にチャレンジしたのがCDブートさせてインスコするパターン
デスクトップパソコンのときはこれですんなりインスコは完了したから
ところがノートなんでこれはCDブートができない(KXL-RW10AN-S)
→ 断念
次に、フロッピー起動させてからCD認識させてインスコするパターン
XPマシンにVineのCDをセットして
X:\images> ..\dosutils\rawrite.exe -n -f boot.img -d a:
このコマンドでセットアップフロッピーが作れるのでPCMCIA用のを使う
がKXL-RW10AN-Sの認識させかたがいろいろ調べても載っていない
(結構ややこしそうですKXL-RW10AN-S)
→ 断念

次は、無難にローカルセットアップするパターン
XPからVineのCDの内容をローカルのハードディスク(FATパーティション作成)に
あらかじめコピーしておきローカルセットアップ用のフロッピーでインスコ
ところがCDのイメージを見つけられないってなことを言われて先に進まない
→ 断念

思いつきで、ファイルじゃなくてCDイメージをコピーしてみた
XPでCDRライティングソフトを使用して、VineCDの内容をISOイメージに変換して
上記パーティションに置いてみた
おっ!今度は成功だ!説明書にもちゃんと書いとけよボケが!とかぶつぶつ言っている
私にはいっこうにかまう気配もみせず、インスコがすすんでいく。
が、最後の最後でエラーが発生した。
そのメッセージをもとにいろいろなサイトで調べてみたが直接の原因はわからず。
→ 断念

一番簡単だと思っていたローカルファイルからのセットアップに失敗した私は
そろそろあきらめようかなぁ…と考えていた。
(これが最終手段だと思っていたから)
でも、今回のVineはタダじゃない、1万そこそこの金をかけて購入したものだ。
さすがにインストールくらいはしたい。(←ここいらへんが売り物のいいところ?)

専門の知識がないとしんどいって説明に書いてあるパターンにチャレンジ
XPにたまたま入れてあったアパッチforウィン32を使って、CDドライブをWEB公開する
でもって、ネットワークインスコ用の起動フロッピーで起動後、セットアップイメージの
取得先を http://192.168.1.1/X/ てな感じで指定する
おー!いったいった!さっきのエラーのところも問題ないぞ!
レッツノートにVine2.6CRがインスコされていくー
(ビデオメモリの関係で通常のグラフィカルなインストールじゃないので感動は1/3くらい)

ま、とにかく成功や!
あーながかったー先が思いやられるなぁ…
カーネル
マシンを起動するとLILOがXPを含めどいつを起動させるか聞いてくる
Vine2.6CRには 2.2.20 と 2.4.19 が用意されている
当然、2.4.19 やろーがと思って 2.4.19 を起動する。
細かい文字がウジャウジャと表示されていきOSが起動してるって感じがする
モビルスーツの起動画面もこんなんなんかなぁとか全然関係ない根拠もない空想に浸っていると karnel panic
という表示がされたまま先に進まなくなった
私もpanic
新しいことがやりたかったら2.4、安定稼働の2.2とか書いてあったので
今度は2.2で起動する。成功。まぁこれで使えるんならいいか

と思ったのもものの数時間で、
USBデバイスを認識させるのに2.2じゃうまくいかないことに気づいてしまった。
でもって調べるとacpi=offにするとよいらしい
lilo.confを修正する
append="acpi=off"を追加して保存
/sbin/lilo で反映
今度はpanic起こさずに起動、ハァ疲れた
USBフロッピーを認識させる
フロッピードライブくらいは認識できとかないと何かと不都合なのでチャレンジする
/sbin/dump_usbdev を実行する
フロッピードライブを差し込んでもう一度
/sbin/dump_usbdev を実行
そしたらメッセージが増えているのでその増加分がいま差し込んだFDDの情報
vendor 0x644 product 0x0 module
これを /etc/usbmgr/usbmgr.conf に以下の内容とともに追加
vendor 0x644 procuct 0x0 module scsi_mod,sd,usb-storage
でもって、ルートになって
update_usbdb /etc/usbmgr/usbmgr.conf を実行する(usbmgrに反映)
確認してみよう
cat /proc/scsi/scsi で確認
cat /proc/scsi/usb-strage-0/1 で確認
認識が終ったらマウントの設定
/etc/fstabを
/dev/sda /mnt/floppy auto noauto,user 0 0 として
# mount /mnt/floppy でマウントできる
また、/etc/mtools.confのa:のところをfd0からsdaにかえておく
確認はmdirにておこなう。
Air-H"を休ませてあげたい
Air-H"(MC-P300)の認識とかとくに難しくなかったのだが、
-H"のアンテナLEDがずっとつきっぱなしなのである。
赤になったり、点滅したり、オレンジになったり、そう、
電波状況をずーーーっと監視しているみたい。ってことは当然
バッテリーを弱らせる原因だったり、発熱の原因だったりと
よくないので使わないときは休ませてあげたい。

/sbin/cardctl suspend こいつでカードバスがサスペンドします。
/sbin/cardctl resume こいつで復帰します。
/sbin/cardctl reset ダイアルアップが何度やっても失敗する現象が
発生するんだけどそうゆうときはこのresetを実行すればよろしい。
/sbin/cardctl suspend 1 というようにソケットNoを指定すると
該当するソケットのみの制御が可能(レッツノートは2枚させる)

ちなみに何がささっているか見るとき
/sbin/cardctl ident
使用状況を見たいとき
/sbin/cardctl status
毎回手打ちで面倒くさいという人がいるかもしれないが私は平気
2.4kernelを根本的に解決させたい
例のカーネルパニックを根本的に解決させたくてアップデートを行ってみる
全然わかってないんだけどやってみた。
#apt-get update
#apt-get install kernel-headers kernel-doc kernel-source
#apt-get install kernel #2.4.19-0vl26
ってやったんだけどすでに最新とか言われちゃいました。
(でもこのときに2.4.20のソースファイルが入ったのかな?あとで出てきます)
スマメを使いたい
今までいろいろと無駄な買い物をしてきたけど、
中でもInternetViewcam。これはかなり使えなかった
ただ、一緒に購入したPcCardAdapterは結構な頻度で使用してます
ドライバーが必要なくてWin98等でも認識できるので
おいおいまじかよーそんなOSいまどき使うなよー!
ってなデータ受け渡し手段しかない相手がいてもなんとかなったりする
SHARP製 VR-PCA1 3.3V 2MB〜32MB ←これね
/etc/fstab に以下の一文を追加する
/dev/hdc1 /mnt/smart vfat noauto,user 0 0
差し込むだけでなんなく認識していたので特に問題なし
こっちでもOpenOffice.Org
XPでもインスコしたのでこっちにも入れておく
まず、ダウンロードしてくるサイトは忘れた
/tmp/OOo_1.0.3.1_LinuxIntel_install_ja.tar.gz ここに入れた
$ tar xvfz OOo.1.0.3.1_LinuxIntel_install_ja.tar.gz で解凍
ノートだし他に誰も使わないのでスタンドアロンでインストールすることにした
$ cd install でディレクトリ移動して
$ ./setup でセットアップ開始
Windowsのときと同様のGUIでサクサク進む
インスコが終ったら日本語フォントを認識させないと
$ cd /home/(user)/OpenOffice.org1.0.3/program/ に移動する
$ ./spadmin を実行する
フォント → 追加 と進んで
ソースディレクトリ = /usr/X11R6/lib/X11/fonts/TrueTypeを指定する
すべて選択して → OK → 閉じる → 閉じる
日本語を使うために必要な設定は http://oooug.jp/mirror/documents/install/install.html
を参考にした
ほとんど使わないけどとりあえずインストールできた
Windowsの共有フォルダをマウントしてみる
やっぱり、Windowsのときみたいに共有フォルダを使って
ファイルの受け渡しをしてみたい
# mkdir /mnt/win でマウントするディレクトリを作成する
# chmod 775 /mnt/win でマウント後に読み書きできるようにしておく
# smbmount //(パソコン名またはIPアドレス)/(共有フォルダ名) /mnt/win/ -o username=(共有可能なユーザ名)
そしたら、Password: って聞いてくるので入力してマウント完了
確認にはdfコマンドで容量とかが表示されればOK
ファイル名の規則には気をつけよう。Windowsと若干違うから
まぁ意外と簡単にいきました。
USBフラッシュメモリを使ってみる
手元にSOTECのVOICEレコーダがある。コレ → SMS-10(どっかのメーカにOEM提供もしてた)
こいつはUSBフラッシュメモリとして結構重宝していた
ぜひ、Vineでも使えるようにしておきたい。
ちなみに、Voiceレコーダは会議づけの人間にとっては
いつか必ずほしくなるが決して買ってはいけないものの頂点である
半日の会議の録音を同じ時間(倍速再生とかあったとしても数時間)かけて
聞くか?絶対に聞きません。断言してもいいです。
最初からフラッシュメモリ買っとけ

実は差し込んだら勝手に認識した。全然問題なし
あとはマウントするだけ
/etc/fstab に以下追加
/dev/sda /mnt/usbmem auto noauto,user 0 0 マウントポイントは作ってね
mount /mnt/usbmem で完了
USB HDD ケースを認識させる
ものは恵安社製USB-2502A
交換したHDDを再利用したかったので知り合いから譲ってもらいました。
XPでは何事もなく認識したので安心してたんですが・・・
これが、ものすごく難しかったです。最初USBフロッピーのときみたいに。
vender 0x5e3 product 0x702 module scsi_mod,sd,usb-storage
を追加してみたんですが、ダメ。マウントできないのです。
いろいろUSBマネージャあたりを疑ってみたんですがうまくいきません。
(返そうかなって思い始めました。)

どうもベンダーコードとプロダクトコードがデバイスリストにないからじゃないかなぁ
って思えたのでカーネルをあげてみる
2.4.19 → 2.4.20
ソースはいつのまにか入っていたので(多分Updateしたとき)
/usr/src/linux_2.4.20/ で
# make config
# make dep
# make clean
# make install
でもって
vmlinux を /boot/vmlinux-2.4.20-0v|29.1 にして
# make modules
# make modules_install
で /lib/modules/2.4.20-0v|29.1/ ができます
lilo.conf を修正して
lilo を実行して反映させる
再起動時に新カーネルを選択する
以上がだいたいカーネルのバージョンアップに際しておこなったこと
サイトで調べながらやったから手順とかいいかげんかも?ってゆうかいいかげんだ
(あんまり意味わかってないし、メモの内容を転記してるから曖昧表現だし)
まぁ結果から言うと失敗ですわ
でも、ちょっと進展した何となく認識っぽいところまでは動いてる
もうちょっとなんだけどなぁ
→ おしい!

ベンダーコードとプロダクトコードをもとに海外のサイトを検索していると
カーネルのソースっぽいものをいじっているところがあった。
ここを修正すれば使えるようになりました。以下ご覧ください

/usr/src/linux-2.4.20/drivers/usb/storage/unusual_devs.h
こいつです。こいつを修正すればよかったんです。
0x05e3 を検索して探してください。
症状からしておそらく 2.4.19 のソースにはみつからないはずです
だからはなから認識できないのだと思います。
このような行があると思います
UNUSUAL_DEV( 0x05e3, 0x0702, 0x0000, 0x0001, 
	"EagleTec",
	"External Hard Disk",
	US_SC_SCSI, US_PR_BULK, NULL,
	US_FL_FIX_INQUIRY ),
		
これで認識はするんですけどやっぱりマウンントまではできない
ってな状態です
これを下記のように修正して、再度コンパイルしてみてください。
モジュールのみでいいと思います
# make modules
# make modules_install

これが修正後のソース
UNUSUAL_DEV( 0x05e3, 0x0702, 0x0000, 0xffff,
	"EagleTec",
	"External Hard Disk",
	US_SC_SCSI, US_PR_BULK, NULL,
	US_FL_FIX_INQUIRY | US_FL_MODE_XLATE | US_FL_START_STOP ),
		
こいつできっと使えるようになります。
0x0001 を 0xffff に修正するのはデバイスからの応答時間待ちを長くする
ためではないかなぁと大胆予想してます
(しかし中途半端な知識でよくやるよ俺)
ですから、2.4.19 のソースに上記のデバイス情報を追記してやれば
動くと思うのです(超無責任発言)
誰か同様の悩みをお抱えの方、試して結果教えてください

そのときの注意点として、ベンダーコードとプロダクトコードの順番は
必ず守ってください。よからぬことが起ると書いてあった記憶が…
今回の例ですと 0x05e3 これがベンダーコード
0x05e2 より後に記述しないといけません
0x05e4 より前に記述しないといけません
ベンダーコード0x05e2内でもプロダクトコード(0x0702)が
0x0701 より後に記述しないといけません
0x0703 より前に記述しないといけません

ちゅうことで晴れて
/dev/sda1 拡張
/dev/sda5 FAT32
が見えるようになりました

/mnt/hddcase というディレクトリを作って
/etc/fstab に
/dev/sda1 /mnt/hddcase auto noauto,user 0 0
を追加して mount /mnt/hddcase でマウントOK!
あれれれ?
256MBのメモリ挿したらPCカードバスを認識しなくなった!
これは…かなり根が深そうだ
別に困らないし内蔵64MB+128MBでいいや
(そのうち解決しよう)
なーんとか
使える形になってきました
ひとつ思うのは、とりあえず動けばいいってこと
あれこれやってると結構楽しいです。
ちょっとづつ勉強していくしかないっしょ
・256MBメモリの認識の問題
・CD-ROMドライブの認識(使わないんだけどなぁ)
・ハイバネーション機能
等々ぼちぼちチャレンジしていきたいと思います
結構使い勝手もいいと思うぞ皆も使うよろし
追記というか修正
UNUSUAL_DEV の上記説明にてわたくしウソを申しておりました。
UNUSUAL_DEV( 0x05e3, 0x0702, 0x0000, 0xffff,
	"EagleTec",
	"External Hard Disk",
	US_SC_SCSI, US_PR_BULK, NULL,
	US_FL_FIX_INQUIRY | US_FL_MODE_XLATE | US_FL_START_STOP ),
		
第1引数はVendorIDです
第2引数はProductIDです
第3引数は製品バージョンの最小値
第4引数は製品バージョンの最大値
となっているようです。
同じ製品でバージョンによって仕様が変るときはここで切り分けるようです。
つまり、0〜FFFF って修正して解決したのはバージョンが若干違ってたのを吸収できたからなのでした