有沒有辦法將自己的RS232 AVR設備作爲Linux文件系統設備公開/dev/avr_device
?程序必須寫成內核空間模塊還是寫入用戶空間?這可能由libfuse
做到嗎?也許我應該使用FIFO管道作爲設備的通信通道?自己的RS232設備作爲Linux文件系統設備
0
A
回答
0
要能掛載設備,在其中您已經安裝了Linux文件系統,你需要的設備是一個塊設備,但串行tty設備是一個字符設備,與不兼容。
爲了能夠在系統的經典視圖中解決這個問題,您需要開發一個塊設備驅動程序,該驅動程序連接到該char設備(串行端口)並使用它來控制de設備仿真協議,這意味着將塊號碼和塊數據轉換成要通過串行線路發送到另一側的接收器的分組並實現作爲某種存儲設備的塊設備細節。這可以通過一些努力來完成....問題是如果使用慢速串行線將有興趣模擬任何類型的存儲。
最後一種方法的優點是你只需要模擬一個塊設備,並且能夠創建任何可用於Linux的本地文件系統。
在更高層次上,你可以實現一個文件系統類型,這是一個更高層次的抽象(保險絲允許你這樣做),但這使得這是一個更難的問題,因爲你必須實現每個文件系統原語(並相信我,模塊化文件系統比塊設備有更多的原語)將每個遠程原語實現爲一組局部原語(這對於單個編程人員來說是不可行的)
第二種方法完全修復了文件系統,並完全修復您可以對文件執行的一組操作,以便執行您編寫的原語。這是非常困難的,並且通常與系統的其他部分缺乏一致性,所以我不建議你採用這種方法。
第二種方法只有一個優點,它是:由於文件系統使用高級基元,因此它們可以更緊湊地編碼到網絡消息中,並通過線路更有效地傳輸,從而爲慢速連接提供更高的速度。但是這是以實現所有文件系統功能爲代價的,並且不利於使用這些文件系統(您必須實現用戶訪問,安全性,請求緩存等)的統一性。
在第一種方法,你只需要執行4次或5元,你得到的是可以在塊設備上安裝任何文件系統的所有功能。
相關問題
- 1. Linux系統調用來發現設備的文件系統
- 2. Linux系統剪貼板是否在文件系統中作爲設備表示?
- 3. 爲自己的設備
- 4. Java:系統設備
- 5. 具有自己的表徵系統的指紋設備?
- 6. 如何使用linux設備模型和/ sys文件系統?
- 7. 設備文件在Linux系統中打開失敗
- 8. Linux設備文件丟失
- 9. 系統通知 - iOS設備
- 10. 嵌入式設備系統
- 11. 移動設備操作系統
- 12. 您是否爲自己的移動設備編寫自己的CSS文件?
- 13. 創建設備文件:Linux設備驅動程序
- 14. 適用於iOS設備的RS232
- 15. 將Linux作爲USB UVC設備
- 16. 無法打開備份設備。操作系統錯誤5
- 17. 無法打開備份設備操作系統錯誤1392
- 18. 設備到設備推送通知系統
- 19. 選擇捕獲設備使用系統設備枚舉
- 20. QEMU,沒有可引導的設備時,Windows子系統的Linux
- 21. HTML5文件系統:文件未在設備上創建
- 22. 構建自己的Chromecast設備
- 23. 如何在yocto中爲RaspberryPI設置自己的設備樹?
- 24. 無法連接android設備到eclipse上的linux系統
- 25. 用於SMP系統的Linux設備驅動程序
- 26. 最大支持的操作系統爲特定設備
- 27. 是否由用戶啓用Exchange ActiveSync?設備?設備類型或操作系統?
- 28. linux編程:寫入設備文件
- 29. fseek char linux設備
- 30. Linux設備樹(AD5628)
你的問題沒有道理。內核僅具有用於連接到CPU和/或CPU的直接控制下的控制器和外圍設備的設備驅動程序。由於*「自己的RS232 AVR器件」 *似乎是指一些SBC外部於Linux系統,爲什麼會是Linux內核有一個司機和該板上的設備節點?順便說一句,你似乎有點關注設備可以表現爲文件的方面。 – sawdust
如果工作量充足,您可能可以使用熔斷器進行此操作。但是,這種努力恐怕只有合理的,如果你真的需要您的設備型號爲一個文件系統,而不是從這樣的對待所有的硬件收益。 –