2010-06-12 16 views
6

Tôi đang học lập trình trong các hệ thống nhúng sử dụng Linux làm nền tảng chính của mình. Và tôi muốn tạo ra một dịch vụ quản lý sự kiện thiết bị. Dịch vụ này là ứng dụng/daemon không gian người dùng sẽ phát hiện xem mô-đun phần cứng được kết nối có kích hoạt sự kiện hay không. Nhưng vấn đề của tôi là tôi không biết tôi nên bắt đầu từ đâu.Liên kết không gian người dùng và không gian mạng Netlink

Tôi đã đọc về triển khai Netlink cho giao tiếp không gian người dùng-kernelspace và có vẻ như đó là một ý tưởng hay nhưng không chắc đó có phải là giải pháp tốt nhất hay không. Nhưng tôi đọc rằng trình quản lý thiết bị UDEV sử dụng Netlink để chờ một "uevent" từ không gian hạt nhân nhưng nó không rõ ràng đối với tôi làm thế nào để làm điều đó.

Tôi đã đọc về sysfs bỏ phiếu nhưng có vẻ như không phải là ý tưởng hay để thăm dò hệ thống tệp.

Bạn nghĩ gì về việc triển khai mà tôi nên sử dụng trong dịch vụ của mình? Tôi có nên sử dụng netlink (cứng/không có đầu mối làm thế nào để) hoặc chỉ bỏ phiếu các sysfs (không chắc chắn nếu nó hoạt động)?

Cảm ơn

+0

Bạn cũng có thể thông báo cho chúng tôi khi thư mục được đề cập trong các thay đổi của sysfs thay vì bỏ phiếu. – MikeK

Trả lời

1

Có, bỏ phiếu không được thông báo. Những tài nguyên này: Bài viết LJ trên Netlink, "Hiểu và lập trình với Netlink Sockets" làm cho nó có vẻ không khó để làm netlink. Đây là một ví dụ về ổ cắm netlink trong python.

udevtrigger là một tiện ích tuyệt vời để phản ứng với các thay đổi udev.

http://www.linuxjournal.com/article/7356

http://smacked.org/docs/netlink.pdf

http://guichaz.free.fr/misc/iotop.py

http://manpages.ubuntu.com/manpages/gutsy/man8/udevtrigger.8.html

1

Nếu tất cả các bạn làm là chờ đợi cho một sự kiện, bạn có thể sử dụng sysfs, sẽ được đơn giản hơn rất nhiều so với netlink. Ví dụ là tệp cạnh của hệ thống GPIO.

Các vấn đề liên quan