使用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 Code為2.2版,並支援DSP以及Wi-Fi環境,(雖然我們提供的Source Code 支援無線網路,但是BeagleBoard –xM本身並沒有無線網路晶片組,如果需要無線上網功能,需再加購Beagle Robot Board)。 每章節都會先概述操作的軟硬體環境,環境設定好以後,編譯的內容皆為步驟式教學,首先是如何編譯出Rowboat的作業系統,再來則是Wi-Fi驅動程式的編譯。 當使用者編譯完成Android 所需的uImage以及FileSystem之後,若有需要製作成Beagleboard –xM可用的micro SD,需要特殊的分割區,於文件後段也會提供製作的步驟教學。 本文件發布與更新訊息、本文件內容Source code將位於CATCAN網站的檔案下載區 Beagleboard於台灣的相關訊息也會發布於 1.1文件更新訊息 Revision A1發布於2011年02月21號,Rowboat作業系統,作業系統支援Android 2.2 核心以及DSP驅動。 Revision A2發布於2011年03月07號,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 SD轉SD以及SD轉USB裝置) 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 Code:rowboat-android_CCI_v1.tbz l Wi-Fi Driver Source Code:V3.00.01.06-WL6.1.6.0_CCI_v1.tbz Utility l Bootable micro SD Utility:xm_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 flex, bison, gperf, libsdl-dev, libesd0-dev, libwxgtk2.6-dev (optional) l build-essential, zip, curl, minicom, tftp-server, uboot-mkimage 注意 l 本文件所有內容請勿使用root使用者操作,請使用您的使用者登入uBuntu(For example: user@user-laptop:~$)。
取得軟體: l Source code及Utility請至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
確認檔案 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
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 Utility:xm_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.bz2,copy到xm_ 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.rc至micro SD中的rootfs分割區 $sudo cp ~/rowboat-android/device/ti/beagleboard/init.omap3.rc /media/rootfs/ l 執行完畢以後,取出micro SD,放入BeagleBoard –xM的sd卡插槽,此時需將Beagleboard –xM以及Beagle Robot Board透過延伸接腳連接,連接方式可參考CATCAN官網http://www.catcan.com.tw/home-1/beaglerobotboard l 開機後選擇設定(Setting)。 l 設定無線網路 l 無線網路開啟畫面 l 以無線網路上網瀏覽網站 |