09 2021 档案
摘要:概念 设备树是一种描述硬件资源的数据结构,在bootloader传递给内核。可以去除内核中不必要的板级代码。 设备树是Linux内核3.x之后才出现的,在内核源码的arch/架构/boot/dts目录下。 常用的名词: DT: Device Tree 设备树 FDT: Flattened Devic
阅读全文
摘要:ioctl简介 kernel3.0之前,叫ioctl,之后改名为unlocked_ioctl。功能和接口基本相同,名字发生了变化 ioctl既可以往内核读也可以写,read/write在执行大数据量读/写时比较有优势。 在应用层调用ioctl函数时,内核会调用对应驱动中的ublocked_ioctl
阅读全文
摘要:需要的源码 编译openssh需要zlib和openssl的环境,所以需要下载zlib、openssl和openssh三个源码。 openssh源码的INSTALL文件里会描述当前版本支持的zlib和openssl版本,例如: You will need working installations
阅读全文
摘要:安装 sudo apt install tftp-hpa tftpd-hpa 一般类似的程序有两部分,不带d的是客户端,带d的是服务端。 修改配置 sudo vi /etc/default/tftpd-hpa 将文件修改为 # /etc/default/tftpd-hpa TFTP_USERNAME
阅读全文
摘要:概念 平台(platform)总线是一种虚拟的总线。 Linux内核要求每出现一个device就要向总线汇报(注册),出现一个driver,也要向总线汇报(注册)。 注册device/driver时,总线会寻找与之匹配的driver/device。如果对应的name相同则发生匹配。 匹配发生时,会调
阅读全文
摘要:函数说明 //函数原型,定义在<unistd.h> int getopt(int argc, char * const argv[], const char *optstring); //描述:getopt是用来解析命令行选项参数的,但是只能解析短选项: -d 100,不能解析长选项:--prefi
阅读全文
摘要:加载驱动传参 在加载驱动的时候传递给驱动的参数 例如:insmod beep.ko a=1 常见的用途: 设置驱动的相关参数,比如设置缓冲区的大小 设置安全校验,防止我们写的驱动被人盗用 传参方式 //普通类型的参数,char,int module_param(name, type, perm);
阅读全文
摘要:杂项设备和字符设备的区别 杂项设备是字符设备的一种 杂项设备自动生成设备节点;字符设备需要程序生成设备节点 杂项设备的主设备号是固定的,固定为10;字符设备需要分配主设备号 ##字符设备驱动框架 ##杂项设备驱动框架 查看设备名称的一些位置 /dev目录下的文件叫设备节点 cat /proc/dev
阅读全文
摘要:字符设备和杂项设备的区别 杂项设备的主设备号是固定的,字符设备需要分配主设备号 杂项设备自动生成设备节点,字符设备需要程序生成设备节点 所以创建字符设备会比杂项设备多两步:申请设备号、创建设备节点 申请设备号 #include <linux/fs.h> 静态分配设备号 即手动指定设备号 int re
阅读全文