




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Source code:Hello.c#include <linux/init.h>#include <linux/module.h>MODULE_LICENSE("Dual BSD/GPL");static int hello_init(void) printk(KERN_ALERT "Hello, worldn"); return 0;static void hello_exit(void) printk(KERN_ALERT "Goodbye, cruel worldn"); module_init(he
2、llo_init);module_exit(hello_exit); Makefileobj-m :=hello.oK_DIR = $(shell uname -r)PWD = $(shell pwd)all: make -C /lib/modules/$(K_DIR)/build M=$(PWD) modulesclean: make -C /lib/modules/$(K_DIR)/build M=$(PWD) clean 如果模块有多个文件,可以这样写obj-m :=scull.oscull-objs := main.o pipe.o access.o将生成scull.ko模块模块安装:
3、insmod hello.ko显示已装载的模块:lsmod模块卸载:rmmod hello编译环境fedro9 kernel 2.6.25-14.fc9.i686安装内核源码包:rpm Uvh kernel-2.6.25-14.fc9.i686.src.rpm这个命令将 RPM 内容写到路径 /usr/src/redhat/SOURCE我把代码2.6.25解到/usr/src/kernels/2.6.25-14.fc9.i686下,这和我的模块编译用的Makefile有关。可能遇到的问题1.出现很多编译错误到kernel所在目录执行make prepare/ make config,这是没有配
4、置好源码树的原因。可能还需要KBUILD2.错误提示: /bin/sh: scripts/mod/modpost: No such file or directory出现这样的错误,说明scripts下没有生成相应的文件MODPOST,cd到kernel所在目录,执行: make scripts 3.安装时失败,提示invalid module format,多是因为编译依据的内核与操作系统不一致(装载时会做很多检查,比如是否支持SMP,这些都是通过make config设置的,也可以将/boot/config-2.6.25-14.fc9.i686 拷贝到内核源代码目录下如/usr/src/k
5、ernels/2.6.25-14.fc9.i686 ),首先要保证内核与操作系统一致。然后,需要修改kernel源代码根目录下的MakefileEXTRAVERSION = -14.fc9.i686 (这个值根据uname r 的返回结果修改,我的为2.6.25-14.fc9.i686)4.如果没有看到打印信息可以到文件/var/log/messages中去找Fedora9中安装Vmware Tools安装失败问题2012-02-26 20:16:18分类: 嵌入式今天我在Fedora9中安装VMware Tools的时候出现以下问题(一路回车过来):What is the location
6、of the directory of C header files that match your running kernel? /usr/src/linux/includeThe path "/usr/src/linux/include" is not an existing directory.网上查找资料后得知出现这样的错误的主要原因是VMware无法找到内核的头文件,或者内核的头文件和当前的内核不相符,顺便查看目录/usr/src/ 根本没有linux这个目录,只有/usr/src/redhat.最终解决方案如下:第一步:下载相应的kernel devel包(即
7、后面下载的kernel-devel-2.6.25-14.fc9.i686.rpm)先查看下内核版本号rootlocalhost # uname -r2.6.25-14.fc9.i686rootlocalhost # rpm -q kernel-i686-devel /-q 使用询问模式,当遇到任何问题时,rpm指令会先询问用户。 package kernel-xen-devel is not installed这是i686的内核,所以,要安装对应版本号的 kernel-i686-devel rpm包:下载地址:第二步:安装kernel-devel-2.6.25-14.fc9.i686.rpm现
8、在遇到个问题,怎么把PC机下载的文件放到虚拟机里面去,因为vmware tools没安装失败,不能用共享哪种方式了,这里借助于虚拟光驱UltraISO将kerc6.rpm另存为kernel-devel-2.6.25-14.fc9.i686.iso,然后再用虚拟机加载ISO文件,就可以在虚拟光驱的光驱里面看到kernel-devel-2.6.25-14.fc9.i686.rpm文件了把kernel-devel-2.6.25-14.fc9.i686.rpm复制到/usr/src目录下面rootlocalhost # rpm -ivh kernel-devel-2.6.25-14.fc9.i686.
9、rpm/-v 显示指令执行过程 -i安装rpm包 -h或-hash安装时列出标记#完成安装后,在/usr/src/下已经多出了一个kernels目录注意:如果你解压后发现在/usr/src目录下没有kernels目录,但是有个usr目录,请把usr目录下的kernels复制到/usr/src目录下(网友遇到情况) rootlocalhost src# cd kernelsrootlocalhost kernels# ls2.6.20-2925.9.fc7.i686.rpm表明kernel-xen-devel已经装好了再次使用vmware-install.pl安装,./vmware-instal
10、l.pl就一直enter,装完VMware Tools(可自动找到配套的the directory of C header files了,哈)在安装的最后阶段,会出现:Do you want to change your guest X resolution? (yes/no) no yPlease choose one of the following display sizes (1 - 13):1 "640x480"2< "800x600"3 "1024x768"4 "1152x864"5 "
11、1280x800"6 "1152x900"7 "1280x1024"8 "1376x1032"9 "1400x1050"10 "1680x1050"11 "1600x1200"12 "1920x1200"13 "2364x1773"Please enter a number between 1 and 13:3重启系统reboot,OK了Sentimental编译时内核怎么生成的ko文件?2012-05-06 22:40:37
12、发信人: Sentimental (Sentimental), 信区: Embedded标 题: 编译时内核怎么生成的ko文件?发信站: 水木社区 (Sun May 6 22:40:37 2012), 站内编译时内核怎么生成的ko文件?接我的上一贴,我用的是嵌入式Linux,在内核生成modules时出现问题。1首先我在make menuconfig时选择了我想编译进内核的模块,比如CONFIG_USB_SERIAL, CONFIG_USB_STORAGE。2编译内核成功3make *modules4make module module_install 但是在我的开发板$(target)/li
13、b/modules/(version)/kernel中却只有STORAGE的ko文件。回到内核中查看,usb/storage中生成了ko但是usb/serial中只有o没有ko,说明根本没有生成。比较了两个文件夹的Kconfig与Makefile,发现木有大的功能上的差别,也没有提到模块的生成问题。查看了一下根目录的.config中CONFIG_USB_SERIAL明明定义了的,auto.conf也定义了。现在实在不明白为什么没有生成我配置了的ko文件?在哪里改定义?估计现在生成以及安装的模块可能都是某个文件中默认的,不过在哪里改?希望板上大牛指教,或者交流一下!先多谢! 来源:·水
14、木社区 ·FROM: 220.181.118.* lmRe: 编译时内核怎么生成的ko文件?2012-05-07 09:52:35发信人: lm (lm), 信区: Embedded标 题: Re: 编译时内核怎么生成的ko文件?发信站: 水木社区 (Mon May 7 09:52:35 2012), 站内生成ko文件,要make menuconfig的时候模块选择为“M”吧 来源:·水木社区 ·FROM: 210.160.252.* SentimentalRe: 编译时内核怎么生成的ko文件?2012-05-07 12:28:17发信人: Sentimental
15、 (Sentimental), 信区: Embedded标 题: Re: 编译时内核怎么生成的ko文件?发信站: 水木社区 (Mon May 7 12:28:17 2012), 站内你好,我想问一下设成y与设成M有什么区别?有次我看网上说使用SCSI时设为y比较好,这些也设成y了【 在 lm 的大作中提到: 】: 生成ko文件,要make menuconfig的时候模块选择为“M”吧 WinterChenRe: 编译时内核怎么生成的ko文件?2012-05-07 12:38:39发信人: WinterChen (Xiaohu), 信区: Embedded标 题: Re: 编译时内核怎么生成的k
16、o文件?发信站: 水木社区 (Mon May 7 12:43:40 2012), 站内请参考LINUX_DIR/Documentation/kbuild/makefiles.txtm就是把该“功能”编译生成*.ko,需要手动insmod,loader负责运行相应的init_module。优点是灵活y就是把该“功能”编译进内核,内核启动时自动运行相应的init_module()。优点是自动【 在 Sentimental (Sentimental) 的大作中提到: 】: 你好, : 我想问一下设成y与设成M有什么区别?有次我看网上说使用SCSI时设为y比较好,这些也设成y了 修改:·Wi
17、nterChen 于 May 7 12:44:41 2012 修改本文·FROM: 61.148.17.* 来源:·水木社区 ·FROM: 61.148.17.* SentimentalRe: 编译时内核怎么生成的ko文件?2012-05-07 13:03:38发信人: Sentimental (Sentimental), 信区: Embedded标 题: Re: 编译时内核怎么生成的ko文件?发信站: 水木社区 (Mon May 7 13:03:38 2012), 站内你好,非常感谢!我之前自编了简单的UART小驱动,先insmod,再mknod,然后在测试程序
18、中fd=open("/dev/uart",0_RDWR).我将小驱动的文件夹放到内核文件下的/drivers下并建立Kconfig与Makefile。如果我选择M,那么与之前的操作还是一样的吧?insmod,mknod如果我选择y,那么就不用insmod,但是还得分配节点是么?内核能不能自动分配节点?【 在 WinterChen 的大作中提到: 】: 请参考LINUX_DIR/Documentation/kbuild/makefiles.txt : m就是把该“功能”编译生成*.ko,需要手动insmod,loader负责运行相应的init_modu : le。优点是灵活
19、: . SentimentalRe: 编译时内核怎么生成的ko文件?2012-05-07 13:07:21发信人: Sentimental (Sentimental), 信区: Embedded标 题: Re: 编译时内核怎么生成的ko文件?发信站: 水木社区 (Mon May 7 13:07:21 2012), 站内还有个问题我的USB-storage一直选得是M而不是y,但是我没有手动加载,开机就可以查U盘并读写文件。而自己的uart为什么要手动加载呢?【 在 WinterChen 的大作中提到: 】: 请参考LINUX_DIR/Documentation/kbuild/makefiles
20、.txt : m就是把该“功能”编译生成*.ko,需要手动insmod,loader负责运行相应的init_modu : le。优点是灵活 : . 来源:·水木社区 ·FROM: 220.181.118.* lmRe: 编译时内核怎么生成的ko文件?2012-05-07 14:51:30发信人: lm (lm), 信区: Embedded标 题: Re: 编译时内核怎么生成的ko文件?发信站: 水木社区 (Mon May 7 14:51:30 2012), 站内设成Y就直接编译到kernel的image中设置为M,编译为ko文件【 在 Sentimental 的大作中提到:
21、 】: 你好, : 我想问一下设成y与设成M有什么区别?有次我看网上说使用SCSI时设为y比较好,这些也设成y了 : 来源:·水木社区 ·FROM: 210.160.252.* WinterChenRe: 编译时内核怎么生成的ko文件?2012-05-07 16:29:11发信人: WinterChen (Xiaohu), 信区: Embedded标 题: Re: 编译时内核怎么生成的ko文件?发信站: 水木社区 (Mon May 7 16:33:19 2012), 站内我不知啊。你查一下自动运行的脚本(inittab开始),是不是某个脚本里insmod并mount了【 在 Sentimental (Sentimental) 的大作中提到: 】: 还有个问题 : 我的USB-storage一直选得是M而不是y,但是我没有手动加载,开机就可以查U盘并读写文件。 : 而自己的uart为什么要手动加载呢? : . 来源:·水木社区 ·FROM: 61.148.17.* WinterChenRe: 编译时内核怎么生成的ko文件?2012-05-07
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中生物学SSI教学培养学生科学思维的实践研究
- 数据中心机柜的隔震性能研究
- 大型活动安保培训
- 有害物质基础知识培训
- 预防儿童性侵课件
- 核心领导力培训
- 音乐课件的技能与技巧
- 音乐说课课件《梁祝》
- 市政污水管网改造项目节能评估报告(模板)
- 2025年电子用高纯气体项目建议书
- 《中学心理危机干预体系构建》
- 《我国税制结构分析》课件
- 智慧农业项目建设方案
- 人工智能模拟题
- 2024年下半年江苏南通启东市部分事业单位选调工作人员14人易考易错模拟试题(共500题)试卷后附参考答案
- 教师资格考试小学美术面试试题及答案指导(2025年)
- 污水处理工艺培训课件
- 住家保姆合同协议书模板
- AI如何赋能艺术教育-笔记
- 2024-2030年中国抗菌陶瓷市场经营效益与供需前景预测报告
- 矿泉水买卖合同样本
评论
0/150
提交评论