全志H3平臺應用層使用串口出現權限不夠問題解決

  目前在使用全志H3完成一個項目,其中涉及到串口和下位機通信的問題,在應用層直接使用了Google開源的一個jni demo進行修改調試(google serial_port demo),應用界面如下:


 配置好串口通道和波特率之後,出現了”you dont have read/write permission to the serial port“的提示,平臺只留下了一路串口,已經測試串口端口哈選擇沒有錯誤,而Android平臺波特率也應該是115200,顯然,這是因爲權限不足導致。而且在測試的時候發現如果選擇ttyS2的話就沒有權限限制的問題,這證明ttyS2的權限是的打開的,但是ttyS0卻沒有設置。但幸好這個串口能夠打印系統信息出來,那麼通過secureCRT工具進入到設備去看看ttyS2 和ttyS0是個什麼狀態,果然,ttyS2是默認就能夠讀寫的:


  而ttyS0的權限爲:crw-----,設備很顯然是不能夠讀寫的,所以纔出現了上述的提示,然後在這裏手動修改了ttyS0的權限:chmod 777 dev/ttyS0然後再次通過串口應用demo進進行訪問則ok了,這更加證明問題就在於此。那麼如何去系統源碼裏面去修改默認讀寫權限呢?之前在使用Samsung 6818平臺的時候有轉過一篇文章:http://blog.csdn.net/zhaoqi2617/article/details/53392495 ,裏面也提到了修改相應的init.rc文件,增加權限,但是平臺不一樣,相應的文件路徑也完全不同,名稱也可能不同,因此不可能直接搜索得到。但且本平臺的ttyS2權限已經有修改過,因此隨着這寫線索去找ttyS2的權限配置肯定比全局搜索來的快很多,在android 目錄下的方案文件夾下面,進入到自己的方案文件夾,可是並沒有找到一個像樣的.rc文件,搜索了一下ttyS2也沒有找到相應的配置線索。於是退回到上一級目錄,進入到公版的方案目錄內,找到一個init.sun8i.rc的文件,打開後搜索,果然發現了ttyS2的權限配置:


  那麼肯定要在這裏添加ttyS0的權限了,依葫蘆畫瓢,即:chmod 0777 /dev/ttyS0。退出後保存,準備編譯,但是!突然想到個問題,這個是在公版方案裏面修改的,我編譯的並不是公版方案,能夠起作用嗎?於是想到肯定在自己的方案目錄裏面有相應的文件調用或者配置,搜索了自己方案目錄內的情況,在方案.mk文件裏面有:include device/~~/dolphin-common.mk那麼再去看看看dolphin-common.mk文件裏面是否有定義:


     上圖中在dolphin-common.mk文件當中已經對init.sun8i.rc進行了定義,因此反推回去,在common裏面進行的配置是能夠在自己的方案裏面生效使用的。最後編譯android部分,刷機。進入到dev/下查看uart0/ttyS0的權限已經變成默認可讀寫了。








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章