创建博客 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

我的博客

linfengdu

 
 
 

日志

 
 
关于我

男人无所谓正派,正派是因为受到的引诱不够,女人无所谓忠诚,忠诚是因为背叛的筹码太低.(所有文章都来自网络,感谢原作者们!) ------各位有幸看我博客的朋友,帮忙点点右下角的广告!!

LOFTER精选

amlogic menu  

2012-09-18 15:09:29|  分类: android |  标签: |举报 |字号 订阅

1. 播放相关的键如何定义
2. 换电脑编译不行
3. cpu改频率
4. USB a host功能不行
 
 
 
sudo apt-add-repository ppa:mozillateam/firefox-next
sudo apt-get update && sudo apt-get upgrade
 
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
 
假设 /home/peter/IceCreamSandwich为系统的根目录
 
架设编译环境
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 
 PATH=$PATH:/arm-2010q1/bin
 
1.编译rootfs
cd /home/peter/IceCreamSandwich
. Build/envsetup.sh
lunch 19
cd /home/peter/IceCreamSandwich/frameworks/opt/emoji
mm
cd /home/peter/IceCreamSandwich/external/libskia
mm
cd /home/peter/IceCreamSandwich
make
 
2.编译uImage
cd /home/peter/IceCreamSandwich/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 /home/peter/IceCreamSandwich/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.生成升级包。
cd /home/peter/IceCreamSandwich
make otapackage
 
5.编译uboot
 cd /home/peter/IceCreamSandwich/uboot
 make m3_mbox_config
 make
 
tftpboot 82000000 u-boot.bin;sf probe 2;sf erase 0 60000;sf write 82000000 0 60000
===============================================
#######################//Amlogic #########
 
setenv bootcmd 'mmc init;mmcinfo;fatload mmc 0:1 82000000 uImage;bootm 82000000;'
 

//boot from sd card
setenv bootcmd 'mmc init;mmcinfo;fatload mmc 0 82000000 uImage;bootm 82000000;'
setenv bootcmd "mmcinfo;fatload mmc 0 82000000 uImage;bootm"
setenv bootargs root=253:2 rw init=/init android console=ttyS0,115200 rootdelay=10 a9_clock=600M
setenv bootargs 'console=ttyS0,115200 root=/dev/cardblksd2 rw rootfstype=ext2 init=/init mac=00:01:02:65:aa:55 rootdelay=8 a9_clock=600M'
setenv bootargs 'console=ttyS0,115200 root=/dev/sda2 rw rootfstype=ext3 init=/init android  rootdelay=10 a9_clock=600M'
setenv bootargs "console=ttyS0,115200 root=/dev/mtdblock3 rootfstype=yaffs2 init=/init android"
 

//boot from nand:
setenv bootcmd 'nand device 0; nand read 0x82000000 0x800000 0x400000; bootm'
setenv bootargs root=/dev/mtdblock2 rw noinitrd init=/init android console=ttyS0,115200,mac=00:11:22:C2:C2:51
 
setenv bootargs root=/dev/ram0 rw noinitrd init=/init android console=ttyS0,115200,mac=00:11:22:C2:C2:51
 
setenv bootargs "root=/dev/mtdblock5 rw noinitrd rootfstype=yaffs2 init=/init android console=ttyS0,115200"
setenv bootargs "root=/dev/mtdblock3 rootfstype=yaffs2 init=/init android console=ttyS0,115200"
 
setenv bootargs root=/dev/mtdblock2 rw noinitrd init=/init ip=10.68.11.87:10.68.11.1:10.68.11.1:255.255.255.0:target:eth0:off console=ttyS0,115200,mac=00:11:22:C2:C2:51
saveenv
 

//Burn uboot to SD Card
sudo dd if=./u-boot-aml.bin of=/dev/sdc bs=1 count=442  
sudo dd if=./u-boot-aml.bin of=/dev/sdc bs=512 skip=1 seek=1
 
 
 
//Burn uboot to NAND from SD card
fatload mmc 0 82000000 u-boot-aml.bin
fatload mmc 0 82000000 uboot.bin
nand rom_write 82000000 0 60000
 
//Burn kernel to NAND and bootup kernel from nand
fatload mmc 0 82000000 uImage
nand erase 800000 400000
nand rom_write 82000000 800000 400000
 
//Burn rootfs to NAND from SD card
fatload mmc 0 80000000  aml_android_rootfs.img
fatload mmc 0 80000000  aml_rootfs.img
fatload mmc 0 80000000  aml_rootfs_pre.img
fatload mmc 0 80000000  rootfs_android.img
 
nand erase  c00000 f400000
nand write 80000000 c00000 f400000
nand read 80000000 c00000 10000
 
nand erase 1c00000 0xF400000
nand write 80000000 1c00000 0xf400000
 

set bootargs root=/dev/mtdblock2 rw noinitrd init=/init ip=10.68.11.87:10.68.11.1:10.68.11.1:255.255.255.0:target:eth0:off console=ttyS0,115200,mac=00:11:22:C2:C2:51
 
 
 
set burnrootfs 'mmcinfo 0; fatls mmc 0; fatload mmc 0 0x82000000 rootfs.yaffs; nand erase 0x0C00000; nand write 0x82000000 0x0C00000 0xf400000'
set bootargs root=/dev/mtdblock2 rw noinitrd init=/init ip=ip=192.168.1.90:192.168.1.189:192.168.1.1:255.255.255.0:target:eth0:off console=ttyS0,115200,mac=00:11:22:C2:C2:51
saveenv
reset
 

===============================================
你在某个文件加句话试试
 common/mbx_amlogic.mk
 # libemoji for Webkit
PRODUCT_PACKAGES += libemoji
 
 加在$(call inherit-product-if-exists, frameworks/base/data/fonts/fonts.mk)
$(call inherit-product-if-exists, frameworks/base/data/keyboards/keyboards.mk)
$(call inherit-product-if-exists, frameworks/base/data/sounds/AllAudio.mk)
 这些前面
 device\amlogic\common
 这个是路径
 mbx_amlogic.mk这个是文件名
 

==============================================
Amlogic Android Ice Cream Sandwich
Source Release Notes
1. Introduction
This document provides the release notes for Amlogic Android Ice Cream Sandwich (ICS) reference source code release running on Amlogic M3 reference hardware.
To obtain Amlogic M3 Android reference source code, you will need to have an account to access Amlogic GIT source code repository.
2. Release Contents
The ics-amlogic branch has been created on OpenLinux GIT.
Following Amlogic M3 reference hardware is supported:
? f02ref (MID)
Front camera
Capacitive touch
? f16ref (MBX)
Media box reference platform
3. Release Information
You can checkout M3 Android ICS 20120309 release anytime by doing the following repo commands:
$ cd ~/<your-android-repo-dir>/
$ repo init -u ssh://git@openlinux.amlogic.com/ics/platform/manifest.git -b ics-amlogic
$ repo init -m ics-amlogic-20120309.xml
$ repo sync
You can find corresponding Android lunch choice and kernel config for the reference hardware by doing the following:
$ cd ~/<your-android-repo-dir>/
$ . build/envsetup.sh
$ lunch
$ cd kernel
$ make help
4. Build Instruction
Follow the instruction below to build code for your M3 evaluation board (f02ref).
4.1. Uboot
$ cd ~/<your-android-repo-dir>/
$ cd uboot
$ make m3_mid_reff02_config # MID
$ make m3_mbox_config # MBX
$ make
$ ls build/u-boot-aml-ucl.bin
4.2. Kernel
$ cd ~/<your-android-repo-dir>/
$ cd kernel
$ make meson_reff02_defconfig # MID
$ make meson_reff16_defconfig # MBX
$ make uImage
4.3. Android
$ cd ~/<your-android-repo-dir>/
$ . build/envsetup.sh
$ lunch f02ref-user # MID
$ lunch f16ref-user # MBX
$ make –j8
5. Recent Changes
? RT8188 USB WiFi suspend/resume crash issue
ics/m1-kernel-android.git c3d30b06fbe97758b9d07f601b8985649313fcef
? NAND bad block management bug fix
ics/m1-kernel-android.git 1920eca0e4404bdaa2e835aa49b66e6bf427ed60
? Mali driver update
ics/device/amlogic.git 74ff27b5202cbf2d8aa4812f9ae25e67d68ce398
ics/platform/hardware/amlogic/mali.git f259d815464feb1f9f8111f0cec0cd8c7819035c
ics/platform/hardware/libhardware.git d7a77bf3eed3dd9863a4bad357ab409a340397ef
ics/m1-kernel-android.git 48f951e1023fc64c4fa4dfba568dbf0da44a0155
6. Known Issues
? external/libskia compilation dependency
Because of dependency issue, you need to build libskia static library before webcore compilation.
Follow the steps below if you encounter build error in webcore when building the ICS image the first time:
$ cd ~/<your-android-repo-dir>/
$ . build/envsetup.sh
$ lunch f02ref-user
$ make showcommands –j8
$ cd external/libskia
$ mm showcommands
$ cd ../../
$ make showcommands –j8
6.1. MID
6.2. MBX
1)视频输出部分:
HDMI: 1.480i/576i输出画面锯齿严重;
2.480i/576i开机后显示的机器人logo偏右且有绿色竖线条干扰。
YPbPr: 1.标清隔行画面有灰色阴影 ;
2.1080i/p开机后无画面输出,从其他制式切过来则是有画面输出的。
CVBS: 1.480i/576i输出画面颜色是灰白色,看不清楚图像;
2.576i开机后没有画面输出。
2)切换分辨率部分:
YPbPr: 1.480i/576i切至1080i/p后无画面预览;
2.480p/576p切至1080p后画面输出有锯齿。
3) 播放Flash视频花屏(无论有无调整重显率);
4)HDMI输出进入camera黑屏40s才显示画面,分量下则ok的。
5)QQ & skype视频通话,电视机输出有嗡嗡地回音;
6)skype视频通话看不到PC端和平台端的图像。
7) 恢复初始化后重启,选择启动器进入主屏先是显示一个半屏背景接着再全屏显示。
8) 面板按键无效。
====================================================
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 超级权限。
sudo dd if=./u-boot-aml-ucl_ml.bin of=/dev/sdd bs=1 count=442
sudo dd if=./u-boot-aml-ucl_ml.bin of=/dev/sdd 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 com.android.dx.command.dexer.Main.processClass(Main.java:483)
        at com.android.dx.command.dexer.Main.processFileBytes(Main.java:455)
        at com.android.dx.command.dexer.Main.access$400(Main.java:67)
        at com.android.dx.command.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 com.android.dx.command.dexer.Main.processOne(Main.java:418)
        at com.android.dx.command.dexer.Main.processAllFiles(Main.java:329)
        at com.android.dx.command.dexer.Main.run(Main.java:206)
        at com.android.dx.command.dexer.Main.main(Main.java:174)
        at com.android.dx.command.Main.main(Main.java:95)
Caused by: java.lang.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$
     解决办法 安装gnutools-arc2.3-p0-ubuntu-9.04-2010-5-10.tar.bz2
    
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Amlogic U-boot 使用说明
2009.05.19 V0.02.r256
1. U-boot 概述
U-Boot,全称Universal Boot Loader,是遵循GPL 条款的开放源码项目。其源码目录、
编译形式与Linux 内核很相似。使用优点:
a) 开放源码;
b) 支持多种嵌入式操作系统内核;
c) 支持多个处理器系列;
d) 较高的可靠性和稳定性;
e) 高度灵活的功能设置,适合U-Boot 调试、操作系统不同引导要求、产品发布等;
f) 丰富的设备驱动源码,如串口、以太网、SDRAM、FLASH、LCD、NVRAM、EEPROM、
RTC、键盘等;
g) 较为丰富的开发调试文档与强大的网络技术支持;
2. U-boot 源码
目前, Amlogic U-boot 是在U-boot 2009.03 版本基础上移植, 代码的url :
https://svn-bj.amlogic.com/svn/model_ae/aml-uboot
U-Boot 主要目录结构:
- board 目标板相关文件,主要包含SDRAM、FLASH 驱动,外设IO 配置等;
- common 独立于处理器体系结构的通用代码,如内存大小探测与故障检测;
- cpu 与处理器相关的文件。如mpc8xx 子目录下含串口、网口、LCD 驱动及中断初始
化等文件;
- driver 通用设备驱动,如CFI FLASH 驱动(目前对INTEL FLASH 支持较好)
- doc U-Boot 的说明文档;
- examples 可在U-Boot 下运行的示例程序;如hello_world.c,timer.c;
- include U-Boot 头文件;尤其configs 子目录下与目标板相关的配置头文件是移植过程
中经常要修改的文件;
- lib_arc ARC 处理器体系相关的文件;
- net 与网络功能相关的文件目录,如bootp,nfs,tftp;
- tools 用于创建.bin 和.img 文件等的工具;
- fs 文件系统;
3. 实现功能
支持CPU:
   Nike
2 / 6
支持目标板:
   dvbc_8218_ts_ref_v1.0
已实现功能:
a) Uart 驱动,包括Stdin、Stdout、Stderr;
b) SPI Nor flash 读写操作;
c) Nand flash;
d) IPL;
e) Loader;
f) SD/SDHC/MMC Card 驱动;
g) Nike Ethernet 驱动,支持TFTP、BOOTP、DHCP 等功能;
h) Mkimage Tool;
i) 存取启动参数;
j) FAT 文件系统;
4. 使用步骤
4.1. 编译
编译u-boot 需要使用交叉编译器arc-elf32-gcc,编译环境在linux 下进行。如果是windows
机器,可以在cygwin 下进行。交叉编译器及相关工具需另外获取,并要将相关的路径加入
到系统环境变量PATH 中。编译步骤如下:
a) cygwin 下,编译路径指向U-boot 根目录;
b) 清除以往编译结果:make distclean;
c) 配置目标:make xxx_config
d) 编译链接:make all
4.2. 调试
配置\aml-uboot\trunk\include\configs\***.h 文件中的Uart 通信相关参数,如系统时钟、
波特率、校验位、数据位、停止位等。重新编译u-boot,将目标板与PC 串口连接。
调试使用“make down”命令将编译生成.out 文件通过Jtag 下载到目标板memory 中。
运行u-boot,通信成功建立后,在PC 端可以使用串口调试工具(如超级终端)调试目标板。
4.3. Flash 烧写
目前支持对NAND 和SPI NOR Flash 读写操作。
   通过串口将文件烧写到SPI Flash 中。以下操作均在串口调试工具中进行。
a) 发送命令:loady offset,通过串口load 二进制文件到memory 的offset 处;
b) 使用PC 端串口调试工具中的Send Ymodem file 功能,把需要烧写的bin 文件
发送到目标板的memory 中;
c) 发送命令:sf probe 2,探测SPI Flash;
3 / 6
d) 发送命令:sf erase offset len,对SPI Flash 相关区域檫写;
e) 发送命令:sf write addr offset len,对memory 地址addr(即步骤a 中的offset)
开始长度len 的数据写到SPI Flash 偏移offset 处开始的位置;
   从内存中烧录数据到NAND,写之前必须擦除
a) nand erase 0 300000, 从0 地址开始擦除3MB 空间
b) nand write 0x1c00000 0 300000, 烧录从0x1c00000 开始的3MB 数据到
NAND 的0 地址
c) nand read 0x1c00000 0 300000,从NAND 0 地址读取3MB 数据到
0x1c00000
4.4. Loader
   Loader:
   bootelf:从内存中直接启动ELF 文件
exg: 下载ELF文件到地址0x200000,输入命令 bootelf 0x200000 即可执行ELF
格式的kernel
   bootm:从内存中启动uimage
exg:假设uimage 位于内存地址0x1c00000,输入 bootm 0x1c00000 启动uimage
   nboot:从NAND 中load uimage
exg:输入 nboot 0x1c00000 0, 把uimage 从NAND 的0 地址加载到0x1c00000
   启动uimage 文件的制作
mkimage 工具可以用来制作不压缩或者压缩的可启动映象文件。mkimage 在制作映
象文件的时候,是在原来的可执行映象文件的前面加上一个0x40 字节的头,记录参数
所指定的信息,这样uboot 才能识别这个映象是针对哪个CPU 体系结构的,哪个OS
的,哪种类型,加载内存中的哪个位置, 入口点在内存的那个位置以及映象名是什么
等。
mkimage –A arch –O os –T type -C compress -a loadaddr –e entrypoint \
-n name –d datafile[:datafile] outputimage
How to Loader Linux Kernel:
1.arc-elf32-objcopy.exe -O binary -R .note -R .comment -S vmlinux vmlinux.bin
2.gzip -9 vmlinux.bin
3.mkimage -A arc -O linux -T kernel -C gzip -a 0x82000000 -e 0x82002000 -n
"Linux Kernel Image" -d vmlinux.ok.bin.gz uImage
4.Download uImage to 0x1c00000 or other right place from TFTP or NAND or
JTAG
5.bootm 0x1c00000
4 / 6
4.5. 移植
将U-boot 移植到新的目标板上,主要修改以下几方面内容:
   在cpu 目录中添加新的cpu 的IPL 启动文件、timer、Interrupt、chipclock 等方面的
文件;
   在\include\asm-arc\下添加新cpu 的头文件;
   在\board\aml\下添加新board 的文件夹,添加与目标板硬件相关操作的源文件。
mkconfig.mk:CPU 级别基本配置参数;
u-boot.lds:u-boot 链接命令文件;
config.mk:TEXT_BASE 定义了u-boot 自身text 段的起始地址;
   在\include\configs\下添加目标板头文件,配置相关参数;
   根据目标板情况,调整外设驱动;
4.6. 网络连接
以TFTP 服务器-客户端为例,说明u-boot 相关的网络应用。局域网内,TFTP 下载速
度可达450KB/s。
a) 首先,在PC 端安装TFTP 服务器软件,如TFTPD32;
b) 设定服务器端软件参数。以TFTPD32 为例,主要参数有Base Directory、TFTP
Security、TFTP Port、TFTP Timeout 等;
c) 将需要load 的image 文件copy 到Base Directory 下;
d) 修改\aml-uboot\trunk\include\configs\***.h 文件,配置目标板相关网络参数。如mac、
ip、gatewapip、netmask、serverip 等;
e) 重新编译u-boot;
f) 将目标板连接到ethernet,启动u-boot;
g) 使用TFTP 相关命令(如tftpboot、bootp、dhcp 等),把image 文件从tftp 服务器
下载到目标板的memory 中;
h) 使用bootm 命令,启动memory 中的image 文件;
5. STDIO 常用命令说明(部分)
5.1. Help 操作命令
   help [command ...]
- 显示对“command”的提示信息;如果“command”为空,则显示所有支持的命令列
表;
5.2. SPI Nor 操作命令
   sf probe 2
- 探测spi
5 / 6
   sf erase offset len
- erase len' bytes from offset' ,len 必须是sector 的倍数,offset 是spi nor 内的偏移地址;
   sf read addr offset len
- read len' bytes starting at offset' to memory at `addr',注意addr 和len 要4 字节对齐;
   sf write addr offset len
- write len' bytes from memory at addr' to flash at `offset',注意addr 和len 要4 字节对齐;
5.3. Environment 操作命令
   setenv env value
- 有的环境变量由几个命令组成如bootcmd ,则其值前要加‘ ’;
   saveenv
- 保存到Flash 上;
   printenv
- 打印environment;
5.4. Boot 操作命令
   bootelf [address]
- load 内存地址address 处的ELF 文件;
   bootm [addr [arg ...]]
- 启动在内存addr 处的image 文件;如果addr 为空,则从默认的loader address 处尝试
启动;
5.5. SD/MMC 操作命令
   mmcinfo <dev num>
- 显示SD/SDHC/MMC 卡的相关信息;
   mmc read <device num> addr blk# cnt
- 将SD/SDHC/MMC 卡设备<device num>从blk#开始的cnt 个block 的内容,读取到内
存地址addr 处;
   mmc write <device num> addr blk# cnt
- 将内存地址addr 处开始的内容,写到SD/SDHC/MMC 卡设备<device num>从blk#开
始的cnt 个block 区域;
   mmc rescan <device num>
- 重新初始化SD/SDHC/MMC 卡设备<device num>,该命令目前在amlogic uboot 上被
暂时屏蔽;
   mmc list
- 罗列SD/SDHC/MMC 类所有链接设备;
6 / 6
5.6. FAT 操作命令
   fatload <interface> <dev[:part]> <addr> <filename> [bytes]
- 从接口<interface>的设备<dev[:part]>load 二进制文件<filename>到地址<addr>,长度为
[bytes];
   fatls <interface> <dev[:part]> [directory]
- 显示接口<interface>的设备<dev[:part]>目录[directory]下的文件列表;
   fatinfo <interface> <dev[:part]>
- 显示接口<interface>的设备<dev[:part]>的fat 文件系统的信息;
5.7. 网络操作命令
   ping <pingAddress>
- 向IP 地址为pingAddress 的网络节点发送ping 命令;
   tftpboot [loadAddress] [[hostIPaddr:]bootfilename]
- 从IP 为hostIPaddr 的TFTP 服务器,下载bootfilename 文件到目标板的memory 地址
loadAddress 处;bootfilename 是服务器端Base Directory 目录的相对路径名;
   bootp [loadAddress] [[hostIPaddr:]bootfilename]
- 目标板IP 地址从BOOTP 服务器动态获取,再从IP 为hostIPaddr 的TFTP 服务器,下
载bootfilename 文件到目标板;
   dhcp [loadAddress] [[hostIPaddr:]bootfilename]
- 目标板IP 地址从DHCP 服务器动态获取,再从IP 为hostIPaddr 的TFTP 服务器,下
载bootfilename 文件到目标板;  
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   
关于Android MID 项目基本信息
AMLOGIC, Inc.
3930 Freedom Circle
Santa Clara, CA 95054
U.S.A.
www.amlogic.com
AMLOGIC reserves the right to change any information described herein at any time without notice.
AMLOGIC assumes no responsibility or liability from use of such information.
 
目录:
1. 关于source code 服务器............................................................................................................ 4
1.2 KERNEL SOUCE CODE 获取方法以及编译方法...................................................................... 4
2. FIRMWARE 的存储.......................................................................................................................... 5
2.1 Nand 的存在方式................................................................................................................. 5
2.2 SD 卡的存储方式................................................................................................................. 6
2.3 USB 的存储方式................................................................................................................... 7
3. SD 卡启动的制作方式................................................................................................................... 8
3.1 SD 卡如何分区..................................................................................................................... 8
3.2 SD 卡的内容存放................................................................................................................. 8
 
修改记录
版 本 修改日期 修改人 改动处
2010‐0929 V0.1 Eric Zhong
基础篇发布。服务器以及烧录
2010‐1007 V0.11 Eric Zhong
1. 如何制作启动卡
2. 如何获取只读权限的kernel source
3. 修正一个标识错误
 
1. 关于source code 服务器
1.1 ROOTFS SOURCE CODE 获取方法以及编译方法
1) make PRODUCT‐m1ref‐eng
2) cd out/target/product/m1ref
3) mkdir android.rootfs
cp ‐r root/* android.rootfs/
cp ‐r system/* android.rootfs/system/
make a tgz:
cd android.rootfs
tar cvzf ../android.rootfs.tgz .
put to SD card:
sudo tar zxfv android.rootfs.tgz ‐‐numeric‐owner ‐C /media/ROOTFS
注意: 一定要加‐‐numeric‐owner 参数,而且最好放置rootfs 的分区每次使用之前都格式化
1.2 KERNEL SOUCE CODE 获取方法以及编译方法
make uImage
 
2. FIRMWARE 的存储
2.1 Nand 的存在方式
目前给客户演示的时候,推荐使用Nand 的存贮方式,因为实验发现,Nand 的读取速度明显高于卡的速度。
Nand 里面通过Yaffs 文件系统,来管理我们的rootfs 和kerel,下面详细介绍一下如果擦除Nand 和烧录这两个
部分
我们先假设你的kernel 和rootfs 的烧录文件都放置在SD 卡的FAT 分区里面
2.1.1 Yaffs 镜像的制作
Rootfs 的Yaffs 镜像
利用Amlogic 自己编写的工具mkyaffsimage4k 在Linux 环境下面制作Rootfs 的yaffs 镜像。该工具的维护是Jerry
Yu Team。
mkyaffsimage4k rootfs‐dir output.img
这样你就得到了output.img 的镜像
Kernel 的Yaffs 镜像
Kernel 的镜像你可以直接使用编译完成的uImage 即可
2.1.2 Kernel 的烧录
从SD 卡load kernel 的Image
fatload mmc 0 82000000 uImage
查处Nand 地址0x800000 开始的4M 空间
nand erase 800000 400000
把Ram 里面的镜像数据烧入到刚擦除的空间
nand write 82000000 800000 400000
 
2.1.3 Rootfs 的烧录
下面的含义请参照kernel 的烧录一节,就不多做解释
fatload mmc 0 80000000 output.img
nand erase c00000 8000000
nand write 80000000 c00000 8000000
2.1.4 Uboot 的烧录
这里,我们假设了我们的平台里面都已经含有基本的uboot 了,那么如果你拿到的是一个全新的平台,该如
何操作呢?第一步,我们肯定要制作一个带uboot 的sd 卡,用于启动。 带uboot 的sd 卡的制作方式, 请
参照Larson.jiang 写的另外一篇文章,这里先不涉及。
有了这么一个启动卡以后,我们同样可以把我们的uboot 放到同一张卡片的fat 分区里面假设为a.bin
然后通过如下的方式进行uboot 的烧录
fatload mmc 0 82000000 u‐boot‐aml.bin
nand rom_write 82000000 0 60000
注意: 上面提到的烧录uboot,kernel 和rootfs 的起始地址和大小,都是和你相应的kernel 里面bsp 定义的
slot 的大小是对应的,用户制作的时候必须和你所使用的kernel 结合起来。
同时kernel 编译的时候,还需要把支持烧录的方式打开,主要涉及到如下的3 个config,我想着3 个config
日后应该会作为我们的defconfig 使用,不过在这里还是提及一下
Device Drivers ‐> Amlogic Device Drivers ‐> AMLOGIC_NAND_FLASH_SUPPORT
Device Drivers ‐> Memory Technology Device(MTD) support
File systems ‐> Miscellaneous filesystems ‐> YAFFS2 file system support
2.2 SD 卡的存储方式
一般来说, SD 卡我们会分成两个区, 一个用于放置Kernel,另外一个用于放置Rootfs。 放置Kernel 的分区
为了方便考虑(可以在windows 环境下面即可操作),我们一般格式化成FAT32 格式,这样,如果你只是想更
 
新Kernel 部分,用于调试,那么直接替换掉里面的Kernel 文件即可
放置Rootfs 的分区为了稳定性考虑,我们一般格式化成Ext3 格式,这种格式在Windows 下面就无法识别了,
所以,每个使用者最好在本地安装好Linux 环境或者Cigwin 环境,用于Rootfs 文件的拷贝。 或者Rootfs 压缩
包以后,如果解压到这个分区,在前面的章节中已经提到过,这里就不再赘述了。
SD 卡方式的Uboot 的引导启动,主要涉及到的参数如下:
setenv bootcmd "mmcinfo;fatload mmc 0 82000000 kernel_name;bootm"
setenv bootargs root=254:2 rw init=/init console=ttyS0,115200 rootdelay=5 a9_clock=600M
特别需要注意的是蓝色字体部分, kernel_name 是指你所放置的kernel 镜像的名称,下面的254:2242:2 所代
表的含义为SD 卡上面的第2 个分区
2.3 USB 的存储方式
同SD 卡,唯一要注意的是启动参数部分,要针对usb 做出修正, 这里就不再赘述
 
3. SD 卡启动的制作方式
针对SD 卡启动的制作方式, Larson Jiang 之前已经给出过一份文档, 提及了这方面的。这里面介绍一
种更加实用的方法。和Larson 的方法的区别是我们把Kernel 和Rootfs 分两个不同的区进行存放,而且把Kernel
放置到Fat 分区,便于用windows 操作
3.1 SD 卡如何分区
在制作启动卡之前,我们首先明确一点,这一节的内容前提是假设你拿到的是一个SPI 和Nand 都为空的
平台,同时你也没有ICE 的debug 工具。 这个时候,如果你想运行你手中的这个“死”平台正常运行,首先
就要想办法放入uboot, 然后再下一步,就是通过uboot 去引导kernel,再load rootfs,以达到正常启动系统
的目的。
所以我们需要3 个区域分别为了放置uboot, kernel 和rootfs。 按照上面提到的,kernel 我们将放入fat 的分
区, rootfs 为了稳定考虑我们放入ext3 的分区。 那么uboot 呢?我们将写入到卡前面sector 的保留区域。
进入linux 系统, 用fdisk 工具进行操作。
A. 先用fdisk 工具把卡里面原有的分区都删除掉
B. 用fdisk 工具对卡进行重新分区, 注意:第一个分区不要从第1 个sector 开始,一般来说保留大概10M
的空间(至于涉及多少个sector,视你的卡而定)。
3.2 SD 卡的内容存放
完成上述A,B 操作以后,你可以看到你现在已经有两个分区了假设为sda1 和sda2。 分别格式化成fat 和ext3
的方式,然后把kernel 和rootfs 放入相应的分区。这些步骤的详细命令就不在这里赘述了。
下面要详细介绍的是如何把uboot 放入前面一直提到的保留区域内。利用Linux 系统的dd 命令,就可以达到
这个目的。具体命令如下所示,注意这个操作需要sudo 超级权限。
 
dd if=./uboot of=/dev/sdm bs=1 count=442
dd if=./uboot of=/dev/sdm bs=512 skip=1 seek=1
其中if 标识输入文件的名字,也就是说你要烧入的uboot 的名字。 Of 代表输出设备的命名,也就是说将要
被烧入的设备名。
经过上述步骤以后,一张带uboot,kernel 和rootfs 的卡片就制作完成了。你只要在uboot 启动以后设置对应
的bootarg,android 的机器人界面应该马上可以看到了。
 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  
一键烧录升级,就是在上电的时候按着menu键,这样就会自动进入recovery模式进行自动烧录和升级。需要先将编译好的几个文件放到tf卡中,具体内容和操作如下:
checkout lastest code
make android
cd android_root_dir
. build/envsetup.sh
lunch m1ref-eng
make
build uImage
enable nand support in kernel
enable General setup->Initial RAM filesystem and RAM disk
set "Initramfs source file"?to root dir(out/target/product/m1ref/root)
注:此目录为相对目录,对应指定到rootfs对应的目录
Make uImage
copy uImage to out/target/product/m1ref
build uImage_recovery
??set General setup->"Initramfs source file"?to recovery root dir(out/target/product/m1ref/recovery/root)
make uImage
rename uImage into uImage_recovery
?copy uImage_recovery to out/target/product/m1ref
build update.zip
cd android_root_dir
make otapackage
flash image into nand
cp system.img userdata.img update.zip uImage uImage_recovery into sdcard
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
你的板子可能也是根据以前的原理图画的
之前我们内置wifi是USB的
所以USB的A口是host模式,wifi现在改成SDIO的模式了,A口也就改成otg了
所以用不了
=========================================================================
在uboot下敲命令行
 
1. 先敲defenv
2. save
3.  set upgrade_step 2
4.  save
==========================================================================
更改 ddr频率
 该对应的文件uboot/board/amlogic/m3_mbox/firmware/timing.c
==========================================================================
/******************************************************************************************************************/
               SDK Enviroment config
/******************************************************************************************************************/
1. download cross compile toolchains from the following:
        http://openlinux.amlogic.com/wiki/index.php/Arm/Development_Tools
 
2. tar -xvjf arm-2010q1-202-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
   cp -rf arm-2010q1 /usr/local/arm/
 
   add the following to /etc/bash.bashrc
 
        #add arm tool chain to PATH by liaowm
        if [ -d /usr/local/arm/arm-2010q1 ];then
        export PATH=/usr/local/arm/arm-2010q1/bin:$PATH
        fi 
 
3. download arc tools from the following:
        http://openlinux.amlogic.com/wiki/index.php/Arc/Development_Tools
 
4. tar -xvjf gnutools-arc2.3-p0-ubuntu-9.04-2010-5-10.tar.bz2
   cp to /opt/gnutools/arc2.3-p0
   add the following to /etc/bash.bashrc
 
        SET_PATH=$( echo "$PATH" | grep elf32)
        if [  "$SET_PATH" = "" ]; then
        ARC_PREFIX=/opt/gnutools/arc2.3-p0
        PATH=$PATH:${ARC_PREFIX}/elf32-4.2.1/bin:${ARC_PREFIX}/uclibc-4.2.1/bin:
        fi 
 
5. if encount pthread error, install gcc 4.4
 
        apt-get install gcc-4.4
        update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.5 40
        update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 30
        update-alternatives --config gcc
 

6. if encount the following error:
 
        target Generated: libwebcore <= external/webkit/WebCore/css/CSSCharsetRule.idl
        gcc: error trying to exec 'cc1plus': execvp: 没有那个文件或目录
        Can't call method "fileName" without a package or object reference at external/webkit/WebCore/bindings/scripts/IDLParser.pm line 112.
        make: *** [out/target/product/imx51_BBG/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/css/JSCSSCharsetRule.h] 错误 255
 
        that means g++ and gcc version are not the same, install gcc 4.4 and g++ 4.4
 
        apt-get install g++-4.4
        update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.5 40
        update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.4 30
        update-alternatives --config g++
 
7. if encount the following error:
 
    host Executable: acp (out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp)
    host SharedLib: libneo_cgi (out/host/linux-x86/obj/lib/libneo_cgi.so)
    /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.3.3/libstdc++.so when searching for -lstdc++
    /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.3.3/libstdc++.a when searching for -lstdc++
    /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.3.3/libstdc++.so when searching for -lstdc++
    /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.3.3/libstdc++.a when searching for -lstdc++
    /usr/bin/ld: cannot find -lstdc++
    collect2: ld 返回 1
    make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp] 错误 1
    make: *** 正在等待未完成的任务....
 
        or
 
        /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../libz.so when searching for -lz
        /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../libz.a when searching for -lz
        /usr/bin/ld: skipping incompatible /usr/lib/libz.so when searching for -lz
        /usr/bin/ld: skipping incompatible /usr/lib/libz.a when searching for -lz
        /usr/bin/ld: cannot find -lz
        collect2: ld returned 1 exit status
        make: *** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt] Error 1
 
    that means some libs of gcc and g++ (we have download a new version of gcc/g++, but no coresponding libs, remember?)  are not installed well, use the following:
 
        apt-get install gcc-4.4-multilib
        apt-get install g++-4.4-multilib
 
        so remember next time, when install a new version of gcc/g++, you should also install the coresponding multilib.
 
8. if encount the following error of FBReader
 
        for repeatable builds
       [javac] Compiling 333 source files to /Users/zhangcy/Desktop/Eclipse workspace/FBReaderJ/bin/classes
       [javac] /Users/zhangcy/Desktop/Eclipse workspace/FBReaderJ/src/org/geometerplus/android/fbreader/TOCActivity.java:79: inconvertible types
       [javac] found   : org.geometerplus.zlibrary.core.tree.ZLTree<capture#147 of ?>
       [javac] required: org.geometerplus.fbreader.bookmodel.TOCTree
       [javac]         final TOCTree tree = (TOCTree)myAdapter.getItem(position);
       [javac]                                                        ^
       [javac] /Users/zhangcy/Desktop/Eclipse workspace/FBReaderJ/src/org/geometerplus/android/fbreader/TOCActivity.java:99: inconvertible types
       [javac] found   : org.geometerplus.zlibrary.core.tree.ZLTree<capture#134 of ?>
       [javac] required: org.geometerplus.fbreader.bookmodel.TOCTree
       [javac]             final TOCTree tree = (TOCTree)getItem(position);
       [javac]                                                  ^
       [javac] /Users/zhangcy/Desktop/Eclipse workspace/FBReaderJ/src/org/geometerplus/android/fbreader/TOCActivity.java:112: inconvertible types
       [javac] found   : org.geometerplus.zlibrary.core.tree.ZLTree<capture#255 of ?>
       [javac] required: org.geometerplus.fbreader.bookmodel.TOCTree
       [javac]             final TOCTree tree = (TOCTree)getItem(position);
       [javac]                                                  ^
       [javac] /Users/zhangcy/Desktop/Eclipse workspace/FBReaderJ/src/org/geometerplus/android/fbreader/TOCActivity.java:113: incomparable types: org.geometerplus.fbreader.bookmodel.TOCTree and org.geometerplus.zlibrary.core.tree.ZLTree<capture#940 of ?>
       [javac]             view.setBackgroundColor((tree == mySelectedItem) ? 0xff808080 : 0);
       [javac]                                           ^
       [javac] /Users/zhangcy/Desktop/Eclipse workspace/FBReaderJ/src/org/geometerplus/android/fbreader/TOCActivity.java:135: inconvertible types
       [javac] found   : org.geometerplus.zlibrary.core.tree.ZLTree<capture#384 of ?>
       [javac] required: org.geometerplus.fbreader.bookmodel.TOCTree
       [javac]             openBookText((TOCTree)tree);
       [javac]                                   ^
       [javac] Note: Some input files use unchecked or unsafe operations.
       [javac] Note: Recompile with -Xlint:unchecked for details.
       [javac] 5 errors
/Users/xxxx/android-sdk-mac_x86/tools/ant/main_rules.xml:384: Compile failed; see the compiler error output for details.
 
                check your jdk version, it may be not the newest(java -version), download jdk-6u31-linux-x64.bin from oracle offical website.
 
                ./jdk-6u31-linux-x64.bin
                export JAVA_HOME=/home/liaowm/m3/tool/jdk1.6.0_31
 

                that means your jdk is not new enough. download
 

9. build process:
        a.      Build rootfs:
                   $. build/envsetup.sh
                   $ lunch ref04-user
                   $make
        b.      Build kernel:
        $make meson_reff04_defconfig
        $make menuconfig
        enable General setup->Initial RAM filesystem and RAM disk
                set "Initramfs source file" to root dir(../out/target/product/refb17/root)
        $make uImage
        copy uImage to out/target/product/reff04
        c.       build uImage_recovery
        $make menuconfig
        set General setup->”Initramfs source file” to recovery root dir(../out/target/product/reff04/recovery/root)
          $make uImage
          rename uImage into uImage_recovery
          copy uImage_recovery to out/target/product/reff04
        d.       build reff04-ota-eng.username.zip
        $cd ..
          $make otapackage
        e.      flash image into nand
          cp ref-ota-eng.username.zip uImage uImage_recovery into sdcard
 
10. update system
 
        a. Put u-boot-aml.bin uImage uImage_recovery and *.zip to SD card
        b. insert the SD to MID
        c. Power on ,and press vol+ at the same time , release vol+ while you can see some update options display on the panel
        d. press vol+ or vol- to move the focus on wipe media partition("wipe media partition"),then press menu select "yes".
        e. press vol+ or vol- to move the focus on wipe data/factory reset ("wipe data/factory reset"),then press menu select "yes".
        f. press vol+ or vol- to move the focus on the second option(apply update from sdcard’, then press menu ,select"b17ref-ota-eng.username.zip".the update process will start
        g. wait for the complete of the update and reboot
 
11. if you find that the system can not run because the root filesystem is mount in NFS, that may be the kernel problem. make clean kernel, then make again, it may be good.
======================================================================================
ubuntu 12.04 编译器版本从4.6 降到 4.5 方法
 
修改编译器版本
1、修改gcc版本,默认是4.6.1的,这个版本太高了,改为4.5.2或者4.5.3
      sudo apt-get install gcc-4.5
      sudo apt-get install g++-4.5 
6、查看下安装的结果如下:
    root@pc:# ls /usr/bin/gcc*
    /usr/bin/gcc   /usr/bin/gcc-4.6    /usr/bin/gcc-4.4 
7、增加gcc4.6和gcc4.5的可选项
     root@pc:# sudo update-alternatives    --install      /usr/bin/gcc    gcc    /usr/bin/gcc-4.6     46
     root@pc:# sudo update-alternatives    --install     /usr/bin/gcc     gcc    /usr/bin/gcc-4.5     45
    如果没有第一句的话,也能行。但是系统默认的4.6版本的GCC就不能使用了。为了以后能用得着,还是加上第一句。
8、切换版本到gcc-4.5
    root@pc:# update-alternatives   --config   gcc
    There are 2 choices for the alternative gcc (providing /usr/bin/gcc).
  选择       路径            优先级  状态
------------------------------------------------------------
* 0            /usr/bin/gcc-4.6   46        自动模式
  1            /usr/bin/gcc-4.5   45        手动模式
9、切换g++ 版本到4.5
   root@pc:# sudo update-alternatives    --install      /usr/bin/g++    g++    /usr/bin/g++-4.6     46
   root@pc:# sudo update-alternatives    --install     /usr/bin/g++     g++    /usr/bin/g++-4.5     45
  
   root@pc:# sudo update-alternatives   --config   g++
要维持当前值[*]请按回车键,或者键入选择的编号:1(自己手动输入要选择的默认值,输入1,设置默认为4.5版本的)
10、查看当前gcc版本
    root@pc:# gcc -v
======================================================================================
  评论这张
 
阅读(3801)| 评论(0)
推荐 转载

历史上的今天

最近读者

热度

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2014