Tôi đang phát triển một hệ thống nhúng hiện khởi động Linux với đầu ra console trên cổng nối tiếp 1 (sử dụng param khởi động bàn điều khiển từ bộ nạp khởi động). Tuy nhiên, cuối cùng chúng ta sẽ sử dụng cổng nối tiếp này. Giải pháp tốt nhất cho đầu ra của bàn điều khiển hạt nhân là gì?/dev/null? Nó có thể được đặt trên một pty bằng cách nào đó để chúng tôi có khả năng có thể truy cập vào nó?Bạn gửi bảng điều khiển hạt nhân ở đâu trên hệ thống nhúng?
Trả lời
Nếu bạn chỉ muốn đọc thông điệp in hạt nhân từ bàn điều khiển và không thực sự chạy getty hoặc vỏ trên đó, bạn có thể sử dụng netconsole. Bạn có thể cung cấp các tùy chọn sau đây để bootloader kernel của bạn (hoặc để modprobe netconsole):
[email protected]/eth1,[email protected]/12:34:56:78:9a:bc
nơi 4444 là cổng địa phương, 10.0.0.1 là ip địa phương, eth1 là giao diện địa phương để gửi các thông điệp ra khỏi . 9353 là cổng từ xa, 10.0.0.2 là ip từ xa để gửi tin nhắn đến, và đối số cuối cùng là địa chỉ mac của hệ thống từ xa (ví dụ: desktop của bạn).
Sau đó, để xem các thông điệp chạy:
netcat -u -l -p 9353
Bạn có thể đọc thêm về điều này trong Documentation/networking/netconsole.txt
Bạn có thể truy cập vào bộ đệm nhắn printk từ một vỏ sử dụng dmesg. Bộ đệm hạt nhân có kích thước hữu hạn và sẽ ghi đè lên các mục cũ nhất với các mục nhập mới nhất, vì vậy bạn cần phải kiểm tra dmesg theo định kỳ hoặc nối lên netconsole như @bmdhacks gợi ý.
Nếu không có bảng điều khiển, bạn sẽ bỏ lỡ bất kỳ thông tin oops nào được in ra do lỗi hạt nhân. Ngay cả khi sử dụng netconsole có thể không giúp đỡ ở đó, nếu hạt nhân chết và bắt đầu khởi động lại trước khi TCP quản lý để cung cấp đầu ra đến socket từ xa. Chúng ta thường sửa đổi kernel/panic.c: panic() để lưu các nội dung đăng ký và trạng thái khác vào một vùng flash NOR, vì vậy sẽ có ít nhất một số thông tin có sẵn để gỡ lỗi sau khi chết.
- 1. Bảng gọi hệ thống trong hạt nhân Linux ở đâu?
- 2. Làm thế nào để gỡ lỗi hạt nhân oops trên hệ thống nhúng
- 3. Thay đổi số hệ thống hạt nhân linux
- 4. C#, Ninject: Bạn đặt hạt nhân và mô-đun của bạn ở đâu?
- 5. Tìm kiếm triển khai cuộc gọi hệ thống trên hạt nhân Linux
- 6. malloc trong hệ thống nhúng không có hệ điều hành
- 7. NInject: Bạn giữ tài liệu tham khảo của mình ở đâu trong hạt nhân?
- 8. Truyền DMA trong trình điều khiển hạt nhân Linux PCIE
- 9. Tomcat 7 - Tôi đặt 'thuộc tính hệ thống' ở đâu?
- 10. Lập trình trình điều khiển thiết bị hạt nhân Linux
- 11. Hiệu suất trên cao của hệ thống con sự kiện Perf trong hạt nhân Linux
- 12. Điểm Sprites cho hệ thống hạt
- 13. Mối quan hệ giữa hệ điều hành Linux và hạt nhân là gì?
- 14. Ở đâu trên hệ thống tệp là lớp Java của tôi được tải từ?
- 15. Hiệu ứng hệ thống trên hiệu suất
- 16. làm thế nào để chương trình giao tiếp - hạt nhân vi hạt nhân nguyên khối hạt nhân exo
- 17. GLSL PointSprite cho hệ thống hạt
- 18. Thêm một cuộc gọi hệ thống mới trong hạt nhân Linux 3.3
- 19. Thực hiện hạt nhân quan hệ Fisher
- 20. Bảng điều khiển lớp phủ (ở trên một hình khác)
- 21. Bàn điều khiển Supress khi gọi "hệ thống" trong C++
- 22. Thực hiện các cuộc gọi/bẫy hệ thống trong nguồn hạt nhân Linux
- 23. Hệ thống hạt libgdx Z phối hợp
- 24. Xử lý sự kiện nhấp ở bất kỳ đâu trong bảng điều khiển trong C#
- 25. Điều khiển hiển thị trên một bảng điều khiển khác
- 26. Bạn có biết giấy chuyên nghiệp/con tốt trên hệ thống điều khiển phiên bản (git/mercurial/svn/cvs) không?
- 27. Nhúng bảng excel trong điều khiển người dùng C#
- 28. Tải mô-đun hạt nhân trong hạt nhân Android
- 29. Đọc các sự kiện hệ thống tệp từ hạt nhân Linux mà không có Inotify
- 30. trong MVC, bạn vẽ đường thẳng giữa bộ điều khiển và mô hình ở đâu?
cảm ơn câu trả lời. Trên sản phẩm cuối cùng, tôi cho rằng tôi có thể gửi netconsole đến 127.0.0.1 và sau đó đọc từ cổng trong một shell nếu tôi cần – MattSmith