2012-07-06 29 views
1

我正在構建我的第一個Android圖像,我注意到編譯新內核與使用vanilla linux內核可以完成的操作非常相似,因此沒有任何問題。由於一個完整的Android解決方案由2個內核+所謂的「平臺」組成,我即將構建平臺並編譯代碼,問題是我注意到我必須設置一些一些屬性的值,例如藍牙的值,這些值是藍牙所必需的,以便被識別並且簡單地工作,我的問題是:我設置了什麼? Android下的驅動相關架構是什麼?誰提供Android,內核或平臺下的驅動程序?

我不明白這一點,因爲大多數商業電話有一個不支持模塊的內核,所以如果不能從內核的地方加載驅動程序,這個東西是如何工作的?

+0

有內核和用戶空間的「驅動程序」。一個通用的例子就是熔絲文件系統。但是對於許多硬件組件來說,接口通道是相對容易理解的,並且可能使用內核驅動程序(例如i2c),但是在該接口上說出什麼來完成結果的知識包含在用戶空間組件中,可能是專有二進制文件。 – 2012-07-06 16:17:52

回答

0

This post在Android上有很多很好的信息。 Android中的Linux內核使用由內核加載和維護的驅動程序。你也可以使用內核模塊:Building kernel module for Android

要加載Android的下一個驅動程序:

您將需要一個開發環境設置交叉編譯的Android設備,然後編譯源作爲一個模塊,並加載到來自命令行的內核:

insmod <module> 

如果您沒有收到錯誤,則會加載它。

+0

這是我已經知道的,但這只是加強了我的疑問,關於爲平臺設置所有這些標誌有什麼意義?這是架構,但它是如何工作的?我也不在乎我不寫關於它們的內核模塊,我只是想知道驅動程序是如何工作的。 – user827992 2012-07-06 15:05:40

+0

@ user827992問題是,Android就像任何其他Linux發行版一樣。內核控制/加載驅動程序。 – 2012-07-06 15:09:58

+0

@AlexW與其他現代Linux發行版一樣,「驅動程序」並不一定都在內核空間中。 – 2012-07-06 16:19:12

1

完整的Android操作系統由三部分組成。 1)官方的AOSP源代碼。 2)一個特定於設備的內核。 3)專用的二進制文件,用於特定設備(用於像相機,傳感器等硬件的驅動程序)。

1)官方AOSP源代碼,你可以下載使用回購同步訪問鏈接Start Here

2)設備專用內核 您從device.They的生產廠家得到它提供的內核二進制圖像。

3)設備特定的二進制 你必須將它連接到您的pc.You可以谷歌爲您的設備從設備提取它configuration.You可以找到關於github.com各種設備配置例如Device configuration for lenovo ideapad a1 你會發現extract-files.sh文件。運行此文件以獲取您的驅動程序。這是從設備中提取專有二進制文件的Linux shell腳本。

我希望這會有所幫助。 謝謝。

+0

謝謝,但我問及驅動程序是如何工作的,我知道如何構建基本的Android圖像。 – user827992 2012-07-06 15:06:56

+1

在Android下沒有像驅動程序相關的架構。 驅動程序不是AOSP的一部分。 – 2012-07-06 15:09:24

+0

當然驅動程序是AOSP的一部分,特別是但不僅限於內核。但它通常不具備製造特定專有設備所需的所有驅動程序。 – 2012-07-06 16:15:05