
kernel&驱动
文章平均质量分 74
Jayson God
人工智能,终端设备从业着
展开
-
RK3568 GPIO 引脚计算
RK3568 GPIO 引脚计算原创 2023-07-06 11:17:51 · 2229 阅读 · 0 评论 -
RTL8309M实现VLAN功能-驱动编进内核
Linux文件系统lan口实现vlan技术,通过vlan实现对单个lan口进行广播通信。原创 2023-07-05 19:28:55 · 2475 阅读 · 0 评论 -
Linux 4g模块NL660驱动
在目录 drives/net/usb 添加Fibocom_Linux_GobiNet_Driver文件夹。option.c option_ids 添加如下。udhcpc 分配不到ip出现如下情况。编译生成 GobiNet.ko。解决办法 找到下面进程杀死。修改makefile。能成功ping 外网。原创 2023-06-15 11:56:29 · 610 阅读 · 0 评论 -
在rk3568移植rtl8723du,配置成wifi ap模式
在文件buildroot/output/rockchip_rk3568/build/busybox-1.34.1/.config中也增加了个宏定义。添加 source "drivers/net/wireless/rockchip_wlan/rtl8723du/Kconfig"最终在目录buildroot/output/rockchip_rk3568/target/usr/sbin中有了udhcpd。拷贝到目录buildroot/output/rockchip_rk3568/target/usr/sbin。原创 2023-05-23 10:29:00 · 3274 阅读 · 1 评论 -
nvram 驱动和应用
3、或者直接修改 /kernel/arch/arm64/configs/rockchip_linux_defconfig。2、修改/kernel/drivers/mtd/maps/makefile。3、修改/kernel/drivers/mtd/maps/kconfig。1、/kernel/drivers/mtd/maps添加文件。添加CONFIG_MTD_NVRAM=y。原创 2023-05-15 19:43:54 · 991 阅读 · 1 评论 -
dts pinctrl初始gpio0方法
3、函数of_get_gpio_init_config定义如下。1、在pinctrl-rockchip.c文件中添加头文件。2、 在如下函数添加红色代码。原创 2023-05-12 14:12:15 · 1116 阅读 · 0 评论 -
Linux内核模块加载驱动方法
打印函数 printk是分级的,它的8 个级别如下:1、#define KERN_EMERG 0/*紧急事件消息,系统崩溃之前提示,表示系统不可用*/2、#define KERN_ALERT 1/*报告消息,表示必须立即采取措施*/3、#define KERN_CRIT 2/*临界条件,通常涉及严重的硬件或软件操作失败*/4、#define KERN_ERR 3...原创 2017-05-04 20:29:52 · 1509 阅读 · 0 评论 -
Linux内核启动及根文件系统加载过程
Linux内核启动及文件系统加载过程当u-boot开始执行bootcmd命令,就进入Linux内核启动阶段,与u-boot类似,普通Linux内核的启动过程也可以分为两个阶段,但针对压缩了的内核如uImage就要包括内核自解压过程了。本文以linux-2.6.37版源码为例分三个阶段来描述内核启动全过程。第一阶段为内核自解压过程,第二阶段主要工作是设置ARM处理器工作模式、使能MMU、设置...原创 2017-05-10 18:01:32 · 1569 阅读 · 0 评论 -
module_platform_driver
该函数实际是一个宏,它在include/linux/platform_device.h中定义如下:#define module_platform_driver(__platform_driver) \ module_driver(__platform_driver, platform_driver_register, \ platform_driver_unregister)其中...原创 2018-09-27 20:01:27 · 624 阅读 · 0 评论 -
module_init机制的理解
https://blog.youkuaiyun.com/weixin_37571125/article/details/78665184 我们在学习Linux驱动开发时,首先需要了解Linux的模块化机制(module),但是module并不仅仅用于支撑驱动的加载和卸载。一个最简单的模块例子如下:// filename: HelloWorld.c #include <linux/modul...转载 2018-09-27 14:18:02 · 2125 阅读 · 0 评论 -
iTOP-4412 字符驱动
一、静态申请字符类设备号1、包括主设备号和次设备号2、register_chrdev_region() 是提前知道设备的主次设备号,再去申请设备号。3、字符设备函数在文件“include/linux/fs.h”中extern int register_chrdev_region(dev_t, unsigned, const char *);dev_t :设备号, 高12位为主...原创 2018-07-22 22:48:09 · 433 阅读 · 0 评论 -
kerner 目录结构
arch目录– arch目录是平台目录。内核支持的所有CPU架构,在该目录下都有对应的子目录。每个CPU的子目录,又进一步分解为boot,mm,kernel等子目录,分别控制系统引导,内存管理,系统调用。还有动态调频,主频率设置部分等....原创 2018-05-13 21:30:23 · 203 阅读 · 0 评论 -
加载模块驱动
—、必备的头文件Linux头文件位置1、类似#include <linux/module.h>的头文件,它们是在Linux源码目录下的include/linux/module.h#include <linux/module.h>头文件所有的Linux 代码必须遵循GPL 协议,如果不知道Linux 的GPL 协议,去查一下资料– 如果你不声明GPL 协议,你的模块将无法在L...原创 2018-05-14 23:22:36 · 653 阅读 · 0 评论 -
iTOP-4412 虚拟平台注册杂项字符设备
本文目的在虚拟平台总线上注册字符设备hello_device。通过命令 ls /sys/devices/platform/可以查到 hello_device。进行以下步骤操作。一、使能平台设备文件1、iTOP-4412 设备注册在iTop4412_Kernel_3.0/arch/arm/mach-exynos/mach-itop4412.c2、要使mach-itop4412.c编译进内...原创 2018-06-02 22:04:09 · 612 阅读 · 0 评论 -
Kconfig详解
当执行#make menuconfig时会出现内核的配置界面,所有配置工具都是通过读取"arch/$(ARCH)Kconfig"文件来生成配置界面,这个文件就是所有配置的总入口,它会包含其他目录的KconfigKconfig的作用:Kconfig用来配置内核,它就是各种配置界面的源文件,内核的配置工具读取各个Kconfig文件,生成配置界面供开发人员配置内核,最后生成配置文件.configKcon...转载 2018-05-27 20:41:59 · 20089 阅读 · 2 评论 -
iTOP-4412 杂项字符设备驱动注册
本文完成继上篇 iTOP-4412 虚拟平台注册杂项字符设备,后对应的字符设备驱动注册。一、驱动头文件 1、platform_device.h 路径:iTop4412_Kernel_3.0/include/linux/platform_device.h部分内容如下:struct platform_driver { int (*probe)(struct platform_...原创 2018-06-09 21:57:29 · 411 阅读 · 0 评论 -
iTOP-4412 模块式注册杂项字符设备驱动
模块式注册,不是直接把驱动编译进内核,而是生成模块,需要的再加载到内核中去。https://blog.youkuaiyun.com/u011425939/article/details/80552143上篇文章是用编译进内核的方法生成启动,此次用模块的方式到达同样的作用。1、驱动程序文件itop4412_hello.c#include <linux/init.h>#includ...原创 2018-06-12 19:45:29 · 568 阅读 · 0 评论 -
iTOP-4412 调用驱动应用
设备注册:https://blog.youkuaiyun.com/u011425939/article/details/80546761驱动注册:https://blog.youkuaiyun.com/u011425939/article/details/80636776前面介绍完设备的注册和对应的驱动注册过程,现在来讲讲怎么表用驱动写运用程序。1、头文件– #include <stdio.h>调用打印函数p...原创 2018-06-12 19:46:49 · 555 阅读 · 0 评论 -
iTOP-4412 驱动模块传参数
1、内核模块可以通过module_param来传单个参数module_param(name,type,perm)name:模块参数的名称type: 模块参数的数据类型(支持int long short uint ulong ushort类 型)perm: 模块参数的访问权限(S_IRUSR参数表示所有文件所有者 可读)头文件在“include/linux/moduleparam.h...原创 2018-07-22 18:39:34 · 320 阅读 · 0 评论 -
obj-y,obj-m 区别
obj-y:把由foo.c 或者 foo.s 文件编译得到foo.o 并连接进内核.obj-m: 则表示该文件作为模块编译.除了y、m以外的obj-x 形式的目标都不会被编译。除了obj-形式的目标以外,还有lib-y library 库、hostprogs-y 主机程序。hello-objs := file1.o file2.o ...... 多文件时,用这种形式。转载 2017-02-25 21:49:48 · 3275 阅读 · 0 评论