Bir Ahududu Pi Sıfırına USB ile bir Ubuntu dizüstü bilgisayara nasıl bağlanır?


1

Burada gösterilen talimatları izlemeye çalıştım , böylece umarım bir Raspberry Pi Zero'yu bir usb klavye, fare ve monitör almadan kullanabilecektim.

Bunu yaptıktan sonra Ahududu Pi Zero'ya giremedim. Elimdeki çıktı şuydu:

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

Dmesg'i denedim ve aşağıdakileri gördüm:

[ 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

Birisi bu kayıtların ne anlama geldiğine ışık tutabilir mi? Geniş googling, benim için hiçbir sonuç vermedi.

Bir Lenovo Z50'de Ubuntu 16.04.1 LTS 64-bit kullanıyorum (Ubuntu kullanıyor ama biraz da tehlikeli. Ayrıca bir Windows dizüstü bilgisayar kullanmayı da denedim. Bu, Bonjour yazılımını Apple'dan yükledikten sonra çalıştı.

İfconfig'den gelen çıktı aygıt için IP adresi olmadığını söylüyor, bu yüzden nasıl bağlanacağımdan emin değilim.

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)

Teşekkürler!

Güncelleme:

Bu çizginin altındaki her şeyde kırmızı ringalardan kaçının

Tamam, bu yüzden linux çekirdek kaynağını indirdim (v4.8.11 olan son kararlı sürüm) ve biraz grepping yaptım.

'Usbent_defer_kevent' adlı bir fonksiyonda "Kevent falan düşürülmüş" atıldığını öğrendim.

/* 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);

usbnet_defer_kevent(dev, EVENT_SET_RX_MODE);Birkaç yerde atıldığını buldum ve usbnet.h'de tanımladığımız ortaya çıktı # define EVENT_SET_RX_MODE 12. Henüz ne olduğundan emin değil EVENT_SET_RX_MODE(peki. Numaralandırılması gereken şey değil) bu yüzden eğer biri yardım edebilirse lütfen yap.

cdc_subset: prob vesaire hatası ile başarısız filan sürücüleri / baz / dd.c içinde 'really_probe' de denir. Linux, sürücüleri sürücüye uygun şekilde algılayarak uygun olup olmadıklarını test ediyor gibi görünüyor. Zaten benim tahminim bu. '-22' ve '-16' öğelerinin ne olduğunu bulmanız gerekir.

şüphesi : Yüklenmiş uygun bir sürücüm yok

Yine de çekiçlemeye devam edeceğim.

ps. bilgi sahibi buradaki rahatsız edici şeyler için üzgünüm. Bunu kendi araştırmam için not defteri olarak kullanıyorum.


RasperryPi, atanmış bir IPv6 adresine sahip gibi görünüyor. sshIPv6 ile kullanmaya çalışın ssh -6 fe80::7af9:c911:f518:cedeve bunun sizi daha da ileriye götürdüğünü görün. Çözümlenemediğinden Pi'nin ana bilgisayar adını da iki kez kontrol edin (ancak IPv4'e karşı IPv6 sorunu da olabilir). Pi'yi DNS adıyla pingleyebilir misiniz?
Fiximan

@Fiximan teşekkürler. 'Ssh -6 fe80 :: b1f2: e0c2: fa74: b356' 'yı denedim ve' ssh: ana bilgisayara bağlanın ... Geçersiz tartışma '. Hızlı bir google’dan sonra 'ssh -6 fe80 :: b1f2: e0c2: fa74: b356% enp0s20u3' denedim ve 'ssh: host fe80 :: b1f2: e0c2: fa74: b356% enp0s20u3 bağlantı noktası 22: bağlantı reddedildi' konusunu kullandım . Bu, 'sudo ifconfig enp0s20u3 bazı ip adreslerini ' yaptıktan sonra denediğimde aldığım aynı problem . DNS adını kullanarak ping yapamıyorum. Bunu denersem, 'bilinmeyen ev sahibi' alıyorum. Dün DNS adını kullanarak Windows'ta çalışmasını sağladığımdan, DNS adının raspberrypi.local olması gerektiğinden eminim.
philmegamega

Bunu ayrıca Raspberry Pi SO'da da göndermeyi deneyebilirsiniz ( raspberrypi.stackexchange.com ).
thephez kas

@ thephez İyi öneri. Bunun dışında bir Windows dizüstü bilgisayarda çalışmak için bağlantıya sahip olduğum gerçeğinin, pi yerine dizüstü bilgisayarıma bakmam gerektiğini gösterdiğini düşünüyorum. Şansım yavermezse, oraya göndermeyi deneyeceğim.
philmegamega

@ philmegamega Şey, cihazın özelliklerini unuttum - üzgünüm. .localDNS ping'inizi atlamayı deneyebilirsiniz ve AFAIK, belirtilen cihaz bağlantının başladığı yerden, yani müşterinizin cihazından gelen YEREL cihaz olacaktır, yani müşterinizin cihazı - Ubuntu'nuza ifconfiguygun cihaz adını kontrol edin . (ancak IPv6 ile pek aşina değilim). Bunun yanı sıra: Crossposting genellikle teşvik edilmez ....
Fiximan

Yanıtlar:


1

Ağ yöneticisi menüsüne, Bağlantıları Düzenle… 'ye girmeniz ve yeni Ethernet bağlantısını düzenlemeniz gerekir (benim için “Kablolu bağlantı 2” idi). IPv4 sekmesine geçin ve Yöntemi “Sadece Yerel Bağlantı” olarak değiştirin. Kaydet'e ve ardından Kapat'a tıklayın.

Daha sonra usb0 ağ arayüzüne 169.254.xy adresi atanacak ve “ssh pi@raspberrypi.local” tam olması gerektiği gibi çalışacaktır.


0

USB0'ın yeniden adlandırılmasından dolayı bağlantının doğru kurulmadığını gördüm. Benim için çalıştı, bağlantının usb0 adıyla kurulmasını sağlamak.

/ Etc / network / interfaces içinde aşağıdakileri ekledim (adresinizi istediğiniz gibi değiştirebilirsiniz):

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

Usb0'ın tanınmasını sağlamak için aşağıdaki dosya oluşturulmalıdır

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

dosyada aşağıdaki eklenir

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"

Şimdi ağ bilgisayarda doğru bir şekilde kurulmalı ve RPI’ye bağlanabilmelisiniz


Bunun için teşekkürler Rasmus. Sonunda ben sadece bir Rpi 3 satın aldı ve sadece Wifi üzerinden bağlı! Bununla birlikte, eski pi'ye bununla devam edeceğim.
philmegamega
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.