摘要
本文記錄於Ubuntu作業系統跨平台建構適用於BeagleBone Black單板電腦的Android作業系統。
本文
本文於Ubuntu 24.04作業系統上,參考這裡來安裝Docker引擎,隨後便執行一個Docker容器(bionic),然後參考這裡於該容器上複製適用於BeagleBone Black單板電腦的Android作業系統的程式碼,並且建構Android 10作業系統,接著便將建構成果由容器複製至與宿主共享的volume。留意,這裡的Android 10是無頭(headless)版。
docker pull ubuntu:bionic
docker run --name ubuntu-inst -it --cpuset-cpus="10,11,12,13,14,15" --memory="24g" -v ~/Downloads:/experiment ubuntu:bionic bash
apt-get update
apt-get install sudo
USER=user
PASSWORD="password"
_UID=1000
useradd -r -m -d /home/$USER -s /bin/bash -g root -g sudo -u $_UID $USER
echo "$USER:$PASSWORD" | chpasswd
echo "root:$PASSWORD" | chpasswd
sudo -i -u $USER
sudo apt-get install git
git config --global user.email "hsinshengliu@gmail.com"
git config --global user.name "Leo Liu"
sudo apt-get install curl
sudo apt-get install python3
sudo apt-get install bc build-essential fakeroot lsb-release lzma lzop man-db gettext bison flex pkg-config libmpc-dev u-boot-tools
sudo apt-get install libncurses5-dev:amd64 libssl-dev:amd64
sudo apt-get install lsb-core
sudo apt-get install wget
sudo apt-get install unzip
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
mkdir -p ~/BBB-Android
cd ~/BBB-Android
repo init -u https://github.com/opersys/bbb-platform_manifest.git -b master
repo sync -j $(getconf _NPROCESSORS_ONLN)
source build/envsetup.sh
lunch beagleboneblack_sd-eng
./build-beagleboneblack.sh
cp scripts/write-sdcard-beagleboneblack.sh /experiment/backup/
cp -r ${ANDROID_PRODUCT_OUT} /experiment/backup/
mkdir -p /experiment/backup/external
cp -r external/u-boot/ /experiment/backup/external/
exit
exit
docker rm -f ubuntu-inst
docker rmi ubuntu:bionic
其中,repo工具乃參考這裡安裝完畢,建構成果則包含了write-sdcard-beagleboneblack.sh腳本程式、整個AOSP、以及bootloader。
隨後於宿主上把建構成果透過上述的腳本程式寫入SD卡,最後再將該SD卡插入單板電腦進行測試與確認。
sudo apt-get install u-boot-tools
cd ~/Downloads/backup
ANDROID_PRODUCT_OUT=beagleboneblack ./write-sdcard-beagleboneblack.sh sdb
其中,sdb為SD卡所掛載的名稱。
![]() |
| 建構完畢 |
![]() |
| 寫入完畢 |
![]() |
| 開機完畢 |
完成。
備註:按著BeagleBone Black之S2按鈕、通電、無法強制使用SD卡中的bootloader開機;換言之,僅能透過BeagleBone Black內建之eMMC的bootloader來引導至核心與AOSP。
參考文獻
https://www.opersys.com/blog/android-10-on-beaglebone-black/
https://github.com/opersys/bbb-platform_manifest
https://askubuntu.com/questions/262598/e-unable-to-locate-package-repo



沒有留言:
張貼留言