07 2016 档案
摘要:pinctrl框架是linux系统为统一各SOC厂家pin管理,目的是为了减少SOC厂家系统移植工作量。 通常通过设备树初始化pinctrl,并提供调用io接口,以下为全志A64平台的实例: 在drivers/pinctrl/sunxi/pinctrl-sun50iw1p1.c: start_ker
阅读全文
摘要:vmem是内存多字符设备。包含vfs的open、read、write、ioctl、poll、fasync和release函数,device文件的读写。 virtual_mem.c 测试程序virtual_test.c: Makefile: github代码地址 https://github.com/
阅读全文
摘要:在内核里,如何利用dtb?以下以全志a64为实例讲解。 解析dtb的流程如下: start_kernel // init/main.c setup_arch // arch/arm64/kernel/setup.c setup_machine_fdt(__fdt_pointer) unflatten
阅读全文
摘要:如何单独编译设备树? cd linux-x.xx & make dtbs 生成的dtb在目录linux-x.xx/arch/xxx/boot/dts下 反编译dtb,生成dts: linux-x.xx/scripts/dtc/dtc -I dtb -O dts xxxx.dtb -o xxxx.dt
阅读全文
摘要:在驱动编程里面经常会用到ioctl的系统调用,发现cmd = 2的时候,用户ioctl直接返回-1。 原因在于在linux-x.xx/fs/ioctl.c定义的do_vfs_ioctl函数 发现do_vfs_ioctl实现先判断系统的cmd不匹配后才判断用户的cmd。 从以下代码可以得出 FIGET
阅读全文
摘要:在linux-x.xx/include/uapi/asm-generic/errno-base.h和errno.h里分别定义了返回错误的信息。 errno-base.h: errno.h: 以上可知错误信息在1~133之间,返回错误会添加-号,故返回-133~-1。 部分函数内部有记录错误的信息并且
阅读全文
摘要:安装ssh服务:sudo apt-get install openssh-server 安装vim:sudo apt-get install vim-gtk 安装gparted:sudo apt-get install gparted 安装tree:sudo apt-get install tree
阅读全文