随笔分类 - linux drivers
摘要:答: 新的device_property_match_string()可以用来替代此接口。
阅读全文
摘要:答: 分为两步: 1. 配置某个驱动为模块(如: CONFIG_RTC_XXX=m) 2. 指定路径并编译, 如编译drivers/rtc中的驱动 make SUBDIRS=drivers/rtc modules
阅读全文
摘要:1. 关注unreg_slave接口 1.1 这个接口在哪里被调用呢? 在drivers/i2c/i2c-core-slave.c中 int i2c_slave_unregister(struct i2c_client *client) { int ret; 1.2 那么i2c_slave_unre
阅读全文
摘要:1. No such device or address 这一句表明当前的板子上没有这样的外设,检查设备树和硬件连接情况 2. 笔者是这样解决的 由于设备树中为rtc所指定的总线与硬件上的连接rtc的总线存在出入,因此修改成一致即可解决此问题。
阅读全文
摘要:调用过程如下: hwclock -w -> xioctl(RTC_SET_TIME); -> rtc_dev_ioctl() -> rtc_set_time()
阅读全文
摘要:1. 硬件要求 1.1 需要两台机器,一台作为i2c master(记为M),另一台作为i2c slave(记为S) 1.2 使用杜邦线连接两台机器的i2c信号线 2. 使能内核选项CONFIG_I2C_SLAVE和CONFIG_I2C_SLAVE_EEPROM 可以作为模块也可以编译进内核,随意选
阅读全文
摘要:答:笔者通过重新编译内核和根文件系统解决了此问题 (笔者使用的是openwrt系统) 分析: 1. ’Failed to find the folder holding the modules‘这句log从哪里来? 要知道从哪里来,那么扒一扒insmod这个工具的源码吧 1.1 注意:在openwr
阅读全文
摘要:1. 原型 #define wait_event_interruptible_timeout(wq_head, condition, timeout) \ ({ \ long __ret = timeout; \ might_sleep(); \ if (!___wait_cond_timeout(
阅读全文
摘要:注意:使用的内核源码版本为5.1.3 1. subsys_initcall长什么样子? 它其实是个宏定义,定义如下: #define subsys_initcall(fn) __define_initcall(fn, 4) (注意,这是使用在内置模块中的) 或 #define subsys_init
阅读全文
摘要:分析用的内核版本为5.1.3 1.MFD全称 Multi-function Device,多功能设备 2. 为何会出现MFD子系统 由于出现了一类具有多种功能的外围设备或cpu内部集成的硬件模块 3. 有哪些多功能设备呢? 3.1 PMIC,电源管理芯片 da9063: 调节器,led控制器,看门狗
阅读全文
摘要:答:完成读写功能即可,不要涉及任何针对从设备的特殊操作,这样就可以避免与从设备的代码产生冗余,linux中的i2c控制器驱动就做的特别棒,做好最简单的读写,然后其它的从设备驱动就是直接调用这些最简单的api即可实现i2c控制器与从设备之间的通信。无论从设备的时序是怎样的,都可以调用最基础的i2c控制
阅读全文
摘要:一.背景 1.1 笔者的机器有两张声卡,使用aplay -l可以列举出来,一张是内置声卡,另一张是显卡自带的声卡,说明声卡驱动是ok的 1.2 笔者是在浏览器中播放视频无声音 二.尝试 2.1 尝试使用vlc播放器播放本地视频,发现在vlc的Audio->Audio Device中有两个设备,因此依
阅读全文
摘要:答:drivers/rtc/rtc-pcf85263.c,内核配置选项为 CONFIG_RTC_DRV_PCF85263 Location: -> Device Drivers -> Real Time Clock
阅读全文
摘要:答:drivers/rtc/rtc-ds1307.c,内核配置项为CONFIG_RTC_DRV_DS1307 Location: -> Device Drivers -> Real Time Clock
阅读全文
摘要:答:drivers/misc/eeprom/at24.c,内核配置项为CONFIG_EEPROM_AT24 Location: -> Device Drivers -> Misc devices -> EEPROM support
阅读全文
摘要:答:drivers/hwmon/lm90.c,这个文件中支持了好多芯片,内核配置项为CONFIG_SENSORS_LM90 Location: -> Device Drivers -> Hardware Monitoring support
阅读全文
摘要:答:在drivers/hwmon/ina2xx.c中,内核配置项为CONFIG_SENSORS_INA2XX Location: -> Device Drivers -> Hardware Monitoring support
阅读全文