You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It seems the Raspberry Pi Zero has problems with USB ethernet adapters that use the Realtek 8152B chip. More specifically, the adapters cannot be enumerated in a large fraction of boots, if the adapter is connected before the Pi boots. When enumeration fails, the kernel boot log shows:
[ 2.405793] usb 1-1: new high-speed USB device number 2 using dwc_otg
[ 2.693484] usb 1-1: New USB device found, idVendor=1a40, idProduct=0101, bcdDevice= 1.00
[ 2.710902] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[ 2.727159] usb 1-1: Product: USB2.0 HUB
[ 2.745895] hub 1-1:1.0: USB hub found
[ 2.760023] hub 1-1:1.0: 4 ports detected
[ 3.193396] usb 1-1.2: new high-speed USB device number 3 using dwc_otg
[ 8.443463] usb 1-1.2: device descriptor read/64, error -110
[ 8.763439] usb 1-1.2: device descriptor read/64, error -71
[ 9.593715] usb 1-1.2: new high-speed USB device number 4 using dwc_otg
[ 9.873452] usb 1-1.2: device descriptor read/64, error -71
[ 10.203686] usb 1-1-port2: attempt power cycle
[ 11.043456] usb 1-1.2: new full-speed USB device number 5 using dwc_otg
[ 11.603445] usb 1-1.2: device not accepting address 5, error -32
[ 11.903474] usb 1-1.2: new full-speed USB device number 6 using dwc_otg
[ 12.343458] usb 1-1.2: device not accepting address 6, error -32
[ 12.343724] usb 1-1-port2: unable to enumerate USB device
(This is from a combined hub + RTL8152B ethernet adapter)
Full dmesg (click to expand)
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.19.75+ (dom@buildbot) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611)) #1270 Tue Sep 24 18:38:54 BST 2019
[ 0.000000] CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv7), cr=00c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
[ 0.000000] OF: fdt: Machine model: Raspberry Pi Zero Rev 1.3
[ 0.000000] Memory policy: Data cache writeback
[ 0.000000] cma: Reserved 8 MiB at 0x1b400000
[ 0.000000] On node 0 totalpages: 114688
[ 0.000000] Normal zone: 1008 pages used for memmap
[ 0.000000] Normal zone: 0 pages reserved
[ 0.000000] Normal zone: 114688 pages, LIFO batch:31
[ 0.000000] random: get_random_bytes called from start_kernel+0x8c/0x49c with crng_init=0
[ 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: 113680
[ 0.000000] Kernel command line: coherent_pool=1M bcm2708_fb.fbwidth=1824 bcm2708_fb.fbheight=984 bcm2708_fb.fbswap=1 smsc95xx.macaddr=B8:27:EB:86:98:31 vc_mem.mem_base=0x1ec00000 vc_mem.mem_size=0x20000000 console=ttyAMA0,115200 console=tty1 root=PARTUUID=6c586e13-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
[ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 0.000000] Memory: 434424K/458752K available (6973K kernel code, 635K rwdata, 2080K rodata, 464K init, 797K bss, 16136K reserved, 8192K cma-reserved)
[ 0.000000] Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
vmalloc : 0xdc800000 - 0xff800000 ( 560 MB)
lowmem : 0xc0000000 - 0xdc000000 ( 448 MB)
modules : 0xbf000000 - 0xc0000000 ( 16 MB)
.text : 0x(ptrval) - 0x(ptrval) (6975 kB)
.init : 0x(ptrval) - 0x(ptrval) ( 464 kB)
.data : 0x(ptrval) - 0x(ptrval) ( 636 kB)
.bss : 0x(ptrval) - 0x(ptrval) ( 798 kB)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] ftrace: allocating 25197 entries in 74 pages
[ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[ 0.000032] sched_clock: 32 bits at 1000kHz, resolution 1000ns, wraps every 2147483647500ns
[ 0.000094] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275 ns
[ 0.000220] bcm2835: system timer (irq = 27)
[ 0.000637] Console: colour dummy device 80x30
[ 0.001269] console [tty1] enabled
[ 0.001350] Calibrating delay loop... 697.95 BogoMIPS (lpj=3489792)
[ 0.060398] pid_max: default: 32768 minimum: 301
[ 0.060968] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.061027] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.062466] CPU: Testing write buffer coherency: ok
[ 0.063861] Setting up static identity map for 0x8200 - 0x8238
[ 0.065352] devtmpfs: initialized
[ 0.075741] VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 5
[ 0.076209] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.076288] futex hash table entries: 256 (order: -1, 3072 bytes)
[ 0.077663] pinctrl core: initialized pinctrl subsystem
[ 0.079281] NET: Registered protocol family 16
[ 0.082512] DMA: preallocated 1024 KiB pool for atomic coherent allocations
[ 0.089542] hw-breakpoint: found 6 breakpoint and 1 watchpoint registers.
[ 0.089620] hw-breakpoint: maximum watchpoint size is 4 bytes.
[ 0.089803] Serial: AMBA PL011 UART driver
[ 0.093114] bcm2835-mbox 2000b880.mailbox: mailbox enabled
[ 0.136419] bcm2835-dma 20007000.dma: DMA legacy API manager at (ptrval), dmachans=0x1
[ 0.139041] SCSI subsystem initialized
[ 0.139356] usbcore: registered new interface driver usbfs
[ 0.139499] usbcore: registered new interface driver hub
[ 0.139757] usbcore: registered new device driver usb
[ 0.150902] raspberrypi-firmware soc:firmware: Attached to firmware from 2019-09-24 17:37, variant start
[ 0.160927] raspberrypi-firmware soc:firmware: Firmware hash is 6820edeee4ef3891b95fc01cf02a7abd7ca52f17
[ 0.173249] clocksource: Switched to clocksource timer
[ 0.277681] VFS: Disk quotas dquot_6.6.0
[ 0.277867] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 0.278233] FS-Cache: Loaded
[ 0.278611] CacheFiles: Loaded
[ 0.297995] NET: Registered protocol family 2
[ 0.299368] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes)
[ 0.299495] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.299609] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.299731] TCP: Hash tables configured (established 4096 bind 4096)
[ 0.299926] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.299997] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.300458] NET: Registered protocol family 1
[ 0.301613] RPC: Registered named UNIX socket transport module.
[ 0.301678] RPC: Registered udp transport module.
[ 0.301710] RPC: Registered tcp transport module.
[ 0.301738] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.303960] hw perfevents: no irqs for PMU, sampling events not supported
[ 0.304084] hw perfevents: enabled with armv6_1176 PMU driver, 3 counters available
[ 0.308203] Initialise system trusted keyrings
[ 0.308672] workingset: timestamp_bits=14 max_order=17 bucket_order=3
[ 0.323877] FS-Cache: Netfs 'nfs' registered for caching
[ 0.325255] NFS: Registering the id_resolver key type
[ 0.325353] Key type id_resolver registered
[ 0.325389] Key type id_legacy registered
[ 0.325442] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[ 0.331156] Key type asymmetric registered
[ 0.331229] Asymmetric key parser 'x509' registered
[ 0.331368] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250)
[ 0.331893] io scheduler noop registered
[ 0.331951] io scheduler deadline registered (default)
[ 0.332561] io scheduler cfq registered
[ 0.332613] io scheduler mq-deadline registered (default)
[ 0.332650] io scheduler kyber registered
[ 0.335491] bcm2708_fb soc:fb: FB found 1 display(s)
[ 0.382031] Console: switching to colour frame buffer device 228x61
[ 0.415781] bcm2708_fb soc:fb: Registered framebuffer for display 0, size 1824x984
[ 0.420047] bcm2835-rng 20104000.rng: hwrng registered
[ 0.420801] vc-mem: phys_addr:0x00000000 mem_base=0x1ec00000 mem_size:0x20000000(512 MiB)
[ 0.422447] vc-sm: Videocore shared memory driver
[ 0.423596] gpiomem-bcm2835 20200000.gpiomem: Initialised: Registers at 0x20200000
[ 0.447473] brd: module loaded
[ 0.462865] loop: module loaded
[ 0.464232] Loading iSCSI transport class v2.0-870.
[ 0.465608] usbcore: registered new interface driver smsc95xx
[ 0.465855] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
[ 0.494152] dwc_otg 20980000.usb: base=(ptrval)
[ 0.694909] Core Release: 2.80a
[ 0.695090] Setting default values for core params
[ 0.695325] Finished setting default values for core params
[ 0.896094] Using Buffer DMA mode
[ 0.896285] Periodic Transfer Interrupt Enhancement - disabled
[ 0.896515] Multiprocessor Interrupt Enhancement - disabled
[ 0.896735] OTG VER PARAM: 0, OTG VER FLAG: 0
[ 0.897026] Dedicated Tx FIFOs mode
[ 0.898128] WARN::dwc_otg_hcd_init:1045: FIQ DMA bounce buffers: virt = db514000 dma = 0x5b514000 len=9024
[ 0.898538] FIQ FSM acceleration enabled for :
Non-periodic Split Transactions
Periodic Split Transactions
High-Speed Isochronous Endpoints
Interrupt/Control Split Transaction hack enabled
[ 0.899251] dwc_otg: Microframe scheduler enabled
[ 0.899458] WARN::hcd_init_fiq:457: FIQ on core 0
[ 0.908361] WARN::hcd_init_fiq:458: FIQ ASM at c04fdd70 length 36
[ 0.917096] WARN::hcd_init_fiq:497: MPHI regs_base at dc810000
[ 0.926072] dwc_otg 20980000.usb: DWC OTG Controller
[ 0.934832] dwc_otg 20980000.usb: new USB bus registered, assigned bus number 1
[ 0.943992] dwc_otg 20980000.usb: irq 56, io mem 0x00000000
[ 0.952649] Init: Port Power? op_state=1
[ 0.961607] Init: Power Port (0)
[ 0.970774] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.19
[ 0.980169] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 0.989113] usb usb1: Product: DWC OTG Controller
[ 0.998278] usb usb1: Manufacturer: Linux 4.19.75+ dwc_otg_hcd
[ 1.007069] usb usb1: SerialNumber: 20980000.usb
[ 1.017287] hub 1-0:1.0: USB hub found
[ 1.026550] hub 1-0:1.0: 1 port detected
[ 1.036562] dwc_otg: FIQ enabled
[ 1.036581] dwc_otg: NAK holdoff enabled
[ 1.036587] dwc_otg: FIQ split-transaction FSM enabled
[ 1.036610] Module dwc_common_port init
[ 1.037264] usbcore: registered new interface driver usb-storage
[ 1.047134] mousedev: PS/2 mouse device common for all mice
[ 1.057634] bcm2835-wdt bcm2835-wdt: Broadcom BCM2835 watchdog timer
[ 1.067189] bcm2835-cpufreq: min=700000 max=1000000
[ 1.077278] sdhci: Secure Digital Host Controller Interface driver
[ 1.086198] sdhci: Copyright(c) Pierre Ossman
[ 1.096100] sdhost-bcm2835 20202000.mmc: could not get clk, deferring probe
[ 1.105399] sdhci-pltfm: SDHCI platform and OF driver helper
[ 1.115358] ledtrig-cpu: registered to indicate activity on CPUs
[ 1.124467] hidraw: raw HID events driver (C) Jiri Kosina
[ 1.133727] usbcore: registered new interface driver usbhid
[ 1.142798] usbhid: USB HID core driver
[ 1.153350] vchiq: vchiq_init_state: slot_zero = (ptrval), is_master = 0
[ 1.165443] [vc_sm_connected_init]: start
[ 1.178863] [vc_sm_connected_init]: end - returning 0
[ 1.190363] Initializing XFRM netlink socket
[ 1.199695] NET: Registered protocol family 17
[ 1.208791] Key type dns_resolver registered
[ 1.219614] registered taskstats version 1
[ 1.228687] Loading compiled-in X.509 certificates
[ 1.248749] uart-pl011 20201000.serial: cts_event_workaround enabled
[ 1.257668] 20201000.serial: ttyAMA0 at MMIO 0x20201000 (irq = 81, base_baud = 0) is a PL011 rev2
[ 2.159977] console [ttyAMA0] enabled
[ 2.176632] Indeed it is in host mode hprt0 = 00021501
[ 2.243258] random: fast init done
[ 2.263728] sdhost: log_buf @ (ptrval) (5b513000)
[ 2.326473] mmc0: sdhost-bcm2835 loaded - DMA enabled (>1)
[ 2.343954] of_cfs_init
[ 2.376068] of_cfs_init: OK
[ 2.390638] Waiting for root device PARTUUID=6c586e13-02...
[ 2.405793] usb 1-1: new high-speed USB device number 2 using dwc_otg
[ 2.421969] Indeed it is in host mode hprt0 = 00001101
[ 2.559090] mmc0: host does not support reading read-only switch, assuming write-enable
[ 2.583024] mmc0: new high speed SDHC card at address aaaa
[ 2.600043] mmcblk0: mmc0:aaaa SC16G 14.8 GiB
[ 2.621034] mmcblk0: p1 p2
[ 2.659859] EXT4-fs (mmcblk0p2): INFO: recovery required on readonly filesystem
[ 2.676309] EXT4-fs (mmcblk0p2): write access will be enabled during recovery
[ 2.693484] usb 1-1: New USB device found, idVendor=1a40, idProduct=0101, bcdDevice= 1.00
[ 2.710902] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[ 2.727159] usb 1-1: Product: USB2.0 HUB
[ 2.745895] hub 1-1:1.0: USB hub found
[ 2.760023] hub 1-1:1.0: 4 ports detected
[ 3.029613] EXT4-fs (mmcblk0p2): recovery complete
[ 3.048932] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[ 3.066369] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[ 3.095676] devtmpfs: mounted
[ 3.112710] Freeing unused kernel memory: 464K
[ 3.126497] This architecture does not have kernel memory protection.
[ 3.142077] Run /sbin/init as init process
[ 3.193396] usb 1-1.2: new high-speed USB device number 3 using dwc_otg
[ 3.937672] systemd[1]: System time before build time, advancing clock.
[ 4.123026] NET: Registered protocol family 10
[ 4.139641] Segment Routing with IPv6
[ 4.222667] systemd[1]: systemd 241 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid)
[ 4.266019] systemd[1]: Detected architecture arm.
[ 4.332211] systemd[1]: Set hostname to <raspberrypi>.
[ 4.361797] systemd[1]: Failed to bump fs.file-max, ignoring: Invalid argument
[ 6.143916] uart-pl011 20201000.serial: no DMA platform data
[ 6.480801] systemd[1]: File /lib/systemd/system/systemd-journald.service:12 configures an IP firewall (IPAddressDeny=any), but the local system does not support BPF/cgroup based firewalling.
[ 6.508997] systemd[1]: Proceeding WITHOUT firewalling in effect! (This warning is only shown for the first loaded unit using IP firewalling.)
[ 7.529191] random: systemd: uninitialized urandom read (16 bytes read)
[ 7.573746] random: systemd: uninitialized urandom read (16 bytes read)
[ 7.592969] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[ 7.625563] random: systemd: uninitialized urandom read (16 bytes read)
[ 7.652795] systemd[1]: Created slice system-serial\x2dgetty.slice.
[ 7.696660] systemd[1]: Listening on Syslog Socket.
[ 7.727882] systemd[1]: Listening on udev Control Socket.
[ 8.443463] usb 1-1.2: device descriptor read/64, error -110
[ 8.763439] usb 1-1.2: device descriptor read/64, error -71
[ 9.353790] systemd[1]: Started Restore / save the current clock.
[ 9.593715] usb 1-1.2: new high-speed USB device number 4 using dwc_otg
[ 9.621929] systemd[1]: Mounted Kernel Debug File System.
[ 9.793676] systemd[1]: Started Create list of required static device nodes for the current kernel.
[ 9.873452] usb 1-1.2: device descriptor read/64, error -71
[ 9.938179] systemd[1]: Mounted POSIX Message Queue File System.
[ 10.083047] systemd[1]: Mounted RPC Pipe File System.
[ 10.203686] usb 1-1-port2: attempt power cycle
[ 10.244046] systemd[1]: Started Load Kernel Modules.
[ 10.454821] systemd[1]: Mounting Kernel Configuration File System...
[ 10.778091] systemd[1]: Starting Apply Kernel Variables...
[ 10.927379] systemd[1]: Condition check resulted in FUSE Control File System being skipped.
[ 11.043456] usb 1-1.2: new full-speed USB device number 5 using dwc_otg
[ 11.115586] systemd[1]: Starting File System Check on Root Device...
[ 11.603445] usb 1-1.2: device not accepting address 5, error -32
[ 11.903474] usb 1-1.2: new full-speed USB device number 6 using dwc_otg
[ 12.343458] usb 1-1.2: device not accepting address 6, error -32
[ 12.343724] usb 1-1-port2: unable to enumerate USB device
[ 12.543498] usb 1-1.4: new full-speed USB device number 7 using dwc_otg
[ 12.795311] usb 1-1.4: New USB device found, idVendor=045e, idProduct=0800, bcdDevice= 9.44
[ 12.795342] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 12.795360] usb 1-1.4: Product: Microsoft® Nano Transceiver v2.0
[ 12.795373] usb 1-1.4: Manufacturer: Microsoft
[ 12.814985] input: Microsoft Microsoft® Nano Transceiver v2.0 as /devices/platform/soc/20980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/0003:045E:0800.0001/input/input0
[ 12.885042] hid-generic 0003:045E:0800.0001: input,hidraw0: USB HID v1.11 Keyboard [Microsoft Microsoft® Nano Transceiver v2.0] on usb-20980000.usb-1.4/input0
[ 12.915521] input: Microsoft Microsoft® Nano Transceiver v2.0 Mouse as /devices/platform/soc/20980000.usb/usb1/1-1/1-1.4/1-1.4:1.1/0003:045E:0800.0002/input/input1
[ 12.916400] input: Microsoft Microsoft® Nano Transceiver v2.0 Consumer Control as /devices/platform/soc/20980000.usb/usb1/1-1/1-1.4/1-1.4:1.1/0003:045E:0800.0002/input/input2
[ 12.916813] hid-generic 0003:045E:0800.0002: input,hidraw1: USB HID v1.11 Mouse [Microsoft Microsoft® Nano Transceiver v2.0] on usb-20980000.usb-1.4/input1
[ 12.954301] input: Microsoft Microsoft® Nano Transceiver v2.0 Consumer Control as /devices/platform/soc/20980000.usb/usb1/1-1/1-1.4/1-1.4:1.2/0003:045E:0800.0003/input/input3
[ 13.024062] input: Microsoft Microsoft® Nano Transceiver v2.0 System Control as /devices/platform/soc/20980000.usb/usb1/1-1/1-1.4/1-1.4:1.2/0003:045E:0800.0003/input/input5
[ 13.025381] hid-generic 0003:045E:0800.0003: input,hiddev96,hidraw2: USB HID v1.11 Device [Microsoft Microsoft® Nano Transceiver v2.0] on usb-20980000.usb-1.4/input2
[ 13.074480] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[ 13.879809] systemd-journald[88]: Received request to flush runtime journal from PID 1
[ 16.473938] random: crng init done
[ 16.473967] random: 7 urandom warning(s) missed due to ratelimiting
[ 16.805140] vc_sm_cma: module is from the staging directory, the quality is unknown, you have been warned.
[ 16.808865] bcm2835_vc_sm_cma_probe: Videocore shared memory driver
[ 16.808935] [vc_sm_connected_init]: start
[ 16.811628] media: Linux media interface: v0.10
[ 16.855277] [vc_sm_connected_init]: installed successfully
[ 17.074267] videodev: Linux video capture interface: v2.00
[ 17.248445] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[ 17.285095] bcm2835_v4l2: module is from the staging directory, the quality is unknown, you have been warned.
[ 17.444503] bcm2835_codec: module is from the staging directory, the quality is unknown, you have been warned.
[ 17.553587] bcm2835-codec bcm2835-codec: Device registered as /dev/video10
[ 17.553694] bcm2835-codec bcm2835-codec: Loaded V4L2 decode
[ 17.601936] bcm2835-codec bcm2835-codec: Device registered as /dev/video11
[ 17.602011] bcm2835-codec bcm2835-codec: Loaded V4L2 encode
[ 17.633489] bcm2835-codec bcm2835-codec: Device registered as /dev/video12
[ 17.633552] bcm2835-codec bcm2835-codec: Loaded V4L2 isp
[ 18.230550] snd_bcm2835: module is from the staging directory, the quality is unknown, you have been warned.
[ 18.393975] bcm2835_audio soc:audio: card created with 8 channels
[ 32.064113] 8021q: 802.1Q VLAN Support v1.8
[ 32.716639] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 33.276560] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 33.943336] Adding 102396k swap on /var/swap. Priority:-2 extents:1 across:102396k SSFS
Full lsusb when enumeration **fails** (most boots) (click to expand)
Bus 001 Device 007: ID 045e:0800 Microsoft Corp.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x045e Microsoft Corp.
idProduct 0x0800
bcdDevice 9.44
iManufacturer 1
iProduct 2
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0054
bNumInterfaces 3
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 1 Keyboard
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 57
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 2 Mouse
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 223
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x000a 1x 10 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 319
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0020 1x 32 bytes
bInterval 1
Bus 001 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 9 Hub
bDeviceSubClass 0
bDeviceProtocol 1 Single TT
bMaxPacketSize0 64
idVendor 0x1a40 Terminus Technology Inc.
idProduct 0x0101 Hub
bcdDevice 1.00
iManufacturer 0
iProduct 1
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0019
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0001 1x 1 bytes
bInterval 12
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 9 Hub
bDeviceSubClass 0
bDeviceProtocol 1 Single TT
bMaxPacketSize0 64
idVendor 0x1d6b Linux Foundation
idProduct 0x0002 2.0 root hub
bcdDevice 4.19
iManufacturer 3
iProduct 2
iSerial 1
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0019
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 12
Full lsusb when enumeration **works** (few boots or if connected after / at late stage of boot) (click to expand)
Bus 001 Device 004: ID 045e:0800 Microsoft Corp.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x045e Microsoft Corp.
idProduct 0x0800
bcdDevice 9.44
iManufacturer 1
iProduct 2
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0054
bNumInterfaces 3
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 1 Keyboard
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 57
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 2 Mouse
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 223
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x000a 1x 10 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 319
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0020 1x 32 bytes
bInterval 1
Bus 001 Device 003: ID 0bda:8152 Realtek Semiconductor Corp. RTL8152 Fast Ethernet Adapter
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.10
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x0bda Realtek Semiconductor Corp.
idProduct 0x8152 RTL8152 Fast Ethernet Adapter
bcdDevice 20.00
iManufacturer 1
iProduct 2
iSerial 3
bNumConfigurations 2
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0027
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 1x 2 bytes
bInterval 8
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0050
bNumInterfaces 2
bConfigurationValue 2
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 2 Communications
bInterfaceSubClass 6 Ethernet Networking
bInterfaceProtocol 0
iInterface 5
CDC Header:
bcdCDC 1.10
CDC Union:
bMasterInterface 0
bSlaveInterface 1
CDC Ethernet:
iMacAddress 3 (??)
bmEthernetStatistics 0x00000000
wMaxSegmentSize 1514
wNumberMCFilters 0x0000
bNumberPowerFilters 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 8
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 2
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 4
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Bus 001 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 9 Hub
bDeviceSubClass 0
bDeviceProtocol 1 Single TT
bMaxPacketSize0 64
idVendor 0x1a40 Terminus Technology Inc.
idProduct 0x0101 Hub
bcdDevice 1.00
iManufacturer 0
iProduct 1
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0019
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0001 1x 1 bytes
bInterval 12
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 9 Hub
bDeviceSubClass 0
bDeviceProtocol 1 Single TT
bMaxPacketSize0 64
idVendor 0x1d6b Linux Foundation
idProduct 0x0002 2.0 root hub
bcdDevice 4.19
iManufacturer 3
iProduct 2
iSerial 1
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0019
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 12
What speaks agains this being a fault of the specific dongle or Pi I use:
I tested this with four different adapter designs, all using the Realtek 8152B chip. Three were hubs with included ethernet adapter (all using different hub chips: SL Chip SL2.2s, HS8836A, MW7250), one was a standalone adapter.
The adapters work even if connected before boot, on rare occasions
The adapters work if connected after boot or a few seconds after booting has started
The same products work fine with Debian with Raspberry Pi Desktop on a MacBook (even when connected before booting)
How to reproduce the bug:
The error shows on most boots, but not all of them. I found this procedure is most likely to lead to the error:
Cut the Raspberry Pi Zero's power
Connect an ethernet cable to the Realtek 8152B based adapter
Connect the Realtek 8152B based adapter to the Pi (via OTG adapter and optionally, a hub)
Power on the Raspberry Pi Zero
If the boot log doesn't show a -110 enumeration error at some point:
5a. Cut the Pi's power, wait 5 seconds, power up again, goto 5
Boot log shows enumeration error for 8152B ethernet adapter, and it doesn't show in lsusb
Please note I'm using a read-only image in my production setup, so cutting power on a default image is just used for the purpose of chasing this bug.
Expected behaviour:
I'd expect RTL8152B based adapters to correctly enumerate at all boots.
Actual behaviour:
RTL8152B based adapters only enumerate correctly in about 2-3 out of 10 boots.
Setup:
Used image: Newest Raspbian Lite image (2019-09-26) from RPi website (tried older ones as well) Used kernel: Linux raspberrypi 4.19.75+ #1270 Tue Sep 24 18:38:54 BST 2019 armv6l GNU/Linux (also tried with older kernels) Tested Pis: Pi Zero, Pi Zero W Power supplies: Tested 2 different supplies + powering hubs (if they had a barrel connector socket) Connection: RTL8152B connected to Pi via USB OTG adapter (tested 3 different ones) and optional hub (tested 3 different chips + no hub).
What I have tried:
I tried a bunch of different USB-related kernel settings and USB quirks, all to no avail. Please note I could only apply the quirks to the hub that sat between Pi and RTL8152B, since obviously the kernel can only apply quirks after it knows what device it’s dealing with, ie enumeration succeeded.
Use the dwc2 driver via a overlay in /boot/config.txt
dwc_otg.speed=1
usbcore.old_scheme_first=1
usbcore.initial_descriptor_timeout=10000
USB_QUIRK_NO_LPM on hub between Pi and RTL8152B (via usbcore.quirks)
USB_QUIRK_RESET_RESUME on hub (via usbcore.quirks)
USB_QUIRK_RESET on hub (via usbcore.quirks)
USB_QUIRK_DELAY_INIT on hub (via usbcore.quirks)
USB_QUIRK_LINEAR_FRAME_INTR_BINTERVAL on hub (via usbcore.quirks)
USB_QUIRK_LINEAR_UFRAME_INTR_BINTERVAL on hub (via usbcore.quirks)
USB_QUIRK_HUB_SLOW_RESET on hub (via usbcore.quirks)
I didn't try any dwc_otg.fiq_* flags, since even the dwc2 module didn't work, and that one doesn't include any of the fiq code IIRC.
Please let me know if there are any more kernel flags or experiments you want me to try!
If you're willing to investigate this issue, I can send you one of these failing adapters. Just tell me what address to send it to.
The text was updated successfully, but these errors were encountered:
An additional note: I have one RTL8152B adapter (included in a hub, design differs from any of the others) that does work reliably. I already visually compared the PCBs, but couldn't find any difference that sticked out. Anyway, the majority of RTL8152B adapter designs shows the reported flaw with the Pi Zero, while they work fine with any other computer I tried.
I have a RTL8152 and tried cold booting (overlay FS, so it's fine), but didn't have any enumeration failures yet. Have you gotten this error recently on the newest Raspbian?
Uh oh!
There was an error while loading. Please reload this page.
It seems the Raspberry Pi Zero has problems with USB ethernet adapters that use the Realtek 8152B chip. More specifically, the adapters cannot be enumerated in a large fraction of boots, if the adapter is connected before the Pi boots. When enumeration fails, the kernel boot log shows:
(This is from a combined hub + RTL8152B ethernet adapter)
Full dmesg (click to expand)
Full lsusb when enumeration **fails** (most boots) (click to expand)
Full lsusb when enumeration **works** (few boots or if connected after / at late stage of boot) (click to expand)
What speaks agains this being a fault of the specific dongle or Pi I use:
How to reproduce the bug:
The error shows on most boots, but not all of them. I found this procedure is most likely to lead to the error:
5a. Cut the Pi's power, wait 5 seconds, power up again, goto 5
Please note I'm using a read-only image in my production setup, so cutting power on a default image is just used for the purpose of chasing this bug.
Expected behaviour:
I'd expect RTL8152B based adapters to correctly enumerate at all boots.
Actual behaviour:
RTL8152B based adapters only enumerate correctly in about 2-3 out of 10 boots.
Setup:
Used image: Newest Raspbian Lite image (2019-09-26) from RPi website (tried older ones as well)
Used kernel: Linux raspberrypi 4.19.75+ #1270 Tue Sep 24 18:38:54 BST 2019 armv6l GNU/Linux (also tried with older kernels)
Tested Pis: Pi Zero, Pi Zero W
Power supplies: Tested 2 different supplies + powering hubs (if they had a barrel connector socket)
Connection: RTL8152B connected to Pi via USB OTG adapter (tested 3 different ones) and optional hub (tested 3 different chips + no hub).
What I have tried:
I tried a bunch of different USB-related kernel settings and USB quirks, all to no avail. Please note I could only apply the quirks to the hub that sat between Pi and RTL8152B, since obviously the kernel can only apply quirks after it knows what device it’s dealing with, ie enumeration succeeded.
Please let me know if there are any more kernel flags or experiments you want me to try!
If you're willing to investigate this issue, I can send you one of these failing adapters. Just tell me what address to send it to.
The text was updated successfully, but these errors were encountered: