簡體   English   中英

在嵌入式Linux上處理設備的插入和移除

[英]Handling of device insertion and removal on Embedded Linux

我在QT(嵌入式linux)中有一個USB接口的應用程序。

當Pendrive插入時,內核為此發送信號,我想識別該信號並希望我的QT應用程序檢測到它。

我經歷了QT的Unix信號處理教程,但是找不到任何解決我問題的方法。

我實現了與本教程中相同的操作,但是我沒有找到檢測Pendrive的方法。 它只會殺死進程。

請通過以下鏈接。

QT Unix信號處理

我還發現使用Qt的QdBus庫。 我交叉編譯了它,但給了我Lidbus版本的錯誤。

還有其他方法可以從應用程序中檢測外部筆式驅動器嗎?

內核是廣播網絡鏈路的信息。 您可以,

  • 編寫一個自定義QSocket()獲取網絡鏈路信息。 請參閱: Qt Projects線程
  • 直接寫套接字代碼來獲取網絡鏈路信息
  • 使用libusb之類的現成工具包,它將使用netlink
  • 添加腳本udev.confmdev.conf寫一個文件,並使用QFileSystemWatcher ; 也可能是/ etc / fstab udevmdev是標准的熱插拔處理程序,它們具有配置文件,可讓您在事件上運行腳本。 底層機制還是netlink

如果要自動掛載文件系統,則分析netlink或使用/ etc / fstab可能更好。 如果選擇解析路徑,則需要解析name=value信息 搜索netlink ,這很容易。

我得到了使用mkdev.conf的busybox工具的解決方案。 我在其中添加了對USB pendrive檢測的支持,並使用udev實用程序在linux和Application信號處理程序之間架起了橋梁。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM