ltib(2)小试

上周朋友来电话问ARM接SATA硬盘的问题,如果CPU不带SATA口,或带的SATA口不够用,通常可以用PCI转SATA的芯片扩展SATA口。ATP8624就是这样的芯片,可以将1路PCI转为4路SATA。

ATP8624的驱动源码就2个文件:atp8624.h和atp8624.c。原先顺利的加到cortina的NAS板的kernel source里面了。现在换成了MPC平台,MPC8379E是有4个SATA口的,在加上ATP8624扩展的,一共就可以有8个SATA接口了。

今天在ltib下把ATP8624的驱动源码加到了kernel source,算是ltib的小试了。虽然有些特殊,但kernel也属于ltib的一个packet。所以这样的工作应该属于ltibFaq里面的“How do I make changes to a package and capture them ”。

 

第一步 解压出源码包

$./ltib -m prep -p kernel

 

第二步 修改源码包

解出的源码包在/rpm/BUILD下,我的是linux-2.6.25。现在可以对这个源码包进行修改操作。添加ATP8624的驱动主要有三步:把atp8624.h和atp8624.c复制进source tree;修改其所在目录的makefile添加编译选项;修改其所在目录的kconfig文件添加配置界面选项。

 

第三步 编译,安装和部署

修改完成后,按下面的步骤分步重新编译,安装和部署kernel。

$./ltib -m scbuild -p kernel

$./ltib -m scinstall -p kernel

$./ltib -m scdeploy -p kernel

或使用

$./ltib --configure

在LTIB配置界面中选择配置内核,然后在配置内核时将/device driver/scsi目录中出现的ATP8624的选项选中。

 

第四步 生成一个patch文件并更新spec文件

命令如下:

$./ltib -m patchmerge -p kernel

这一步非常重要,不做这一步,ltib就不会保存你对kernel这个package做的修改。ltib的自动化就显现不出来了。而且,patch会清晰的记录你对package做的修改。

生成的patch文件在

/opt/freescale/pkgs目录下,每个patch都有独立的编号

而对应的/dist/lfs-5.1/kernel/kernle-2.6.25-mpc837xerdb.spec.in也被更新

我生成的patch文件是kernel-2.6.25-1270523050.patch

查看kernle-2.6.25-mpc837xerdb.spec.in文件可以看到这个patch编号为patch12。

......

Patch10         : kernel-2.6.25-MPC837xE-RDB-add-esdhc-support.patc。
Patch11         : kernel-2.6.25-MPC837xE-RDB-add-PM-support.patch

Patch12          : kernel-2.6.25-1270523050.patch

......

至此ATP8624的驱动添加完成。注意这里采用的是将驱动添加到内核中的方法。当然也可以将驱动编译为ko模块格式,放到文件系统中,在系统启动后再进行驱动加载。


你可能感兴趣的:(ltib(2)小试)