2012年02月03日 ARMedslack-13.37 on zaurus(SL-C760) [長年日記]
_ ARMedslack-13.37 on zaurus(SL-C760)
予備機のSL-C760にARMedslack-13.37を仕込んでみる。
ポイントだけ備忘録として記す。
今回はext4にインストール
ARMedslack-13.1の時はext3にインストールしたが、最新のkexecbootはext4からのブートをサポートしていると聞いたので、ext4にインストールする。
もちろん、カーネル(linux-3.1.9)にext4を組み込んでおく必要があるのだが、当初以下のメッセージを出してブートの途中で止まってしまった。
EXT4-fs (mmcblk0p3): Filesystem with huge files cannot be mounted read-write without CONFIG_LBDAF
ext4を組み込む場合は、CONFIG_LBDAFも必須らしい。ARMedslack-13.1 on SL-C860上でカーネルをビルドして対応。
CONFIG_EXT4_FS=y CONFIG_EXT4_FS_XATTR=y CONFIG_BLOCK=y CONFIG_LBDAF=y CONFIG_BLK_DEV_BSG=y
/usr/bin/Xorg
なんの設定も無しに起動して、一応タッチパネルも反応する。ARMedslack-13.1の時はtslib関係を入れないとダメだった(参考1、参考2)が、今回はevdev経由で動いてしまっている。ただし、キャリブレーションは合わせないと使えない。
キャリブレーションの設定はxinput_calibratorというツールが有るので、ソースから入れた。xterm等のコンソールから起動し、キャリブレーションを行うと標準出力に結果が出るので、それを編集して/etc/X11/xorg.conf.d/99-calibration.confを作成すれば完了...のはずなのだが、現時点ではうまく調整できない。
xinput_calibratorの出力結果がデタラメっぽい。
Calibrating EVDEV driver for "ADS7846 Touchscreen" id=7 current calibration values (from XInput): min_x=2594, max_x=2652 and min_y=2369, max_y=2436 Doing dynamic recalibration: Setting new calibration data: 2585, 2660, 2358, 2446 --> Making the calibration permanent <-- copy the snippet below into '/etc/X11/xorg.conf.d/99-calibration.conf' Section "InputClass" Identifier "calibration" MatchProduct "ADS7846 Touchscreen" Option "Calibration" "2585 2660 2358 2446" EndSection
Ximageon
Angstromから拝借したXimageonの場合はtslibが必要(参考1、参考2)なのだが、libtoolのバージョンの関係でインストールの途中でこけた。
Making install in plugins make[1]: Entering directory `/home/m-ito/INSTALLED/tslib-1.0/plugins' make[2]: Entering directory `/home/m-ito/INSTALLED/tslib-1.0/plugins' test -z "/angstrom/usr/lib/ts/" || /bin/mkdir -p "/angstrom/usr/lib/ts/" /bin/sh ../libtool --mode=install /bin/ginstall -c linear.la dejitter.la variance.la pthres.la ucb1x00.la corgi.la collie.la h3600.la mk712.la arctic2.la linear_h2200.la input.la '/angstrom/usr/lib/ts/' libtool: install: error: cannot install `linear.la' to a directory not ending in /angstrom/usr/lib/ts/
以下のパッチを、./autogen.shの実行後に当てるとうまく行った。
*** libtool.ORG 2012-02-03 00:47:39.020020756 +0900 --- libtool 2012-02-03 00:49:03.380022311 +0900 *************** *** 3399,3406 **** # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. ! test "$inst_prefix_dir" = "$destdir" && \ ! func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. --- 3399,3406 ---- # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. ! ## test "$inst_prefix_dir" = "$destdir" && \ ! ## func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. *** ltmain.sh.ORG 2012-02-03 00:49:12.050022121 +0900 --- ltmain.sh 2012-02-03 00:49:36.740022257 +0900 *************** *** 2962,2969 **** # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. ! test "$inst_prefix_dir" = "$destdir" && \ ! func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. --- 2962,2969 ---- # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. ! ## test "$inst_prefix_dir" = "$destdir" && \ ! ## func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command.
フォントの設定
そのままだと漢字の表示が出来なかった。
/usr/share/fonts/以下の各フォントディレクトリの中で、
# mkfontscale # mkfontdir -e ../encodings -e ../encodings/large
1度だけ、
# fc-cache -f -v
をしてやると正常に表示できるようになる。
aircrack-ng-1.1
をmakeすると以下のエラーが出る。
aircrack-ng.c:4189:8: error: array subscript is below array bounds
以下のパッチを当てればOK。
*** src/aircrack-ng.c.ORG 2012-02-03 16:17:41.610033040 +0900 --- src/aircrack-ng.c 2012-02-03 16:19:19.220032835 +0900 *************** *** 4185,4191 **** if( i > 64 ) i = 64; while(i>0 && (key1[i-1]=='\r' || key1[i-1]=='\n')) i--; ! if (i==0) continue; key1[i] = '\0'; for(j=0; j<i; j++) --- 4185,4191 ---- if( i > 64 ) i = 64; while(i>0 && (key1[i-1]=='\r' || key1[i-1]=='\n')) i--; ! if (i==0||i<0) continue; key1[i] = '\0'; for(j=0; j<i; j++)
2012年02月07日 ARMedslack-13.37 on zaurus(SL-C760) あぼーん [長年日記]
_ ARMedslack-13.37 on zaurus(SL-C760) あぼーん
firefox-10.0のビルド中にext4ファイルシステムがお亡くなりになりました...。
せっかく環境がほぼ整いかけていたのに(-.-;。ext4はARMedslack-13.37では安定していないのかも。
ただ救いだったのは、前日にSDHCのフルバックアップをとっていた事(^^)d
今回はext3でフォーマットし直して、バックアップからtarでサクッと展開。
よくよく考えれば、レスキューOSとして内蔵フラッシュにインストールしているAngstromのカーネルはext4が組み込まれていないので、最初からext3にするべきだったな...。
2012年02月08日 ARMedslack-13.37 on zaurus(SL-C760) あぼーん2 [長年日記]
_ ARMedslack-13.37 on zaurus(SL-C760) あぼーん2
ext3に展開した環境でもfirefox-10.0のビルド途中であぼーんしたorz
swapを使い切ったからといってmemory exhaustでプロセスがこけるぐらいで、ファイルシステムがあぼーんするとは思えないのだが、ARM版と言う特殊な事情もあるので疑ってみる価値はあるのか。
いちおうswap(/dev/mmcblk0p2)は1GBとっていたのだが、2GBに増やして試してみようか...
2012年02月12日 ARMedslack-13.37 on zaurus(SL-C760) あぼーん3 [長年日記]
_ ARMedslack-13.37 on zaurus(SL-C760) あぼーん3
その後、
- swapを3GBまで増やしてみた。
- マウントオプションをdata=writebackからdata=orderdに変更してみた。
- mkswap -cでチェック付でスワップを作り直してみた。
- mke2fs -cでチェック付きでファイルシステムを作り直してみた。
上記のいずれの状態でも、firefox-10.0のビルドの途中でアセンブラ(as)がsegment faultを起こすようになってしまう。一旦起こすと、再起動しても、fsckをかけてもこの状態は復旧しない。
お手上げ(-.-;。
2012年02月19日 ARMedslack-13.37 on zaurus(SL-C760) あぼーん4 [長年日記]
_ ARMedslack-13.37 on zaurus(SL-C760) あぼーん4
どこかのページで見たままに、以下のような設定をしていたのを思い出した。
echo deadline >/sys/block/mmcblk0/queue/scheduler
再度調べてみると、SSDやSD等のメモリーベースの媒体では上記の設定はあまり意味が無く、むしろ色々と手をこまねくより、何もしない(?)
echo noop >/sys/block/mmcblk0/queue/scheduler
の方がいいらしい。
で上記の設定にして試したところ、ビルドが少し進んで別のエラーがでた。
Error: selected processor does not support `blx ...'
アセンブラ(as)でエラーを吐いている。
.mozconfigを以下のように設定したところ、
. $topsrcdir/browser/config/mozconfig ac_add_options --disable-debug ac_add_options --enable-optimize ac_add_options --enable-default-toolkit=cairo-gtk2 CFLAGS="-march=armv4t" CXXFLAGS="-march=armv4t" ASFLAGS="-march=armv4t"
やはりasがIllegal Instructionを吐くようになって、あぼーん (--;。
2012年02月20日 as on ARMedslack-13.37 [長年日記]
_ as on ARMedslack-13.37
ARMedslack-13.37はarmv4を前提でビルドされているので、asはarmv5以降の命令をアセンブルできない。zaurus(SL-C[78]60)はarmv5なので、configureで自動判別されるとアセンブル段階でエラーとなることがある。
{standard input}:51: Error: selected processor does not support ARM mode `clz r1,r1'
みたいな感じで。
2012年02月21日 Skype with delegated [長年日記]
_ Skype with delegated
我が家では以下のようにdelegatedを起動しているのだが、Skypeが継らないという問題があった。
/usr/local/bin/delegated -P8080 \ ADMIN=m-ito@myh.no-ip.org \ SERVER=http \ PERMIT="*:*:127.0.0.1,192.168.0.0/255.255.255.0,伏せIP,myh.no-ip.org" \ RESOLV=cache,file,dns,sys \ LOGFILE=
以下の様にすれば継るらしい。delegatedはデフォルトではSSLtunnel的な通信を切断するとの事。
/usr/local/bin/delegated -P8080 \ ADMIN=m-ito@myh.no-ip.org \ SERVER=http \ PERMIT="*:*:127.0.0.1,192.168.0.0/255.255.255.0,伏せIP,myh.no-ip.org" \ REMITTABLE="+,ssltunnel,http,https" \ HTTPCONF=methods:* \ RESOLV=cache,file,dns,sys \ LOGFILE=
無事継った!
参考 : Re: skype の中継停止するには
2012年02月22日 UVC対応webcamの使い方 [長年日記]
_ UVC対応webcamの使い方
メモ。全ては検証してないよん。
静止画撮影
http://www.firestorm.cx/fswebcam/
# 絞り等が安定するまで 10フレームスキップする $ fswebcam -S 10 -r 384x288 --no-banner cam.jpg
動画再生&静止画撮影
まず、 FIFO ファイルを作成。
$ mkfifo tmp.fifo
mplayer 実行
$ mplayer tv:// -tv device=/dev/video0 -input file=tmp.fifo -vo xv -vf screenshot
撮影
$ echo "screenshot 0" > tmp.fifo
動画再生
$ mplayer tv:// -tv driver=v4l2:width=640:height=512:device=/dev/video0
動画撮影(ffmpeg)
システムが認識しているサウンドカードを確認する。
$ cat /proc/asound/cards $ cat /proc/asound/devices
撮影
$ ffmpeg -f alsa -i hw:0 -ar 44100 -ab 128 -f video4linux2 -s 640x480 -b 800 -r 30 -i /dev/video0 test.avi
動画撮影(mencoder)
音声無し
$ mencoder tv:// -tv driver=v4l2:width=320:height=240:device=/dev/video0 -nosound -ovc lavc -o wcrecording.avi
音声有り
$ mencoder tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video0:forceaudio:adevice=/dev/audio -ovc lavc -oac mp3lame -lameopts cbr:br=64:mode=3 -o webcam.avi
おまけ(X画面キャプチャ)
キャプチャするウィンドウの矩形情報(x, y, width, height)を取得
$ xwininfo
キャプチャ
ffmpeg -f alsa -ac 2 -i hw:0,2 -f x11grab -s <width>x<height>+0+0 -r 30 -i :0.0+<x>,<y> -sameq -f avi -y output.avi
ストリーミング
http://sourceforge.net/projects/mjpg-streamer/
- サイズ : 320×240
- FPS : 5で
- 画質 : 50
- YUYV
- ポート : 8080
- ユーザー名 : hoge
- パスワード : hoge
$ ./mjpg_streamer -i "./input_uvc.so -d /dev/video0 -r 320x240 -f 5 -q 50 -y -n" -o "./output_http.so -w ./www -p 8080 -c hoge:hoge"
2012年02月27日 chrome on Slackware-13.37 [長年日記]
_ chrome on Slackware-13.37
google-chrome-stable_current_i386.rpmを取得後、tgz形式に変換。
# rpm2tgz google-chrome-stable_current_i386.rpm
生成された google-chrome-stable_current_i386.tgz をインストールする。
# installpkg google-chrome-stable_current_i386.tgz
/opt/google/chrome/以下にインストールされる。
起動してみる。
$ /opt/google/chrome/chrome /opt/google/chrome/chrome: error while loading shared libraries: libgconf-2.so.4: cannot open shared object file: No such file or directory
libgconf-2.so.4が無いとのたまう。
必要な物(ORBit2-2.14.19.tar.bz2、GConf-2.32.4.tar.bz2)をビルドする。
$ tar xvjf ORBit2-2.14.19.tar.bz2 $ cd ORBit2-2.14.19 $ ./configure && make # make install && ldconfig
$ tar xvjf GConf-2.32.4.tar.bz2 $ cd GConf-2.32.4 $ ./configure && make # make install && ldconfig
再度起動してみる。
$ /opt/google/chrome/chrome [1:1:723723261587:ERROR:nacl_fork_delegate_linux.cc(104)] Bad NaCl helper startup ack (0 bytes) [31698:31705:723726302155:ERROR:object_proxy.cc(239)] Failed to call method: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.NetworkManager was not provided by any .service files
何やらエラーメッセージらしき物は出てるが、無事起動。
2012年02月29日 xscreensaverとかstatとか [長年日記]
_ stat
とある事情でファイルのパーミッションを8進数の表現で表示したかった。
$ stat -c "%a %U %G %n" /tmp 1777 root root /tmp
みたいな感じでできた。