博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
how to write your first linux device driver
阅读量:4956 次
发布时间:2019-06-12

本文共 1468 字,大约阅读时间需要 4 分钟。

how to write your first linux device driver

 

0. environment

-ubuntu 1804 64bit

 

1. apt-get install linux-headers-$(uname -r)

 

 

2. code hello.c

#include 
#include
MODULE_LICENSE("Dual BSD/GPL");static int hello_init(void){printk(KERN_ALERT "Hello, solidmango\n");return 0;}static void hello_exit(void){printk(KERN_ALERT "Goodbye, solidmango\n");}module_init(hello_init);module_exit(hello_exit);

 

3. Makefile

# If KERNELRELEASE is defined, we've been invoked from the# kernel build system and can use its language.ifneq ($(KERNELRELEASE),)obj-m := hello.o# Otherwise we were called directly from the command# line; invoke the kernel build system.elseKERNELDIR ?= /lib/modules/$(shell uname -r)/buildPWD := $(shell pwd)default:$(MAKE) -C $(KERNELDIR) M=$(PWD) modulesendif

 

4. sudo insmod hello.ko

 

5. sudo rmmod hello

 

6. view result

 

sm@ubuntu:~/dev$ cat /var/log/syslog|grep solidmangoSep 26 00:30:04 ubuntu kernel: [ 3041.143749] Hello, solidmangoSep 26 00:30:31 ubuntu kernel: [ 3068.192172] Goodbye, solidmango

 

7. sign your kernel module

/lib/modules/4.15.18/build/scripts/sign-file sha512 /lib/modules/4.15.18/build/certs/signing_key.pem /lib/modules/4.15.18/build/certs/signing_key.x509 hello.ko

 

signing_key.pem and signing_key.x509 files are generated when build the linux kernel

 

reference

https://wiki.gentoo.org/wiki/Signed_kernel_module_support#Enabling_module_signature_verification

 

转载于:https://www.cnblogs.com/pugang/p/11592441.html

你可能感兴趣的文章
python之常用模块学习
查看>>
实用日期时间修改方法
查看>>
sshfs把远程主机的文件系统映射到本地的目录中(转载)
查看>>
MyBatis简介
查看>>
windows下mysql 5.7以上版本安装及遇到的问题
查看>>
bash下自动重新运行git/curl等工具
查看>>
ubuntu server 1604 搭建FTP服务器
查看>>
极大似然估计
查看>>
Euclidean space-欧几里得空间【转】
查看>>
hdu 3367 Pseudoforest
查看>>
Apache Shiro 快速入门教程,shiro 基础教程
查看>>
网页设计
查看>>
【算法4】迪杰斯特拉双栈算法处理算术表达式
查看>>
窗口还原
查看>>
《Java程序设计》第2周学习总结
查看>>
Zabbix邮件报警设置
查看>>
常用深度学习模型
查看>>
[T-ARA][Bye Bye]
查看>>
[转]有return的情况下try catch finally的执行顺序
查看>>
ORM一对一和多对多创建的3种方式
查看>>