当前位置:文档之家› amlogic升级编译 _4.0

amlogic升级编译 _4.0



sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_20/bin/java 300
$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_20/bin/javac 300
$ sudo update-alternatives --config java

架设编译环境
1.下载一下的编译器,前面两个是用来编译uboot的,后面的是用来编译kernel
arm-2010q1-188-arm-none-eabi-i686-pc-linux-gnu.tar.bz2
gnutools-arc2.3-p0-ubuntu-9.04-2010-5-10.tar.bz2
arm-2010q1-202-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
2.解压到根目录
sudo tar -jxvf arm-2010q1-202-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -C /
sudo tar -jxvf arm-2010q1-188-arm-none-eabi-i686-pc-linux-gnu.tar.bz2 -C /
sudo tar -jxvf gnutools-arc2.3-p0-ubuntu-9.04-2010-5-10.tar.bz2 -C /


ARC_PREFIX=/opt/gnutools/arc2.3-p0
PATH=$PATH:${ARC_PREFIX}/elf32-4.2.1/bin:${ARC_PREFIX}/uclibc-4.2.1/bin:

1.编译rootfs
根目录下面
. Build/envsetup.sh
lunch 18
cd frameworks/opt/emoji
mm
cd external/libskia
mm
make

2.编译uImage
cd kernel
make meson_reff16_defconfig
Make menuconfig (选择ramfs的root方式:
A.在Kernel 路径下make menuconfig 配置General setup --->[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
B. 在Initramfs source 中填上已编译好的root 路径( 比如(../out/target/product/f16ref/root) Initramfs source
make uImage
cp arch/arm/boot/uImage ../out/target/product/f16ref/uImage


3.编译uImage_recovery
cd kernel
make meson_reff16_recovery_defconfig
Make menuconfig (选择ramfs的root方式:
A.在Kernel 路径下make menuconfig 配置General setup --->[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
B. 在Initramfs source 中填上已编译好的root 路径( 比如(../out/target/product/f16ref/recovery/root) Initramfs source
make uImage
cp arch/arm/boot/uImage ../out/target/product/f16ref/uImage_recovery

4.生成升级包。
根目录下面
make otapackage

5.编译uboot


2.编译uImage
要到kernel路径下面
make meson_refc03_defconfig
Make menuconfig (选择ramfs的root方式:
A.在Kernel 路径下make menuconfig 配置General setup --->[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
B. 在Initramfs source 中填上已编译好的root 路径( 比如(/android_workbase/out/target/product/c03ref/root) Initramfs source
C.make uImage
3.将生成的uImage 拷贝到RootFS 目录下/out/target/product/c03ref/uImage

3.
生成升级包。
根目录下面
make otapackage

1. 升级u-boot
mmcinfo
fatload mmc 0:1 82000000 u-boot-aml-ucl.bin
sf probe 2
sf erase 0 400000
sf write 82000000 0 60000

2.加载uImage_reconvery
mmcinfo
fatload mmc 0:1 82000000 uImage_reconvery
bootm
===========================
mmcinfo
fatload mmc 0 82000000 u-boot-aml-ucl_m3.bin
sf probe 2
sf erase 0 400000
sf write 82000000 0 300000
fatload mmc 0:1 82000000 uImage_recovery
bootm
====

=========================



I.手动烧录。
1.烧录uboot到nand或spi flash。
mmcinfo
fatload mmc 0:1 82000000 u-boot-512M-UartB.bin

nand rom_write 82000000 0 60000 或 sf write 82000000 0 60000
2.烧录kernel到nand。
fatload mmc 0:1 82000000 uImage
nand write 82000000 800000
400000
3.烧录rootfs到nand。
fatload mmc 0:1 82000000 android.rootfs
nand write 82000000 c00000
6400000

4.设置启动参数。
set bootargs 'a9_clock=800M root=/dev/mtdblock2 rw init=/init console=ttyS0'
set bootcmd 'nand read 0x82000000 0x00800000 0x00400000;bootm 82000000'
save
6.重新上电或reset。

II.自动烧录
1.编译出自动升级的uboot。
打开宏定义:
#define
CONFIG_SWITCH_BOOT_MODE
#define CONFIG_EFUSE
#define CONFIG_SARADC 1
#define CONFIG_UPGRADE 1
2.制作启动SD卡。
A.SD分区 假如sd的设备名是 /dev/sdd,分区之前先umount
amlogic@amlogic-linux:~$ su root //切换到root用户
Password:
root@amlogic-linux:/home/amlogic# fdisk /dev/sdd //启动fdisk命令
Command (m for help): d //删除原始分区
Selected partition 1
Command (m for help): n //添加一个新的分区
Command action
e extended
p primary partition (1-4)
p //选择主分区
Partition number (1-4): 1 //第一个分区
First cylinder (1-243, default 1): 6//请保留10M空间
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-243, default 243):
//直接回车,默认剩余空间
Command (m for help): w //执行写操作
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks. //分区完成
root@amlogic-linux:/home/amlogic#
分区完成后输入fdisk –l, 应该会看到:
Device Boot Start End Blocks Id System
/dev/sdd1 6 132 1060258+ 83 Linux
分别执行:
mkfs.vfat /dev/sdb1 //分区1格式化成fat
B.拷贝升级文件到sd卡。
mount –t vfat /dev/sdb1 /mnt //mount分区1到mnt下
将uImage,android.rootfs,u-boot-512M-UartB.bin这三个文件拷贝进去
C.SD 卡U-boot的制作
下面要详细介绍的是如何把uboot 放入前面一直提到的保留区域内。利用Linux 系统的 dd 命令,就可以达到这个目的。具体命令如下所示,注意这个操作需要sudo 超级权限。
dd if=./u-boot-512M-UartB.bin of=/dev/sdm bs=1 count=442
dd if=./u-boot-512M-UartB.bin of=/dev/sdm bs=512 skip=1 seek=1
其中if 标识输入文件的名字,也就是说你要烧入的uboot 的名字。Of 代表输出设备的 命名,也就是说将要被烧入的设备名。
经过上述步骤以后,一张带uboot,kernel 和rootfs 的卡片就制作完成了。
3.清空nand或按住ok键上电,系统执行uboot,kernel,rootfs自动升级。升级完成后系统自动重启。

进入recovery界面指令
run recovery
==================================================================
arm-linux-androideabi-g++: out/target/product/f16ref/obj

/STATIC_LIBRARIES/libskiagpu_intermediates/libskiagpu.a: No such file or directory
make: *** [out/target/product/f16ref/obj/SHARED_LIBRARIES/libwebcore_intermediates/LINKED/libwebcore.so] Error 1
james@james-LIFEBOOK-LH531:~/IceCreamSandwich$
解决办法
cd external/libskia
mm
*********************

Copying: out/target/common/obj/APPS/android.core.tests.libcore.package.sun.no-core-tests-res_intermediates/noproguard.classes.jar
target Dex: android.core.tests.libcore.package.sun.no-core-tests-res

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.util.ExceptionWithContext
at com.android.dx.util.ExceptionWithContext.withContext(ExceptionWithContext.java:46)
at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:344)
at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:134)
at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:87)
at https://www.doczj.com/doc/0a5200415.html,mand.dexer.Main.processClass(Main.java:483)
at https://www.doczj.com/doc/0a5200415.html,mand.dexer.Main.processFileBytes(Main.java:455)
at https://www.doczj.com/doc/0a5200415.html,mand.dexer.Main.access$400(Main.java:67)
at https://www.doczj.com/doc/0a5200415.html,mand.dexer.Main$1.processFileBytes(Main.java:394)
at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:245)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:131)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:109)
at https://www.doczj.com/doc/0a5200415.html,mand.dexer.Main.processOne(Main.java:418)
at https://www.doczj.com/doc/0a5200415.html,mand.dexer.Main.processAllFiles(Main.java:329)
at https://www.doczj.com/doc/0a5200415.html,mand.dexer.Main.run(Main.java:206)
at https://www.doczj.com/doc/0a5200415.html,mand.dexer.Main.main(Main.java:174)
at https://www.doczj.com/doc/0a5200415.html,mand.Main.main(Main.java:95)
Caused by: https://www.doczj.com/doc/0a5200415.html,ng.NullPointerException
at com.android.dx.ssa.SCCP.run(SCCP.java:567)
at com.android.dx.ssa.SCCP.process(SCCP.java:92)
at com.android.dx.ssa.Optimizer.runSsaFormSteps(Optimizer.java:160)
at com.android.dx.ssa.Optimizer.optimize(Optimizer.java:100)
at com.android.dx.ssa.Optimizer.optimize(Optimizer.java:73)
at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:273)
... 14 more
...while processing test_clone ()V
...while processing tests/api/java/util/LinkedHashMapTest.class

1 error; aborting
make: *** [out/target/common/obj/APPS/android.core.tests.libcore.package.sun.no-core-tests-res_intermediates/noproguard.classes-with-local.dex] Error 1
james@james-LIFEBOOK-LH531:~/IceCreamSandwich$

相关主题
文本预览
相关文档 最新文档