Radxa Zero踩坑记录
更新时间:2024/01
一年前,心血来潮买了几块Radxa Zero,觉得很有意思,可惜最近想升级到新的系统之后就出了问题,刷机挣扎了好几天,官方文档也已经各种过时了,于是决定记录一下踩坑的过程。
1. 系统安装
Radxa Zero有自带eMMC和不带eMMC两个版本,两个版本使用sd卡运行系统都是ok的,但是如果想将系统刷入eMMC并用eMMC进行引导,就很容易遇到u-boot无法引导的问题。网上有很多讨论,但是大多都已经过时了,官方提供的troubleshooting guide也非常的模糊,提供的u-boot更新依然有问题,即便是成功更新了u-boot,也有可能重启之后u-boot的patch就又失效了。在经过了一周的挣扎之后,以下是我找到的能用的方法。
1.1. 官方镜像
首先是Radxa Zero的官方镜像,最新的发布可以在这里找到:Github。但是在本文写成的时候,最新的版本已经很久都没有更新了,还是2022/08/01发布的,想尝试新系统的话,就无法使用了。
想要使用官方镜像的话,可以尝试使用最新的测试版本:Github(当前是test-build-4)。这些镜像都自带了修正之后的u-boot,所以可以直接使用最直接的方法刷机,不需要再额外的刷其他版本的u-boot了。我目前使用的就是这个版本的debian系统,暂时再也没有遇到任何和u-boot相关的问题了。
- 首先,我们先使用UART连接到zero的串口,并在电脑上使用Console打开它的串口,PuTTY,MobaXterm,tio都可以。
- 然后,进入Radxa Zero的maskrom模式。
- 然后,将eMMC擦除。擦除完成后,zero的eMMC会被当成一个USB磁盘加载起来。
- 最后,使用Etcher刷入镜像。方法和刷microSD卡一样,只是选择的磁盘是zero的eMMC。
重启之后就完成了!我们就可以在Console里面使用默认的账号(rock
)和密码(rock
)登录啦!
感谢Yuntian给予的帮助!
1.2. Armbian
Armbian最新的版本可以在armbian的官网找到:armbian。但是很不幸,直接刷机的方法是不行的,因为最新Armbian的u-boot依然有问题,会导致无法引导,刷入官方提供的u-boot也无法完全解决这个问题,只能保证一次引导成功,重启后就又会出现问题。需要使用下面的方法才能解决:
- 首先,将armbian的镜像刷入一张sd卡中。
- 然后,我们使用上面刷官方镜像的方法,连接UART,并将eMMC擦除。
- 擦除完成后,我们不要直接去刷armbian的镜像,而是将刷好的sd卡插入zero,然后重启,利用sd卡进行引导,并进入armbian。
如果你能使用sd卡进行引导,进入armbian,那么恭喜你,你已经成功一大半了!接下来,我们需要连接Wifi(请参考“设置系统->连接到Wifi”一节),然后使用armbian-config来将u-boot和系统都刷入eMMC中:
注意:armbian初始设置时也会提示你连接wifi,但是这个连接成功可能会是一个虚假的成功,有IP但是除了本地127.0.0.1什么都连不上,所以最好使用nmcli重新连接一次。
1 | sudo armbian-config |
- 然后在界面里面选择:
- System -> Install -> Boot from eMMC - system on eMMC。
- 文件系统选择默认:ext4。
- System -> Install -> Boot from eMMC - system on eMMC。
- 然后等待u-boot和rootfs传输完成,直到显示关机。
关机之后,我们就可以将sd卡取出了。重启zero,就可以看到zero已经可以正常引导了!
如果依然出错,那么可以尝试在u-boot里面运行以下命令:
mmc dev 2
mmc part
之后再运行
mmc info
,如果发现可以正常返回mmc的信息,那么就可以运行boot
命令,正常引导了。成功之后,再次重启貌似就不会再出现问题了。(我重启了5次,但是不知道有没有意外,如果还是不行,那么现在就只能暂时使用官方镜像了)。
感谢MicroLinux提供的解决方法!大家有兴趣也可以去给他的频道和原视频点赞加鸡腿!
2. 设置系统
2.1. 连接到WiFi
为了方便使用,首先,我们最好通过串口将zero连接到WiFi。这里,我们可以使用nmtui
。
有时候nmtui
会卡住,不响应键盘输入,这个时候也可以使用nmcli
。复制粘贴如下命令运行,然后跟着提示选择就可以了:
1 | # Enable WIFI |
如果成功了,就可以看到ping 8.8.8.8
可以正常工作,并且最后可以看到自己的IP地址了。
2.2. 创建用户
连接上wifi之后,我们就可以使用ssh登录上去,或者继续在串口终端中创建用户和设置机器名了,这里我写了一个小脚本来完成这个枯燥的工作:
1 | bash <(curl -sSf https://raw.githubusercontent.com/r12f/config/master/bootstrap/linux/bootstrap.sh) |
2.3. 重启系统
这个时候,基本设置就已经完成了,可以重启系统了:
1 | sudo reboot now |
2.4. 登录并删除默认账户
为了安全,不要忘记删除默认账户:
1 | sudo userdel -r rock |
这样基本的设置就完成啦!
3. 软件安装
现在,无论是官方镜像还是Armbian,我们可以运行apt upgrade
了,所以安装和升级软件就相对简单了。先把系统和源都升级到最新:
1 | sudo apt update |
3.1. 常用小工具系列
不喜欢的可以自行删除:
1 | sudo apt install -y iptables \ |
3.2. 基本的开发工具
git,c++,python,protobuf,cmake,等等:
1 | sudo apt install -y build-essential \ |
3.3. Rust
1 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh |
本文链接地址:Radxa Zero踩坑记录