LXR | KVM | PM | Time | Interrupt | Systems Performance | Bootup Optimization

上一页 1 2 3 4 5 6 7 ··· 11 下一页

2024年3月9日

Linux CAN子系统:基于M_CAN解读

摘要: Linux下CAN驱动属于网络设备驱动。 CAN在内核中大致框架如下: 1 CAN配置 对CAN设备的配置,首先需要打开CAN子系统,然后打开CAN设备驱动,其他还包括调试信息等。 Networking support ->CAN bus subsystem support ->Raw CAN Pr 阅读全文

posted @ 2024-03-09 23:59 ArnoldLu 阅读(1685) 评论(0) 推荐(0) 编辑

2024年3月3日

Linux显示(六):基于Buildroot的QT显示(mesa3d+opengl+libdrm)

摘要: Biuldroot下配置libdrm、Mesa3D、Qt5进行测试。 1 Buildroot下QT配置 Buildroot下配置libdrm、mesa3d、Qt5: Target packages ->Libraries ->Graphics ->libdrm ->etnaviv--支持的GPU驱动 阅读全文

posted @ 2024-03-03 23:59 ArnoldLu 阅读(1601) 评论(0) 推荐(0) 编辑

2024年3月2日

FIT(2):基于FIT对镜像/配置进行签名和uboot验签启动

摘要: 关键词:hash、sha1、sha256、md5、crc32、rsa、pkcs-1.5、signature等等。 接前文《FIT(1):基于FIT的镜像创建和解析/启动》,重点梳理签名/验签流程和hash校验流程。 mkimage对镜像或者配置进行签名并生成FIT镜像,uboot执行相反的过程解析F 阅读全文

posted @ 2024-03-02 23:59 ArnoldLu 阅读(1595) 评论(0) 推荐(0) 编辑

2024年3月1日

Linux显示(一):Framebuffer子系统

摘要: Framebuffer是向应用层提供统一标准显示设备的接口,将显示设备硬件结构抽象为一系列数据结构。应用程序打开Framebuffer设备后,通过ioctl进行配置,将内存通过mmap映射后直接操作。 Linux中Framebuffer是一个字符设备,一个LCD往往对应多个Framebuffer设备 阅读全文

posted @ 2024-03-01 23:59 ArnoldLu 阅读(665) 评论(0) 推荐(0) 编辑

2024年2月25日

Linux显示(四):libdrm及相关测试工具

摘要: 关键词:libdrm、drm等。 libdrm基于内核DRM,尤其对ioctl命令进行包裹,向上层显示框架提供更易使用的API。 1 libdrm libdrm来自于MESA项目,对open/read/write/ioctl/mmap/close等系统调用进行封装,尤其是对繁杂ioctl的命令调用封 阅读全文

posted @ 2024-02-25 23:59 ArnoldLu 阅读(1735) 评论(0) 推荐(0) 编辑

2024年2月24日

Linux显示(三):DRM子系统(以及LCDC/Panel/Backlight驱动)

摘要: 关键词:DRM、CRTC、Plane、Framebuffer、Encoder、Connector、Bridge、Panel、Backlight、GEM、TTM、KMS等等。 DRM(Direct Rendering Manager)是Linux内核中负责与显卡交互的管理架构,用户空间很方便的利用DR 阅读全文

posted @ 2024-02-24 23:59 ArnoldLu 阅读(6557) 评论(0) 推荐(1) 编辑

2024年2月23日

Linux显示(二):基于Framebuffer的图形框架和测试工具

摘要: Linux Framebuffer子系统是传统的内核显示框架。有很多基于Frambuffer的用户空间形式框架,以及针对Framebuffer的测试工具。 1. Linux Framebuffer Linux FrameBuffer相关的开源资源《fosdem_2020_nicolas_carame 阅读全文

posted @ 2024-02-23 23:59 ArnoldLu 阅读(975) 评论(0) 推荐(0) 编辑

2024年2月7日

Linux IIO子系统概述(结合STM32 ADC/DAC驱动)

摘要: 关键词:IIO、ADC、DAC、Trigger等等。 IIO(Industrial I/O)主要用于数字量和模拟量转换的IO接口设备。这些设备种类繁多,内部一般都会有一个ADC或者DAC。SOC对这些设备操作可以通过I2C/SPI,或者直接访问寄存器进行。 IIO子系统主要管理抽象这些类别设备: 模 阅读全文

posted @ 2024-02-07 23:59 ArnoldLu 阅读(1888) 评论(0) 推荐(0) 编辑

2024年2月6日

Linux线程proc信息解析

摘要: 每个线程对应的/proc/xxx有助于分析线程的各种资源占用情况。之前零零散散做了一些分析,这里总结记录一下。 /proc/183/ |-- auxv |-- cgroup |-- clear_refs |-- cmdline--执行进程的命令行,包括启动参数等等。 |-- comm--进程名称。 阅读全文

posted @ 2024-02-06 23:59 ArnoldLu 阅读(411) 评论(0) 推荐(0) 编辑

2024年2月3日

Linux watchdog子系统概述

摘要: 关键词:watchdog、pretimeout、governor、softdog等等。 watchdog子系统是内核为保证系统正常运行,将系统从死循环或者死锁等状态中退出并重启的一种机制。 内核中支持基于hrtimer的softdog和基于硬件的watchdog。硬件看门狗从dts读取配置,创建同样 阅读全文

posted @ 2024-02-03 15:33 ArnoldLu 阅读(2278) 评论(0) 推荐(1) 编辑

2024年1月21日

Linux RTC子系统概述

摘要: 关键词:rtc、date、hwclock、Alarm、WakeAlarm、AIE、PIE、UIE等等。 1 rtc子系统框架 rtc子系统分为三部分: rtc core:负责rtc设备注册注销;对用户空间提供rtc字符设备文件,以及rtc类sysfs接口。 rtc driver:将rtc设备注册到r 阅读全文

posted @ 2024-01-21 23:59 ArnoldLu 阅读(479) 评论(0) 推荐(0) 编辑

2024年1月20日

Linux pwm子系统概述

摘要: 关键词:pwm,period,duty_cycle,polarity,enable等。 1 pwm子系统框架 pwm子系统比较简单: pwm core:提供pwm_chip的添加删除,pwm_class类pwm_chip/pwm_device的sysfs创建。 pwm driver:根据pwm co 阅读全文

posted @ 2024-01-20 23:59 ArnoldLu 阅读(557) 评论(0) 推荐(0) 编辑

2024年1月19日

Linux input子系统概述

摘要: 关键词:input、evdev、mousedev、joydev、rfkill、tslib、evtest等等。 input子系统处理Linux下输入设备。外设接收到输入事件,发送到input core;input core根据事件类型,将事件交给对应的input handler处理,上报用户空间;用户 阅读全文

posted @ 2024-01-19 23:59 ArnoldLu 阅读(954) 评论(0) 推荐(0) 编辑

2024年1月7日

LED/GPIO/pinctrl子系统(3):pinctrl子系统概述

摘要: 关键词:pinctrl、pinmux、pinconf等。 pinctrl可以归结为两类设置:一类是功能选择,比如是普通的GPIO或者专用功能引脚;另一类是上拉、下拉、驱动能力、速率等配置。 pinctrl子系统主要完成如下工作: 初始化pin contrroller,并为其每个pin命名和枚举。 处 阅读全文

posted @ 2024-01-07 23:59 ArnoldLu 阅读(908) 评论(0) 推荐(0) 编辑

2024年1月6日

LED/GPIO/pinctrl子系统(2):GPIO子系统概述

摘要: 关键词:gpiolib、pinctrl、gpio-keys等。 在了解pinctrl基础上,分析GPIO子系统按照如下几方面进行: GPIO总体框架、gpiolib主要文件、menuconfig配置GPIO。 了解gpiolib的主要数据结构和API(GPIO Controller和Consumer 阅读全文

posted @ 2024-01-06 23:59 ArnoldLu 阅读(381) 评论(0) 推荐(1) 编辑

2023年12月30日

LED/GPIO/pinctrl子系统(1):基于GPIO的LED子系统概述

摘要: 关键词:led、gpio、led trigger(heartbeat/netdev/timer)等等。 本系列文档以LED为起点,结合GPIO LED首先了解LED子系统;然后梳理背后的GPIO子系统;进而梳理GPIO子系统背后的pinctrl子系统。 LED子系统为设备提供指示灯、闪光灯等功能,对 阅读全文

posted @ 2023-12-30 23:59 ArnoldLu 阅读(879) 评论(0) 推荐(0) 编辑

2023年12月23日

FIT(1):基于FIT的镜像创建和解析/启动

摘要: 关键词:FIT、mkimage、dtc、its、itb、bootm、initrd、sha256等等、 Kernel中引入的Device Trace概念,将配置信息放入dtb中。达到一个kernel,结合不同dtb适配多个平台。 FIT是Flattened Image Tree的意思,即将多个镜像通过 阅读全文

posted @ 2023-12-23 23:59 ArnoldLu 阅读(2390) 评论(0) 推荐(0) 编辑

2023年12月16日

Linux NAND Flash建立分区表的几种方式

摘要: 关键词:cmdline parser、dts parser、cmdline、mtdparts等等。 MTD支持三种创建分区表的方式: cmdline:通过bootargs传入。 dts:在dts中编写。 struct mtd_partition结构体代码:代码中固定配置。 他们的优先级是:分区结构体 阅读全文

posted @ 2023-12-16 23:59 ArnoldLu 阅读(1206) 评论(0) 推荐(0) 编辑

2023年12月15日

Linux ARM32内嵌DTB实现

摘要: 大多数方案是将dtb独立,uboot启动kernel时通过r2传递dtb的地址。kernel读取到__atags_pointer,后续解析dtb内容。 内核保留了.dtb.init.rodata用于保存dtb内容,借此实现ARM32下dtb内嵌功能。 1 ARM 32启动__atags_pointe 阅读全文

posted @ 2023-12-15 23:59 ArnoldLu 阅读(229) 评论(0) 推荐(0) 编辑

2023年12月9日

openssh/dropbear使用与对比

摘要: 使用并比较嵌入式常用的SSH解决方案openssh和dropbear。 1 openssh openssh提供SSH服务,包括服务端sshd、客户端ssh、远程文件传输工具scp等一系列工具。 ssh协议有两个版本: v1:基于CRC-32 做MAC,不安全;,一般用于实现主机认证。 v2:基于协议 阅读全文

posted @ 2023-12-09 23:59 ArnoldLu 阅读(4279) 评论(0) 推荐(2) 编辑

OpenWRT(2):uhttpd+LuCI初探

摘要: uhttpd是OpenWRT的默认WebServer,通过LuCI OpenWRT提供了统一的配置接口。这里简单了解UCI、Lua、LuCI、luci、uhttpd等基本概念,然后在QEMU环境下启动OpenWRT查看LuCI实例。 1 uhttpd和LuCI的基本概念 UCI(Unified Co 阅读全文

posted @ 2023-12-09 23:59 ArnoldLu 阅读(3447) 评论(0) 推荐(0) 编辑

2023年12月3日

Linux bridge及其配置

摘要: 1. Linux下Bridge原理 1.1 Linux Bridge配置 Kernel要支持Bridge功能,需要打开802.1d Ethernet Bridging: Networking support ->Networking options ->802.1d Ethernet Bridgin 阅读全文

posted @ 2023-12-03 23:59 ArnoldLu 阅读(937) 评论(0) 推荐(0) 编辑

2023年12月2日

网络连接管理Connection Manager(connman)记录

摘要: ConnMan是一个Linux下网络连接管理守护进程。ConnMan是一个模块化的系统,通过各种插件,可以扩展支持各种有线或无线设备。所有的应用程序通过D-Bus和ConnMan通信。 1 ConnMan架构 2 ConnMan内部组成 2.1 Buildroot ConnMan配置 Target 阅读全文

posted @ 2023-12-02 23:59 ArnoldLu 阅读(584) 评论(0) 推荐(0) 编辑

基于Trace32查看Linux进程栈调用关系

摘要: 1. 打开进程列表 点击菜单Linux->Display Process,即可查看所有进程列表。 2. 加载的可执行文件和库文件符号表 在感兴趣进程,右击选择: Display Stack Frame:最开始Stack都是由一串地址组成的。 Display maps:提供了地址范围和可执行文件/库文 阅读全文

posted @ 2023-12-02 23:59 ArnoldLu 阅读(368) 评论(0) 推荐(0) 编辑

Linux下固件加载器Firmware Loader

摘要: 某些Linux外设需要固件才能正常工作,或者调试过程中需要更换固件。为解决设备驱动程序从内核态或者用户态加载固件到外设中,Linux提供了Firmware Loader子系统。 如果固件比较稳定,可以通过builtin方式加载。如果需要经常变动,可放入文件系统指定目录中。如果都无法找到需要根据uev 阅读全文

posted @ 2023-12-02 23:59 ArnoldLu 阅读(1018) 评论(0) 推荐(0) 编辑

2023年11月24日

Buildroot下dhcpd使用简介

摘要: 关键词:dhcp、relay、config_packet、dhcpd.conf等。 DHCP(Dynamic Host Configuration Protocol)指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。担任DHCP服务器的计算机需要安装 阅读全文

posted @ 2023-11-24 23:59 ArnoldLu 阅读(912) 评论(0) 推荐(0) 编辑

2023年11月19日

基于mdev实现adb热插拔(@STM32MP157D+fusb302)

摘要: 关键词:fusb302、uevent、mdev、adbd等等。 1 fusb302关于USB插拔检测,以及增加uevent事件 fsusb302支持USB Power Delivery协议(USB Power Delivery),支持识别各种USB设备和对应的状态。 fusb302支持DRP(Dua 阅读全文

posted @ 2023-11-19 23:59 ArnoldLu 阅读(868) 评论(0) 推荐(0) 编辑

2023年11月17日

Reserved for bad PEB handling:不同NAND大小造成分区可用空间差异

摘要: 在调试一个UBI设备时,需要调整MTD分区到尽量小。在调试完成后,换另一个型号NAND,挂载分区异常。记录一下定位问题过程。 1 大容量NAND挂载出现异常现象 同样ubifs文件系统镜像,写入同样NAND硬件,但是Reserved Physical Eraseblocks数量不同,进而导致ubif 阅读全文

posted @ 2023-11-17 23:59 ArnoldLu 阅读(1035) 评论(0) 推荐(0) 编辑

2023年11月14日

嵌入式Linux adbd实现概要梳理(基于STM32MP157D+Buildroot)

摘要: 关键词:USB Gadget、dwc2、configfs、functionfs、adbd等等。 基于STM32MP157D简单记录ADB实现的过程,涉及到USB、Gadget、configfs、functionfs、adbd、ADB协议等等。 基于Buildroot 2020.02.6编译adbd运 阅读全文

posted @ 2023-11-14 23:59 ArnoldLu 阅读(2521) 评论(0) 推荐(1) 编辑

2023年10月29日

基于Busybox的ifup/ifdown网络配置

摘要: 如何在基于Busybox的文件系统,自动进行网络配置?通过ifup/ifdown,从/etc/network/interfaces获取配置,是一种常见的方式。 下面从Buildroot配置ifupdown脚本、ifup/ifdown工作机制、/etc/network/interfaces分别简单记录 阅读全文

posted @ 2023-10-29 23:59 ArnoldLu 阅读(1426) 评论(1) 推荐(0) 编辑

2023年10月28日

BOA使用以及简析

摘要: BOA是一个非常简洁快速的单任务http服务器。官网关于BOA介绍《Boa Webserver》。 下面简单从Buildroot下配置编译、服务启动、访问做个介绍,然后对服务流程做个简单的分析。 1 Buildroot下配置BOA 在Buildroot中配置boa: Target packages 阅读全文

posted @ 2023-10-28 23:59 ArnoldLu 阅读(460) 评论(0) 推荐(0) 编辑

开发板和Windows 11网络直连配置

摘要: 将开发板通过网线和Windows 11直连,组成局域网,并且开发板可以连接Internet。 1 开发板和PC连接示意图 一般笔记本都支持WiFi和有线网络连接,将笔记本和开发板进行如下连接: 2 网络共享配置 打开控制面板\网络和 Internet\网络连接,配置“WLAN”,让“以太网”共享“W 阅读全文

posted @ 2023-10-28 23:59 ArnoldLu 阅读(1190) 评论(0) 推荐(0) 编辑

2023年10月21日

uboot/Linux下MMC/SD/SDIO阅读记录

摘要: 1 uboot下MMC/SD/SDIO 1.1 uboot下MMC/SD/SDIO相关配置 uboot下关于MMC/SD/SDIO驱动以及工具配置: Device Drivers ->MMC Host controller Support MMC/SD/SDIO card support suppo 阅读全文

posted @ 2023-10-21 23:59 ArnoldLu 阅读(2872) 评论(0) 推荐(2) 编辑

2023年10月15日

以PMIC为例简析Linux MFD/Regmap/Regulator的使用

摘要: 关键词:ADI、SPI、Regmap、MFD、Regulator、PMIC等等。 以SC27XX为例,梳理一个PMIC用到的内核模块。 1. MFD框架 MFD是Multi-Function Device,MFD子系统是Linux下一种用于管理和控制多功能设备的软件框架。他提供一种统一接口,使得多个 阅读全文

posted @ 2023-10-15 23:59 ArnoldLu 阅读(1553) 评论(0) 推荐(0) 编辑

2023年10月6日

基于现有dtb文件修改内容

摘要: 当有修改dtb需要,又不想经过linux编译生成dtb时,可以通过dtc工具进行dtb->dts,dts->dtb的转换。 dtc工具可以进行dtb和dts之间的转换,dts是可编辑文本。 Ubuntu下安装dtc工具: sudo apt-get install device-tree-compil 阅读全文

posted @ 2023-10-06 23:59 ArnoldLu 阅读(704) 评论(0) 推荐(0) 编辑

2023年9月16日

NAND/MTD/UBI/UBIFS概念及使用方法

摘要: 关键词:NAND,MLC/SLC,Page/SubPage,EraseBlock,OOB,ECC,BitFlip,MTD,UBI,wearing-level,LEB,PEB,EC/VID,Volume,UBIFS等等。 由于调试NAND Linux启动,记录NAND/MTD/UBI/UBIFS点点滴 阅读全文

posted @ 2023-09-16 23:59 ArnoldLu 阅读(7797) 评论(1) 推荐(1) 编辑

2023年8月21日

GIC-400 TRM阅读笔记

摘要: 相关文档:《《ARM Generic Interrupt Controller Architecture version 2.0》阅读笔记》。 Chapter 1 Introduction 1.1 About the GIC-400 GIC400负责检测、管理、分发中断。 软件可以对GIC400相关 阅读全文

posted @ 2023-08-21 09:33 ArnoldLu 阅读(847) 评论(0) 推荐(0) 编辑

GIC v2.0架构规格书阅读笔记

摘要: 相关文档:《《CoreLink™ GIC-400 Generic Interrupt Controller Revision: r0p1 Technical Reference Manual》阅读笔记》。 Chapter 1Introduction 1.1 About the Generic Int 阅读全文

posted @ 2023-08-21 09:32 ArnoldLu 阅读(643) 评论(0) 推荐(0) 编辑

ARM Star技术参考手册笔记

摘要: Chapter A1 Introduction A1.1 About the processor 处理器支持的接口包括: C-AHB:Code AHB interface。 S-AHB:System AHB interface。 D-AHB:Debug AHB interface。 EPPB:Ext 阅读全文

posted @ 2023-08-21 09:31 ArnoldLu 阅读(1571) 评论(0) 推荐(0) 编辑

ARM Trusted Firmware分析——中断、异常

摘要: 中断如何送到不同EL?如何配置? 1. BL31异常向量表 BL31异常向量表根据如下定义实现: ARMv8-A规定Exception Vector Table大小为2KB,并且是2KB对齐;一共6个Vector Entry,每一个Vector Entry大小为128B。 .macro vector 阅读全文

posted @ 2023-08-21 09:30 ArnoldLu 阅读(995) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 ··· 11 下一页

导航