Gl.inet ar150 usb driver problem with ups, I'm desperate

Hi everybody,
I'm struggling with a usb driver problem for a couple of days and I dont know how can I go on.
I have a gl.Inet AR150 minirouter, flashed with last 21.02 snapshot (same problem I had with the 19.07.08).
Now, I want to connect my apc ups 650 to it, via rj50-2-usb cable, to monitoring it.
When I plug the cable, nothing happens, just some strange errors, I looked on the web and that seems related to hardware problems, but I've tested the ups (with windows), the cable (on another ups, same model) and the minirouter usb port (connecting a pendrive) and everything works.
Reading the wiki, old post in forum and openwrt wiki archive I understood that I have to install the right usb driver and that maybe I need one that support 1.1 usb.
lsusb says:
Bus 001 Device 001: ID 1d6b:0002 Linux 5.4.143 ehci_hcd EHCI Host Controller

I installed all of the suggested drivers, nothing change. Actually, with

opkg list-installed | grep usb

I obtain:

kmod-phy-ath79-usb - 5.4.143-1
kmod-usb-chipidea - 5.4.143-1
kmod-usb-chipidea2 - 5.4.143-1
kmod-usb-core - 5.4.143-1
kmod-usb-ehci - 5.4.143-1
kmod-usb-gadget - 5.4.143-1
kmod-usb-hid - 5.4.143-1
kmod-usb-ohci - 5.4.143-1
kmod-usb-phy-nop - 5.4.143-1
kmod-usb-roles - 5.4.143-1
kmod-usb-storage - 5.4.143-1
kmod-usb-uhci - 5.4.143-1
kmod-usb2 - 5.4.143-1
libusb-1.0-0 - 1.0.24-4
usbutils - 014-1

while dmesg returns:

[    0.000000] Linux version 5.4.143 (builder@buildhost) (gcc version 10.3.0 (OpenWrt GCC 10.3.0 r17469-9e9057f416)) #0 Wed Sep 1 13:40:27 2021
[    0.000000] printk: bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 00019374 (MIPS 24Kc)
[    0.000000] MIPS: machine is GL.iNet GL-AR150
[    0.000000] SoC: Atheros AR9330 rev 1
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[    0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x0000000003ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000003ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000003ffffff]
[    0.000000] On node 0 totalpages: 16384
[    0.000000]   Normal zone: 144 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 16384 pages, LIFO batch:3
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 16240
[    0.000000] Kernel command line: console=ttyATH0,115200 rootfstype=squashfs,jffs2
[    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes, linear)
[    0.000000] Writing ErrCtl register=00000000
[    0.000000] Readback ErrCtl register=00000000
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 56700K/65536K available (5341K kernel code, 190K rwdata, 1176K rodata, 1220K init, 205K bss, 8836K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS: 51
[    0.000000] random: get_random_bytes called from start_kernel+0x358/0x54c with crng_init=0
[    0.000000] CPU clock: 400.000 MHz
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 9556302233 ns
[    0.000013] sched_clock: 32 bits at 200MHz, resolution 5ns, wraps every 10737418237ns
[    0.007606] Calibrating delay loop... 265.42 BogoMIPS (lpj=1327104)
[    0.092172] pid_max: default: 32768 minimum: 301
[    0.096839] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.103606] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.117509] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.125613] futex hash table entries: 256 (order: -1, 3072 bytes, linear)
[    0.132228] pinctrl core: initialized pinctrl subsystem
[    0.140906] NET: Registered protocol family 16
[    0.185304] workqueue: max_active 576 requested for napi_workq is out of range, clamping between 1 and 512
[    0.198819] clocksource: Switched to clocksource MIPS
[    0.203826] thermal_sys: Registered thermal governor 'step_wise'
[    0.204373] NET: Registered protocol family 2
[    0.213209] IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.221065] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.227831] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.235208] TCP bind hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.241885] TCP: Hash tables configured (established 1024 bind 1024)
[    0.248145] UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.254258] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.261324] NET: Registered protocol family 1
[    0.265015] PCI: CLS 0 bytes, default 32
[    0.274579] workingset: timestamp_bits=14 max_order=14 bucket_order=0
[    0.290552] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.294741] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.323603] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
[    0.333163] pinctrl-single 18040028.pinmux: 64 pins, size 8
[    0.338463] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    0.346966] 18020000.uart: ttyATH0 at MMIO 0x18020000 (irq = 9, base_baud = 1562500) is a AR933X UART
[    0.354785] printk: console [ttyATH0] enabled
[    0.363090] printk: bootconsole [early0] disabled
[    0.385787] spi-nor spi0.0: mx25l12805d (16384 Kbytes)
[    0.389632] 4 fixed-partitions partitions found on MTD device spi0.0
[    0.395804] Creating 4 MTD partitions on "spi0.0":
[    0.400618] 0x000000000000-0x000000040000 : "u-boot"
[    0.407052] 0x000000040000-0x000000050000 : "u-boot-env"
[    0.412427] 0x000000050000-0x000000ff0000 : "firmware"
[    0.422419] 2 uimage-fw partitions found on MTD device firmware
[    0.426883] Creating 2 MTD partitions on "firmware":
[    0.431919] 0x000000000000-0x000000220000 : "kernel"
[    0.438159] 0x000000220000-0x000000fa0000 : "rootfs"
[    0.443196] mtd: device 4 (rootfs) set to be root filesystem
[    0.450044] 1 squashfs-split partitions found on MTD device rootfs
[    0.454814] 0x0000004f0000-0x000000fa0000 : "rootfs_data"
[    0.461693] 0x000000ff0000-0x000001000000 : "art"
[    0.469362] libphy: Fixed MDIO Bus: probed
[    0.829947] ag71xx 19000000.eth: Could not connect to PHY device. Deferring probe.
[    1.509308] libphy: ag71xx_mdio: probed
[    1.512720] libphy: ar8xxx-mdio: probed
[    1.518664] switch0: Atheros AR724X/AR933X built-in rev. 2 switch registered on mdio.0
[    1.565027] ag71xx 1a000000.eth: connected to PHY at fixed-0:00 [uid=00000000, driver=Generic PHY]
[    1.573555] eth0: Atheros AG71xx at 0xba000000, irq 5, mode: gmii
[    1.579210] i2c /dev entries driver
[    1.585436] NET: Registered protocol family 10
[    1.596464] Segment Routing with IPv6
[    1.598926] NET: Registered protocol family 17
[    1.603204] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[    1.616077] 8021q: 802.1Q VLAN Support v1.8
[    1.960475] ag71xx 19000000.eth: connected to PHY at mdio.0:1f:04 [uid=004dd041, driver=Generic PHY]
[    1.969596] eth1: Atheros AG71xx at 0xb9000000, irq 4, mode: mii
[    1.975514] hctosys: unable to open rtc device (rtc0)
[    1.985845] VFS: Mounted root (squashfs filesystem) readonly on device 31:4.
[    2.001064] Freeing unused kernel memory: 1220K
[    2.004133] This architecture does not have kernel memory protection.
[    2.010597] Run /sbin/init as init process
[    2.558832] random: fast init done
[    2.769472] init: Console is alive
[    2.771763] init: - watchdog -
[    4.196383] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    4.475642] usbcore: registered new interface driver usbfs
[    4.479872] usbcore: registered new interface driver hub
[    4.485088] usbcore: registered new device driver usb
[    4.506566] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    4.524495] chipidea-usb2 1b000000.usb: 1b000000.usb supply vbus not found, using dummy regulator
[    4.535174] ci_hdrc ci_hdrc.0: EHCI Host Controller
[    4.538664] ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1
[    4.568827] ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00
[    4.574084] hub 1-0:1.0: USB hub found
[    4.577152] hub 1-0:1.0: 1 port detected
[    4.582847] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    4.599359] init: - preinit -
[    5.125419] usb 1-1: new high-speed USB device number 2 using ci_hdrc
[    5.563595] random: procd: uninitialized urandom read (4 bytes read)
[    5.971720] random: jshn: uninitialized urandom read (4 bytes read)
[    6.183901] random: jshn: uninitialized urandom read (4 bytes read)
[    6.551874] eth0: link up (1000Mbps/Full duplex)
[    6.555061] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   10.894465] jffs2: notice: (579) jffs2_build_xattr_subsystem: complete building xattr subsystem, 23 of xdatum (19 unchecked, 4 orphan) and 32 of xref (4 dead, 0 orphan) found.
[   10.912239] mount_root: switching to jffs2 overlay
[   10.917842] overlayfs: upper fs does not support tmpfile.
[   10.933663] urandom-seed: Seeding with /etc/urandom.seed
[   11.234192] eth0: link down
[   11.256873] procd: - early -
[   11.258443] procd: - watchdog -
[   11.993423] procd: - watchdog -
[   11.997782] procd: - ubus -
[   12.047740] urandom_read: 5 callbacks suppressed
[   12.047752] random: ubusd: uninitialized urandom read (4 bytes read)
[   12.060870] random: ubusd: uninitialized urandom read (4 bytes read)
[   12.071389] procd: - init -
[   13.905280] kmodloader: loading kernel modules from /etc/modules.d/*
[   14.722938] SCSI subsystem initialized
[   14.781681] ehci-fsl: Freescale EHCI Host controller driver
[   14.801010] ehci-platform: EHCI generic platform driver
[   14.872769] urngd: v1.0.2 started.
[   14.898862] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[   14.906368] ohci-platform: OHCI generic platform driver
[   14.943714] uhci_hcd: USB Universal Host Controller Interface driver
[   15.152238] hidraw: raw HID events driver (C) Jiri Kosina
[   15.174793] Loading modules backported from Linux version v5.10.42-0-g65859eca4dff
[   15.181007] Backport generated by backports.git v5.10.42-1-0-gbee5c545
[   15.310975] usb-storage 1-1:1.0: USB Mass Storage device detected
[   15.329546] usb-storage 1-1:1.0: Quirks match for vid 090c pid 1000: 400
[   15.334977] scsi host0: usb-storage 1-1:1.0
[   15.340057] usbcore: registered new interface driver usb-storage
[   15.385184] usbcore: registered new interface driver usbhid
[   15.389390] usbhid: USB HID core driver
[   15.434778] xt_time: kernel timezone is -0000
[   15.695153] random: crng init done
[   15.698628] PPP generic driver version 2.4.2
[   15.705649] NET: Registered protocol family 24
[   15.906956] ath: EEPROM regdomain sanitized
[   15.906974] ath: EEPROM regdomain: 0x64
[   15.906980] ath: EEPROM indicates we should expect a direct regpair map
[   15.907009] ath: Country alpha2 being used: 00
[   15.907014] ath: Regpair used: 0x64
[   15.921001] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[   15.924291] ieee80211 phy0: Atheros AR9330 Rev:1 mem=0xb8100000, irq=2
[   16.039535] kmodloader: done loading kernel modules from /etc/modules.d/*
[   16.734874] scsi 0:0:0:0: Direct-Access     Samsung  Flash Drive      1100 PQ: 0 ANSI: 6
[   16.770117] sd 0:0:0:0: [sda] 62656641 512-byte logical blocks: (32.1 GB/29.9 GiB)
[   16.798936] sd 0:0:0:0: [sda] Write Protect is off
[   16.802293] sd 0:0:0:0: [sda] Mode Sense: 43 00 00 00
[   16.802840] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[   16.847525]  sda:
[   16.852365] sd 0:0:0:0: [sda] Attached SCSI removable disk
[   35.644341] eth0: link up (1000Mbps/Full duplex)
[   35.648499] br-lan: port 1(eth0) entered blocking state
[   35.652839] br-lan: port 1(eth0) entered disabled state
[   35.658418] device eth0 entered promiscuous mode
[   35.689037] br-lan: port 1(eth0) entered blocking state
[   35.692817] br-lan: port 1(eth0) entered forwarding state
[   36.658975] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[   37.860579] eth1: link up (100Mbps/Full duplex)
[   37.863699] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready

(there is a gigabit port?!?!?!)

and cat /sys/kernel/debug/usb/devices output is`

T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480  MxCh= 1
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev= 5.04
S:  Manufacturer=Linux 5.4.143 ehci_hcd
S:  Product=EHCI Host Controller
S:  SerialNumber=ci_hdrc.0
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms

What can I try?

Connecting the cable, dmesg says:
usb usb1-port1: connect-debounce failed

checking again dmesg, I found:


[29627.461519] usb 1-1: new full-speed USB device number 2 using ci_hdrc
[29642.751478] usb 1-1: device descriptor read/64, error -145
[29658.191439] usb 1-1: device descriptor read/64, error -145
[29658.461430] usb 1-1: new full-speed USB device number 3 using ci_hdrc
[29673.791403] usb 1-1: device descriptor read/64, error -145
[29689.231363] usb 1-1: device descriptor read/64, error -145
[29689.351425] usb usb1-port1: attempt power cycle
[29690.711427] usb usb1-port1: Cannot enable. Maybe the USB cable is bad?
[29691.671448] usb usb1-port1: Cannot enable. Maybe the USB cable is bad?
[29691.676627] usb usb1-port1: unable to enumerate USB device
[30974.728106] usb 1-1: new full-speed USB device number 6 using ci_hdrc
[30990.028072] usb 1-1: device descriptor read/64, error -145
[31005.468033] usb 1-1: device descriptor read/64, error -145
[31005.738021] usb 1-1: new full-speed USB device number 7 using ci_hdrc
[31021.067993] usb 1-1: device descriptor read/64, error -145
[31036.507952] usb 1-1: device descriptor read/64, error -145
[31036.628004] usb usb1-port1: attempt power cycle
[31037.688061] usb usb1-port1: Cannot enable. Maybe the USB cable is bad?
[31038.647999] usb usb1-port1: Cannot enable. Maybe the USB cable is bad?
[31038.653164] usb usb1-port1: unable to enumerate USB device
[39204.589019] usb 1-1: new full-speed USB device number 10 using ci_hdrc
[39219.848987] usb 1-1: device descriptor read/64, error -145
[39235.288955] usb 1-1: device descriptor read/64, error -145
[39235.558946] usb 1-1: new full-speed USB device number 11 using ci_hdrc
[39250.888921] usb 1-1: device descriptor read/64, error -145
[39266.328886] usb 1-1: device descriptor read/64, error -145
[39266.448937] usb usb1-port1: attempt power cycle
[39267.508960] usb usb1-port1: Cannot enable. Maybe the USB cable is bad?
[39268.468959] usb usb1-port1: Cannot enable. Maybe the USB cable is bad?
[39268.474114] usb usb1-port1: unable to enumerate USB device

looking like a hardware fault to me...

use a multimeter to test impedance/continuity on each wire from the usb-connector(cable-end) all the way to the board (inside the case) of the peripheral...

1 Like

thanks for the support!
uhm, the ups or the router? Because i tested the cable, it works.

1 Like

may i test in some way the router, for example putting a pendrive into the usb port and doing...something?

sure you can...

it seems the usb works.
dmesg after putting a pendrive:


[116993.437137] usb-storage 1-1:1.0: USB Mass Storage device detected
[116993.444148] usb-storage 1-1:1.0: Quirks match for vid 090c pid 1000: 400
[116993.449750] scsi host0: usb-storage 1-1:1.0
[116994.838447] scsi 0:0:0:0: Direct-Access     Samsung  Flash Drive      1100 PQ: 0 ANSI: 6
[116994.853016] sd 0:0:0:0: [sda] 62656641 512-byte logical blocks: (32.1 GB/29.9 GiB)
[116994.860307] sd 0:0:0:0: [sda] Write Protect is off
[116994.864188] sd 0:0:0:0: [sda] Mode Sense: 43 00 00 00
[116994.870042] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[116994.888335]  sda:
[116994.893576] sd 0:0:0:0: [sda] Attached SCSI removable disk
1 Like

summary:
ups + cable + windows: works
ups + cable + openwrt: NOT works
another ups + another cable + openwrt: NOT work
pendrive + openwrt: works

watching this data, seems that it is openwrt the problem :frowning:

doubt it... could be a router hardware problem... did you try with OEM firmware?

either way...

  • measure for voltage drop...
  • use a shorter / better sheilded cable
  • use a powered hub in the middle...
  • consult with hardware vendors / docs for more info
1 Like

oem firmware was my next step :slight_smile: even if it required most of the space available...
Ok, you say it is not opewrt, i will try some of other of your suggestion (voltage drop no, I have no instruments).

1 Like

Oem firmware does no change the game...

1 Like

If you have a powered usb hub use it between router and ups.

The 2 devices might just not work well if connected directed for some unknown reasons. I had such situation (with simillar logs in openwrt, sometimes it was dropping the link to 1.1 speeds and that was the only case when it was actually working, but the fallback was not always happening, with the usb hub between problem went away).

If you don't have a powered usb hub I can't really suggest you to buy one because it might just not work even with it between the 2 devices so it will be wasted money...

Why it happens? Hard to tell.
Maybe one of the usb ports is not really following the specifications (design error) or it just is the result of the manufacturing process (barelly passing tests or not tested at all) or powerline for usb/soc dirty (too dirty for it to operate properly).
Without an oscilloscope you will not really figure it out what's wrong, a multimeter is not capable to see spikes that last very few time with a multimeter you see an average, not to mention that you need to check the freqs (a multimeter will help only if something is really really wrong there).

Note:
In my case:

  • problematic device connected to the router running openwrt was showing the problem
  • problematic device connected to a pc running openwrt was not showing the problem
    this can well be a problem with the Linux drivers for the particular SoC of the router, for sure x86 is tested way way better than a router SoC.
1 Like

thanks! I'll evaluate a powered hub... even if it costs more than the router and I choose it for a cheap solution. Buying the hub, maybe a raspberry was cheaper than both...

1 Like

Just tried adding a very old usb hub without external power and... It works!

2 Likes

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.