1

I tried following the instructions shown here so that hopefully I would be able to use my Raspberry Pi Zero without buying a usb keyboard, mouse and monitor.

After doing that I was unable to ssh in to the Raspberry Pi Zero. The output I got was:

ssh: Could not resolve hostname raspberrypi.local: Name or service not known

I tried dmesg and saw the following:

[ 2060.683489] usb 2-1: new high-speed USB device number 6 using xhci_hcd
[ 2065.979176] usb 2-1: new high-speed USB device number 7 using xhci_hcd
[ 2066.108051] usb 2-1: New USB device found, idVendor=0525, idProduct=a4a2
[ 2066.108056] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 2066.108058] usb 2-1: Product: RNDIS/Ethernet Gadget
[ 2066.108060] usb 2-1: Manufacturer: Linux 4.4.21+ with 20980000.usb
[ 2066.233624] cdc_subset: probe of 2-1:1.0 failed with error -22
[ 2066.234408] cdc_subset 2-1:1.1 usb0: register 'cdc_subset' at usb-0000:00:14.0-1, Linux Device, 6a:2b:ee:30:07:6e
[ 2066.235273] usbcore: registered new interface driver cdc_subset
[ 2066.236484] cdc_ether: probe of 2-1:1.0 failed with error -16
[ 2066.236507] usbcore: registered new interface driver cdc_ether
[ 2066.238455] cdc_subset 2-1:1.1 enp0s20u1i1: renamed from usb0
[ 2066.264145] IPv6: ADDRCONF(NETDEV_UP): enp0s20u1i1: link is not ready
[ 2066.264275] cdc_subset 2-1:1.1 enp0s20u1i1: kevent 12 may have been dropped
[ 2066.264281] cdc_subset 2-1:1.1 enp0s20u1i1: kevent 12 may have been dropped
[ 2066.264627] cdc_subset 2-1:1.1 enp0s20u1i1: kevent 12 may have been dropped
[ 2066.265568] cdc_subset 2-1:1.1 enp0s20u1i1: kevent 12 may have been dropped
[ 2066.265575] cdc_subset 2-1:1.1 enp0s20u1i1: kevent 12 may have been dropped
[ 2066.274193] cdc_subset 2-1:1.1 enp0s20u1i1: kevent 12 may have been dropped
[ 2111.934891] cdc_subset 2-1:1.1 enp0s20u1i1: kevent 12 may have been dropped
[ 2111.934898] cdc_subset 2-1:1.1 enp0s20u1i1: kevent 12 may have been dropped
[ 2111.936117] cdc_subset 2-1:1.1 enp0s20u1i1: kevent 12 may have been dropped
[ 2111.948226] cdc_subset 2-1:1.1 enp0s20u1i1: kevent 12 may have been dropped
[ 2111.948247] cdc_subset 2-1:1.1 enp0s20u1i1: kevent 12 may have been dropped
[ 2111.948251] cdc_subset 2-1:1.1 enp0s20u1i1: kevent 12 may have been dropped

Can anyone shed any light on what these logs mean? Extensive googling has yeilded no results for me.

I’m using Ubuntu 16.04.1 LTS 64-bit on a Lenovo Z50 (runs Ubuntu but a bit dodgily which is probably the source of most problems I have on this laptop). I have also tried using a Windows laptop. This worked after I installed the Bonjour software from Apple.

The output from the ifconfig says there is no IP address for the device so I’m not sure how I would connect to it.

enp0s20u3 Link encap:Ethernet  HWaddr ce:77:fe:7a:9f:66  
          inet6 addr: fe80::7af9:c911:f518:cede/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:30 errors:0 dropped:0 overruns:0 frame:0
          TX packets:84 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:5660 (5.6 KB)  TX bytes:13989 (13.9 KB)

Thanks!

Update:

Beware of red herrings in everything below this line

OK so I downloaded the linux kernal source (latest stable version which is v4.8.11) and did some grepping.

I found that the "Kevent blah may have been dropped" is thrown in a function called 'usbnet_defer_kevent'.

/* some work can't be done in tasklets, so we use keventd
 *
 * NOTE:  annoying asymmetry:  if it's active, schedule_work() fails,
 * but tasklet_schedule() doesn't.  hope the failure is rare.
 */
void usbnet_defer_kevent (struct usbnet *dev, int work)
{
    set_bit (work, &dev->flags);
    if (!schedule_work (&dev->kevent)) {
        if (net_ratelimit())
            netdev_err(dev->net, "kevent %d may have been dropped\n", work);
    } else {
        netdev_dbg(dev->net, "kevent %d scheduled\n", work);
    }
}
EXPORT_SYMBOL_GPL(usbnet_defer_kevent);

I found usbnet_defer_kevent(dev, EVENT_SET_RX_MODE); being thrown in a few places and it turns out that we have it definied in usbnet.h like so# define EVENT_SET_RX_MODE 12. Not sure what EVENT_SET_RX_MODE is yet though (well. not what it is supposed to enumerate) so if anyone can help with that please do.

cdc_subset: probe of blah failed with error blah is called in 'really_probe' in drivers/base/dd.c. Looks like linux tests drivers to see if they are suitable by 'probing' the device with the driver. That's my guess anyway. Need to find out what '-22' and '-16' are.

suspicion: I don't have a suitable driver installed

I'll keep hammering away at it anyway.

ps. sorry for the incoherant smattering of information here. I'm kind of using this as a notepad for my own digging.

  • The RasperryPi seems to have an IPv6 address assigned. Try to use ssh with IPv6 via ssh -6 fe80::7af9:c911:f518:cede and see if that gets you further. And double check you Pi's hostname, as it could not be resolved (might however also be an IPv4 vs. IPv6 problem). Can you ping the Pi via DNS name? – Fiximan Nov 28 '16 at 12:23
  • Thanks @Fiximan. I tried 'ssh -6 fe80::b1f2:e0c2:fa74:b356' and got 'ssh: connect to host ... Invalid argument'. So after a quick google I tried 'ssh -6 fe80::b1f2:e0c2:fa74:b356%enp0s20u3' and got 'ssh: connect to host fe80::b1f2:e0c2:fa74:b356%enp0s20u3 port 22: Connection refused'. This is the same problem I get if I try after doing 'sudo ifconfig enp0s20u3 some ip address'. I can't ping the pi using the DNS name no. I get 'unknown host' if I try that. Pretty sure that the DNS name should be raspberrypi.local as I got it to work in Windows using that DNS name yesterday. – philmegamega Nov 28 '16 at 12:45
  • You may want to try posting this on the Raspberry Pi SO also (raspberrypi.stackexchange.com). – thephez Nov 28 '16 at 13:23
  • @thephez Good suggestion. Except that I think the fact that I got the connection to work on a Windows laptop indicates that I need to look at my laptop rather than the pi. I'll try posting there if I get no luck here. – philmegamega Nov 28 '16 at 13:33
  • @philmegamega Well, I forgot about the device specification - sorry. May be try skipping the .local in you DNS ping, and AFAIK the device specified would be the LOCAL device from where the connection starts, i.e. your client's device - so maybe check your Ubuntu's ifconfig for the proper device name. (but I am not too familiar with IPv6). Besides that: Crossposting usually is not encouraged .... – Fiximan Nov 28 '16 at 14:20
1

You need to go into the network-manager menu, Edit Connections… and edit the new Ethernet connection (for me it was “Wired connection 2”). Switch to the IPv4 tab, and change the Method to “Link-Local only”. Click Save and then Close.

The usb0 network interface will then get assigned a 169.254.x.y address, and “ssh pi@raspberrypi.local” will work just like it should.

0

I have experienced that the connection is not established correctly due to usb0 being renamed. What worked for me is to ensure that the connection is setup with the usb0 name.

In /etc/network/interfaces i appended the following to the file (you can change your address as it fits you):

auto usb0
iface usb0 inet static
    address 10.9.8.1
    netmask 255.255.255.0
    up iptables -A FORWARD -i usb0 -j ACCEPT
    up iptables -A FORWARD -o usb0 -j ACCEPT
    up iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

To ensure that the usb0 is recognized the following file must be created

/etc/udev/rules.d/70-persistent-net.rules

in the file the following is appended

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="cdc_ether", NAME="usb0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="cdc_eem", NAME="usb0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="cdc_subset", NAME="usb0"

Now the network should be set up correctly on the computer and you should be able to connect to the RPI

  • Thanks for that Rasmus. In the end I just bought an Rpi 3 and just connected through Wifi! I'll have a go with this on the old pi at some point though. – philmegamega Mar 3 '18 at 18:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.