幽默ruyisdk硬控我一个小时

正好手头上有个荔枝派4a,闲来无事就想着试试ruyisdk的一键刷机功能,没想到硬控了我一个多小时。

常规的刷机方法无非是ddfastboot,一般是去厂商官方查看教程,然后下载镜像,进行刷写。而ruyisdk直接省去了前面两个过程,可以直接使用命令行选择板子型号,然后选择需要的镜像,直接进行下载然后刷写。

我以为会是一个很快的过程,没想到差点翻车。

1.先去官网把二进制ruyisdk wget下来,然后赋权改名移到bin目录。首次使用ruyi命令的时候就令我头晕目眩,一长串英文摸不着头脑,谷歌翻译了一下才明白是开启遥测的告知书。当然选择不发送信息了。consentoptout两个词我不认识,又搜了一下。

2.开始刷机,ruyi device provision,讲道理我觉得这个命令还是很长的,在没有补全的情况下,provision我经常记不住。而且device我能理解,provision这个词有点生了,不如就叫ruyi flash之类的,简单好记。

3.再弹出一长串英文,看的很头大,大概是什么帮助下载刷机,不能root权限运行,需要sudo之类,不管,直接y,默认是n,按了直接退出交互。

4.选择,31个开发板,耐着性子找到了licheepi 4a,序号是18,输入18

5.选择版本,4a有16g8g的版本,uboot不通用,选择1,16g。

6.弹出三个官方镜像选择,revyosopenEuler,选1

7.提示默认会安装最新版系统,也可以选择别的版本,选y是安装最新版,选n可以自由选择以前的版本

8.告知会有哪些包会下载,直接同意,又提示需要再次同意。这时候有坑,如果你的系统没有预装zstd,会提示你没有依赖zstd,你就前功尽弃,直接退出交互了。你得再手动安装依赖zstd,再从ruyi device provision开始

9.提示需要fastboot devices有输出才能继续。这时候又有个坑,你没装fastboot,又退出交互,你得再次手动安装依赖,再把上面的8步再来一遍。

10.fastboot安装完了。你发现还是不行。因为一般刷机都是用sudo fastbootruyi并不运行sudo fastboot命令,而是一直尝试fastboot命令,这会导致一直在waiting for device,遇上了我的盲点,毕竟我以前都是直接sudo或者root模式开刷。找了半个小时资料,说要改什么udev rules,折腾了半天,才解决这个问题。然后刷成功了。去fastboot 方式刷写开发板(以 Licheepi 4A 为例) | RuyiSDK
看到解决方案

Licheepi 4A 使用 USB 线与 PC 连接,通过 fastboot 刷写。如果只希望使用普通用户完成刷写过程,可能需要配置 udev 规则。这里提供示例规则仅供参考:

SUBSYSTEM==“usb”, ATTR{idVendor}=“2345”, ATTR{idProduct}==“7654”, MODE=“0666”, GROUP=“plugdev”

SUBSYSTEM==“usb”, ATTR{idVendor}=“1234”, ATTR{idProduct}==“8888”, MODE=“0666”, GROUP="plugdev”``

看样子是可以用sudo fastboot来跑的,但是这里为什么没使用sudo,一直卡住。然后这个udev规则,该放在哪,放完是否要重启服务,都没说,就简单一句仅供参考。

我觉得这个交互很幽默。我以为很丝滑很简单很省事,没想到给我整红温了。先是一个不太简洁的命令,然后是一长串的y/n选项,全是英文的,对中文用户造成了心智负担。等你以为渡劫成功了,啪的一声告诉你少个依赖,请退出重来。我请问呢,要什么依赖能不能一开始就提示呢,我以为就少一个依赖,重来就重来,然后又跟我说少个依赖,再来一遍……给我搞的都要ptsd了,生怕第三回又少个依赖,谢天谢地没有。为什么要假定用户依赖完全呢,好歹给个提示呢?然后就是fastboot命令了,为什么不能直接使用sudo命令呢,非要我手动去研究udev rules这种东西,等我研究完我已经手动sudo fastboot刷完了。

下面是视频,有加速和删减,但应该可以看出我的无奈。
https://youtu.be/dKwju6CGUcU

7 个赞

udev rules 确实很看运气:joy:

只有下载镜像的时候是松弛的,其他时候从头到尾都是折磨。可能第一次就是有点难,后面就快了(也许

2 个赞

其实感觉还行吧, 有时候真的懒得翻官网, 找个文档翻半天, 有个命令行随便选选就能装系统的工具还挺好用的
荔枝派4a按官网刷要下一堆东西, 太麻烦了

  • fastboot 和 zstd 确实应该提示下, 但是感觉很多工具都不会提示
  • udev 学不了一点 :grin:, 建议 ruyisdk 处理好, 不然怎么开箱即用
  • provision 翻译了也看不懂啥意思, ruyi flash 简单易懂, 但是刷系统和刷 bin 可能会重合, 建议改成 ruyi os flash 或者 ruyi flash os ?
2 个赞

ruyisdk这个功能是有潜在需求的,但是交互逻辑怎么做好还需要下功夫,现在还远谈不上好用

1 个赞

provision 确实第一眼看不懂啥意思,我想想怎么建议修改

这段 udev 规则里有些比较幽默的东西,比如 2345、 7654、 1234、8888 都是什么。这可能使这段代码变得仅供参考,虽然它对于荔枝派 4A 确实是可用的。更简单的解决方法可能是直接 sudo fastboot,否则你可能需要为每种板子都配置对应的 udev 规则。

zstd 这类依赖可能可以通过分发 deb/rpm 包来解决,因为 ruyi 依赖很多系统工具,可能还会依赖 xz、 unzip,但没有人知道确切。也许在 deb/rpm 包中也可以打进 udev 规则。

相对于 device provision 这样的交互界面,不知道 ruyi device <fastboot/dd> <发行版> <开发板> 会不会是一个更好的方式

3 个赞

感谢测试:two_hearts:
能走完fastboot已经很厉害了!现在ruyisdk文档该是很不行的,假设了很多已经很熟悉刷板子的人才知道的信息,这是文档和命令行提示需要增加的。

我一般在进入刷机模式就容易反复好多次才成功(

:joy: :joy: :+1: 你比我幸运。
哈哈,看来昨天不止我在刷荔枝派4A被折腾。我300元买的二手顶配lpi4A到货,赶紧各种测试辨认真伪,然后把系统弄崩了,刷机费了6-8小时多才搞定,弄完都是今天凌晨3-4点。先是用lpi4A原厂提供的手动刷机方法,刷的时候,时间较长但好像没啥错误提示,但重启lpi4A还是崩溃的系统,重做两次都失败,这时想起ruyisdk也能刷机,找了台x64debian的笔记本,弄上ruyi,刷了几次,成功了,我没碰到需要修改udev rules的现象,我感觉ruyi刷机还是很好用的,在往lpi4A写root文件时, ruyi的传输速度应该是手动刷机速度的几倍,而且最终ruyi刷成功了,谢谢ruyi开发团队。

以下是给开发团队的:
提个小意见:ruyi刷机下载解压的镜像文件,好像还在用户目录缓存中没有清除,我好像也没找到ruyi有清除缓存的指令,手动去删除ruyi刷机镜像缓存,好像还会影响下次ruyi刷机失败。刷机缓存容量比较大呢。

最后有个问题:我的荔枝派4A, 刷成功的镜像是ruyi里5月那个,使用时,在lightdm登陆界面,不进入图形环境,按C+A+Fx进入命令行模式,感觉字符显示延迟长而且有短暂笔画缺失,即使我用开机直接自动进入命令行也是有延迟问题,这个现象是正常的吗?是GPU驱动不完善影响的吗?

补充个小意见:ruyi刷机可以使用zstdcat指令吗?边解压边烧录,节约时间节约空间,lpi4A有8-16GB内存,还有4GB交换分区(99.9%的时候是浪费的)。

2 个赞

是的,要解决初学者玩不转,熟练者不需要的问题(,感觉加个tui甚至gui会不错,现在三十多个开发板已经看得很眼花,还有一些交互也很迷。
如果可以在没有依赖的时候不自动退出,加一个刷新机制就好了,装完依赖再次check,成功就继续下一步,否则从头来很费事。或者第一次运行ruyi时检测依赖。
其他部分我还没测试,说不定也有缺少依赖的情况。后续的反馈我会跟帖在这里。

2 个赞

是的,依赖问题和udev问题不同的发行版不一样。所以这样开发团队就需要考虑更多的测试,不然用户很抓狂的。
你说的ruyi传输速度比手动快,我感觉不太可能,ruyi只是自动帮你运行了fastboot命令,和手动应该没差。可能是省的就是手动输入fastboot命令的时间:grinning_face:

2 个赞

ruyi刷机,特别是传输root文件时,我确认是比lpi4A官方给的刷机攻略速度,快几倍,具体咋实现我不清楚,但我能感觉工作时间和传送提示,手动传输root分区文件时,是3500多个文件一个一个蹦(我只输入一次指令就看着它蹦),ruyi刷机是3500多个文件批量传输。:)

实测了一下,把官网给的刷机步骤写入脚本剔除手动输入影响的时间,ruyi也从最后一步确认开始录制,时间基本一致。

:joy: riscv同志,你再试试3500个文件左右的root分区,你这个看起来文件少呢,当然,我是手动刷了,但最终没成功启动,ruyi刷成功了。官方刷机攻略大量篇幅是windows的, linux的刷机攻略篇幅小,也许漏写了啥,所以我没启动成功。 :handshake:

你上面说写入lp4a的速度有快,那我这个也是刷的lp4a,变量也控制了,事实证明就是没快。
你说3500多个文件,我猜是因为你没有检查格式化分区。官网可参见烧录镜像 - Sipeed Wiki

1 个赞

谢谢。你说的我做了,也有完成回显,但最后啥都没改变。我能看见手动时是3500个文件一个一个蹦。ruyi烧录时也是总数3500多,但它不是一个一个蹦,是批量蹦,从显示都可以节省不少时间,何况是批量传输文件。
我又回想了一下,也许fastboot这个工具不同,我是用debian13系统自带的,不是用百度网盘的,我根本就没去网盘,因为我要烧录的是lpi4A最新的镜像,而不是稳定版本。再次看你发的截图,图上是./fastboot,应该是个单独的程序,如果是从系统安装的,不需要./。 :grinning_face:

不管是ruyi还是手动,4a正确的刷机就是37份。出现五千份就是没有刷ram。ruyi有一个版本就是错误的没有刷ram导致出现了3500份
关于fastboot,我是使用的ubuntu源里的fastboot,感觉没啥影响。来源都是谷歌的

3500个文件是肯定的。ruyi里烧录时,手选5月的镜像,root分区文件解压完有5GB左右,不会只有37个文件。 :grinning_face:

正常运行的lpi4A emmc,一共有4个分区,uboot spl第一个分区,boot分区,交换区,root分区,boot分区有几十个文件是对的。root分区包含了整个系统文件、xfce4、chromium、mpv、vlc这些程序,有几千个文件是正常的,所以烧录进去的镜像文件里应该包含了很多。