安装 ubuntu 64位 10.04版本,因为之前编译过 全志android4.0系统,系统需要的软件包都已经安装,想应该没啥问题,有问题编译也不会通过,结果让人失望,编译通过了,但是烧写过程过程中出错,
看了下错误,大概是 无法打开dev/下面的一个文件,一直没有想到是环境配置问题,另一个同事 用虚拟机编译后,居然烧写成功,纳闷....
于是,我从新安装虚拟机,10.4 安装需要的软件包
You will need a 64-bit version of Ubuntu. Ubuntu 10.04 is recommended. Building using a newer version of Ubuntu is currently only experimentally supported and is not guaranteed to work on branches other than master.
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
libxml2-utils xsltproc
进入源代码目录:
1、编译ROOTFS
. build/envsetup.sh
lunch
16
make
5、编译KERNEL
cd common
make meson6_g02_defconfig
make modules
将编译好的ko拷贝
cp drivers/amlogic/mali/mali.ko ../out/target/product/g02ref/root/boot/
cp drivers/amlogic/mali/mali.ko ../device/amlogic/g02ref/
cp drivers/amlogic/ump/ump.ko ../out/target/product/g02ref/root/boot/
cp drivers/amlogic/ump/ump.ko ../device/amlogic/g02ref/
cp drivers/amlogic/wifi/rtl8xxx_CU/8192cu.ko ../out/target/product/g02ref/system/lib/
cp drivers/amlogic/wifi/rtl8xxx_CU/8192cu.ko ../device/amlogic/g02ref/
cp ./arch/arm/boot/uImage ../out/target/product/g02ref/
make uImage
make menuconfig
make uImage
cp ./arch/arm/boot/uImage ../out/target/product/g02ref/uImage_recovery
编译成功,呵呵,第一次遇到ubuntu环境问题,引起 android系统烧写异常的问题。
在android4.1根文件系统顶层目录下执行命令:
$ make otapackage
编译升级包,后可加-j参数指定多线程加快编译进度,编译完后会在rootfs/out/
target/product/g02ref/目录下生成g02ref-ota-eng.用户名.zip的升级包。
把 recovery_uImage 生成的包,自己升级文件放到sdcard里
烧写u-boot:
进入uboot后依次键入如下命令:
1)# mmcinfo
初始化SD卡,把其分区表加载到DDR中,并显示出来
2)# fatload mmc 0 82000000 u-boot.bin
把u-boot.bin从sd卡中加载到DDR的0x82000000处
3)# sf probe 2
初始化SPI Flash
4)# sf erase 0 60000
擦除SPI Flash的0地址处开始的60000个字节,用于存放u-boot.bin的内容
5)# sf write 82000000 0 60000
把DDR中0x82000000处的数据写到SPI Flash的零地址开始处,写的数据大小为0x60000
6)# reset
重启板子
利用 recovery 升级
插上鼠标,并用HDMI线将板子和电视相连,因为等下需要利用鼠标选择相应的升级包升级系统。重启板子后,进入uboot,键入如下命令:
1)# mmcinfo
初始化SD卡,把其分区表加载到DDR中,并显示出来
2)# fatload mmc 0 82000000 uImage_recovery
把uImage_recovery从sd卡中加载到DDR的0x82000000处
3)# bootm
从内存中启动内核
4)利用鼠标选择相应的升级包升级系统,升级完后重启系统即可
注意:在加载uImage_recovery之前最好做一次nand erase 0.