天天看点

nVIDIA Jetson TX1 u-boot编译与烧写

1、官网下载源码:

https://developer.nvidia.com/embedded/downloads#?tx=$software,l4t-tx1

nVIDIA Jetson TX1 u-boot编译与烧写

解压u-boot_src.tbz2到本地:

$ tar -xvjf u-boot_src.tbz2

$ cd u-boot/

2、u-boot修改与编译

设置环境变量:

$ export ARCH=arm

$ export CROSS_COMPILE=<your_toolchain_location>

例子:export CROSS_COMPILE=/opt/gcc-linaro-6.2.1-2016.11-x86_64_aarch64-linux-gnun/bin/aarch64-linux-gnu-

nVIDIA Jetson TX1 u-boot编译与烧写

配置和编译

$ make distclean

$ make p2371-2180_defconfig

$ make menuconfig

nVIDIA Jetson TX1 u-boot编译与烧写

可以根据需要进行配置,然后编译

$ make

编译结果:

nVIDIA Jetson TX1 u-boot编译与烧写

3、u-boot烧写:

将编译结果u-boot, u-boot.bin, u-boot-dtb.bin, u-boot.dtb 这4个文件拷贝到~/Linux_for_Tegra/bootloader/t210ref/p2371-2180/

nVIDIA Jetson TX1 u-boot编译与烧写

建议将原有的u-boot文件放在文件夹uboot_backup中,作为错误恢复文件使用。

将devkit运行在recover模式,然后在host主机中~/Linux_for_Tegra/目录运行下面命令进行烧写u-boot:

$ sudo ./flash.sh -k EBT jetson-tx1 mmcblk0p1

烧写后,target重启:

nVIDIA Jetson TX1 u-boot编译与烧写

完。

4、编译遇到的问题:

1)、提示error:bad value (armv8-a) for -march=switch

nVIDIA Jetson TX1 u-boot编译与烧写

原因是没有arm64,应该设置成ARCH=arm

2)、提示缺少compiler-gcc6.h

nVIDIA Jetson TX1 u-boot编译与烧写

由于用的是gcc6.3 版本编译器,需要这个最新的文件。网上下载然后放在~/u-boot/include/linux/中

3)、提示dtc版本太旧了

nVIDIA Jetson TX1 u-boot编译与烧写

解决方法,安装最新device-tree-compiler:

$ sudo apt-get install device-tree-compiler

安装后就可以成功编译。

继续阅读