- 博客(37)
- 收藏
- 关注
原创 搭建QNX Software Center的Docker环境
本人使用 Ubuntu Server 22.04 服务器,所以没有图形界面,而 QNX Software Center 需要图形界面。为了保证服务器环境的整理,计划使用Docker部署QNX Software Center 一瓶安装图形界面。本方既是实现方案的记录。当前 Ubuntu Server 宿主机无图形界面,参考AI工具给到的建议:选用 Xvfb 虚拟显示 + VNC 客户端 的方式支持用户连接并操作。,但可以运行需要图形环境的应用程序。参考 qnx 安装的help信息,跳过交互并修改安装目录为。
2025-03-30 17:04:04
1134
原创 USB 驱动开发 --- Gadget 设备连接 Windows 免驱
记录 Duo 以 Gadget SourceSink Function 设备接入Win10,最终实现免驱。
2025-01-04 17:11:08
1495
2
原创 USB 驱动开发 --- Gadget 驱动框架梳理(二)
Legacy zero 的方法更贴近 libcomposite 框架的(直接调用相关API),手段灵活,但开发难度相对较高;Function 集成度更高,可使用 configfs 方式高效开发、调试,但可配置内容受 function 实现的内容限定;
2025-01-03 23:01:38
1171
原创 Input子系统(一)、从内核文档入门
Input子系统的核心是input内核模块,故其需要早于其他input设备驱动优先被加载。 从input模块获取事件并将其传递给需要的对象,如:按键给到内核、鼠标移动给到GPM和X这样的UI框架,等等。Input子系统设计用于集合Linux下所有输入设备驱动。几乎所有输入设备的驱动都位于。节点,否则自动创建并分别接入GPM或X显示框架(详见原文档)。 连接硬件并上报事件到input模块;目录下,但伋有部分设备驱动位于。,之后系统通常会自动创建。
2024-11-13 21:55:42
191
原创 集成构建流程之根文件系统Buidroot
执行make,Makefile文件为:build/Makefile。通用编译脚本:build.sh。通用shell函数定义脚本。通用环境变量配置脚本。
2024-05-23 23:17:02
281
原创 U-boot 21.10 启动流程梳理(草稿状态,完成度 45%)
本文主要梳理了U-boot 21.10版本的启动流程,以便更好地实现定制化功能。在梳理过程中比较了ARM和RISC-V两个平台的差异,并总结了定制化实现中需要关注的细节。
2024-04-27 17:45:48
1023
原创 Linux 5.10 Pstore 学习之(一) 功能测试
本文主要用于介绍Linux 5.10(Duo S)开启Pstore功能并进制测试的方法与问题解决。
2024-04-08 23:02:48
2058
原创 Linux驱动初始化/退出
参考1. initcall和module_init - 知乎 (zhihu.com)MODULES宏用于区分,驱动内置与模块加载。由Makefile中动态传入,头文件可知MODULE定义时,有:定义了一个静态内联函数,该函数无入参并返回int类型,该函数直接调用initfn;定义了一个函数init_module,该函数等效于(复制属性并创建别名)。
2024-01-18 22:45:03
468
原创 Standalone---基础认知
导出给standalone程序使用函数多是设备无关的代码实现,所以standalone在移植到一个新设备时,唯一需要关注的是。此时,standalone使用就是替换后的malloc与free。此时,standlone程序就可以使用malloc与free。参考:doc/README.standalone。standalone程序入口先使用。standalone版本号递增更新。
2023-10-24 22:43:22
304
1
原创 U-boot下netconsole实现
上面的do-while会循环命令解析器的"命令输入解析–执行"运行模式。其中的函数run_list执行如下的函数调用流程:run_list–>run_list_real–>run_pipe_real->cmd_process。
2023-10-08 00:16:37
595
1
原创 Linux之random子系统问题解决分享
结合与的代码跟读,整理出问题流程时序图表示如下:结合图示,复述问题过程:启动启动中,系统通过中断的方式不断向input_pool熵池填充状态随机数,而blocking_pool为空。应用程序Hicore调用系统接口getrandom()获取256个随机数而陷入内核态;此时input_pool熵池未收到阈值128 bits的随机数而处于处于未初始化状态(crng_init值为1),即crng_read()为假(crng_int值为2时,crng_read()为真)。
2023-03-18 22:41:19
467
原创 typora导出html后,内嵌图片脚本
命令:python R:\Tools\01-Source\01-Scripts\Typora_html.py --dir “currentFolder"−−file"{currentFolder}" --file "currentFolder"−−file"{currentFileFullName}” --out “${outputPath}”脚本:typora_html.py
2023-02-03 22:35:01
530
2
翻译 eBPF学习笔记
eBPF学习笔记(翻译与摘抄)文章目录eBPF学习笔记(翻译与摘抄)@[toc]专有名词概念hook总览如何编写eBFP程序JIT 编译器Maps专有名词JIT Just-In-Time compiler概念eBPF是一个具有革命性的技术,源自在Linux内核用以实现在操作系统内核中运行沙盒程序的需求。在不修改内核源码或加载核心模块的前提下,安全、高效地扩展内核能力。hook总览如何编写eBFP程序可以直接使用bytecode编写eBPF可识别的字节码;更多的开发者使用LLVM编
2022-03-13 23:45:32
881
原创 基于FRP实现树莓派内网穿透
基于FRP实现树莓派内网穿透文章目录基于FRP实现树莓派内网穿透引用客户端(云服务器)配置启动服务防火墙修改测试客户端(树莓派)配置启动服务测试引用客户端(云服务器)到Github下载[frp](Releases · fatedier/frp · GitHub)并安装# 下载并解压wget https://github.com/fatedier/frp/releases/download/v0.40.0/frp_0.40.0_linux_amd64.tar.gztar -xvf frp_0.4
2022-03-13 17:28:27
479
翻译 GNU链接脚本语法(草稿)
链接工具使用(草稿,完善中)文章目录链接工具使用(草稿,完善中)@[toc]链接脚本的选择3.1 Basic Linker Script Concepts3.2 Linker Script Format3.3 Simple Linker Script Example链接脚本的选择默认脚本如果没有指定链接脚本,链接器将会选用默认的链接脚本You can use the ‘–verbose’ command line option to display the default linker scr
2022-02-02 17:19:38
364
原创 u-boot Makefile中两个all的作用
# Include autoconf.mk before config.mk so that the config options are available# to all top level build files. We need the dummy all: target to prevent the# dependency target in autoconf.mk.dep from...
2019-06-19 22:31:43
492
原创 Proc使用seq_file时,参数如何传递
文章目录测试代码代码分析variable是全局变量,如何在proc操作间传递?创建节点 proc_create_dataopen阶段file 与 seq_filePDE_DATA(inode)是什么show/write 阶段,总结测试代码#include <linux/module.h>#include <linux/kernel.h>#include <li...
2019-06-08 21:35:01
814
原创 字符设备几种注册方式的区别
数据结构#define CHRDEV_MAJOR_HASH_SIZE 255static struct char_device_struct { struct char_device_struct *next; unsigned int major; unsigned int baseminor; int minorct; char name[64]; struct file_o...
2019-06-03 17:09:47
468
原创 Linux 中节点(inode)、设备(cdev)、驱动(ops)如何关联
inode与cdev结构体对比(片选)struct inode { uid_t i_uid; gid_t i_gid; dev_t i_rdev; // 设备文件的设备号 union { struct pipe_inode_info *i_pipe; struct block_device ...
2019-05-30 22:54:29
3261
原创 Rockchip DRM主驱动流程梳理
DRM主驱动流程梳理kernel 配置与编译make rockchip_defconfigmake rk3399-sapphire-excavator-edp.imgDTSarch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator-edp.dts#include "rk3399-android.dtsi"&...
2019-04-13 11:38:11
9432
1
翻译 EGL 1.4 API 中文(部分)
3.4 配置管理EGLBoolean eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config);功能: 得到适配属性列表的EGLConfig配置 返回: EGL_FALSE:失败...
2018-08-02 10:30:48
1599
原创 Ubuntu server 14.04 双网卡上网设置
目的:实现Ubuntu server 14.04 上两个以太网卡的正常使用:em1: 192.168.84.100 192.168.84.0/24网段的连接(局域网,无法上网)em2: 192.168.199.130 192.168.199.0/24网段的连接(局域网,可以上网)背景1:默认网关(default gateway)只能是一个!PS:本人还未找到推翻这个结论的实例非唯一网关,报错示列:...
2017-07-01 16:37:39
4911
原创 git rm 结合 .gitignore 完成文件忽略
贴图蛋疼,直接分享云笔记链接:http://note.youdao.com/noteshare?id=e6c420074f3ed728b2d6bdf568c9e00b一、生效条件:1)、未跟踪的对象:新建.gitignore文件后就可生效;2)、已跟踪的对象:需要先清除该对象的跟踪后才可生效;注:虽然在添加.gitignore文件后已经能够忽略文件,
2017-04-20 10:44:34
330
Typora导出HTML,图片内嵌Python脚本
2023-02-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人