Thiết lập các cổng nối tiếp ảo (trình giả lập modem null Linux) bằng tty0tty


9

Tôi muốn thiết lập trình giả lập cổng nối tiếp ảo trong Linux. Tôi muốn các cổng là vĩnh viễn, để tôi có thể sử dụng chúng mỗi khi tôi khởi động lại. Tôi đã thử sử dụng socat cho mục đích đó như cách này,

socat -d -d pty,raw,echo=0 pty,raw,echo=0

Nhưng tôi thường gặp các sự cố bận rộn về cổng trong quá trình sử dụng các VSP này (Cổng nối tiếp ảo) trong các chương trình thử nghiệm của mình. Ngoài ra, tôi thấy khó tạo ra các VSP vĩnh viễn / liên tục. Bây giờ tôi muốn dùng thử tty0tty cho mục đích của mình. Nhưng, hiếm khi có bất kỳ tài liệu và cách sử dụng hướng dẫn cho điều đó. Bất cứ ai cũng có thể khai sáng cho tôi về điều này? Hãy bình luận, nếu có bất kỳ giải pháp cho socat là tốt.

Câu trả lời:


13

Cài đặt

  1. Tải xuống gói tty0tty từ một trong những nguồn sau:

  2. Giải nén nó

    • tar xf tty0tty-1.2.tgz
  3. Xây dựng mô-đun hạt nhân từ nguồn được cung cấp
    • cd tty0tty-1.2/module
    • make
  4. Sao chép mô-đun hạt nhân mới vào thư mục mô-đun hạt nhân
    • sudo cp tty0tty.ko /lib/modules/$(uname -r)/kernel/drivers/misc/
  5. Tải mô-đun
    • sudo depmod
    • sudo modprobe tty0tty
    • Bạn sẽ thấy các cổng nối tiếp mới trong / dev / ( ls /dev/tnt*)
  6. Cấp quyền thích hợp cho các cổng nối tiếp mới
    • sudo chmod 666 /dev/tnt*

Bây giờ bạn có thể truy cập các cổng nối tiếp dưới dạng /dev/tnt0(1,2,3,4, v.v.) Lưu ý rằng các cổng liên tiếp được kết nối với nhau. Ví dụ: / dev / tnt0 và / dev / tnt1 được kết nối như thể sử dụng cáp trực tiếp.

Kiên trì khởi động

chỉnh sửa tệp / etc / mô-đun (Debian) hoặc /etc/modules.conf

nano /etc/modules

và thêm dòng sau:

tty0tty

Cảnh báo

Lưu ý rằng phương pháp này sẽ không làm cho mô-đun tiếp tục cập nhật kernel, vì vậy nếu bạn từng cập nhật kernel, hãy đảm bảo rằng bạn xây dựng tty0tty một lần nữa lặp lại quy trình.

Nếu bạn không di chuyển mô-đun trên mỗi bản cập nhật kernel systemctl --failedsẽ trả về dịch vụ đó systemd-modules-load.serviceđã kết thúc " failed". Cũng trên journalctl -xe | grep "Failed to find".


1
Cảm ơn bạn, điều đó đã làm việc khá tốt. Không thể tìm thấy thứ này ở bất cứ nơi nào khác.
yuva 23/2/2015

1
:) rất vui vì tôi có thể giúp!
Ruraj

tty0ttyhỗ trợ hệ điều hành mac không?
Foad

Bạn có thể xây dựng nó và tải mô-đun hạt nhân bằng cách sử dụng kextutil, nhưng tôi chưa bao giờ thử nó!
Ruraj

Giải thích tuyệt đẹp. Mỗi điểm đều đẹp và gọn gàng. Luôn vui mừng khi thấy những phản hồi như vậy
master_clown
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.