摘要: 设备树设备和平台设备的关系 平台总线会将name相同的device和driver进行匹配,执行driver中的probe 设备树描述的节点会生成对应的设备树device,我这里理解为设备树也向平台总线注册了device,可以在/sys/devices/platform/目录下看到 driver也可以 阅读全文
posted @ 2021-10-11 21:47 WuYunTaXue 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 安装dtc编译工具 sudo apt install device-tree-compiler 将dts编译成dtb dtc -I dts -O dtb -o xxx.dtb xxx.dts 将dtb编译成dts dtc -I dtb -O dts -o xxx.dts xxx.dtb 阅读全文
posted @ 2021-10-10 17:54 WuYunTaXue 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 驱动获取设备树内描述属性的一般步骤 查找想要的节点 获取节点中的属性值 常用of操作函数 include/linux/of.h 在内核中以of开头的函数,一般是来操作设备树的 查找结点的函数 static inline struct device_node *of_find_node_by_path 阅读全文
posted @ 2021-10-10 17:09 WuYunTaXue 阅读(1056) 评论(0) 推荐(0) 编辑
摘要: 概念 设备树是一种描述硬件资源的数据结构,在bootloader传递给内核。可以去除内核中不必要的板级代码。 设备树是Linux内核3.x之后才出现的,在内核源码的arch/架构/boot/dts目录下。 常用的名词: DT: Device Tree 设备树 FDT: Flattened Devic 阅读全文
posted @ 2021-09-25 13:21 WuYunTaXue 阅读(493) 评论(0) 推荐(0) 编辑
摘要: ioctl简介 kernel3.0之前,叫ioctl,之后改名为unlocked_ioctl。功能和接口基本相同,名字发生了变化 ioctl既可以往内核读也可以写,read/write在执行大数据量读/写时比较有优势。 在应用层调用ioctl函数时,内核会调用对应驱动中的ublocked_ioctl 阅读全文
posted @ 2021-09-20 22:51 WuYunTaXue 阅读(3844) 评论(0) 推荐(0) 编辑
摘要: 需要的源码 编译openssh需要zlib和openssl的环境,所以需要下载zlib、openssl和openssh三个源码。 openssh源码的INSTALL文件里会描述当前版本支持的zlib和openssl版本,例如: You will need working installations 阅读全文
posted @ 2021-09-20 13:07 WuYunTaXue 阅读(938) 评论(0) 推荐(0) 编辑
摘要: 安装 sudo apt install tftp-hpa tftpd-hpa 一般类似的程序有两部分,不带d的是客户端,带d的是服务端。 修改配置 sudo vi /etc/default/tftpd-hpa 将文件修改为 # /etc/default/tftpd-hpa TFTP_USERNAME 阅读全文
posted @ 2021-09-20 10:38 WuYunTaXue 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 概念 平台(platform)总线是一种虚拟的总线。 Linux内核要求每出现一个device就要向总线汇报(注册),出现一个driver,也要向总线汇报(注册)。 注册device/driver时,总线会寻找与之匹配的driver/device。如果对应的name相同则发生匹配。 匹配发生时,会调 阅读全文
posted @ 2021-09-10 00:11 WuYunTaXue 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 函数说明 //函数原型,定义在<unistd.h> int getopt(int argc, char * const argv[], const char *optstring); //描述:getopt是用来解析命令行选项参数的,但是只能解析短选项: -d 100,不能解析长选项:--prefi 阅读全文
posted @ 2021-09-09 23:06 WuYunTaXue 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 加载驱动传参 在加载驱动的时候传递给驱动的参数 例如:insmod beep.ko a=1 常见的用途: 设置驱动的相关参数,比如设置缓冲区的大小 设置安全校验,防止我们写的驱动被人盗用 传参方式 //普通类型的参数,char,int module_param(name, type, perm); 阅读全文
posted @ 2021-09-05 11:34 WuYunTaXue 阅读(150) 评论(0) 推荐(0) 编辑