当前位置:  技术问答>linux和unix

如何添加驱动程序到系统

    来源: 互联网  发布时间:2016-09-20

    本文导语:    问一下 如果 自己编写了 一个helloworld的 小驱动程序,想加到正在使用的系统中试一下。 这样的话 需要重新编译内核吗?   我在系统 /usr/src/kernels  中的内核文件里, 所有的.c文件已经没有了。   如果我...

  问一下 如果 自己编写了 一个helloworld的 小驱动程序,想加到正在使用的系统中试一下。 这样的话 需要重新编译内核吗?
  我在系统 /usr/src/kernels  中的内核文件里, 所有的.c文件已经没有了。   如果我想试下这个驱动 是否要重新下载一个内核源码 到系统中呢 ?

  请大侠们 给我讲一下 增加驱动到系统的流程 谢谢

|
为你的驱动写Makefile,
添加例如obj-$(CONFIG__HELLO_WORLD) += hello_world.o

make modules编译出.ko文件, 

insmod helloworld.ko //装载,可为相对/绝对路径
rmmod helloworld //卸载,注意不带.ko

|
驱动的经典教材《Linux设备驱动程序》(Linux Device Drivers)
楼主自己找来看看吧,有很详细的步骤。

加载模块不需要重新编译内核,也不需要内核源代码。

|
不建议编进内核。还是编成.ko模块,然后再用insmod命令加载该模块吧,这样如果该驱动有问题的话,还可以手动把它给卸载掉,而不至于影响内核。

|
都知道如何编写helloworld了,却不知道如何将它编译成模块,说明你的准备工作很没到位,看书没看仔细就匆忙上位了。

|
这是我原来看的别人的些的文章 你可以照着写写 不知道对你有用不

C/C++ code1.在drivers/char/目录下建立一个first_driver_hello.c文件 
文件的内容如下/************************************* 
NAME:first_driver_hello.c 
COPYRIGHT:328977974@qq.com 
**************************************/ 
#include 
#include 
MODULE_LICENSE("GPL");staticint hello_init(void) 

printk("This is the first char driver!n");return0; 

}staticvoid hello_exit(void) 

printk("GoodBye,good luck!n"); 


module_init(hello_init); 
module_exit(hello_exit);2.在内核源码处添加对first_driver_hello.c驱动的支持 

修改drivers/char 目录下的Kconfig文件,添加如下内容 
config FIRST_DRIVER_HELLO 
tristate"FIRST DRIVER HELLO" 
depends on ARCH_S3C2440 
help 
BY328977974@qq.com3.修改drivers/char 目录下的Makefile文件 

添加如下内容 
obj-$(CONFIG_FIRST_DRIVER_HELLO)+= first_drivers_hello.o4.进入内核根目录下配置内核,输入make menuconfig 
Device Drivers-> 
Character devices-> FIRST DRIVERS HELLO 
保存后使用命令 make SUBDIR=drivers/char/ modules5.在drivers/char/ 目录下面会生成一个first_drivers_hello.ko的文件 
将它复制到开发板下,用命令insmod first_drivers_hello.ko挂载驱动 
就可以看到结果。

简单的说就是写好驱动,编译,挂载

|
8楼的 make SUBDIR=drivers/char/ modules5
这个modules5 在这里是什么意识啊 起什么作用啊

|


敲错了吧。

|


做成内核模块,用insmod your_kernel_module.ko 加载到linux里。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ Vectors 成员 push_back():在Vector最后添加一个元素
  • fedora core2下,我删除了网卡设备,然后重新添加,为什么一添加就死机啊?在命令行模式下如何用命令添加网络设备啊?
  • C++ Lists(链表) 成员 push_front():在list的头部添加一个元素
  • /etc/hosts中添加的域名信息,用哪个命令可以测试添加的内容是否正确?
  • C++ Lists(链表) 成员 push_back():在list的末尾添加一个元素
  • android中如果为listview的item添加listener,也能为item中的button添加listener
  • javascript 添加到收藏夹和书签代码示例
  • linux向压缩包中添加文件,怎么添加不进去?
  • C++ Strings(字符串) 成员 append():在字符串的末尾添加文本
  • 局域网共享上网,使用nat时在postrouting中添加masquerade规则允许往外发送,prerouting是不是也要添加规则。
  • php安装完成后如何添加mysql扩展
  • 为mysql数据库添加添加事务处理的方法
  • extjs介绍及在myeclipse中添加extjs步骤
  • linux系统下怎么添加在windows底下的盘
  • Mysql下在某一列后即表的某一位置添加新列的sql语句
  • mysql 添加索引 mysql 如何创建索引
  • 怎样添加内核启动参数???
  • linux~shell~如何取变量的值并在后面添加字符?
  • 添加用户名与密码? 散分
  • C# SkinEngine控件 给窗体添加皮肤的方法
  • ASP.NET 页面中加添加用户控件的写法


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3