การถ่ายโอนข้อมูลแบบ USB เป็น USB ระหว่าง Linux OS สองเครื่องนั้นเป็นไปได้หรือไม่?


26

ฉันต้องการสร้างระบบการถ่ายโอนข้อมูลแบบ USB เป็น USB ใน Linux (ควรเป็น Ubuntu) สำหรับสิ่งนี้ฉันต้องการใช้ฮาร์ดแวร์หรือสวิทช์ภายนอก ( ยกเว้นสายเคเบิลนี้ ) มันจะเหมือนกับการติดตั้งไดรฟ์ USB เข้ากับระบบ แต่ในสถานการณ์นี้หนึ่งในระบบ Linux จะถูกติดตั้งบนอีกระบบหนึ่ง ฉันจะสร้างสิ่งนี้ได้อย่างไร

มีเคอร์เนลโมดูลใดบ้างให้ประสบการณ์ของฉันกับการเขียนโปรแกรมเคอร์เนลเป็นพื้นฐานมาก?


6
"สำหรับสิ่งนี้ฉันไม่ต้องการใช้ฮาร์ดแวร์หรือสวิตช์ภายนอก" คุณไม่สามารถทำได้ในช่วงเวลาใด ๆ ของระบบหากคุณต้องการใช้สาย USB ธรรมดาสำหรับการเชื่อมต่อ USB ไม่ใช่ความสัมพันธ์แบบสมมาตร ในความเป็นจริงคุณสามารถสร้างความเสียหายทางร่างกายทั้งเครื่องโดยการเชื่อมต่อด้วยวิธีนี้เนื่องจากมีแรงดันไฟฟ้า
goldilocks

2
อย่างไรก็ตามคุณสามารถใช้สายเคเบิลโฮสต์ต่อโฮสต์พิเศษซึ่งในกรณีนี้ใช่มีเคอร์เนลไดรเวอร์ดังนั้นหากคุณกำลังจะซื้อสายเคเบิลให้แน่ใจว่าคุณตรวจสอบว่ามีไดรเวอร์สำหรับสายเคเบิลนั้นหรือไม่
goldilocks

4
นั่นจะไม่ทำงานแน่นอนและเป็นสายเคเบิลชนิดหนึ่งที่สามารถทอดคอมพิวเตอร์ของคุณได้หากคุณเชื่อมต่อกับคอมพิวเตอร์เครื่องอื่นโดยตรง
zhongfu

2
@Thorongil ไม่นั่นไม่ใช่สิ่งที่ฉันหมายถึง ดูเหมือนว่าไม่มีเว็บไซต์ใด ๆ ในอเมซอนที่ฉันหาได้ - มันเป็นสิ่งที่ผิดปกติ นี่คือหนึ่งใน อย่าสับสนกับสาย OTG ("on-the-go") ซึ่งเป็นเรื่องธรรมดามาก โดยพื้นฐานแล้วสิ่งนี้ไม่คุ้มกับการติดตาม - โปรดสังเกตว่าสายเคเบิล 2.0 หมายความว่าคุณจะมีการถ่ายโอนที่เร็วขึ้นโดยใช้สายอีเธอร์เน็ตหากทั้งคู่มีกิกะบิตอีเธอร์เน็ต (และคุณสามารถใช้ซอฟต์แวร์ปกติ)
goldilocks

2
ฉันเพิ่งจะสร้างเครือข่าย ... คอมพิวเตอร์ของฉันดังนั้นฉันรู้ว่าฉันมีแล้ว ... LAN-over-USB กับ LAN-over-USB จะเป็นสิ่งที่ฉันจะมองหา
Skaperen

คำตอบ:


24

ใช่มันเป็นไปได้ แต่มันเป็นไปไม่ได้โดยการตัดสาย USB สองเส้นด้วยตัวเชื่อมต่อ USB-A (โดยปกติแล้วสิ่งที่จะเข้าสู่ USB บนเมนบอร์ดของคุณ) และข้ามการเชื่อมต่อสายเคเบิลข้อมูล หากคุณเชื่อมต่อสายไฟ USB บนสายเคเบิลที่ผลิตเองนั้นคุณมีโอกาสที่จะทอดชิปจัดการ USB ในบอร์ดของคุณ อย่าลองทำที่บ้าน!

บนบอร์ดคอมพิวเตอร์ส่วนใหญ่ชิปที่รองรับ USB จะเป็นโฮสต์เท่านั้น ไม่เพียงแค่นั้น แต่ยังรองรับการสื่อสารระดับต่ำจำนวนมากเพื่อเร่งความเร็วและลดภาระของ CPU ไม่ใช่ว่าคุณสามารถตั้งโปรแกรมคอมพิวเตอร์ของคุณให้จัดการกับพินในพอร์ต USB เพื่อทำหน้าที่เหมือนกับว่าไม่ใช่โฮสต์ อุปกรณ์ที่มีความสามารถในระดับชิปของการสลับระหว่างการทำหน้าที่เป็นโฮสต์และการเชื่อมต่อกับโฮสต์นั้นมีน้อยเนื่องจากต้องใช้ชิปที่แพงกว่า นี่คือเหตุผลที่อุปกรณ์อัจฉริยะเช่นสมาร์ทโฟน GPS และ ebook ของฉันถึงแม้ว่าพวกเขาทั้งหมดจะใช้ Linux หรือสิ่งที่คล้ายกัน แต่ฉันไม่สามารถใช้sshในการสื่อสารเมื่อเชื่อมต่อผ่านสาย USB ปกติ

อุปกรณ์เหล่านั้นเข้าสู่โหมดใบ้เมื่อเชื่อมต่อซึ่งโฮสต์ (ระบบเดสก์ท็อปของฉัน) สามารถใช้ที่เก็บข้อมูลเป็นดิสก์ USB ได้ หลังจากยกเลิกการเชื่อมต่ออุปกรณ์ใช้อินเทอร์เฟซเดียวกับโฮสต์เพื่อรับข้อมูล (แม้ว่าจะไม่จำเป็นต้องมีการเชื่อมต่อสายเคเบิล แต่สิ่งนี้เกิดขึ้นภายใน) กับชนิดของอุปกรณ์ที่แม้ว่าลินุกซ์ทำงานบนทั้งสองมีการสื่อสารระหว่างระบบเช่น Linuxes เป็นอิสระจากสายเคเบิล micro หรือ mini USB แบบปกติซึ่งเชื่อมต่อเข้ากับเดสก์ท็อปของฉัน

ระหว่างพีซีเดสก์ท็อปสองเครื่องตามปกติไม่สามารถทำได้เนื่องจากคุณต้องใช้สายเคเบิล USB-A ถึง USB-A ซึ่งไม่ธรรมดา (เพราะจะไม่ทำงานกับชิปปกติที่ขับเคลื่อนการเชื่อมต่อ)

วิธีแก้ปัญหาใด ๆ ที่ทำ USB เป็น USB ด้วยตัวเชื่อมต่อ USB-A สองตัวที่ฉันได้เห็นจะขึ้นอยู่กับสายเคเบิลที่มีอุปกรณ์อิเล็กทรอนิกส์อยู่ระหว่างนั้น (เหมือนกับ USB → Serial ที่เสียบเข้ากับสายเคเบิล Serial → USB แต่ทั้งหมดนี้รวมอยู่ในชิ้นเดียว) โดยทั่วไปแล้วไดรเวอร์เหล่านี้ต้องใช้การถ่ายโอนแม้ว่าคุณจะสามารถใช้ UUCP หรืออย่างอื่นผ่านสายเคเบิลเช่นเดียวกับที่คุณทำผ่านพอร์ตอนุกรม "ปกติ" อาจต้องมีการกำหนดค่า inetd และการกำหนดค่าที่เหมาะสมเพื่อเข้าสู่ระบบบนคอมพิวเตอร์เครื่องอื่นเช่นกัน

¹ อุปกรณ์เดียวที่ฉันมีคือซอฟต์แวร์ที่เปลี่ยนแปลงได้ในลักษณะนี้คือบอร์ด Arduino ที่มีชิปพิเศษอย่างแน่นอน เพียงชิปนี้ทำให้บอร์ด มีราคาแพงกว่าบอร์ด Arduino ปกติสองเท่า


"ไม่อนุญาตให้ฉันใช้sshสื่อสารเมื่อเชื่อมต่อผ่านสาย USB ปกติ"ฉันอาจจะเข้าใจผิด แต่ฉันสามารถ sshเข้าไปในคุกของ iPhone ได้
โคลจอห์นสัน

@ColeJohnson ฉันไม่คุ้นเคยกับ iphone ที่ช่วยให้คุณเห็นหน่วยความจำภายในเป็นไดรฟ์ USB ในคอมพิวเตอร์โฮสต์ที่มี USB หรือไม่ หากสามารถทำได้ควรรันการจำลองแบบเต็มของฝั่งที่ไม่ใช่โฮสต์ หากไม่สามารถทำได้อาจต้องใช้โปรแกรมเฉพาะเพื่อโหลดข้อมูลลงในโทรศัพท์
Anthon

หากคุณติดตั้งopensshบนอุปกรณ์คุณสามารถsshใน (ผ่าน Wi-Fi) และหากคุณติดตั้งafc2(Apple File Conduit) บนอุปกรณ์คุณควรจะสามารถเรียกดูระบบไฟล์ผ่าน USB (โดยไม่ใช้มันคุณจะถูก "ถูกจำคุก" "ถึง/var/mobile)
Cole Johnson เมื่อ

1
ทั้งหมดนี้ใช้ได้ดียกเว้นโทรศัพท์เล็ก ๆ น้อย ๆ ความจริงที่ว่าอุปกรณ์จำนวนมาก จำกัด สิ่งที่สามารถทำได้ไม่ได้ปฏิเสธความจริงที่ว่าชิป USB ที่ใช้ทั้งหมด แต่อุปกรณ์จำนวนหนึ่งสามารถทำงานในโหมดไคลเอนต์ได้บางเครื่องก็สามารถทำงานในโหมดโฮสต์ได้
Caleb

6

ใช่ USB 3.0 ทำให้การถ่ายโอนข้อมูลเพล็กซ์เต็มรูปแบบทำได้ด้วยสายเคเบิล 3.0 ข้อมูลจำเพาะอยู่ในส่วน 5.5.2 ของข้อมูลจำเพาะ USB ลิงก์ไปยังข้อมูลจำเพาะเหล่านั้นได้รับก่อนหน้านี้ในคำตอบอื่น http://www.gaw.ru/pdf/interface/usb/USB%203%200_english.pdf

สายเคเบิลหาได้ง่ายขึ้น - พวกเขาสามารถหาซื้อได้ที่ Amazon เช่นราคาต่ำกว่า $ 8.00 ต้องแน่ใจว่าซื้อ DATA TRANSFER, ชาย A ถึงชาย A สายเคเบิล Linux เวอร์ชันใหม่กว่ารองรับการถ่ายโอน

ฉันหวังว่าจะช่วยคน - ฉันค้นหาคำตอบในขณะที่ตัวเอง


จำเป็นต้องตั้งค่าใด ๆ เพื่อให้สายเคเบิลนี้ใช้งานได้? มันจะติดตั้งหรือจำลองเครือข่าย
mpapis

ที่น่าสนใจฉันมีสาย usb 3.0 แบบง่าย ๆ (แค่ปลายชายและสายเคเบิลแบบธรรมดา) และฉันสงสัยว่าฉันจะไม่ทำพอร์ต usb 2.0 notebook notebook ของฉันโดยการเชื่อมต่อกับพอร์ต usb 3.0 ของเดสก์ท็อปหรือไม่ ฉันเชื่อมต่อสองสามวินาทีและไม่มีอะไรเกิดขึ้นใน dmesg ดังนั้นฉันจึงตัดการเชื่อมต่อทันทีเนื่องจากฉันมักจะทำอะไรที่ไม่ได้ผลในทันที
อำนาจกุมภ์

2
ส่วน 5.5.2 "ชุดประกอบสายเคเบิล USB 3.0 Standard-A ถึง USB 3.0 Standard-A" จะระบุเฉพาะสายเคเบิลและระบุว่า "ชุดสายเคเบิลถูกกำหนดสำหรับการดีบักระบบปฏิบัติการและแอปพลิเคชันการเชื่อมต่อระหว่างโฮสต์กับโฮสต์อื่น ๆ " คุณแน่ใจหรือไม่ว่าสายเคเบิล usb3 a-to-a ไม่อนุญาตให้ทำการดีบักเท่านั้น ( kernel.org/doc/html/v4.16/driver-api/usb/usb3usb3-debug-port.html - ต้องการความสามารถในการดีบัก xHCI DbC ซึ่งเป็น เป็นตัวเลือกสำหรับตัวควบคุมโฮสต์ xHCI usb3) แต่ยังถ่ายโอนไฟล์หรือไม่ สำหรับการถ่ายโอนไฟล์มีสายเคเบิลที่ใช้งานอยู่ (ที่มีตัวควบคุมอยู่ตรงกลาง) บางรายการอยู่ที่: ghisler.com/cables
osgx

ฉันไม่เคยเห็นการตั้งค่าการทำงานกับสิ่งนี้ สนใจที่จะแบ่งปันรายละเอียดใด ๆ ?
dirkt

3

คุณสามารถใช้อุปกรณ์บริดจ์ USB ซึ่งมีให้บริการในรูปแบบสายเคเบิลปัจจัยเช่นนี้ ... http://www.usbgear.com/link/ (คำเตือนการเล่นวิดีโออัตโนมัติ)


3
ไม่ได้เชื่อมต่อพอร์ต USB ได้โดยตรง
Skaperen

สิ่งนี้อาจเฉพาะเจาะจงกับ Windows
Skaperen

3
ฉันจะระวังบิต "ไม่จำเป็นต้องใช้ไดรเวอร์" ในความเป็นจริงแล้ว AFAIK พวกเขาต้องการไดรเวอร์ linux-usb.org/usbnet/#t-host
goldilocks

@goldilocks ใช่แล้วว่าบอร์ดอาจมีรหัส windows บางอย่าง ... ผู้ใช้ไม่จำเป็นต้องติดตั้งไดรเวอร์จากซีดีโดยผู้ใช้
Skaperen

1

เป็นไปได้ทางเทคนิคหากอุปกรณ์ตัวใดตัวหนึ่งรองรับUSB OTGซึ่งพอร์ตอาจทำหน้าที่เป็นอุปกรณ์หลักหรือเป็นอุปกรณ์รอง คุณสามารถตั้งค่าอุปกรณ์ OTG ให้เป็นทาสได้และปล่อยให้มันทำหน้าที่เป็นฮาร์ดไดรฟ์ USB (ดังนั้นคุณจึงไม่จำเป็นต้องใช้ไดรเวอร์พิเศษในต้นแบบ)

นี่คือสิ่งที่โทรศัพท์จำนวนมากและกล้องบางตัวทำ หากคุณเชื่อมต่อพวกเขาเข้ากับเครื่องพิมพ์พวกเขากลายเป็นผู้เชี่ยวชาญ; หากเชื่อมต่อกับพีซีพวกเขาจะกลายเป็นทาส


1
USB OTG เพียงสลับระหว่างโฮสต์ USB และโหมดอุปกรณ์ USB ในขณะที่ทั่วไปสำหรับโทรศัพท์ฉันไม่รู้จักพีซีเครื่องใดที่มีคุณสมบัตินี้ พีซีเหล่านี้มีอยู่จริงหรือไม่?
Lekensteyn

@Lekensteyn: ไม่ใช่เรื่องแปลกสำหรับแท็บเล็ตและแท็บเล็ตบางตัวเป็นพีซีแบบเต็ม อย่างไรก็ตามอาจมีความสัมพันธ์สูงระหว่างพอร์ต USB แบบโฮสต์เท่านั้นและพีซีแบบเต็ม
Ben Voigt

@lekensteyn แก้ไขคำตอบเป็นเพียงหนึ่งในสองอุปกรณ์เท่านั้นมันไม่สำคัญหากผู้ส่งหรือผู้รับ ฉันยังขาด otg ทางพีซีฉันคิดว่า นั่นเป็นความอัปยศ
Lesto

ผมเชื่อว่านี่จะเรียกว่าคู่บทบาทข้อมูล เมนบอร์ดรุ่นใหม่บางรุ่นรองรับฟังก์ชั่นนี้ - ดูตัวอย่างหน้านี้ มันถูกบันทึกไว้ในแผ่นข้อมูลชิปเซ็ต แต่จำเป็นต้องมีการเปิดใช้งานบนเมนบอร์ดทั้งหมด
Luciano

0

วิธีที่ฉันจะทำก็คือใช้สายเคเบิลอนุกรม usb 2 เส้นและการเชื่อมต่อแบบ null ระหว่างกัน จากนั้นคุณสามารถใช้ xmodem, zmodem, kermit และอื่น ๆ เพื่อถ่ายโอนไฟล์หรือใช้ ppp หรือสลิปสำหรับเครือข่ายระหว่างสองเครื่อง แบบเก่า แต่จะทำงาน

พระธาตุ


1
ด้วย "สายเคเบิลอนุกรม usb" คุณหมายถึงสายเคเบิลที่แปลงจาก USB เป็นปลั๊กอนุกรมและมาตรฐานเช่น RS232 ผ่าน DE-9 หรือไม่ ดังนั้นโดยทั่วไปแล้วมันจะมีตัวแปลงสองตัวและสายเคเบิลสำหรับการสื่อสารแบบอนุกรมหรือไม่ ยิ่งไปกว่านั้นมันก็ดีด้วยข้อมูลเพิ่มเติมอีกเล็กน้อยเกี่ยวกับวิธีใช้โปรโตคอลเหล่านี้หรือที่ที่จะขอความช่วยเหลือที่ดีกับพวกเขา
phk

phk นั้นถูกต้องคุณต้องอธิบายว่าการเชื่อมต่อแบบ null นั้นคืออะไร คำตอบจะต้องมีอยู่ในตัวเอง นอกจากนี้โปรดใช้ "คุณ" แทน "u" อีกครั้งคำตอบควรเป็นตัวอย่างในตัวเองไม่ใช่โพสต์ในฟอรั่ม
grochmal

สิ่งนี้จะใช้ความเร็วการถ่ายโอน USB 3 ของคุณ (5-10Gbps) และลดความเร็วลงเหลือ 0.001Gbps บางตัวช้ากว่ามาตรฐานกิกะบิตอีเธอร์เน็ตประมาณ 1,000 เท่า แทบจะไม่คุ้มค่ากับความพยายาม! โดยเฉพาะอย่างยิ่งถ้าชอบ OP ที่คุณต้องการแชร์ดิสก์ผ่านการเชื่อมต่อ
Malvineous
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.