https://developer.nvidia.com/embedded/downloads#?tx=$software,l4t-tx1
解压u-boot_src.tbz2到本地:
$ tar -xvjf u-boot_src.tbz2
$ cd 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-
配置和编译
$ make distclean
$ make p2371-2180_defconfig
$ make menuconfig
可以根据需要进行配置,然后编译
$ make
编译结果:
将编译结果u-boot, u-boot.bin, u-boot-dtb.bin, u-boot.dtb 这4个文件拷贝到~/Linux_for_Tegra/bootloader/t210ref/p2371-2180/
建议将原有的u-boot文件放在文件夹uboot_backup中,作为错误恢复文件使用。
将devkit运行在recover模式,然后在host主机中~/Linux_for_Tegra/目录运行下面命令进行烧写u-boot:
$ sudo ./flash.sh -k EBT jetson-tx1 mmcblk0p1
烧写后,target重启:
完。
1)、提示error:bad value (armv8-a) for -march=switch
原因是没有arm64,应该设置成ARCH=arm
2)、提示缺少compiler-gcc6.h
由于用的是gcc6.3 版本编译器,需要这个最新的文件。网上下载然后放在~/u-boot/include/linux/中
3)、提示dtc版本太旧了
解决方法,安装最新device-tree-compiler:
$ sudo apt-get install device-tree-compiler
安装后就可以成功编译。