首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
get
php
c语言
split
erlang
scala
expression
typescript
range
dll
subset
plugins
blob
javascript
cmd
default
emoji
regex
audio
case
cookie
buffer
integer
char
function
hashset
js
hook
export
merge
callback
string
foreach
version
grid
python3
php7
window
actionscrip
python2
shell
header
config
数组
text
chat
object
hashcode
timestamp
httprequest
search
bytecode
join
keyword
command
sum
controller
select
go
node.js
input
replace
jsp
list
email
php5
php8
format
client
tree
solr
web3
vbscript
python
ascii
eval
cSharp
web
tags
当前位置:
开发笔记
>
编程语言
> 正文
第一个LINUX驱动程序
作者:心碎的醉鬼 | 来源:互联网 | 2017-06-29 18:34
第一个LINUX驱动程序--Linux通用技术-Linux编程与内核信息,下面是详情阅读。
LINUX系统:虚拟机+DEBIAN
内核:LINUX-2.6.32
说明:此文档中所说的参作只是针对个人的使用情况而论,可能不具有通用性,特别是当操作系统的
的发行的版本不同时,如在REDHAT、UBUNTU等可能情况有所不同。
实现步骤:
su root #进入到root模式后按照如下操作
1. apt-get install build-essential #若已经有gcc编译器可以跳过
1. cd /usr/src #可以到任意的文件目录下
2. apt-get install linux-source-2.6.32 #获取内核源码
3. apt-get linux-headers-2.6.32-5-686 #获取头文件,可用uname -r 获取内核版本信息
4. tar -jxf ./liunx-source-2.6.32.tar.bz2
5. cp -a ./linux-headers-2.6.32-5-686/Module.symvers ./linux-source-2.6.32
6. cd ./linux-source-2.6.32
7. make oldconfig
8. make prepare
9. make scripts
10. cd /tmp
11. vi hello.c #编辑hello.c程序,此处代码参考LINUX设备驱动程序(第三版)
/*----------------一下为参考程序--------------------------*/
#include
#include
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
printk(KERN_ALERT "Hello, world\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "Goodbye, cruel world\n");
}
module_init(hello_init);
module_exit(hello_exit);
/***********************END********************************/
11. vi Makefile #注意Makefile中的M要大写,此Makefile虽能用,但不规范
#sample Makefile
obj-m := hello.o
#end
13. make -C /usr/src/linux-source-2.6.32 M=/tmp modules
#编译通过后生成hello.ko
14. insmod hello.ko #挂载驱动程序
#此时终端中可能不会输出信息,因为KERN_ALERT的优先级较低
15. rmmod hello #卸载驱动程序
16. cat /var/log/syslog #捕捉驱动程序输出的信息,可以在最后两行看到hello驱动程序输出的信息
#至此hello.c的驱动程序即完成,linux的设备驱动程序开发的环境亦基本搭建完成
#let's go!
linux
debian
ubuntu
go
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
cmd
解决Docker中volume的权限问题的方法
在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ...
[详细]
蜡笔小新 2023-12-14 18:48:02
cmd
Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ...
[详细]
蜡笔小新 2023-12-13 13:30:30
c语言
学习SLAM的女生,很酷
本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ...
[详细]
蜡笔小新 2023-12-14 17:55:18
c语言
Linux 正则表达式基础及使用注意事项
本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ...
[详细]
蜡笔小新 2023-12-13 14:24:45
get
imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ...
[详细]
蜡笔小新 2023-12-13 12:34:44
get
Ubuntu安装常用软件详细步骤
目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ...
[详细]
蜡笔小新 2023-12-12 21:26:41
php
2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业zhuanlan.z ...
[详细]
蜡笔小新 2023-12-10 19:11:07
php
Ubuntu 11.10 x64环境下安装Android开发环境及解决常见问题
本文介绍了在Ubuntu 11.10 x64环境下安装Android开发环境的步骤,并提供了解决常见问题的方法。其中包括安装Eclipse的ADT插件、解决缺少GEF插件的问题以及解决无法找到'userdata.img'文件的问题。此外,还提供了相关插件和系统镜像的下载链接。 ...
[详细]
蜡笔小新 2023-12-09 09:41:58
plugins
像跟踪分布式服务调用那样跟踪Go函数调用链 | Gopher Daily (2020.12.07) ʕ◔ϖ◔ʔ
每日一谚:“Acacheisjustamemoryleakyouhaven’tmetyet.”—Mr.RogersGo技术专栏“改善Go语⾔编程质量的50个有效实践” ...
[详细]
蜡笔小新 2023-10-17 19:23:45
get
宋宝华:用systemd-nspawn运行最轻量级容器
systemd-nspawn可以创建最轻量级的容器(ns的意思就是namespace),本文的实验平台是Ubuntu16.04,x86_64机器。本文的目的是:在Ubuntu中用syst ...
[详细]
蜡笔小新 2023-10-17 14:49:15
get
如何将CentOS8转换为CentOSStream
CentOS Stream是一个持续交付的Linux发行版,它在RHEL之前处于领先地位。它将具有滚动发布,即不断进行更改。CentOS将成为一个上游版本,它将具有测试补丁和更新。 ...
[详细]
蜡笔小新 2023-10-17 14:13:56
default
Linux神奇漏洞:长按回车键70秒 即可轻松拿到Root权限
一般来说获取系统root权限是很困难的,尤其是加密系统中,但西班牙安全研究员hectormarco、ismaelripoll发现,linux系统下只需按住回车键70秒钟,就能轻 ...
[详细]
蜡笔小新 2023-10-17 11:41:36
get
Debian 9.5系统安装网络在正确配置后仍无法联网的参考解决方案(dell r410亲测有效)
系统安装Debian系统的安装方式和Ubuntu系统的安装方式几乎是一样的,毕竟Ubuntu系统是基于Debian的,就如同CentOS基于Redhat ...
[详细]
蜡笔小新 2023-10-16 17:32:55
php
如何查看电脑系统版本_腾讯云服务器系统版本怎么看?Windows和Centos版本怎么选?...
腾讯云服务器系统版本怎么看?想要知道自己的腾讯云服务器系统版本是哪个,可以登录云服务器后台管理系统查看,或者使用命令行查询,如果不会操作& ...
[详细]
蜡笔小新 2023-10-16 13:44:39
php
主流操作系统简介
主流操作系统简介子墨居士操作系统理论定义为管理计算机硬件资源,控制其他程序运行并为用户提供交互操作界面的系统软件的集合。操作系统是计算机系统的关键组成部分 ...
[详细]
蜡笔小新 2023-10-14 13:01:23
心碎的醉鬼
这个家伙很懒,什么也没留下!
Tags | 热门标签
get
php
c语言
split
erlang
scala
expression
typescript
range
dll
subset
plugins
blob
javascript
cmd
default
emoji
regex
audio
case
cookie
buffer
integer
char
function
hashset
js
hook
export
merge
RankList | 热门文章
1
PHP mysql 事务处理实例
2
C语言字符串变量初始化规范
3
播放音乐提示音
4
Win7旗舰版如何设置打印机的ip地址与打印端口?
5
Angular自定义模块以及配置路由实现模块懒加载
6
Hibernate 单项级联操作
7
Ionic2之tabs相关内容和其他一些坑
8
经典论文SqueezeNet论文及实践
9
填槽与多轮对话 | AI产品经理需要了解的AI技术概念
10
vueresource的get请求参数怎么封装?
11
杨辉三角形实现
12
android开发常用地址
13
[数分提高]2014-2015-2第9教学周第1次课 (2015-04-28)
14
根据前四列确定空行 - Determine empty row based on first four columns
15
Jmeter文件上传
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有