网站建设推广唯心磁遁8,wordpress 修改页面内容,iis上做的网站外网怎么访问,网页设计网站开发需要什么软件WLS2Linux 子系统编译 Android
上一篇文章中讲解 《WLS2Linux 子系统迁移/恢复》#xff0c;从C盘迁移到D盘。既可以防止C盘爆红#xff0c;又可以释放磁盘空间。有更大存储空间意味大有可为#xff0c;比如说编译Android系统。本文则以开源 firefly Android10代码为例简单…WLS2Linux 子系统编译 Android
上一篇文章中讲解 《WLS2Linux 子系统迁移/恢复》从C盘迁移到D盘。既可以防止C盘爆红又可以释放磁盘空间。有更大存储空间意味大有可为比如说编译Android系统。本文则以开源 firefly Android10代码为例简单讲解编译过程。 提示编译环境依赖缺失可参考《WLS2Linux 子系统(三)》 。 文章目录 WLS2Linux 子系统编译 Android1. 编译准备1.1 获取 Android 源码1.2 编译依赖包安装a) uboot 编译依赖包b) kernel 编译依赖包c) 编译 recovery依赖包d) 编译 Android依赖包 2. 编译源码2.1 uboot2.2 编译 kernel2.3 编译Android2.4 刷机2.4.1 查看镜像文件以及分区表2.4.2 刷机 2.5 升级后以前驱动无法加载 Tips总结 1. 编译准备
1.1 获取 Android 源码
注意下载或解包源码时请勿使用 root 权限操作。 可以去 firefly 官网扒一扒SDK下载到本地解压后为 git镜像仓库。
# 还原源码
git checkout .1.2 编译依赖包安装
a) uboot 编译依赖包
安装 uboot 编译依赖包。
sudo apt-get install gcc make device-tree-compiler gawk如不安装编译需要依赖包,报错提示以及相关提示可参考《WLS2Linux 子系统(三)》 。
b) kernel 编译依赖包
安装 kenrel 编译依赖包。
sudo apt install gcc make bison cpio flex openssl libssl-dev liblz4-tool -y如有遗漏或者未安装错误提示可参考《WLS2Linux 子系统(三)》 。
c) 编译 recovery依赖包
安装 recovery 编译依赖包。
sudo apt install expect g -y如有遗漏或者未安装错误提示可参考《WLS2Linux 子系统(三)》 。
d) 编译 Android依赖包
安装 Android 编译依赖包。
sudo apt install fakeroot unbuffer expect unzip libncurses5 libncurses5-dev -y如有遗漏或者未安装错误提示可参考《WLS2Linux 子系统(三)》 。 错误提示如下需要安装 curses5。
curses.h: No such file or directory安装 curses5。
sudo apt-get install libncurses5 libncurses5-deve) 安装python环境变量
/bin/bash: 行 1: python: 未找到命令Android源码中编译依赖 python2环境
sudo apt install python2
cd /usr/bin
sudo ln -s python2.7 python2. 编译源码
2.1 uboot
编译 uboot 和 MiniLoader.bin
cd ~/linux/u-boot
# 编译 rk3568
./make.sh rk3568
# 编译 rk3288
./make.sh rk3288
......load addr is 0x8400000!
pack input bin/rk32/rk3288_tee_ta_v2.01.bin
pack file size: 734592(717 KB)
crc 0x69d0e887
trustos version: Trust os
pack ./trust.img success!
pack trust okay! Input: /home/fish/linux/rkbin/RKTRUST/RK3288TOS.ini/home/fish/linux/u-boot
pack loader ok.(rk3288_loader_v1.09.263.bin)(0.02)
pack loader okay! Input: /home/fish/linux/rkbin/RKBOOT/RK3288MINIALL.ini# 编译完成后生成 uboot.img 和 rk3288_loader_v1.09.263.bin2.2 编译 kernel
cd ~/linux/kernel
# 编译 rk3568 为 64bit A55,可选用 aarch64
make ARCHarm rockchip_linux_defconfig -j4
make ARCHarm rk3568-evb2-lp4x-v10.img -j16
# 编译 rk3288 为 32bit A17, 须使用 arm
make ARCHarm rockchip_linux_defconfig -j4
make ARCHarm rk3288-evb-rk808-linux.img -j16
......LD [M] drivers/net/wireless/marvell/mwifiex/mwifiex_sdio.koLD [M] drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/bcmdhd.koLD [M] drivers/net/wireless/marvell/mwifiex/mwifiex.koImage: resource.img (with rk3288-evb-rk808-linux.dtb logo.bmp logo_kernel.bmp) is readyImage: boot.img (with Image resource.img) is readyImage: zboot.img (with zImage resource.img) is ready#编译完成后生成 4个镜像文件
# boot.img --- 内核完整镜像
# kernel.img --- 内核
# resource.img --- logo 和 dtb
# zboot.img -- 最小内核2.3 编译Android
配置环境变量
source build/envsetup.sh
lunch rk3568_r-userdebug
编译Android
# 一键编译 uboot kernel Android
./build.sh -UKAu
# 编译完成自动生成刷机镜像漫长等待过程此处省略N小时2.4 刷机
2.4.1 查看镜像文件以及分区表
ls rockdev/rk3568_r/
baseparameter.img boot.img dtbo.img MiniLoaderAll.bin parameter.txt pcba_whole_misc.img resource.img uboot.img vbmeta.img
boot-debug.img config.cfg logo.img misc.img pcba_small_misc.img recovery.img super.img update.img2.4.2 刷机
可以借助刷机工具刷升级包或者 Linux 刷机借助 rkflash.sh 脚本
# 刷 升级包
./rkflash.sh updateimgWSL2 子系统无法执行 mount 和 chroot 命令故需要拷贝到 Windows 目录使用相关工具刷机。
2.5 升级后以前驱动无法加载
错误提示
wlan_mt7668_sdio: version magic 4.19.193 SMP mod_unload aarch64 should be 5.10.66 SMP mod_unload aarch64此问题因当前系统内核与升级前版本差异致使驱动无法加载。此问题解决方法刷机到 4.19.193 版本内核。
Tips
如果所用电脑内存小于24G可能会因内存不足编译报错。请参考 《https://blog.csdn.net/weixin_35723192/article/details/132008500》。编译工具未安装全也会提示编译错误哦。 总结
WSL2 子系统终究是子系统编译 uboot kernel openwrt 还可以胜任如果编译 Android 和 Linux rootfs 则受系统和 CPU 限制建议使用 Ubuntu PC或者服务器。