基于ubuntu的驱动开发

这篇具有很好参考价值的文章主要介绍了基于ubuntu的驱动开发。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  一般的linux驱动开发都是基于交叉编译来进行的,本文尝试着从另一个角度:基于ubuntu的本地驱动开发来学习一下驱动的开发

一、驱动的开发与编译

1.1、编写驱动文件

#include <linux/init.h>
#include <linux/module.h>
static int hello_init(void)
{
    printk("Hello,world\r\n");
    return 0;
}
static void hello_exit(void)
{
    printk("hello,world over\r\n");
}
MODULE_LICENSE("GPL");
module_init(hello_init);
module_exit(hello_exit);

1.2、查找内核文件位置

基于ubuntu的驱动开发,linux驱动,ubuntu,驱动开发,linux

1.3、编写makefile文件

KERNELDIR :=/usr/src/linux-headers-4.15.0-29-generic
CURRENT_PATH := $(shell pwd)
obj-m := hello.o
build: kernel_modules
kernel_modules:
	$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) modules

clean:
	$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) clean

  其中KERNELDIR 就是前面查找的内核目录

1.4、编译

make

基于ubuntu的驱动开发,linux驱动,ubuntu,驱动开发,linux

二、驱动的加载与测试

2.1、加载驱动

sudo insmod hello.ko

基于ubuntu的驱动开发,linux驱动,ubuntu,驱动开发,linux

2.2、卸载驱动

sudo rmmod hello.ko

基于ubuntu的驱动开发,linux驱动,ubuntu,驱动开发,linux

2.3、查看内核日志信息

dmesg

基于ubuntu的驱动开发,linux驱动,ubuntu,驱动开发,linux文章来源地址https://www.toymoban.com/news/detail-527120.html

到了这里,关于基于ubuntu的驱动开发的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux驱动开发笔记(二):ubuntu系统从源码编译安装gcc7.3.0编译器

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/130533941 红胖子网络科技博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中… 上一篇:《Linux驱动开发笔记(一

    2024年02月06日
    浏览(74)
  • RK3399驱动开发 | 15 - RTC实时时钟芯片HYM8563S调试(基于linux5.4.32内核)

    Linux内核中使用RTC设备来提供硬件时间,为了兼容各种各样的RTC硬件,Linux内核提供了R

    2024年02月09日
    浏览(51)
  • RK3399驱动开发 | 21 -Marvell交换机芯片88E6390X调试(基于linux主线5.4.32内核)

    88E6390X芯片是Marvell的一款11端口交换器芯片,有1个CPU端口、8个10/100/1000Mbsp以太网端口、两个XAUI/RXAUI/2500光口。 RK3399只有一个MAC控制器,所以只能外接一个PHY芯片作为网口,但有了外部的交换机芯片后,连接架构如下:

    2024年02月13日
    浏览(50)
  • <Linux开发>驱动开发 -Linux MISC 驱动

    <Linux开发>驱动开发 -Linux MISC 驱动 交叉编译环境搭建: <Linux开发> linux开发工具-之-交叉编译环境搭建 uboot移植可参考以下: <Linux开发> -之-系统移植 uboot移植过程详细记录(第一部分) <Linux开发> -之-系统移植 uboot移植过程详细记录(第二部分) <Linux开发> -之

    2024年02月13日
    浏览(30)
  • <Linux开发>驱动开发 -之- Linux RTC 驱动

    <Linux开发>驱动开发 -之- Linux RTC 驱动 交叉编译环境搭建: <Linux开发> linux开发工具-之-交叉编译环境搭建 uboot移植可参考以下: <Linux开发> -之-系统移植 uboot移植过程详细记录(第一部分) <Linux开发> -之-系统移植 uboot移植过程详细记录(第二部分) <Linux开发>

    2024年02月11日
    浏览(38)
  • <Linux开发>驱动开发 -之- Linux LCD 驱动

    <Linux开发>驱动开发 -之- Linux LCD 驱动 交叉编译环境搭建: <Linux开发> linux开发工具-之-交叉编译环境搭建 uboot移植可参考以下: <Linux开发> -之-系统移植 uboot移植过程详细记录(第一部分) <Linux开发> -之-系统移植 uboot移植过程详细记录(第二部分) <Linux开发>

    2024年02月06日
    浏览(43)
  • <Linux开发>驱动开发 -之-platform 驱动

    <Linux开发>驱动开发 -之-platform 驱动 交叉编译环境搭建: <Linux开发> linux开发工具-之-交叉编译环境搭建 uboot移植可参考以下: <Linux开发> -之-系统移植 uboot移植过程详细记录(第一部分) <Linux开发> -之-系统移植 uboot移植过程详细记录(第二部分) <Linux开发>

    2024年02月12日
    浏览(60)
  • 基于ubuntu18.04.6 LTS服务器安装nvidia驱动

    1对于一个刚刚配置的服务器,首先nvidia-smi,自然无法显示Driver Version、最高cuda版本等信息。 nvidia-smi: command not found 需要我们自己安装nvidia驱动 2禁用老驱动 禁用自带nouveau驱动 sudo vim /etc/modprobe.d/blacklist.conf 打开后在CONF文件中添加: blacklist nouveau 然后更新一下: sudo update-

    2023年04月27日
    浏览(55)
  • linux内核网络驱动框架(linux驱动开发篇)

    网络驱动的核心: 1、就是初始化 net_device 结构体中的各个成员变量, 2、然后将初始化完成以后的 net_device 注册到 Linux 内核中 1、网络设备(用net_device结构体) 2、网络设备的操作集( net_device_ops结构体 ) 3、sk_buff结构体 网络是分层的,对于应用层而言不用关系具体的底层是

    2023年04月08日
    浏览(80)
  • Linux-ubuntu22.04串口驱动安装(CH34X)

    查看ubuntu系统自带驱动  一般能看到下面等文件 上面可以看到含有ch341.ko文件,系统自带的版本比较老,删除掉: 1)百度网盘下载链接 提取码:RMSR 2)微云下载 解压之后可以看到以下3个文件 打开:https://elixir.bootlin.com/linux/v6.2/source/drivers/usb/serial/ch341.c 根据查询到的操作系

    2024年02月07日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包