趣味の電子工作などの記録。時にLinuxへ行ったり、ガジェットに浮気したりするので、なかなかまとまらない。
RSS icon
  • WesternDigital、低速病発病

    投稿日 2014年 2月 9日 コメントはありません

    TV録画機用に仕立てたCeleron847のWindows8 ProfessionalのマシンがタイマーでのS3からの復帰でBIOSがディスクを認識せず立ち上がらなくなってしまいました。その状態ではコールドブートもできません。しかし、いろいろ悪戦苦闘していると立ち上がる場合もあるようで、なんだろうと思っていたら使用中にフリーズするようになりました。
    どうやらこのマシンに入っているWesternDigitalのCaviarGreenシリーズ(うちのはWD15EARS)は低速病と言われる不具合が多発しているようです。

    参考:WD Caviar Green WD15EADS の低速病が起こったり直ったり

    で、どうやらしばらく電源をOFFしておくとしばらくは復旧するような傾向を掴んだので、いろいろ試してみました。

    • 現象発生時には起動時にはディスクとしては認識するが、ブートセクタが読めないのかブートはできない。
    • 起動してしまえば、数時間は動作する。
    • 起動中に発生するとフリーズしたように見えてしまう。
      (実際にはゆーーーーっくり動いているみたい)
    • 発生したら、電源OFFして数時間放置すると一時的に回復する。

    なので、とにかく起動した際にシステムバックアップとシステム修復ディスクを何回かのトライの後に作成することができました。(再インストールして環境再構築するのは嫌なので・・・)

    ちなみに、HDDから起動できない状態でUSBメモリに入れたSystemRescueCDで起動するとぱっと見は何事もなかったようにアクセスできる感じです。(データ救出のために使っただけなので、きちんと速度が出ているかはわかりません)

    で、とりあえず手持ちの320GBのHDDにシステムパーティション(約120GB)だけでも復旧させてみようと思ったら・・・「サイズが小さくて入りません」・・・だと。実使用領域は30GBにも満たないはずなのに・・・。うーむ。

    それよりもFreeNASマシンに入っている2TB×3台(2台でZFSミラー、残り1台がバックアップ)のうち、2台がWD CaviarGreenだったりします。こいつら何とかしないと・・・。

    ちなみに、このマシンもWD5000AAKXだったりするんですが、最近妙にGoogle Chromeが重かったりします。他にも時々不思議に重い挙動が・・・?
    CaviarGreenではなく2.5inchのBlueなんですが関係あるんでしょうか??


  • ThinkPad R31にCentOS6.5を入れてみた

    投稿日 2013年 12月 28日 コメントはありません

    もう10年以上前に購入したThinkPad R31(IBMのロゴ入りです!)を死蔵していたのですが、CentOS6.5を入れてみることにしてみました。
    これまで死蔵していた理由は、さすがにCeleron1GHz(最近のCeleronではなくて、PentiumIIIの頃のCeleronです)とメモリ512MB(これでも限界まで増設してあるのです)ではWindowsXPといえどもセキュリティ対策ソフトが入っていると非力過ぎることと、なぜかX-windowを動かすとしばらくして画面が死んでしまうのでLinuxで使うこともできないことでした。
    しかし、近頃見つけた(出ている)CentOS6.5のライブCDを一晩動かしていても安定しているようなので、インストールしてみることにしました。

    ところが、ライブCD上の「Install to HardDrive」を何度クリックしても、しばらくCD-ROMにアクセスした後沈黙してしまいます。ライブCDではなく、ライブDVDにしてもだめ。そこでライブDVDでコンソールを開いてインストーラを起動してメッセージを確認して見たところ、メモリ不足でグラフィカルインストーラは起動できず、コンソール内でCUIのインストーラが立ち上がっていました。

    で、HDDのWindowsXP以外を削除した後の空き領域にインストールするよう操作を進めてみたところ、rootのパスワードやタイムゾーンなどの質問のあと、ライブDVDの内容をコピーを行って指示にしたがってリブートしてみたところ、様々な初期の設定項目がでてきました。

    再起動後、適当に設定していったところ、CUIのログイン画面へ到達。rootでログイン後、一般ユーザーを作成して、再ログイン。startxで無事にXが起動しました。とりあえずは画面が死んでしまうことはない感じです。これから日本語化や各種サービスのインストールを続けるか、あるいは様子をみてWindowsXP領域を含めてすべてCentOSにするか考え中です。


  • インテルアーキテクチャのArduino登場!!

    投稿日 2013年 10月 4日 コメントはありません

    HACK A DAYのこの記事で知ったのですが、インテルがローマのMaker FaireでArduinoとハードウェア(シールド)およびソフトウェアコンパチブルの開発ボードを発表したようです。その名も「ガリレオ(Galileo)」。

    (画像は Arduino.cc からの借用です)

    本家arduino.ccの記事によると、ボードとしてのハードウェアスペックはこんな感じみたいです。

    • Atomプロセッサよりもさらに小さな(=低コスト、低消費電力)Quarkという400MHzの32bit Pentium相当のCPUコアを搭載。
      Quarkについては9月に行われたIDF(Intel Developper Forum)で発表された組み込み向けのプロセッサの模様(参考記事
    • オンチップの16KBのL1キャッシュ、512KBのSoC内蔵SRAM(いわゆるスクラッチパッドでしょう)
    • Fast Ethernet(10/100M)
    • PCI-Express ミニカードスロット
    • USB2.0 ホストコネクタ
    • USB2.0デバイスコネクタ(Arduinoとしてのプログラミング用)
    • JTAG
    • リセットボタン
    • 8MBのSPIフラッシュメモリ
    • 32GBまでのMicroSDHCコネクタ
    • 11KBのEEPROM

    Arduinoとしては、

    • シールドがそのまま使える(細かくはI2Cのスレーブが使えないとかあるみたいですが)
    • アナログ、デジタル(PWM含む)の端子はそのまま使える模様
    • digital 1ピン、2ピンのシリアル(UART)も使える
    • Arduinoの開発環境からボードとして「Intel Galileo」を選択すると、Arduino IDEの開発環境でそのまま使える
    • スケッチがボード上の不揮発メモリに残っていれば電源ONで動作する(Arduinoも同じですね)
    • 電源は5V入力で、ACアダプタの定格としては3Aを推奨。
      一見大食いですが、3.3V、5Vの各ピンの電流として800mAという記載があるので、その分を含んでいるのでしょう。

    というところで、Arduinoっぽいものを目指しているのではなく、Arduinoとの高い互換性を狙っているように見えます。

    インテルはこのボード(Galileo)を大学向けに5000枚ほどバラ撒くようです。(参考記事

     

    ・・・・で、感想です。

    今ある情報だけではソフトウェアの構成がいまいちわかりませんが、単なるArduinoの領域に400MHzのPentiumはオーバースペック過ぎるように思えます。当然インテルもわかっているでしょうが。ただ、ロボット関連などでは結構な演算性能が求められるはずなので、必要な分野もあるだろう、ということでテストマーケティングに投入する(寄付する)のでしょう。

    そして興味深い(期待したい)のは、今後、どの分野に展開していくかです。

    今時、ネットワークおよびネットワークに関連する機能(http,smtp,ftp,cifs,…)は様々な機器(お遊び含む)で求められるので、それをお気楽お手軽に実現するための基盤としてLinuxをみんな使う(使いたい)わけです。だから安価で環境の整っているRaspberryPiやBeagleBoneに興味を示す人が多いわけです。

    となると、Galileoボードは安価に市販されるのか、Linuxは動作するのか、というところが注目したいところです。Pentium 400MHzクラスであれば、GUIは別にしてLinuxでもBSDでも問題なく載るはずです。そこに膨大なArduinoシールドの資産を使うと、いろんなものが作れる(作る人がいる)のではないか、と思うのは自分だけではないはずです。

    BeagleBoneBlackが49ドル、RaspberryPiが35ドルで販売されていることを考えると、60ドル以下、できれば50ドルを割る価格で販売してくれないかな~、と思うんですが、どうでしょう、インテルさん。70ドル以上ではAndroidとRaspberryPiで爆進するARM版Linux・・・このままではいずれ(すでに?)組込み分野で席巻することになるでしょう・・・の勢いは止められないと思いますので。

    いずれにせよ、今後に注目です。


  • SanDisk Ultra USB3.0のベンチマーク

    投稿日 2013年 8月 27日 コメントはありません

    先日秋葉原に行ったら、SanDiskの新しいUSB3.0メモリを見かけたので買ってきました。しばらく放置してあったのですが、例によってOSインストールに使うとどうなるか、ということで簡単なベンチマークをしてみました。

    ブツは、SDCZ48-032G-U46です。型番からわかる通り32GB品です。値段は馬鹿っ早のExtreme SDCZ80-032G-X46より少し安い程度でした。(すみません、具体的な金額忘れました・・・)

    サイズはSDCZ80よりも2割くらい短い感じでしょうか。並べてみると2割くらいですが、実物では結構違いを感じます。コンパクトになっているので、このコンパクトさで性能が出ているのであれば・・・・と思って購入したわけです。

    ベンチマークの方法は前回と同じです。

    Screenshot-SanDisk SanDisk Ultra (SanDisk SanDisk Ultra) – ベンチマーク

    読み込みはパッケージの記載(80MB/s)にやや届かず、というところでしょうか。
    書き込みの方は例によって625MBのISOファイルを書き込んでみたところ、開放まで約30秒、LEDの点滅が収まるまで約1分なので、開放までで20MB/sくらい、LED点滅が収まるまでで10MB/sくらいで、USB3.0のUSBメモリとしては凡庸な結果となりました。

    価格差があまり大きくないことを考えると、やや大きくて嵩張りますが、Extremeを買った方がお得感は高そうです。


  • Xubuntu13.04+OpenCV2.4で顔認識してみた

    投稿日 2013年 8月 8日 コメントはありません

    久しぶりにOpenCVを動かす必要があり、試しにOpenCV2.4で顔認識を動かしてみました。
    まず、C言語版。

    1.OpenCVのインストール

    これまでと手順は一緒。バージョンは2.4になっているので、それに応じた変化のみ。

    • opencv-doc
    • python-opencv
    • libcv2.4
    • libhighgui2.4
    • libcvaux2.4
    • libcv-dev
    • libcvaux-dev
    • libhighgui-dev
    • libopencv-dev

    2.プログラムの作成

    これも前回までと同じ。opencv.jp のサンプルプログラムをコピペして、main.cという名前で保存する。
    元のままだと、大きなサイズの画像は画面をはみ出してしまうので、ウインドウサイズを指定するように変更・追加した。(cvNamedWindow の第2パラメータ変更、cvResizeWindowの追加)

    // (6)画像を表示,キーが押されたときに終了
     cvNamedWindow ("Face Detection", 0);
     cvResizeWindow("Face Detection", 640, 480);
     cvShowImage ("Face Detection", src_img);
     cvWaitKey (0);

    3.コンパイル

    これも前回までと同じ。以下のコマンドによりコンパイル。インクルードファイルやライブラリの位置は pkg-config で勝手に探してもらう。

    $ g++ -o main main.c `pkg-config --cflags opencv` `pkg-config --libs opencv`

    4.カスケードファイルの準備

    ここは前回とことなる。カスケードファイルは一つになっている。

    $ cp /usr/share/opencv/haarcascades/haarcascade_frontalface_default.xml .

    としてローカルディレクトリにコピーした。

    5.動作テスト

    $ ./main ファイル名.jpg(pngでもOKでした)

    でWindowが表示されて検出された顔に◯がついた。

    6.Python版

    opencv.jp のサンプルプログラムのところにある「Python版に切り替え」というボタンを押した後、コードをコピペして、main.pyという名前で保存して、

    $ chmod 755 main.py

    として実行権限をつけて、

    $ ./main.py ファイル名.jpg

    と実行したところ、冒頭のimportで失敗します。原因調査の時間はないので、また今度・・・。


  • SDRに挑戦してみました

    投稿日 2013年 7月 28日 5個のコメント

    aitendoのサイトを見ていたら、特売品の中にRTL2832Uを用いたUSBワンセグTVチューナーがアンテナ+リモコン付きで999円、どうも別の機種っぽいUSBチューナー単体が666円で出ていました。

    海外のワンセグTVチューナーが広帯域受信機として使用可能、いう話を以前から見かけていたので、調べてみたらどうもチップも一致、しかも、ダイレクトサンプリングという手法(というか、RF飛ばして入力する?)で、RTL2832UでLF~HF帯も受信可能なようです。

    こちらのサイトで非常に詳しく色々と解説されていて、とても参考になります。そして、ポチッとしたい衝動を抑えられなくなりました(笑)

    で、届いたのがこれ。

    OLYMPUS DIGITAL CAMERA OLYMPUS DIGITAL CAMERA

    さすがaitendoです。シンプルな包装です(^^;。ま、必要なのは中身だけなんでそれでいいんですけどね。

    で、動かすためのソフトウェアですが、どうもこんな感じみたいです。

    • Gqrx SDR receiver
      GNU RadioとQtをベースにしたグラフィカルで綺麗な表示のSDRです。
    • GNU Radio
      ソフトウェア無線のためのツールキットです。名前からわかる通りオープンソースです。
    • RTL-SDR
      OsmoSDRは安価に実現可能なSDRソフトウェア開発プロジェクト・・・と書かれています。
      このプロジェクトの中にRTL-SDRというソフトウェアがあって、RTL2832Uに対応したコマンドライン版ソフトウェアのようです。
      このRTL-SDRはクライアント-サーバに分かれていて、サーバ側に受信機(USBワンセグチューナ)を設置します。
      このサーバにはRaspberryPiを使うことも可能なようで、実際に試されています

    この中からまずはGqrxを動かしてみることにしました。ダウンロードはsourceforge.netのプロジェクトページから。環境はLinuxMint13 32bit版です。

    1. 軟弱者なのでバイナリパッケージ(gqrx-2.1.251-i686.tar.xz)を持ってきます。
    2. 展開して、README.txt を読むと、いくつか依存するものがあるようです。
      ・GNU Radio 3.6以降
      ・「gnuradio-fcd」「gnuradio-uhd」「RTL-SDR」「Osmo SDR」のどれか
      ・gnuradio-osmosdr
      ・pulseaudio
      ・Qt 4.6以降と Qt Creator
    3. ・・・が、下の方を読むと、バイナリパッケージには必要なGNU Radio、UHD、rtlsdr、Boostライブラリが含まれているそうです。

    展開したファイルの中に「gqrx」という実行ファイルがあるので、とりあえずこれをroot権限で起動すると動作できます。

    ※追伸
    lubuntu13.04ではlibqtgui、Qt Creator、pulseaudioをSynapticでインストールする作業が必要でした

    root権限ないではUSBチューナが見えない、というのはイマイチなので、/dev/udev/rules.d の下にルールを追加します。
    具体的には、/etc/udev/rules.d/20.rtlsdr.rules として以下の内容のファイルを作ります。

    SUBSYSTEM=="usb", ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="2832", GROUP="adm", MODE="0666", SYMLINK+="rtl_sdr"
    SUBSYSTEM=="usb", ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="2838", GROUP="adm", MODE="0666", SYMLINK+="rtl_sdr"

    作成後、「$ sudo restart udev」とした後、一旦USBチューナーを抜き差しすると、ユーザー権限で起動しても動作するようになりました。

    Screenshot-Gqrx 2.1.251 - rtl=0

    これはFM東京を受信している様子です。ごく簡単なアンテナで、しかも鉄筋コンクリートの室内、普通のポータブルタイプのFMラジオだとほとんど受信できない環境なのにFM局が何局か受信できました。

    <参考>
    Computer Radio RF Techさん
    ダイレクトサンプリング、アップコンバータの適用、RaspberryPiでSDRサーバなど
    ゆうちゃんのパパさん
    ダイレクトサンプリングやアンプ搭載、LPF搭載、など


  • FreeNASのディスクをフォーマットしなおす

    投稿日 2013年 7月 13日 コメントはありません

    出張中にrsyncによるバックアップが終わっていたので、元のミラーディスクを消去します。
    (ちなみにバックアップはLinux上でも別にrsyncで取ってありますので、二重化はされたままです)

    ストレージを表示し、先にバックアップをとったボリュームのところの赤×がついたアイコンをクリックしてボリュームを削除します。この時、Windows共有(CIFS)の設定をクリアするか聞いてきますが、クリアしないで残しておきます。(CIFSの共有自体はrsyncでバックアップを取る前に停止してあります)

    改めてボリュームマネージャで同じボリューム名で2本のHDDをミラーリングにてZFSボリュームを作成します。この時の設定として暗号化を追加します。

    ボリューム作成が終わったらバックアップからの復元のためにrsyncで逆方向のコピーを行ってデータを復元しますが、また長い長い時間がかかります。放置しておくしかありませんので、今日はここまでです。

    あとはCIFSのサービスを再開させればいいのだと思いますが、どうでしょうかね。

    <追伸>
    CIFSサービスを再開させるだけで無事にファイルサーバとして復帰してくれました。


  • FreeNASにディスクを追加する

    投稿日 2013年 7月 10日 コメントはありません

    Microserverで快調に動いているFreeNASにディスクを追加してみました。

    目的は万が一空き巣にでも入られてHDDを持ち去られた場合に備えて、FreeNAS8.3.1で追加された暗号化を適用したいということです。全領域を暗号化するには一旦中身をバックアップしないといけないので、まずは外付けディスク以外に内蔵ディスクでもバックアップをとることにしました。

    4本ある3.5インチベイのうち、すでに2TB×2でRAID1によるミラーリングで2本、初めからついてきた250GBの作業領域で1本使っていますので、残りの1本に新たに買ってきた2TBのHDDを取り付けて電源ONしました。

    暗号化ボリュームの取扱いになれるのを兼ねて、バックアップ領域も暗号化を適用してみます。

    1.ボリュームの作成

    ボリュームマネージャでバックアップ領域としてボリュームを作成します。

    Screenshot-3

    ボリューム名に「BACKUP」、メンバディスクは今回追加した ada3(2.0TB) を選択、ファイルシステムはZFSを選択、ZFS選択後に出てくる「Enable full disk encryption」を選択して「ボリュームを追加」を押します。

    Screenshot-4

    この時点でシェルから今回のディスクにアクセスが可能になります。

    /mnt # rsync -av /mnt/DATA/ /mnt/BACKUP/

    として、データを丸ごとコピーします。

    2.パスフレーズの設定等

    ※暗号化鍵やパスフレーズ、リカバリキーは厳重に保管する必要があります。

    1)パスフレーズの設定

    ストレージのレポートから追加したボリュームの右の方の鍵のマーク(鍵だけのマークで下記の画面コピーでは右から5番目のもの)をクリックして、パスフレーズを設定します。

    Screenshot-6

    2)リカバリ鍵の設定

    Screenshot-7

    上記アイコンのうち、「+」と「-」のついた右の二つをつかってリカバリ鍵の追加と削除ができます。追加したリカバリ鍵はパスフレーズを忘れてしまった際にパスフレーズの代わりに使うことができます。

    3)暗号化鍵のダウンロード

    Screenshot-7

    上記アイコンのうち、左から2番目の「↓」がついたボタンを使うと、暗号化鍵のコピーをダウンロードできます。

    4)暗号化鍵の変更

    Screenshot-7

    上記アイコンのうち、真ん中のものを使うと、暗号化鍵を再生成することができます。再生成には現状のパスフレーズが必要です。暗号化鍵が漏洩したと思われる場合に暗号化鍵を変更するために使用します。

    3.あまりに遅い??

    ・・・ここまで終わったところで、rsyncの状況を確認したところ、30分で40GB程度の進捗。計算すると、20MB/s程度しか出ていません。これだと1.4TB=1400GBコピーし終わるのは18時間後になってしまいます。AESによる暗号化処理をハードウェアでサポートするAESーNIがCPUで持っていないと非常に遅くなる、とは書いてありましたが、20MB/sではあまりに遅すぎます。
    一旦 rsync を中止しして、あらためて暗号化無しでボリュームを作成して転送してみると、20分で46GB程度の進捗ですので、暗号化を行うと半分強くらいまでスループットが落ちてしまうようです。

    これだとrsyncが遅いだけかもしれませんので、簡単に速度の比較をしてみることにしました。

    まず、FreeNAS上にWindows共有を2つ用意しました。片方は暗号化無しの250GBのHDD上のボリューム、もう片方は暗号化ありの2TBのHDD上のボリュームです。

    ここにトータル600MB、3000個のファイル(大きなPDFからデジカメの写真など適当なファイルです)を書き込んでみました。先に暗号化無しの方に書き込むと141秒かかりましたので、4.25MB/sということになります。次に暗号化有りの方に書き込むと120秒で終わってしまいましたので、5.0MB/sということにないました。

    次に各種Linuxディストリビューションファイルを3.85GB書き込んでみます。今度は先に暗号化有りの方から書き込んでみたところ108秒かかりましたので35.6MB/sということになります。次に暗号化無しの方に書き込んで見たところ73秒で終わりましたので52.7MB/sということになります。

    この結果からすると、大きなファイル中心の書き込みは影響を受けてしまいそうですが、細かいファイル中心の場合にはディスクの性能の方が効いてきそうな感じです。

    今日のところはここまでにして、とりあえず rsync でバックアップが取り終わるのを放置して待つことにします。


  • FreeNASを8.3.0から8.3.1-RELEASE-p2にアップデート

    投稿日 2013年 5月 29日 コメントはありません

    なんとなく、FreeNASを以前アップグレードした8.3.0から最新の8.3.1-RELEASE-p2にアップグレードしてみました。
    ・・・といっても、前回のような面倒な手順は必要ありません。

    1. まず、お約束のバックアップは当然取ります。
    2. www.freenas.orgにアクセスして、ダウンロードページで「GUI Upgrade 64-bit」をクリックします。
    3. 29c6・・・で始まるSHA256のHashが表示され、その下にダウンロードボタンが表示されるので、ダウンロードをポチッとクリックして、しばらく待ちます。ポチッとした直後にはFreeNASとは無関係な「Download」とかかれた広告バナーが待ち構えていますので、何も押さずに待ちます。(何とかならないんですかね?この地雷バナー・・・。多分マルウェア満載なんじゃないかと思うのですが・・・)
      ※8.0.xからのアップグレードのためのリンクは少し下にあります。今回は8.3.0からのアップグレードです。
    4. しばらく待つと「FREENAS-8.3.1-RELEASE-p2-x64.GUI_Upgrade.txz」という拡張子がtxzのファイルをどこに保存するか聞いてくるので、適当なローカルの場所を指定して保存します。
    5. FreeNASにWebGUIでログインして、「システム」→「設定」→「高度な設定」と進んでいくと、下の方に「ファームウェア更新」のボタンがあるので、ポチッと押します。
    6. ファームウェアファイルを一時保存する場所を聞かれるので、適当に場所を選択して、「更新を適用」をポチッと押します。
    7. 「New image to be installed」でファイルを選択するよう指示されますので、4で保管したtxzの拡張子のファイルを指定し、その下の「イメージのSHA256ハッシュ」には3の29c6・・・d84bのHASHの値をコピペして、「更新を適用」をクリックします。
    8. しばらく(数分くらい?)待つと、「System – Rebooting」に表示が変わります。
      コンソールにはブートの画面が表示されるようです。裏では2回リブートがかかるようです。
      かなり時間がかかるので、コンソールの画面でアップグレードの過程を確認する方がいいと思います。(コンソールでみていても、途中で長く止まることがあるので、気長に待つ必要があります。)
    9. 10分くらい放置後、ブラウザをリロードすると、再度WebGUIでのログインを促されますので、ログインすると、System Informationが表示され、バージョンアップしていることが確認できます。

  • ThinkPad R31にlubuntuをインストール

    投稿日 2013年 5月 1日 コメントはありません

    lubuntuが軽快で使い勝手も悪くなさそうなので、古くなった ThinkPad R31 にインストールしてみることにしました。相当に古いPCですが、lubuntu ならWebの閲覧くらいには使えそうなので試してみます。
    このPCは購入時に対していろいろ変えてあります。

    • メモリを512MBに増設
    • CDROMドライブをDVD-Rドライブに交換
    • HDDを60GBのものに交換
    • バッテリをNiMHからリチウムイオンに交換

    特に、バッテリは交換してからあまり繰り返し使用していないのでまだもったいないかと(^^;

    続きを読む »