Linux驱动程序安装步骤(包括PC上及开发板上)
来源:互联网 发布:淘宝的主营业务有哪些 编辑:程序博客网 时间:2024/06/06 00:08
来源:http://blog.csdn.net/hwmt2012/article/details/13016213
分类: LINUX
一.PC机上Ubuntu9.10系统下
1. 驱动程序源码及Makefile如下:
- #------源程序------#
- #include <linux/module.h>
- #include <linux/init.h>
- static int __init hello_init()//“__init”使hello_init()函数放到初始化代码段里
- {
- printk("Hello, driver!\n");
- return 0;
- }
- static int __exit hello_exit()
- {
- printk("Goodbye, driver!\n");
- return 0;
- }
- module_init(hello_init);
- module_exit(hello_exit);
#------Makefile------#
KVERS = $(shell uname -r)
# Kernel modules
obj-m += hello.o
# Specify flags for the module compilation.
#EXTRA_CFLAGS=-g -O0
build: kernel_modules
kernel_modules:
make -C /lib/modules/$(KVERS)/build M=$(CURDIR) modules
clean:
make -C /lib/modules/$(KVERS)/build M=$(CURDIR) clean
2.驱动程序编译、安装及结果显示:
a.在第一个终端里 root@book-desktop:~# make
//生成hello.ko
b.在第二个终端里 root@book-desktop:~# tail -f /var/log/messages
//查看日志文件内容,-f选项使之不断刷新显示
c.在第一个终端里 root@book-desktop:~# insmod ./hello.ko
//安装驱动
在第二个终端里自动输出:
- Apr 7 19:26:06 book-desktop kernel: [
9345.546564] Hello, driver!
d.在第一个终端里 root@book-desktop:~# rmmod hello
//卸载驱动
在第二个终端里自动输出:
- Apr 7 19:26:11 book-desktop kernel: [ 9349.953772] Goodbye, driver!
二、Nano2440开发板下(注:为保持简洁性,终端中前端都以 root@book-desktop:~# 表示)
1.把源程序拷贝到内核相应目录中
root@book-desktop:~# cp hello.c /work/QQ2440/linux/jason_linux/kernel-2.6.13/drivers/char/
2.打开内核目录
root@book-desktop:~# cd /work/QQ2440/linux/jason_linux/kernel-2.6.13
3.打开字符设备驱动所在目录下的Kconfig (Kconfig用于配置菜单)
root@book-desktop:~# vim drivers/char/Kconfig
4.修改Kconfig。添加如下代码。
5. 配置驱动
root@book-desktop:~# make menuconfig
在出现的主菜单中,选择:Load an Alternate Configuration File
输入:config_n35 //选择需要的配置文件
回到主菜单,如下选:
Device Drivers --->
Character devices --->
[ ]
hello_driver (NEW)
hello_driver (NEW)
按“Y”键,选择该驱动,如下图所示
保存配置,退出。
6.查看配置结果
root@book-desktop:~# vim .config
在vim中输入:“/HELLO_DRIVER”,找到配置项,如下图。
8.修改驱动程序所在目录的Makefile
root@book-desktop:~# vim drivers/char/Makefile
在Makefile里添加如下代码:
保存退出。
9.编译内核
root@book-desktop:~# make zImage
10.arch/arm/boot 目录下生成linux 内核映象文件:zImage。
root@book-desktop:~# cp arch/arm/boot/zImage /mnt/hgfs/Ubuntu_XP_share/
下载到开发板。
11.打开Windows下超级终端,在菜单栏里选“传送”,下拉菜单里选“捕获文字”。
复位开发板,系统启动后,在捕获文字里,“停止”。
用Source Insight打开存在记事本里的开机信息。
Ctrl + H。
输入“Hello, driver!”也就是在hello_init()函数里的输出字符串。
如图所示,可以看到初始化函数里的输出。
三、参考资料
1.《QQ2440V3用户手册》;
2. 国嵌视频2010中秋版\课程4(嵌入式LINUX内核驱动进阶班)\第6天(字符设备驱动)\国嵌内核驱动进阶班-6-1(LINUX驱动程序介绍).avi
0 0
- Linux驱动程序安装步骤(包括PC上及开发板上)
- Linux驱动程序安装步骤(包括PC上及开发板上)
- Linux驱动程序安装步骤(包括PC上及开发板上)
- linux上安装网卡驱动程序
- linux上安装网卡驱动程序
- Jetpack在PC或者虚拟机上详细安装步骤及遇到的问题
- Linux上安装MiniOA步骤
- linux上安装tomcat步骤
- linux上安装memcached步骤
- linux上安装memcached步骤
- linux上安装memcached步骤
- linux上安装memcached步骤
- linux上安装memcached步骤
- linux上Nginx安装步骤
- linux驱动程序开发步骤
- PC上安装Mac
- mac 上安装git步骤及注意事项
- mac 上安装git步骤及注意事项
- 结合美团下单率预测详解机器学习中的数据清洗与特征处理
- ORA-00604: 问题处理
- Android4.4 wpa_supplicant深入分析之wpa_supplicant初始化流程续
- CSS float浮动的深入研究、详解及拓展(一)
- 阿里巴巴集团web安全标准Ver1.4
- Linux驱动程序安装步骤(包括PC上及开发板上)
- openssl aes 高级加解密
- 丰乳细臀——读《丰乳肥臀》
- GetCurrentDirectory,SetCurrentDirectory使用例子
- Build Variants 1 (release and debug) (Android Studio 使用)
- http post 文件 到服务器
- 算法相关概述
- 我是如何自学Android,资料分享(2015 版)
- python版js压缩工具