‘Android’ カテゴリーのアーカイブ

AndroidでSDカードを使ってみる(1)

2009年9月28日 月曜日

システム3部鈴木です。

アットマークテクノ社製パネルコンピュータ、Armadillo-500 FX上のAndroidでSDカードを利用する方法を説明します。
Android自体はSDカード対応ですが、ArmadilloにSDカードを挿しただけでは認識してくれません。
mountdというサービスを動作させる必要があります。

今回の確認環境

mountdのビルド

Android1.5(cupcake)では、SDカードのマウントに mountd ではなく、vold を使うように変更されています。
しかし、voldを正規端末以外で動作させるにはソースの修正などが必要らしく、はっきりとした情報がありません。

次善の策として、以前利用されていた mountd を利用します。
設定メニューからSDカードのアンマウント・フォーマットができない等の不便はありますが、SDの利用はできます。

さて、デフォルトでは mountd をビルドしない設定になっているので、設定を変更して再ビルドします。

[PC ~/mydroid]$ vi system/core/mountd/Android.mk
LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

...中略...

# disabled - we are using vold now instead
include $(BUILD_EXECUTABLE)                   <-- コメントをとる。

[PC ~/mydroid]$ make

設定ファイルの設置

mountdは設定ファイルを参照してSDカードを自動マウントするので、設定ファイルを作成し、適切な場所においておく必要があります。
こちらの記事」に従ってAndroidユーザーランド(rootディレクトリ)を作成した後、設定ファイルをコピーして編集します。

[PC ~/mydroid]$ cp system/core/rootdir/etc/mountd.conf \
out/target/product/generic/root/system/etc/
[PC ~/mydroid]$ vi out/target/product/generic/root/system/etc/mountd.conf
## mountd configuration file

## add a mount entry for each mount point to be managed by mountd
mount {
    ## root block device with partition map or raw FAT file system
    block_device    /dev/block/mmcblk0        <-- SDカードに対応するデバイスファイルに変更
...後略...

また、mountdをサービスとして登録する必要があるので、init.rc ファイルの最後尾に追記します。

[PC ~/mydroid]$ vi out/target/product/generic/root/init.rc
...前略...
service mountd /system/bin/mountd          <-- 追記
socket mountd stream 0660 root mount       <-- 追記

あとは、AndroidユーザーランドをArmadilloに転送し、Armadillo-500 FXにSDカードを挿入してからAndroidを起動すれば、自動でSDカードが /sdcard にマウントされます。

SDカードはWindowsでFAT形式にフォーマットしたものを利用できます。

問題点

現状、以下の警告が出てしまいます。

FAT: Filesystem panic (dev mmcblk0)
fat_get_cluster: invalid cluster chain (i_pos 0)
File system has been set read-only

読み込み専用でマウントされてしまいました。当方ではさしあたり問題ないのですが・・・。
解決策が判明し次第、blogでフォロー致します。

AndroidでEMOBILEデータカードを使ってみる

2009年9月25日 金曜日

システム3部鈴木です。

アットマークテクノ社製パネルコンピュータ、Armadillo-500 FXにEMOBILEデータカード(D02HW)をつないでインターネットに接続します。
Androidからデータカードを直接利用することは今のところできないので、Linux側でpppdを使ってIPアドレスを取得してから、Androidを起動します。

@テクノさんの「EMOBILE の データ通信カードを使用してインターネットに接続する」に詳しい解説が載っているので、こちらの内容をベースに説明します。
はやく独自のネタも公開したいと思う昨今です。

今回の確認環境

USB Serial Converter のデバイスドライバを修正・・・しなくていいです

上記@テクノさんのサイトには、ドライバのソースとKconfigにパッチを当てるように指示がありますが、カーネルの2.6.20以降では、デフォルトでHUAWEIのデバイスに対応しているそうなので、修正の必要はありません。

ppp 機能及び USB Serial Converter のデバイスドライバを組み込む

カーネルに、以下のデバイスドライバを組み込みます。

  • PPP (point-to-point protocol) support
  • PPP support for async serial ports
  • USB driver for GSM and CDMA modems

また、ユーザランドのアプリケーションとして、pppd を組み込みます。

make menuconfig を使用した場合の設定は下記のようになります。
atmark-distのpwdはインストールディレクトリ直下とします。

[PC ~/atmark-dist]$ make menuconfig

カーネルの設定、atmark-distユーザーランドの設定の出し方は、「LinuxカーネルとArmadilloユーザーランドをビルドする」を参照してください。

カーネルの設定…
pppについてはandloid-2.6.27のカーネルには既に設定されていました。
USB Serial Converterの名前が参考サイトと異なっています。

Linux Kernel Configuration

Device Drivers  --->
Network device support  --->
<*> PPP (point-to-point protocol) support
<*>   PPP support for async serial ports

USB support  --->
<*> USB Serial Converter support  --->
<*>   USB driver for GSM and CDMA modems

ユーザランドの設定…

Userland Configuration

Network Applications  --->
[*] pppd

設定を保存して、makeします。

[PC ~/atmark-dist]$ make dep all

ppp 関連の設定をおこなう

@テクノさんのサイト通りに設定ファイルを設定していきますが、若干の補足を。

ネットワークの設定がDHCPになっていると、resolv.conf の中身がArmadilloが起動するたびに空になったり違う内容になったりするので、当方では起動スクリプト(rc.local)に、下記のように書き込んでいます。とりあえず。

echo "search ns11.iij4u.or.jp" > /etc/config/resolv.conf
echo "nameserver 210.130.1.1" >> /etc/config/resolv.conf
・・・

それから、G-Callなど、EMOBILE以外が提供している通信サービスを利用する場合、ID・パスワード・DNSなどが異なるので注意です。

ppp 接続をおこなう

デバイスドライバを組み込んだ Armadillo-500 FX に D02HW を接続すると、おそらく下記のように表示されます。

usb 3-1: new full speed USB device using fsl-ehci and address 2
usb 3-1: configuration #1 chosen from 1 choice
scsi1 : SCSI emulation for USB Mass Storage devices
usb 3-1: USB disconnect, address 2
usb 3-1: new full speed USB device using fsl-ehci and address 3
usb 3-1: configuration #1 chosen from 1 choice
usb-storage: probe of 3-1:1.0 failed with error -5
option 3-1:1.0: GSM modem (1-port) converter detected
usb 3-1: GSM modem (1-port) converter now attached to ttyUSB0
usb-storage: probe of 3-1:1.1 failed with error -5
option 3-1:1.1: GSM modem (1-port) converter detected
usb 3-1: GSM modem (1-port) converter now attached to ttyUSB1
scsi4 : SCSI emulation for USB Mass Storage devices
scsi 4:0:0:0: CD-ROM            HUAWEI   Mass Storage     2.31 PQ: 0 ANSI: 2
scsi 4:0:0:0: Attached scsi generic sg1 type 5

D02HWは複数のデバイスとして認識されるらしく、USB Serial converter は、ttyUSB0 と ttyUSB1 にアタッチされますが、最初の tty がシリアルモデムになります。
そのため、ttyUSB0 を使用して ppp 接続を行います。

[armadillo ~]# pppd /dev/ttyUSB0 230400 connect /etc/ppp/ppp-on-dialer

コマンドはすぐに終了しますが、接続にはしばらく時間がかかります。
データカードの青いLEDが点灯しっぱなしになったらOKです。
正常に接続できると、「ppp0」というネットワークインターフェースが作成されます。

[armadillo /etc/ppp]# ifconfig ppp0
ppp0      Link encap:Point-Point Protocol
          inet addr:xxx.xxx.xxx.xxx  P-t-P:10.64.64.64  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:10 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:178 (178.0 B)  TX bytes:130 (130.0 B)

以上で、EMOBILE の D02HW を使用して、インターネットに接続することができます。

・・・ところで、DO2HWは既に市場には出回っていません。たとえばD12LCで接続する場合は、下記のようにもう一手間かける必要があるようです。
参考:EMOBILE D12LCでネット接続するには?

どうも、末尾がLCのデータカードより、HWのデータカードのほうが構造がシンプルで手間が掛からないようです。

AndroidからEMOBILEを利用する

Android用にもDNSの設定を追加すれば、後は起動するとネットワークが使用可能になっています。

Androidユーザーランドの /init.rdにdnsの設定をしている箇所があるので、適宜変更します。
既にあるdns1の記述を残したい場合は、dns2として行を追加してください。

    setprop net.dns1 xxx.xxx.xxx.xxx

また、電源を投入したら自動でAndroidを立ち上げてEMOBILEで通信したい場合、Armadilloの /etc/config/rc.local を修正します。
sleepしているのはドライバのロードやpppdに時間が掛かるためです。もう少し多くても良いかもしれません。

[armadillo /etc/config]# vi rc.local

PATH=/sbin:/usr/sbin:/bin:/usr/bin
export PATH

jp2=`cat /sys/devices/platform/armadillo5x0_gpio.0/ports/gpio1_8_data`
if [ "$jp2" = "1" ]; then
        echo PPP...
        echo "search ns11.iij4u.or.jp" > /etc/config/resolv.conf
        echo "nameserver 210.130.1.1" >> /etc/config/resolv.conf
        sleep 3s

        pppd /dev/ttyUSB0 230400 connect /etc/ppp/ppp-on-dialer
        sleep 3s
        echo Booting Android...
        mount /dev/sda1 /mnt
        chroot /mnt/cupcake /init
fi

修正したらフラッシュメモリに書き込むのを忘れずに。

[armadillo /etc/config]# flatfsd -s

resolv.conf へのDNSの設定は、Androidを使用する際には不要かもしれません。

Androidで無線LAN通信してみる

2009年9月25日 金曜日

システム3部鈴木です。

アットマークテクノ社製パネルコンピュータ、Armadillo-500 FXにAndroid1.5(cupcake)を載せて、無線通信する方法を説明します。
先日公開されたAndroid1.6(donut)では、今回のエントリーで行っているソースの修正は不要との話も耳に挟んでいるので、既に内容が風化しているかもしれません・・・。

今回の確認環境はこうなっています。

  • Armadilloユーザーランド: Atmark dist v20090318
  • Linuxカーネル : android-2.6.27 + patch (過去エントリー「LinuxカーネルとArmadilloユーザーランドをビルドする」を参照)
  • Androidユーザーランド:1.5(cupcake)
  • USB無線LANモジュール : Planex社 GW-US54Mini2
  • USB無線LANモジュールドライバ : Ralink RT2X00
  • 開発環境 : atde2 v20090403

無線LANモジュールにPlanex社 GW-US54Mini2を選んだ理由は、アットマークテクノ社の開発者サイトの記事、「Armadillo-500 FXでUSB無線LANモジュールを使う」で紹介されていたためです。
GW-US54Mini2にはGW-US54Mini2S/B/Gというバリエーションがあるようですが、いずれでも問題ありません。

さて。Androidにおいて、無線LAN(以下Wi-Fi)の利用には、wpa_supplicantというサービスを利用します。
cupcakeのソースに含まれているwpa_supplicant-0.5.10は上記の開発者サイトで利用しているRalink社純製のドライバに対応していないようなので、あらかじめカーネルに含まれている(ただしデフォルトではビルドされない)、Ralink RT2X00というドライバ(Ralink社純正ではなく、オープンソースの模様)を使用することにします。

Armadilloではないのですが、bc9というPDAにAndroidを載せてUSB無線LANアダプタを使用し、AndroidのGUI(設定画面)からWi-FiのON/OFFを可能にした、という記事が以下のサイト様にあったので、大いに参考にさせていただきます。
毎度この調子ですね。
bc9/Software/Android/Android_Wi-Fi

ほぼ上記のサイトに書かれている手順に従えばWi-Fi設定は完了しますが、若干の相違があるので、相違点のみ以下にまとめます。

Ralink RT2X00のビルド

参照サイトさんにconfigの設定が載っていなかったので補足します。
Ralink RT2X00ドライバをモジュールとしてビルドするには、menuconfigで下記のように設定します。
先に「Generic IEEE 802.11 Networking Stack (mac80211)」を<*>にしないとドライバの選択肢が表示されませんので注意です。

Linux Kernel Configuration
  Networking support  --->
    Wireless  --->
      <*> Generic IEEE 802.11 Networking Stack (mac80211)
  Dvice Drivers  --->
    Network device support  --->
      Wireless LAN  --->
      [*] Wireless LAN (IEEE 802.11)
      ...
      <M> Ralink driver support
      < >   Ralink rt2500 (USB) support
      <M>   Ralink rt2501/rt73 (USB) support
      [*]     Ralink rt2501/rt73 leds support

また、Ralink RT2X00 をロードするためには CRC ITU-T というライブラリが必要です。
デフォルトの設定ではモジュール{M}になっているので、静的組込{*}に変更します。

Linux Kernel Configuration
    Library routines  --->
        {*} CRC ITU-T V.41 functions

wifi.c ファイルの修正

ドライバのロードに関して、参照サイトさんではRalink RT2X00 ドライバをモジュールとしてビルドするように指示しているのですが、wifi.c の修正箇所にはドライバが静的に組み込まれていることを前提にしている部分があります。
これによってWi-Fiの設定が必ず初回にドライバのロード待ちでタイムアウトし、失敗するようです。
以下のように修正します。insmodが3連続しているのが目印です。
※ただし、まだ試していませんが、ドライバを静的に組み込むようにすれば元サイトどおりの修正でOKでしょう。

-   // Hack taken from EEPC WiFi path. We have statically linked the WiFi driver
-   // into the kernel, so we simply return and don't attempt to load the driver.
-   // So we set the driver property to ok, since we have already installed it.
-   property_set(DRIVER_PROP_NAME, "ok");
    if (check_driver_loaded()) {
        return 0;
    }
    insmod(RT2X00_LIB_DRIVER_MODULE_PATH);
    insmod(RT2X00_LIB_USB_DRIVER_MODULE_PATH);
    insmod(DRIVER_MODULE_PATH);
+   property_set(DRIVER_PROP_NAME, "ok");
    property_set("ctl.start", 0);
    sched_yield();

Androidユーザーランドの調整

検証の結果、必要なディレクトリが作成されていないと、 wpa_supplicant がエラーを出して設定が失敗するようなので、init.rc に必要なディレクトリの作成処理を追加します。 on boot の記述より前に追加します。

mkdir /data/misc/wifi 0770 system misc
mkdir /data/misc/wifi/sockets 0770 system misc
mkdir /data/system/wpa_supplicant 0770 system misc
mkdir /data/misc/dhcp 0770 dhcp dhcp
chown dhcp dhcp /data/misc/dhcp

残る問題

以上の手順で設定することで、Android の GUI から Wi-Fiの設定が出来るようになります。
しかし、現在わかっているだけで以下の問題が残っています。

  • 起動後にUSB無線LANアダプタを挿さないと認識されない
  • APを見つけた後、接続の確立に必ず1度失敗する
  • しばらく通信しないと接続が切れている

LinuxカーネルとArmadilloユーザーランドをビルドする

2009年9月24日 木曜日

システム3部鈴木です。

Armadilloに載せたAndroidで無線LANを利用したり、タッチパネルを付け替えたりするには、カーネルに手を加える必要があります。また、Armadilloのユーザーランド(Atmark-distユーザーランド)にアプリケーションやドライバを追加することもあるかもしれませんから、LinuxカーネルとArmadilloのユーザーランドをソースからビルドしてみることにしました。

Linuxカーネルの入手

ビルドはATDE環境で行います。

Android1.5(cupcake)のリリースとともにカーネルも2.6.26から2.6.27になりました。カーネル2.6.27はアットマークテクノのサイトでArmadillo対応版の正式リリースがないため、一般公開されているカーネルにパッチを当てます。これも前述のサイトで解説されているので参照しました。パッチのDLもできます。

Armadillo-500 FX に Android ( cupcake ) をのせる その5

取得したカーネルのver.が異なっていた場合の対処など、gitの使用方法については別途参照願います。

カーネル作成のコマンドを引用:

$ git clone git://android.git.kernel.org/kernel/common.git
$ cd common/
$ git branch
* android-2.6.27
※android-2.6.27 であることを確認。
$ wget http://sola-dolphin-1.net/data/android/Armadillo-500FX/kernel-2.6.27-armadillo500fx.tar.gz
$ tar zxvf kernel-2.6.27-armadillo500fx.tar.gz
$ patch -p1 -E < kernel-2.6.27-armadillo500fx.patch

Atmark Distユーザランドをビルドしてみる

Atmark Distユーザランドをビルドすると、Armadilloのフラッシュメモリに書き込むLinuxカーネルイメージ・Atmark Distユーザーランドイメージを作成できます。

Androidのソースをビルドする (cupcake)」の「開発環境の用意」で、atmark-distを用いたカーネル・ユーザーランドのビルドの準備は整っていますが、ビルドを実行する前に、Android用に手を加えます。

開発者サイトからDLできる「FX液晶モデル – ソフトウェアマニュアル」では、atmark-distの直下に「linux-2.6.x」というシンボリックリンクを作成していますが、そのリンク先をパッチを当てた2.6.27のカーネルソースのディレクトリに変更します。

$ cd atmark-dist-<version>/
$ rm linux-2.6.x
$ ln -s <2.6.27のDIR> linux-2.6.x

次に、DEFCONFIGの指定を変えます。コンフィグのデフォルト値が入ったファイルの指定を変えています。

atmark-distのコンフィグで、デフォルトのコンフィグを適用する際に、このAndroid用デフォルトコンフィグファイルが使用されます。

$ vi vendors/AtmarkTechno/Armadillo-500-FX.dev/tools/config-linux.conf
-DEFCONFIG_2_6=arch/arm/configs/armadillo500fx_dev_defconfig
+DEFCONFIG_2_6=arch/arm/configs/armadillo500fx_dev_android_defconfig

以降は「FX液晶モデル – ソフトウェアマニュアル」の「5.1.2. コンフィグレーション」にしたがってコンフィグ設定をします。

マニュアルどおりコンフィグが終わったら、追加で変更を加えます。

Androidを使用する場合にはArmadilloのデモアプリが邪魔なので、ビルド対象から外します。

コンフィグを変更する場合は、menuconfigを使用するのが楽です。

$ make menuconfig

まずはatmark-distのコンフィグが表示され、変更対象の選択をします。

「Kernel/Library/Defaults Selection」を選択します。

config01_5

今回はKernelのコンフィグは変更しませんが、参考までに「Customize Kernel Settings」と、「Customize Vendor/User Settings」を選択します。Yキーを押すと*が付き、選択されたことになります。

menuconfig画面02

選択したら、いったんExitでコンフィグ画面を抜けます。

コンフィグ設定を保存するか、と聞かれたらYesを選択してください。

menuconfig画面03

atmark-distのコンフィグが終了し、今度はカーネルのコンフィグが立ち上がります。

画面上の表示で、カーネルのコンフィグをしているのがわかります。

今回は特に変更が無いので、そのままExitしてください。

menuconfig画面04

カーネルのコンフィグが終了し、ファイルシステムのビルドの設定画面になります。

デモアプリをビルド対象から除外します。「Miscellaneous Applications」を選択し、次の画面で「a500-fx-demo」のチェックを外します。Nキーを押すと外れます。

menuconfig画面05

menuconfig画面06

前の画面にもどり、「X Window System」を選択します。

次の画面で、「X.Org KDrive」のチェックを外します。

デモアプリはXウィンドウアプリケーションなのですが、デモを除外したので、Xウィンドウも不要です。

menuconfig画面07

以上で変更は終わりです。Exitして、設定を保存してください。

以降は「5.1.2. コンフィグレーション」に従ってビルドし、イメージファイルを作成します。

作成したイメージファイルの書込方法は、イメージファイルをFTPでArmadilloに転送してからnetflashコマンドでローカルファイルを書き込む、専用の書き込みツールを使う、など、いくつか方法があります。

マニュアルを参照してください。

なお、ユーザーランドにアプリケーションやドライバを追加したい場合は、開発者サイト「 Armadillo-500 FXダウンロード」の「Atmark-dist 開発ガイド」というPDFを参照してください。

Androidのソースをビルドする (cupcake)

2009年9月24日 木曜日

システム3部鈴木です。

今後ソースに変更があった場合に対応できるよう、Androidをソースからコンパイルする方法を説明します。このエントリーではAndroid1.5(cupcake)を対象にしています。

開発環境の用意

Armadilloで動作するバイナリをビルドするには、@テクノが提供しているATDEという開発環境を使用します。
下記のサイトからダウンロードします。VMWareのイメージになっています。
Armadillo-500 FXダウンロード

ただ、このVMイメージはメモリが256MB、HDDが8GBなので、ビルドに時間がかかりますし、ソースを色々とDLすると、ディスクが一杯になってしまいます。
そこで、たとえばVMX Builderというツールを使用して、メモリの割り当てを増やし、ディスクを追加しておくと良いかと思われます。
VMX Builder Download
追加したディスクはext3でフォーマットし、/etc/mtabに追記しておくとマウントの手間が省けます。

セットアップは上記のサイトにある「FX液晶モデル – ソフトウェアマニュアル」というPDFファイルを参照してください。
「3.2. atmark-dist のビルドに必要なパッケージ」という項も確認して、必要なパッケージを最新にしておいてください。

なお、製品同梱のCDに含まれるファイルは上記のサイトのものよりだいぶ古いので、マニュアル中で「CDに入っている」と記載のあるものは上記サイトからDLしたもので代用するのが良いでしょう。

Androidユーザーランドをビルドしてみる

まず、Androidをビルドするために必要なパッケージを用意します。「開発環境の用意」で用意したDebianの環境で、下記のパッケージをインストールします。

# apt-get install flex bison gperf libsdl-dev libesd0-dev \
libwxgtk2.6-dev build-essential zip curl valgrind
# apt-get install unzip zlib1g-dev

次に、sun-java5-jdkをインストールするのですが、私の環境ではsoueces.listにnon-freeを追加してもsun-java6-jdkしか見つからなかったので、sunのサイトからダウンロードしました。
なお、sun-java6-jdkだとAndroidのソースのビルド中に警告が出て、続行できません。
Java SE ダウンロード – Previous Release – JDK 5
最新のJDK(現在はJDK 5.0 Update 20)をDLします。
プラットフォームはLinuxで、rpm形式のバイナリをDLしてください。
jdk-1_5_0_20-linux-i586-rpm.binをDLした事として、説明を続けます。

DLしたファイルに下記の操作を行い、jdk-1_5_0_20-linux-i586.rpmファイルを取り出します。

$ chmod +x jdk-1_5_0_20-linux-i586-rpm.bin
$ ./jdk-1_5_0_20-linux-i586-rpm.bin

できればDebianのパッケージ管理ツールで管理できるようにしたいので、.deb形式に変換します。
jdk_1.5.0_20-1_i386.debというファイルが出来上がります。

$ alien --scripts jdk-1_5_0_20-linux-i586.rpm

gdebiというツールでローカルのdebファイルをインストールできます。
アンインストールは「Synaptic パッケージマネージャ」など、標準的なツールで行えます。

# gdebi jdk_1.5.0_20-1_i386.deb

次はgit-coreです。既にインストールされているのですが、バージョンが古く、また、普通にapt-getで更新をかけても、1.5.4 以上になってくれません。
リポジトリにbackportsを追加する必要があります。
sources.listにリポジトリを追記して、インストールを行います。

# vi /etc/apt/sources.list
deb http://www.backports.org/debian/ etch-backports  main
deb-src http://www.backports.org/debian/ etch-backports  main
# apt-get update
# apt-get install debian-backports-keyring
# apt-get update
# apt-get -t etch-backports install git-core

次に、Androidのソースを取得し、ビルドします。
atmarkユーザのホームディレクトリで作業するものとして説明を続けます。

ソースを入手するために、repoというツールを~/binにインストールします。

$ mkdir bin
$ PATH=$PATH:/home/atmark/bin
$ curl http://android.git.kernel.org/repo >~/bin/repo
$ chmod a+x ~/bin/repo

ソースをDLするディレクトリを用意します。名前は自由に付けてください。

$ mkdir mydroid
$ cd mydroid

Android1.5(cupcake)のコードリストを取得します。
成功すると、YOUR NAME と Gmailアカウントを要求されます。
実在するGmailアカウントを入力してください。

$ repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake

ソースコードを取得します。2GB以上あり、時間がかかるので、気長に待ってください。

$ repo sync

makeの前に、取得したソースに対して、バッテリーの残量を調べるモジュールを修正します。
この作業を行わないと、Androidの起動直後にバッテリーの残量が無いと言われて、起動できません。
下記のサイトで詳しく解説して下さっていますので、「3.3.2 Batteryパッチ」の項に従ってファイルの修正を行ってください。
Android自社端末作成中 – ブリリアントサービス

修正が完了したらmakeします。

$ make

makeが完了したら、Armadilloに転送するためのファイルを作成します。
下記のディレクトリに移動して、中身を確認してください。

$ cd ~/mydroid/out/target/product/generic/
$ ls

rootというディレクトリがAndroidユーザーランドになります。
ただ、root/systemの中が空なので、…/generic/sysytem ディレクトリをコピーします。

$ cp -r ./system ./root/

キーレイアウト、キーマップのファイルのアクセス権を変更します。
これを行わないとボタンが効きません。全部backボタンのような動作をしてしまいます。
(keylayoutのほうは変更する必要が無いかもしれません)

$ chmod 0777 ./root/system/usr/keychars/* ./root/system/usr/keylayout/*

起動スクリプト等を変更します。
Android1.5を動かしてみる」でDLしたAndroidユーザーランドのtarファイルを展開し、作成されたディレクトリ直下に、起動スクリプトファイルがあるので、root直下にコピーします。
ここでは、展開後のディレクトリを~/androidとします。

$ cp ~/android/init.rc ./root

rootディレクトリをアーカイブして完成です。
(rootディレクトリを適当なところにコピーして、名前を変更したほうがいいかもしれません。cupcake等)

$ tar czf mydroid.tar.gz ./root

後は「Android1.0を動かしてみる」を参考に、
AndroidユーザーランドをArmadilloに展開してください。
wgetではなく、FTPでArmadilloにファイルを転送・展開すると良いと思われます。