找到2202个回复 (用户: 老虎会游泳)
78₴G39S2CCXV0v₴ https://m.tb.cn/h.U2OaxPN CZ3457 firefly RK3588S开发板带外壳8K八核AI主板NPU6Tops 瑞芯微RK3588
我收到的是内存4G硬盘32G的版本,¥1299(实付1284)。不是我选的,卖家发错货(我只是买了风扇,结果收到风扇+开发板,还是两个不同的快递公司送。不知道他们怎么打的单),我只是没退。
@罐子,准备代替60W的龙芯3A4000台式机做为常开服务器,提供包括NAS、网络代理、视频流存储(从主机推流实现录像)等功能。
目前在用的3A4000台式机功耗有点高,风扇也比较吵。这个开发板看起来很省电很安静,而且还有视频编码硬件加速能力。
@罐子,我本来没想买,但是卖家搞“先货后款”(就是发错货,把不是我买的板子发给了我),所以我就忍不住试用了,觉得好就留下来了,给卖家补了差价。
如果有图形界面,用wireshark,没图形界面就用tcpdump
@flyfox,它有没有另一个run_exagear.sh,运行那个看看
@flyfox,你装的是“鲲鹏CPU”列出的那些包吗
@罐子,oray_mcu_firmware_mod.hex(57.75 KB)
你可以自己和未修改的固件进行对比
@jiongrenshimisi,
未实现的操作码,是用box86运行的吗,我觉得是box86需要完善或更新。
之后我尝试更新一下。
注意:
oray_mcu_firmware.hex
是从控控固件1.4.0版本提取的,不适用于其他固件。如果你的控控固件版本低于1.4.0,你应该先升级到该版本再刷入。
@five,fedora是QQ群里其他人打包的,如果你想用0.5.10.5,可以安装通用的flatpak版。0.5.11属于我自己测试用的版本,暂时还没有其他打包。
对了,0.5.10.5和0.5.11并没有添加什么重要的功能。
至于IPv6,为您搜索到以下信息
在修复校验和之后,修改就成功了
@Caddi,我写了个python脚本用来重算一行的校验和:
intel-hex-checksum.py(593 Bytes)
import re import sys from functools import reduce print('请输入要计算校验和的行:') line = sys.stdin.readline().strip() checksum = int(line[-2:], 16) parts = re.findall('.{2}', line[1:-2]) parts = map(lambda x: int(x, 16), parts) new_checksum = 256 - reduce(lambda a, b: (a + b) % 256, parts) if checksum == new_checksum: print('校验和匹配,该行无需修改') else: print('校验和不匹配,原校验和:%d,应该改为:%d' % (checksum, new_checksum)) print('正确的行:') print('{}{:02X}'.format(line[:-2], new_checksum))
@Caddi,我还有另一个线索,IDA Pro提示我文件校验和不正确。这是一个“Intel Hex”文件,看起来它内置校验和,可能需要使用专用编辑器进行修改。
Intel Hex文件格式:https://zhuanlan.zhihu.com/p/420620471
记录格式:
一个英特尔HEX 文件由一些HEX记录组成。每个记录由如下所示的五部分组成:
:llaaaatt[dd……]cc
:
冒号代表了每个记录的开始- ……
cc
是校验和的校验码。是计算了所有前面的数据的和后,除以256后的余数,一般是补码,所以要对和取反再加一。
@Caddi,
.hex
是用bin2hex
方式存储的单片机固件,对于stm32f103c8t6
,采用ARM32机器语言。IDA Pro可以把它转换为ARM32汇编语言,就像这样:
但转换后的汇编语言只能用来看(因为转换不完整,不可能得到原始源代码),不能用来修改或编译。想修改还是只能修改
.hex
文件本身。
@Caddi,我虽然刷入成功了
但重启后ID没有变,我正在查找原样。也许MCU固件被以下脚本还原了(
/etc/init.d/S16mcu_helper
):cur_version=$(cat /etc/version | grep 'mcu' | awk -F ':' {'print $2'}) mcu_version=$(/usr/sbin/oraymcu_helper -v | awk -F ',' {'print $2'} | awk -F ':' {'print $2'}) #读取mcu版本号失败或者与本固件的mcu版本不匹配,则将本固件的mcu固件刷入到mcu中 [ $? -ne 0 -o "$mcu_version" != "$cur_version" ] && { burn_mcu_firmware }
@Caddi,还有这一段:
burn_mcu_firmware() { /usr/sbin/oraymcu_helper -f /usr/share/oray_mcu_firmware.hex [ $? -eq 0 ] || { echo "burn mcu failed..." sleep 2 /usr/sbin/oraymcu_helper -f /usr/share/oray_mcu_firmware.hex } return $? }