I.MX6Q

来自天嵌科技
跳转至: 导航搜索

i.MX6Q系列

安装编译环境

百度网盘处下载,执行ubuntu_env_install.sh脚本,为Ubuntu系统安装所需环境

#./ubuntu_env_install.sh

安装JDK:从百度网盘处下载java-1.7.0-openjdk-amd64.tar.bz2,java-7-openjdk-amd64.tar.bz2,然后在Ubuntu系统中执行:

#tar xvjf java-1.7.0-openjdk-amd64.tar.bz2 -C /usr/lib/jvm/
#tar xvjf java-7-openjdk-amd64.tar.bz2 -C /usr/lib/jvm/

安装gcc,及Java环境:在百度网盘处下载gcc-linaro-5.3-20170216.tar.bz2 文件,将其拷贝到根目录/opt目录下,然后在ubuntu系统中执行

#cd /opt
#tar xvjf gcc-linaro-5.3-20170216.tar.bz2 -C /
#sed -i '/^PATH/d' /etc/environment
#echoPATH=echo 
PATH=/opt/EmbedSky/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/bin/:/usr/lib/jvm/java-7-openjdk-amd64/bin:/opt/EmbedSky/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/qt5.5/rootfs_imx6q_V3_qt5.5_env/qt5.5_env/bin:$PATH: >>/etc/environment
#sed -i '/^CLASSPATH/d' /etc/environment
#echoCLASSPATH=/usr/lib/jvm/java-7-openjdk-amd64/lib:$CLASSPATH: >>/etc/environment
#sed -i '/^JAVA_HOME/d' /etc/environment
#echo 
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/:$JAVA_HOME: >>/etc/environment
#source /etc/environment

编译安卓源码

百度网盘处下载android6.0源码TQIMX6_android_V3.15.tar.bz2 文件,将其拷贝到根目录/opt目录下,然后在ubuntu系统中执行

$cd /opt
$tar xvjf TQIMX6_android_V3.15.tar.bz2 -C /
$cd /opt/EmbedSky/TQIMX6/android-6.0.1-2.1.0

全部编译

首次编译必须全部编译

$./build.sh all 8

编译完成提示:(酷睿i5-8g内存,第一次编译大概:3小时左右)

#### make completed successfully (01:14 (mm:ss)) ####

Android compare success ! Use time: 0h1m15s, 75seconds!

已成功完成Android编译!总用时:0小时1分15秒;合计:75秒!

镜像生成路径:

u-boot:out/target/product/sabresd_6dq/u-boot.imx

内核:

imx6q-CoreC:out/target/product/sabresd_6dq/boot-imx6q.img

imx6q-E9v2:out/target/product/sabresd_6dq/boot-e9v2.img

imx6q-E9v3:out/target/product/sabresd_6dq/boot-e9v3.img

注:分别对应imx6q-CoreC板卡imx6q-E9v2板卡,imx6q-E9v3板卡的内核镜像,使用烧写时,需要重命名为“boot.img”,详见sd/usb烧写文档。

system:

out/target/product/sabresd_6dq/system.img

recovery:

out/target/product/sabresd_6dq/recovery.img

部分编译

编译uboot

$./build.sh u-boot 8

镜像生成路径:bootable/bootloader/uboot-imx/u-boot.imx

编译kernel

$./build.sh boot.img 8

镜像生成路径:

imx6q-CoreC:out/target/product/sabresd_6dq/boot-imx6q.img

imx6q-E9v2:out/target/product/sabresd_6dq/boot-e9v2.img

imx6q-E9v3:out/target/product/sabresd_6dq/boot-e9v3.img

注:分别对应imx6q-CoreC板卡imx6q-E9v2板卡,imx6q-E9v3板卡的内核镜像,使用烧写时,需要重命名为“boot.img”,详见sd/usb烧写文档。

镜像下载

百度网盘处下载镜像文件,imx6q-CoreC、E9v2、E9v3这三个平台的完整镜像都包含有四个文件:u-boot.imx,boot.img,recovery.img,system.img;其中u-boot.img,recovery.img,system.img三个镜像文件是通用的,而内核镜像boot.img是有差异的,会在镜像命名中添加后缀用以区分。

内核平台对照表:

imx6q-CoreC:boot-imx6q.img

imx6q-E9v2:boot-e9v2.img

imx6q-E9v3:boot-e9v3.img

共用镜像部分:

recovery.img

system.img

u-boot.imx

编译Linux源码

编译uboot

百度网盘处下载uboot源码TQIMX6_uboot_V3.15.tar.bz2,将其拷贝到根目录/opt目录下,然后在ubuntu系统中执行

$cd /opt
$tar xvjf TQIMX6_uboot_V3.15.tar.bz2 -C /
$cd /opt/EmbedSky/TQIMX6/uboot-imx/
$./build.sh

然后等待编译完成,编译完成后可以看到在此目录下有u-boot.imx文件,此文件可以直接烧录到板卡中启动

编译kernel

百度网盘处下载linux源码TQIMX6_linux_V3.15.tar.bz2,将其拷贝到根目录/opt目录下,然后在ubuntu系统中执行

$cd /opt
$tar xjf TQIMX6_linux_V3.15.tar.bz2 -C /
$cd /opt/EmbedSky/TQIMX6/kernel_imx/
$./build.sh

然后等待编译完成,编译完成后可以看到在此目录下有boot-imx6q.img,boot-e9v2.img,boot-e9v3.img文件,分别对应imx6q-CoreC板卡imx6q-E9v2板卡,imx6q-E9v3板卡的内核;有imx6q-sabresd.dtb,e9v2-sabresd.dtb,e9v3-sabresd.dtb,分别对应imx6q-CoreC板卡imx6q-E9v2板卡,imx6q-E9v3板卡的设备树,具体使用的是哪款板卡可以查看官网的产品信息.

镜像下载

PC机上制作文件系统镜像

环境搭建

安装make_ext4fs工具。

$sudo apt-get install android-tools-fsutils

百度网盘下载rootfs-tools.tar.bz2工具包,将其拷贝到根目录/opt目录下,然后在Ubuntu系统中执行

$cd /opt
$mkdir -p tqimx6q
$sudo tar xvjf rootfs-tools.tar.bz2 -C /opt/tqimx6q

镜像重定制

安卓-system.img镜像重定制:将system.img文件拷贝到根目录/opt/tqimx6q目录下,创建目录/opt/tqimx6q/system_new,然后在Ubuntu系统中执行

$cd /opt/tqimx6q
$mkdir -p /opt/tqimx6q/system_new
$sudo mount -t ext4 system.img /opt/tqimx6q/system_new
$cd /opt/tqimx6q/system_new

此时已经将system.img镜像文件挂载到了目录/opt/tqimx6q/system_new上,可以对其进行镜像定制,比如更换某个app,修改xxx.pro文件等。

完成定制之后,在Ubuntu系统中执行

$cd /opt/tqimx6q
$sudo umount /opt/tqimx6q/system_new

qt5.5系统镜像制作

解压文件系统

百度网盘处下载系统源文件:rootfs_qt5_IMX6_for_linux_V3.0_R1.6.tgz,将其拷贝到根目录/opt/tqimx6q目录下,创建目录/opt/tqimx6q/rootfs_qt5然后在ubuntu系统中执行

$cd /opt/tqimx6q
$mkdir -p /opt/tqimx6q/rootfs_qt5 
$sudo tar xvzf rootfs_qt5_IMX6_for_linux_V3.0_R1.7.tgz -C /opt/tqimx6q/rootfs_qt5
$cd /opt/tqimx6q/rootfs_qt5

此时完成了文件系统源文件的解压步骤,接着可以自行修改定制qt5的文件系统,如添加修改文件等。

制作文件系统镜像

$cd /opt/tqimx6q/
$sudo ./mkimga_qt5.sh

执行成功之后可以在/opt/tqimx6q/目录下看到rootfsqt5.tgz和rootfsqt5.img文件,然后可以将此文件烧录到板卡

注:文件镜像制作成tgz,和.img文件,具体用哪个以使用的烧写工具的说明为准。

Ubuntu16.04系统镜像制作

解压文件系统

在[ 维护中]处下载系统源文件:rootfs_ubuntu_IMX6_for_linux_V3.0_R1.4.tgz,将其拷贝到根目录/opt/tqimx6q目录下,创建目录/opt/tqimx6q/rootfs_u16然后在ubuntu系统中执行

$cd /opt/tqimx6q
$mkdir -p /opt/tqimx6q/rootfs_u16
$sudo tar xvzf rootfs_ubuntu_IMX6_for_linux_V3.0_R1.4.tgz-C /opt/tqimx6q/rootfs_u16
$cd /opt/tqimx6q/rootfs_u16

此时完成了文件系统源文件的解压步骤,接着可以自行修改定制u16的文件系统,如添加修改文件等。

制作文件系统镜像

$cd /opt/tqimx6q/
$sudo ./mkimga_u16.sh

执行成功之后可以在/opt/tqimx6q/目录下看到rootfsu16.tgz和rootfsu16.img文件,然后可以将此文件烧录到板卡

注:文件镜像制作成tgz,和.img文件,具体用哪个以使用的烧写工具的说明为准。

Ubuntu16.04-mini系统镜像制作

解压文件系统

百度网盘处下载系统源文件:rootfs_ubuntu_minimal_IMX6_for_linux_V3.0_R1.4.tgz,将其拷贝到根目录/opt/tqimx6q目录下,创建目录/opt/tqimx6q/rootfs_u16m然后在ubuntu系统中执行

$cd /opt/tqimx6q
$mkdir -p /opt/tqimx6q/rootfs_u16m
$sudo tar xvzf rootfs_ubuntu_minimal_IMX6_for_linux_V3.0_R1.4.tgz-C /opt/tqimx6q/rootfs_u16m
$cd /opt/tqimx6q/rootfs_u16m

此时完成了文件系统源文件的解压步骤,接着可以自行修改定制u16m的文件系统,如添加修改文件等。

制作文件系统镜像

$cd /opt/tqimx6q/
$sudo ./mkimga_u16m.sh

执行成功之后可以在/opt/tqimx6q/目录下看到rootfsu16m.tgz和rootfsu16m.img文件,然后可以将此文件烧录到板卡

注:文件镜像制作成tgz,和.img文件,具体用哪个以使用的烧写工具的说明为准。

烧录镜像

使用sd卡自动烧录方式

A).制作烧录卡

Linux:按照编译uboot源码章节先编译uboot,然后在uboot源码目录中执行

android:按照编译android6.0源码章节先编译全部源码,然后在源码目录中执行

#./create_sdcard.sh /dev/sdx

注:其中/dev/sdx为sd卡的设备节点,根据电脑的不同会改变,可以通过以下方式确认sd卡的节点: 在不接上usb读卡器时执行ls /dev/sd*,然后接上usb读卡器时执行ls /dev/sd*,可以看到接上读卡器时会多出一个文件,新增加的文件名即是sd卡的设备名; 如果制卡过程中出现:红色警告如下图,则需要再执行上文命令。 Warning4 6Q page.png

B).执行完成之后可以看到sd卡中有u-boot.imx,embedsky.ini三个文件,如果要烧写内核和文件系统还需要拷贝相应的镜像文件到sd卡中,然后通过修改embedsky.ini文件确定要烧写的镜像名,具体如何修改参考embedsky.ini配置说明章节

C).将拨码启动方式选择拨至SD,然后启动即可自动烧录,烧录完成之后可以通过调试串口看到进入uboot菜单,拨码方式如下:

DEVICE BOOT1 BOOT2 BOOT3 BOOT4
EMMC ON ON OFF ON
USB ON OFF OFF ON
SD ON OFF OFF OFF
 

embedsky.ini配置文件说明

[common]

;format_memory表示烧写前是否格式化磁盘

; 0不格式化,1格式化

format_memory=0

;erase_env表示烧写时是否擦除环境变量

erase_env =1

;system_type表示烧写的系统类型,可使用的值:

; android(当设置时,镜像文件见[android_upgrade]栏)

; linux(当设置时,镜像文件见[linux_upgrade]栏)

; nfs(当设置时,网络参数使用[nfs]栏中的数据)

system_type=android

[env]

;添加uboot环境,可以随意新增,使用格式例如:tq=embedsky,表示将环境变量tq设置为embedsky

tq=embedsky

;启动选择,与上文“system_type”一致;Linux对应boot_linux,android对应boot_android

bootcmd = run boot_linux

;...

[display]

;mxcfb0表示主屏显示类型,可使用的值为:

;RGB输出可选值:

; lcd_7hd(7寸高清1024*600)

; lcd_7pd(7寸普清800*480)

; vga_720p(vga标准720p输出1280*720)

; vga_1080p(vga标准1080p输出1920*1080)

; panel_lcd(使用自定义参数,参数定义见[panel_lcd]栏)

;hdmi输出可选值:

; hdmi_720p(1280*720),

; hdmi_1080p(1920*1080)

;lvds输出可选:

; 10_1_lvds(10.1寸屏1366*768),

; panel_lvds(使用自定义参数,参数定义见[panel_lvds]栏)

; pass_lvds:split单路dual双路

;关闭:off

mxcfb0=10_1_lvds

mxcfb1=off

mxcfb2=off

mxcfb3=off

;diffdisplay表示设置同显或异显,可使用的值

;异显 1

;同显 0

diffdisplay=0

[panel_lcd]

x_lcd=800

y_lcd=480

pix_clk_lcd=37037

hbp_lcd=25

hfp_lcd=75

hsw_lcd=20

vbp_lcd=10

vfp_lcd=10

vsw_lcd=10

rgb_lcd=24

bpp_lcd=24

[panel_lvds]

x_lvds=1280

y_lvds=800

pix_clk_lvds=13518

hbp_lvds=20

hfp_lvds=20

hsw_lvds=10

vbp_lvds=4

vfp_lvds=4

vsw_lvds=4

rgb_lvds=24

bpp_lvds=32

pass_lvds=dual

[linux_upgrade]

bootloader=u-boot.imx

dtb=1imxq-sabresd.dtb

kernel=zImage

system=rootfs.ext4img

[android_upgrade]

bootloader=u-boot.imx

boot=boot.img

system=system.img

recovery=recovery.img

文件系统中查看屏幕信息

android6.0和Linux4.1的查看方法一样,在板卡的串口终端中输入命令android6.0和Linux4.1的查看方法一样,在板卡的串口终端中输入命令

#cat /proc/embedsky/display_info

linux常用设备使用方法

本章节的使用方法,皆在上文中所提到的镜像和源码版本上适用,其它未提及的镜像版本、源码版本,不予保证功能正常使用,请以各自版本说明为准。

wifi热点发送功能(AP)

本方法仅保证适用于tq-8723-wifi模块,在板卡串口终端上执行

#cd /test_file/
#./send_ap.sh

默认账号:test 密码:12345678

修改账号密码方法:

#vim  /etc/hostapd.conf

账号对应项:ssid=test

密码对应项:wpa_passphrase=12345678

wifi连接功能

本方法仅保证适用于tq-8723-wifi模块,在板卡串口终端上执行

#cd /test_file/
#./link_wifi.sh

默认账号:CDMA-yalu 密码:1234567890

wifi用户、密码修改:

#vim /etc/wpa_supplicant.conf

账号对应项:ssid="CDMA-yalu"

密码对应项:psk="1234567890"

4G全网通拨号上网

本方法仅保证适用于tq-SIM7100c,SIM7600c等模块,在板卡串口终端上执行

#cd /test_file/
#./link_4g.sh