imx6 android gadget,Freescale IMX6 Android (1): 使用HDMI作为Android显示输出的配置

## 环境准备与编译

个人使用的是Ubuntu 12.04 X64,针对环境的配置,百度即可。板子使用的是TQIMX6Q。

### lunch目标

但是,编译的时候使用的是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。

### 编译可能出现的问题

Android编译使用的是自带的ToolChain,自然不需要再自己配置。但是Host PC中的GCC也需要注意版本,否则会出现问题:

~~~

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 for instructions.

make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libcrypto_static_intermediates/crypto/bio/b_print.o] Error 1

~~~

看log输出,还以为是Host GCC的Bug,换了多个版本的GCC之后,问题依旧,后来发现make时指定submake过多,将make -j8改成了make libcrypto就好了,比较怪异。

HDMI硬件配置

因为没有TFT屏幕,所以使用了以前用过的改装过的笔记本屏幕,参考我以前的博文:[废物利用: 动手将笔记本的显示器改成多功能显示器 可用于电视盒子以及嵌入式开发](http://blog.csdn.net/sy373466062/article/details/50184341)

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

~~~

按需更改。

## Android的NFS启动

配置好NFS Server与TFTP Server,可以参考我以前的博文:[Ubuntu下nfs server与tftp server的搭建](http://www.hexiongjun.com/?p=75)

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

~~~

启动后的效果图

![](https://box.kancloud.cn/2016-05-05_572afc960944a.jpg)

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-5554device

0123456789ABCDEFdevice

~~~

其中第二项,就是我们的设备。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值