向日葵控控A2(OrayKVM)U盘救砖/USB恢复模式说明/免U盘刷机教程

回复列表(101|隐藏机器人聊天)
  • @Ta / 2022-09-25 / /

    @Caddi,注意这句话

    1、负责产品硬件选型,使用海思hi3516a处理器,使用ADV7611 HDMI采集芯片并使用stm32f130c8t6单片机作为usb device模拟鼠标键盘设备;

    USB是一个单独的单片机实现的,它有单独的固件。

    /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
            }
    
  • @Ta / 2022-09-25 / /
    @Caddi,是的,没有授权问题,是把控控调整好寄给合作的数据方(最近发生疫情的某地),我们在远程进行控制,感谢您!
  • @Ta / 2022-09-25 / /

    @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 $?
    }
    
  • @Ta / 2022-09-25 / /

    @Caddi,所以,硬件ID很可能在/usr/share/oray_mcu_firmware.hex里,修改它然后刷入可能就可以。

  • @Ta / 2022-09-25 / /
    @老虎会游泳,抱歉我不是硬件出身,看过您的github也是一知半解,我是做深度学习相关的,找到这个论坛也是机缘巧合(苦笑
  • @Ta / 2022-09-25 / /

    @Caddi,嗯,我尝试找一下如何修改吧。

  • @Ta / 2022-09-25 / /
    @老虎会游泳,谢谢老虎哥🙏🏻
  • @Ta / 2022-09-25 / /

    STM32F103C8T6是一款基于ARM Cortex-M 内核STM32系列的32位的微控制器,程序存储器容量是64KB,需要电压2V~3.6V,工作温度为-40°C ~ 85°C。

    STM32F103C8T6是一款由意法半导体公司(ST)推出的基于Cortex-M3内核的32位微控制器,硬件采用LQFP48封装,属于ST公司微控制器中的STM32系列。

    https://blog.csdn.net/fantastic_sky/article/details/110229474

  • @Ta / 2022-09-25 / /

    控控的现有USB设备id:

    Bus 004 Device 002: ID 0483:572b STMicroelectronics

    按 Little Endian 反转:83042b57

  • @Ta / 2022-09-25 / /

    @Caddi,如果我给你这张图以及这个命令,你知道怎么修改吗?

    图片.png(391.16 KB)

    /usr/sbin/oraymcu_helper -f /usr/share/oray_mcu_firmware.hex

    注意ID要按照 Little Endian 反转:0483:572b -> 83042b57

  • @Ta / 2022-09-25 / /
    也就是说空空的usb设备信息都可以通过linux-ssh连接-stm32相关的命令来重新写入吗
  • @Ta / 2022-09-25 / /
    抱歉我不知道 大概理解成把hex里面的832042b57随便修改成其他的就可以是吗?
  • @Ta / 2022-09-25 / /

    @Caddi,我猜可以,你先解压固件获得/usr/sbin/oraymcu_helper/usr/share/oray_mcu_firmware.hex,然后修改oray_mcu_firmware.hex里的id,把它和oraymcu_helper一起用scp传到控控,然后用命令刷入,再断电重启即可(reboot命令没有用,要物理断电才能重启单片机)。

    固件:kvm_upgrade_1.4.0_firmware.bz2(12.77 MB)(使用7-zip解压,然后再用7-zip解压rootfs.squashfs

    控控的SSH监听在44022和44033端口。44022端口的用户名是admin,密码是oray.com,会话根目录被chroot了(所以要自己传文件上去)。44033的用户名是root,密码未知,会话根目录未被chroot,但因为不知道密码我们也连不上。

  • @Ta / 2022-09-25 / /

    @Caddi,注意:固件应该不适用于控控A2 pro,弄错可能会导致USB失灵。

  • @Ta / 2022-09-25 / /
    收到 谢谢老虎哥 我明天回公司尝试一下
    再请教两个问题:
    刷入的命令是:/usr/sbin/oraymcu_helper -f /usr/share/oray_mcu_firmware.hex吗
    scp传文件的位置任意即可吗?还是/usr/sbin和/usr/share?(这个sbin有点儿奇怪
  • @Ta / 2022-09-25 / /
    收到@老虎会游泳,我们采购的是控控a2
  • @Ta / 2022-09-25 / /

    @Caddi,我通常会这样做(admin密码是oray.com):

    scp -P44022 oraymcu_helper oray_mcu_firmware.hex admin@192.168.x.x:.
    ssh -p44022 admin@192.168.x.x
    # chmod +x ./oraymcu_helper
    # ./oraymcu_helper -f ./oray_mcu_firmware.hex
    

    至于 /usr/sbin/oraymcu_helper -f /usr/share/oray_mcu_firmware.hex,它最大的用途是告诉你这两个文件在压缩包里的什么位置,以及命令的参数类型。

  • @Ta / 2022-09-25 / /
    收到 再次感谢
  • @Ta / 2022-09-25 / /

    结果得到./oraymcu_helper: can't load library 'libstdc++.so.6',看起来还有一些库要上传

  • @Ta / 2022-09-25 / /
    所以需要我们找到linbstdc++.so.6这个库一起scp进去?
添加新回复
回复需要登录