第5章 Android移植与驱动
通过学习本章Android移植与驱动,知道了Android移植和驱动的关系。其中,设备驱动程序包括内核驱动程序和用户空间驱动程序。Linux系统的设备分为3类:字符设备、块设备和网络设备。除网络设备外,字符设备与块设备都被映射到Linux文件系统的文件和目录,通过文件系统的系统调用接口open()、write()、read()、close()等函数即可访问字符设备和块设备。Android中内核的结构和标准的Linux2.6内核是基本相同的,Android在其中基础上增加了私有内容。Android专用驱动程序不是Linux的标准驱动,它们的作用是辅助系统运行,一般不操作实际硬件。Android的Logger驱动程序为用户层程序提供log的支持,这个驱动作为一个工具来使用。Android中常使用的设备主要有Framebuffer驱动、输入设备驱动、v412摄像头-视频驱动、OSS音频驱动、ALSA音频驱动、MTD驱动、蓝牙驱动、Wlan驱动。Android驱动的HelloWord实例。第一个ifep($(KERNELRELEASE,)目前并无用处,它的由来是指在Linux源码根目录下的Makefile编译内核时,KERNELRELEASE宏会被定义,那么如果是从源码根目录开始的make则会将myhello.o模块进行编译进内核。实验步骤有(1)将文件夹exl-hello-world复制到Linux环境中(2)#cd /home/linux/test/exl-hello-world (3)#make ( 4)通过inmod命令将模块加入内核 : #insmod insmod hello.ko 。 (5)通过lsmod查看内核模块: #lsmod |grep hello (6) 通过rmmod删除内核中的模块: #rmmodhello。