针对nanopi2的hello word 驱动
来源:互联网 发布:胡歌女朋友知乎 编辑:程序博客网 时间:2024/06/06 02:19
一、环境
1.本机
虚拟机搭建ubuntu140.4 64bit
2.目标板
Debian
3.交叉编译器
arm-linux-gcc
友善版本为4.9.3
git clone https://github.com/friendlyarm/prebuilts.gitsudo mkdir -p /opt/FriendlyARM/toolchainsudo tar xf prebuilts/gcc-x64/arm-cortexa9-linux-gnueabihf-4.9.3.tar.xz -C /opt/FriendlyARM/toolchain/
二、步骤
1.确定本机版本
$ uname -r3.16.0-30-generic
2.确定目标板版本
$ uname -r3.4.39-s5p4418
3.下载源码树
git clone https://github.com/friendlyarm/linux-3.4.y.gitcd linux-3.4.ygit checkout nanopi2-lollipop-mr1
4.编译源码树
make nanopi2_linux_defconfigtouch .scmversionmake uImage的这之前可能需要准备mkimage
5.编写hello.c
#include <linux/init.h> #include <linux/module.h> 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);
6.编写Makefile
obj-m := hello.o KERNELDIR := /home/inmen/FriendlyARM/linux-3.4.yPWD := $(shell pwd) modules:$(MAKE) -C $(KERNELDIR) M=$(PWD) modulesmodules_install:$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
其中KERNELDIR需要修改,定位到本机的源码树目录
7.生成ko文件
执行make
8.检查ko文件信息
$ modinfo hello.kofilename: /home/inmen/nanopi2Driver/hello.kolicense: Dual BSD/GPLdepends: vermagic: 3.4.39-s5p4418 SMP preempt mod_unload ARMv7 p2v8
注意:vermagic中信息应与目标板信息一致,否则不能挂载
9.在目标板挂载驱动模块
三、参考资料
【友善官司方资料】
【64位unbun下的hello驱动】
0 0
- 针对nanopi2的hello word 驱动
- 基于NanoPi2的Linux3.4内核GPIO驱动
- Nanopi2 Fire 编写SPI驱动
- hibernate的hello word
- QT的"hello word"
- android的Hello word
- python的Hello Word
- python的Hello Word
- Struts2的Hello Word
- 第一个hello word 驱动加载失败--------
- nanopi2使用mtraix蜂鸣器驱动加载时出现的内核不匹配问题
- linux的hello驱动
- 驱动篇-认识hello word 的内核文件创建过程(一)
- VHDL的Hello Word-转贴
- 没有main的hello word
- hello word的另类写法
- 【NanoPi2试用体验】nanopi2下的二维码识别
- hello word
- TCP协议的学习(四)TCP四次挥手及解释
- 聊一聊Android 6.0的运行时权限
- java基础-Java NIO使用及原理分析
- Android开发-三种方法实现点击事件
- mujava的配置和运行Demo
- 针对nanopi2的hello word 驱动
- matlab实现图像增强
- Android总结(三)
- VS2013MFC对话框工程学习笔记一 - 新建MFC对话框项目
- Android进程命令查看
- iPhone屏幕尺寸、分辨率及适配
- hibernate 和 JPA之间的关系
- Qt类之QAction
- 数组与指针