博客
关于我
iTOP4412开发板Drivermodule调试记录
阅读量:332 次
发布时间:2019-03-04

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

重新优化后的内容

1. 主要步骤

(1)编写Hello World驱动程序:itop4412_hello.c

#include 
#include
MODULE_LICENSE("Dual BSD/GPL");MODULE_AUTHOR("TOPEET");static int hello_init(void) { printk(KERN_EMERG "Hello World enter!\n"); return 0;}static void hello_exit(void) { printk(KERN_EMERG "Hello World exit!\n"); return 0;}module_init(hello_init);module_exit(hello_exit);

(2)编写Makefile文件:Makefile

#!/bin/bashobj-m += itop4412_hello.oKDIR := /home/topeet/iTop4412_Kernel_3.0PWD ?= $(shell pwd)all:    make -C $(KDIR) M=$(PWD) modulesclean:    rm -rf *.o

(3)编译方法

在终端中执行以下命令:

make

(4)驱动模块验证

加载模块:

insmod itop4412_hello.ko

查看模块状态:

lsmod

卸载模块:

rmmod itop4412_hello

2. 遇到问题

(1)Makefile中的PWD写成pwd!(已修复)

在编译时,确保Makefile中的PWD正确无误:

make -C /home/topeet/iTop4412_Kernel_3.0 M=/home/topeet/iTop4412_Kernel_3.0/modules

(2)Makefile中的模块名称需要与*.c文件一致

请确保Makefile中的模块名称与实际编译的C文件名一致。例如:

obj-m += itop4412_hello.o

如果出现以下错误,请检查模块名称是否正确:

make[2]: *** No rule to make target `/home/drivermodule/mini_linux_module.c', needed by `/home/drivermodule/mini_linux_module.o'. Stop.

(3)卸载模块时,模块名称不需要带.ko

正确的卸载命令是:

rmmod itop4412_hello

如果使用以下命令会导致错误:

rmmod itop4412_hello.ko

请勿使用带有.ko扩展的模块名称进行卸载。

转载地址:http://hiwh.baihongyu.com/

你可能感兴趣的文章
PostgreSQL学习总结(6)—— PostgreSQL 模式(SCHEMA)详解
查看>>
PostgreSQL学习总结(7)—— PostgreSQL 语句 INSERT INTO、SELECT、UPDATE、DELETE 等学习
查看>>
PostgreSQL学习总结(8)—— PostgreSQL 基于数据库和基于模式(schema)的多租户分析
查看>>
PostgreSQL学习总结(9)—— PostgreSQL 运算符与表达式
查看>>
PostGreSql学习笔记001---PostgreSQL10.4安装(Windows)_支持PostGreGis_PostJDBC
查看>>
PostGreSql学习笔记002---Navicat Premium中管理PostGreSql 错误:字段rolcatupdate 不存在
查看>>
PostgreSQL学习笔记:PostgreSQL vs MySQL
查看>>
PostgreSQL实现shape数据转geojson数据(地图工具篇.18)
查看>>
PostgreSQL导入shape数据(地图工具篇.10)
查看>>
PostGreSql工作笔记003---在Navicat中创建数据库时报错rolcatupdate不存在_具体原因看其他博文_这里使用pgAdmin4创建管理postgre
查看>>
PostGreSql工作笔记004---PostGreSql修改密码_windows和linux下修改
查看>>
Postgresql常用命令行操作_以及Navicat操作PostGis时的问题_自动截取长度_WKB structure does not match exp---PostgreSQL工作笔记005
查看>>
PostgreSQL忘记密码
查看>>
PostgreSQL数据库pg_dump命令行不输入密码的方法
查看>>
PostgreSQL新手入门
查看>>
postgresql树状结构查询示例
查看>>
PostgreSQL流复制参数max_wal_senders详解
查看>>
postgresql流复制配置
查看>>
PostgreSQL清空表并保留表结构、清空数据库还原数据库为新建时的状态的方法
查看>>
PostgreSQL的 initdb 源代码分析之九
查看>>