博客
关于我
linux 2.6 驱动笔记(一)
阅读量:790 次
发布时间:2023-01-31

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

    
Linux 2.6驱动开发笔记

本文记录Linux 2.6驱动开发环境搭建及内核模块编译加载的实践经验。

#include 
#include
static int hello_init(void){printk("hello_init"); return 0;}static void hello_exit(void){printk("hello_exit");}module_init(hello_init);module_exit(hello_exit);

硬件:OK6410开发板

目标操作系统:Linux 2.6
交叉编译环境:Windows 7 + VMware Workstation + Red Hat 9 + arm-linux-gcc

KERNELDIR = /home/linux-2.6.36/linux-2.6.36.2-v1.05PWD := $(shell pwd)CC = arm-linux-gccobj-m += driver01.omodules:    $(MAKE) -C $(KERNELDIR) M=$(PWD) modulesclean:    rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions.PHONY: clean

编译后将driver01.ko拷贝至目标板SD卡,执行insmod driver01.ko查看控制台输出“hello_init”,确认模块加载成功。

注意事项

  • 已解决"generated/bounds.h: No such file or directory"错误,需提前编译内核源码
  • 添加 MODULE_LICENSE("GPL");标识以避免模块加载警告
  • 在Red Hat中配置arm-linux-gcc环境变量
  • VMware网络IP配置

文章转载自:原文链接

你可能感兴趣的文章
LibTorch之损失函数
查看>>
LibTorch之激活函数层
查看>>
LibTorch之网络层中的卷积层
查看>>
LibTorch之网络模型构建
查看>>
LibTorch实现MLP(多层感知机)
查看>>
Libtorch常用代码
查看>>
LibTorch框架学习
查看>>
libtorch组成讲解之ATen、c10、at、csrc
查看>>
libvirt TLS
查看>>
libvirtd tcp 方式远程连接配置步骤
查看>>
libvirt报错处理及解决
查看>>
License Server上找不到指定版本的XenApp License
查看>>
License授权
查看>>
LifecycleException: Protocol handler start failed & BindException: Address already in use: bind
查看>>
liferay 去掉 portlet:actionUrl 跳转时的message
查看>>
Liferay7 BPM门户开发之21: 理解消息总线(Message Bus)体系
查看>>
Light OJ 1005
查看>>
LightningChart 图表控件图库
查看>>
Lightning接口详解-ChatGPT4o作答
查看>>
LightOJ - 1074 Extended Traffic (SPFA+负环)
查看>>