个人使用的是Ubuntu 12.04 X64,针对环境的配置,百度即可。板子使用的是TQIMX6Q。
但是,编译的时候使用的是TQ提供的脚本build_sh,根据这个脚本,可以看到lunch的目标是sabresd_6dq:
$ echo $TARGET_PRODUCT sabresd_6dq即,TQIMX6的Android lunch目标其实使用的是sabred板子的目标,并没有自己添加lunch target,编译完成后,也没有userdata.img:
10:50 hexiongjun:TQIMX6_android-4.3 $ echo $OUT /home/hexiongjun/iMX6Q/TQIMX6_android-4.3/out/target/product/sabresd_6dq 10:51 hexiongjun:TQIMX6_android-4.3 $ ls -l $OUT/*.img -rw-r--r-- 1 hexiongjun hexiongjun 5314560 Dec 4 18:37 /home/hexiongjun/iMX6Q/TQIMX6_android-4.3/out/target/product/sabresd_6dq/boot.img -rw-rw-r-- 1 hexiongjun hexiongjun 242287 Dec 4 18:37 /home/hexiongjun/iMX6Q/TQIMX6_android-4.3/out/target/product/sabresd_6dq/ramdisk.img -rw-rw-r-- 1 hexiongjun hexiongjun 794534 Dec 4 18:37 /home/hexiongjun/iMX6Q/TQIMX6_android-4.3/out/target/product/sabresd_6dq/ramdisk-recovery.img -rw-r--r-- 1 hexiongjun hexiongjun 5865472 Dec 4 18:37 /home/hexiongjun/iMX6Q/TQIMX6_android-4.3/out/target/product/sabresd_6dq/recovery.img -rw-r--r-- 1 hexiongjun hexiongjun 293601280 Dec 4 18:37 /home/hexiongjun/iMX6Q/TQIMX6_android-4.3/out/target/product/sabresd_6dq/system.img 10:53 hexiongjun:TQIMX6_android-4.3 $同时也编译了uboot与uImage。
host C: libcrypto_static <= external/openssl/crypto/bio/b_sock.c external/openssl/crypto/bio/b_print.c:842:2: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libcrypto_static_intermediates/crypto/bio/b_print.o] Error 1
HDMI硬件配置
因为没有TFT屏幕,所以使用了以前用过的改装过的笔记本屏幕,参考我以前的博文:废物利用: 动手将笔记本的显示器改成多功能显示器 可用于电视盒子以及嵌入式开发
HDMI显示输出的配置
因为我们使用的是HDMI显示输出,因此需要配置参数,这个参数通过uboot的bootargs env传递到内核中去,使用的笔记本屏幕分配率是1366X768,找了一个接近的1280X720,显示部分的参数如下:
video=mxcfb0:dev=hdmi,1366x768MM@60,if=RGB24,bpp=32 video=mxcfb1:off video=mxcfb2:off fbmem=48M
配置好NFS Server与TFTP Server,可以参考我以前的博文:Ubuntu下nfs server与tftp server的搭建
Android的NFS可以先使用TQ提供的文件系统。如果需要使用自己编译出来的,请看下一篇博文。
然后就是启动板子,在uboot中配置环境变量与启动:
set serverip 192.168.2.100 set ipaddr 192.168.2.111 set bootargs 'console=ttySAC0,115200n8 root=/dev/nfs nfsroot=192.168.2.100:/home/hexiongjun/nfs-imx6/Android ip=192.168.2.120 debug ignore_loglevel init=/init vmalloc=400M androidboot.console=ttySAC0 androidboot.hardware=freescale video=mxcfb0:dev=hdmi,1280x720MM@60,if=RGB24,bpp=32 video=mxcfb1:off video=mxcfb2:off fbmem=48M' tftp 0x10800000 192.168.2.100:imx6/uImage;bootm 0x10800000
ADB的配置
在TQIMX6上面开启开发者选项,并启用USB调试,然后在出现的运行USB调试选项中确定。
在Linux端中,添加vendor ID到android adb配置中:
echo "0x0451" > ~/.android/adb_usb.ini
然后用USB线连接板子与PC,使用adb 查看是否连接成功:
17:51 hexiongjun:Con $ adb devices List of devices attached emulator-5554 device 0123456789ABCDEF device