编译U-Boot
A. 首先在 Ubuntu 中安装 ncurses 库,否则编译会报错,安装命令如下:
sudo apt-get install libncurses5-dev
B. 解压缩:
tar -vxjf uboot-imx-2016.03-2.1.0-g8b546e4.tar.bz2
C. 手工编译 uboot:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- (加空格)
mx6ull_14x14_ddr512_emmc_defconfig
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j12
ARCH=编译arm 设置目标为 arm 架构
CROSS_COMPILE 指定指定所使用的交叉编译器
D .shell 脚本编译
示例代码 mx6ull_alientek_emmc.sh 文件代码
1 #!/bin/bash
2 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
3 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- (加空格)
mx6ull_14x14_ddr512_emmc_defconfig
4 make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j12
使用 chmod 命令给予 mx6ull_alientek_emmc.sh 文件可执行权限,然后就可以使用这个 shell 脚本文件来重新编译 uboot,命令如下:
./mx6ull_alientek_emmc.sh
烧写U-Boot
使用imxdownload 软件将uboot 烧写到 SD 卡中,命令如下:
chmod 777 imxdownload //给予 imxdownload 可执行权限,一次即可
./imxdownload u-boot.bin /dev/sdd
5启动U-Boot
成以后将 SD 卡插到 I.MX6U-ALPHA 开发板上,BOOT 设置从 SD 卡启动,
使用 USB 线将 USB_TTL 和电脑连接,也就是将开发板的串口 1 连接到电脑上。打开串口工具软件,设置好串口参数并打开,最后复位开发板。
6 网络启动
A. 将开发板的 Linux 镜像和设备树复制到 Ubuntu 主机中的 tftpboot 文件夹下
home/linux/tftpboot目录下
zImage
imx6ull-alientek-emmc.dtb
B. 下载 zImage
tftp 80800000 zImage
C. 下载设备树 imx6ull-qst-emmc.dtb
tftp 83000000 imx6ull-qst-emmc.dtb
D. 启动内核
bootz 80800000 – 83000000
U-boot(sd卡) + linux(镜像 tftp传输)
关闭防火墙 否则开发板ping不到pc
setenv ipaddr 10.204.214.85
setenv ethaddr 00:04:9f:04:d2:35
setenv gatewayip 10.204.214.1
setenv netmask 255.255.255.0
setenv serverip 10.204.214.90
saveenv
下载zimage 和
通过tftp 将 ubuntu中的 tftpboot文件夹中的文件下载过去
启动
这个东西执行之后 不知道为什么总会报错
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) random: nonblocking pool is initialized
然后改成了下面的方式 结果可以
TFT启动
setenv bootcmd 'tftp 80800000 zImage; tftp 83000000 imx6ull_liefyuan_emmc.dtb; bootz 80800000 - 83000000'
saveenv
boot
启动之后 开发板lcd亮起 显示出界面!!