2012-07-24 80 views
2

我有一個安卓手機Galaxy S3。我想爲它開發一個USB設備驅動程序。 所以我做了一個簡單的驅動程序,它是用Galaxy S3 Linux Kernel編譯的。但是我不能在沒有root權限的情況下執行'insmod'命令。是否可以開發和運行Android手機的設備驅動程序?

是否有可能爲Android手機開發設備驅動程序?

此外,驅動程序源代碼是一個典型的具有open(),close(),read(),write()函數的字符設備驅動程序示例。

而且一個錯誤信息是:

  1. insmod的:權限被拒絕
    (沒有根許可)

  2. insmod的:無效模塊格式
    (具有通過「生根根權限'我認爲內核是因爲'rooting'而改變的,而設備驅動程序是用三星公司發佈的原始Galaxy S3 Linux Kernel編譯的。)

+0

描述你想要的驅動程序。把你的簡單驅動程序和錯誤信息。將標籤添加到當前話題中,併爲您編寫驅動程序的語言。 – nk9 2012-07-24 12:42:06

+0

我現在編輯這篇文章。 – Joel 2012-07-24 14:26:20

+0

有人告訴我Android Host API(http://developer.android.com/guide/topics/connectivity/usb/host.html) – Joel 2012-07-24 23:44:15

回答

2

是的,只要您有以下任何一種安卓手機,都可以開發設備驅動程序:
- 訪問該特定手機的Linux內核源代碼。
- 可以訪問設備上的根shell。

需要訪問內核源代碼,以便可以構建針對該特定內核的內核模塊。需要root shell來insmod內核模塊。

關於Android手機上的USB主機支持,某些手機擁有內置的USB主機支持,並支持USB主機模式。但需要有proper USB-cables連接外設。

還要克服錯誤,

insmod的:無效的模塊格式

你可能想嘗試--force-vermagic標誌如下:

insmod --force-vermagic <module.ko> 

正如你所猜測的那樣,它實際上是一個錯誤,因爲內核上運行的內核版本號不匹配副作用以及該模塊所針對的內核。 更多詳細信息here

相關問題