学习Linux驱动编程一定要了解Linux驱动只与Linux内核有关,与用户使用的Linux系统(Ubuntu Linux、Fedora Linux、Android 等)无关。也就是说,不管是哪个 Linux 系统,只要使用了同样的Linux内核,驱动就可以通用。唯一可以判断Linux内核是否相同的方法就是Linux内核版本号。只有组成内核版本号的五部分完全相同,才能说明两个Linux系统的内核是相同的。从这一点可以看出,学习Android驱动开发,实际上就是 学习Linux驱动开发,只是Android增加了一个HAL,这是Android特有的。一般的Android驱动都会有对应的HAL不过HAL也不是必需的,通过NDK也可以直接访问Linux驱动。但Google建议最好为Linux驱动编写对应的HAL程序库。
Android的系统架构分为4层:1.Linux内核 2.C/C++代码库 3.Android SDK API 4.应用程序。Android移植的主要工作是:移植Linux驱动;移植HAL.查看Linux系统的内核版本 1.uname –a 2.cat /proc/version学习Linux 驱动要做些什么:1.准备一个自己熟悉的Linux 操作系统,用于开发和测试Linux 驱动,建议使用Ubuntu Linux14.04 及以上版本。2.准备一块开发板(建议采用基于ARM11的开发板)。3.学习GNUC。4.学习相关的硬件知识。5.不断地实践。