2011年11月06日 linux-3.1 on ARMedslack-13.1 with SL-C860 [長年日記]
_ linux-3.1 on ARMedslack-13.1 with SL-C860
セルフビルド後、ブートは成功。しかし、タッチパネルとALSAがダメ。
タッチパネルに関しては、/dev/input/event1からデータは流れてくるが、Ximageon(tslib)がちゃんと処理できてない感じ。
ALSAに関しては、
root@c860:/etc/rc.d# /usr/sbin/alsactl restore /usr/sbin/alsactl: load_state:1610: No soundcards found...
という状態。
いずれも、linux-2.6.37辺りからそういう状況だったので、zaurus-develの過去ログを再度調査してみよう。
2011年11月13日 linux-3.1 on ARMedslack-13.1 with SL-C860(ALSA fix) [長年日記]
_ linux-3.1 on ARMedslack-13.1 with SL-C860(ALSA fix)
linux-3.1 on ARMedslack-13.1でALSAが正常に機能しなかった件が解決。
linux-2.6.36.4の時は、/etc/rc.d/rc.moduleで
/sbin/modprobe snd_soc_corgi
とだけしていたのだが、続けて
/sbin/modprobe snd_soc_pxa2xx
とすればOKとなった。
dmesgには
asoc: wm8731-hifi <-> pxa2xx-i2s mapping ok
と表示されていた。
2011年11月16日 linux-3.1 on ARMedslack-13.1 with SL-C860(Touchpanel fix) [長年日記]
_ linux-3.1 on ARMedslack-13.1 with SL-C860(Touchpanel fix)
ALSAに引続きタッチパネルが動かなかった件も解決(^^)d。
Xorg
/usr/bin/Xorgはtslib-1.0をソースから導入した環境で動かしていたのだが、以下のパッチを当ててtslib-1.0をインストールし直せば動いた。
*** plugins/input-raw.c.ORG 2011-11-14 18:16:07.000000000 +0900 --- plugins/input-raw.c 2011-11-15 23:20:00.000000000 +0900 *************** *** 52,58 **** u_int64_t absbit; if (! ((ioctl(ts->fd, EVIOCGVERSION, &version) >= 0) && ! (version == EV_VERSION) && (ioctl(ts->fd, EVIOCGBIT(0, sizeof(bit) * 8), &bit) >= 0) && (bit & (1 << EV_ABS)) && (ioctl(ts->fd, EVIOCGBIT(EV_ABS, sizeof(absbit) * 8), &absbit) >= 0) && --- 52,58 ---- u_int64_t absbit; if (! ((ioctl(ts->fd, EVIOCGVERSION, &version) >= 0) && ! (version >= EV_VERSION) && (ioctl(ts->fd, EVIOCGBIT(0, sizeof(bit) * 8), &bit) >= 0) && (bit & (1 << EV_ABS)) && (ioctl(ts->fd, EVIOCGBIT(EV_ABS, sizeof(absbit) * 8), &absbit) >= 0) &&
$ ls -al /usr/local/lib/libts* lrwxrwxrwx 1 root root 18 2011-11-15 23:30 /usr/local/lib/libts-0.0.so.0 -> libts-0.0.so.0.1.1* -rwxr-xr-x 1 root root 9822 2011-11-15 23:30 /usr/local/lib/libts-0.0.so.0.1.1* -rwxr-xr-x 1 root root 916 2011-11-15 23:30 /usr/local/lib/libts.la* lrwxrwxrwx 1 root root 18 2011-11-15 23:30 /usr/local/lib/libts.so -> libts-0.0.so.0.1.1*
ようはバージョンチェックの判定条件がまずかった様子。
Ximageon
/angstrom/usr/bin/Ximageonの方がリンクしているtslibはlibts-1.0-0_1.0-r28.6.9_armv5te.ipkを展開した物なのだが、
$ ls -al /angstrom/usr/lib/libts* lrwxrwxrwx 1 root root 18 2011-11-15 23:58 /angstrom/usr/lib/libts-1.0.so.0 -> libts-1.0.so.0.0.0* -rwxr-xr-x 1 root root 10060 2011-11-15 23:58 /angstrom/usr/lib/libts-1.0.so.0.0.0* -rwxr-xr-x 1 root root 919 2011-11-15 23:58 /angstrom/usr/lib/libts.la* lrwxrwxrwx 1 root root 18 2011-11-15 23:58 /angstrom/usr/lib/libts.so -> libts-1.0.so.0.0.0*
実態としては上記のようなバージョンで、対応するソースはhttps://github.com/kergoth/tslibより取得できる最新版のkergoth-tslib-1.0-102-g1fd999e.tar.gzで良さそう。こちらのソースは上記のバージョンチェックの修正が施されていたので、そのままビルドし直した。
$ tar xvzf kergoth-tslib-1.0-102-g1fd999e.tar.gz $ cd kergoth-tslib-1fd999e $ ./autogen.sh $ ./configure --prefix=/angstrom/usr --sysconfdir=/angstrom/etc $ make # make install && ldconfig
とりあえずこれで、linux-3.1環境でARMedslack-13.1 on SL-C860を問題なく利用できる自信がついたので、ARMedslack-13.37へのバージョンアップも十分可能ではないかと思う。
2011年11月17日 linux-3.1 on ARMedslack-13.1 with SL-C860(気づいた事) [長年日記]
_ linux-3.1 on ARMedslack-13.1 with SL-C860(気づいた事)
悪い点
- Ximageonが起動した状態でサスペンド(echo mem >/sys/power/state)すると、Xが落ちて(ただし画面はXのまま固まっている。ssh等でログインは可能)、サスペンドに失敗する。結構困ってる(-_-;。
良い点
- タッチパネルのブルブルがかなり改善されている。特に、クロックアップ時の精度も通常クロック時の精度と全く変わらないぐらいアップしている。かなり嬉しい(^^)d。
その他
- amixer sset 'Mic Boost' へ引数文字列の変更
- amixer sset 'Playback Deemphasis' へ引数文字列の変更
2011年11月23日 linux-3.1 on ARMedslack-13.1 with SL-C860(Ximageon落ちる件が解決!) [長年日記]
_ linux-3.1 on ARMedslack-13.1 with SL-C860(Ximageon落ちる件が解決!)
いろいろ調べてみると、libts-0.0.so.0.1.1をリンクしている/usr/bin/Xorgは問題なくて、libts-1.0.so.0.0.0をリンクしている/angstrom/usr/bin/Ximageonが落ちてしまうという事から、libts-1.0.so.0.0.0に原因があると考えた。
そこで、libts-1.0.so.0.0.0を最新版のkergoth-tslib-1.0-102-g1fd999e.tar.gzからビルドするのではなくて、libts-0.0.so.0.1.1の元ソースからlibts-1.0.so.0.1.1をビルドしてみた。
tslib_1.0.orig.tar.gzとtslib_1.0-7.diff.gzをDebianから拝借し、
$ tar xvzf tslib_1.0.orig.tar.gz $ cd tslib-1.0 $ zcat tslib_1.0-7.diff.gz | patch -p1 $ cat debian/patches/*patch | patch -p1
続けて、plugins/input-raw.cへの修正を施した後に、configure.ac内で定義されているライブラリのバージョン(0.0)を、
LT_RELEASE=1.0
に修正し、
$ PATH="/usr/local/automake-1.6/bin:${PATH}" ./autogen.sh $ ./configure --prefix=/angstrom/usr --sysconfdir=/angstrom/etc $ make # make install && ldconfig
この環境だとXimageonもサスペンドで落ちる事無く機嫌良く動いてくれるようになった(^^)d。
2011年11月25日 browser/locales/en-US/updater/updater.ini のゴミの正体 [長年日記]
_ browser/locales/en-US/updater/updater.ini のゴミの正体
以前から、firefoxをビルドする際に、browser/locales/en-US/updater/updater.ini の末尾に付いたゴミを取り除かないと、sedがループするという現象があった。
; This file is in the UTF-8 encoding [Strings] TitleText=%MOZ_APP_DISPLAYNAME% Update InfoText=%MOZ_APP_DISPLAYNAME% is installing your updates and will start in a few moments(ここにゴミ)
ひょんな事からこのゴミがユニコードでの「・・・」(中黒点を三つ重ねた文字)を表す文字ということに気づいた。
よくよく見てみると
; This file is in the UTF-8 encoding
と、先頭に書いてありますな...。
いつもビルドしている環境が ja_JP.eucJP なので、ビルドに不具合が発生した...というか、sedに不具合が発生したということか?。
2011年11月30日 xorgのタッチパッド無効化(Slackware-13.1 ちょっと古いけど) [長年日記]
_ xorgのタッチパッド無効化(Slackware-13.1 ちょっと古いけど)
富士通のノートPCにインストールされたSlackware-13.1を、そっくりそのまま日立のノートPCに移し換える作業をした。作業そのものは問題なく終ったが、USBマウスを挿していても手元のタッチパッドが有効になっていて、キータイプ時にマウスカーソルが動いたり、クリックされたりして、ちょっと使い勝手が悪くなった。
そこで、タッチパッドを無効にする方法(X.Org X Server 1.7.7)を調べた。
# cp /usr/share/hal/fdi/policy/10osvendor/11-x11-synaptics.fdi /etc/hal/fdi/policy/ # vi /etc/hal/fdi/policy/11-x11-synaptics.fdi
で、
<merge key="input.x11_driver" type="string">synaptics</merge>
の次の行に
<merge key="input.x11_options.TouchpadOff" type="string">1</merge>
を追加して、リブートでOK。
ちなみに、日本語キーボード対応と[Ctrl]<->[CapsLock]の入れ換えは、
# cp /usr/share/hal/fdi/policy/10osvendor/10-keymap.fdi /etc/hal/fdi/policy/ # vi /etc/hal/fdi/policy/10-keymap.fdi
で、
<merge key="input.xkb.options" type="string">terminate:ctrl_alt_bksp</merge> <merge key="input.xkb.layout" type="string">us</merge>
を
<merge key="input.xkb.options" type="string">ctrl:swapcaps,terminate:ctrl_alt_bksp</merge> <merge key="input.xkb.layout" type="string">jp</merge>
に修正する。
Slackware-13.37(X.Org X Server 1.9.5)の場合
一部未検証(タッチパッドの無効化)だが、
# cp /usr/share/X11/xorg.conf.d/50-synaptics.conf /etc/X11/xorg.conf.d/ # vi /etc/X11/xorg.conf.d/50-synaptics.conf
で、
Option "TouchpadOff" "1"
を追加と、
# cp /usr/share/X11/xorg.conf.d/90-keyboard-layout.conf /etc/X11/xorg.conf.d/ # vi /etc/X11/xorg.conf.d/90-keyboard-layout.conf
で、
Option "XkbLayout" "us" Option "XkbOptions" "terminate:ctrl_alt_bksp"
を
Option "XkbLayout" "jp" Option "XkbOptions" "terminate:ctrl_alt_bksp,ctrl:nocaps"
に修正でOK(と思う)。