Eu tentei seguir as instruções mostradas aqui para ter a possibilidade de usar meu Raspberry Pi Zero sem precisar comprar teclado, mouse e monitor usb.
Depois de fazer isso, não consegui usar o Raspberry Pi Zero. A saída que recebi foi:
ssh: Could not resolve hostname raspberrypi.local: Name or service not known
Eu tentei o dmesg e vi o seguinte:
[ 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
Alguém pode esclarecer o que significam esses registros? O extenso googling não produziu resultados para mim.
Estou usando o Ubuntu 16.04.1 LTS de 64 bits em um Lenovo Z50 (roda o Ubuntu, mas um pouco desordenado, que provavelmente é a fonte da maioria dos problemas que tenho neste laptop). Eu também tentei usar um laptop Windows. Isso funcionou depois que eu instalei o software Bonjour da Apple.
A saída do ifconfig diz que não há endereço IP para o dispositivo, então não tenho certeza de como me conectar a ele.
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)
Obrigado!
Atualização:
Cuidado com os arenques vermelhos em tudo abaixo desta linha
OK, então baixei a fonte kernal do linux (última versão estável que é v4.8.11) e fiz alguns grepping.
Descobri que o "Kevent blah pode ter sido eliminado" é lançado em uma função chamada '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);
Eu encontrei usbnet_defer_kevent(dev, EVENT_SET_RX_MODE);
sendo jogado em alguns lugares e acontece que o defini em usbnet.h como # define EVENT_SET_RX_MODE 12
. Ainda não sei o que é o EVENT_SET_RX_MODE
(bem, não o que é suposto enumerar), então se alguém puder ajudar com isso, por favor, faça.
cdc_subset: o teste de blah falhou com o erro blah é chamado em 'really_probe' em drivers / base / dd.c. Parece que o Linux testa os drivers para ver se eles são adequados "sondando" o dispositivo com o driver. Esse é o meu palpite de qualquer maneira. Precisa descobrir o que '-22' e '-16' são.
suspeita : não tenho um driver adequado instalado
Vou continuar martelando mesmo assim.
ps. desculpe pelo conhecimento incoerente de informações aqui. Eu estou meio que usando isso como um bloco de notas para minha própria escavação.