Nhận kết nối USB từ thiết bị Android để hoạt động trên Debian 8


13

Tôi đang cố gắng để kết nối USB hoạt động giữa điện thoại Nexus 5 (chạy CM11) và máy tính để bàn của tôi chạy Debian 8. Tôi đã kết nối điện thoại với máy tính qua USB và nhận được các tin nhắn này:

[14972.580738] usb 3-2: new high-speed USB device number 6 using xhci_hcd
[14972.709236] usb 3-2: New USB device found, idVendor=18d1, idProduct=4ee3
[14972.709239] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[14972.709240] usb 3-2: Product: Nexus 5
[14972.709242] usb 3-2: Manufacturer: LGE
[14972.709243] usb 3-2: SerialNumber: 04a0ba5813aff0d4

Sau khi bật tính năng chia sẻ kết nối qua USB trên điện thoại, tôi cũng nhận được:

[14972.710663] rndis_host 3-2:1.0 usb0: register 'rndis_host' at usb-0000:00:14.0-2, RNDIS device, 02:04:67:3f:31:35

Thiết bị cũng được liệt kê bởi lsusb, mặc dù là Nexus 4:

Bus 003 Device 006: ID 18d1:4ee3 Google Inc. Nexus 4 (tether)

(Đó có phải là vấn đề không?)

Tuy nhiên, tôi không có giao diện mạng usb0 hoặc bất cứ thứ gì khác có thể là nó. ifconfigchỉ liệt kê các giao diện hiện trước đây, đó là eth0, locũng như hai tunthiết bị được cung cấp bởi OpenVPN.

Tôi đã tìm kiếm những lý do có thể không hoạt động, nhưng chúng xoay quanh một hạt nhân quá cũ (từ 2,6 ngày). Hạt nhân của tôi là 3.16.0, mà tôi cho rằng sẽ hỗ trợ kết nối USB. Tôi cũng nhớ rằng tôi đã kết nối USB để hoạt động với điện thoại Sony Ericsson chỉ bằng cách kết nối với nó và đó là cách đây nhiều năm.

Theo như tôi có thể nói, tất cả các mô-đun hạt nhân có liên quan đều được tải:

rndis_host             12698  0 
cdc_ether              12564  1 rndis_host
usbnet                 30844  2 rndis_host,cdc_ether
usbcore               195340  8 xpad,rndis_host,ehci_hcd,ehci_pci,usbhid,usbnet,xhci_hcd,cdc_ether
usb_common             12440  1 usbcore

Tôi phải làm gì để có được giao diện mạng usb0?


Cập nhật: Tôi đã thử điều này trên một máy tính khác chạy Debian 8 và nó đã hoạt động. Theo như tôi có thể nói, sự khác biệt là hai mô-đun khác được tải: rndis_wlanmii. Tuy nhiên, mặc dù tải các mô-đun này bằng tay thông qua modprobedường như hoạt động mà không có lỗi, usb0vẫn còn thiếu.

Sau một vài lần googling tôi thấy rằng tôi nên lấy thông tin về giao diện mạng bằng cách sử dụng ip link. Đầu ra là:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 30:85:a9:f6:24:cd brd ff:ff:ff:ff:ff:ff
31: tun1: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 100
    link/none 
32: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 100
    link/none 
37: usb0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 0e:21:59:43:d3:ca brd ff:ff:ff:ff:ff:ff

Vì vậy, nó xuất hiện mà usb0tồn tại sau khi tất cả. Sau đó tôi đã thử ifup usb0, nhưng nó nói

Ignoring unknown interface usb0=usb0.

Tôi cũng đã làm tất cả mọi thứ với Nexus 7 (thế hệ 1), với kết quả tương tự.

Câu trả lời:


9

Ok, có vẻ như tôi đã tìm ra nó. Các lệnh này làm cho nó hoạt động:

ip link set usb0 up
dhclient usb0

Thật kỳ lạ, ifup usb0vẫn nói với tôi rằng giao diện này là không xác định, và: trước khi chạy dhclient, thậm chí không phải là một ping 8.8.8.8tác phẩm.

Tôi vẫn muốn biết làm thế nào tôi có thể tự động hóa việc này hoặc tại sao điều này xảy ra tự động trên bản cài đặt Debian 8 khác.


1
"Ifup usb0 vẫn cho tôi biết rằng giao diện này chưa được biết" - vì vậy tôi đoán rằng điều này không thành công. Tại sao câu hỏi này được đánh dấu là câu trả lời đúng, và bạn đã tìm ra điều gì khác kể từ đó? Tôi muốn thiết lập kết nối mạng qua gỡ lỗi USB vì adb chưa thể chuyển tiếp cổng UDP (mặc dù nó có thể chuyển tiếp và đảo ngược cổng chuyển tiếp TCP). Vì vậy, tôi sẽ rất thích làm thế nào để thực hiện điều này
Csaba Toth

1
ip link set usb0 upSản lượng thậm chí Cannot find device "usb0"hình thành tôi: /
Csaba Toth

thay thế usb0bằng tên thiết bị của bạn. Bạn có thể tìm thấy nó bằng cách so sánh đầu ra của lệnh ip linktrước và sau khi cắm vào thiết bị Android của bạn và kích hoạt kết nối USB. Sau khi cắm và kích hoạt kết nối USB, dòng cuối cùng sẽ đọc một cái gì đó như 37: usb0: <BROADCAST,MULTICAST> .... Tên ngay sau số nên là thiết bị bạn đang tìm kiếm.
v.tralala

2

Thêm phần này vào /etc/network/interfacestập tin cấu hình:

auto usb0
allow-hotplug usb0
iface usb0 inet dhcp

và sau khi khởi động lại

sudo ifconfig usb0 up

Nếu hệ thống của bạn là Ubuntu sau 16.04, bạn có thể cần phải thay đổi tên của giao diện:

auto enusb01
allow-hotplug enusb01
iface enusb01 inet dhcp

và sau khi khởi động lại

sudo ifconfig enusb01 up

Nếu không có tác phẩm nào cố gắng xem danh sách với ifconfig -a | grep Linkvà sau đó thử gắn cái có liên quan lên hoặc thực hiện các bước ở trên rồi gắn nó lên.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.