0

I have a FreeAgent DockStarTM Network Adapter running on a debian Stretch OS with its rootfs partition on an external USB memory stick. Using this Ethernet Gadget tutorial and this USB Mini 5Pin Female to Micro 5Pin Male 90 Degree Angle Adapter to connect a Raspberry Pi Zero (Rpi0) to one of USB ports on the Seagate Dockstar as seen below, I managed to configure my Seagate Dockstar to bring up the usb0 interface (not be confused with a USB connection) as shown below.

Linux debian 4.12.1-kirkwood-tld-1 #1 PREEMPT Sat Jul 15 21:40:50 PDT 2017 armv5tel The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. [Snippet ...] [root@debian:/root 1%] # [root@debian:/root 1%] # [root@debian:/root 1%] # [root@debian:/root 1%] # ifconfig br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.12 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 aaaa:bbbb:cccc:dddd:eee:ffff:gggg:hhhh prefixlen 64 scopeid 0x0<global> inet6 fe80::eee:ffff:gggg:hhhh prefixlen 64 scopeid 0x20<link> ether 00:ee:ff:gg:hh:hh txqueuelen 1000 (Ethernet) RX packets 4534720 bytes 303890824 (289.8 MiB) RX errors 0 dropped 513490 overruns 0 frame 0 TX packets 78953 bytes 5729504 (5.4 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ether 00:ee:ff:gg:hh:hh txqueuelen 1000 (Ethernet) RX packets 5408351 bytes 1311890988 (1.2 GiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 184778 bytes 40172402 (38.3 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 34 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 1481 bytes 135830 (132.6 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1481 bytes 135830 (132.6 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 usb0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ether aa:bb:cc:dd:ee:ff txqueuelen 1000 (Ethernet) RX packets 108087 bytes 33227432 (31.6 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 4949563 bytes 941839751 (898.2 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@debian:/root 2%] # 

As can be seen above, I have br0 (bridge), eth0 (ethernet), lo (locanet), and usb0 (USB) interfaces. On the usb0 interface, its MAC Address is set by Rpi0 as seen in the configuration below.

  1. On my Seagate Dockstar running on a debian Stretch, I edited the /etc/network/interfaces and newly created /etc/network/interfaces.d/br0 files. Their respective contents are shown below.

    Linux debian 4.12.1-kirkwood-tld-1 #1 PREEMPT Sat Jul 15 21:40:50 PDT 2017 armv5tel The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. [Snippet ...] [root@debian:/root 1%] # [root@debian:/root 1%] # [root@debian:/root 1%] # [root@debian:/root 1%] # cat /etc/network/interfaces source /etc/network/interfaces.d/* [root@debian:/root 2%] # [root@debian:/root 2%] # [root@debian:/root 2%] # [root@debian:/root 2%] # cat /etc/network/interfaces.d/br0 ## DHCP ip config file for br0 ## auto br0 # Bridge setup iface br0 inet dhcp bridge_ports eth0 usb0 [root@debian:/root 3%] # [root@debian:/root 3%] # [root@debian:/root 3%] # 
  2. On my Rpi0 running on a Kali Linux, I edited the /etc/network/interfaces, (newly created) /etc/network/interfaces.d/usb0, /boot/config.txt, and /boot/cmdline.txt files. Also, their respective contents are shown below.

    Kali GNU/Linux Rolling Linux kali 4.4.50+ #1 Fri Apr 20 17:13:36 CDT 2018 armv6l The programs included with the Kali GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Kali GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. [snippet ...] [root@kali:/root 1%] # [root@kali:/root 1%] # [root@kali:/root 1%] # [root@kali:/root 1%] # cat /etc/network/interfaces # interfaces(5) file used by ifup(8) and ifdown(8) # Please note that this file is written to be used with dhcpcd # For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf' # Include files from /etc/network/interfaces.d: source-directory /etc/network/interfaces.d [root@kali:/root 2%] # [root@kali:/root 2%] # [root@kali:/root 2%] # [root@kali:/root 2%] # cat /etc/network/interfaces.d/usb0 # used for reverse USB tethering auto usb0 iface usb0 inet dhcp [root@kali:/root 3%] # [root@kali:/root 3%] # [root@kali:/root 3%] # [root@kali:/root 3%] # cat /boot/config.txt [snippet ...] dtoverlay=dwc2 [root@kali:/root 4%] # [root@kali:/root 4%] # [root@kali:/root 4%] # [root@kali:/root 4%] # cat /boot/cmdline.txt dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait modules-load=dwc2,g_ether g_ether.host_addr=aa:bb:cc:dd:ee:ff g_ether.dev_addr=zz:yy:xx:ww:vv:uu [root@kali:/root 5%] # [root@kali:/root 5%] # [root@kali:/root 5%] # [root@kali:/root 5%] # ifconfig lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1 (Local Loopback) RX packets 159 bytes 25424 (24.8 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 159 bytes 25424 (24.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 usb0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.13 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::1870:60ff:febf:22b4 prefixlen 64 scopeid 0x20<link> inet6 aaaa:bbbb:cccc:dddd:1870:60ff:febf:22b4 prefixlen 64 scopeid 0x0<global> ether zz:yy:xx:ww:vv:uu txqueuelen 1000 (Ethernet) RX packets 4971724 bytes 873762261 (833.2 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 108380 bytes 34766768 (33.1 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@kali:/root 7%] # 

So far, my Rpi0 managed to secure a dual-stack of IPv4 (private) and IPv6 (public) Addresses from my router (see above with all IP Addresses disguised). I have no problem to SSH into my Rpi0 from a computer within the same private LAN behind the same router and/or from a computer outside my private LAN with an IPv6. However, if I reboot my Rpi0, it will break the USB connection. In the process of booting up from the reboot, the Rpi0 will try to establish a USB connection with the Seagate Dockstar and this causes the whole rootfs vanishes. So, until I power cycle the Rpi0, I can no longer execute df, ifconfig, ls, etc., except echo and exit. Right before this happens, I managed to dump out messages from dmesg (see below). I don't know if this problem is caused by the g_ether kernel driver. If you know the solution to this issue, I sure would appreciate your help.

[ 34.230399] br0: port 1(eth0) entered forwarding state [ 2878.445740] br0: port 2(usb0) entered disabled state [ 2879.853508] usb 1-1.1: USB disconnect, device number 3 [ 2879.861054] cdc_ether 1-1.1:1.0 usb0: unregister 'cdc_ether' usb-f1050000.ehci-1.1, CDC Ethernet Device [ 2879.873591] br0: port 2(usb0) entered disabled state [ 2879.879683] device usb0 left promiscuous mode [ 2879.884095] br0: port 2(usb0) entered disabled state [ 2889.003579] usb 1-1.1: new high-speed USB device number 5 using orion-ehci [ 2889.026633] usb 1-1-port1: cannot reset (err = -71) [ 2889.035512] usb 1-1-port1: cannot reset (err = -71) [ 2889.044385] usb 1-1-port1: cannot reset (err = -71) [ 2889.053257] usb 1-1-port1: cannot reset (err = -71) [ 2889.062882] usb 1-1-port1: cannot reset (err = -71) [ 2889.068181] usb 1-1-port1: Cannot enable. Maybe the USB cable is bad? [ 2889.079131] usb 1-1-port1: cannot disable (err = -71) [ 2889.088759] usb 1-1-port1: cannot reset (err = -71) [ 2889.098134] usb 1-1-port1: cannot reset (err = -71) [ 2889.107009] usb 1-1-port1: cannot reset (err = -71) [ 2889.115884] usb 1-1-port1: cannot reset (err = -71) [ 2889.124758] usb 1-1-port1: cannot reset (err = -71) [ 2889.129662] usb 1-1-port1: Cannot enable. Maybe the USB cable is bad? [ 2889.140881] usb 1-1-port1: cannot disable (err = -71) [ 2889.157797] usb 1-1-port1: cannot reset (err = -71) [ 2889.169275] usb 1-1-port1: cannot reset (err = -71) [ 2889.191397] usb 1-1-port1: cannot reset (err = -71) [ 2889.208286] usb 1-1-port1: cannot reset (err = -71) [ 2889.220832] usb 1-1-port1: cannot reset (err = -71) [ 2889.236713] usb 1-1-port1: Cannot enable. Maybe the USB cable is bad? [ 2889.258509] usb 1-1-port1: cannot disable (err = -71) [ 2889.278397] usb 1-1-port1: cannot reset (err = -71) [ 2889.287394] usb 1-1-port1: cannot reset (err = -71) [ 2889.296387] usb 1-1-port1: cannot reset (err = -71) [ 2889.305260] usb 1-1-port1: cannot reset (err = -71) [ 2889.314141] usb 1-1-port1: cannot reset (err = -71) [ 2889.319043] usb 1-1-port1: Cannot enable. Maybe the USB cable is bad? [ 2889.330382] usb 1-1-port1: cannot disable (err = -71) [ 2889.335893] usb 1-1-port1: unable to enumerate USB device [ 2889.345383] usb 1-1-port1: cannot disable (err = -71) [root@debian:/root 38%] # dmesg dmesg: Command not found. [root@debian:/root 39%] # 

enter image description here

8
  • I do not understand your setup (have spent 10 minutes). Is it possible that you provide a small connection scheme? ASCII art is sufficient. Commented Sep 16, 2018 at 11:12
  • Sorry about that. All I was trying to do is to make use of an existing USB port on a host device (Seagate Dockstar) to supply a power and data connection. This way, I don't have to waste my money on an A/C power adapter + a USB/Net dongle to connect my Rpi0 to the Internet. I can take a snapshot of the connection, but don't know if I can upload it here. Commented Sep 16, 2018 at 12:29
  • I don't know FreeAgent DockStarTM Network Adapter. I guess it is a peace of hardware and has a FreeAgent Go drive inserted or an USB hard drive attached. On this attached drive is Debian Stretch installed with a Linux bridge configured. I'm right? Commented Sep 16, 2018 at 12:53
  • My Dockstar boots ARM debian Stretch OS installed on a USB memory stick plugged into one of its USB2 ports. Commented Sep 17, 2018 at 2:29
  • The rootfs from the Dockstar is located in RAM? I thought its on an usb stick. Or does it run in a ramdisk, loaded on boot from the usb stick? The RasPi destroys on boot the rootfs on the Dockstar through its USB cable with ethernet emulation and through the bridge on Dockstar? Really? Commented Sep 17, 2018 at 8:46

1 Answer 1

0

As far as I see I would suspect a hardware problem. I seems this Ethernet Gadget of the Raspberry Pi Zero violate the connection of the USB storage where the Seagate Dockstar has its operating system. If this breaks then the Dockstar will not work anymore and you will see the errors you have reported. It cannot find its essential system programs. Try to isolate the problem with a powered USB hub first between RPi0 and Dockstar, then between USB drive and Dockstar and also USB drive and RPi0 both connected to the hub.

If this doesn't help I would use an ethernet to USB dongle or even a Raspberry Pi 3B(+). The price shouldn't make a big difference with all the additional peripherals you need with the RPi0.

2
  • Finally, I managed to borrowed an old 4-port USB v1.1 powered HUB with its AC/DC adapter. When I plugged the HUB into one of USB2 ports on a Seagate Dockstar, it was recognized and enumerated. However, the dmesg utility on the Seagate Dockstar spits out this error message device descriptor read/64, error -110 (and then unable to enumerate USB device) when I plugged an Rpi0 to one of its 4-ports with an external power. I don't know if this is caused by a USB v1.1. Commented Oct 2, 2018 at 15:38
  • A friend gave me this old MediaGear MGTR-500 Digital 10-in-4 Card Reader w/USB Hub. So, I went to place an order for this MOSUNX USB to 3.5mm Barrel Jack Male DC 5v power cable from AliExpress. Regardless if the HUB is powered externally or not, the problem persists. So, this starts to sound like a driver problem. Commented Nov 23, 2018 at 18:28

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.