编写kernel第一个Hello World
原址
目的: 主要用于熟悉驱动程序编写及调试基本流程。
1.准备
操作系统: ubuntu12.04 LTS
2.源码
- #include <linux/init.h>
- #include <linux/module.h>
- static int hello_init(void)
- {
- pr_info("Hello, World.\n");
- return 0;
- }
- static void hello_exit(void)
- {
- pr_info("Goodbye, cruel world\n");
- }
- module_init(hello_init);
- module_exit(hello_exit);
- MODULE_LICENSE("Dual BSD/GPL");
3.Makefile
- obj-m := hello.o
- KERNELDIR := /usr/src/linux-headers-$(shell uname -r)
- PWD := $(shell pwd)
- modules:
- $(MAKE) -C $(KERNELDIR) M=$(PWD) modules
- modules_install:
- $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
4.编译
- ckt@ubuntu:~/work/ldd/hello$ make
- make -C /usr/src/linux-headers-3.13.0-32-genericM=/home/ckt/work/ldd/hello modules
- make[1]: Entering directory`/usr/src/linux-headers-3.13.0-32-generic'
- CC [M] /home/ckt/work/ldd/hello/hello.o
- Buildingmodules, stage 2.
- MODPOST 1modules
- LD [M] /home/ckt/work/ldd/hello/hello.ko
- make[1]: Leaving directory`/usr/src/linux-headers-3.13.0-32-generic'
5.测试
- lsmod #查看当前加载的模块
- sudo insmod hello.ko #加载hello.ko模块
- sudo rmmod hello #移除hello.ko模块
- cat/var/log/syslog #查看日志
编写kernel第一个Hello World相关推荐
- 编写程序创建一个通讯录文件,在其中存入10位同学的姓名、年龄、电话号码,并在屏幕上输出第2、4、6、8、10位同学的信息
<程序设计基础-c语言>杨莉 刘鸿翔 ISBN-978-7-03-032903-5 p257 习题8 8.编写程序创建一个通讯录文件,在其中存入10位同学的姓名.年龄.电话号码,并在屏幕上 ...
- Java黑皮书课后题第9章:*9.3(使用Date类)编写程序创建一个Date对象,设置它的流逝时间分别为...,然后使用toString()方法分别显示上述日期
Java黑皮书课后题第9章:*9.3(使用Date类)编写程序创建一个Date对象,设置它的流逝时间分别为...,然后使用toString方法分别显示上述日期 题目 代码 思路 代码 题目 代码 思路 ...
- Java黑皮书课后题第7章:***7.36(游戏:八皇后问题)经典的八皇后难题是要将八个皇后放在棋盘上,任何两个皇后都不能相互攻击(没有两个皇后在同行、同列、同一对角线)。编写程序显示一个解决方案
7.36(游戏:八皇后问题)经典的八皇后难题是要将八个皇后放在棋盘上,任何两个皇后都不能相互攻击(没有两个皇后在同行.同列.同一对角线).编写程序显示一个解决方案 题目 题目描述 破题 题目 题目描述 ...
- 编写程序输入一个5x5的矩阵,将最大元素与中心元素交换,并按行列对齐输出。...
编写程序输入一个5x5的矩阵,将最大元素与中心元素交换,并按行列对齐输出. 题目描述 编写程序输入一个5x5的矩阵,将最大元素与中心元素交换,并按行列对齐输出. 输入描述 编写程序输入一个5x5的矩阵 ...
- java 在界面上画一个时钟_编写程序显示一个时钟 - javaCoder的个人页面 - OSCHINA - 中文开源技术交流社区...
编写程序显示一个时钟.示例输出如图所示. 代码: package com.DisplayClock; import javax.swing.*; import java.awt.*; import j ...
- 编写程序定义一个有 10 个 int 型元素的数组,并以其在数组中的位置作为各元素的初值。
*编写程序定义一个有 10 个 int 型元素的数组,并以其 在数组中的位置作为各元素的初值.*/ int main(void) { int array[10]; for (int i ...
- 【指针】编写并测试一个函数larger_of(),该函数把两个double类型变量的值替 换为较大的值。例如, larger_of(x, y)会把x和y中较大的值重新赋给两个变 量。
编写并测试一个函数larger_of(),该函数把两个double类型变量的值替 换为较大的值.例如, larger_of(x, y)会把x和y中较大的值重新赋给两个变 量. #include < ...
- 【Python】Python实验:回文是一个正向和逆向都相同的整数,如123454321、463364、9889。编写函数判断一个整数是否是回文数。
回文是一个正向和逆向都相同的整数,如123454321.463364.9889.编写函数判断一个整数是否是回文数. 算法源码 def huiwen(n):if n==n[::-1]: ##正序和倒序是 ...
- python计算整数各位数字之和_编写函数,计算一个整数各位数字之和
话题:编写函数,计算一个整数各位数字之和回答:这个关键是怎么得到每位数, #includeint sum_num(int num)//得到每位数的函数 { int sum=0; while(num10 ...
最新文章
- Unity Android 2021:用C#打造3D ZigZag赛车游戏
- 深入Java泛型(二):通配符与嵌套
- 几种芯片架构:X86、ARM、RISC-V和MIPS
- Attempted relative import in non-package
- 使用springcloud gateway搭建网关(分流,限流,熔断)
- Kafka设计解析(八)- Exactly Once语义与事务机制原理
- 【Python】Matplotlib使用Cursor实现UI定位
- (71)FPGA时钟双沿约束如何做?
- hibernate组件映射
- 路由器AP、路由、桥接模式有什么区别
- 测试C++代码与WebBrowser HTML的互动
- 查看JVisualVM查看信息
- 大型交通流仿真平台——Matsim中文使用手册05
- 基于SSM的房屋租赁管理系统
- 教育研究方法 的思维导图
- 还在为挖不到漏洞烦恼?还在为如何才能升职加薪困惑?听听徐老师怎么说.........
- 赵望野:前端工程师的困惑
- 从零开始:微信小程序零基础入门宝典
- 爬虫干货 | 爬虫IP代理模块介绍及实战
- 自制批量 PDF 转图片的工具软件(附百度网盘地址)