|
|
(54 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
− | ===搭建编译环境===
| + | |
− | ====使用Docker进行交叉编译====
| + | {{RockchipUnbrick/zh|NanoPC-T6}} |
− | 请参考 [https://github.com/friendlyarm/docker-cross-compiler-novnc docker-cross-compiler-novnc]
| + | |
− | ====本地搭建交叉编译环境====
| + | |
− | =====安装编译所需软件包=====
| + | |
− | 建议使用'''64位'''的[http://mirrors.aliyun.com/ubuntu-releases/20.04/ Ubuntu 20.04系统],参考如下内容安装编译及打包所需要的软件包:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | sudo apt-get -y update
| + | |
− | sudo apt-get install -y sudo curl
| + | |
− | sudo bash -c \
| + | |
− | "$(curl -fsSL https://raw.githubusercontent.com/friendlyarm/build-env-on-ubuntu-bionic/master/install.sh)"
| + | |
− | </syntaxhighlight>
| + | |
− | 你的电脑上会安装好如下交叉编译器:
| + | |
− | {| class="wikitable" | + | |
− | |-
| + | |
− | ! 版本
| + | |
− | ! 架构
| + | |
− | ! 编译器路径
| + | |
− | ! 用途
| + | |
− | |-
| + | |
− | | 4.9.3
| + | |
− | | armhf
| + | |
− | | /opt/FriendlyARM/toolchain/4.9.3
| + | |
− | | 用于编译armhf架构的应用程序
| + | |
− | |- | + | |
− | | 6.4
| + | |
− | | aarch64
| + | |
− | | /opt/FriendlyARM/toolchain/6.4-aarch64
| + | |
− | | 用于交叉编译4.4内核
| + | |
− | |-
| + | |
− | | 11.3
| + | |
− | | aarch64
| + | |
− | | /opt/FriendlyARM/toolchain/11.3-aarch64
| + | |
− | | 用于交叉编译4.19及以上内核(含5.10,5.15)及uboot
| + | |
− | |}
| + | |
− | =====设置交叉编译器=====
| + | |
− | 参考上一节的表格,选用合适版本的编译器,然后将编译器的路径加入到PATH中,例如要使用11.3的交叉编译器,用vi编辑~/.bashrc,在末尾加入以下内容:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | export PATH=/opt/FriendlyARM/toolchain/11.3-aarch64/bin:$PATH
| + | |
− | export GCC_COLORS=auto
| + | |
− | </syntaxhighlight>
| + | |
− | 执行一下~/.bashrc脚本让设置立即在当前shell窗口中生效,注意"."后面有个空格:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | . ~/.bashrc
| + | |
− | </syntaxhighlight>
| + | |
− | 验证是否安装成功:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ aarch64-linux-gcc -v
| + | |
− | Using built-in specs.
| + | |
− | COLLECT_GCC=aarch64-linux-gcc
| + | |
− | COLLECT_LTO_WRAPPER=/opt/FriendlyARM/toolchain/11.3-aarch64/libexec/gcc/aarch64-cortexa53-linux-gnu/11.3.0/lto-wrapper
| + | |
− | Target: aarch64-cortexa53-linux-gnu
| + | |
− | Configured with: /home/cross/arm64/src/gcc/configure --build=x86_64-build_pc-linux-gnu --host=x86_64-build_pc-linux-gnu --target=aarch64-cortexa53-linux-gnu --prefix=/opt/FriendlyARM/toolchain/11.3-aarch64 --exec_prefix=/opt/FriendlyARM/toolchain/11.3-aarch64 --with-sysroot=/opt/FriendlyARM/toolchain/11.3-aarch64/aarch64-cortexa53-linux-gnu/sysroot --enable-languages=c,c++ --enable-fix-cortex-a53-843419 --with-arch=armv8-a+crypto+crc --with-cpu=cortex-a53 --with-pkgversion=ctng-1.25.0-119g-FA --with-bugurl=http://www.friendlyelec.com/ --enable-objc-gc --enable-__cxa_atexit --disable-libmudflap --disable-libgomp --disable-libssp --disable-libquadmath --disable-libquadmath-support --disable-libsanitizer --disable-libmpx --with-gmp=/home/cross/arm64/buildtools --with-mpfr=/home/cross/arm64/buildtools --with-mpc=/home/cross/arm64/buildtools --with-isl=/home/cross/arm64/buildtools --enable-lto --enable-threads=posix --disable-libstdcxx-pch --enable-clocale=gnu --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-indirect-function --enable-gnu-unique-object --enable-default-pie --enable-linker-build-id --with-linker-hash-style=gnu --enable-plugin --enable-gold --with-libintl-prefix=/home/cross/arm64/buildtools --disable-multilib --with-local-prefix=/opt/FriendlyARM/toolchain/11.3-aarch64/aarch64-cortexa53-linux-gnu/sysroot --enable-long-long --enable-checking=release --enable-link-serialization=2
| + | |
− | Thread model: posix
| + | |
− | Supported LTO compression algorithms: zlib
| + | |
− | gcc version 11.3.0 (ctng-1.25.0-119g-FA)
| + | |
− | </syntaxhighlight>
| + | |
Latest revision as of 07:13, 4 June 2024
1 救砖办法
如何固件没有正确安装,导致开发板变砖,而且可能没有机会通过SD卡重新安装固件,这时,就需要进入Maskrom模式,通过擦除存储设备的办法救砖。
1.1 Windows用户
1.1.1 下载所需文件
- 获取所需工具:访问这里,在 05_Tools 目录中找到 RKDevTool_v3.19_for_window.zip, DriverAssitant_v5.12.zip 下载到本地
- 安装Rockchip USB驱动和RKDevTool: 解压 DriverAssitant_v5.12.zip 安装Rockchip USB驱动, 解压 RKDevTool_v3.19_for_window.zip 获得 Rockchip烧写工具 RKDevTool
- 获取loader: 访问这里,进入CPU型号对应的tools目录,下载 MiniLoaderAll.bin
1.1.2 进入Maskrom模式擦除存储设备
- 在电脑上启动 RKDevTool
- 按住Mask按键不放, 插上电源, 保持按住Mask键, 状态灯亮起3秒后即可松开
- 用USB C-to-A数据线, 将NanoPC-T6与电脑进行连接, 连接到NanoPC-T6的USB C接口
- 正常情况下,界面下方会显示 Found One MASKROM Device, 如下图所示:
- 在 RKDevTool 界面上点击 Advanced Function 选项卡
- 在 Boot 编辑框中选择 MiniLoaderAll.bin,然后点击 Download 按钮
- 选中 EMMC,点 Switch Storage,再点击 ErashAll 按钮擦除eMMC
- (可选): 如果你的NanoPC-T6上有SPI Nor Flash,选中 SPINOR, 点 Switch Storage,再点击 ErashAll 按钮擦除SPI Nor Flash
- 至此,NanoPC-T6恢复至初始状态,可以正常通过SD卡或eMMC引导系统了
1.2 Linux
1.2.1 下载所需文件
- 获取所需工具:访问这里,在 05_Tools 目录中找到 upgrade_tool_v2.30_for_linux.tgz 下载到本地
- 获取loader: 访问这里,进入CPU型号对应的tools目录,下载 MiniLoaderAll.bin
1.2.2 安装upgrade_tool工具
输入如下命令:
tar xzf upgrade_tool_v2.30_for_linux.tgz
cd upgrade_tool_v2.30_for_linux
sudo cp upgrade_tool /usr/local/sbin/
sudo chmod 755 /usr/local/sbin/upgrade_tool
1.2.3 进入Maskrom模式擦除存储设备
- 使用USB数据线将NanoPC-T6与电脑相连接
- 将NanoPC-T6断开电源,按住 MASK 键,连接电源,4秒后松开按键
- 用如下命令检查连接:
显示类似 "DevNo=1 Vid=0x2207,Pid=0x350b,LocationID=13 Mode=Maskrom SerialNo=" 的内容表示已检测到设备。
upgrade_tool EF MiniLoaderAll.bin
- (可选): 如果你的NanoPC-T6上有SPI Nor Flash,用如下命令擦除SPI Nor Flash:
upgrade_tool DB MiniLoaderAll.bin
upgrade_tool SSD #选5, SPINOR
dd if=/dev/zero of=zero.img bs=1M count=16 # 针对16M NOR FLASH
upgrade_tool WL 0 zero.img
- 至此,NanoPC-T6恢复至初始状态,可以正常通过SD卡或eMMC引导系统了
1.3 Mac Users
我们测试发现Mac下的upgrade_tool_v2.25无法正常工作,因此建议使用Windows和Linux,除非获得了更新版本的upgrade_tool。