现在的位置: 首页 > 综合 > 正文

linux kernel 模块中的hello world

2013年01月07日 ⁄ 综合 ⁄ 共 963字 ⁄ 字号 评论关闭

        OK6410源码中提供了hello world模块,位于6410\linux-3.0.1\drivers\char目录下,我想测试下这个模块,结果搞了我几乎一天时间还没完全搞好,敲打悲剧,飞凌提供的资料太悲剧了。

        1、在装好linux的板上,用dnw: ismod发现没有模块在运行,于是查看/lib下没有modules文件夹,也找不到哪里有.ko文件(没仔细找,net的除外)。

        2、进入linux3.0.1目录,make menuconfig 中把forlinx6410_hello_module选为M,编译make,在\linux-3.0.1\drivers\char下发现forlinx6410_hello_module.ko文件

        3、下面就是最烦的文件系统了,我想把forlinx6410_hello_module.ko文件拷贝到板子上运行,因为我没有用NFS,所以要加到文件系统里,编译烧录进nand

        4、文件系统怎么搞呢,之前一直用现成的mkyaffs2image-nand2g,现在自己制作。。。把forlinx6410_hello_module.ko文件拷贝到文件系统目录的lib\modules下,用

./mkyaffs2image-nand2g FileSystem-Yaffs2 rootfs.yaffs2命令制作,悲剧出来了,生成的rootfs.yaffs2文件近500M,发火,根本就DNW不进去啊,DDR是512M的。。。。

飞凌现成的mkyaffs2image-nand2g才139M,咋回事我也不知道,谷歌也没帮上我。。

      5、没办法啊,参考OK6410上构建自己的根文件系统自己搞个文件系统吧,同样把forlinx6410_hello_module.ko文件拷贝到文件系统目录的lib\modules下,编译出来只有29M,这次够小了,只是没有了QT,生成的文件要记得chmod
777
,烧录进nand,reset

     6、进入文件系统lib\modules下insmodforlinx6410_hello_module.ko,dnw下显示出了hello,world,靠就这样,lsmod发现hello已运行。

     欧了,一天就搞了这鸟东西。

抱歉!评论已关闭.