3

我正在构建我的第一个 Android 映像,我注意到编译新内核与使用 vanilla linux 内核所做的非常相似,所以没问题。

由于一个完整的Android解决方案由两部分组成,内核+所谓的“平台”,我即将构建平台并编译代码,问题是我注意到我必须为某些属性设置一些值就像蓝牙的一样,蓝牙需要这个值才能被识别并简单地工作,我的问题是:我在设置什么?Android下驱动相关的架构是什么?

我也无法理解这一点,因为大多数商用手机都有一个不支持模块的内核,所以如果不能从内核之外的地方动态加载驱动程序,这东西是如何工作的?

4

2 回答 2

2

完整的 Android OS 由三部分组成。1)官方AOSP源代码。2) 设备特定的内核。3) 特定设备的专有二进制文件(摄像头、传感器等硬件的驱动程序)。

1) 官方 AoSP 源代码,您可以使用 repo sync 访问链接Start Here下载

2) 设备特定内核您从设备制造商处获得。他们将提供内核的二进制映像。

3) 设备特定的二进制文件您必须通过将设备连接到您的 PC 来从设备中提取它。您可以通过 google 搜索您的设备配置。您可以在 github.com 上找到各种设备配置,例如lenovo ideapad a1的设备配置 您会找到提取-files.sh 文件。运行此文件以获取您的驱动程序。这是从设备中提取专有二进制文件的 linux shell 脚本。

我希望这有帮助。谢谢你。

于 2012-07-06T15:05:09.280 回答
1

这篇文章有很多关于 Android 的好信息。Android 中的 Linux 内核使用由内核加载和维护的驱动程序。您还可以使用内核模块:Building kernel module for Android

在 Android 下加载驱动程序:

您将需要一个开发环境设置来为 Android 设备进行交叉编译,然后将源代码编译为模块并从命令行将其加载到内核中:

insmod <module>

如果您没有收到错误,则它已加载。

于 2012-07-06T14:59:27.480 回答