技術情報 Linux関連

  • カーネルの再構築の際のご注意   
  • ノートPCによるコンパクトフラッシュのバックアップ方法   
  • ノートPCによる lilo の方法    
  • MicroDriveへのインストール(Ver.3.x用) 方法1 
  • MicroDriveへのインストール(Ver.3.x用) 方法2 
  • MicroDrive 1GBモデル用 lilo パラメータ   
  • 動的ルータ   
  • ローミングアクセスサーバ   (
  • タイタス相模原センター様向けdhcpcd-0.70用パッチ(Ver.1.5以前用) 
  • QuickTimeプロキシの使用方法(Ver.1.5用) 
カーネルの再構築の際のご注意

カーネルを再構築する際には、ソースに以下の修正が必要です。

kernel2.0.x の場合

ファイル: /usr/src/linux/drivers/char/keyboard.c

kernel2.2.x の場合

ファイル: /usr/src/linux/drivers/char/pc_keyb.c (line515あたり)

修正箇所:

#ifndef __i386__

#endif

#ifndef notdef
:
#endif

 

ノートPCによるコンパクトフラッシュ(CF)のバックアップ方法

ノートPCのPCカードスロットに指し込んだときに出る表示が /dev/hde の場合

バックアップ:

# dd if=/dev/hde of=backup_file_name

確認:

・出荷時添付の16MB CFの場合
# dd if=/dev/hde bs=1k count=15744 | cmp - backup_file_name

・出荷時添付の32MB CFの場合
# dd if=/dev/hde bs=1k count=31296 | cmp - backup_file_name

戻し方:

# dd if=backup_file_name of=/dev/hde

※PCカードアダプタを抜く前に、必ず以下を実行することを忘れずに

# cardctl eject

 

ノートPCによる lilo の方法

ノートPCのPCカードスロットに指し込んだときに出る表示が /dev/hde の場合

■ファームウェアV2.xまでの場合

lilocf.confは次の内容

# 出荷時添付の16MB CF(ジオメトリ:CHS=246/4/32)の場合
boot=/dev/hde
map=/boot/map
install=/boot/boot.b
disk=/dev/hde
bios=0x80
cylinders=246
sectors=32
heads=4
partition=/dev/hde1
start=32
compact
image=/boot/bzImage
label=lamb
root=/dev/hda1
read-only
append="ether=3,0x200,eth0 ether=10,0x300,eth1 hda=246,4,32 hda=noprobe"

■ファームウェアV3.x の場合

lilocf.confは次の内容

boot=/dev/hde
map=/boot/map
install=/boot/boot.b
disk=/dev/hde
bios=0x80
partition=/dev/hde1
linear
prompt
timeout=5
image=/boot/bzImage
label=lamb
root=/dev/hda1
read-only
append="ether=3,0x200,eth0 ether=10,0x300,eth1 hdb=none"

打ったコマンドは以下の通り

mkdir /mnt/hde1
mount /dev/hde1
/mnt/hde1
cp -f lilocf.conf /mnt/hde1
cd /mnt/hde1
mknod mnt/ramdisk/dev/hde b 33 0
mknod mnt/ramdisk/dev/hde1 b 33 1
vi lilocf.conf
chroot . lilo -v -v -C ./lilocf.conf
umount /mnt/hde1
cardctl eject

Thanks Mr. Ito

 

動的ルータ化

子羊の動的ルータ化に成功しました(~o~)
邪道利用のツリーが長くなったのでまとめました。
ご協力頂いたみなさま、lamb様ありがとうございます。

以下の方法は、RAMの/etcはバックアップされており、再起動でも設定は変化しないしトラブルは初期化の操作で元に戻せます。
初期化後の再ルータ化も/home/lambから書き戻せば、またルータ化出来るしです(^_^)/
(確認してませんが、/home/lambはCF上なので、たぶん)

ちなみに私はWinNTが常用マシンでLinuxマシンも持ってます。

--------作業内容--------------

注意:各作業間におけるcd、ftp等の操作は省略してあります。

  1. lamb様から頂いたrouted.dat,routed.txtをWinNTからftpで他のLinux送り込む。
  2. WinNTからTelnetでログインし、#su で root ユーザ
  3. #mount -o remount,rw / でCF書込可能モード
  4. telnet上でftpを使用して他のLinuxへログインし、2つのファイルを /home/lamb/へ取得
  5. またTelnetで4〜9のファイルを /home/lamb/へコピーしてviで修正し元ファイルへ上書き
  6. 1〜2.のファイルも該当ディレクトリへコピーして #chmod +x ??????? で実行件を与える。
  7. 3.のリンクを作成
  8. #shutdown -r now で再起動

------ファイル修正リスト-------

  1. /etc/sbin/routed
  2. lamb様より送りいただいた実行ファイル

  3. /etc/rc.d/init.d/routed

    lamb様より送りいただいたrouted起動スクリプト

  4. /etc/rc.d/S55routed
  5. 上記スクリプトへのリンク作成

  6. /etc/hosts

    使用するネットワークに合わせた修正

  7. /etc/resolv.conf
  8. DNSの削除、ホスト名の変更

  9. /etc/sysconfig/network
  10. GWや使用するネットワークに合わせた修正

  11. /etc/sysconfig/network-scripts/ifcfg-eth1
  12. 固定IP化と使用するネットワークに合わせた修正

  13. /etc/sysconfig/network-scripts/ifcfg-eth0
  14. 使用するネットワークに合わせた修正

  15. /etc/sysconfig/network-scripts/ifup-post

    全フィルタの削除

----------失敗事例-----------

  1. 立ち上げ不能
  2. 初期化で元に戻るのがいやで他PCから/etcのRAM領域の元になっている /ramdisk/etcをいじくり壊し再起動出来なくなっちゃいました(*_*)。  
    umountせずにCFを抜いてしまったり(マシン1ではcardctl ejectは有りません)  
    umountやcardctl ejectの忘れ等もありCF破壊とも思っていました。  
    書込可能モードへの変更に気がつかなかった事と、ftpでファイルを送り込めない(ftpdが動いていない)けどftpで取り込む事はできるの 2点に気がつかなかった為にこんな事をしてしまいました。  
    lambさんの技術情報をよく見たらのってたのですlambさんは親切でした。

  3. CF修復不能

    # dd if=backup_filename of=/dev/sdc  結果はマシン1による上記で修復しました。

    しかし、以下の内容でロスしました。

    @書き戻した後のmountがエラーで、中身の確認が出来なかったので修復ミスと判断。

    Afdiskが必要と勘違いして作業したがマシン1では購入時と同じ領域確保が不可能。

    B@の後にPCをrbootすると正常にmountできて中身の確認ができました。
    (boot時にFC情報が確認出来ていないためと思います)

    Cマシン2ではPCとCFの相性問題と判断されるエラーが発生し使用不能。

    マシン1(WinNTで常用)  DOSV  WinNT/レーザー5 Linux6.0  
    SCSIアダプタ  KERNEL PCD500 PC Card Reader

    マシン2  Libretto50  VineLinux1.1  内蔵PC Card スロット

  4. 作業ミス

    Telnetログイン応答に2分30秒かかるようになっちゃいました。原因は単なる作業ミス。

    @DNSが無い場合、/etc/resolv.confにDNSの記述があると似たような現象になるのは知っており/etc/resolv.confのDNSを消したつもり。

    A子羊LOCAL側からtelnetでLANモニタもLOCAL側しか確認していなかった。

    B1回目のパケット応答は正常で2回目以降パケット応答なのでDNS問題と気がつかなかった。

    CGLOBAL側(デフォルトゲート設定側)からも試したが同様。

    D/sbin/routeの表示も遅いのでリソース問題を疑う。

    EGLOBAL側からもLANモニタで見てみたらなんと・・・・・・・・・

    F202.232.240.5へのUDP DNSパケットが4×3=12パケットも出ている。

    Gその後にtelnetが正常に応答している。

    H/etc/resolv.conf、/home/lamb/resolv.confが直っていない、がーーーーーん

-------最後にlambサンへのお願い---------

Web設定で確認すると設定されている状態と合いません。たぶん#でコメントアウトしたりしたためと思ってます。
改造途中でコメントアウトせずに変更したときに表示されたような気が。

  • ローカル側の設定:DHCPサーバ機能が、使用に表示される。
  • グローバル側の設定:IPアドレスをDHCP取得に表示される。
  • 取得したアドレスは正常。
  • IPアドレス、ゲートウエイ、DNSが空白。

改造前の話ですがグローバル側の設定でDNS空白のまま設定が出来ない仕様の様です。
DNS空白の設定ができれば各種etcファイル内を初期と同じ行にして、ルータ化後Web設定が使用できると思います。
DNS設定しないで使いたいのは私ぐらいかもしれませんが、弊害が無ければ次期バージョンでと思ってます。 以上

Thanks Mr. noboru


使用環境によって

  • /etc/hosts.allow
  • /etc/hosts.deny

も適切な内容に変更してください。

Thanks Mr.Kinoshita

 

ローミングアクセスサーバ化

こちらで書き込ませていただくのは初めてですね。

LAMBのローミングアクセスサーバ化の手順をまとめました。
サポートして下さった、morigenさん、lambさん、どうもありがとうございました。

ローミングアクセスとは、複数パソコンでWebブラウザの「ブックマーク」や「履歴」を共有するための仕組みです。
以下のような症状の方に特に効果があります;-)

  • 複数パソコンを所持している(LAMBをお持ちの方はおそらく該当しますよね)
  • Netscape Communicatorを使っている
  • ブックマークの管理に関心がある

まとめは私のサイトに置かせていただいてます。

勝手を言って申し訳ないのですが、トップページからお入りになってください。
暫定版のため、今後置き場所を変更する可能性がありますので。
(「子羊と暮らす」という項目です)

Thanks Mr.とれもろ

 

MicroDriveへのインストール(Ver.3.x用) 方法1

V3のCFを元に、その内容をそっくりMDにコピーする方法です(V2のCFでも方法はほぼ同じです)。他のディストリビューションから構築したものをインストールする場合は次の項を御参照ください。ノートPCなど、PCMCIAインターフェイスを装備したパソコンでの例をご紹介します。

方法:

  1. まず、V3のCFを準備します。
  2. Linuxでマウントして内容をまるごと tar で吸い上げます。

    tar でうまくいかない場合は cp -a で丸ごとコピーしてください。
    (tar1.12にはバグがあるので、戻したときにファイルのパーミッションが復元されません。)

    コマンド例:(PCカードドライブが、hde と認識されている場合)

    # mkdir /tmp/lamb
    # mount /dev/hde1 /mnt/hde1
    # cd /mnt/hde1
    # tar zcpfv /tmp/lamb/lamb.tar.gz *   または  cp -a * /tmp/lamb
    # cd
    # umount /mnt/hde1
    # cardctl eject 1

  3. MicroDriveをフォーマットします。
  4. 以下は、お勧めの構成です。

    第1パーティション rootパーティション 50〜100MB read-only
    第2パーティション ユーザ領域 残り read-write可能

    (swap は、パーティションを切るときに用意しても、あとからswapファイルとして追加してもよいと思います。ただし、mkswap, swapon コマンドはデフォルトでは用意しておりませんので、他から導入する必要があります。)

    # fdisk /dev/hde
    # mke2fs /dev/hde1
    # mke2fs /dev/hde2

  5. CFの内容をMicroDriveに移します。

    tar で内容をそっくり戻します。または、cp -a でコピーします。

    # mount /dev/hde1 /mnt/hde1
    # cd /mnt/hde1
    # tar zxfv /tmp/lamb/lamb.tar.gz   または  
    cp -a /tmp/lamb/* .

    lilo_md.cfのほうが、MicroDrive用です。340MB用になっていますので、1GBの場合はパラメータを修正してください。

    MicroDriveをマウントした状態で lilo を実行します(lilo_md.cf をルートに置いた場合)。

    # cd /mnt/hde1
    # chroot . lilo -v -v -C ./lilo_md.cf

    必ずアンマウントしてから、PCカードアダプタを引き抜きます。

    # umount /mnt/hde1
    # cardctl eject 1

  6. LAMBで起動します。
  7. 必要に応じて、/etc/fstab を書き換えていただき、/dev/hda2 がマウントされるようにしてください。

     

また、御注意点として、LAMBに標準でインストールされている apache は デフォルトでは root 権限で起動するようになっています。Webサーバとして外部に公開される場合は、もう一つWebサーバを立ち上げるか、設定ページが使えなくなりますが通常ユーザで起動するように設定を変えてください。

 

MicroDriveへのインストール(Ver.3.x用) 方法2

他のRedHat系ディストリビューションからハードディスクなどにインストールしたものをMicroDriveに移してから、LAMB用にカスタマイズする方法です。LAMBは、RedHat6.2Jを元にしていますので、これと同じディレクトリ構成のディストリビューションならこの方法でほぼ問題ないでしょう。ノートPCなど、PCMCIAインターフェイスを装備したパソコンでの例をご紹介します。

方法:

  1. まず、V3のCFを準備します。
  2. Linuxでマウントして内容をまるごと cp -a で吸い上げます。

    コマンド例:(PCカードドライブが、hde と認識されている場合)

    # mkdir /tmp/lamb
    # mount /dev/hde1 /mnt/hde1
    # cd /mnt/hde1
    # cp -a * /tmp/lamb
    # cd
    # umount /mnt/hde1
    # cardctl eject 1

  3. MicroDriveをフォーマットし、あらかじめインストール済みのディストリビューションから内容をコピーします。
  4. MicroDriveをフォーマットします。以下は、お勧めの構成です。第1パーティションには、次のステップでコピーする容量を確保しておきます。

    第1パーティション rootパーティション 50〜500MB read-only
    第2パーティション ユーザ領域 残り read-write可能

    (swap は、パーティションを切るときに用意しても、あとからswapファイルとして追加してもよいと思います。)

    # fdisk /dev/hde
    # mke2fs /dev/hde1
    # mke2fs /dev/hde2

    あらかじめ、RedHat系のディストリビューションからハードディスクに、お好みの構成でLinuxをインストールしておきます。ノートPCにインストール済みのLinuxを用いてもよいですし、別のパソコンに新たにインストールしたものでもよいでしょう。LAMBの root パーティションは /dev/hda ですので、/dev/hda にインストールされたほうが、分かりやすいと思います。

    この方法で確認しているのは、RedHat6.2Jです。ディストリビューションやバージョンによって、微妙に構成が違いますので、あとから /etc などの内容を調整する必要も出てくると思います。

    ご参考までに、LAMBのカーネルは 2.2.16 、glibcのバージョンは 2.1.3 ですので、これらのバージョンが合えばベストです。

    その内容をMicroDriveの第1パーティションにそっくりコピーします。この手順は省略します。

  5. CFの内容をMicroDriveに上書きします。

    まず、不要なディレクトリをMicroDrive側から削除し、その上にCFの内容を cp -a でコピーします。不要なディレクトリを削除しておくことで、/etc /dev /var がRAMディスク(約4MB)に収まるようになります。

    # mount /dev/hde1 /mnt/hde1
    # cd /mnt/hde1
    # rm -rf home dev etc boot mnt tmp var (十分注意して実行してください)
    # cp -af /tmp/lamb/* .

    lilo_md.cfのほうが、MicroDrive用です。340MB用になっていますので、1GBの場合はパラメータを修正してください。

    MicroDriveをマウントした状態で lilo を実行します(lilo_md.cf をルートに置いた場合)。

    # cd /mnt/hde1
    # chroot . lilo -v -v -C ./lilo_md.cf

    syslogd を動作させるために、minilogd を退避します。

    # mv sbin/minilogd sbin/minilogd.sav

    必ずアンマウントしてから、PCカードアダプタを引き抜きます。

    # umount /mnt/hde1
    # cardctl eject 1

  6. LAMBで起動します。
  7. 必要に応じて、/etc/fstab を書き換えていただき、/dev/hda2 がマウントされるようにしてください。

     

また、御注意点として、LAMBに標準でインストールされている apache は デフォルトでは root 権限で起動するようになっています。Webサーバとして外部に公開される場合は、もう一つWebサーバを立ち上げるか、設定ページが使えなくなりますが通常ユーザで起動するように設定を変えてください。

 

MicroDrive 1GBモデル用 lilo パラメータ

1GB MicroDrive の場合、lilo のパラメータを以下のように指定してください。340MBモデルの場合と違う箇所は赤で示しています。
また、カーネルを置くパーティション(下記の場合 hda)は約500MBを上限としてください。カーネルを置くパーティションは、
1024シリンダ以内になければならないという制限に起因します。

(PCカードドライブが、hde と認識されている場合)
# cd /mnt/hde1
# chroot . lilo -v -v -C ./lilo_md.cf
 で lilo がインストールできます。具体的な方法は上記を参照してください。

----------------(/lilo_md.cf の内容)
boot=/dev/hde
map=/boot/map
install=/boot/boot.b
disk=/dev/hde
bios=0x80
cylinders=2088
sectors=63
heads=16
partition=/dev/hde1
start=63
compact
linear
image=/boot/bzImage
label=lamb
root=/dev/hda1
read-only
append="ether=3,0x200,eth0 ether=10,0x300,eth1 hda=2088,16,63 hda=noprobe hdb=noprobe"
----------------

 

タイタス相模原センター様向けdhcpcd-0.70用パッチ(Ver.1.5以前用)

dhcpcd-0.70-4 に対するパッチを公開します。 dhcpcd-0.70-4 のソースの在所が分からなくなってしまったのでsrc.rpmファイルで添付しました。

http://www.wildlab.com/LAMB/download/dhcpcd/

Ver.2.0以降はパッチは不要です。

 

QuickTimeプロキシの使用方法(Ver.1.5用)

使用方法

■ ファイルは、 http://www.wildlab.com/LAMB/download/qt_px/ から以下の2つをダウンロードしてください。   

rtsp_proxy :バイナリファイル

qts_proxy.conf :設定用のテキストファイル

libpthread.so.0 :ライブラリファイル

■ rtsp_proxy は、/sbin にコピーして実行権を与えてください。

 コピーの仕方。

  1. Telnetでログインし、su - で root ユーザになり、ディスクを書き込み可能モードにします。
  2. # mount -o remount,rw /

  3. FTPソフトでlambでログインし、/home/lambにまずコピーします。
  4. /sbin にコピーします。
  5. # cp /home/lamb/rtsp_proxy /sbin

  6. 実行権を与えます。

    # chmod +x /sbin/rtsp_proxy

■ qts_proxy.conf は、同様に /etc にコピーしてください。

  ローカルIPアドレスを変更している方は、ファイルを編集する必要があります。

■ libpthread.so.0 は、同様に /lib にコピーしてください。

実行方法

■ ファイアウォールの設定を変えます。

# ipfwadm -I -a accept -P udp -D 0/0 1024:65535
# ipfwadm -I -a accept -P tcp -D 0/0 1024:65535

起動します。

# /sbin/rtsp_proxy -n グローバル側のIPアドレス

  グローバル側のIPアドレスは、LAMBの設定画面で参照するか   # ifconfig eth1 で確認してください。

■ 起動時に毎回起動させたいときは、   /etc/sysconfig/network-scripts/ifup-post   で、以下のように編集しておきます。

---
if [ "$DEVICE" = eth1 ]; then
ipfwadm -F -f
ipfwadm -I -f
ipfwadm -O -f
---

 の箇所に以下のように追加します。

---
if [ "$DEVICE" = eth1 ]; then
IPADDR=`ifconfig ${DEVICE} | grep 'inet addr' | awk -F: '{ print $2 } ' | awk '{ print $1 }'`
/sbin/rtsp_proxy -n ${IPADDR} &
ipfwadm -F -f
ipfwadm -I -f
ipfwadm -O -f
ipfwadm -I -a accept -P udp -D 0/0 1024:65535
ipfwadm -I -a accept -P tcp -D 0/0 1024:65535
---

Ver.2.xでは、設定ページ >> メンテナンスのページ >> QuickTimeの設定で設定できます。

Ver.3.xでは、プロキシは使用しません。IPフィルタリングの設定で、300番をオンにしてください。

 

[ 戻る ]

この Web サイトに関する質問やコメントについては、lamb-info@wildlab.com まで電子メールをお送りください。
Copyright © 1999-2001 有限会社ワイルドラボ
最終更新日: 2002-03-31