客戶服務‎ > ‎技術文章‎ > ‎

使用BeagleboardxM-架設內建Wi-Fi的Android核心

張貼者:2011年3月12日 下午5:48Sog Yang   [ Hank Wu 已於 2011年4月2日 下午7:10 更新 ]

使用Beagleboard –xM以及Beagle Robot Board架設內建Wi-Fi的Android核心(有測試影片)

(Configure and Build Android 2.2 Kernel for Beagleboard –xM and Beagle Robot Board with Demo Video)


1.0文件簡介

本文件需要Beagleboard xM以及Beagle Robot Board來實現具有Wi-Fi功能的Rowboat作業系統。

Rowboat是一以Android為核心的作業系統,文件內容中提供的Android Source Code2.2版,並支援DSP以及Wi-Fi環境,(雖然我們提供的Source Code 支援無線網路,但是BeagleBoard xM本身並沒有無線網路晶片組,如果需要無線上網功能,需再加購Beagle Robot Board)


每章節都會先概述操作的軟硬體環境,環境設定好以後,編譯的內容皆為步驟式教學,首先是如何編譯出Rowboat的作業系統,再來則是Wi-Fi驅動程式的編譯。

 

當使用者編譯完成Android 所需的uImage以及FileSystem之後,若有需要製作成Beagleboard xM可用的micro SD,需要特殊的分割區,於文件後段也會提供製作的步驟教學。


本文件發布與更新訊息、本文件內容Source code將位於CATCAN網站的檔案下載區

http://www.catcan.com.tw/

Beagleboard於台灣的相關訊息也會發布於

http://www.beagleboard.tw/

1.1文件更新訊息

      Revision A1發布於20110221號,Rowboat作業系統,作業系統支援Android 2.2 核心以及DSP驅動。

Revision A2發布於20110307號,Rowboat作業系統,作業系統支援Android 2.2 核心、DSP驅動以及Wi-Fi功能。

2.0設定與建置

2.1 準備使用者端環境

2.1.1 硬體環境

本手冊操作硬體環境如下

l   1.Beagleboard xM

l   2.Beagle Robot Board

(http://www.catcan.com.tw/home-1/beaglerobotboard)

l   3.安裝Linux uBuntu 10.04LTS Desktop Edition的筆記型電腦,需具備網路及serial port

l   4. Serial cable (USB to serial)

l   5.電源供應器(5V)

l   6. USB Keyboard & Mouse

l   7.可以讀取micro SD Card Reader(圖中有micro SDSD以及SDUSB裝置)

l   8.使用4G以上的micro SD,建議要8G(不建議用TI附的測試卡)

l   9. HDMI to DVI cable

l   10.具有DVI規格的螢幕輸出裝置

l   HDMI to DVI cable特寫


2.1.2 軟體環境

Source code

l   Rowboat with Android 2.2 Source Coderowboat-android_CCI_v1.tbz

l   Wi-Fi Driver Source CodeV3.00.01.06-WL6.1.6.0_CCI_v1.tbz

Utility

l   Bootable micro SD Utilityxm_BootMSDU.tar.bz2 

Required packages

l   Git 1.5.4 or newer and the GNU Privacy Guard.

l   JDK 5.0, update 12 or higher. Java 6 is not supported, because of incompatibilities with @Override.

l   flexbisongperflibsdl-devlibesd0-devlibwxgtk2.6-dev (optional)

l   build-essentialzipcurlminicomtftp-serveruboot-mkimage 

注意

l   本文件所有內容請勿使用root使用者操作,請使用您的使用者登入uBuntu(For example: user@user-laptop:~$)

 

取得軟體:

l   Source codeUtility請至CATCAN官網下載區,其他package請使用apt-get

$sudo apt-get install git-core gnupg gperf libsdl-dev libesd0-dev

$sudo apt-get install libwxgtk2.6-dev zip curl minicom tftpd

$sudo apt-get install uboot-mkimage libx11-dev libncurses-dev

$sudo apt-get install expect bison build-essential flex zlib1g-dev 

l   Java5 setup

l   系統à管理à軟體來源加入下列兩行

deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse

deb http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse

$sudo apt-get update

$sudo apt-get install sun-java5-jdk 

Ø   如果環境建置有問題請參考下列網站

http://code.google.com/p/rowboat/wiki/ConfigureAndBuild#Software

Ø   JAVA5無法安裝請參考下方網站http://anemospring.blogspot.com/2010/06/ubuntu-1004-cant-install-sun-java5-jdk.html

 確認檔案

l   在您的使用者目錄(For example: user@user-laptop:~$)下解壓縮Android 2.2 Source Code,請勿使用root使用者操作本說明文件。

$cd ~

$tar -jxvf rowboat-android_CCI_v1.tbz

l   檢查路徑

rowboat-android/external/ti-dsp是否有以下兩個檔案:

dvsdk_dm3730-evm_4_00_00_22_setuplinux

arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

並在此目錄下先將權限作變更

$chmod 755 dvsdk_dm3730-evm_4_00_00_22_setuplinux

Ø   如果沒有該兩個檔案,請至下面網頁下載

     http://code.google.com/p/rowboat/wiki/DSP

Ø   請參考此段文字

Ø   (For rowboat-froyo-dsp.xml only) Download dvsdk_dm3730-evm_4_00_00_22_setuplinuxpackage to the external/ti-dsp folder manually from the table in webpage

Ø   http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/dvsdk/DVSDK_4_00/latest/index_FDS.html. Registration might be needed.

Ø   arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

 

2.2編譯Android核心

l   Source the default configure

$cd ~/rowboat-android/kernel

$make ARCH=arm omap3_beagle_android_defconfig 

l   Patch DSP path

$cd ~/rowboat-android/external/ti-dsp/ti-dvsdk_dm3730-evm_4_00_00_22/

l   Edit Rules.make file ,change the username with your user name

$vi Rules.make

需編輯以下兩個地方

1. DVSDK_INSTALL_DIR=/home/username/rowboat-android/external/ti-dsp/ti-dvsdk_dm3730-evm_4_00_00_22

2. CSTOOL_DIR=/home/username/rowboat-android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/../

將username更改為自己的使用者名稱,編輯完後請存檔。

l   To build Android with TI DSP stack use following command:

$make TARGET_PRODUCT=beagleboard OMAPES=5.x 

2.3編譯Wi-Fi驅動程式

l   解壓縮Wi-Fi Driver Source Code,本文解在~/下,資料夾名稱為V3.00.01.06-WL6.1.6.0

$cd ~

$tar -jxvf V3.00.01.06-WL6.1.6.0_CCI_v1.tbz 

l   更改Android核心路徑

切換資料夾

$cd ~/V3.00.01.06-WL6.1.6.0/software/MS_TI_OMAP35x_WL1271_6.1.0.0.144/MS_TI_WL1271_Sources/ 

編輯WLAndroidBuild.sh這個script裡面的PATH

$vi WLAndroidBuild.sh 

ROWBOAT_ROOT_PATH=填入你的Android Source Code位置,

舉例ROWBOAT_ROOT_PATH=/home/username/rowboat-android,編輯完後請存檔。 

l   編譯Wi-Fi SourceCode

$ ./WLAndroidBuild.sh build wlan 

l   拷貝編譯完成的檔案至Android資料夾

$ cd image/WL1271_demo_01/wlan/

$ cp tiwlan_drv.ko ~/rowboat-android/out/target/product/beagleboard/system/etc/wifi/

$ cp tiwlan.ini ~/rowboat-android/out/target/product/beagleboard/system/etc/wifi/

$ cp firmware.bin ~/rowboat-android/out/target/product/beagleboard/system/etc/wifi/

 

3.0製作開機 Micro SD

3.1準備

3.1.1準備硬體

l   micro SD

3.1.2準備軟體

l   Bootable micro SD Utilityxm_BootMSDU.tar.bz2

l   上上章節中編譯完成的uImage,檔案位於rowboat-android/kernel/arch/arm/boot資料夾下

l   上章節中已加入Wi-Fi驅動程式的FileSystem

 

3.2製作

l   打包FileSystem,產生rootfs image:

$cd ~/rowboat-android/out/target/product/beagleboard/

$mkdir android_rootfs

$sudo cp -r root/* system android_rootfs 

$../../../../build/tools/mktarball.sh ../../../host/linux-x86/bin/fs_get_stats android_rootfs . rootfs rootfs.tar.bz2

 

l   解壓縮xm_BootMSDU.tar.bz2,本範例解壓縮於使用者目錄下

$tar -jxvf xm_BootMSDU_01072011.tar.bz2

 

l   將編譯過程中rowboat-android/kernel/arch/arm/boot資料夾的uImage Copy xm_ BootMSDU/Boot_Images裡面

$cp ~/rowboat-android/kernel/arch/arm/boot/uImage ~/xm_BootMSDU/Boot_Images/

 

l   將編譯過程中rowboat-android/out/target/product/beagleboard資料夾的rootfs.tar.bz2copyxm_ BootMSDU/Filesystem

$cp ~/rowboat-android/out/target/product/beagleboard/rootfs.tar.bz2 ~/xm_BootMSDU/Filesystem

 

l   打開終端機,使用讀卡機讀取micro SD card,並檢查裝置編號,此範例為sdb

$dmesg

 

l   將路徑切換到xm_ BootMSDU

$cd ~/xm_BootMSDU

l   執行製作指令,目標裝置位置要依據上面dmesg結果,本範例為sdb

$sudo ./mkmmc-android.sh /dev/sdb

l   打入使用管理權限密碼後,按y確定將SD card上所有資料銷毀,並分割成開機所需的磁碟分割,請注意如有重要資料,請先備份。

 

l   拷貝init.omap3.rcmicro SD中的rootfs分割區

$sudo cp ~/rowboat-android/device/ti/beagleboard/init.omap3.rc /media/rootfs/

l   執行完畢以後,取出micro SD,放入BeagleBoard xMsd卡插槽,此時需將Beagleboard xM以及Beagle Robot Board透過延伸接腳連接,連接方式可參考CATCAN官網http://www.catcan.com.tw/home-1/beaglerobotboard


l   開機後選擇設定(Setting)

l   設定無線網路

l   無線網路開啟畫面


l   以無線網路上網瀏覽網站



在Android2.2作業環境下,對BeagleRobotBoard的WIFI功能進行測試,連線設定過程請點閱下方影片: