Open lan-ct opened 9 months ago
ifconfig eth0 192.168.1.128 netmask 255.255.255.0 up
cd /sys/class/gpio/gpio echo 11 > export echo out 11 > direction echo 1 > value echo 0 > value echo 11 > unexport
// 11 12 (前) 15 16(后) cd /sys/class/gpio/gpio echo 11 > export
cd gpio17 echo out > gpio11/direction
echo 1 > gpio11/value echo 0 > value echo 17 > unexport
Created by YU Xianyu (BCSC-EPA4), last modified on 2023, Dec 06 Current Version V 35Page Info
android RPI:https://github.com/android-rpi LineageOS: https://konstakang.com/devices/rpi4/LineageOS20/ emteria.os:https://emteria.com/ (代码不开源 Android Things:https://developer.android.com/things
由于后两者不开源代码,并且Android things 2022年关闭; LineageOS一般只有镜像刷写的流程,没有编译流程;
因而我们这里选择源码开源和编译流程较为成熟的android RPI作为指导,整体参考网站如下:
https://github.com/android-rpi/device_arpi_rpi4
服务器软件:博世OSD6系统(内置ubtun20.4 ,需要申请OSD,然后找IT来安装)
树莓派SD卡:B4 + 128GSD卡
下载android代码前,需要配置下android的下载和编译环境,参考如下连接
https://source.android.com/docs/setup/start/initializing
国内由于墙的原因,不能访问到google的官网以及下载源码等
这里我们通过清华大学开源软件镜像站下载:
https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
对于repo等的配置,参考上面配置就可。
ps:记得安装环境后,python默认运行pythn3.否则运行repo就会有问题
3.源码下载
以上的环境配置完成后, 就可以下载代码了
考虑到速度以及网络的原因,通过清华镜像下载源码:
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-13.0.0_r74
git clone https://github.com/android-rpi/local_manifests .repo/local_manifests -b arpi-13
repo sync
$ source build/envsetup.sh
$ lunch rpi4-eng
$ make ramdisk systemimage vendorimage
整个编译过程2小时左右。
对于编译出来的镜像以及Android的分区介绍如下:
boot分区:由 kernel 和 ramdisk 构成。存放BootLoader程序,起开机启动和引导作用,是手机接通电源后以一个执行程序;
vendor:包含有厂商私有的可执行程序、库、系统服务和app等。可以将此分区看做是system分区的补充,厂商定制ROM的一些功能都可以放在此分区;
system分区:这个分区包含了整个操作系统除 kernel 和 ramdisk 之外的其它部分,包括 Android UI 和设备上预装的 APP;
data分区:也被称作 userdata,是用户数据被存储的地方——也就是说你的联系人、短信、配置文件和你自己安装的 APP 都位于这里。
重建一个和android源码不同的工程目录,下载kernel代码
$ mkdir
$ cd
$ repo init -u https://github.com/android-rpi/kernel_manifest -b arpi-5.15
$ repo sync
2.kernel 编译
$ cd
$ build/build.sh 编译出来的文件目录在out/arpi-5.15/dist/ Image.gz bcm2711-rpi-*.dtb vc4-kms-v3d-pi4.dtbo
这里利用的是linux自带的fdisk,对SD卡进行分区 根据编译出来的镜像大小,这里划分4个主分区,每个分区的信息如下:
p1 256MB for boot : Do fdisk, set W95 FAT32(LBA) & Bootable type, mkfs.vfat p2 1024MB for /system : Do fdisk, new primary partition p3 256MB for /vendor : Do fdisk, new primary partition p4 remainings for /data : Do fdisk, mkfs.ext4 Set volume label of /data partition as userdata : use -L option for mkfs.ext4, and -n option for mkfs.vfat
需要注意的是:
1.对于启动分区P1, 同伙t命令更改分区类型 W95 FAT32(LBA) ,a设置成bootable。
2.在划分分区以及格式化分区的时候,需要先umount分区
2.分区格式化
利用如下命令格式化以及重命名分区
$ sudo mkfs.vfat -n "boot"/dev/sdb1
$ sudo mkfs.ext4 -L "system" /dev/sdb2
$ sudo mkfs.ext4 -L "vendor" /dev/sdb3
$ sudo mkfs.ext4 -L "data" /dev/sdb4
3.利用dd刷写分区
$ cd/out/target/product/rpi4
$ sudo dd if=system.img of=/dev/sdb2 bs=1M
$ sudo dd if=vendor.img of=/dev/sdb3 bs=1M
4.拷贝kernel启动配置和ramdisk镜像到启动分区(P1分区)
a.挂载boot分区
sudo mkidr /media/test
sudo mount -t fat /dev/sdd1 /media/test
b.复制boot分区文件
$ sudo cp -r device/arpi/rpi4/boot/* /media/test
$ sudo cp kernel/arpi/arch/arm/boot/zImage /media/test/
$ sudo cp kernel/arpi/arch/arm/boot/dts/bcm2711-rpi-4-b.dtb /media/test/
$ sudo cp kernel/arpi/arch/arm/boot/dts/overlays/vc4-kms-v3d-pi4.dtbo /media/test/overlays
$ sudo cpout/target/product/rpi4/ramdisk.img /media/test
应用就这两个,接上鼠标和键盘也能点击响应,没有其他应用。。。
adb connect xxx.xxx.xxx.xxx(ip address)
adb shell
https://www.youtube.com/watch?v=gPMfzgLUtKk
树莓派4编译android13 https://github.com/android-rpi/device_arpi_rpi4
树莓派Android10源码
https://blog.csdn.net/liudi_ly/article/details/108990335
清华大学镜像 https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
Android代号、标记和 build https://source.android.com/docs/setup/about/build-numbers?hl=zh-cn#source-code-tags-and-builds
Repo的用法总结 https://blog.csdn.net/qq_40163418/article/details/119144557
Android 系统的分区介绍
https://blog.csdn.net/Jason_Lee155/article/details/131701975
linux设备驱动程序——设备树(0)-dtb格式
https://zhuanlan.zhihu.com/p/639404934
linux 分区工具fdisk
https://baijiahao.baidu.com/s?id=1653747641668663333&wfr=spider&for=pc
使用mkfs命令格式化磁盘分区
https://www.python100.com/html/61079.html
Linux磁盘管理——分区+挂载
https://blog.csdn.net/weixin_53946852/article/details/125923006
dd命令解析
https://blog.csdn.net/lihuarongaini/article/details/101298572