รับการปล่อยสัญญาณผ่าน USB จากอุปกรณ์ Android เพื่อให้ทำงานบน Debian 8


13

ฉันกำลังพยายามดึงข้อมูล USB ให้ทำงานระหว่างโทรศัพท์ Nexus 5 (เรียกใช้ CM11) กับเดสก์ท็อปที่ใช้ Debian 8 ฉันเชื่อมต่อโทรศัพท์กับคอมพิวเตอร์ผ่าน USB และได้รับข้อความเหล่านี้:

[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

หลังจากเปิดใช้งานการปล่อยสัญญาณอินเทอร์เน็ตบนโทรศัพท์ฉันก็จะได้รับเพิ่มเติม:

[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

อุปกรณ์ดังกล่าวยังถูกระบุไว้โดยlsusbแม้ว่าเป็น Nexus 4:

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

(นั่นเป็นปัญหาหรือไม่)

อย่างไรก็ตามฉันไม่ได้รับอินเตอร์เฟซเครือข่าย usb0 หรืออย่างอื่นที่อาจเป็นไปได้ ifconfigรายการเฉพาะการเชื่อมต่อปัจจุบันก่อนหน้านี้ซึ่งเป็นeth0, loเช่นเดียวกับสองtunอุปกรณ์ให้โดย OpenVPN

ฉันค้นหาสาเหตุที่เป็นไปได้ซึ่งไม่สามารถใช้งานได้ แต่พวกมันหมุนรอบเคอร์เนลที่เก่าเกินไป (จาก 2.6 วัน) เคอร์เนลของฉันคือ 3.16.0 ซึ่งฉันจะถือว่ารองรับการปล่อยสัญญาณผ่าน USB ฉันยังจำได้ว่าฉันได้รับการปล่อยสัญญาณ USB เพื่อใช้งานกับโทรศัพท์ Sony Ericsson เพียงแค่เชื่อมต่อและนั่นก็เป็นปีที่แล้ว

เท่าที่ฉันสามารถบอกได้โมดูลเคอร์เนลที่เกี่ยวข้องทั้งหมดจะถูกโหลด:

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

ฉันต้องทำอย่างไรเพื่อรับอินเตอร์เฟสเครือข่าย usb0


อัปเดต:ฉันลองในคอมพิวเตอร์เครื่องอื่นที่ใช้ Debian 8 และใช้งานได้ เท่าที่ผมสามารถบอกความแตกต่างคือว่าทั้งสองโมดูลอื่น ๆ จะถูกโหลด: และrndis_wlan miiอย่างไรก็ตามแม้ว่าการโหลดโมดูลเหล่านี้ด้วยตนเองผ่านทางmodprobeดูเหมือนว่าจะทำงานโดยไม่มีข้อผิดพลาดusb0จะยังคงหายไป

หลังจากที่บาง googling ip linkฉันพบว่าฉันควรจะได้รับข้อมูลเกี่ยวกับเครือข่ายโดยใช้อินเตอร์เฟซ ผลลัพธ์คือ:

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

ดังนั้นจึงปรากฏว่าusb0มีอยู่หลังจากทั้งหมด ฉันลองแล้วifup usb0แต่มันก็บอกว่า

Ignoring unknown interface usb0=usb0.

ฉันทำทุกสิ่งด้วย Nexus 7 (รุ่นที่ 1) ด้วยผลลัพธ์เดียวกัน

คำตอบ:


9

ตกลงฉันคิดว่ามันปรากฏออกมา คำสั่งเหล่านี้ทำให้มันทำงาน:

ip link set usb0 up
dhclient usb0

พอแปลกก็ifup usb0ยังบอกฉันว่าอินเตอร์เฟสนี้ไม่เป็นที่รู้จักและ: ก่อนที่จะทำงานdhclientไม่ใช่แม้แต่ping 8.8.8.8งาน

ฉันยังคงสนใจที่จะรู้ว่าฉันจะทำสิ่งนี้โดยอัตโนมัติอย่างไรหรือเหตุใดจึงเกิดขึ้นโดยอัตโนมัติในการติดตั้ง Debian 8 อีกเครื่อง


1
"ifup usb0 ยังบอกฉันว่าส่วนต่อประสานนี้ไม่เป็นที่รู้จัก" - ดังนั้นฉันเดาว่านี่จะไม่ประสบความสำเร็จ ทำไมคำถามนี้ถูกทำเครื่องหมายเป็นคำตอบที่ถูกต้องและคุณค้นพบสิ่งอื่นตั้งแต่นั้นมา? ฉันต้องการตั้งค่าการเชื่อมต่อเครือข่ายผ่านการดีบัก USB เนื่องจาก adb ไม่สามารถพอร์ตส่งต่อพอร์ต UDP ได้ (สามารถพอร์ตไปข้างหน้าและย้อนกลับพอร์ตไปข้างหน้า TCP ได้) ดังนั้นฉันจึงสนใจอย่างยิ่งที่จะทำสิ่งนี้ให้สำเร็จ
Csaba Toth

1
แม้แต่ip link set usb0 upผลผลิตทำให้Cannot find device "usb0"ฉัน: /
Csaba Toth

แทนที่usb0ด้วยชื่ออุปกรณ์ของคุณ คุณสามารถค้นหาได้โดยเปรียบเทียบผลลัพธ์ของคำสั่งip linkก่อนและหลังเสียบในอุปกรณ์ Android ของคุณและเปิดใช้งานการปล่อยสัญญาณ USB หลังจากเสียบและเปิดใช้งานการปล่อยสัญญาณ USB บรรทัดสุดท้ายควรอ่าน37: usb0: <BROADCAST,MULTICAST> ...ดังนี้ ชื่อหลังจากหมายเลขควรเป็นอุปกรณ์ที่คุณกำลังมองหา
v.tralala

2

เพิ่มลงใน/etc/network/interfacesไฟล์ config:

auto usb0
allow-hotplug usb0
iface usb0 inet dhcp

และหลังจากรีบูตเครื่อง

sudo ifconfig usb0 up

หากระบบของคุณเป็น Ubuntu หลังจาก 16.04 คุณอาจต้องเปลี่ยนชื่อของอินเทอร์เฟซ:

auto enusb01
allow-hotplug enusb01
iface enusb01 inet dhcp

และหลังจากรีบูตเครื่อง

sudo ifconfig enusb01 up

หากไม่มีงานใดลองดูรายการด้วยifconfig -a | grep Linkและลองเมานต์ที่เกี่ยวข้องขึ้นมาหรือทำตามขั้นตอนด้านบนแล้วเมานต์นั้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.