beagleboard xM到着2011年05月02日 20時06分33秒

在庫なしの表記にも関わらずお構い無しにDigi-Keyで注文したBeagleBoard xMが到着しました。とりあえず基板などの記念撮影。







付属のブート用MicroSDカードとSDカードアダプタ。



gitをdebian化玄箱HGにインストールしようとしてはまる2011年02月05日 11時03分31秒

単純にandroidのソースをダウンロードして置いておくためだけに玄箱HGにrepoとgitをインストールすることを思いついたのが運の尽き。

結構はまってしまいました。

何にはまったのかを整理すると結局はMTAであるexim4でした。 「git-buildpackage」をインストールするとMTAを必要とするらしくexim4をインストールしようとしますが、

Adding system-user for exim (v4)

と表示されたまま固まってしまうわけです。

結論から先に言えばexim4にこだわらなければMTAとして先にpostfixをインストールしておけばよかったんじゃないかと思われます。

以前にも玄箱でのdebian環境ではeximのインストールではまったことがあり、削除できなくなって困ったことがありました。 今回も試行錯誤してexim4の中途半端なインストール状態から順番にエラーになっているパッケージを指定して削除しました。で、削除の過程で偶然にもpostfixのインストールをお勧めされてインストールしたところexim4の削除もすんなり出来てしまいました。

なので、少なくとも私の玄箱HG(debian)上でのgitのインストールは以下の順番でのインストールをしようと思います。ちなみに今回はaptitudeを使いましたがapt-getでも同じだと思います。

  1. #aptitude install postfix
  2. #aptitude install git-core
  3. #aptitude install pristine-tar
  4. #aptitude install git-buildpackage

肝心のandroidのソースはまだダウンロードしていませんが、repoとgitの関係はこちらに詳しくまとめてあると思います。

ちなみに、git-buildpackageを最初にインストールしようとした時の依存パッケージは以下を参考にしてください。

KURO-BOX:~# aptitude install git-buildpackage
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Reading extended state information        
Initializing package states... Done
Reading task descriptions... Done  
The following NEW packages will be installed:
  at{a} bsd-mailx{a} build-essential{a} conkeror{a} conkeror-spawn-process-helper{a} 
  dctrl-tools{a} debhelper{a} debian-keyring{a} debian-maintainers{a} devscripts{a} 
  dictionaries-common{a} diffstat{a} dpkg-dev{a} dput{a} equivs{a} exim4{a} exim4-base{a} 
  exim4-config{a} exim4-daemon-light{a} fakeroot{a} fontconfig{a} g++{a} g++-4.3{a} gettext{a} 
  gettext-base{a} git-buildpackage hicolor-icon-theme{a} html2text{a} intltool-debian{a} 
  libatk1.0-0{a} libatk1.0-data{a} libauthen-sasl-perl{a} libcairo2{a} libclass-accessor-perl{a} 
  libcompress-raw-zlib-perl{a} libcompress-zlib-perl{a} libconvert-binhex-perl{a} 
  libcrypt-ssleay-perl{a} libdatrie0{a} libdevel-symdump-perl{a} libdigest-hmac-perl{a} 
  libdirectfb-1.0-0{a} libfcgi-perl{a} libfile-remove-perl{a} libfont-afm-perl{a} libglib2.0-0{a} 
  libglib2.0-data{a} libgtk2.0-0{a} libgtk2.0-bin{a} libgtk2.0-common{a} libhtml-format-perl{a} 
  libhtml-parser-perl{a} libhtml-tagset-perl{a} libhtml-template-perl{a} libhtml-tree-perl{a} 
  libhunspell-1.2-0{a} libio-compress-base-perl{a} libio-compress-zlib-perl{a} 
  libio-socket-ssl-perl{a} libio-string-perl{a} libio-stringy-perl{a} liblcms1{a} 
  libmail-box-perl{a} libmail-sendmail-perl{a} libmailtools-perl{a} libmime-tools-perl{a} 
  libmime-types-perl{a} libmozjs1d{a} libnet-libidn-perl{a} libnet-ssleay-perl{a} libnspr4-0d{a} 
  libnss3-1d{a} libobject-realize-later-perl{a} libossp-uuid-perl{a} libossp-uuid15{a} 
  libpango1.0-0{a} libpango1.0-common{a} libparse-debcontrol-perl{a} 
  libparse-debianchangelog-perl{a} libpixman-1-0{a} libpod-coverage-perl{a} libsoap-lite-perl{a} 
  libstartup-notification0{a} libstdc++6-4.3-dev{a} libsys-hostname-long-perl{a} libsysfs2{a} 
  libterm-size-perl{a} libtest-pod-perl{a} libthai-data{a} libthai0{a} libtie-ixhash-perl{a} 
  libtimedate-perl{a} libts-0.0-0{a} liburi-perl{a} libuser-identity-perl{a} libwww-perl{a} 
  libxcb-render-util0{a} libxcb-render0{a} libxcomposite1{a} libxcursor1{a} libxft2{a} libxi6{a} 
  libxinerama1{a} libxml-namespacesupport-perl{a} libxml-parser-perl{a} libxml-sax-expat-perl{a} 
  libxml-sax-perl{a} libxml-simple-perl{a} libxrandr2{a} libxrender1{a} libyaml-syck-perl{a} 
  lintian{a} lsb-release{a} mailx{a} myspell-en-us{a} patchutils{a} po-debconf{a} 
  python-dateutil{a} python-support{a} strace{a} unzip{a} wdiff{a} x-ttcidfont-conf{a} 
  xulrunner-1.9{a}

debian lennyでのPHP5とGD環境インストール2011年01月18日 07時47分51秒

写真公開サーバ構築の件で導入していたPHP環境ですが、lenny化とともに同じ手順を実行しましたが結果が異なってしまいました。

GD環境が使えない状況となってしまったのです。具体的で明確な対処方法は私の探した限りは全くありませんでした。 PHP環境の設定でみつかるのは驚くことにほとんどがWindows環境のもので、全く使い物になりません。どれだけ情報が普及していないのか・・・PHPって。クローズドな印象。

で、今回は以下のように対処しました。

  1. ライブラリ位置を確認(試行錯誤で当ってみて/usr/lib/php5に行き着く)
    KURO-BOX:/usr/lib/php5# ls -la
    total 24
    drwxr-xr-x  4 root root 4096 Jan 17 16:38 .
    drwxr-xr-x 32 root root 8192 Jan 17 16:46 ..
    drwxr-xr-x  2 root root 4096 Jan 17 16:46 20060613+lfs
    drwxr-xr-x  2 root root 4096 Jan 18 05:40 libexec
    -rwxr-xr-x  1 root root  278 Aug  4 15:39 maxlifetime
    KURO-BOX:/usr/lib/php5# ls -la *
    -rwxr-xr-x 1 root root  278 Aug  4 15:39 maxlifetime
    
    20060613+lfs:
    total 248
    drwxr-xr-x 2 root root   4096 Jan 17 16:46 .
    drwxr-xr-x 4 root root   4096 Jan 17 16:38 ..
    -rw-r--r-- 1 root root 121280 Aug  4 15:39 gd.so
    -rw-r--r-- 1 root root 111456 Aug  4 15:39 pdo.so
    
    libexec:
    total 8
    drwxr-xr-x 2 root root 4096 Jan 18 05:40 .
    drwxr-xr-x 4 root root 4096 Jan 17 16:38 ..
    KURO-BOX:/usr/lib/php5#
    
  2. ライブラリのシンボリックリンクをlibexecフォルダに作成(libexecには使うものをコピーするかシンボリックリンクをおくのだろうと想像。gd.soだけでなくついでなのでpdo.soも対応)
    KURO-BOX:/usr/lib/php5# ls -la *
    -rwxr-xr-x 1 root root  278 Aug  4 15:39 maxlifetime
    
    20060613+lfs:
    total 248
    drwxr-xr-x 2 root root   4096 Jan 17 16:46 .
    drwxr-xr-x 4 root root   4096 Jan 17 16:38 ..
    -rw-r--r-- 1 root root 121280 Aug  4 15:39 gd.so
    -rw-r--r-- 1 root root 111456 Aug  4 15:39 pdo.so
    
    libexec:
    total 8
    drwxr-xr-x 2 root root 4096 Jan 18 05:40 .
    drwxr-xr-x 4 root root 4096 Jan 17 16:38 ..
    lrwxrwxrwx 1 root root   21 Jan 18 05:40 gd.so -> ../20060613+lfs/gd.so
    lrwxrwxrwx 1 root root   22 Jan 18 05:40 pdo.so -> ../20060613+lfs/pdo.so
    KURO-BOX:/usr/lib/php5#
    
  3. /etc/php5/apache2/pho.iniを修正
    • extension_dirを設定
      ; Directory in which the loadable extensions (modules) reside.
      ; extension_dir = "./"
      extension_dir = "/usr/lib/php5/libexec"
      
    • extensionライブラリを指定
      ;;;;;;;;;;;;;;;;;;;;;;
      ; Dynamic Extensions ;
      ;;;;;;;;;;;;;;;;;;;;;;
      ;
      ; If you wish to have an extension loaded automatically, use the following
      ; syntax:
      ;
      ;   extension=modulename.extension
      ;
      ; For example, on Windows:
      ;
      ;   extension=msql.dll
      ;
      ; ... or under UNIX:
      ;
      ;   extension=msql.so
      ;
      ; Note that it should be the name of the module only; no directory information
      ; needs to go here.  Specify the location of the extension with the
      ; extension_dir directive above.
      
      extension=gd.so
      extension=pdo.so
      
インストール後の情報はこちら

玄箱HG起動時のDIAG 6回点滅問題対応2011年01月17日 06時28分06秒

KURO-BOX/HGではDIAG LEDというのがあって、その点滅状態で各種の状態を報告してくれます。
「DIAG 6回点滅」はHDDの異常を示し、要は「壊れている」という報告のためのもの。・・・・・でも実際は「壊れていない」。ファームウェアの不具合が根本原因なわけです。
直接的にはHDD スピンアップのための待ち時間不足でHDDの認識が正常に行われずにエラーとなっているわけです。 問題は待ち時間の作り方。 単純にループの変数で行っている。 そのこと自体は良い。 でもCPUのクロックなどを無視した実装がNG。 はっきり行って、プロの仕事とは言えない。

今回使用したWD20EARSもDIAG6回点滅問題に遭遇します。
電源投入の工夫で対応は可能ですが、ファームウェアにパッチをあてることにしました。
ファームウェアのパッチのあて方はこちらを参照させていただきましたが、リンクだけだと情報が消えてしまう可能性がありますので、以下のとおり、コピー、再編集させていただきました。オリジナルファイルのバックアップファイル名は私の趣味により変更しました。

  1. vimをapt-getでインストール
  2. # cat /dev/mtd1 >bootcode.bin
  3. # cp -p bootcode.bin bootcode.bin.org
  4. vim -b bootcode.bin
  5. vim上で[:%!xxd]でダンプ表示に変更
  6. vim上で[/03e7]でループ変数999の部分を検索
  7. vim上で3e7のアドレスが2b96の位置が該当位置
  8. vim上でアドレス2b96の03e7を07cf(1999)に変更
  9. vim上で[:%!xxd -r]でバイナリ表示に戻す
  10. vim上で[:wq]で書き込む。バイナリ表示に戻さないで実施しないように注意
  11. 編集差分を確認
    # cmp -l bootcode.bin.org bootcode.bin
     11159   3   7
     11160 347 317
    
  12. md5sumでバイナリのチェック
    # md5sum bootcode*
    dedd9d6932a4515f2535cbf7e40bd4e5  bootcode.bin
    35d6ffc9f8191181750a8bacba369e3c  bootcode.bin.org
    
  13. # cat bootcode.bin > /dev/mtdblock1
  14. 書き込み後のmd5sumチェック
    # md5sum /dev/mtd1
    dedd9d6932a4515f2535cbf7e40bd4e5  /dev/mtd1
    

玄箱HGのdebian etch環境でapt-get update失敗2011年01月15日 23時11分40秒

debianの動向を全く把握せずに「apt-get update」を実行すると、どうなるか。以下のようになります。つまり、souces.listで指定すべきURLが全く変わってしまっているということ。
Linux KURO-BOX 2.6.25.1-kuroboxHG #9 Sun May 4 21:29:57 JST 2008 ppc

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Fri Jan 14 10:44:18 2011 from 192.168.1.50

KURO-BOX:~# apt-get update
無視 http://ftp.jp.debian.org etch Release.gpg                                                
無視 http://ftp.jp.debian.org etch Release                                                    
無視 http://ftp.jp.debian.org etch/main Packages/DiffIndex
エラー http://ftp.jp.debian.org etch/main Packages
  404 Not Found
無視 http://security.debian.org etch/updates Release.gpg           
無視 http://security.debian.org etch/updates Release               
無視 http://security.debian.org etch/updates/main Packages/DiffIndex
エラー http://security.debian.org etch/updates/main Packages
  404 Not Found [IP: 212.211.132.32 80]
http://ftp.jp.debian.org/debian/dists/etch/main/binary-powerpc/Packages.gz の取得に失敗しました  404 Not Found
http://security.debian.org/dists/etch/updates/main/binary-powerpc/Packages.gz の取得に失敗しました  404 Not Found [IP: 212.211.132.32 80]
パッケージリストを読み込んでいます... 完了
E: いくつかのインデックスファイルのダウンロードに失敗しました。これらは無視されるか、古いものが代わりに使われます。
KURO-BOX:~#