Ellinikonblue.com Weblog

夢は夢のまま終わらせない…

Posted on Apr 22, 2007 at 17:11

squid はアップデートさせないで

 玄箱etch へアップデートをかけてみた ところ、以下のような問題が発生しました。
  1. usbmgr のインストールが完了しない
  2. squid で エラーが発生して動作しない
  3. プリントアウトできなくなった
 usbmgr の方は、一度アンインストールして、 入れ直すとうまくインストールされました。
 次に squid ですが、 以下のようなログが syslog に残っていました。
Apr 21 12:43:05 server squid[580]: Squid Parent: child process 643 started
Apr 21 12:43:05 server (squid): comm_select_init: epoll_create(): (38) Function not implemented
Apr 21 12:43:05 server squid[580]: Squid Parent: child process 643 exited due to signal 6
 どうも epoll_create と言う実装されていない関数の呼び出しで失敗しているようです。 これをキーワードに調べてみると、 squid 2.6 から epoll() と言う関数を使うらしいのですが、これが Linux Kernel 2.6 からの機能で、 玄箱 のカーネルは 2.4 系ですから、 これでは動くはずもありません。
 と言うわけで、以下の手順で squid 2.5 系の パッケージをインストールし直しました。
cd /tmp
apt-get remove squid
apt-get remove squid-common
cp /etc/squid/squid.conf .
dpkg -P squid
dpkg -P squid-common
wget http://security.debian.org/debian-security/pool/updates/main/s/squid/squid-common_2.5.9-10sarge2_all.deb
wget http://security.debian.org/debian-security/pool/updates/main/s/squid/squid_2.5.9-10sarge2_powerpc.deb
dpkg -i squid-common_2.5.9-10sarge2_all.deb squid_2.5.9-10sarge2_powerpc.deb
cp squid.conf /etc/squid/
 しかし、このままでは apt でアップデートを行うたびに squid の 最新版がインストールされてしまいます。 そこで /etc/apt/preferences として以下の内容のファイルを作成しておけば、 これを回避することができます。
Package: squid
Pin: version 2.5*
Pin-Priority: 989

Package: squid-common
Pin: version 2.5*
Pin-Priority: 989
 これで squid の 問題は解決。次は CUPS を 何とかしなければ…

Posted on Apr 21, 2007 at 22:49

まずは玄箱を etch 化…失敗 orz

 先般、 やっと リリースされた etch Debian GNU/Linux 4.0 )に、まずは coLinux 環境の方からアップデートしてみたところ、とりあえず難なくアップデートできましたので、 今度は 玄箱 の方を試してみました。  とりあえずうちの /etc/apt/sources.list は以下のようになっていて、 ふつうに apt-get update してから apt-get dist-upgrade をかけるだけで etch 化はお気軽に開始できます。
# Security
deb http://security.debian.org/ stable/updates main contrib

# Stable
deb ftp://ftp.dti.ad.jp/pub/Linux/debian stable main contrib
deb ftp://ftp.dti.ad.jp/pub/Linux/debian-non-US sarge/non-US main contrib

# Sources
deb-src ftp://ftp.dti.ad.jp/pub/Linux/debian stable main contrib
deb-src ftp://ftp.dti.ad.jp/pub/Linux/debian-non-US stable/non-US main contrib
 膨大な量のパッケージがダウンロードされ次々とインストールされていきます。 いくつかアップグレードされるパッケージについて質問はされますが、 基本デフォルトでリターンキーを押すだけでおっけー (^-^)b

 楽勝、楽勝…すべてのインストールが終わって… usbmgr がうまくアップデートしなかったようですが、まぁ気にせず再起動。。。

 usbmgr のインストールが何度やってもうまくいかん orz
 squid が 起動に失敗している orz
 プリントアウトができん orz

 とりあえず、apt で etch 化されたくない場合は、 /etc/apt/sources.list を以下のように変更します (上記で stable となっていた部分をすべて sarge に変更)。
# Security
deb http://security.debian.org/ sarge/updates main contrib

# Stable
deb ftp://ftp.dti.ad.jp/pub/Linux/debian sarge main contrib
deb ftp://ftp.dti.ad.jp/pub/Linux/debian-non-US sarge/non-US main contrib

# Sources
deb-src ftp://ftp.dti.ad.jp/pub/Linux/debian sarge main contrib
deb-src ftp://ftp.dti.ad.jp/pub/Linux/debian-non-US sarge/non-US main contrib
 と言うことで、HS-DHGL は当面、 Sarge のままで。_(T-T)_
Posted on Mar 18, 2007 at 19:59

HS-DHGL Hack #7: ハック完了!

 一通り作業を完了させて起動させてみると、 POWER LED の点滅が続き、五分後にはアラーム音がけたたましくなって落ちる と言う状態まできました。
 ちなみに POWER LED が点滅しているうちに、 telnet してみると、なんとすでにログインが可能になっていました。 しかし、ログインして当てもなく間違い探しをやっていると、 五分なんてあっという間です。 観念して、再び KNOPPIX を 立ち上げて、じっくりデバッグをすることにしました。  しかし、五分で落ちるこの現象、以前に 「 LinkStation /玄箱をハックしよう」 のハック記事の中で読んだ記憶が… あった!  なるほど、miconapl 周りの設定に問題があると、五分で落ちるのか… 徹底的に見直し、二、三カ所の間違いを見つけて修正。 再び本体に HDD を戻して起動。。。しばらくして POWER LED の点滅が止み、 完全に点灯状態に。。。五分経っても。。。落ちない!!
Image:20070316HS-DHGLHacked.jpg
 一週間、連続運転も特に大きな問題なし!
 ここに HS-DHGL の「ハック完了」宣言!!
-----
 当方では HS-DHGL のハックを完了しましたが、 このような使い方は、メーカーが推奨する HS-DHGL の 使い方ではなく、この手順を実行するとメーカーの製品サポートは受けられなくなります。 この手順を実施して不利益を被っても当方は一切、責任を負いかねます。
Posted on Mar 17, 2007 at 00:29

HS-DGHL Hack #6: 大ピンチ

 一通り 神の手順 を実施して、 Debian を仕込んだ HDD を HS-DHGL に戻して、 起動一発目、POWER LED の点滅がやまず、最終的には ALARM LED が煌々と点灯して THE END 。
 まぁハナっからうまくいくとは思っていなかったので、 HS-DHGL の HDD を標準ファームが入ったものに戻して起動。 ところがこちらも POWER LED の点滅がやまず、最終的には ALARM LED が煌々と点灯して THE END 。
 ちょっと焦る。
 しかし、大丈夫! バックアップ とってあるから!! 。。。と、我が家の 玄箱 HG サーバの共有フォルダをのぞいてみると…ない…どこにも… ピーンチ (T-T)  なんで?どうして!?とかなり焦りました (どうもバックアップがとれた時点で安心してサーバにコピーし忘れた模様 orz ) が、とりあえず再び KNOPPIX を 立ち上げて、壊れた標準ファームの入った HDD の方を繋げてみると、 Debian を仕込んだ HDD も立ち上がらなかった理由がわかりました。
 何を勘違いしたか 標準ファームの方の /boot をいじくり倒していたみたい。 Debian の 方の /boot は空。。。標準ファームの方の /boot を Debian の 方に丸ごとコピーしてから、速攻で標準ファームの方を元に戻し (修正してない方は initrd.buffalo.org として 同ディレクトリに保存してあったので助かりました (^^;> )、 HS-DHGL に戻してやると復活。。。ほっ。。。としてから、次は Debian の HDD を HS-DHGL に戻してやる。。。起動。。。 POWER LED 点滅。。。点滅のまま。。。( 5 分経過)。。。 ALARM LED 点灯とともにけたたましい警告音が。。。あ、落ちた orz

-----
 当方ではすでに HS-DHGL のハックは完了していますが、 この手順は HS-DHGL の 標準的な使い方ではなく、この手順を実行するとメーカーのサポートは受けられなくなります。 この手順を実施して不利益を被っても当方は一切、責任を負いかねます。
Posted on Mar 15, 2007 at 21:59

まだハックは終了していないというのに…

 未だ HS-DHGL のハックは 完全に終了していないというのに、もう完了したあとの心配。
 どうも HS-DHGL の工場出荷時のカーネルは USB で接続するプリンタには 対応していない らしく、 これを実現するには カーネルの ソースコードが必要 な模様。  苦労しそうな気はしますが、無いと話が進まなくなると思うので、 早めに手に入れておこうと思います。 バッファローダウンロードサービス の ページから辿って HS-DHGL のファームウェア アップデータのダウンロードのページから申し込みページにたどり着けます。 実費 1,050 円也。。。
# 申し込みにはシリアルナンバーも必要です。ご用意を。 # ふつうのカーネルをコンパイルしたらだめなんだろうなぁ。。。
Posted on Mar 15, 2007 at 21:36

HS-DHGL Hack #5: Debian 起動環境の整備

 さていよいよ最終段階は、debootstrap を実行して構築した環境の起動に 必要な最低限の設定を行います。
 HS-DHGL に USB で HDD を接続した状態で、 debootstrap を実行して環境を作成した /mnt/debinst で chroot して、 以下ファイル順に編集していきます。
/etc/fstab
起動した際に自動マウントされるよう以下のように設定しました。
/dev/sda2 /        xfs    defaults,noatime  0 0
proc      /proc    proc   defaults          0 0
none      /dev/pts devpts gid=103,mode=0622 0 0
/dev/sda3 swap     swap   defaults          0 0
/dev/sda1 /boot    ext3   defaults,noatime  0 1
/dev/sda5 /mnt     xfs    defaults,noatime  0 2
/dev/sda6 /home    xfs    defaults,noatime  0 2
/etc/network/interfaces
起動したときの IP アドレスはスタティックにふるので以下のように設定 ( IP アドレスは架空)
auto lo eth0
iface lo inet loopback
iface eth0 inet static
address   192.168.1.3
netmask   255.255.255.0
network   192.168.1.0
broadcast 192.168.1.255
gateway   192.168.1.1
/etc/hostname および /etc/hosts
環境に合わせて適当に。
/etc/apt/source.list
以前、 玄箱を Debian 化した 際に調べた結果、 うちでは DTI のサーバが近かったようなので、 その設定を引き継ぎ。
 あとは apt-get, tzconfig の実行、root パスワードの設定、 一般ユーザの作成、telnetd のインストールまで行って、chroot を抜けます。 これらは 神の手順 の通り。
 さらに HS-DHGL/LS-GL 固有の設定神の手順 に 従って行います。
 これが終わればすべての作業は終了で、 HS-DHGL の HDD を入れ替えてやれば DebianHS-DHGL できあがり!。。。のはずだったんですが…

 やっぱりというか、何というか。一撃で起動しませんでした。 これだけの作業をミスなしで実施できるとは最初から思ってませんでしたけど、 起動できなかっただけではなく、顔面蒼白になる更なる悲劇が。。。 )ToT(

つづく (^-^;> -----
 なおまだ当方でも HS-DHGL のハックは完了していません。 また当然ですが、この手順は HS-DHGL の 標準的な使い方ではなく、この手順を実行するとメーカーのサポートは受けられなくなります。 この手順を実施して不利益を被っても当方は一切、責任を負いかねます。
Posted on Mar 10, 2007 at 00:20

HS-DHGL Hack #4: いよいよ二度目の bootstrap

 Debian を 仕込んだ HDD を、 telnet を有効にした HS-DHGL に USB 接続します。
 接続した HDD は /dev/sdb で認識されるはずですから、 /mnt/debinst ディレクトリを作成し /dev/sdb2 をマウント、 /mnt/debinst/boot ディレクトを作成して /dev/sdb1 をマウントして いよいよ二度目の debootstrap を実行します。 その前に(すでに HDD に仕込み済の) debootstrap 実行に必要なパッケージも展開しておきます。
chroot /mnt/debinst
dpkg -i /tmp/*.deb
mkdir /mnt/debinst
/usr/sbin/debootstrap --arch arm sarge /mnt/debinst http://http.us.debian.org/debian
 今度はエラーらしきエラーも発生せずがんがん進んでいきます。 インターネットに接続しているネットワークの帯域にもよりますが、 結構時間は必要です。

 終わったら一度 chroot から抜けて、二度目の debootstrap でできあがった環境と、 KNOPPIX で 仕込んだ環境を入れかえます。同時に /boot の中身もすべてコピーしておきます。
cd /mnt/debinst
mv mnt xxx
mv /boot/* xxx/tmp
mv tmp/* xxx/tmp
rm -fr bin boot dev etc home lib proc root sbin sys tmp usr var
mv xxx/debinst/* .
rm -fr xxx
 四つ目の tmp の中身の移動は忘れないように。ここに苦労して修正した initrd.buffalo ファイルがありますから。

 さて次はできあがった Debian 環境をちゃんと起動するように整えていきます。 -----
 なおまだ当方でも HS-DHGL のハックは完了していません。 また当然ですが、この手順は HS-DHGL の 標準的な使い方ではなく、この手順を実行するとメーカーのサポートは受けられなくなります。 この手順を実施して不利益を被っても当方は一切、責任を負いかねます。
Posted on Mar 07, 2007 at 21:42

HS-DHGL Hack #3: KNOPPIX で HDD の仕込み作業

 ここのところ、久々に Linux のコマンドを連打してます。 ここ数年でこんなに Linux のコマンドを叩いたことは記憶にありません (^^;>

 KNOPPIX に 新品の HDD を USB 接続してパーティションを分割、 神の手順 に逆らって、 最終的に /boot にマウントされる /dev/sda1 ( KNOPPIX を 起動する PC の環境によってデバイスパスは変わります。繋いだ HDD の最初のパーティション) とスワップ領域とした /dev/sda3 以外は xfs でフォーマットしました ( /dev/sda1 は ext3 でフォーマットしました。ここは変えてはだめみたいです)。
 KNOPPIX で /mnt/debinst ディレクトリを作成し、ここに USB で接続した HDD の /dev/sda2 をマウント、さらに /mnt/debinst/boot ディレクトリを作成して /dev/sda1 をマウントします。
 この状態で、以下のコマンドを叩いて最初の debootstrap を実行しました。
# KNOPPIX には 最初から debootstrap が含まれていますので、別途 debootstrap を用意する必要はありません。
/usr/sbin/debootstrap --arch arm sarge /mnt/debinst http://http.us.debian.org/debian
 x86 用の debootstrap でのクロス実行ですから、 最後までは正常終了しませんでした。これはこういうことでいいみたい。

 次に以下のパッケージを Debian の サイトからダウンロードして、/mnt/debinst/tmp にコピーしておきます。
# HS-DHGL 本体に USB 接続で HDD を接続して、 debootstrap を実行するために必要です。
  • debootstrap_0.2.45-0.2_arm.deb
  • wget_1.9.1-12_arm.deb
  • binutils_2.15-6_arm.deb
  • libssl0.9.7_0.9.7e-3sarge1_arm.deb
 さらに標準ファームを修正した initrd.buffalo を 作成して 、 これも /mnt/debinst/tmp にコピーしておきます ( mkimage で 苦労しました )。
 以上で、KNOPPIX に よる HDD の仕込みは終了。

 さていよいよ次は telnetd を有効にした HS-DHGL に HDD を接続してのハック開始です。 -----
 なおまだ当方でも HS-DHGL のハックは完了していません。 また当然ですが、この手順は HS-DHGL の 標準的な使い方ではなく、この手順を実行するとメーカーのサポートは受けられなくなります。 この手順を実施して不利益を被っても当方は一切、責任を負いかねます。

# まだまだ続くハックメモ。。。 当面この HS-DHGL ハックの話で、 ネタ切れは回避できそうだなぁ (^^;>
Posted on Mar 06, 2007 at 23:07

HS-DHGL Hack #2: HS-DHGL 側の下準備

 神の手順 を 熟読して、頭の中でいろいろシュミレーションしてみたのですが、 やはり HS-DHGL に手を入れることを避けては 通れそうにありません。
 しかし、万が一のことを考えて、この作業は最小限にしたいところ。
 最終的に HS-DHGL に USB で HDD を接続して、 ARM 用の debootstrap を実行しなければならないので、telnet だけは可能にし、 また標準ファームである initrd.buffalo を抜き取っておきます。  KNOPPIX を 起動した PC に HS-DHGL から取り出した HDD を USB で接続します(当然ながら SATA/USB 変換アダプタに相当するものが必要です。 当方では RATOCSA-IFKU2LG を使用しています)。
 まず KNOPPIX を 起動した PC 上で /mnt/debinst ディレクトリを作成し、 USB 接続した HS-DHGL の HDD ( /dev/sda として認識されたとします) の二番目のパーティション /dev/sda2 を /mnt/debinst にマウント、 次に /dev/sda1 を /mnt/debinst/boot にマウントします。
 各マウントが終了したら、/mnt/debinst/boot/initrd.buffalo を /tmp にでもコピーしておきます (あとでこのファイルの 中身を編集 します。 苦労 します …)

 次に telnet を有効にするため vi で /mnt/debinst/etc/init.d/rcS を 編集します。このファイルの 42 行目で
# /usr/sbin/telnetd
と telnetd の起動がコメントアウトされているはずですから、 これを有効にします。

 次に root アカウントのパスワードを消します。
 同じく vi で /mnt/debinst/etc/shadow を編集して、
root:(パスワードが暗号化された文字列):11009:0:99999:7:::
の部分を
root::11009:0:99999:7:::
として初期設定されている謎のパスワードを削除します。

 以上の作業が終了したら、 KNOPPIX を 起動した PC から、 HS-DHGL の HDD をアンマウントして取り外し、HS-DHGL 本体に 戻してやります。
 HS-DHGL を起動して telnet すると、 root ユーザ、パスワード認証なしでログインできるはずですから、 root ユーザパスワードを再設定すれば完了。

 以上で HS-DHGL 側の下準備は終了です。 -----
 なおまだ当方でも HS-DHGL のハックは完了していません。 また当然ですが、この手順は HS-DHGL の 標準的な使い方ではなく、この手順を実行するとメーカーのサポートは受けられなくなります。 この手順を実施して不利益を被っても当方は一切、責任を負いかねます。
Posted on Mar 04, 2007 at 21:31

HS-DHGL Hack #1: mkimage でいきなりはまる

 素直に 神の手順 に従えば、 苦労も少なかろうと思うのですが、 この手順、すでにハックした玄箱 などが必要なので、 ここは KNOPPIX を 利用して手順を最適化しようなどと考えたわけです。

 で、はまりました orz
 というか KNOPPIX を 使ったからと言うのではありません。 標準ファームの initrd.buffalo を変更する際、 mkimage というコマンドを使うのですが、 「 LinkStation /玄箱をハックしよう」 の手順では、さらっと
mkimage -A ARM -O Linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initrd -d initrd.gz initrd.buffalo
としているこの一行、実行して初めて mkimage と言うのは、 ディストリビューションに標準でくっついてくるコマンドではないと言うことに気づきました。
 これは何かと調べてみると、 u-boot というブートローダに含まれる コマンドの一つでした。 apt-get でインストールできるかと試してみたのですが、これが出来ず、 コンパイルかぁ。。。とここですでにいやな予感。 u-boot の最新版 v1.2.0 を ダウンロードしまして、コンパイルをいろいろ試みたのですが、 make ファイルすらうまく作れません orz
 ではそもそも 「 LinkStation /玄箱をハックしよう」 ではどうしたのだと調べてみると、 v1.1.4 を コンパイルした模様
 ということで、u-boot の サイトから v1.1.4 のソースをダウンロード、 同じ手順で mkimage のコンパイルを試すとあっさり成功。
 でなんとか initrd.buffalo の変更もうまくできました。

 最新版がコンパイルできなかったのは気持ち悪いですが、 ひとまず置いといて、先を急ぐことにします。
# どのみちカーネル再コンパイルする際は必要になると思われますので、 そのときに再度悩むことにします。