2009年01月04日 TOSHIBA TOPIC97, NETGEAR FA511 [長年日記]
_ TOSHIBA TOPIC97, NETGEAR FA511
CATV modemを8Mbpsコースから30Mbpsコースの物に変更した際にLibretto100のLANカードをpcmcia NE2000互換の物(10base-T)からNETGEAR FA511(cardbus 100base-T)に交換した。
FA511自体はコストパフォーマンスの高い製品という評判で安心しきって購入したのだが、どうやらcardbusコントローラであるTOPIC97とlinux-2.4系列の組合せでは安定していないようで、週1ぐらいで通信できなくなったり、DISK I/O周りにも影響が出るよう。
ついには再起動時に強制的にfsckがかかるようになり、シングルユーザモードでfsckをかけたところ、pingとunameコマンドが壊れてしまった。
とりあえず、LANカードを以前の10base-Tの物に戻した。FA511に関しては、カーネルを2.6系列にバージョンアップして再度トライしてみようと思う。
2009年01月05日 linux-2.6 on Slackware10.1 [長年日記]
_ linux-2.6 on Slackware10.1
予備機のLibretto100を使ってカーネルを2.4.36.9から2.6.27.10にバージョンアップしてみる実験。
とりあえずメモっといて、後で正確にまとめる事とする。
- 最初、2.6.28をビルドしようとしたが、コンパイルエラー発生。一応、解決策(patch)は見付かったが、安定性を優先して2.6.27.x系で行くことにする。
- 2.6.27.10のソースを取得。
- Slackware-12.2に含まれるカーネル用のconfigを流用してビルドを実施。
- CPU TYPEがPentiumProになっているため起動せず。PentiumMMXに変更して再度ビルド実行。
- E-IDEハードディスクが/dev/hdaではなく/dev/sdaとして認識されるようになっていた為、rootのマウントに失敗。/etc/lilo.confのroot=オプションの修正と/etc/fstabの修正を行い再度ブートしてみる。
- ext3がモジュールとしてビルドされていた為rootのマウントに失敗。ext3をスタティックに組み込んでビルドし直して再起動。
- /boot/vmlinuzのrootデバイス設定が/dev/hda3になっていた為rootのマウントに失敗。rdev /boot/vmlinuz /dev/sda3を行い再起動。
- using /etc/random-seed to initialize /dev/urandomメッセージを表示した状態でストール。/dev/consoleが見付からないためマルチユーザモードに移行できずに停止していたもよう。
- udevをバージョンアップ(udev-125)。Slackware用udev.rulesを/etc/udev/rules.d/以下にコピーする事を忘れるな。
以上で、loginプロンプトまでこぎ着けた。つぎは、pcmcia-csからpcmciautilsへの移行。
- pcmciautils-015をビルドしてみるが、libsysfs.hが見付からないといって失敗。
- sysfsutils-1.0.3をインストール。
- 再度pcmciautils-015をビルドして成功。
- chmod -x /etc/rc.d/rc.pcmciaして、pcmcia-cs関係のデーモンが起動しないようにした。
- 再起動。で、pcmcia,cardbusを認識せず...。
- cp doc/pcmcia-new.sh /etc/rc.d/rc.pcmcia
- chmod +x /etc/rc.d/rc.pcmcia
- cp hotplug/* /etc/hotplug/
- pcmcia(16bit)カードは認識するようなった。cardbus(32bit)はダメ。
- BIOS設定でPC CARDをPCICからCardBus/16-bitに変更。
ここまでの作業でCardBus LAN card FA511を認識するようになった。ただ、抜き差しは2回しないと再認識しない。
また、pcmciautilsのビルドに関しては、Makefile中のUDEV = trueはUDEV = falseにするべきだったかもしれない(が、結果的には動いてるのでよしとする)。
2009年01月13日 FA511 on linux-2.4.x [長年日記]
_ FA511 on linux-2.4.X
Slackware-10.1でFA511(100base-T CardBus)の利用は、カーネルを2.4.xから2.6.xへ上げることで安定しそうな感触をつかんだのだが、カーネルのビルドにかかる時間が半端無く長くなってしまった。
そんなおり実に灯台元暗しな事だが、別の予備機(Libretto100 Slackware-11.0)では問題なくFA511が稼働することに気づいてしまった。
このSlackware-11.0のマシンはクライアントとして利用していて、カーネルはインストールしたままの状態(自己ビルド無し)で利用していて、PCMCIA,CardBus関係のモジュールはpcmcia-csではなく、カーネルの物を使っている。
ということで、linux-2.4.x系Slackwareからカーネルのconfigを借用してSlackware-10.1上でlinux-2.4.xを自己ビルドし、pcmcia-csからカーネルのモジュールに切替えてもうまく行くのではと考え、早速試してみたところ、
kernel BUG at slab.c:815!
のメッセージと共にレジスター情報等を吐き出して停止した。
メッセージの前後を詳細に見てみると、
modprobe usb-uhci
でSegmentfaultを起こしている。
なので、この近辺のモジュール(usb関係)をスタティックに組み込み直して、現在リビルド中。
2009年01月14日 FA511 on linux-2.4.x Success! [長年日記]
_ FA511 on linux-2.4.x Success!
linux-2.4.x on Slackware-10.1でFA511の稼働に成功。
2009年01月20日 MOTOROLA CATV MODEM SB5101 [長年日記]
_ MOTOROLA CATV MODEM SB5101
このCATV MODEMになってから10.0.0.0/8のプライベートアドレスから2秒おきぐらいにDHCP CLIENTへのアクセスがある。なんやらCATV会社からの監視用パケットらしいのだが、うちではプライベートアドレスからのアクセスはiptableで拒否っているのでログが大量に/var/log/messagesに吐かれている。
で、たまにsyslogdがおかしくなったり、ネットワークが不安定になる傾向があったので、拒否る設定はそのままに、ログはとらない設定にかえてみた。
_ cvs commit waiting for lock
cvs commit時にcvs commit waiting for lockみたいなメッセージが出てcommit出来ないときがあるが、大抵前回のcommitが何らかの原因で中途半端に終っていてリポジトリディレクトリの中にロックファイル(or ディレクトリ)が残ってる。そんな時は、
cd ${CVSROOT} for i in `find . -name '#cvs*'` do rm -fr $i done
でロックファイル(or ディレクトリ)を削除すればオッケー。
2009年01月25日 vmware player qemu-img gcc-4 [長年日記]
_ vmware player qemu-img gcc-4
VMware Playerを使う場合QEMUに含まれるqemu-imgを使って仮想ディスクを作る事が多いと思われるが、gcc-4でのQEMUのビルドはサポートされておらず、実際コンパイラーの内部エラーらしき障害でコンパイルに失敗する。
gcc -Wall -O2 -g -fno-strict-aliasing -fno-reorder-blocks -fno-gcse -fno-tree-ch -fno-optimize-sibling-calls -fno-crossjumping -fno-align-labels -fno-align-jumps -fno-align-functions -fno-section-anchors -mpreferred-stack-boundary=2 -fomit-frame-pointer -I. -I.. -I/home/m-ito/tmp/qemu-0.9.1/target-i386 -I/home/m-ito/tmp/qemu-0.9.1 -MMD -MP -DNEED_CPU_H -I/home/m-ito/tmp/qemu-0.9.1/linux-user -I/home/m-ito/tmp/qemu-0.9.1/linux-user/i386 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I/home/m-ito/tmp/qemu-0.9.1/fpu -DHAS_AUDIO -DHAS_AUDIO_CHOICE -I/home/m-ito/tmp/qemu-0.9.1/slirp -c -o op.o /home/m-ito/tmp/qemu-0.9.1/target-i386/op.c /home/m-ito/tmp/qemu-0.9.1/target-i386/ops_sse.h: In function 'op_pshufw_mmx': /home/m-ito/tmp/qemu-0.9.1/target-i386/ops_sse.h:593: error: unable to find a register to spill in class 'GENERAL_REGS' /home/m-ito/tmp/qemu-0.9.1/target-i386/ops_sse.h:593: error: this is the insn: (insn:HI 16 15 17 2 /home/m-ito/tmp/qemu-0.9.1/target-i386/ops_sse.h:588 (set (strict_low_part (subreg:HI (reg/v:DI 63 [ r ]) 0)) (mem/s/j:HI (plus:SI (mult:SI (reg:SI 64) (const_int 2 [0x2])) (reg/v/f:SI 59 [ s ])) [0 <variable>._w S2 A16])) 40 {*movstricthi_1} (insn_list:REG_DEP_TRUE 52 (insn_list:REG_DEP_TRUE 11 (insn_list:REG_DEP_TRUE 15 (nil)))) (expr_list:REG_DEAD (reg:SI 64) (nil))) /home/m-ito/tmp/qemu-0.9.1/target-i386/ops_sse.h:593: confused by earlier errors, bailing out make[1]: *** [op.o] Error 1 make[1]: Leaving directory `/home/m-ito/tmp/qemu-0.9.1/i386-linux-user' make: *** [subdir-i386-linux-user] Error 2
Google大先生に聞いてみると、
などの対策が見受けられる。
しかし、単に仮想ディスクを作りたいだけならqemu-0.9.1 + gcc-4.2.3な環境で
./configure --disable-gcc-check && make qemu-img
でqemu-imgだけをビルドできた。
_ VMware Player 2.5.1 is different from 1.0.x
VMware Player 2.5.1をインストールして驚いた事は、
- インストーラがX Window Systemに対応していた。もちろんコンソールで起動する事も可能。
- インストールディレクトリの指定ができず、インストーラの決め打ちになっていた。
- インストール先どころか、一切の質問無しでインストールが終ってしまった。以前はネットワークの利用形態(NAT or Bridge etc)を聞いてきたのだが...。
- ホストOSを再起動したらvmwareのバックエンドが自動起動するように/etc/rc.d/以下が書き変わっていた。
ちなみに、
- /etc/vmware/以下が設定等の格納先
- /etc/rc.d/init.d/vmwareがバックエンドの起動スクリプト
_ vmplayer LANG=ja_JP.eucJP fail
LC_ALL=ja_JP.eucJP export LC_ALL
な設定だと、
NOT_REACHED /build/mts/release/bora-126130/bora/lib/unicode/unicodeSimpleTypes.c:2315
と言われて起動しない。
LC_ALL=C vmplayer hogehoge.vmx
だとオッケー。
_ delegated
<plaintext> Bad Response: Services for your host[xx.xx.xx.xx] are suspended now on a suspicion of intruder.
みたいなメッセージを返してリクエストを受け付けてくれなくなった。理由はともかく、こんな場合は /var/spool/delegate-nobody/adm/shutout/以下に拒否られているIPアドレスがファイル名となってファイルができているので、それを削除すると復旧する。ちみに、ファイルの中にいちおう拒否った理由が書かれている。今回の場合は QUITとだけ書かれていたので意味不明。
_ delegated SIGSEGV
とかなんとか言ってる打ちに、拒否理由=SIGSEGVで、わらわら拒否られ始めた。/var/log/syslogを眺めてみると、
memory.c:100: bad pmd xxxxxxxx
のようなメッセージが出ている。メモリーかスワップエリアの障害らしい...。このところ色々調子が良くないのは、このせいだったのかも。
とりあえず、リブートで様子見とするが、
mkswap -c /dev/スワップパーティション
で、チェック付でスワップを作り直してみよう...。
2009年01月26日 VMware-Tools [長年日記]
_ VMware-Tools
VMware PlayerのゲストOSにMS-Windows系を利用する場合のVMware-Toolsの入手方法。
とりあえず、VMware-Workstation-6.5.1-126130.i386.bundleを入手する。その後、
sh VMware-Workstation-6.5.1-126130.i386.bundle -x /tmp/foo
で、/tmp/foo/以下に一式が展開される。その中の、
/tmp/foo/vmware-workstation/lib/isoimages/windows.iso
がVMware-Toolsのiso9660形式イメージ。
2009年01月27日 compressed port forward by ssh [長年日記]
_ compressed port forward by ssh
[接続元]-[転送元]-[Router]-(Internet)-[Router]-[sshサーバ]-[転送先] | ------------------------------------------------- | +----=================================================-----+ SSL TUNNEL -------------------------------------------------
ssh -C -g -L 転送元IP:転送元PORT:転送先IP:転送先PORT -l ログインID sshサーバ
転送元IPから上記コマンドを実行しておく。当然、転送元からsshサーバにはアクセスできなければならないし、sshサーバから転送先IP:転送先PORTにアクセスできなければならない。具体的な事例(謎)は以下。
ssh -C -g -L 192.168.0.20:8080:myh.no-ip.org:8080 -l m-ito myh.no-ip.org
この状態で[接続元]から192.168.0.20:8080に接続すると、sshサーバを経由してmyh.no-ip.org:8080に接続される。
2009年01月29日 zebedee [長年日記]
_ zebedee
低速インターネット環境の苦しみから開放される方法
某所のナローバンドな環境から自宅のブロードバンドな環境のサーバ上のプロキシを、zebedeeのデータ圧縮機能&暗号化機能を介して利用し、機密性を保持しながらアクセス速度の向上を企てることを夢想する。
| Private | Global | | | SLOOOW Internet FAST Internet [ Browser ] <--> [ zebedee(client) ] <-----------------> [ zebedee(server) ] <---------------> [ 色んなサーバ ] | data complession with delegated | by zebedee
インストール(クライアント&サーバ)
http://www.winton.org.uk/zebedee/download.htmlから
- blowfish-0.9.5a.tar.gz
- zlib-1.2.3.tar.gz
- zip2-1.0.3.tar.gz
- zebedee-2.4.1A.tar.gz
を取得し、全てを同一のディレクトリで展開し、順番にビルドしていく。最後のzedbeeに関してはMakefileをいじって/usr/local/以下にインストールするようにし、
$ make OS=linux # make OS=linux install
でインストールした。
設定 (クライアント側)
クライアント機の秘密鍵(server.key)と公開鍵(server.id)を作成する。この公開鍵(server.id)をサーバ側に登録(後述)することにより、秘密鍵(server.key)を持ったクライアントのみが接続できるようになる。
# cd /usr/local/lib/zebedee # zebedee -p >server.key # zebedee -P -f server.key >server.id
/usr/local/lib/zebedee/以下はzebedeeの実行ユーザからのみアクセスできればいいので、
# cd /usr/local/lib/zebedee && chmod 600 *
クライアント設定ファイル(client.zbd)を作成し、認証に利用する秘密鍵(server.key)を指定する。
# cd /usr/local/lib/zebedee # echo "include '/usr/local/lib/zebedee/server.key'" >client.zbd
最後にzbedeeをクライアントとして起動する。
# /usr/local/bin/zebedee -f /usr/local/lib/zebedee/client.zbd -z 6 8080:myh.no-ip.org:8080
- -z 6 は圧縮レベルの指定。0-9で指定する(0が圧縮無し、9が最高)
- 8080(クライアントの待受ポート):myh-no-ip.org(転送先サーバ):8080(転送先ポート)
転送先サーバの転送先ポートはdelegeted(プロキシ)の待ち受けポートになっている。
設定 (サーバ側)
クライアント機の公開鍵(server.id)を取り込む。
# cd /usr/local/lib/zebedee # vi clients.id <-- クライアント機の公開鍵(server.id)の内容を、そのままコピーする
サーバ設定ファイル(server.zbd)を修正し、clients.idに登録されたクライアントからの接続のみを許可する。
root@lib100:/usr/local/lib/zebedee# diff -c server.zbd.ORG server.zbd *** server.zbd.ORG 2009-01-29 18:08:06.000000000 +0900 --- server.zbd 2009-01-29 16:58:40.000000000 +0900 *************** *** 11,19 **** # Comment out the following line once you have read the comments # in this file and enabled or disabled the appropriate options! ! message "DEFAULT CONFIGURATION FILE -- EDIT BEFORE USE" ! detached false # You will probably want this 'true' for normal # use but I want to make sure that you see the # preceding message if you haven't edited this. --- 11,20 ---- # Comment out the following line once you have read the comments # in this file and enabled or disabled the appropriate options! ! ##message "DEFAULT CONFIGURATION FILE -- EDIT BEFORE USE" ! detached true ! ##detached false # You will probably want this 'true' for normal # use but I want to make sure that you see the # preceding message if you haven't edited this. *************** *** 46,51 **** --- 47,53 ---- # the following: # # checkidfile './clients.id' + checkidfile '/usr/local/lib/zebedee/clients.id' # The "redirect" expression can be use to set the default ports # allowed when a target specification consists of a hostname but
最後にzebedeeをサーバとして起動する。
# /usr/local/bin/zebedee -f /usr/local/lib/zebedee/server.zbd -s -z 6 -r 8080
- -s はサーバモード指定
- -z 6 は圧縮レベルの指定。0-9で指定する(0が圧縮無し、9が最高)
- -r 8080 は転送先ポートの制限
仕上げ
某所ナローバンド環境のブラウザどものプロキシ設定を[クライアント:8080]に向ける。
注意
サーバはデフォルトでは11965/tcpで接続を待つので、クライアントからアクセスできるようにファイヤウォールの設定等を行うこと。
また、1024番ポート以降を使ってるので、zebedeeの実効ユーザはrootである必要が無い。セキュリティ上は専用のユーザを設けて、そのユーザとして起動するのが好ましい。