Giới thiệu
Trong lab này, chúng ta sẽ khám phá lệnh setserial
của Linux và các ứng dụng thực tế của nó. Lab này nhằm mục đích dạy bạn cách xác định thông tin cổng serial, cấu hình các thiết lập cổng serial và khắc phục sự cố liên quan đến giao tiếp serial trên hệ thống Linux. Chúng ta sẽ bắt đầu bằng cách tìm hiểu mục đích của lệnh setserial
, sau đó chuyển sang sử dụng nó để truy xuất thông tin chi tiết về các cổng serial trên hệ thống của bạn. Cuối cùng, chúng ta sẽ trình bày cách cấu hình các thiết lập cổng serial khác nhau, chẳng hạn như tốc độ baud và ngắt yêu cầu (IRQ), bằng cách sử dụng lệnh setserial
.
Tìm hiểu Mục đích của Lệnh setserial
Trong bước này, chúng ta sẽ khám phá mục đích của lệnh setserial
trong Linux. Lệnh setserial
là một công cụ mạnh mẽ được sử dụng để cấu hình và quản lý các thiết lập cổng serial trên một hệ thống Linux.
Lệnh setserial
cho phép bạn:
- Xác định cấu hình hiện tại của các cổng serial
- Đặt các tham số khác nhau cho các cổng serial, chẳng hạn như tốc độ baud, địa chỉ I/O và ngắt yêu cầu (IRQ)
- Khắc phục sự cố liên quan đến giao tiếp serial
Để bắt đầu, hãy sử dụng lệnh setserial
để lấy thông tin về các cổng serial trên hệ thống của bạn.
sudo setserial -g /dev/ttyS*
Ví dụ đầu ra:
/dev/ttyS0 uart:16550A port:0x03f8 irq:4
/dev/ttyS1 uart:16550A port:0x02f8 irq:3
Lệnh này truy xuất cấu hình hiện tại của tất cả các cổng serial (/dev/ttyS*
) trên hệ thống. Đầu ra hiển thị loại UART, địa chỉ cổng I/O và IRQ cho mỗi cổng serial.
Bây giờ, giả sử bạn cần thay đổi cấu hình của một cổng serial, chẳng hạn như đặt tốc độ baud. Bạn có thể sử dụng lệnh setserial
để thực hiện việc này:
sudo setserial /dev/ttyS0 baud_base 115200 spd_cust
Lệnh này đặt tốc độ baud của cổng serial /dev/ttyS0
thành 115200 bps và cho phép các thiết lập tốc độ baud tùy chỉnh.
Lệnh setserial
cung cấp một loạt các tùy chọn để cấu hình các khía cạnh khác nhau của các cổng serial, chẳng hạn như:
spd_normal
: Đặt tốc độ baud tiêu chuẩnspd_cust
: Bật tốc độ baud tùy chỉnhspd_vhi
: Đặt tốc độ baud thành 57600 bpsspd_hi
: Đặt tốc độ baud thành 38400 bpsspd_shi
: Đặt tốc độ baud thành 115200 bps
Bạn có thể khám phá danh sách đầy đủ các tùy chọn bằng cách chạy man setserial
trong terminal.
Xác định Thông tin Cổng Serial Sử dụng setserial
Trong bước này, chúng ta sẽ tìm hiểu cách sử dụng lệnh setserial
để xác định thông tin chi tiết về các cổng serial trên hệ thống Linux của bạn.
Đầu tiên, hãy liệt kê tất cả các cổng serial có sẵn trên hệ thống:
sudo setserial -g /dev/ttyS*
Ví dụ đầu ra:
/dev/ttyS0 uart:16550A port:0x03f8 irq:4
/dev/ttyS1 uart:16550A port:0x02f8 irq:3
Lệnh này cung cấp các thông tin sau cho mỗi cổng serial:
uart
: Loại UART (Universal Asynchronous Receiver-Transmitter), cho biết phần cứng cổng serial.port
: Địa chỉ cổng I/O của cổng serial.irq
: Số ngắt yêu cầu (IRQ) được gán cho cổng serial.
Để có được thông tin chi tiết hơn về một cổng serial cụ thể, bạn có thể sử dụng lệnh setserial
với tên cổng làm đối số:
sudo setserial /dev/ttyS0 -a
Ví dụ đầu ra:
/dev/ttyS0, Line 0:
Baud_base: 115200, close_delay: 50, divisor: 0
closing_wait: 3000, custom_divisor: 0, max_baud: 0
port: 0x03f8, irq: 4
flags: (0x10) UPF_SKIP_TEST
spd_cust: 0, spd: (0x00)
Lệnh này cung cấp các chi tiết bổ sung về cổng serial /dev/ttyS0
, bao gồm tốc độ baud, độ trễ đóng, ước số, thời gian chờ đóng, ước số tùy chỉnh, tốc độ baud tối đa và các flag khác nhau.
Hiểu thông tin cổng serial là rất quan trọng khi cấu hình hoặc khắc phục sự cố giao tiếp serial trên hệ thống Linux của bạn.
Cấu hình Các Thiết lập Cổng Serial với setserial
Trong bước này, chúng ta sẽ tìm hiểu cách sử dụng lệnh setserial
để cấu hình các thiết lập khác nhau cho các cổng serial trên hệ thống Linux của bạn.
Hãy bắt đầu bằng cách xác định các cổng serial trên hệ thống của bạn:
sudo setserial -g /dev/ttyS*
Ví dụ đầu ra:
/dev/ttyS0 uart:16550A port:0x03f8 irq:4
/dev/ttyS1 uart:16550A port:0x02f8 irq:3
Bây giờ, giả sử bạn muốn thay đổi tốc độ baud của cổng serial /dev/ttyS0
thành 115200 bps và bật các thiết lập tốc độ baud tùy chỉnh:
sudo setserial /dev/ttyS0 baud_base 115200 spd_cust
Để xác minh các thay đổi, bạn có thể chạy lại lệnh setserial
với tùy chọn -a
:
sudo setserial /dev/ttyS0 -a
Ví dụ đầu ra:
/dev/ttyS0, Line 0:
Baud_base: 115200, close_delay: 50, divisor: 0
closing_wait: 3000, custom_divisor: 0, max_baud: 0
port: 0x03f8, irq: 4
flags: (0x10) UPF_SKIP_TEST
spd_cust: 1, spd: (0x00)
Đầu ra cho thấy rằng tốc độ baud hiện được đặt thành 115200 bps và flag spd_cust
được bật, cho phép bạn sử dụng tốc độ baud tùy chỉnh.
Bạn cũng có thể sử dụng lệnh setserial
để cấu hình các thiết lập cổng serial khác, chẳng hạn như:
spd_normal
: Đặt tốc độ baud tiêu chuẩnspd_vhi
: Đặt tốc độ baud thành 57600 bpsspd_hi
: Đặt tốc độ baud thành 38400 bpsspd_shi
: Đặt tốc độ baud thành 115200 bpsuart
: Đặt loại UART (ví dụ:uart:16550A
)port
: Đặt địa chỉ cổng I/Oirq
: Đặt số ngắt yêu cầu (IRQ)
Hãy nhớ tham khảo trang man setserial
để có danh sách đầy đủ các tùy chọn có sẵn và mô tả của chúng.
Tóm tắt
Trong lab này, chúng ta đã tìm hiểu về mục đích và cách sử dụng lệnh setserial
trong Linux. Chúng ta bắt đầu bằng cách tìm hiểu cách lệnh setserial
có thể được sử dụng để xác định cấu hình hiện tại của các cổng serial, bao gồm loại UART, địa chỉ cổng I/O và IRQ. Sau đó, chúng ta đã khám phá cách sử dụng lệnh setserial
để cấu hình các thiết lập khác nhau cho các cổng serial, chẳng hạn như tốc độ baud và tốc độ baud tùy chỉnh. Cuối cùng, chúng ta đã tìm hiểu cách sử dụng lệnh setserial
để lấy thông tin chi tiết về các cổng serial trên hệ thống, bao gồm tên thiết bị, loại UART và các chi tiết liên quan khác.