WiFi環境をAndroidでも
「 CuBox-i でUSBのWiFiアダプタを利用する」では、CuBox-i2上のUbuntuでUSBのWiFiアダプタを利用できるようにしました。その続きとして今度は、AndroidでもUSBのWiFiアダプタを利用できるようにしましょう。開発上はCuBox-i2を用いましたが、CuBox-i2eXやCuBox-i1でも動作します。
使用したWiFiのUSBドングルは前回と同じものです。
さっそく手順を説明していきましょう。
SDカードとUbuntuが動作するPCを用意してください。
下は、Ubuntu PC上のターミナルでの作業が続きます。
1. SDカードにAndroidシステムを書き込む
(1) http://server.vijge.net/static/cubox/android/
から
android-4.4.2-1.0.1-ga-aaf118bb78-gapps.tar.xz (2014年8月14日時点での最新版のファイル)
をダウンロードして展開します。
(2) 展開したら、SDカードをPCにセットして次のようにしてAndroidシステム一式を書き込みます。
$ cd android-4.4.2-1.0.1-ga-aaf118bb78-gapps
$ sudo ./create-sdcard.sh -f /dev/sdf
(1) 「ソフトウェア TIPS (13) CuBox-i にKitKat を載せてみる(ソースからのビルドに挑戦)」に記述してあるツール類のインストールをして、前準備の部分
「最初に http://www.solid-run.com/community/topic1091.html
から 「Clone in Desktop」を使ってこれから作業しようとするディレクトリに入れます。もし、ZIPダウンロードで持ってきた場合は、ディレクトリ名の最後が.masterとなっているのでandroid-imx6-kitkat としておきます。
ここからビルドを行っていきます。原文のインストラクションの文中にコメントをいれてみます。」
と 9.および 10. の部分
「 9. git clone git://git.freescale.com/imx/linux-2.6-imx.git kernel_imx
Linuxカーネルをダウンロードしてきてkernel_imx 内に入れます
cd kernel_imx; git checkout kk4.4.2_1.0.0-ga
Alternative, until Freescale updates their tree tags, the kernel can be downloaded from -
http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/tag/?id=kk4.4.2_1.0.0-ga
このように書いてますが、「別途ダウンロードしてきたもの」を使うと次のステップで git am が使えるようにするのに苦労します。git clone を使いましょう
10. Manually patch kernel_imx -
cd kernel_imx
git am < git tree location >/android-imx6-kitkat/kernel_imx/3.0.35/*
kernel_imxは実際にはkernel_imx.gitでした。これでソースへのパッチをあてることができます。」
が既にできているものとします。ここからは、上で記述のある “kernel_imx” ディレクトリにcdしているものとして説明を進めていきます。
(2) 環境変数をセットしておきます
$ export ARCH=arm
$ export CROSS_COMPILE=arm-linux-gnueabi-
(3) USB Wifiアダプタ・モジュール・ソースファイルを有効にします。
a) drivers/net/wireless/Makefile をテキストエディタで編集して
コメントアウトされている
obj-$(CONFIG_RTLWIFI) += rtlwifi/
を有効にします。
b) drivers/net/wireless/Kconfig をテキストエディタで編集して
コメントアウトされている
source "drivers/net/wireless/rtlwifi/Kconfig"
を有効にします。
(4) USB Wifiアダプタ・モジュールをmake対象にします。
$ make imx6_cubox-i_hummingboard_android_defconfig
$ make menuconfig
GUI画面でアダプタをモジュールとして取り込むように指定しましょう。
トップメニューから下のように”Realtek RTL8192CU/RTL8188CU USB Wireless Network Adapter”をモジュールとして組み込むように指定します。
Device Drivers --->
[*] Network device support --->
[*] Wireless LAN --->
<M> Ralink driver support --->
<M> Realtek RTL8192CU/RTL8188CU USB Wireless Network Adapter
を何回か選択して、最後にこの設定を保存するか質問してきますまでを選択してGUIメニューを終了します。
(5) カーネルの生成です。
$ make uImage
(5) カーネルの生成です。
$ make modules
$ mkdir ../modules
$ export INSTALL_MOD_PATH=../modules/
$ make modules_install
3. SDカードにカーネル、モジュールを書き込む
先程、作成したSDカードをPCから一旦抜いて挿し直してください。
自動的に
/dev/sdf1 が /media/foo/boot に
/dev/sdf5 が /media/foo/12345 にマウントされたものとします。
(自動マウントしない場合は、ご自身でマウントしてください。)
a) カーネルの書き込み
$ sudo cp arch/arm/boot/uImage /media/foo/boot
$ cd ../modules/lib/modules/3.0.35-06573-g475c029-dirty/kernel/drivers/net/wireless/rtlwifi
$ sudo cp rtlwifi.ko /media/foo/12345/lib/modules/
$ sudo cp rtl8192c/rtl8192c-common.ko /media/foo/12345/lib/modules/
$ sudo cp rtl8192cu/rtl8192cu.ko /media/foo/12345/lib/modules/
4. アダプタ用のファームウェアを書き込み
まず、適当なディレクトリを作成して、WiFi USB ドングル用ドライバとファームウェア/からファームウェアをダウンロードして、展開してください。
lib/firmware/rtlwifi/ の下の rtl8192cufw.bin などが必要になります。
ファームウェアは、/media/foo/12345/etc/firmware の下に置きます。
$ sudo cp -rf lib/firmware/rtlwifi /media/foo/12345/etc/firmware/
5. Android起動時に自動的にモジュールをロードする
テキストエディタを使って、/media/foo/12345//bin/wifi/rc.wifi ファイルの最後に以下の行を追加します。
# insmod for USB Wifi
# insmod /system/lib/modules/rtlwifi.ko
# insmod /system/lib/modules/rtl8192c-common.ko
# insmod /system/lib/modules/rtl8192cu.ko
これで、作業は終了です。SDカードの全パーティションをアンマウントしてPCから抜いて、CuBox-iに挿してAndroidが起動して、WIFIが利用できることを確かめてください。
最後にペタピコショップからのお知らせ
WiFi USBドングルはCuBox-i1, CuBox-i2, CuBox-i2eX での確認ができています。
PetapicoShopでは、WiFiモデルとしてすぐにご利用いただけるようにしました。マイクロSDはAndroid4.4 (全機種)とUBUNTU(CuBox-i1以外) が選べます。
このKitKatは、先のコラムで取り上げたGeChicマルチタッチ対応 液晶ディスプレイのドライバも同時に含んでいます。WiFiと同時にタッチパネルディスプレイもご利用いただけます。
CuBox-i2eXの入荷予定は10月末を予定しています。
CuBox-i4はWiFi内蔵なので、あえてWiFiモデルは用意していませんが、WiFiドングルは他の機種と同様に動作が確認できています。この場合WiFiが2つ見える状態となります。技適対応が必要な場合には、有効な方法となります。
USBドングルとSDだけを提供することもできます。個別にpetapicoshop@petapico.bizまでお問い合わせください。