トップ 最新 追記

Masa's blog

検索キーワード:

2012年02月03日 ARMedslack-13.37 on zaurus(SL-C760) [長年日記]

_ ARMedslack-13.37 on zaurus(SL-C760)

予備機のSL-C760ARMedslack-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ファイルシステムがお亡くなりになりました...。

せっかく環境がほぼ整いかけていたのに(-.-;。ext4ARMedslack-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

どうもext4ext3かという問題ではないのか?。

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.bz2GConf-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とか [長年日記]

_ xscreensaver

設定は、

$ xscreensaver-demo

で行い、実行は、

$ xscreensaver -no-splash &

で行う。

_ stat

とある事情でファイルのパーミッションを8進数の表現で表示したかった。

$  stat -c "%a %U %G %n" /tmp
1777 root root /tmp

みたいな感じでできた。