Cổng nối tiếp
Cổng nối tiếp là một cơ chế giao tiếp cấp thấp đơn giản giữa các máy tính.
Ưu điểm:
- thiết lập đơn giản một lần (nếu bạn có phần cứng)
- đáng tin cậy, vì việc truyền dữ liệu chỉ phụ thuộc vào API dây và hạt nhân đơn giản, ít có khả năng bị ảnh hưởng bởi sự hoảng loạn hơn là hệ thống con TCP / IP.
Nhược điểm:
- hầu hết các máy tính xách tay hiện đại không còn cổng nối tiếp nữa (tiếp xúc?) để tiết kiệm dung lượng. Nhưng máy tính để bàn và máy ảo vẫn làm.
- bạn cũng cần một máy tính thứ hai có cổng nối tiếp để nhận dữ liệu, nhưng đây là trường hợp cơ bản cho tất cả các bảng phát triển nhúng như Raspberry Pi.
- bị giới hạn bởi độ dài của cáp nối tiếp lớp vật lý, không giống như các mạng TCP / IP không giới hạn. Tuy nhiên, điều này có thể được xử lý xung quanh với một thiết bị có giao diện giữa nối tiếp và TCP / IP. Nhưng có những thiết bị chuyển đổi giữa hai.
Cổng nối tiếp trông như thế này:
và trên RPI có sẵn thông qua GPIO.
Sau đó, nếu bạn có phần cứng cần thiết, hãy kết nối từ máy tính thứ hai với máy tính chính bằng:
screen /dev/ttyS0 115200
Điều này thực sự cung cấp cho bạn một vỏ.
Sau đó vào máy chính, bắt đầu thao tác mà hoảng loạn.
Khi sự hoảng loạn xảy ra, bãi chứa hoảng loạn được truyền trực tiếp đến máy thứ hai và bạn có thể thấy tất cả bằng cách cuộn lên trên thiết bị đầu cuối.
Các phương pháp khác
Ngoài ra còn có các phương pháp khác khắc phục các hạn chế phần cứng được đề cập ở trên, với chi phí phức tạp hơn và kém tin cậy hơn. Phương pháp đáng chú ý:
- netdump: truyền sự hoảng loạn qua TCP / IP. Dựa vào hệ thống con TCP / IP không bị hỏng.
- kdump: dường như là cơ chế cơ bản của linux-crashdump được đề cập tại: https://askubfox.com/a/104793/52975 Khởi động kernel Linux thứ hai để kiểm tra kernel bị lỗi. Cái gì có thể đi sai?! :-)
Xem thêm câu trả lời tuyệt vời này: https://unix.stackexchange.com/questions/60574/determining-cause-of-linux-kernel-panic
Bước gỡ lỗi
Cuối cùng, nhận được đầu ra hoảng loạn đòi hỏi một số chức năng hạt nhân hoạt động và bất kỳ chức năng hạt nhân nào cũng có thể bị hỏng bởi sự hoảng loạn.
Nhưng ai cần hoảng loạn nếu bạn có thể sử dụng GDB trên kernel? Nếu bạn là người khó tính, hãy xem:
Mọi vấn đề đều rơi khi bạn có tầm nhìn đầy đủ (và đủ thời gian!).