Closed zanjie1999 closed 1 year ago
这个老问题了,到现在还没有解决,我可以肯定是不是供电问题,用上外置电源供电依旧是重启不识别硬盘
而且目前cm311的确5.*内核可以引导6.1内核无法u盘引导,只能emmc用update升级内核
已使用armbian-update更新至最新系统,并补上dmesg日志 其中多次出现io错误并伴随着reset high-speed USB device 请大佬看看 @ophub
https://www.cyberciti.biz/faq/rhel-redhat-centos-kernel-usb-reset-high-speed-ehci_hcd/
复制你的日志中的关键信息,搜索引擎中有很多解释及建议。 比如建议降低usb速度的方法。
https://forum.odroid.com/viewtopic.php?t=34790
还有人反映,不能混用usb线。使用usb2.0的接口就要使用2.0的连接线,当使用3.0的线时会出现这个问题,换了2.0的线就正常了。
这些问题及解决办法在ubuntu/debian/centos等linux系统中通用,搜索时不必带armbian
cm311-1a 刷armbian首次进系统依然是以上问题,用的SanDisk 8G USB 2.0的U盘,直接插入靠近网口的USB口,kernel 5.15镜像。
请问是系统问题还是硬件原因?该如何解决?
谢谢。
原安卓系统是刷了推荐的那个9.0的系统?
盒子是刷的minislimtv的Android TV 9系统,昨天试了用sd卡加读卡器可以正常启动Armbian 22.08 5.16 固件(偶尔启动也会usb reset无限循环),用U盘(2.0/3.0 插任意USB口)还是启动报以上错误无法进入系统。
已使用armbian-update更新至最新系统,并补上dmesg日志 其中多次出现io错误并伴随着reset high-speed USB device 请大佬看看 @ophub
看样子是armbian本身支持usb3.0 易驱线有问题,我之前用usb2.0线接小容量硬盘很稳,换了3.0接大容量盘就疯狂掉盘了 遗憾的是usb2.0的线最大只能支持到2.2T硬盘,这个不够用
打算换用coreelec试试了
@wishday 你有没有usb2的usb hub?试试先插一个hub再插usb3的盘,不知道会不会有好转,这样与s905l3a接触的就是一个usb2设备了
usb2.0 对硬盘支持的容量也有限制的吗?Usb2.0的hub+usb3.0的易驱线呢
根据多次试验,usb3.0的u盘多次出现不稳定情况,2.0相对稳定,是否可以让强制让armbian只以2.0的模式驱动u盘/易驱线,屏蔽掉3.0有关的东西?------个人猜测
树莓派论坛的参考https://raspberrypi.stackexchange.com/questions/122104/disable-usb-3-use-ehci-instead-of-xhci-on-raspberry-pi-4
cm311-1a只有usb2
是的,当内核发现有usb3.0设备接入的时候总想用xhci去驱动它,此时usb设备发生reset
是的,当内核发现有usb3.0设备接入的时候总想用xhci去驱动它,此时usb设备发生reset
恍然大悟
@wishday 你有没有usb2的usb hub?试试先插一个hub再插usb3的盘,不知道会不会有好转,这样与s905l3a接触的就是一个usb2设备了
你试过了没?但是cm311-1a的U口本身就是2.0的吧,按道理换线啥的不是没用吗?因为2.0口本来就没3.0的触点
但是cm311-1a的U口本身就是2.0的吧,按道理换线啥的不是没用吗?因为2.0口本来就没3
解决了 加一个2.0的usb hub
@wishday你有没有usb2的usb hub?试先插一个hub再插usb3的盘,不知道会不会有好转,这种与s905l3a接触的就是一个usb2设备了
你试过没有?但是cm311-1a的U口本身就是2.0的吧,按理换线啥的不是没有用吗?因为2.0口本来就没有3.0的触角
当然没试过,其他设备/系统压根就没这个问题
我试过了,解决了,加一个2.0的usb hub
@ophub 能不能在系统层面把那个usb3.0的root hub屏蔽掉 🤔
因为就算在s905L上,也会因为这个Linux Foundation 3.0 root hub
出现一些需要断电重启才能恢复的IO错误
[ 731.072185] sd 0:0:0:0: [sda] tag#0 timing out command, waited 180s
[ 731.108870] sd 0:0:0:0: [sda] tag#0 UNKNOWN(0x2003) Result: hostbyte=0x00 driverbyte=DRIVER_OK cmd_age=180s
[ 731.185095] sd 0:0:0:0: [sda] tag#0 Sense Key : 0x4 [current]
[ 731.192989] sd 0:0:0:0: [sda] tag#0 ASC=0x44 ASCQ=0x0
[ 731.200540] sd 0:0:0:0: [sda] tag#0 CDB: opcode=0x28 28 00 1d 1c 58 80 00 00 08 00
[ 731.210084] blk_update_request: I/O error, dev sda, sector 488396928 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[ 731.230360] Buffer I/O error on dev sda, logical block 61049616, async page read
目前网上找到方法
echo 'suspend' > /sys/bus/usb/drivers/usb/usb2/power/level
会出现echo: write error: invalid argument
这个应该没实现
echo 0 > /sys/bus/usb/drivers/usb/usb2/authorized
这个的话能设置,但roothub还在
我在同款机型上也遇到usb问题,不过并没有io不稳定或掉盘什么的,挂几个月都没问题。就是非常奇葩的如果插着移动硬盘(机械)重启,则重启后无法识别到这个设备,lsusb里都不会出现任何新设备。
这种情况下再重启一次就又能够识别,非常奇葩,当然拔出来再插进去也能识别。
之前我尝试过很多方法想要解决或者定位这个问题,都失败。同样的分区表和文件系统,同样是usb3.0的设备,如果换成U盘就没这问题。移动硬盘外置供电也没有用,之前找到一个用在旧设备上让硬盘有更充足的起转时间的内核参数 usb-storage.delay_use 也没用,毕竟dmesg都没有“new high-speed USB device” event,后面就干脆放弃了。
@YanceyChiew
我这里只要是usb3设备就不行,另外中间串一个usb2的hub可以相对缓解这种问题,但是该掉还是会掉,依然reset,但是概率大概会降低一半吧,一reset就得重启才能修复
我这里只要是usb3设备就不行,另外中间串一个usb2的hub可以相对缓解这种问题,但是该掉还是会掉,依然reset,但是概率大概会降低一半吧,一reset就得重启才能修复
我看到你用的内核是5.15,虽然不知道具体有没有影响,但仍可以尝试升级下内核,说不定某次升级就解决了一些造成这种问题的驱动bug。
我这里只要是usb3设备就不行,另外中间串一个usb2的hub可以相对缓解这种问题,但是该掉还是会掉,依然reset,但是概率大概会降低一半吧,一reset就得重启才能修复
我看到你用的内核是5.15,虽然不知道具体有没有影响,但仍可以尝试升级下内核,说不定某次升级就解决了一些造成这种问题的驱动bug。
我一路升上来的,问题依旧
我也是cm311-1a yst,用的u盘作为日常armbian系统盘,没写入emmc。
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M ID 1d6b:0003 Linux Foundation 3.0 root hub /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/2p, 480M ID 1d6b:0002 Linux Foundation 2.0 root hub |__ Port 2: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 480M ID 21c4:0cd1
发现当io密集时,内核dmesg经常出现 [Aug28 11:49] usb 1-2: reset high-speed USB device number 2 using xhci-hcd [Aug28 11:51] usb 1-2: reset high-speed USB device number 2 using xhci-hcd [Aug28 12:05] usb 1-2: reset high-speed USB device number 2 using xhci-hcd [Aug28 12:10] usb 1-2: reset high-speed USB device number 2 using xhci-hcd
不知道为啥要去reset。所以现在只能自己写个脚本,发现掉盘就强制重启echo b > /proc/sysrq-trigger
我也是cm311-1a yst,用的u盘作为日常armbian系统盘,没写入emmc。
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M ID 1d6b:0003 Linux Foundation 3.0 root hub /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/2p, 480M ID 1d6b:0002 Linux Foundation 2.0 root hub |__ Port 2: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 480M ID 21c4:0cd1
发现当io密集时,内核dmesg经常出现 [Aug28 11:49] usb 1-2: reset high-speed USB device number 2 using xhci-hcd [Aug28 11:51] usb 1-2: reset high-speed USB device number 2 using xhci-hcd [Aug28 12:05] usb 1-2: reset high-speed USB device number 2 using xhci-hcd [Aug28 12:10] usb 1-2: reset high-speed USB device number 2 using xhci-hcd
不知道为啥要去reset。所以现在只能自己写个脚本,发现掉盘就强制重启echo b > /proc/sysrq-trigger
开了一下usb的debug,echo "file drivers/usb/* +p" > /sys/kernel/debug/dynamic_debug/control
谁能看看,完整日志:
[Aug28 11:49] usb 1-2: reset high-speed USB device number 2 using xhci-hcd [Aug28 11:51] usb 1-2: reset high-speed USB device number 2 using xhci-hcd [Aug28 12:05] usb 1-2: reset high-speed USB device number 2 using xhci-hcd [Aug28 12:10] usb 1-2: reset high-speed USB device number 2 using xhci-hcd [Aug28 13:02] xhci-hcd xhci-hcd.3.auto: Cancel URB 0000000070af9627, dev 2, ep 0x1, starting at offset 0xaaecbe0 [ +0.000026] xhci-hcd xhci-hcd.3.auto: // Ding dong! [ +0.000021] xhci-hcd xhci-hcd.3.auto: Stopped on Transfer TRB for slot 1 ep 1 [ +0.000015] xhci-hcd xhci-hcd.3.auto: Removing canceled TD starting at 0xaaecbe0 (dma) in stream 0 URB 0000000070af9627 [ +0.000013] xhci-hcd xhci-hcd.3.auto: Set TR Deq ptr 0xaaecc30, cycle 0
[ +0.000007] xhci-hcd xhci-hcd.3.auto: // Ding dong! [ +0.000005] xhci-hcd xhci-hcd.3.auto: xhci_giveback_invalidated_tds: Keep cancelled URB 0000000070af9627 TD as cancel_status is 2 [ +0.000012] xhci-hcd xhci-hcd.3.auto: Successful Set TR Deq Ptr cmd, deq = @0aaecc30 [ +0.000008] xhci-hcd xhci-hcd.3.auto: xhci_handle_cmd_set_deq: Giveback cancelled URB 0000000070af9627 TD [ +0.000007] xhci-hcd xhci-hcd.3.auto: Giveback URB 0000000070af9627, len = 19968, expected = 20480, status = -115 [ +0.000044] xhci-hcd xhci-hcd.3.auto: disable port 2 USB2 hardware LPM [ +0.000011] xhci-hcd xhci-hcd.3.auto: Set up evaluate context for LPM MEL change. [ +0.000008] xhci-hcd xhci-hcd.3.auto: // Ding dong! [ +0.000017] xhci-hcd xhci-hcd.3.auto: Successful evaluate context command [ +0.000020] xhci-hcd xhci-hcd.3.auto: set port reset, actual port 1-2 status = 0xe11 [ +0.050237] xhci-hcd xhci-hcd.3.auto: Port change event, 1-2, id 2, portsc: 0x200e03 [ +0.000020] xhci-hcd xhci-hcd.3.auto: handle_port_status: starting usb1 port polling. [ +0.017542] xhci-hcd xhci-hcd.3.auto: Get port status 1-2 read: 0x200e03, return 0x100503 [ +0.000048] xhci-hcd xhci-hcd.3.auto: clear port2 reset change, portsc: 0xe03 [ +0.035919] xhci-hcd xhci-hcd.3.auto: xhci_hub_status_data: stopping usb1 port polling [ +0.024015] xhci-hcd xhci-hcd.3.auto: Resetting device with slot ID 1 [ +0.000022] xhci-hcd xhci-hcd.3.auto: // Ding dong! [ +0.000018] xhci-hcd xhci-hcd.3.auto: Completed reset device command. [ +0.000013] xhci-hcd xhci-hcd.3.auto: Successful reset device command. [ +0.000089] usb 1-2: reset high-speed USB device number 2 using xhci-hcd [ +0.003434] xhci-hcd xhci-hcd.3.auto: Slot already in default state [ +0.087466] xhci-hcd xhci-hcd.3.auto: Waiting for status stage event [ +0.000096] xhci-hcd xhci-hcd.3.auto: set port reset, actual port 1-2 status = 0xef1 [ +0.050303] xhci-hcd xhci-hcd.3.auto: Port change event, 1-2, id 2, portsc: 0x200e03 [ +0.000015] xhci-hcd xhci-hcd.3.auto: handle_port_status: starting usb1 port polling. [ +0.014552] xhci-hcd xhci-hcd.3.auto: Get port status 1-2 read: 0x200e03, return 0x100503 [ +0.000039] xhci-hcd xhci-hcd.3.auto: clear port2 reset change, portsc: 0xe03 [ +0.059952] xhci-hcd xhci-hcd.3.auto: Resetting device with slot ID 1 [ +0.000022] xhci-hcd xhci-hcd.3.auto: // Ding dong! [ +0.000017] xhci-hcd xhci-hcd.3.auto: Completed reset device command. [ +0.000013] xhci-hcd xhci-hcd.3.auto: Can't reset device (slot ID 1) in default state [ +0.000007] xhci-hcd xhci-hcd.3.auto: Not freeing device rings. [ +0.000011] xhci-hcd xhci-hcd.3.auto: // Ding dong! [ +0.000062] xhci-hcd xhci-hcd.3.auto: Successful setup address command [ +0.000006] xhci-hcd xhci-hcd.3.auto: Op regs DCBAA ptr = 0x000000079e2000 [ +0.000007] xhci-hcd xhci-hcd.3.auto: Slot ID 1 dcbaa entry @000000009b90dbe9 = 0x0000000aaf3000 [ +0.000009] xhci-hcd xhci-hcd.3.auto: Output Context DMA address = 0xaaf3000 [ +0.000005] xhci-hcd xhci-hcd.3.auto: Internal device address = 1 [ +0.007842] xhci-hcd xhci-hcd.3.auto: xhci_hub_status_data: stopping usb1 port polling [ +0.012334] xhci-hcd xhci-hcd.3.auto: enable port 2 USB2 hardware LPM [ +0.000020] xhci-hcd xhci-hcd.3.auto: Set up evaluate context for LPM MEL change. [ +0.000009] xhci-hcd xhci-hcd.3.auto: // Ding dong! [ +0.000018] xhci-hcd xhci-hcd.3.auto: Successful evaluate context command [ +0.000149] xhci-hcd xhci-hcd.3.auto: Waiting for status stage event [ +0.000071] xhci-hcd xhci-hcd.3.auto: xhci_drop_endpoint called for udev 000000004e533a20 [ +0.000009] xhci-hcd xhci-hcd.3.auto: xhci_drop_endpoint called for udev 000000004e533a20 [ +0.000016] xhci-hcd xhci-hcd.3.auto: add ep 0x1, slot id 1, new drop flags = 0x0, new add flags = 0x4 [ +0.000013] xhci-hcd xhci-hcd.3.auto: add ep 0x82, slot id 1, new drop flags = 0x0, new add flags = 0x24 [ +0.000008] xhci-hcd xhci-hcd.3.auto: xhci_check_bandwidth called for udev 000000004e533a20 [ +0.000011] xhci-hcd xhci-hcd.3.auto: // Ding dong! [ +0.000023] xhci-hcd xhci-hcd.3.auto: Successful Endpoint Configure command [Aug28 13:06] xhci-hcd xhci-hcd.3.auto: Cancel URB 000000005407975f, dev 2, ep 0x1, starting at offset 0xaaec540
cm311-1a CH
挂载 exfat 硬盘也出现了 Input/output error
, 当之前用了一个星期都正常, 突然就开始出错了.
macos openwrt windows虚拟机 上都没问题, 实在没办法, 插路由上算了, smb共享, linux 挂载.
早已放弃了 掉盘无解 这种小机顶盒就老老实实挂usb2.0的盘用吧
挂usb3.0的大硬盘还是太难为它了
也有曲线救国的 说可以刷coreelec系统用没问题
我也是最后把硬盘插在天翼路由器,开了smb,linux挂载,用了3个月,没问题
魔百盒M401A也有这个问题,USB3.0掉盘严重,多试几次可以长时间用一次
Device Information | 设备信息
Armbian Version | 系统版本
Describe the bug | 问题描述
(今天搜一下发现似乎没有人提到这个问题,于是来提一下)
当使用usb连接硬盘或u盘时,在确认供电充足的情况下,可能会出现usb错误导致usb设备断开连接或是io错误,在使用硬盘时格外明显
测试过JMS567,JMS578和vl716,jms的两款会出现掉盘的现象,vl的会出现io异常,最后文件系统只读,但是重新挂载后仍会在较短的时间内出现io错误,循环reboot大约6次后可正常挂载使用一段时间
使用安国u盘或jms578的固态硬盘也会有偶尔出错的情况导致系统无法启动,断电重启后大概率正常
由于一直在工作的那个cm311-1a yst盒子目前已经在reboot后断网失联,目前暂时无法提供日志,恢复后再补上已补上这是一个别人的硬盘盒测试帖子 https://www.znds.com/tv-1223684-1-1.html
另外根据b站评论区其他用户反馈,也有其他人出现这种情况,有人说在coreelec下用s905x2的dtb启动硬盘不会掉盘,
这个我没有长时间测试过试了确实是不会掉盘,说明这确实是软件(系统或dtb)问题而不是硬件问题下面的两张图是在使用jms578硬盘盒子在另一台启动时出现错误的采集卡截图:
卡死了,断电重启后是下面这张,也是卡死了
一直在工作的那台已断电重启恢复,并且已通过armbian-update更新至最新系统,以下为dmesg日志
其中多次出现io错误并伴随着reset high-speed USB device
usb的io错误导致ext4切换为只读的全过程
其中有一行
usb 1-1: USB disconnect, device number 2