最強1FD tomsrtbt



更新履歴
2002.04.04 リンク切れ修正など、tomsrtbt知らないうちにバージョンが上がった(1.7.366)


「1FD Linux ディストリビューション」というものが多々あって、私も愛用しているものがいくつかあります。ルーターとしては雑誌に記事も書いた[mosquito]、リカバリ他ツール系としては[tomsrtbt]がなんといってもヨイ!素晴らしい。ほぼ理想に近いのです。知らないヒト、これはスゴイよ!マジで。

ルーター用途モノについては実は[floppyfw]というのを永いこと愛用していたのですが、最大の弱点は PCMCIA 対応でなかったこと(再構築で可能ではある。現在ベータである2.4系カーネル版がstableになったら再び乗り換え予定)。実は私のホレ込んでいる上の2つは PCMCIA 対応!という所が嬉しいのですね。鯖のほとんど(全てじゃん)がノートPCである私の環境ではまさに「救世主」なのでした。これで、自分であーでもないこーでもないとソースハックしてカスタマイズする作業から解放されます。さて、mosquito については「 Linux World 」に書いた記事以外の(ボツ部分(^^;)部分や補足など、ホトボリがさめたら書くのでちょっと待っててね。今回は tomsrtbt について書くですよー(結局これも記事に書いてしまったが...)。 ■ tomsrtbt の嬉しさ ■
  • PCMCIA 対応、なんといってもこれだ!
  • 拡張がとても楽(スクリプトが用意されてる)でしかも拡張範囲が広い(容量のある限り何でもできる)
  • そのまんまでも基本ツールが充実
  • いじり倒せる(ムチャできます、おかしくなったら電源切りゃいいんだからね)。
※ちょっと弱いとこ
  • シェルが ash
  • 日本のサイトで詳しいとこは無い(「いいぞー」って書いてるだけ)。
まあ、容量を考えると致し方ない。別に問題ないです。

いろんな使いみちはシリーズの最後に書くとして、まずはフロッピーを作りましょ。


■ tomsrtbt の入手とインストール ■

tomsrtbt とは Thomas Arthur Oehser さんが開発している 1FD Linux ディストリビューション。
tomsrtbtのページからダウンロード元を辿れます。適当に選んでリストのページへ飛ぶと、樽玉があります。Windows でフロッピーを作成する人は dos とかついたヤツを選べばよいのでしょう(たぶんね)。今見た限りではバージョンは 1.7.361 でした。バージョンは読み替えてください。適当な所に持ってきて(実はカスタマイズのたびによく使うので、専用の作業ディレクトリを作った方がよい)、
$ tar zxvf tomsrtbt-1.7.361.tar.gz
$ cd tomsrtbt-1.7.361 

では展開されたファイルを見てみましょう。
まず重要なのはマニュアルですが、tomsrtbt.FAQ がそうです。

なんだかネット検索すると、tomsrtbt について触れてるページはやたら多いのですが、
触れてるだけのばっかりなので、しょうがないから細かくやりましょう。
訳もつけます、ただし、しまケロ流ね。は? Dos のは訳しませんよ。ごめんね。

--------------------------------------------------
原文ここから
from tomsrtbt.FAQ
-----

4) GNU/Linux installation

a) extract the .tar.gz archive
b) Be root
c) Be in the tomsrtbt- directory
d) Have a blank floppy with no bad sectors
e) Do './install.s'

The script assumes you have ELF and that your 3.5" 1.44M floppy is on fd0.

Virtually all 1.44 drives support 1.722 just fine, but it is possible for
an extended format to break a floppy drive, use tomsrtbt at your own risk.
The install does mknod to make /dev/fd0u1722 if you don't have it already.

If you use libc.so.6 / glibc, you might need something like:
 LD_LIBRARY_PATH=/usr/i486-linux-libc5/lib; ./fdformat /dev/fd0u1722

Umount any mounted floppies before installing.

-----
原文ここまで
--------------------------------------------------
訳ここから
-----

4) GNU/Linux 上でのインストール

a) .tar.gz アーカイブを伸張してくれ
b) で、root になる
c) tomsrtbt- つーディレクトリができっからそこに入って
d) 空のフロッピーの用意はよいか?不良セクタはないだろうな?
e) './install.s' コマンドを打つべし!打つべし!(1回でいいぞ)

ところで、あんたのシステムは ELF 形式をサポートしてて、
3.5 インチ 1.44M のフロッピーが fd0 として認識されるだろうね。
スクリプトはそれを前提にしてるかんな。

フツー 1.44 用のドライバは 1.722 もサポートしてるから
大丈夫だとは思うけどさ、フロッピードライブぶっ壊れることにならないとも
言い切れないかんな。 tomsrtbt を使うのは全て自己責任においてやってくれよ。

スペシャルファイル /dev/fd0u1722 がまだなければ
mknod で作っちゃうのでそこんとこよろしく。

そうそう、あんたんとこのシステムが libc.so.6 / glibc 環境なら
このままじゃダメだ。

LD_LIBRARY_PATH=/usr/i486-linux-libc5/lib; ./fdformat /dev/fd0u1722

とやってくれ。

インストールする前にマウント中のフロッピーを全てアンマウントしとけよな。

いい夢見ろよ

-----
訳ここまで
--------------------------------------------------

で、書いてあるとおり、

# ./install.s

で、フロッピーの完成です。

起動させると、まずビデオについて聞かれるので、まあ、好きな方でよし。
ほっとくと勝手に進みます。

で、キー配列を聞かれます。日本語106キーボードは 22 です。

最初は root でログインします。初期パスワードは xxxx です
(隠してるんじゃなく、ホントに「エックスエックスエックスエックス」)。

■ 最低限の環境設定 ■

tomsrtbt の強さはなんといってもノートPC で使えること。ぜひ実際にノートで立ち上げてみましょう。 ま、ここではとりあえず環境設定について。

当然、tomsrtbt はメモリ上にシステムが展開されます。こういったタイプの 1FD OS を使用するとき最も重要なことの一つが「環境の設定変更をどう保存するか」です。コレを知らないと、デフォルトのまま使いつづけるとか、起動のたんびに設定することになるばかりか、最初の起動後、通常のディストリビューションの感覚で何も知らずに変更していって、そのままシャットダウンしてパー、だとか、保存方法がわからなくてパー、とかいう状況に陥って人生がイヤになります。

コレも一部マニュアルの訳でいってみましょう。
--------------------------------------------------
原文ここから
from tomsrtbt.FAQ
-----
7) Customizing

If you have problems, try doing it under tomsrtbt instead
of on your own system. I test and support it under itself!

To customize startup, edit settings.s and rc.custom.gz on the floppy.
Of course you have to "gzip -d" rc.custom.gz to edit it.
Use /dev/fd0u1722 to mount it, /dev/fd0 or /dev/fd0H1440 will not work.
Typical uses: insmod, ifconfig, route, resolv.conf, hosts, mount, etc.

to be continued(shimakero)

-----
原文ここまで
--------------------------------------------------
訳ここから
-----

7) Customizing

今あんたが使ってるシステムになんか不満や問題があったら
tomsrtbt を使ってみてくんな。tomsrtbt で解決してやることが
できっかもしれねえな。

To customize startup, edit settings.s and rc.custom.gz on the floppy.

カスタマイズ作業はフロッピー上の settings.s  rc.custom.gz
を編集することから始まるかんな。

わかってると思うけどさ、.gz ファイルはそのまま編集は出来ねえよ。
だから rc.custom.gz を編集するには gzip -d で伸張してからだ。
で、フロッピーをマウントするのは /dev/fd0 とか /dev/fd0H1440
じゃなくって、/dev/fd0u1722 だぞ。

〜 以下省略
-----
訳ここまで
--------------------------------------------------
まあ、実際はコレくらい知っておけばとりあえず使えるようになる。
ではちょっと例を挙げてみよう。

※IPアドレスを静的にする。

使えるPCカードについてはドライバのリストなどを見て各自用意してください。けっこういろいろ使えそうなので驚く。また、ドライバは[ここ]からダウンロードして追加できる 初期状態ではネットワークアダプタには DHCP でIPアドレスが振られる。裏を返せば DHCP鯖が存在しないと降られるアドレスがないため eth デバイスが存在しない状態となる(認識はされて動作準備は出来ている)。最初にマニュアルを読んでないと驚く。そしてノートPCの場合で、しかも他のディストリビューションで多少の心得がある場合は、きっと、/etc/pcmcia/network.opt あたりを見に行くだろう。するとさらに驚く。

/etc/pcmcia/network.opt は実質的に空っぽなのね...。

変数設定と制御のプレースホルダがあるだけで、実質なにもしないのである。もちろん、これに何を書いても無駄だ。

正解はマニュアルにある通り、settings.s rc.custom.gz の2つのファイルを編集することである。 まずはとりあえず、settings.s の中身を見よう(コメント行と紛らわしいのでプロンプトとして kero01.pond をつける)。
kero01.pond# mount /dev/fd0u1722 /mnt
kero01.pond# cd /mnt
kero01.pond# less settings.s

実行結果

#DOMAIN=
#DNS_1=
#IPADDR=
#NETWORK=
#NETMASK=
IF_PORT=10baseT
PASSWD=ea416ed0759d46a8de58f63a5977499
FD=/dev/fd0u1722
FN="b 2 60"
.....

上のようにネットワーク周りがコメントアウトされている。ここを書き込んで生かす。
ここまで黙っていたが、なんと vi が装備されている。
容量に対してケチくさい 1FD 界では涙モノだ。
「 vi があればオレは無敵だ」などとつい口に出してしまってもかまわない。

kero01.pond# vi settings.s

さて、IPアドレスとして 192.168.1.10 を振るなら

----------
DOMAIN=asyoulike
DNS_1=yourknownns
IPADDR=192.168.1.10
NETWORK=192.168.1.0
NETMASK=255.255.255.0

でよいでしょう。もちろん DOMAIN と DNS_1 はあなたの環境に合わせて。

これだけではまだ DHCP で取りにいってしまうので、それを止めさせるため、
rc.custom.gz をいじる。

kero01.pond# gzip -d rc.custom.gz
kero01.pond# vi rc.custom

eval 'dhcpcd--'

とかいう行がはじめの方にあるだろう。コレをコメントアウトすればよい。

#eval 'dhcpcd --'

とりあえずここまででリブートしてみよう。

kero01.pond# umount /mnt
kero01.pond# reboot

今度は指定したIPアドレスが降られているはずだ ifconfig で確かめよう。

ん?ダメだって? eth0 が出てこないって?
またぁ、安いPCカード使ってんでしょ。正しい!

ここでうまく動いちゃったのは eepro とか使ってるようなヒトです。 まったくうらやましい!しかし、そういったヒトはしまケロの話しなぞ 聞こうとは思わないだろうから殆どいないでしょう。 でないと私が寂しすぎ(^^;。でも、ま、ここで一段落して、 次はお決まりのネットワークデバイス認識とカスタマイズについて、 その後は利用法、応用法について書いてくつもりなのでしばしお待ちを。

なんて、待てないよね(^^;

とにかくネットワークカード使えるようにしないと嬉しくないもんね。
ではいきますか。


■ PCカードを認識させて動かす ■

tomsrtbt で私が気に入ってる点の1つに、基本的な Linux システムとまったく同じように扱えるというのがあるのね。実際は細工しまくりなんだけど、ユーザーに見えてる部分はまったくフツーの Linux というわけ。だから、フツーのディストリビューションでやることをやればよいのですな。では、大まかな流れを

  • フロッピーの中身を展開して、通常の Linux のように扱えるファイルツリーを作成(付属の専用スクリプト unpack.s)
  • 足りないドライバの追加
  • コンフィグの修正
  • ファイルツリーを圧縮して(付属の専用スクリプト buildit.s)、インストールできる形にして、フロッピーに書き込み(付属の専用スクリプト install.s)


  • では、おなじみ Corega の EtherII PCC-T と Melco LPC2-T を動かす例を書いていきましょう。

    まず、フロッピーを作成したとき、install.s を実行したホスト、ディレクトリに入ります。仮に /usr/local/tomsrtbt ということにしましょう。ここに unpack.s という実行可能ファイルがありますね。こいつがフロッピーの中身をフツーのファイルツリーに展開するスクリプト。
    まず、ドライブに tomsrtbt のフロッピーを入れる。で、
    
    # cd /usr/local/tomsrtbt
    # ./unpack.s /dev/fd0u1722
    
    すると、 tomsrtbt-1.7.361.unpacked というディレクトリができる。
    
    # cd tomsrtbt-1.7.361.unpacked
    # ls
    
    実行結果
    
    1   2   buidit.s     license.html
    
    この 2 というディレクトリにツリーがある。つまり 2 が tomsrtbt の / なわけだ。
    ちなみに 1 は /dev/fd0u1722 を除いたときに入ってたファイル群。
    以後、etc とか出てきますが、本体システムのと勘違いしないように。
    
    # cd 2
    
    ls するとほら、見慣れたツリー。
    
    さて、モジュールは足りてるか見てみよう。例の2枚で合わせて
    
    pcnet_cs.o
    pcmcia_core.o
    ds.o
    8390.o
    
    を使う。もう最近ではこーいうの何枚か覚えちゃったよ。
    
    # lib/modules/pcmcia
    # ls
    
    pcnet_cs.o, pcmcia_core.o, ds.o 全部あった。さすが NE2000コンパチです。
    では次
    
    # ../net
    # ls
    
    plip.o しか入ってないのね。あらら。だめじゃん NE2000 コンパチ(笑)。
    しょうがないので、tomsrtbt ダウンロードサイトの add-ons から
    8390.o.bz2 というのをとってきて、どっかで
    
    # bzip2 -d 8390.o.bz2
    
    して、8390.o を作って、net の中に入れます。
    
    さて忘れていけないのは、この 8390 を使わせる設定。
    pcnet_cs があって、8390 が無い状態で平然としていたシステムに
    世の中優等生ばかりでないことを教えてやらねばなりません。
    
    etc/pcmcia/config を編集します。これも毎度お馴染みの作業です。
    
    # shimakero
    device "pcnet_cs"
      class "network" module "net/8390", "pcnet_cs"
    
    #device "pcnet_cs"
    #  class "network" module "pcnet_cs"
    
    のように以前のをコメントアウトして、8390 を関連付けます。
    
    で、さらに
    
    # shimakero
    card "Corega PCC-T Ethernet"
      version "corega K.K.", "corega EtherII PCC-T"
      bind "pcnet_cs"
    
    card "Melco LPC2-T Ethernet"
      manfid 0x01bf, 0x2216
      bind "pcnet_cs"
    
    と追加して、カードとモジュールをバインドさせて、
    モジュールはOK。
    
    これであとは圧縮すればよいです。
    え? network.opts 書かなきゃだめじゃんって?
    さっき言ったでしょ、tomsrtbt では setting.s に書いたものが
    有効なんです。PCMCIA でもおんなじなのですよ。
    
    ではフロッピーを作り直しましょう。
    
    # cd /usr/local/tomsrtbt-1.7.361/tomsrtbt-1.7.361.unpacked
    
    で戻って、そこにある buildit.s を実行する。
    buildit.s はこの上のディレクトリにもあるが、こっちを実行する。
    
    # ./buildit.s
    
    すると
    
    $HOSTNAME-tomsrtbt-1.7.362
    $HOSTNAME-tomsrtbt-1.7.362.tar.gz
    
    という2つのファイルが出来る。開発番号がインクリメントされている。
    なんか大きなお世話かも(笑)。
    
    で、このディレクトリのほうに入る。
    
    # cd $HOSTNAME-tomsrtbt-1.7.362
    # ls
    
    どっかで見たような...そうです。最初にフロッピーを作成した install.s
    のあるディレクトリの構成。つまり、ここで ./install.s すると
    今までの設定を反映したフロッピーが出来るというわけ。なーるほど。
    
    # ./install.s
    
    でフロッピーが出来ます。起動させると今度は
    「ピッ、ピッ」と2つとも高い音、うれしー ○(≧▽≦)o
    
    というふうにどんどんカスタマイズできるわけです。
    カスタマイズ方法もわかったし、ネットワークにもつながったし、
    さー遊んでみよう!
    
    以上はもちろん tomsrtbt.FAQ に書いてあるです(たぶんね)。
    
    さて、つぎは活用編を書きますのでしばしお待ちを。



トップページ