ATモードでの Linux について
TOWNS MODE スイッチを OFF として PC/AT互換機として互換機として使用するときは、
AT用の Linux が、使用できます。
私は、実際に Plamo-2.2.1/2.1/2.0/1.4.4 と Vine-2.0 をインストールしてみました。
3.1 LAN カードと Linux 2.2 系カーネル
FMV-183/184互換の(および、その前身の FMV-181/182)LAN カードは、比較的、
以前から Linux への対応が行われていて 2.0 系カーネルでは、正常に使用できて
いました。しかしながら、2.2系のカーネルでは、この LAN カードを使用できません
でした。
私が調べた限り、解決策としては、以下の2つが、あります。(2000/10/21)
- 2.0 系カーネルに戻して使用する。
2.0.x 系カーネルでは、正常に動作します。
- 修正された、
FMV-181/2/3/4 対応の AT1700 用 LAN ドライバを使用する。
こちらのドライバと 2.2.14 カーネルで組み合わせて使用してみましたが、正常に
使用できました。私の場合、こちらのドライバを使用する際には、I/O, IRQ を
指定する必要がありました。LAN カードのドライバディスクで、使用する I/O
アドレスと IRQ を変更することができますので、現在の設定を確認しておく必要
が、あります。(私の場合は、2.0 系の ifconfig -a で、確認しました。)
/etc/modules.conf への追加例(I/O ポートアドレス=0x240, IRQ = 10 の場合)
alias eth0 at1700
options at1700 io=0x240 irq=10
|
この FMV-18x 用の修正が、カーネルソースに取り込まれることを期待したいのですが…。
2.4系で、どのようになっているかは、把握していません。
3.2 Sound Blaster
Plamo Linux でも、/etc/moduels.conf にもコメントアウトされているが、
用意されている設定なので、ごく一般的な設定のようですが、以下の設定で
Sound Blaster が、使用できるようになります。
(既に用意されていたので、本当に適切な設定なのか調べていなかったりします。)
/etc/modules.conf への追加例
alias char-major-14 sb
options sb io=0x220 irq=5 dma=1 dma16=5 mpu_io=0x330
|
3.3 Linux/TOWNS パッチ
最近の Linux/TOWNS のパッチを適用した Linux ソースコードは、PC/AT互換機での
コンパイルも考えて作られています。
Linux/TOWNS のパッチを適用した場合、PC/AT互換機でも FM TOWNS のパーティション
情報を利用できるようになります。FM V-TOWNS で、外付
SCSI ハードディスクを使用する場合、Linux/TOWNS パッチを適用した方が、利用範囲
も広がるので便利でしょう。
TownsOS の区画設定では、割当できない 2GB 超のパーティションを作成することも
できるので、Linux/TOWNS 用の fdisk も用意しておくといいでしょう。
3.4 TOWNS モード区画と FM シリーズのパーティションテーブル
FM V-TOWNS では、IDE HDD の内部に TOWNS モード区画を作成して、その部分を
SCSI HDD に見立てて使われています。
TOWNS モード区画の内部は、FM シリーズで使用されているパーティション
テーブルで構成されています。
Linux では、DOS のパーティションテーブル以外も扱えますが、TOWNS モード
区画は、AT互換機の DOS パーティションテーブルの中の区画として構成されます。
この TOWNS モード区画が、Linux からどのように見えるかと、その利用方法に
ついて書きます。
3.4.1 TOWNS モード区画と Linux版 fdisk
PC/AT互換機の DOS/Windows と同様に Linux にも、ハードディスクの区画設定
を行う fdisk コマンドがあります。
このコマンドで、パーティションテーブルを表示する「-l」オプションを指定
して IDE のプライリマリ HDD(/dev/hda) の内容表示の実行例を示します。
(Linux では、IDE HDD は、/dev/hd?、SCSI HDD は、/dev/sd? のデバイス・
ファイルとして取り扱われます)
fdisk による HDD(/dev/hda) のパーテョションテーブルの表示例
vtowns:/home/digit# fdisk -l /dev/hda
ディスク /dev/hda: ヘッド 64, セクタ 63, シリンダ 621
ユニット = シリンダ数 of 4032 * 512 バイト
デバイス ブート 始点 終点 ブロック ID システム
/dev/hda1 * 1 463 933376+ 6 FAT16
/dev/hda2 464 620 316512 fe LANstep
|
上記の例では、HDD 内の 1番目の区画(/dev/hda1) として Windows95 用 区画が、
ID=0x06 の FAT16 領域 で確保されていて、
それ以外の 2番目の区画(/dev/hda2) が ID=0xfe の LANstep 区画 と
認識されています。
TOWNS モード区画を含むパーティションテーブルの内容表示は、Linux 標準の
fdisk では、表示できません。
3.4.2 TOWNS モード区画と Linux/TOWNS 版の fdisk
Linux/TOWNS には、FM シリーズのパーティションテーブルの区画設定可能な
fdisk も作られています。AT版の Linux でも、動かすことはできます。
以下に、上記の TOWNS モード区画 を指定してパーティション
テーブルの一覧を表示させた例です。
(なお、以下の例では、TOWNS 対応 fdisk は、fdisk.towns リネームして
いる事とします)
TOWNS 対応 fdisk による /dev/hda2 内の TOWNSモード区画内の区画情報表示
vtowns:/home/digit# fdisk.towns -l /dev/hda2
Disk /dev/hda2 (TOWNS disk label): 1 heads, 633024 sectors, 1 cylinders
Units = セクタ数 of 1 * 512 bytes
デバイス Boot Start End Blocks Id System Name
/dev/hda21 * 3 260098 130048 1 MS-DOS TownsOS V2.1L51
/dev/hda22 260099 393218 66560 1 MS-DOS DIC
/dev/hda23 393219 618498 112640 1 MS-DOS USER_AREA
<<EMPTY>> 618499 633024 7263 0 Empty
|
上記の例では、/dev/hda21〜/dev/hda23 として使用できるように見えるが、
実際に認識されているかどうかは、別で、実際とは異なります。
今回は、fdisk.towns -l /dev/hda2 として、区画内の
パーティションテーブルを表示させていますが、本来は、
fdisk -l /dev/hda の様に使うため単純に区画内の位置と
引数で指定されたデバイス名を単純に組み合わせて区画を示すデバイス名を
作っているように思えます。
3.4.3 Linux が認識している区画
これまでは、fdisk コマンドが認識している区画情報を示してきました。
以下のコマンドで OS が、認識しているパーティションテーブルを表示させる事ができます。
vtowns:/home/digit# cat /proc/partitions
major minor #blocks name
8 0 2119141 sda
8 1 2118509 sda1
8 16 29316672 sdb
8 17 4195312 sdb1
8 18 4195328 sdb2
8 19 4194304 sdb3
8 20 4194304 sdb4
8 32 12619152 sdc
8 33 4193280 sdc1
8 34 4193280 sdc2
8 35 4193280 sdc3
3 0 1251936 hda
3 1 933376 hda1
3 2 316512 hda2
3 64 30015216 hdb
3 65 4200966 hdb1
3 66 8032 hdb2
3 67 4200997 hdb3
3 68 1 hdb4
3 69 88326 hdb5
3 70 2104483 hdb6
3 71 4200966 hdb7
3 72 4200966 hdb8
|
上記の中で、sd? や hd? は、ディスク全体を示しているのでパーティションとは、
言えないかも知れません。
Linux/TOWNS のパッチを適用していて CONFIG_FM_PARTITION=y
としているので、SCSI パーティション内の FM シリーズのパーティションテーブル
(sdc1,sdc2,sdc3) が、認識できています。
しかし、(3.4.2 の様にすると) TOWNS用 fdisk で認識する事ができる TOWNS
モード区画 (hda2) 内のパーティションは、OS 側では認識できていません。
そのため、TOWNS モード区画内のパーティションは、マウントして使用する事も
できません。
3.4.4 Linux で TOWNS モード区画内のパーティションを認識可能にする
TOWNS モード区画は、PC/AT互換機用のパーティションテーブルの1つの区画であり、
その中に FM シリーズ用のパーティションテーブルが作られています。
この構成は、拡張パーティションに似ています。Linux が、サポートしている他の
パーティションテーブル(BSD で言うところのディスクラベル)には、同様の構成
になっているものもあります。
また、Linux/TOWNS のソースは、TOWNS で使われている区画を使用するため修正が
行われています。
上記のパーティションを認識させる部分のソースコードを参考にすると、
Linux で TOWNS モード区画を利用可能にすることが、できます。
以下に、V-TOWNS の TOWNS モード区画への対応パッチを示します。
V-TOWNS の TOWNS モード区画への対応パッチ
ファイル名
|
vtowns-fm-partition.patch.bz2 (2,866 bytes)
(md5sum: f4b78c40f62554dcc5cb9ec9f201a0a5)
|
作成方法
|
# cd /usr/src
# bzip2 -cd vtowns-fm-partition.patch.bz2 | patch -p 0
(古い、パッチコマンドなら patch -p0 となります)
このパッチは、Linux-2.2.20 カーネルソースを展開して、Linux/TOWNS
パッチの lt-2220-01.patch.bz2 を適用後に、あててください。
bash# make {config|oldconfig|menuconfig|xconfig}
で、以下のようにしてください。
CONFIG_TOWNS = N …………………… FM V-TOWNS のATモードで使用するため
CONFIG_EXPERIMENTAL = Y ……………
CONFIG_FM_PARTITION = Y …………… FM シリーズのパーティションテーブルを有効化
CONFIG_VTOWNS_FM_PARTITION = Y … 今回のパッチを有効化する
|
このパッチを適用し TOWNS モード区画が、認識できるようになると
起動時の「Partition check:」や「cat /proc/partitions」の表示も
変化します。
以下に、起動時の「Partition check:」は、区画がどのように認識されたかが、
分かりやすいので、その表示例を示します。
このパッチ適用後の OS が認識するパーティションテーブルの例
Partition check:
sda: sda1
sdb: sdb1 sdb2 sdb3 sdb4
sdc: sdc1 sdc2 sdc3
hda: hda1 hda2 < hda5 hda6 hda7 >
hdb: hdb1 hdb2 hdb3 hdb4 < hdb5 hdb6 hdb7 hdb8 >
|
この例では、hda2 が、TOWNS モード区画で、その内部にある FM シリーズの
パーティションテーブル内の区画が、 hda5 hda6 hda7 です。
ちなみに、hdb の hdb5 hdb6 hdb7 hdb8 は、拡張パーティション内の区画です。
この2つを比べると、このパッチによってTOWNS モード区画内の区画は、
拡張パーティション内の区画と同じような取り扱いがされている事が分かります。
なお、このメッセージは、起動後でも dmesg コマンドや /var/adm/messages を
参照する事で確認できます。
3.4.5 TOWNS モード区画に関するその他の情報
3.5 その他の話
私は、上記のパッチの他に reiserfs, DVD 関係のパッチと UDF モジュールを
組み込んでいます。実際のところ reiserfs は、使用していません。
パッチの適用やソースに若干の手を入れる順番は、できるだけ一般的なパッチから
適用するのが、いいと思います。
- reiserfs パッチ(linux-2.2.19-reiserfs-3.5.33-patch.bz2)
- dvd_scsi_patch パッチ(私が試したときは、dvd_scsi_patch-2.2.17 を
2.2.19 に適用しました。(修正したかどうかは、忘れました…
が、修正が必要だったはず。下記の捕捉部分を参照)
- Linux/TOWNS パッチ(lt-2219-01.patch.bz2)
- AT-1700 の FMV-18x 用修正が行われたソースコード
なお、UDF モジュール部分(udf-0.9.0.tar.gz)のコンパイルは、カーネルとは、
別に行えるので、順番はいつでもいいでしょう。
捕捉:Linux-2.2.20 の場合
- オリジナルカーネルソース(linux-2.2.20.tar.bz2)を展開する
- reiserfs パッチ(linux-2.2.19-reiserfs-3.5.34-patch.bz2)
(2001/11/11(JST) 現在で、確認したところ linux-2.2.20 用は、無いのなので
2.2.19 用を適用して試しています。reiserfs は、使用していませんが、
パッチの適用は、特に問題無く行えるようです。)
- dvd_scsi_patch パッチを適用
私が試したときは、dvd_scsi_patch-2.2.17 を patch コマンドで適用すると一部、
適用に失敗し reject されます。このときは、2.2.19 のときに修正していたソース
から差分をとって適用しました。
(修正自体は、ごくわずかなので特に問題なくで手で修正できると思います。)
- Linux/TOWNS パッチ(lt-2220-01.patch.bz2)
- AT-1700 の FMV-18x 用修正が行われたソースコードへ置き換え
at1700.c は、TOWNS 用の修正が入っていますが、上記のものへ置き換えても
問題なくコンパイルできました。
|
|