今日のメモ (Android で無線 dongle 認識の巻 2)
7/9 に作成した Android なイメージは原因不明で起動せず。LogCat 確認してみたらいくつか例外なメセジが確認できるんですが、直接の原因は不明。
という事で、repo sync からヤリ直してみる事にしました。ログを以下に。
repo sync まで
ディレクトリを掘ります。
$ mkdir android/armadillo500fx-droid-eclair $ cd android/armadillo500fx-droid-eclair $ export ANDROID=~/android/armadillo500fx-droid-eclair
で、repo init 実行。
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b android-2.1_r2
カーネルについては必要であれば git clone する方向としてこのまま sync 実行。
$ repo sync
終了したら a500fx なパッチなどを適用。
$ wget http://android-development-environment.googlecode.com/files/vendor_sola-a500fx-eclair.tar.gz $ tar zxvf vendor_sola-a500fx-eclair.tar.gz -C $ANDROID/vendor/ $ $ANDROID/vendor/sola/a500fx/patch/armadillo500fx-patch.sh
buildspec.mk 作って
$ cd $ANDROID $ echo "TARGET_PRODUCT:=a500fx" > buildspec.mk
無線 dongle とか wpa_supplicant 関連についての下準備。
vendor/sola/a500fx/init.rc 修正
on boot # basic network init insmod /system/lib/modules/rt2870sta.ko ifup lo ifup ra1 hostname localhost domainname localdomain # 中略して末端 service wpa_supplicant /system/bin/logwrapper /system/bin/wpa_supplicant -Dwext -ieth1 -c /data/misc/wifi/wpa_supplicant.conf -dd group system wifi disabled # oneshot : service dhcpcdeth1 /system/bin/logwrapper /system/bin/dhcpcd eth1 group system dhcp disabled oneshot on property:init.svc.wpa_supplicant=stopped stop dhcpcdeth1
external/dhcpcd/android.conf 修正
ra1 に書き換え。
# interface wlan0 interface ra1 # dhcpcd-run-hooks uses these options. option subnet_mask, routers, domain_name_servers
external/wpa_supplicant/Android.mk
OBJS_c に common.c を追加。
# 以下は一部のみを引用
INCLUDES = external/openssl/include frameworks/base/cmds/keystore OBJS = config.c common.c md5.c md4.c rc4.c sha1.c des.c if_index.c OBJS_p = wpa_passphrase.c sha1.c md5.c md4.c common.c des.c OBJS_c = wpa_cli.c wpa_ctrl.c common.c
external/wpa_supplicant/wpa_supplicant.donf 修正
ctrl_interface=DIR=/data/system/wpa_supplicant GROUP=system
update_config=1
#ctrl_interface=wlan0
network={
ssid="fuga"
psk="hogehoge"
priority=1
}
|
ctrl_interface をコメントアウトして良いのかどうか不明。
とりあえず
ここまでで make してみました。make 実行開始したのが遅めな時刻だったので、終わるかどうか、という世界だったんですが、帰る間際に終了したので諸々確認。
- out/target/product/a500fx/system/bin に wpa_supplicant があるか
- 無いorz
- external/wpa_supplicant/Android.mk 見たら BOARD_WPA_SUPPLICANT_DRIVER が云々な条件分岐がある
- どうもこの変数に WEXT をセットしないとコンパイルしない模様orz
- 代入するのは BoardConfig.mk らしい件
うーん。どうも BoardConfig.mk って色々な意味でポイント高いみたいですね。
ちなみに
gps_freerunner なナニについても現状の感触では
- gps_freerunner なソレだと libfreerunner_gps が出てくる模様
- external 配下にソース置く?
- BoardConfig.mk にて BOARD_HAVE_FREERUNNER_GPS に true 代入
- BoardConfig.mk にて BOARD_GPS_LIBRARIES に libfreerunner_gps 代入
で、libgps とリンク可能な形で、になるのかなぁ。shared の中身を覗いて云々みたいなバイナリアンの真似をしなきゃいけなくなるのかどうなのか。
明日は
体力的に微妙なので振替休日を頂戴してます。要は自宅対応で freerunner なナニを掘る、という事だったりするあたり、シャレになってないカンジ。
できれば http://vegeets.ti-da.net/ で開店直後から昼過ぎくらいまで、電源確保可能な席が取れれば非常に嬉しいんですが。