星期一
编译android并在windows下利用工具烧写
主要过程记录如下
在项目根目录执行 ./mkimage.sh 会在rockdev/Image-rk4388中生成8个文件:Boot.img recovery.img …
cd RKTOOL/windows
cp -R AndroidTools /home/lxm/share
cp -R DriverAssistant_v4.2 /home/lxm/share
cd ../../rockdev/Image-rk4388
cp *.img *.txt *.bin /home/lxm/share
cd RKTOOL/windows/DriverAssitant_v4.2
安装驱动:
cd RKTOOL/windows/AndroidTools/AndroidTool_Release_v2.35
出现如下界面:导入相应文件(对应8个;有2个没有)
开启板子,直到出现“发现MUSKROM设备”字样,点击“执行”;
星期二
上午:主要是帮助同学对其编译好的android源码进行烧写(通过samba服务远程操作);
下午:学长给我们介绍了BootLoader引导子程序;
内容包括了解platform总线,IIC总线驱动,input子系统等;熟悉makefile、KCONFIG;了解驱动所在的位置
星期三
上午:
将android源码导入SourceInsight以便阅读,由于文件数量众多,耗时较长;
了解linux驱动基本概念:
2.1. 什么是驱动程序:
2.2. 有什么作用:
2.3. 分类:- 字符设备;
1 . 所有能够象字节流一样访问的设备都通过字符设备来实现
2 . 它们被映射为文件系统中的节点,通常在/dev/目录下面
3 . 一般要包含open read write close等系统调用的实现 - 块设备;
1 . 通常是指诸如磁盘、内存、Flash等可以容纳文件系统的存储设备。
2. . 块设备也是通过文件系统来访问,与字符设备的区别是:内核管理数据的方式不同
3. . 它允许象字符设备一样以字节流的方式来访问,也可一次传递任意多的字节。 - 网络接口设备。
1. 通常它指的是硬件设备,但有时也可能是一个软件设备(如回环接口loopback),它们由内核中网络子系 统驱动,负责发送和接收数据包。
2. 它们的数据传送往往不是面向流的,因此很难将它们映射到一个文件系统的节点上
- 字符设备;
- 如何搭建驱动开发环境
- 下载并编译linux内核源码;(已下载)
- 配置内核选项;(make menuconfig)
- 编译内核。 (make)
- 了解linux内核中Kconfig文档的作用:
可以发现,在linux源码目录中,各级目录均会有2个文件:Kconfig与Makefile;
- 作用:分布在各目录下的Kconfig构成了一个分布式的内核配置数据库,而每级目录中的Kconfig文件分别描述了该目录中源文件相关的内核配置菜单;在内核配置make menuconfig(或xconfig等)时,从Kconfig中读出配置菜单,用户配置完后保存到.config(在顶层目录下生成)中。在内核编译时,主Makefile调用这个.config,就知道了用户对内核的配置情况。
- 说明:
- Kconfig对应着内核的配置菜单;
- 要添加新的驱动到内核源码中,可修改Kconfig来增加对驱动的配置 菜单,而如果想编译这个驱动,还要修改该驱动所在目录下的Makefile
- 因此,添加新的驱动时要修改的文件有两种:Kconfig和Makefile;