無用の用無 失敗の記録帳、こうすりゃよかったのね。

webは失敗回避の知恵でいっぱい。他人には無用の用ですら無い自己中心的な備忘録です。口頭だけでまだ無形な話もあります。

CDLinux という名のdistro(その11)

2010年05月06日 | Weblog
CDLinux4.2の解説文書
カスタマイズ
CDLinux4.2のファイルの配置についての簡単な説明

Cdlinuxは再構成可能にしてあります。2つのパートに分けています。
1. Base: 2.88Mのフロッピー、これが CDLinux.img
2. extra:残りのパッケージとモジュールです
CDLinuxの基本は2.88Mのvfat形式のフロッピーイメージです。CDLinuxの基本だけが使いたければ他のファイルは全部不要で、このイメージだけでも使えます。含まれているのは bash(1.14.7), bft(小さいftp daemon),busybox, bzip2, e2fsprogs, file, find, gawk, grep, gzip, midnight commander(4.1.35), portmap(ntfsがマウントできる), sed, tar, vim(5.8)その他です。
”extra”パートは残りのパッケージとモジュールを含んでいます。これらのパッケージやモジュールは起動時には/CDlinux/extra/ にあります。起動時にCDLinuxは extra/フォルダーを見て、そこにあるパッケージやモジュールをインストールします。
もちろん起動時にCDLinux.imgだけを使うことはできますが、全機能を使いたければextraフォルダーとそのなかにファイルを置いておきます。面倒を厭わないなら自分の好きなプログラムだけをextra/にいれ、必要の無いものを消去して、CDLinuxのカスタムバージョンをリビルドできます。

どうしたら好きなプログラムをCDLinuxに付け加えられますか?

CDLinuxは小さくてもユーザーが再構成可能であるようにしています。有用なプログラムでもあえて入れていません。自分でpackageかmoduleをつくってインストールできます。どちらにするかはプログラムによります。小さくて初期化が必要でないならばpackageに、そうでなければmoduleがいいでしょう。例えば、F-protはmoduleにして、extra/に入れておけば、ウィルススキャンができます。入れていないのは再配布権の問題です。

CDLinux用にプログラムを作るときの注意

· CDLinuxはgcc-2.95.3でコンパイルされglibc-2.2.5でリンクされています。ですからプログラムはgcc-2.95.xとglibc-2.2.xを使ってビルドするとよいでしょう
· もしプログラムがCdlinuxに含まれていないライブラリを使う必要があるなら、そのlibも付加する必要があります
CDLinuxのpackageの作り方
CDLinuxのPackageの作り方は単純です。Packageは .tar.gzに圧縮したファイルです。"xxx-cdl.tgz"は extra/フォルダにpackageの形ではいっています。

注意点は:
· packageの名前は"xxx-cdl.tgz"としなければなりません。さもないと無視されインストールされません。
· packageの簡単な説明が書けます。例えば zxh/SPECのように入れられます。すると /var/log/packagesに書き加えられます。SPECの仕様は"xxx-cdl.tgz"を参考にしてください。
· Zxh/にあるSPEC以外のファイルは無視されインストールされません。
· CDLinuxはサイズの小さいRAMディスク上でも動くようにしています。ですからpackageは小さくしてください。Manやdocのようなファイルは zxh/ フォルダーにおいたままにできます。

Cdlinux用の”module”の作り方は

Cdlinuxヘプログラムを付け加えるなら、”module” にします。”module”は cramfs ディスクイメージです。起動時には、Cdlinuxはフォルダーextra/ にある”xxx-cdl.md”という名前のファイルを見つけ出して、自動的にマウントします。
Cdlinuxの”module”を作る方法は少し複雑です。ディスクイメージを作るにはmkfs.cramfsが必要です。あとは"xxx-cdl.md"のファイルを見て下さい。

Cdlinux用の”module”の作り方の注意点
· モジュールの名前はxxx-cdl.mdでなければなりません。さもないと無視されてインストールされません。
· Moduleのマウントポイントを示しておく必要があります。このためには、マウントポイントをファイル名".mount_point"として書いておきます。そしてcramfsイメージのルートに保存します。".mount_point"の書式についてはフォルダーextra/ にある”xxx-cdl.md”という名前のファイルを参照してください
· プログラムの初期化が必要なら、cramfsイメージのルートにinit scriptとして初期化のためのスクリプトを置いておきます。名前は”.init”でCDLinuxはそれを見つけるとinitを実行します
· 普通は”module”をメモリーにインストールしようとします。メモリーの空きが必要ならば、”loop”モードでmoduleをマウントさせる事ができます。カーネルコマンドラインにCLD_LOOPオプションで指定してください。
· Cramfsファイルシステムは読み出しのみです、ファイル/フォルダーのタイムスタンプは記録されません。

CDLinuxをカスタマイズする方法

カスタマイズには、難しい方法とやさしい方法の2通りあります
難しい方法はinitrdを直接書き直す方法です。Initrdは標準のext2ファイルイメージになっています。それをマウントしているので、好きなように書き直せますが、この方法はあまり推奨しません。やさしい方法について詳しく解説します。
   やさしい方法というのは、extra/system-extra-cdl.tgzを修正する方法です。修正したファイルができたとします。例えば、/etc/profile を修正したなら、修正したものを含めてファイルをsystem-extra-cdl.tgz に圧縮します。CDLinuxは新しいもので古いものを置き換えます。また/etc/rc.d/rc.local としてスクリプトをsystem-extra-cdl.tgzに付け加える事もできます。これも自動的に検出され起動時に実行されます。以下にその使用例を示します:

bashのプロンプトの変更

/etc/profileの"PS1="の行を修正し、/etc/profile としてsystem-extra-cdl.tgzに戻します。
コマンド行のエディタをemacsからviに変更する
/etc/inputrc に"set +o vi"を付け加えて修正します。修正した/etc/inputrc をsystem-extra-cdl.tgzに戻します。

CDLinuxにnon-PnPのISAカードを自動認識させる

NE2000コンパチのnon-PnP ISAカードを持っていて、それがI/O ポートに0x300をつかっていたとします。 CDLinuxに自動認識させるためにはシェルスクリプトを書き加える必要があります。"modprobe ne io=0x300" の1行を加え、chmodで実行権を与えます。それをsystem-extra-cdl.tgz の /etc/rc.d/rc.local として保存します

CDLinuxを簡単なgateway/firewallとして使いたい

iptables-x.x.x-cdl.tgz パッケージを修正します。/etc/rc.d/init.d/IPTABLES としてスクリプトを加え、さらにルールも書き加えます。書式はextra/dcron-x.x.x-cdl.tgzを参照してください。
CDLinuxは初期化の段階で/etc/rc.d/init.d/ のどんなスクリプトでも実行します。sysvinitのようですが、run levelを認識しない点が違っています。

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« CDlinux 0.9.6.1standard 版... | トップ | ドライバーのないusbcamの使い方 »
最新の画像もっと見る

コメントを投稿

Weblog」カテゴリの最新記事