Có thể truyền dữ liệu USB sang USB giữa hai hệ điều hành Linux không?


26

Tôi muốn tạo một hệ thống truyền dữ liệu USB sang USB trong Linux (tốt nhất là Ubuntu). Đối với điều này, tôi muốn sử dụng không có phần cứng hoặc chuyển đổi bên ngoài ( ngoại trừ cáp này ). Nó sẽ giống như gắn một ổ USB vào một hệ thống, nhưng trong kịch bản này, một trong các hệ thống Linux sẽ được gắn trên một hệ thống khác. Làm thế nào tôi có thể tạo ra điều này?

Có bất kỳ mô-đun hạt nhân nào có sẵn, theo kinh nghiệm của tôi với lập trình kernel là rất cơ bản?


6
"Đối với điều này, tôi muốn sử dụng không có phần cứng hoặc chuyển đổi bên ngoài." Bạn không thể làm điều này trên bất kỳ thời gian hệ thống nào, nếu bạn muốn sử dụng cáp USB đơn giản để kết nối. USB không phải là một mối quan hệ đối xứng. Thực tế bạn có thể làm hỏng vật lý bằng cách kết nối chúng theo cách này, vì có điện áp liên quan.
goldilocks

2
Tuy nhiên, bạn có thể sử dụng cáp từ máy chủ đến máy chủ đặc biệt, trong trường hợp đó, có trình điều khiển hạt nhân, vì vậy nếu bạn định mua một trình điều khiển, hãy đảm bảo bạn kiểm tra xem có trình điều khiển nào cho cáp cụ thể đó không.
goldilocks

4
Điều đó chắc chắn sẽ không hoạt động, và là loại cáp có thể chiên máy tính của bạn nếu bạn kết nối trực tiếp với máy tính khác.
zhongfu

2
@Thorongil Không, đó không phải là ý tôi. Có vẻ như không có bất kỳ trang web nào trên Amazon mà tôi có thể tìm thấy - chúng là những thứ không bình thường. Đây là một . Đừng nhầm lẫn điều này với cáp OTG ("đang di chuyển"), phổ biến hơn nhiều. Về cơ bản, điều này không đáng để theo đuổi - lưu ý rằng đó là cáp 2.0 có nghĩa là bạn sẽ chuyển nhanh hơn bằng cáp ethernet nếu cả hai đều có ethernet gigabit (và bạn có thể sử dụng phần mềm bình thường).
goldilocks

2
Tôi chỉ kết nối mạng ... máy tính của tôi vì vậy tôi biết tôi đã có nó ... một mạng LAN qua USB sang LAN qua USB sẽ như những gì tôi sẽ tìm kiếm
Skaperen

Câu trả lời:


24

Có, điều này là có thể, nhưng không thể bằng cách cắt hai cáp USB bằng đầu nối USB-A (thường đi vào USB trên bo mạch chủ của bạn) và kết nối chéo các cáp dữ liệu. Nếu bạn kết nối các đường dây USB trên cáp tự tạo như vậy, có khả năng bạn sẽ chiên chip xử lý USB trên bo mạch của mình . Đừng thử điều này ở nhà!

Trên hầu hết các bo mạch máy tính, các chip xử lý USB chỉ được lưu trữ. Không chỉ vậy, nó còn xử lý rất nhiều giao tiếp cấp thấp để tăng tốc mọi thứ và giảm tải cho CPU. Không phải là bạn có thể lập trình cho máy tính của mình xử lý các chân trên cổng USB để hoạt động như thể không phải là máy chủ lưu trữ. Các thiết bị có khả năng, ở cấp độ chip, chuyển đổi giữa hoạt động như một máy chủ và kết nối với máy chủ là rất ít, vì điều này đòi hỏi một con chip đắt hơn nhiều. Đây là ví dụ tại sao các thiết bị thông minh như điện thoại thông minh, GPS và ebook của tôi, mặc dù tất cả chúng đều chạy Linux hoặc một cái gì đó tương tự, không cho phép tôi sử dụng sshđể giao tiếp khi được kết nối qua cáp USB thông thường.

Các thiết bị đó chuyển sang chế độ câm khi được kết nối, trong đó máy chủ (hệ thống máy tính để bàn của tôi) có thể sử dụng bộ lưu trữ của nó làm đĩa USB. Sau khi ngắt kết nối, thiết bị sẽ sử dụng cùng giao diện với máy chủ để lấy dữ liệu (mặc dù không cần kết nối cáp, nhưng điều này xảy ra trong nội bộ). Với loại thiết bị đó ngay cả khi Linux chạy trên cả hai, không có giao tiếp giữa các hệ thống, tức là các linux . Điều này độc lập với cáp USB micro hoặc mini thông thường kết nối chúng với máy tính để bàn của tôi.

Giữa hai máy tính để bàn, điều trên thường không thể thực hiện được vì bạn sẽ yêu cầu cáp USB-A đến USB-A, điều này không phổ biến (vì dù sao nó cũng không hoạt động với các chip thông thường đang điều khiển các kết nối).

Bất kỳ giải pháp nào thực hiện chuyển USB sang USB với hai đầu nối USB-A mà tôi đã thấy, đều dựa trên cáp có một số thiết bị điện tử ở giữa. (giống như USB → Nối tiếp được cắm vào cáp Nối tiếp → Cáp USB, nhưng sau đó tất cả trong một mảnh). Những điều này thường yêu cầu các trình điều khiển thực hiện chuyển, mặc dù bạn có thể sử dụng UUCP hoặc một cái gì đó khác qua cáp như vậy, giống như bạn qua cổng nối tiếp "bình thường". Điều này có thể yêu cầu inetd và cấu hình phù hợp để đăng nhập trên máy tính khác.

¹ Các thiết bị duy nhất tôi có nghĩa là phần mềm thay đổi theo cách này là một bảng Arduino với chính xác một con chip đặc biệt như vậy. Chỉ cần con chip này đã khiến bo mạch đắt gấp đôi so với bo mạch Arduino thông thường.


"không cho phép tôi sử dụng sshđể liên lạc khi được kết nối qua cáp USB thông thường" Tôi có thể hiểu nhầm bạn, nhưng tôi có thể ssh vào chiếc iPhone đã bẻ khóa của mình
Cole Johnson

@ColeJohnson Tôi không quen với iphone. Điều đó có cho phép bạn xem bộ nhớ trong dưới dạng ổ USB trên bất kỳ máy tính chủ nào có USB không? Nếu nó có thể nó nên chạy một mô phỏng đầy đủ của phía không phải máy chủ lưu trữ. Nếu không thể thì có lẽ nó cần một chương trình chuyên dụng để tải dữ liệu vào điện thoại.
Anthon

Nếu bạn cài đặt opensshtrên thiết bị, bạn có thể ssh(qua Wi-Fi) và nếu bạn cài đặt afc2(Apple File Conduit) trên thiết bị, bạn sẽ có thể duyệt hệ thống tệp qua USB (không có nó, bạn sẽ bị "bỏ tù" "Đến /var/mobile)
Cole Johnson

1
Điều này là tốt, ngoại trừ một chút về điện thoại. Thực tế là nhiều thiết bị hạn chế những gì có thể được thực hiện không phủ nhận thực tế là các chip USB được sử dụng trong tất cả nhưng một số ít thiết bị có thể chạy ở chế độ máy khách, một số cũng có thể chạy ở chế độ máy chủ.
Caleb

6

Có, USB 3.0 giúp truyền dữ liệu song công hoàn toàn, với cáp 3.0. Thông số kỹ thuật nằm trong mục 5.5.2 của thông số kỹ thuật USB. Liên kết đến những thông số kỹ thuật được đưa ra trước đó trong một câu trả lời khác. http://www.gaw.ru/pdf/interface/usb/USB%203%200_english.pdf

Cáp đang trở nên dễ tìm hơn - ví dụ, chúng có thể được mua trên Amazon với giá dưới 8,00 đô la. hãy chắc chắn mua cáp DATA, cáp A từ nam sang nam A. Các phiên bản mới hơn của Linux hỗ trợ chuyển.

Tôi hy vọng điều đó sẽ giúp được ai đó - Tôi đã tự mình tìm kiếm câu trả lời.


bất kỳ thiết lập cần thiết cho cáp này để làm việc? nó sẽ được gắn hoặc mô phỏng mạng?
mpapis

Thật thú vị, tôi có một cáp usb 3.0 đơn giản (chỉ có đầu nam và một cáp đơn giản ở giữa) và tôi tự hỏi liệu tôi có không rán cổng máy tính xách tay usb 2.0 của mình bằng cách kết nối nó với cổng usb 3.0 trên máy tính để bàn không? Tôi đã kết nối trong vài giây và không có gì xảy ra trên dmesg, vì vậy tôi nhanh chóng ngắt kết nối vì tôi thường làm với bất cứ điều gì không kịp thời hoạt động.
Sức mạnh Bảo Bình

2
Mục 5.5.2 "Lắp ráp cáp chuẩn USB A từ chuẩn A đến USB 3.0" của Thông số kỹ thuật chỉ xác định cáp và cho biết "lắp ráp cáp được xác định để gỡ lỗi hệ điều hành và các ứng dụng kết nối máy chủ đến máy chủ khác". Bạn có chắc chắn rằng cáp USB-a-to-a không chỉ cho phép gỡ lỗi ( kernel.org/doc/html/v4.16/do-api/usb/usb3-debug-port.html - cần khả năng gỡ lỗi xHCI DbC, đó là tùy chọn cho bộ điều khiển máy chủ USB3 xHCI), mà còn chuyển tập tin? Để truyền tệp, có cáp hoạt động (có bộ điều khiển ở giữa), một số được liệt kê tại: ghisler.com/cables
osgx

Tôi chưa bao giờ thấy một thiết lập làm việc với điều này. Muốn chia sẻ chi tiết nào?
dirkt

3

bạn có thể sử dụng thiết bị cầu USB có sẵn trong hệ số dạng cáp như thế này ... http://www.usbgear.com/link/ (cảnh báo video tự động phát)


3
làm không kết nối cổng USB trực tiếp
Skaperen

điều này có thể dành riêng cho Windows
Skaperen

3
Tôi sẽ rất cảnh giác với bit "không cần trình điều khiển". AFAIK họ làm, trên thực tế, cần trình điều khiển. linux-usb.org/usbnet/#t-host
goldilocks

@goldilocks vâng, bảng đó có thể có một số loại mã cửa sổ ... người dùng không cần cài đặt trình điều khiển từ đĩa CD
Skaperen

1

Về mặt kỹ thuật là có thể nếu một trong các thiết bị hỗ trợ USB OTG , trong đó một cổng có thể đóng vai trò là chủ hoặc là nô lệ. Bạn có thể thiết lập thiết bị OTG làm nô lệ và để thiết bị hoạt động như một ổ đĩa cứng USB (vì vậy bạn thậm chí không cần trình điều khiển đặc biệt trên bản gốc).

Đây là những gì rất nhiều điện thoại và một số máy ảnh làm. Nếu bạn kết nối chúng với máy in, chúng sẽ trở thành chủ; nếu được kết nối với PC, chúng trở thành nô lệ.


1
USB OTG chỉ chuyển đổi giữa máy chủ USB và chế độ thiết bị USB. Mặc dù phổ biến cho điện thoại, tôi không biết bất kỳ PC nào có tính năng này. Những PC này có thực sự tồn tại không?
Lekensteyn

@Lekensteyn: Không có gì lạ đối với máy tính bảng và một số máy tính bảng thực sự là PC đầy đủ. Tuy nhiên, có thể có mối tương quan cao giữa các cổng USB chỉ có máy chủ và PC đầy đủ.
Ben Voigt

@lekensteyn chỉnh sửa câu trả lời chỉ là một trong hai thiết bị, không quan trọng nếu người gửi hoặc người nhận. Vẫn còn thiếu otg về phía PC, tôi nghĩ vậy. Thật là xấu hổ.
Lesto

Tôi tin rằng đây cũng được gọi là Dữ liệu Vai trò kép . Một số bo mạch chủ mới hơn có hỗ trợ cho chức năng này - xem ví dụ trang này . Nó được ghi lại trong bảng dữ liệu chipset, nhưng nhất thiết phải được bật trên tất cả các bo mạch chủ.
Luciano

0

Cách tôi sẽ làm là sử dụng 2 cáp nối tiếp usb và kết nối null giữa. Sau đó, bạn có thể sử dụng xmodem, zmodem, kermit, vv để truyền tệp hoặc sử dụng ppp hoặc trượt cho một mạng giữa hai máy. Cũ thời nhưng sẽ làm việc.

Thad


1
Với "cáp nối tiếp usb", bạn có nghĩa là cáp chuyển đổi từ USB sang một số phích cắm nối tiếp và tiêu chuẩn như RS232 qua DE-9? Vì vậy, về cơ bản, hai bộ chuyển đổi và cáp cho giao tiếp nối tiếp? Ngoài ra, thật tuyệt khi có thêm một chút thông tin về cách sử dụng các giao thức này hoặc nơi để tìm sự giúp đỡ tốt về chúng.
phk

phk là chính xác, bạn sẽ giải thích một kết nối null là gì. Một câu trả lời sẽ được khép kín. Ngoài ra, hãy sử dụng "em" thay cho "u", một lần nữa một câu trả lời phải là một khép kín dụ không phải là một bài diễn đàn
grochmal

Điều này sẽ lấy tốc độ truyền USB 3 của bạn (5-10Gbps) và giảm xuống còn 0,001Gbps, chậm hơn khoảng 1000 lần so với Ethernet gigabit tiêu chuẩn. Khó có giá trị nỗ lực! Đặc biệt nếu như OP bạn đang muốn chia sẻ đĩa qua kết nối.
Malvineous
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.