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

2023年5月27日

QT显示插件(LinuxFB)及其依赖的驱动(DRM/framebuffer)记录

摘要: 关键词:Framebuffer、linuxfb、DRM等等。 QT在Linux中支持多种显示插件,包括EGLFS、LinuxFB、DirectFB、Wayland等。可以通过--platfrom选项指定选择何种插件。比如:./analogclock --platform linuxfb。 QT支持多 阅读全文

posted @ 2023-05-27 21:11 ArnoldLu 阅读(3) 评论(0) 推荐(0) 编辑

2023年5月25日

Ubuntu下OpenWRT环境配置、下载、配置、运行记录

摘要: 简单记录Ubuntu下OpenWRT开发环境配置,版本下载和编译,以及通过QEMU运行OpenWRT并和Host进行ssh通信。 1. 环境安装和版本下载 编译环境设置: sudo apt update sudo apt install build-essential ccache ecj fast 阅读全文

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

2023年5月24日

Trace32下对ARM内存访问Access Classes总结

摘要: 原内容来源于T32帮助文档debugger_arm.pdf的ARM Specific Implementations->Access Classes,这里记录方便查询。 首先介绍Access Classes都有哪些选项,然后介绍常见的Access Classes组合,最后介绍如何创建合法的Acces 阅读全文

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

2023年5月20日

zImage的压缩、解压以及性能对比

摘要: 关键词:Image,zImage,piggy,gzip,lzo,xz,lzma等等。 1. zImage的压缩 zImage是Image经过压缩后,加上解压缩头后生成的文件:Image -> piggy_data -> piggy.o ->vmlinux(compressed) -> zImage。 阅读全文

posted @ 2023-05-20 23:59 ArnoldLu 阅读(18) 评论(2) 推荐(0) 编辑

2023年5月13日

GIC Implementation and Architecture Specification

摘要: 记录常用GIC实现和对应的架构规格: GIC Implementation GIC Architecture Specification GIC-400 CoreLink GIC-400 Generic Interrupt Controller Technical Reference Manual 阅读全文

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

2023年4月28日

Buildroot(2022.08-rc1)+busybox(1.35.0)启动流程

摘要: 关键词:busybox,inittab,syslogd,klogd,mdev,modprobe,watchdog,telnetd等等。 《busybox启动流程简单解析:从init到shell login》详细介绍了init对inittab的解析和执行。 下面为buildroot(2022.08-r 阅读全文

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

2023年4月26日

Linux RT补丁/分析/性能测试(@Ubuntu)

摘要: 关键词:rt-tests,rt等等。 要去了解实时Linux,首先了解其背景,实时Linux的目标是什么?都采取了哪些措施? 然后需要准备测试环境,需要同一版本的两个内核作对比测试。 确定内核版本之后,针对两个版本的差异进行分析,详细了解这些差异是如何保证实时性的。 最后借助rt-tests和ltp 阅读全文

posted @ 2023-04-26 10:21 ArnoldLu 阅读(99) 评论(0) 推荐(0) 编辑

2023年4月23日

ARM A7 PMU+perf简单记录

摘要: 关键词:pmu,perf等等。 简单记录PMU及其内核驱动,内核中perf相关内容,以及两者是如何关联的。然后记录perf应用是如何和PMU硬件关联的,以及如何使用perf查看PMU结果。 A7 PMU概要 PMU作为一个扩展功能,是一种非侵入式的调试组件。 对PMU寄存器的访问可以通过CP15协处 阅读全文

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

Buildroot使用记录

摘要: 关键词:rootfs、BR2_EXTERNAL等等。 记录buildroot使用各种方法,以及解决的问题。 1 定制文件系统方法 1.1 根文件系统覆盖(BR2_ROOTFS_OVERLAY) 将BR2_ROOTFS_OVERLAY指向的目录覆盖到output/target根文件系统。还可以通过都好 阅读全文

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

2023年3月26日

嵌入式Linux GUI收集

摘要: 关键词:QT、Nano-X、MiniGUI、Wayland、LVGL等等。 QT QT框架结构 QT支持的平台 Desktop Platforms Linux/X11 DistributionArchitectureCompilerNotes openSUSE 15.1 x86_64 GCC 5 o 阅读全文

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

2023年3月25日

基于QEMU模拟器搭建Builtroot下的QT开发环境

摘要: 关键词:buildroot、qt、qemu等等。 1 Builtroot下载编译运行 下载Buildroot: git clone -b 2022.08 https://gitee.com/arnoldlu/buildroot.git 编译: make qemu_arm_vexpress_defco 阅读全文

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

2023年3月22日

Yocto 2:Yocto基本概念、编译流程、目录

摘要: 关键词:Recipe、Layer、Metadata、Poky、bitbake等等。 1 关键概念 深入了解Yocto之前,先了解一些基本概念。在Software – Yocto Project有说明。 这里摘录一段中文翻译: 配置文件: 包含全局定义变量,用户定义变量和硬件配置信息。配置文件告诉构建 阅读全文

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

2023年3月19日

Python根据图片拍摄日期等整理重命名

摘要: 关键词:exif、exifread等等。 最近在整理多年拍摄的图片,希望按照拍摄时间进行排序整理制作相册。 但是有的图片有水印显示拍摄日期;有的文件创建日期因为搬运创建日期和修改日期都已不能反映拍摄日期。 后通过查看图片详细信息,发现有拍摄日期信息。所以通过Python+exifread去读取拍摄日 阅读全文

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

2023年3月18日

通过Python+CRemoteAPI控制Trace32进行调试

摘要: 关键词:Python、C Remote API、Trace32等等。 当需要对Trace32调试进行自动化,或者提高效率时,可以通过Remote Control API进行。 基本的调试流程如下: Python、C等语言可以通过调用C Remote API库文件,和Trace32 PowerView 阅读全文

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

2023年3月17日

Yocto 1:Ubuntu下开发环境搭建

摘要: 关键词:pocky,bitbake,qemu等等。 Ubuntu版本:Ubuntu 20.04.4 LTS。 1 环境配置以及仓库下载 更新Ubuntu下开发Yocto所需要的软件包: sudo apt-get install wget git-core unzip \ make gcc g++ b 阅读全文

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

2023年2月27日

C静态检查工具:cppcheck和PCLint

摘要: 关键词:cppcheck,PC-Lint等等。 1 cppcheck 1.1 cppcheck安装 sudo apt-get install cppcheck 1.2 cppcheck使用说明 cppcheck -h可以查看使用方法: -D<ID> Define preprocessor symbo 阅读全文

posted @ 2023-02-27 23:16 ArnoldLu 阅读(166) 评论(0) 推荐(0) 编辑

2023年2月26日

DV仿真环境下问题定位和性能分析工具:基于PC指针,结合map文件分析函数调用轨迹以及耗时

摘要: 关键词:DV仿真,Python,map,PC等。 当DV使用复杂软件对硬件进行仿真时,由于没有类似Trace32等IDE调试环境,出现问题往往较难定位问题。同时如果想优化性能,较难直到不同流程耗时。 DV仿真可以记录每一次PC变动值,但是软件稍复杂会导致数据量非常庞大。 这里结合map就可以知道每一 阅读全文

posted @ 2023-02-26 23:58 ArnoldLu 阅读(43) 评论(1) 推荐(0) 编辑

2022年12月11日

ARMv7-A Coprocessor概要以及读写

摘要: 关键词:MRC/MCR/MRRC/MCRR、CP14、CP15等等。 1. ARMv7-A Coprocessor介绍 ARMv7-A支持16个Coprocessor,分别是:(A2.9 Coprocessor support) CP15-System Control。 CP14-Debug、The 阅读全文

posted @ 2022-12-11 23:00 ArnoldLu 阅读(247) 评论(0) 推荐(0) 编辑

2022年12月10日

Linux Hibernate配置以及流程简单分析(@STM32MP157D)

摘要: 关键词:Hibernate、suspend、swap、swsusp等。 1. Hibernate介绍 Linux支持的System Sleep States包括:freeze、standby、mem、disk。 /sys/power/state suspend_state_t 进入方法 freeze 阅读全文

posted @ 2022-12-10 23:47 ArnoldLu 阅读(418) 评论(0) 推荐(0) 编辑

2022年4月28日

ARM架构ABI文档集合

摘要: ARM在《GitHub - ARM-software/abi-aa: Application Binary Interface for the Arm® Architecture》维护了ARM架构的一系列ABI文档,主要包括32位和64位架构两大系列,以及一些新增扩展相关ABI(SVE、PAuth、 阅读全文

posted @ 2022-04-28 14:49 ArnoldLu 阅读(590) 评论(0) 推荐(0) 编辑

2022年4月27日

ARMv8-M Star/M33异常处理

摘要: 关键词:ARMv8-M、HardFault、MemManageFault、BusFault、UsageFault、Stack、XPSR、LR、addr2line等。 1. ARMv8-M异常类型及其详细解释 ARMv8-M Exception分为两类:预定义系统异常(0~15)和外部中断(16~16 阅读全文

posted @ 2022-04-27 20:17 ArnoldLu 阅读(1658) 评论(0) 推荐(0) 编辑

2022年4月26日

ARMv8-M Star/M33 POR后如何跳转到第一段指令执行?

摘要: 关键词:Star、VTOR、ld、Reset等等。 Star从POR到第一段汇编代码流程解释 给Star上电(即POR)或者复位后,是如何跳转到第一段汇编开始执行的,这里给出解释。中间涉及到ARMv8-M Star架构特性以及软件编译相关内容。 1 关于Star架构VTOR和Exception En 阅读全文

posted @ 2022-04-26 09:35 ArnoldLu 阅读(228) 评论(0) 推荐(0) 编辑

2022年4月22日

GitLab权限设置、分支保护、Issue/Merge Request模板

摘要: 关键词:Gitlab Permission、Merge Request等。 1. 设置用户权限 GitLab用户在组中有五种权限:Guest、Reporter、Developer、Maintainer、Owner。 Guest:可以创建issue、发表评论,不能读写版本库 Reporter:可以克隆 阅读全文

posted @ 2022-04-22 16:16 ArnoldLu 阅读(5145) 评论(0) 推荐(0) 编辑

2022年4月20日

安全加解密引擎基础

摘要: 关键词:TRNG、HASH、SKE、PKE、OpenSSL、mbedtls、Certificate等等。 1. 安全加解密引擎硬件 一个常见的安全加解密引擎可能包括,以下4部分: TRNG - 真随机数发生器,基于物理器件产生随机数。 HASH - 获取一段数据的摘要信息。 SKE - 对称加密引擎 阅读全文

posted @ 2022-04-20 11:15 ArnoldLu 阅读(458) 评论(0) 推荐(0) 编辑

2022年4月19日

安全加解密引擎基础(SKE SM4)

摘要: 关键词:SM4等。 1 对称加解密基础 在商用密码体系中,SM4主要用于数据加密,其算法公开,分组长度与密钥长度均为128bit,加密算法与密钥扩展算法都采用32轮非线性迭代结构,S盒为固定的8比特输入8比特输出。 在密码学中,分组加密(英语:Block cipher),又称分块加密或块密码,是一种 阅读全文

posted @ 2022-04-19 23:34 ArnoldLu 阅读(582) 评论(0) 推荐(0) 编辑

安全加解密引擎基础(SKE AES)

摘要: 1 基本概念 AES相关基本概念 明文P:没有经过加密的数据。 密钥K:用来加密明文的密码,在对称加密算法中,加密与解密的密钥是相同的。 AES加密函数:设AES加密函数为E,则 C = E(K, P),其中P为明文,K为密钥,C为密文。也就是说,把明文P和密钥K作为加密函数的参数输入,则加密函数E 阅读全文

posted @ 2022-04-19 23:21 ArnoldLu 阅读(298) 评论(0) 推荐(0) 编辑

安全加解密引擎基础(SKE DES/3DES)

摘要: 关键词:DES、3DES、ECB、CBC、CFB、OFB、CTR等等。 1 基本概念 DES介绍 DES是对称性加密里常见的一种,是一种使用秘钥加密的块算法。秘钥长度是64位(bit), 超过位数秘钥被忽略。所谓对称性加密,加密和解密秘钥相同。对称性加密一般会按照固定长度,把待加密字符串分成块。不足 阅读全文

posted @ 2022-04-19 21:06 ArnoldLu 阅读(340) 评论(0) 推荐(0) 编辑

2022年4月15日

安全加解密引擎基础(PKE SM2)

摘要: 关键词:SM2、OpenSSL等。 1 基本概念 SM2算法和RSA算法都是公钥密码算法,SM2算法是一种更先进安全的算法,在我们国家商用密码体系中被用来替换RSA算法。 SM2椭圆曲线公钥密码算法:我国自主知识产权的商用密码算法,是ECC(Elliptic Curve Cryptosystem)算 阅读全文

posted @ 2022-04-15 11:41 ArnoldLu 阅读(309) 评论(0) 推荐(0) 编辑

安全加解密引擎基础(PKE ECC/ECDH/ECDSA)

摘要: 关键词:ECC、ECDH、ECDSA、PyCryptodome、ecdsa、OpenSSL等。 1 基本概念 1.1 ECC Elliptic Curves Cryptography,椭圆曲线密码学(英语:Elliptic curve cryptography,缩写为ECC),一种建立公开密钥加密的 阅读全文

posted @ 2022-04-15 00:12 ArnoldLu 阅读(1553) 评论(0) 推荐(0) 编辑

2022年4月14日

安全加解密引擎基础(PKE RSA)

摘要: 关键词:RSA、PKCS、openssl、PyCryptodome等。 1 基本概念 1.1 编码格式 ASN.1抽象语法标记(Abstract Syntax Notation One),用来描述一段二级制数据的结构信息。包含编码方式:基本编码规则(BER)、可辨别编码规则(DER),这两种编码采取 阅读全文

posted @ 2022-04-14 16:09 ArnoldLu 阅读(1039) 评论(0) 推荐(0) 编辑

安全加解密引擎基础(PKE DSA)

摘要: 关键词:DSA、openssl、PyCryptodome等。 1 基本概念 DSA(Digital Signature Algorithm,数字签名算法)是用于数字签名的联邦信息处理标准。它的安全性取决于离散的对数问题。与RSA相比,DSA的签名生成速度更快,但验证速度较慢。如果使用错误的数字生成器 阅读全文

posted @ 2022-04-14 16:05 ArnoldLu 阅读(384) 评论(0) 推荐(0) 编辑

2022年4月12日

安全加解密引擎基础(TRNG/HASH/HMAC)

摘要: 常见的安全加解密引擎包括TRNG、HASH、SKE、PKE、MD5、SHA1、SHA2、SM3等。 TRNG用于生成真随机数;HASH用于生成一个固定长度的消息摘要;SKE进行对称加密;PKE进行非对称加密。 1 TRNG TRNG(True Random Numeral Generator)一般指 阅读全文

posted @ 2022-04-12 14:05 ArnoldLu 阅读(4621) 评论(0) 推荐(0) 编辑

2021年10月28日

Linux内存相关sysfs、工具

摘要: 1. 全局内存分析 1.1 /proc/meminfo 详细参考:《/proc/meminfo》。 while true; do cat /proc/meminfo | grep MemFree; sleep 10; done 1.2 /proc/pagetypeinfo 1.3 slab相关问题定 阅读全文

posted @ 2021-10-28 14:32 ArnoldLu 阅读(1359) 评论(0) 推荐(1) 编辑

2021年6月25日

FreeRTOS相关教程

摘要: 首先介绍选择FreeRTOS的原因和入门,然后介绍如何配置FreeRTOS、内存、任务、队列、信号量、中断、调度、SysTick、调试等等。 1. FreeRTOS目录组成 《FreeRTOS系列第1篇 为什么选择FreeRTOS?》 《FreeRTOS系列第2篇 FreeRTOS入门指南》 2. 阅读全文

posted @ 2021-06-25 10:33 ArnoldLu 阅读(1770) 评论(1) 推荐(1) 编辑

2021年3月12日

在CPU Hit/MIss时,Cache和Main Memory之间交互策略

摘要: 关键词:Hit、Miss、Read Through、Read Allocate、Write Through、Write Back、Write Allocate、No Write Allocate等。 对Cache和Main Memory之间数据维护设计到性能问题,也涉及到一致性问题。 了解下面各种策 阅读全文

posted @ 2021-03-12 11:12 ArnoldLu 阅读(1382) 评论(0) 推荐(0) 编辑

2021年2月10日

ARM Trusted Firmware分析——镜像签名/加密/生成、解析/解密/验签

摘要: 关键词:等等。 1. 镜像生成过程 生成fip.bin需要做如下工作工作: 编译certificates相关工具cert_create,生成证书。注意证书对应未加密的镜像。 如果需要加密,需要编译enctool工具encrypt_fw,用于对镜像文件进行加密,并加上加密头struct fw_enc_ 阅读全文

posted @ 2021-02-10 00:00 ArnoldLu 阅读(5007) 评论(0) 推荐(1) 编辑

2021年2月6日

ARM Trusted Firmware分析——固件升级(FWU)

摘要: 参考文档:《Firmware Update (FWU)》。 ATF中关于FWU的实现没有如下文档描述完整,尤其是BL2U、NS_BL2U镜像。 可取的是FWU SMC处理、对升级包证书验签和镜像验签流程。 6.1 Introduction FWU功能经过认证的固件从USB/SD/eMMC/NAND等 阅读全文

posted @ 2021-02-06 00:00 ArnoldLu 阅读(1739) 评论(0) 推荐(0) 编辑

2021年1月24日

ARM Trusted Firmware分析——TBBR、TBB、FIP-TBB

摘要: 关键词:TBBR、TBB、FIP、AES、RSA等等。 ARM TBBR定义了安全系统基本需求,ATF中实现了COT,包括FIP生成、密码库调用、镜像签名加密/解密验签等等流程。 下面主要参考ARM TBBR文档,以及《Trusted Firmware-A Documention》。 ARM文档《T 阅读全文

posted @ 2021-01-24 00:00 ArnoldLu 阅读(5226) 评论(0) 推荐(1) 编辑

2021年1月21日

ARM CoreSight Debug and Trace

摘要: 关键词:CoreSight、DAP、ECT、STM、ETM、TPIU、TMC、ETB、ETF、ETR等等。 关联文档:《Linux Self-Hosted CoreSight分析》 Chapter 1 Introduction 1.1.1 Structure of CoreSight SoC-400 阅读全文

posted @ 2021-01-21 00:00 ArnoldLu 阅读(3821) 评论(0) 推荐(0) 编辑

2021年1月19日

ARM Trusted Firmware分析——编译选项

摘要: 参考文档:《Build Options》 1. 通用部分 BL2/BL31/BL31:指定生成fip文件的BL2/BL31/BL32镜像路径,指定后则不需要编译BL2镜像。 BL2_AT_EL3:使能后BL2镜像会运行在EL3异常等级。 BL2_IN_XIP_MEM:使能后BL2会运行在XIP存储设 阅读全文

posted @ 2021-01-19 00:00 ArnoldLu 阅读(2855) 评论(0) 推荐(0) 编辑

导航