随笔分类 -  Linux

Linux相关技术学习
摘要:2018年5月份开始在JZ2440上陆续移植了u-boot-2016.11、u-boot-spl-2016.11、linux-4.17和busybox-1.28.4,其中linux-4.17和busybox-1.28.4是当时官方最新的版本,以此作为学习linux两年来的总结。 遗憾的是,当时在移植 阅读全文
posted @ 2019-10-21 00:35 hackfun 阅读(774) 评论(0) 推荐(0)
摘要:这里是要把http://www.cnblogs.com/hackfun/p/6260396.html中的enc28j60网卡驱动模块,添加到2.6.22.6内核中,这个模块代码不需要任何修改。只需要在内核目录下的相关配置脚本文件,如Makefile,Kconfig,.config等,修改某些配置就行 阅读全文
posted @ 2017-02-19 14:53 hackfun 阅读(1582) 评论(1) 推荐(0)
摘要:本来想移植DM9000网卡的驱动,无奈硬件出了点问题,通过杜邦线链接开发板和DM9000网卡模块,系统上电,还没加载网卡驱动就直接崩溃了,找不到原因。。。刚好手上有一个enc28j60的网卡模块,于是就着手移植enc28j60的驱动。 其实移植enc28j60的驱动也十分简单,网上有现成的,只需要分 阅读全文
posted @ 2017-01-07 21:21 hackfun 阅读(2996) 评论(0) 推荐(0)
摘要:snull是《Linux Device Drivers》中的一个网络驱动的例子。这里引用这个例子学习Linux网络驱动。 因为snull的源码,网上已经更新到适合最新内核,而我自己用的还是2.6.22.6比较旧的内核。而网上好像找不到旧版的snull。因此结合《Linux Device Driver 阅读全文
posted @ 2016-12-18 18:13 hackfun 阅读(2743) 评论(0) 推荐(1)
摘要:spi子系统之驱动SSD1306 OLED 接触Linux之前,曾以为读源码可以更快的学习软件,于是前几个博客都是一边读源码一边添加注释,甚至精读到每一行代码,实际上效果并不理想,看过之后就忘记了。主要原因是没理解透程序架构,各个模块之间的关系,如何联系在一起,再加上没有实例验证。后来逐渐发现,理解 阅读全文
posted @ 2016-11-20 13:23 hackfun 阅读(6483) 评论(13) 推荐(0)
摘要:理解I2C设备驱动框架,主要围绕四个结构体去分析就容易了。 struct i2c_algorithm:提供I2C协议的实现的操作,如:master_xfer实现数据收发的最基本方法。 struct i2c_adapter:每一个i2c_adapter都代表一个I2C物理接口,一个cpu可以有多个I2 阅读全文
posted @ 2016-10-23 15:05 hackfun 阅读(5146) 评论(1) 推荐(0)
摘要:关于关于驱动设备模型相关概念请参考《Linux Device Drivers》等相关书籍,和内核源码目录...\Documentation\driver-model 简单来说总线(bus),驱动(driver),设备(device)这三者之间的关系就是:驱动开发者可以通过总线(bus)来将驱动(dr 阅读全文
posted @ 2016-10-11 23:45 hackfun 阅读(2313) 评论(0) 推荐(0)
摘要:1.代码 input_subsys.drv.c 在linux输入子系统(input subsystem)之按键输入和LED控制的基础上有小改动,input_subsys_test.c不变。 input_subsys.drv.c 2. input_subsys_drv.c, input.c, evde 阅读全文
posted @ 2016-10-07 12:04 hackfun 阅读(2067) 评论(0) 推荐(0)
摘要:使用POLL机制代替linux输入子系统(input subsystem)之按键输入和LED控制中的异步通知,实现同样的效果。 1.代码 只简单修改input_subsys_test.c, input_subsys_drv.c不变 input_subsys_test.c 2. 实验 2.1 安装驱动 阅读全文
posted @ 2016-10-03 12:34 hackfun 阅读(544) 评论(0) 推荐(0)
摘要:实验现象:在控制台打印按键值,并且通过按键控制相应的LED亮灭。 1.代码 input_subsys_drv.c input_subsys_test.c makefile 2. 实验 2.1 安装驱动程序: insmod input_subsys_drv.ko 运行应用程序 ./input_subs 阅读全文
posted @ 2016-10-03 00:08 hackfun 阅读(3524) 评论(0) 推荐(0)
摘要:1 int class_device_register(struct class_device *class_dev) 2 { 3 /* [cgw]: 初始化一个struct class_device */ 4 class_device_initialize(class_dev); 5 /* [cgw]: 添加一个struct class_device... 阅读全文
posted @ 2016-09-02 10:11 hackfun 阅读(343) 评论(0) 推荐(0)
摘要:1 /* Class Device Stuff */ 2 3 int class_device_create_file(struct class_device * class_dev, 4 const struct class_device_attribute * attr) 5 { 6 int error = -EINVAL;... 阅读全文
posted @ 2016-08-26 18:08 hackfun 阅读(522) 评论(0) 推荐(0)
摘要:注释仅代表个人理解,仅供参考。 阅读全文
posted @ 2016-08-05 15:39 hackfun 阅读(451) 评论(0) 推荐(0)
摘要:char_dev.c里的中文注释,仅代表个人理解,仅供参考。如有错误之处,请指出,谢谢! 阅读全文
posted @ 2016-07-25 22:33 hackfun 阅读(1417) 评论(0) 推荐(0)
摘要:注释仅代表个人理解,难免有错误之处,仅供参考! 219 return p; 220 } 阅读全文
posted @ 2016-07-23 12:40 hackfun 阅读(1102) 评论(1) 推荐(0)
摘要:最近结合《Linux Device Drivers》对kobject的理解,对kobject.c文件添加注释,仅供参考! 1 /** 2 * populate_dir - populate directory with attributes. 3 * @kobj: object we're work 阅读全文
posted @ 2016-07-23 12:36 hackfun 阅读(821) 评论(0) 推荐(0)