使用 Ubuntu 11.04 (安裝在 VirtualBox 4.08) 在 emulator 上跑 Android,大致記錄過程,待有硬體再來學習實機移植…
一、安裝 git 原始碼管理套件…
sudo apt-get install git-core gnupg
二、安裝 java jre / jdk…
sudo add-apt-repository ppa:ferramroberto/java
sudo apt-get update
sudo apt-get install sun-java6-jre sun-java6-plugin
sudo apt-get install sun-java6-jdk
三、安裝其它需要的套件…
sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl valgrind
四、準備下載 Android 原始碼 (不包含Linux核心)
cd ~
wget http://Android.git.kernel.org/repo
chmod 777 repo
sudo cp repo /bin/
mkdir Android
cd Android
repo init -u git://android.git.kernel.org/platform/manifest.git
repo sync /// 這邊會下載幾小時
五、編譯/執行…
make /// 這邊會編譯幾小時
export PATH=$PATH:~/Android/out/host/linux-x86/bin
export ANDROID_PRODUCT_OUT=~/Android/out/target/product/generic
emulator
至此是 Android 的編譯,若要進行 Linux Kernel 編譯…
六、下載 Linux Kernel for Android…
mkdir kernel
cd kernel
git clone git://android.git.kernel.org/kernel/common.git /// 這邊會下載幾小時
七、透過 emulator 截取 config 檔…
cd common
emulator &
adb pull /proc/config.gz
gunzip config.gz
mv config .config
八、修改 Makefile 檔…
nano Makefile
===========================
ARCH=arm
CROSS_COMPILE ?= arm-eabi-
===========================
九、編譯…
make menuconfig
make /// 這邊會編譯幾小時
十、使用剛編譯出的核心執行 emulator…
cd ~/Android
emulator -kernel ./kernel/common/arch/arm/boot/zImage &
十一、進 Android 後台確認核心版本…
adb shell
root@android:/ # cd /proc
root@android:/proc # cat version
Linux version 2.6.29-gb0d93fb-dirty (fellong@fellong-VirtualBox) (gcc version 4.4.3 (GCC) ) #5 Sun Jul 3 14:31:58 CST 2011
訂閱:
文章 (Atom)
更高效處理 micro second 的方式
更高效處理 micro second 的方式… 以 STM32 為例… __IO unsigned long sys_tick = 0; void SysTick_Handler(void) { HAL_IncTick(); sys_tick += (SysTi...
-
rails blog -d mysql 建立一個名為 blog 的網站app,使用 mysql cd blog 進去 gen 好的網站 config/database.yml 編輯資料庫設定 rake db:create 自動建立資料庫 ruby script/generate ...
-
https://github.com/ljean/modbus-tk/ install pip… sudo apt-get install python-pip install... download modbus_tk-x.x.x.tar.gz tar zxvf...
-
DMX protocol… # 1:break + 1:start + 512:channel python: import serial class DMX512: def __init__(self, port): self.seria...