android x86 を試してみる

火種

http://bird.dip.jp/mt/archives/2009/03/04/2242.html
をみて古いPCでもandroidが動くことを知る。

手元の Libretto L2 で試してようと思った。

環境構築

http://itpro.nikkeibp.co.jp/article/COLUMN/20090219/325052/?ST=oss&P=2
に従って構築。

しかし、ビルドするところで予期せぬエラー。

記事があがってから1ヶ月ほど経過してるので本家で変更があったと思える。

エラーメッセージに従って mv してみる。

$ mv vendor/asus/eee_701/Android.mk vendor/asus/eee_701/AndroidBoard.mk

無事進行。

途中不穏なメッセージがあるが、これは後日調べよう。
なんでARM用なのか?

無事終了。で次にkernel。自動生成されないようです。
http://itpro.nikkeibp.co.jp/article/COLUMN/20090219/325052/?ST=oss&P=3
そのままだと、Libretto L2 (CPU : Crusoe) はキビしい予感がしたので追加調整。

Processor type and features --> Processor family
(X) Crusoe
Processor type and features -->
<*> Toshiba Laptop support

さて make ..... しかしエラー

  CC      drivers/misc/pmem.o
drivers/misc/pmem.c:441: error: conflicting types for ‘phys_mem_access_prot’
include/asm/pgtable.h:300: error: previous declaration of ‘phys_mem_access_prot’ was here
drivers/misc/pmem.c: In function ‘flush_pmem_file’:
drivers/misc/pmem.c:804: error: implicit declaration of function ‘dmac_flush_range’
drivers/misc/pmem.c: In function ‘pmem_setup’:
drivers/misc/pmem.c:1264: error: implicit declaration of function ‘ioremap_cached’
drivers/misc/pmem.c:1265: 警告: assignment makes pointer from integer without a cast
make[2]: *** [drivers/misc/pmem.o] エラー 1
make[1]: *** [drivers/misc] エラー 2
make: *** [drivers] エラー 2

あかん、今日はここまで。

ThinkPadのブラウザキーに機能を割り当てる(xorg編)

普段、ぷらっとほーむで購入した
OKI minikeyboard III を使用しているので
ThinkPadを使っているときもついつい HOME キーを押すときに
ブラウザキー(←と→の上についてるやつ)を押してしまう。

いい加減イライラしてきたので xorg の設定をいじることにする。
(Host OS : xubuntu-8.04 LTS)

以下のようにするのがGoal

  • ブラウザキー左 ⇒ Home
  • ブラウザキー右 ⇒ End

xorg でキーコードを拾う

まず、なにはともあれキーコードの確認。どうやって?

google様にお伺いをたてても上位に回答が見つからない。

しばし悩んだ後、xorg のイベントビュアーで取れそうと思った。
xorgのイベントビュアーは xev というやつらしい。

ターミナルから

$ xev

とするとすごい勢いで X のイベントを文字列表示してくれる。
このツールで "ブラウザキー左" と "ブラウザキー右" のキーコードを拾う。

ブラウザキー左を押す

KeyPress event, serial 28, synthetic NO, window 0x3000001,
    root 0x56, subw 0x0, time 148069263, (168,-8), root:(591,293),
    state 0x0, keycode 234 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 28, synthetic NO, window 0x3000001,
    root 0x56, subw 0x0, time 148069263, (168,-8), root:(591,293),
    state 0x0, keycode 234 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

ブラウザキー右を押す

KeyPress event, serial 31, synthetic NO, window 0x3000001,
    root 0x56, subw 0x0, time 148070627, (168,-8), root:(591,293),
    state 0x0, keycode 233 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 31, synthetic NO, window 0x3000001,
    root 0x56, subw 0x0, time 148070627, (168,-8), root:(591,293),
    state 0x0, keycode 233 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

ということで

  • ブラウザキー左 : 234
  • ブラウザキー右 : 233

が得られました。あっけないほど簡単。

xorgでキーマップ設定変更

こっちはgoogleですぐに引っかかる。
xmodmap をいじればよいっぽい。

$ nano -cw ~/.xmodmap

して、以下の内容を作成。

keycode 233 = End
keycode 234 = Home

そして反映。

$ xmodmap ~/.xmodmap

なかなか簡単であるな、と思ったり。