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

上一页 1 2 3 4 5 6 ··· 10 下一页

2024年5月5日

Buildroot+RISC-V+QEMU(@Ubuntu):搭建RISC-V Linux开发环境

摘要: 1 RISC-V相关Buildroot代码下载和编译 下载Buildroot代码并切换特定分支: git clone https://github.com/buildroot/buildroot.git git checkout 2024.02.1 编译RISC-V的Buildroot: make 阅读全文

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

2024年5月4日

Linux extcon概要记录

摘要: 关键词:extcon、uevent等。 1 extcon介绍 extcon是External Connector的简称,用于抽象外部连接器,比如说Audio Jack、USB MicroB/TypeC接口等。 extcon驱动的主要功能是识别外部连接器状态变化,并将状态变化通知到与外部连接器相关的其 阅读全文

posted @ 2024-05-04 23:59 ArnoldLu 阅读(408) 评论(0) 推荐(0) 编辑

2024年5月3日

Linux音频(3):alsa-lib以及alsa-utils

摘要: alsa-lib是为了简化、便利用户空间对ALSA驱动框架声卡编程的开源库。 alsa-utils是alsa的一个工具包,里面包含有声卡测试和音频编辑的工具. 1 alsa-lib alsa-lib在Buildroot中配置如下,包含一系列库插件: Target packages ->Librari 阅读全文

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

2024年5月2日

Linux音频(2):pulseaudio

摘要: pulseaudio作为声音服务器,启动时根据配置文件对ALSA子系统进行配置,并作为后台进程进行声音重定向配置。 官方文档位于《Documentation – PulseAudio》,但是没有更多概括性介绍和设计功能介绍。《PulseAudio under the hood (gavv.net)》 阅读全文

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

2024年5月1日

Linux音频(1):alsa架构和RK3588 PCM实例

摘要: 《Linux Sound Subsystem Documentation》对Kernel ALSA进行了详细介绍:Designs and Implementations介绍了ALSA的一些设计和实现;The ALSA Driver API分类介绍了ALSA API,然后Writing an ALSA 阅读全文

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

2024年4月19日

camera:一个基于QT+Weston的Camera应用

摘要: 基于QT UI框架编写camera,作为Wayland Client运行。 QT Multimedia自带的camera示例程序位于examples/multimediawidgets/camera。 Camera Example | Qt Multimedia 5.15.16 1 camera框架 阅读全文

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

2024年4月17日

Linux Media子系统:Media Controller设备

摘要: 关键词:Media、Device、Entity、Pad、Link、Interface、Graph、Pipeline等等。 Media Framework一个目的是发现设备内部拓扑结构,并对其进行运行时配置。 为此硬件被被抽象为通过Pad连接的Entity,Pad之间的连接称为Link。 1 Medi 阅读全文

posted @ 2024-04-17 23:59 ArnoldLu 阅读(425) 评论(0) 推荐(0) 编辑

2024年4月16日

Linux v4l2子系统(11):UVC驱动分析

摘要: UVC即USB Video Class,可以看出是基于USB接口的视频设备。相关规范在Video Class,目前最新的版本是Video Class 1.5。 uvc_driver.c:UVC驱动的主体。 uvc_v4l2.c:主要实现了uvc_fops和uvc_ioctl_ops两个数据结构。 u 阅读全文

posted @ 2024-04-16 23:59 ArnoldLu 阅读(852) 评论(0) 推荐(0) 编辑

2024年4月15日

Linux v4l2子系统(10):基于opencv的v4l2应用

摘要: 关键词:v4l2、OpenCV、mmap、ioctl。 Ubuntu下cheese非常简洁易用的拍照/录像工具,通过apt-get install cheese安装。相关的源码也可以在cheese.git下载。 如果想要更深入的了解v4l2的相关使用方法,就需要对v4l2设备进行编程。 首先通过编写 阅读全文

posted @ 2024-04-15 23:59 ArnoldLu 阅读(519) 评论(0) 推荐(0) 编辑

2024年4月14日

Linux v4l2子系统(9):libv4l2

摘要: libv4l是一个对v4l2设备抽象层,包括一系列库文件和测试程序。 1 v4l2库文件 libv4l1.so:支持v4l1应用访问v4l2设备。 libv4l2.so:支持对v4l2设备的open/ioctl/close/poll等访问。 libv4l2convert.so:是为v4l2应用使用的 阅读全文

posted @ 2024-04-14 23:59 ArnoldLu 阅读(635) 评论(0) 推荐(0) 编辑

2024年4月13日

Linux v4l2子系统(8):Rockchip ISP

摘要: 关键词:ISP、DMA等等。 1 Rockchip ISP的dts配置和初始化 rkisp0是硬件设备节点: rkisp0: rkisp@fdcb0000 { compatible = "rockchip,rk3588-rkisp"; reg = <0x0 0xfdcb0000 0x0 0x7f00 阅读全文

posted @ 2024-04-13 23:59 ArnoldLu 阅读(704) 评论(0) 推荐(0) 编辑

2024年4月12日

Linux v4l2子系统(7):CIF(VICAP)

摘要: 关键词:CIF、Interface、Crop、MUX、Scale、IOMMU、MIPI、PVDS、DVP等等。 1 VICAP框架图 VICAP负责从DVP/MIPI接收数据,将数据通过AXI存入内存,或者直接送到ISP,包括如下组件: Interface:和DVP/MIPI CSI接口对接,共7个 阅读全文

posted @ 2024-04-12 23:59 ArnoldLu 阅读(872) 评论(0) 推荐(0) 编辑

2024年4月11日

Linux v4l2子系统(6):MIPI CSI2

摘要: 关键词:CSI2、endpoint、Entity、Pad等。 1 CSI2 Host架构图 2 CSI Host的DTS配置和初始化 mipi2_csi2: mipi2-csi2@fdd30000 { compatible = "rockchip,rk3588-mipi-csi2"; reg = < 阅读全文

posted @ 2024-04-11 23:59 ArnoldLu 阅读(512) 评论(0) 推荐(0) 编辑

2024年4月10日

Linux v4l2子系统(5):MIPI DPHY

摘要: 1 CSI2 DPHY框架图 2 CSI2 DPHY的DTS配置和初始化 csi2_dphy0_hw中定义了DPHY的硬件信息: csi2_dphy0_hw: csi2-dphy0-hw@fedc0000 { compatible = "rockchip,rk3588-csi2-dphy-hw"; 阅读全文

posted @ 2024-04-10 23:59 ArnoldLu 阅读(320) 评论(0) 推荐(0) 编辑

2024年4月9日

Linux v4l2子系统(4):I2C&OV13850

摘要: 关键词:ov13850、subdev、media entity pad等等。 1 OV13850原理图 由原理图可知,Camera接口分为三部分: 4 Lane MIPI信号接口。 I2C控制接口。 Powerdown,Reset,供电接口。 2 I2C总线dts配置和初始化 i2c3总线: i2c 阅读全文

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

2024年4月8日

Linux v4l2子系统(3):video buffer

摘要: 1. videobuffer介绍 videobuf2用于链接v4l2驱动层与用户层,提供数据传输通道,它可以分配并管理视频帧数据。 videobuf层实现了很多ioctl函数,包括buffer分配、入队、出队和数据流控制。 video buffer支持三种类型的struct vb2_mem_ops: 阅读全文

posted @ 2024-04-08 23:59 ArnoldLu 阅读(789) 评论(0) 推荐(0) 编辑

2024年4月7日

Linux v4l2子系统(2):v4l2框架分析

摘要: v4l为Video子系统提供统一框架,驱动通过将v4l2_dev/v4l2_subdev注册到Video子系统,在用户空间创建设备节点。 使用如下命令在kernel(5.10.110)生成driver-api.pdf帮助文件: make SPHINXDIRS="driver-api" pdfdocs 阅读全文

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

2024年4月6日

Linux v4l2子系统(1):RK3588 VI概述

摘要: 本文从硬件框架、软件框架、Buildroot配置、相关源码、创建Video设备及其关系图,来对整个RK3588 VI有所了解。 基于对硬件架构的了解,然后通过 《Linux v4l2子系统(2):v4l2框架分析》。 《Linux v4l2子系统(3):video buffer》。 《Linux M 阅读全文

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

2024年3月29日

基于ldd快速遍历应用/库的依赖关系

摘要: 对于复杂的应用或库文件,要了解其运作原理、架构,通过了解其库依赖关系不失为一种手段。 ldd可以查看单个可执行文件或库文件以来的库,但是库比较多的话不容易有个全局概念。 所以基于ldd编解Python脚本,做个小工具,提供集中查看方式: 直接文本查看类似tree命令输出的属性结构。 xml格式的树形 阅读全文

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

2024年3月23日

Weston概览:架构、配置、启动、代码

摘要: 关键词:wayland、westom、compositor、render、shell backend等等。 weston是Wayland compositor的参考实现。整个weston解决方案包括Wayland协议实现、Wayland协议定义、weston server、weston默认clien 阅读全文

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

2024年3月22日

POSIX标准及其一致性/功能/压力测试

摘要: 1 POSIX标准 POSIX: Portable Operating System Interface of Unix.,可移植操作系统接口。X表示其是对Unix API的传承。 POSIX标准由IEEE(电气和电子工程师协会)发布,定义了操作系统应该为应用程序提供的接口标准,是IEEE为要在各种 阅读全文

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

2024年3月16日

Linux Graphics Stack(图图图)

摘要: Linux图形相关涉及到硬件、内核驱动、协议API、2D/3D渲染框架、GUI框架、桌面环境等,相当复杂,这里简单收集架构图作为记录。 1 硬件相关 显示相关的有: Displaying:显示器、投影等。包括Display engine、Timings controller、Display inte 阅读全文

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

2024年3月10日

Ubuntu 22.04内核代码下载、编译、调试

摘要: 1 下载Ubuntu Kernel 参考《Kernel/Dev/KernelGitGuide - Ubuntu Wiki》,下载Ubuntu 22.04代码。 优先使用: apt source linux-image-unsigned-$(uname -r) 或者: git clone https: 阅读全文

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

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 阅读(1086) 评论(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 阅读(1139) 评论(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 阅读(1179) 评论(0) 推荐(0) 编辑

2024年3月1日

Linux显示(一):Framebuffer子系统

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

posted @ 2024-03-01 23:59 ArnoldLu 阅读(465) 评论(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 阅读(1106) 评论(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 阅读(4299) 评论(0) 推荐(0) 编辑

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 阅读(626) 评论(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 阅读(1365) 评论(0) 推荐(0) 编辑

2024年2月6日

Linux线程proc信息解析

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

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

2024年2月3日

Linux watchdog子系统概述

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

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

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 阅读(375) 评论(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 阅读(437) 评论(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 阅读(793) 评论(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 阅读(585) 评论(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 阅读(277) 评论(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 阅读(614) 评论(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 阅读(1708) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 ··· 10 下一页

导航