Debian Jessie でカーネル・アップデート

Debian Jessie にカーネルのアップデートが到着しました。

このカーネルのアップデートでシステム・バージョンには変更ありませんでした。8.1 のままでした。

このアップデートでカーネルやカーネル・モジュールもすべて置き換わってしまうため、以前本ブログにて紹介した無線 LAN アダプタのデバイス ID を追加したドライバ・モジュールを使用している読者さんは、再び、ドライバ・モジュールを下記記事を参考にして再インストールしてください。

Debian Jessie で 無線 LAN アダプタのドライバの再ビルド
http://near-unix.blogspot.jp/2015/04/debian-jessie-lan.html

PT2 サーバのハードディスクの複写終了

長かった PT2 サーバのハードディスクの複写(ST3000DM001 から WD30EZRX-1TBP へ)がようやく終了しました。複写に要した時間は、合計 111 時間でした。そして救出出来なかった不良セクタは ゼロ でした。よくやってくれました ddrescue です!

複写の終わった新しいハードディスク(WD30EZRX-1TBP)を PT2 サーバのマシンへ取り付けて動作確認を行いました。とりあえず簡単な操作では問題はないようです。完全に複写が行われたようです。

そしてハードディスクの WD30EZRX-1TBP のアイドリング待機時間の設定ですが、初期値の 8 秒から 300へと wdidle3 にて変更を行なっています。Linux マシンの動作として録画が開始されても直ぐにハードディスクへ書き込みに行きません。いわゆるまとめて遅延書き込みを行なっています。それが初期値では 30 秒の設定となっています。書き込みと次回の書き込みの間(30秒)でハードディスクがアイドリングを開始しないように最低でも 31 秒の設定が必要ですが、余裕をみて 300 秒としました。

PT2 サーバのデータを全て複写し終えたハードディスク(WD30EZRX-1TBP)です。
PT2 用のマシンへ取り付ける WD30EZRX-1TBP です。

暑い季節ですので、ハードディスクの直ぐ上にある CD ドライブベイに取り付けた小型の冷却ファンも動作させてハードディスクの冷却に気を配りました。

ハードディスクの真上には小型の冷却ファンを取り付けています。

以下は、ddrescue の動作画面のスクリーンショットです。

終了3時間前の ddrescue の表示です。2899 GB まで複写が続いていました。そして不良セクタ数は 722 で、不良バイト数は 284 GB まで膨らんでいました。

終了 3 時間前の ddrescue の動作状況です。

終了 30 分ほど前に不良セクタは残ったままですが、全体の複写が終了しました。そして “Trimming failed blocks…” と表示されて、残った不良セクタの回復作業が開始されました。この回復作業によって多くの不良セクタが回復されました。

不良セクタの抽出中の ddrescue です。

そして “Retrying bad sectors…Retry 1” と表示されて、不良セクタの回復作業の再挑戦(リトライ)が開始されました。不良セクタも 209 、不良バイト数も 856 KB と激減していました。ここから不良セクタの再読み込みが行われました。

不良セクタの再読込中動作の ddrescue です。

そして回復作業の再挑戦の一回目の再読み込み(リトライ)で全ての不良セクタが回復されて ddrescue は終了しました。

全ての不良セクタを解消して終了した ddrescue です。

PT2 サーバの富士通 ESPRIMO D5210 の筐体も元に戻して、通常の録画作業に戻りました。

PT2 サーバとして新しいハードディスクは稼働を再開しました。

PT2 サーバのハードディスクの複写状況(96時間経過)

PT2 サーバのハードディスクの複写状況ですが、前回報告から 12 時間が経過したところで 2711 GB の処理となっていました。この 12 時間でたった 188 GB しか複写していませんでした。データ記録領域の末尾に向かってだんだんと状況が悪化している模様です。

96時間が経過した ddrescue による複写状況です。

FON2100E の SD カードが認識されません

昨日、FON2100E へ SD カードのソケットを取り付けて、OpenWrt Kamikaze 8.09.2 において動作の検証が終わっていました。そこで本日は、 FON2100E へ OpenWrt Barrier Breaker 14.07 をインストールして SD カードを動作させてみることとしました。

FON2100E へ SD カードを装着したところです。

SD カードのインストールにあたり次のウェブサイトを参考にしました。

DSL-502t/500t SD/MMC card problem (Page 1) — Hardware
https://forum.openwrt.org/viewtopic.php?id=21590

mmc_over_gpio – OpenWrt Wiki
http://wiki.openwrt.org/doc/howto/mmc_over_gpio

SD カード関連のカーネルモジュールなどのインストール

SD カード関連のカーネルモジュールを opkg コマンドにてインストールしました。依存関係にあるソフトウェアも一緒にインストールされました。

# opkg update
# opkg install kmod-mmc-over-gpio

  • kmod-mmc-over-gpio
  • kmod-mmc-spi
  • kmod-mmc
  • kmod-lib-crc-itu-t
  • kmod-lib-crc7
  • kmod-spi-gpio-old
  • kmod-spi-bitbang
  • kmod-fs-configfs

GPIO 端子の設定ファイルの編集

OpenWrt Kamikaze 8.09.2 においては、GPIO の起動制御スクリプト(/etc/init.d/mmc_over_gpio)を直接編集していましたが、OpenWrt Barrier Breaker 14.07 においては、専用の設定ファイル(/etc/config/mmc_over_gpio)が存在しています。この設定ファイルの中で、起動時に自動的に mmc-over-gpio のモジュールが起動するように enable の項目を “0” から “1” へ変更します。その他のピン配置は初期値のままで問題ないようです。

config ‘mmc_over_gpio’
        option ‘name’ ‘default’
        option ‘enabled’ ‘0’ –> ‘1’
        option ‘DI_pin’ ‘1’
        option ‘DO_pin’ ‘3’
        option ‘CLK_pin’ ‘4’
        option ‘CS_pin’ ‘7’
        option ‘mode’ ‘0’

上記では直接設定ファイルを編集しましたが、Luci の設定画面からも次のソフトウェア(luci-app-mmc-over-gpio)をインストールすることによって設定可能となります。インストール後に [System] – [MMC/SD driver configuretion] のタブから設定してください。

# opkg install luci-app-mmc-over-gpio

SD カードを認識しません

上記の設定を行った後、FON2100E を再起動させます。telnet ログインを行なって ls /dev コマンドでブロックデバイスの確認を行ったところ、存在するはずの /dev/mmcblk0p1 が見当たらないのです。

Luci のシステムログや telnet ログインの dmesg コマンドで mmc-over-gpio 関係の動作状況を確認すると次のようなエラーメッセージが出ていました。

gpio-mmc: Failed to request mmc_spi module.
spi-gpio: probe of spi-gpio.0 failed with error -16
gpio-mmc: MMC-Card “default” attached to GPIO pins di=1, do=3, clk=4, cs=7

“error -16” の部分は、OpenWrt の掲示板の情報によると GPIO のピンを多重に複数のモジュールから取り合っている模様でした。

DSL-502t/500t SD/MMC card problem (Page 1) — Hardware
https://forum.openwrt.org/viewtopic.php?id=21590
-16 is -EBUSY.
I bet you have a doubleusage of a GPIO pin. It’s only possible to register a GPIO pin once. Your older mmc driver most likely overrides this and uses the pin anyway.

とりあえず WLAN の LED 表示が GPIO 経由の設定であったため、WLAN の設定を消去してみましたが、改善はみられませんでした。

また Kamikaze 8.09.2 の時の /etc/init.d/mmc_over_gpio の編集内容に従って、GPIO の CS ピンの割り当てを “14” に一旦設定した後、再度 “7” に設定を手動で戻してみることも行なってみましたが改善されませんでした。

ネット上をいろいろと検索してみましたが、解決策が見当たらなくて困っています。

OpenWrt Attitude Adjustment 12.09 をインストール

そこで現在の Barrier Breaker 14.07 から Attitude Adjustment 12.09 へシステムを入れ替えてみて、様子を観察してみることとしました。Barrier Breaker 14.07 と同様のインストールと設定を行なってみましたが、結果は同じエラーを発生して SD カードを認識してくれませんでした。

OpenWrt の掲示板上には、カーネル 2.6 系の時点で mmc-over-gpio にバグが存在していて動作しないなどの情報が上がっていましたが、その後どうなってしまったのか不明です。随分とバージョンアップを繰り返した Barrier Breaker 14.07 でも mmc-over-gpio に問題が残っているのでしょうか?

どうも現時点ではすぐに問題点を解決できそうにありませんでした。FON2100E の OpenWrt Barrier Breaker 14.07 での SD カードの動作は継続課題となりました。

PT2 サーバのハードディスクの複写状況(84時間経過)

複写中のハードディスクです。

PT2 サーバのハードディスクの複写状況ですが、前回の報告から 24 時間が経過したところで 2,523 GB の複写となっています。24 時間で 464 GB のデータが複写されました。残りは 477 GB となっているので、あと一日程度は必要なのかもしれません。一時的に複写速度が向上した場面がありましたが、一時的なものだったようです(涙)。

84時間が経過した ddrescue による複写状況です。

FON2100E へ SD-CARD を追加

以前システムメモリを 32MB 化した FON2100E へ SD カードを追加してみました。なお作業に当たっては次のウェブサイトを参考にしました。

LaFonera Hardware SD-Card – DD-WRT Wiki
http://www.dd-wrt.com/wiki/index.php/Fonera_SD-Card_hack

システムメモリを 32MB 化した FON2100E へ SD カードを取り付けました。

以前より無線LANルータへ SD カードを追加してみたかったのですが、SD カードのソケットなどの入手待ちの状態で停止した状態でした。今回百円ショップで SD カードリーダを購入する機会が得られたため、FON2100E を手始めとして改造を行なってみたいと思いました。

SD カードソケットの取り出し

さて入手したのはダイソーの SD カードリーダです。いくつか種類がありましたが、今回は、この SD カードのみに対応した製品を分解してソケットを取り出してみました。

今回使用したダイソーの SD カードリーダです。

はめ込み式のプラスチック筐体の隙間にマイナスドライバを差し込んで開封しました。中からは USB プラグと SD カードのソケットが取り付けられた基盤が姿を現しました。ここから SD カードのソケットを取り出しました。

SD カードリーダの裏面です。
SD カードリーダの表面です。
SD カードのソケットを取り外したところです。

この取り出した SD カードソケットを蛇の目基盤の上にハンダ付けしました。一部のピンが標準的な 2.54 ミリのピッチに合わずリードを折り曲げて蛇の目基盤の穴へ挿入してハンダ付けしました。

FON2100E プリント印刷基盤の加工

次に FON2100E 側の事前加工を行います。SD カードのアクセスで使用する GPIO 端子(四個)には、小さなコンデンサ(C142〜C145)が接続されています。これを取り外しました。取り外し作業は、コテライザーによるホットブローで行いました。大きなアースパターンに接続されていましたが、部品が小さいため綺麗に取り外しができました。

中央に見えるのが、取り外す四つのコンデンサ(C142〜C145)です。
FON2100E は小さな基板なため、万力で固定してルーペを使用しながらの作業となりました。
四つのコンデンサを取り外したところです。

SD カードソケットと FON2100E 基盤の接続

SD カードソケットを取り付けた蛇の目基盤と FON2100E の基盤の SW1 にある GPIO 端子を短いリード線で接続しました。そしてシリアルコンソールの端子のところから、電源とアースを接続しました。現在のリード線の長さは仮のもので、動作確認が出来た後、筐体へ SD カードソケットを取り付けるときに、正式に長さを決定します。

SD カードソケットを GPIO 端子へ取り付けたところです。
SD カードソケットへシリアルコンソールの端子から電源を取り出しているところです。

OpenWrt Kamikaze 8.09 のインストール

これでハードウェア部分の加工は終了です。ソフトウェアの作業を行うとき、とりあえずファームウェアに OpenWrt Kamikaze 8.09 をインストールし直しました。これは、SD カードの情報の多くが 2009 年ごろのものが多く、そのころの主流と思われる OpenWrt Kamikaze 8.09 のものばかりでした。そのためハードウェアの加工に間違えがないか確認するためにも、確実に動作する手法で設定を行うこととしました。

OpenWrt Kamikaze 8.09 のインストールは Gargoyle で作られた FonFlash で行いました。

SD 関連ソフトウェアのインストール

SD 関連のソフトウェアのインストールと設定については、上記の参考ウェブサイトの後半分に記述のまま行いました。ただし一部注意点を記述しておきます。

OpenWrt Kamimaze 8.09 の SD カードの設定方法のスクリーンショットです。

1)インストールコマンドに間違えがあります。

# opk install luci-app-mmc_over_gpio(誤)
# opkg install luci-app-mmc_over_gpio(正)

2)vi エディタで /etc/init.d/mmc_over_gpio を編集する場所は、59 行目あたりにあります。

3)/etc/init.d/mmc_over_gpio を編集をした後、一度 FON2100E を再起動させてください。続けて次のコマンドを実行すると下記の通りのエラーが発生して、先に進めません。

root@OpenWrt:/# /etc/init.d/mmc_over_gpio start
mkdir: cannot create directory ‘/config/gpiommc/default’: No such file or directory
rmdir: ‘/config/gpiommc/default’: No such file or directory
mkdir: cannot create directory ‘/config/gpiommc/default’: No such file or directory

4)SD カードは事前にパソコンで Ext2 フォーマットしておいてください。
そして Ext2 フォーマットを読み取れるように次のカーネルモジュールをインストールしてください。これらの処置の後、SD カードのデバイス(/dev/mmcblk0p1)のマウントを行なってください。

# opkg install kmod-fs-ext2

SD カードの動作確認

SD カードの動作確認としては、telnet ログインした状態で、マウントした SD カードのディレクトリへ移動した後、テキストファイルを適当に作って、それを編集して、再保存してみました。これで動作確認ができました。

# cd /mnt/mms — SD カードのディレクトリへ移動
# touch test.txt — test.txt という空のファイルを作る
# vi test.txt — test.txt ファイルを vi エディタで編集する
     abcd1234
# cat test.txt — test.txt ファイルの中身を確認してみる
     abcd1234

これからの予定

SD カードについてのハードウェアの確認がこれで出来ました。これから使用予定のファームウェアの OpenWrt Barrier Breaker 14.07 をインストールし直して、SD カードの設定を行なってみたいと思っています。

PT2 サーバのハードディスクの複写状況(60時間経過)

PT2 サーバのハードディスクの複写状況ですが、前回報告から12時間が経過したところで、2059GB の処理となっていました。12時間で 658GB も複写していました。ハードディスクの破損状況のひどかった中間付近を通過して、複写速度が向上していました。明日の朝まで複写が終わっていることを願うばかりです。

60時間が経過した ddrescue による複写状況です。