PMBUS Linear-11数据编码解析
PMBus 协议中的 Linear-11 是一种数据编码格式,用 16 位(2 字节)数据表示浮点数(电压、电流、功率、温度等物理量)。
PMBus 协议中的 Linear-11 是一种数据编码格式,用 16 位(2 字节)数据表示浮点数(电压、电流、功率、温度等物理量)。
1 deb包安装 内核mali版本为g18p0对应的用户空间的驱动就应该装比这个版本低级的,而3568SDK中只提供了g2p0和g24p0,前者版本太低,后者版本太新,故在3588SDK中找到了libmali驱动。要装的驱动包如下 RK3588SDK提供: libmali-bifrost-g52-g13p0...
PCIe、SATA、USB 3.0 等串行链路的差分线上,通常都需要串接交流耦合电容(AC Coupling Capacitor)。
UEFI 与 ACPI 是现代计算机系统中负责硬件初始化、系统引导和电源配置管理的核心标准。两者位于操作系统与底层硬件之间,共同构成了现代计算机固件与系统的沟通桥梁。
向日葵远程控制是常用的跨平台远控软件,按版本可分为企业版与个人版(此处为麒麟版本)两类。在 RK3588 等嵌入式设备上部署后,两类版本均可能遇到两个典型问题:
xserver-xephyr(通常简称 Xephyr)是一个嵌套的 X 服务器(Nested X Server)。它的核心作用是在你当前正在运行的主 X 桌面会话中,以一个普通窗口的形式启动一个全新的、逻辑上完全独立的 X11 显示服务器。
sshpass 是一个极为实用的命令行工具,它的核心功能是在非交互模式下为 SSH 提供密码。
1. GNOME 与 Xfce 合成链路的区别
Glamor 是 X Window System(X.Org Server)中的一个开源 2D 图形加速架构。
Expect 是一个比 sshpass 强大得多、也复杂得多的老牌自动化工具。如果说 sshpass 是一把专门用来开 SSH 密码锁的“特制钥匙”,那么 expect 就是一个可以帮你完成各种复杂对话的“机器人”。
在 Linux 内核和嵌入式开发中,hwmon 是 Hardware Monitoring(硬件监控) 的缩写。
用 git cherry-pick -n 或 git cherry-pick --no-commit 就行。这是 Git 官方支持的参数,含义是:把目标提交引入的改动应用到工作区 + 暂存区(index),但不自动生成新提交。
edgeBMC(边缘主板管理控制器,Edge Baseboard Management Controller)是专为边缘计算设备(如工业电脑、物联网网关、边缘服务器)设计的一种轻量级带外(Out-of-Band, OOB)远程管理芯片及方案。
通常,内核日志(Kernel Ring Buffer)只能由内核态代码通过 printk 生成。但在测试日志采集系统、编写监控告警规则或复现生产环境故障时,我们往往需要人为地制造一些内核日志。
一、引言:为什么需要工作队列?
strings 是分析二进制文件(如可执行文件、库文件、固件、内存转储)时最常用、最快速的工具之一,用于提取其中的可打印字符串。以下是详细的使用指南和技巧。
Git 默认的 core.autocrlf 机制虽然初衷是为了缓解不同操作系统间的换行符差异,但在对文件哈希值(Hash)有严格一致性要求的场景下,这种“自动转换”反而会带来意想不到的干扰。为了维护一份github远程仓库的笔记,在不同本地拉取后文件的哈希严格一致,需要使用这样的方式:在本地彻底统一使用 LF,并...
随着大语言模型(LLM)向端侧和边缘侧渗透,推理硬件架构正在发生分化。一类是传统的独立 GPU(如 RTX / Tesla 系列),另一类是基于统一内存架构(UMA)的 SoC NPU(典型代表如 SpacemiT K3 等 RISC-V 智算芯片)。
概要:本文记录如何用 githubio_sync.js 脚本把本地笔记仓库 F:\notes 里的 markdown 笔记自动同步发布到个人博客 witheart.top(GitHub Pages + Jekyll minimal-mistakes),涵盖日常同步命令、增量上传原理、上传目录规则和注意事项,方便以...
Node.js简介
概要:梳理用户态切换到内核态的三种触发场景(系统调用、硬件中断、程序异常),并详细拆解 CPU 硬件自动完成的五个步骤:查 IDT、特权级安检、切栈、压栈保存现场、跃迁切换。
概要:介绍定位“栈”的一对寄存器 %ss(堆栈段寄存器)与 %esp(栈指针寄存器):各自的字长与作用、x86 栈向下生长的反直觉设计,以及 SS:ESP 组合在函数调用、局部变量分配和中断切换中的隐式配合。
概要:介绍任务段(TSS)的作用:当发生特权级切换时,CPU 如何通过 TSS 找到内核栈,以及 xv6 用一个 TSS 配合动态修改 ESP0 实现多进程内核栈切换的巧妙设计,并梳理中断发生时硬件自动完成的完整流程。
概要:讲解 CPU 运行程序时栈(Stack)的三大作用:记录函数调用的返回地址、存储局部变量和参数、以及中断/异常时保存现场(trapframe),并说明栈“后进先出”特性与这些作用的联系。
面向第一次使用 DeepSeek Harness(简称 dsh)的新手。跟着下面 5 步走,约 10~20 分钟即可跑起来。
1. devmem 是什么?
1. export TERM=dumb (让终端变“哑”)
DAC 的全称是 Direct Attach Copper(直连铜缆),是一根两头自带光模块形状插头的“粗铜线”。它的接头看起来跟光纤模块一模一样(比如 SFP+ 或者 QSFP 接口),但中间连着的不是光纤,而是纯铜的电缆。
在企业级 IT 硬件与数据中心架构中,FRU 的全称为 Field Replaceable Unit(现场可替换单元)。
概念
SLiM (Simple Login Manager) 简介
DRM 管得宽,内部是分工的。KMS 全称是 Kernel Mode Setting(内核模式设置),它就是 DRM 里面专门负责“把画面送上屏幕”的那个大总管。
DRM 指的是 Direct Rendering Manager(直接渲染管理器)。
要搞懂 DRI 是干嘛的,咱们得先看看以前没有它的时候,图形程序是怎么受憋屈的:
该程序是用于crash上报的,直接屏蔽其服务就可以 systemctl stop whoopsie systemctl disable whoopsie sudo systemctl mask whoopsie
问题描述 打开文件管理器,报错如下 nautilus[213633]: Called "net usershare info" but it failed: 执行子进程“net”失败(No such file or directory)
问题 ```bash journalctl -b 0 | grep -i “libGL” 8月 08 13:40:14 user gnome-session[999]: libGL error: failed to create dri screen 8月 08 13:40:14 user gnome-sessi...
sudo dd if=/dev/urandom of=/mount/point/fillfile bs=1G status=progress
在 RK3588 平台上,你可以通过访问 CRU(Clock and Reset Unit,时钟与复位单元)的全局软件复位寄存器,来实现直接从硬件底层触发整机重启。
在将大语言模型(LLM)集成到实际的 Agent 架构或业务工作流时,理解其底层的运行机制与工程评测指标是进行系统调优的前提。本文对 LLM 相关的核心术语与技术概念进行了系统性整理。
概要:介绍 x86 的特权级体系:Ring 0(内核态)与 Ring 3(用户态)的概念,以及 CPL(存放在 %cs 中)与 DPL(存放在段描述符中)的硬件实现和“门禁核验”规则。
概要:介绍 %cs(代码段寄存器)与 %eip(指令指针寄存器)的字长、作用与工作机制,并说明 CS:EIP 组合如何定位下一条指令,以及段内跳转与跨段跳转的区别。
概要:介绍中断描述符表(IDT)与 IDTR 寄存器:256 个门描述符的结构(中断门、陷阱门、任务门)、CS:EIP 定位与 DPL 权限检查,以及现代操作系统通过“跳板函数 + 软件中断表”的二次转发设计。
一、场景描述
Ubuntu桌面终端有大量日志时,想要全选复制,发现Ctrl+A或者Ctrl+Shift+A不生效,无法全选。
以「Nautilus 回收站恢复同名文件卡死」为例,梳理从现象到根因的完整排查流程。
1. 问题现象
环境 RK3568 Ubuntu20.04 LightDM + X11 + XFCE 向日葵 最新版本向日葵无法显示主界面 低版本向日葵sunloginclient-10.0.2.24779_kylin_arm64可以显示主界面,也能远程连接,但是连接后虽然能看到桌面,但是有偏色,且提...
概要:本文介绍了在Linux bash环境和Android init.rc脚本中操作GPIO的常用命令,包括查看GPIO状态、导出引脚、配置方向以及设置电平等操作。
问题描述 AM3568,添加了几个GPIO后,发现export正常,设置方向也正常,但是输出电平不对,一直和设置不同,并且是多个一起出现这种情况。
注意:初次烧录后可能不能正常显示,首次烧录完成后,应当断电,将拨码开关拨到正确的屏参处,然后再次上电。 拨码开关在板子的背面 拨码开关与不同的屏幕参数对应如下
参考 https://redmine.rock-chips.com/issues/613225 《RK3568改为SD卡启动》 —— by李浩
sudo apt install imagemagick
DRM 与 Widevine
由于该功能进行了多次迭代,编译方式有所修改,故写此文章,说明在新的分支上如何应用该功能和编译出完整的固件。
1. 芯片介绍 F81601A 是 Fintek 出品的 PCIe 转 2 路 CAN FD 芯片,基于自定义 SJA1000 兼容控制器实现。本文档记录在 RK3568 Android 11 平台(NK_RK3568 板卡)上完成 PCIe2x1 接口切换及驱动集成的完整过程。
1. 检查 apt/dpkg 的基础状态
本文提供几种思路,未实际验证。
参考链接 https://github.com/radxa/kernel/pull/50 https://github.com/radxa/kernel/pull/50/changes/373865a9e5ca2d007ef7057d0ea2349d5f8245de https://forum.radxa.com...
用 modetest 扒开底层图层
参考 《Rockchip_Developer_Guide_DRM_Display_Driver_CN》3.2.4.2 指定图层分配策略 https://github.com/ChisBread/linux-orangepi/commit/63eb2dd31f886dcdb3f8d4d595c41f2a1...
$clog2 是 Verilog-2005 标准引入的系统函数,全称 ceiling of log base 2,即「以 2 为底的对数向上取整」。
一、fallocate 是什么
问题描述 RK3588 使用Ubuntu Gnome系统,在设置->关于的CPU型号一栏中,无法显示CPU型号,该栏为空。
安装 Yocto 必备的系统依赖库 sudo apt update sudo apt install -y git build-essential python3 python3-pip python3-pexpect \ python3-git python3-jinja2 xz-utils debianuti...
问题描述 RK3568/RK3588使用Ubuntu20.04 Gnome系统,设置->关于处,显卡显示未知,或者显示llvm的软解,即使mali驱动已经配置了。
问题 使用命令行在桌面下启动cutecom时,有如下的报错: setting current session to: "Default" MainWindow::MainWindow(QWidget*, const QString&) calculated height: 31 libGL error...
1. 概述
deb获取 RK 官方 SDK kernel-5.10有预编译好的deb rk3588/debian/packages/arm64/chromium/chromium-x11_111.0.5563.147_arm64.deb
1. 故障现象与定位
MDM(Mobile Device Management,移动设备管理)是一种企业级的 IT 管理解决方案。简单来说,它就是一个中央控制台,让你可以远程管理、配置、监控和保护分布在各地的海量终端设备(如手机、平板、工控机、数字标牌和 POS 机等)。
V4L2 (Video for Linux 2) 是 Linux 内核中关于视频设备的标准驱动框架。它向下为各种复杂的视频硬件(如摄像头、ISP、视频解码器等)提供灵活的扩展机制,向上为用户空间的应用程序(如 FFmpeg、GStreamer 或你自定义的 C# / Python 测试软件)提供统一的 API 接...
这里需要先澄清一个概念:OpenBMC 里的 KVM,不是 Linux 内核里的那个虚拟机管理程序(Kernel-based Virtual Machine)。
IPMI(Intelligent Platform Management Interface,智能平台管理接口)是一项由 Intel、Dell、HP 和 NEC 联合提出的服务器硬件管理标准化协议。
EtherCAT(Ethernet for Control Automation Technology)是由德国倍福(Beckhoff)公司在2003年提出的一种基于以太网的实时工业网络通讯协议。它的核心目标是解决传统以太网在工业控制、多轴运动控制等领域中存在的非确定性和高延迟问题。
问题描述 安装后librga2_2.2.0-1_arm64.deb,发现/usr/lib/aarch64-linux-gnu/ 下缺少了 librga.so
本文详细讲解如何从 RKNN Toolkit2 SDK 中提取文件,打包为可直接 dpkg -i 安装的 .deb 包,部署到 RK3588 开发板的根文件系统中。
本文是一篇通用指南,介绍如何将任意一组文件打包为 .deb 安装包,适配 Debian/Ubuntu 等系统。
SONAME 是什么
如果在Windows下解包librga-dev_2.2.0-1_arm64.deb,会发现其中根本没有librga.so。原因是Windows不支持软链接,实际上该librga.so是存在包内的。
关闭VSCode升级
右键面板的空白处,打开菜单,选择“面板” -> “面板首选项” 取消勾选锁定面板,此时面板左侧会出现小点,鼠标点击即可拖拽
.mod 文件是 Linux 内核编译模块时的中间编译产物(Build Artifacts)。
bmcweb 是 OpenBMC 开源项目中的核心 Web 服务器组件,它主要负责在 BMC 上提供 Redfish API、Web 用户界面以及基于 WebSockets 的远程控制功能。
1. BMC (Baseboard Management Controller)
使用 curl 探测节点状态
wifi wlan0节点是否正确加载,反复测试 开关 系统下 ifconfig nmcli 信号强度 协商速率 2.4 5 GHz是否可以识别到 切换wifi 软 硬 重启 wifi开关状态保存
```bash sudo apt install exfat-fuse exfat-utils
修改历史
1. 基础查询:通过 sysfs 提取出厂信息
强制显示 使用下面的命令,查看有没有读到屏幕 xrandr
安装 rk sdk中获取这两个预编译的包 glmark2-data_2023.01+dfsg-1_all.deb glmark2-es2-x11_2023.01+dfsg-1_arm64.deb
前言 有时候需要下载旧版本的deb包,但是该包在apt镜像源中已经下载不到了,这时候就需要前往launchpad下载deb包的存档,但是该网站的下载链接比较难找,故出此笔记记录。
MII 本质上是硬件接口(Hardware Interfaces)规范,是以太网物理层(PHY)与介质访问控制层(MAC)之间的标准通信接口。
在现代显示接口规范中,DisplayPort(DP)凭借其高带宽和微包数据流架构占据了重要地位。然而,为了兼容市面上庞大的 HDMI 和 DVI 显示设备,DP 标准引入了 DP++(Dual-Mode DisplayPort,双模 DisplayPort)。
前言 从ubuntu-base构建出来的系统,桌面使用cpu软解。要想使用上3588内置的mali显卡,必须打上显卡驱动。但是实测只安装瑞芯微预编译(rk SDK debian/package目录下)的libmali包后,桌面无法显示,须配合xserver和librga2才能显示。即使这样,桌面仍旧卡顿,需配合环...
在 Debian/Ubuntu 系统中,dpkg -l 命令输出的状态标志实际上由 三个字母 组成(通常第三个字母为空白,所以大部分情况下看起来是两个字母)。
certutil -hashfile 文件名 MD5
1 顺序写压力测试
构建适用于 RK3588(基于 ARM64 架构)的 Ubuntu 根文件系统,最主流且高效的方法是使用官方的 Ubuntu Base 镜像,配合主机(通常是 x86 架构的 PC)上的 qemu-user-static 工具,通过 chroot 的方式进行模拟构建。
方式1 直接在内核driver目录下的kconfig中寻找
查看触摸设备 xinput list
在应用程序中找到显示
IP 层的”先天缺陷”,催生了 ICMP
mDNS 全称 Multicast DNS(多播 DNS),是一种在没有传统 DNS 服务器的局域网里,让设备通过”主机名”互相找到对方的小协议。
首先确保环境变量正确修改了
```sh echo $0
xfce4-session-logout 其实是调出那个带选项的对话框(注销/重启/关机/挂起都在里面),不是单独的重启命令。XFCE 下常用的几个开关机相关命令:
```text Q: RK3568 mali内核态驱动版本为g18,用户态驱动只能找到g2/g13/g24的驱动,没有完全对应g18的,请问这块建议用哪个?贵司能否提供对应g18的驱动?
1. nmap(最常用)
1 安装基本工具
1 参考链接
一、Codex CLI:主力走 Responses API,Chat Completions 已被砍
AI API 的”协议碎片化”确实是最让开发者头疼的事儿之一。本质原因是 OpenAI 的 Chat Completions 虽已成为事实标准,但 Anthropic 和 Google 两家坚持了自己的一套原生协议,再加上 OpenAI 自己又在 2026 年推了新一代的 Responses API,所以现在市场...
问题 rk内核在can节点未up时,也会向日志中打印大量的日志: [ 94.885687] rockchip_canfd fea70000.can can0: rockchip_canfd_get_berr_counter RX_ERR_CNT=0x00000000, TX_ERR_CNT=0x0000000...
问题 u盘,fat /ntfs,插入ubuntu系统,有的可以补全,有的不能补全文件名称。有的可以直接在u盘中执行,有的chmod +x也不能在u盘中执行。
Linux 内核崩溃日志收集里的 pstore 与 ramoops,本质上就是内核的“黑匣子”。当系统发生 Panic/Oops 等致命错误时,传统磁盘日志往往来不及落盘,这套机制能把最后的现场(dmesg、console、栈回溯等)保存在一个重启不丢数据的区域里,等你重启后读出来复盘。注意,由于是保存在内存中...
系统遇到了底层问题,比如系统死机(Hang)、内核崩溃(Panic)或者发生死锁,导致正常的控制台无法响应,从而通过在串口上敲入”fiq”进入底层的 FIQ 中断模式。
FUSE 全称是 Filesystem in Userspace(用户空间文件系统)。
tee 是 Linux/Unix 系统中一个非常实用且经典的命令行工具。它的名字生动地来源于水管工程中的“T型三通”接头(T-splitter)。
1. su (Switch User)
glibc (GNU C Library) 是 Linux 系统中最底层的 API,也是整个用户态(User Space)的基石。对于任何在 Linux 环境下运行的 C/C++ 程序,或者依赖 C 运行时的其他语言程序来说,glibc 就是它们与操作系统内核(Kernel)沟通的唯一官方桥梁。
第一部分:从硬件到桌面的全链路架构
参考链接 https://www.zhihu.com/question/493289467
在硬件测试和FAE(现场应用工程师)的排查语境中,ABA测试(通常也称为交叉验证测试或A-B-A复测)是一种非常经典且严谨的故障隔离方法。
问题 Linux 8250 串口子系统,在编译时指定了串口数量的限制,一般是48个,导致K3服务器(48个K3串口+1个BMC串口)的串口无法全部探测出来。
要单独拉取(clone)这个特定的分支,你可以使用 git clone 命令并结合 -b 和 --single-branch 参数。
以CM256 WiFi模组为例
```bash wlan0 IEEE 802.11 ESSID:”Xiaomi_49DE_5G” Mode:Managed Frequency:5.785 GHz Access Point: 50:88:11:A2:49:E0 Bit Rate=433.3 Mb/s Tx-Power=31 dBm Retry s...
enp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.0.22 netmask 255.255.255.0 broadcast 192.168.0.255 inet6 fe...
出现这个问题的原因是 ubuntu-base 默认没有为 root 用户设置密码,且默认的安全策略不允许空密码通过串口(或者说未锁定的终端)登录。
1 问题描述
Ubuntu(以及整个 Linux 生态)之所以存在这么多网络管理工具,本质上是Linux 内核网络栈的演化以及网络使用场景复杂化共同造成的历史叠加结果。
ip 命令常用操作 (iproute2)
iw 命令常用操作 (nl80211)
对于 Android APK 闪退问题,按优先级依次搜索以下关键字,基本能找到问题
问题描述 ```bash bzip2: Compressed file ends unexpectedly; perhaps it is corrupted? Possible reason follows. bzip2: Inappropriate ioctl for device ...
日志位置
来源 https://oper.io/?p=linux/manual_restart_with_sysrq-trigger
作者: 吴思含(Witheart) 更新时间: 2026年6月22日
一、什么是 chroot?
具体使用方式 ```bash 触发 Show State (t) echo t > /proc/sysrq-trigger
sysrq 命令大全 https://www.kernel.org/doc/html/v4.11/admin-guide/sysrq.html#what-are-the-command-keys
在Linux系统中,进程(Process)的生命周期是由不同的状态交替构成的。当我们在终端中使用 ps、top 或 htop 等命令查看系统进程时,经常会看到一个名为 STAT 或 S 的列,里面的字母就代表了进程当前的状态。
在 x86 主机上为 ARM64 架构(如瑞芯微 RK3568)构建根文件系统时,出现了 qemu-user-static,它究竟是什么?
```bash 挂载宿主机的设备节点和系统目录 sudo mount -t proc /proc ubuntu-rootfs/proc sudo mount -t sysfs /sys ubuntu-rootfs/sys sudo mount -o bind /dev ubuntu-rootfs/dev sudo...
构建适用于 RK3568(基于 ARM64 架构)的 Ubuntu 根文件系统,最主流且高效的方法是使用官方的 Ubuntu Base 镜像,配合主机(通常是 x86 架构的 PC)上的 qemu-user-static 工具,通过 chroot 的方式进行模拟构建。
仓库链接 https://github.com/rockchip-linux/rknpu2 https://github.com/airockchip/rknn-llm https://github.com/airockchip/rknn-toolkit2
环境 RK3568 Ubuntu20.04 lightdm x11 xfce4
1 设置方式 按下图方式,将DNS改为 223.5.5.5,119.29.29.29 注意是使用英文逗号分隔的。
正则表达式(Regular Expression)与有限状态机(Finite State Machine, FSM)在数学上是等价的。
1 问题描述 XFCE开机后,会自动打开某个目录,关闭该目录后,重启,仍然会打开相同的目录。
一、 什么是编译(Compilation)?
从源代码(.c/.cpp)到最终运行,整个完整的生命周期其实可以拆解为以下几个核心阶段:
```csharp int target = Convert.ToInt32(“CD”, 16);
本文跳过正则表达式本身的语法规则(如 \d、+、* 等),完全专注于 C# 语言层面如何调用、处理和优化正则表达式。
Ninja 是一个极其轻量、专注于追求极致速度的底层构建系统(Build System)。
Meson 是一个现代化的、开源的构建系统(Build System),主要用于自动化编译和构建软件项目。它的核心设计目标是:极快的构建速度和极其友好的开发者体验。
问题描述 ```bash $ python3 ./T3568_uart_test.py Error testing UART on /dev/ttyS0: [Errno 13] could not open port /dev/ttyS0: [Errno 13] Permission denied: ‘/dev/...
一、 脚本核心逻辑解析
stressapptest 是 Google 开发的一款内存测试工具。
终端中输入命令 sudo badblocks -v -s /dev/mmcblk0
作为系统适配人员,为了能够成功修改底层系统并打包出可批量烧录的 overlayroot 根文件系统,你需要根据不同的修改场景,参考对应的指南文件。以下是具体的操作路径与规范:
firefly系统
问题:Ubuntu 20.04 没有为 ARM64 编译这个包
问题描述 Ubuntu xfce在语言支持中设置中文后汉化不全,右键菜单、应用程序等仍为英文。 language-pack-zh-hans language-pack-gnome-zh-hans显示都已经安装。
1. 配置目录的优先级差异
参考
简介
在自己构建的根文件中,vim(或 vi)显示中文乱码通常是由编码不匹配导致的。从系统底层到终端软件,任何一个环节的字符集配置不对都会引发这个问题。
1 确认 XFCE 的 Session 名称
在 ARMv8 架构(特别是引入了 TrustZone 安全扩展后)中,系统的启动不再是简单地把代码搬到内存里运行,而是有着严格的权限和安全等级划分。
RPMB (Replay Protected Memory Block,重放保护内存块) 是 eMMC、UFS 和 NVMe 等存储设备中的一个具有安全访问控制的隐藏硬件分区。
在 x86 架构的主板中,“拔掉电池清 CMOS” 是一种非常经典的硬件故障排查和系统重置手段。
一、 通信协议
1 RTSP
1 环境搭建
第一步:下载并启动 RTSP 服务器 (终端 1)
1 问题背景与环境
在 RK3588 芯片里面,有一块专门负责视频编解码的物理硅片,叫做 VPU (Video Processing Unit)。这三者的关系,就是如何把这块物理 VPU 的能力发挥出来。
本文来源于野火教程:https://doc.embedfire.com/linux/rk356x/quick_start/zh/latest/lubancat_rk_software_hardware/software/gstreamer/gstreamer.html#
volatile 是一条写给编译器的指令,强制要求每次访问该变量时,必须直接从真实的物理内存(或硬件寄存器)地址中重新读取最新值,严禁将其缓存在 CPU 的通用寄存器中进行优化。因为这个变量的值随时可能被硬件改变。
一、 硬件接线:交叉连接
查找方式 1. 确保挂载了 debugfs 通常系统默认已经挂载,如果没有,执行:
在 Linux 系统中,procfs、sysfs 和 debugfs 都是虚拟文件系统(Virtual File System, VFS)。它们并不存在于硬盘等非易失性存储器上,而是驻留在内存中。
<T> 核心原理解析
1. var 到底是什么?(隐式类型推断)
在 C# 中,.OfType<T>() 是 LINQ(语言集成查询)提供的一个非常高频且实用的扩展方法。它的核心功能是:从一个集合中筛选出指定类型的元素,并返回一个强类型的泛型集合。
在 C# 的 LINQ 中,.FirstOrDefault() 是用来从集合中提取元素的防守型利器。
在系统适配与底层开发过程中,研发人员习惯使用 Markdown 结合 Git 来记录测试用例(如 WiFi 吞吐量、MPP 硬件解码、NPU 压测等)和开发指南。然而,当这些技术文档需要向测试团队或现场工程师交付时,直接提供原始的 .md 文件和错综复杂的目录结构显然不够友好。
问题描述 Ubuntu下,onboard在浏览器chromium无法自动弹出。
onboard 设置里可选的 GTK 和 xinput,指的是 onboard 向系统注入(模拟)按键事件的两种不同底层技术路径。
如果你想删除所有包含 hdmirx_wait_lock_and_get_timing 这个报错/状态信息的行,请在“查找”框中输入:
Primitive IP(原语/硬核 IP) 和 Soft IP(软核 IP) 的核心区别在于它们在底层硬件中的物理实现方式不同。
在IO Constraint中,可以看到这些蓝色的线将两个Pin连起来,这种就是差分对 其中有一个Pin是P端,另一个是N端 只有P端的Pin可以设置IOStandard为差分类型,比如LVDS25、LVDS33 一旦设置了P端的Pin为差分类型,N端的Pin就会被锁定,无法编辑,此时生成的ad...
项目地址 https://github.com/Witheart/CSDN_auto_upload
有3款喇叭,参数如下: 4Ω 3W = 4Ω 5W > 8Ω 3W
系统环境 RK3588 Ubuntu20.04 X11 + LightDM + Gnome
在ARM架构(如RK3588)的Linux系统中,默认通常使用设备树(Device Tree)而不是传统的x86 ACPI/SMBIOS。因此,标准的 dmidecode 找不到 SMBIOS 节点,就会报 No SMBIOS nor DMI entry point found 的错误。
第一步:确认是否开启了 GPU 硬件加速
1. 基本方法(修改最后一次提交) git commit --amend 运行后会打开编辑器,让你修改提交信息。
1 问题概述 在 RK3568 平台的 0326 版本系统中,通过桌面右键菜单点击“注销”选项时,可稳定复现鼠标光标持续转圈、界面卡住的现象。此问题与先前已识别的“XFCE 应用启动时光标转圈”问题同源,但因“注销”功能本身的特性,无法采用相同的规避方案。
1. 核心概念:什么是 IO Domain(IO 域)
Firefox 官网 “Download for Linux ARM64” 会下载 firefox-*.tar.bz2 预编译 tarball,不需要编译,解包就能用。 https://www.firefox.com/en-US/download/linux/
1. 第一步:检查系统底层日志
1 下载地址 下载TeamViewer full client版本,该版本可控制也可被控。
问题描述 bootargs = "earlycon=uart8250,mmio32,0xfeb50000 console=ttyFIQ0 irqchip.gicv3_pseudo_nmi=0 root=PARTLABEL=rootfs rootfstype=ext4 rw rootwait overlayroot...
如果改动要打包出来,就得使用本方式进行操作,否则改动不会影响到底层文件系统,无法打包出来。
烧录overlayroot镜像,分为两种情况: EMMC刚贴片,是空的,那么正常烧录即可 EMMC中烧录过其他系统,那么需要按下面的步骤进行擦除后再烧录
1 清空覆盖层数据
参考链接: https://blog.csdn.net/Yongheng6/article/details/145373026
1 背景与核心痛点
项目名称:RK3568/RK3588 Ubuntu 一键调试信息与日志捕捉系统 目标平台:搭载 Ubuntu 系统的 RK3568/RK3588 终端设备
本工具用于在设备出现异常、卡顿、死机或功能失效时,一键自动收集设备底层的运行状态与系统日志,并自动打包。请按照以下简单的步骤进行操作:
1 iostat 是什么?
这三个名词是 UEFI Secure Boot(安全启动)体系中的核心概念。它们共同组成了一条基于非对称加密(公钥/私钥)的严密信任链(Chain of Trust)。
1 关于错误以及修复原理
问题描述 rk3588,debug 串口每5s就会输出 hdmiin 日志,导致调试时刷屏: ```bash [ 1759.517202] fdee0000.hdmirx-controller: hdmirx_wait_lock_and_get_timing signal not lock, tmds_clk_r...
启动介质顺序,由很多个方面决定,资料比较封闭,目前只能将收集到的资料都整理在此处,方便后人深入研究。
问题现象 Uboot修改参数后,使用saveenv保存。报错 uboot Saving Environment to nowhere,直接pri可以看到修改生效,但是断电重启后修改丢失
1 ddr问题表现
1 日志位置
在 FPGA 中,LUT 是 查找表(Lookup Table) 的缩写。它是 FPGA 实现组合逻辑(如加法、选择、条件判断等)的最核心基础单元。
概要:本文介绍了HW-T3568I开发板的DEBUG接口使用方法,包括硬件连接方式、串口调试软件的下载安装、以及串口参数配置。推荐使用MobaXterm工具进行调试。
在设计器中,放置flowLayoutPanel 往其中拖放控件,控件便会自动排列 排列顺序可选,调整右侧面板中的 FlowDirection 效果如下
chkCpu.Checked = EnableCpuTest; chkCpu.CheckedChanged += (s, e) => EnableCpuTest = chkCpu.Checked;
1 修改方式
第一步:备份并修改 SSH 配置文件
会话和启动 -> 应用程序自启动 -> 新建项目 启动命令改为如下 chromium http://127.0.0.1 --kiosk --no-first-run
Docker Engine 是底层的“发动机”,负责运行和管理单个容器;而 Docker Compose 是上层的“指挥官”,负责协调和管理由多个容器组成的复杂应用。
问题描述 3568 点LVDS屏幕,设定为datasheet的typical时钟时,屏幕显示是正常的,但是每隔几秒钟,整体画面会上下跳动一下
参数解析
创建文件 vim /usr/local/bin/format_swap_msata.sh
在 Linux 系统中,/dev/disk/by-partlabel/ 是一个非常有用的目录,它存放着指向磁盘分区的符号链接(symbolic links)。
1 内核配置
方法 查看内核根目录下的.config即可,.config是最终生效的方案。
1 需求
问题描述 在使用ADB调试过程中,有时会遇到设备显示为offline状态,无法正常连接和调试: >adb devices List of devices attached emulator-5564 offline
下载地址 软件下载地址:https://www.sflytech.com/Download/Software/
新建脚本,替换环境变量 vim /home/KangHua/tool/nomacs-wrapper.sh
确认分区设备路径 打开终端,使用 lsblk -f 命令查看所有磁盘和分区。找到分区,记下它的设备名(例如 /dev/sdb1)。
修改方式 右键时间 选择属性 选择自定义格式 推荐格式如下:2026-04-02 17:30
打开 设置管理器(Settings Manager)。你可以通过点击桌面右上角的图标,或者在终端输入 xfce4-settings-manager 打开。 找到并点击 窗口管理器微调(Window Manager Tweaks)。它的图标通常像一个带有齿轮的窗口。 在弹出的窗口顶部标签页中,切换到 ...
```bash sudo apt update
配置前,一定要先确认,要配置的芯片是CH7511还是CS5211,这两者的bin文件不是通用的
以下是通过 iPerf3 测试 ARM 主板网络性能的完整流程,适用于 ARM 主板与 Win10 发包主机在同一局域网内的情况。
1. 修改配置:从 -bin 切换到 -all
FPGA状态机赋值核心原则是时序逻辑用非阻塞赋值 (<=),组合逻辑用阻塞赋值 (=)。通常采用三段式结构:第一段时序逻辑负责状态寄存器更新,第二段组合逻辑负责状态跳转条件判断,第三段逻辑负责输出(建议时序输出以消除毛刺)。
概要:介绍 xv6 进程地址空间:内存映射的初始化流程、用户空间与内核空间的布局划分、直接映射机制,以及“内核借用用户页表”双重映射设计带来的无缝切换与安全隔离优势。
概要:介绍 initcode.S 如何通过汇编压栈参数、设置系统调用号并触发中断来发起 exec 系统调用,以及 exec 成功/失败两个分支和 /init 接管后初始化用户环境的流程。
概要:解答“栈为什么向下增长”的疑问:以 xv6 为例介绍栈布局,说明栈方向由硬件提供机制、软件(ABI)决定策略,并解释栈与堆“双向奔赴”的内存分配效率优势。
source build/envsetup.sh lunch
Excel 的局限性: 虽然 Excel 对少量引脚直观且易操作,但它本质上是平铺式(Flat)的信息展示。 当引脚数量庞大时,跨类别修改(例如统一调整所有 BMC 相关引脚的电气属性)变得困难。 筛选和排序功能在处理具有“类”属性的复杂数据时效率低下。 ...
概要:梳理 xv6 启动第一个进程的完整流程:调度器选定 initproc、内核线程切换(swtch)、通过 forkret 与 trapret 从内核态返回用户态,最终运行 initcode。
本文介绍如何将当前分支的部分提交合并到目标远程分支,采用 git rebase -i(交互式 Rebase) 的方式进行操作。
概要:讲解 xv6 通过 userinit、allocproc 手动构造第一个进程的完整流程:分配进程槽位与内核栈、映射用户内存、伪造 trapframe,最终由调度器调度运行 initcode。
每一对 XSGMII 接口可负责承载 8 个千兆端口的数据流量,只有4根线(一对收发的差分线)。
设备类型区分 此文章适用于UVC类型的USB摄像头,对于扫码枪等设备,将被识别为HID类型,不适用于本文。
问题背景 vendor/rockchip/common/apps下预置apk,填写对应的Android.mk,并且在vendor/rockchip/common/apps/apps.mk的PRODUCT_PACKAGES字段也添加了,但是apk预置失败。
问题描述 客诉USB相机,接入3568后,打开系统下相机应用,应用闪退崩溃。
为确保系统修改的可追溯性、镜像的纯净度及交付质量,请遵循以下操作流程:
概要:对比单级页表与多级页表:单级页表的结构与内存浪费问题,多级页表按需分配节省空间的设计,以及两种页表下 MMU 查询物理地址的完整步骤与流程图。
概要:说明“每个进程一份页表”是进程隔离的核心手段:用户空间低地址映射各自独立,内核空间高地址映射共享,并通过修改 %cr3 寄存器实现页表切换。
概要:介绍 xv6 进程地址空间的布局(用户低地址、内核高地址)、进程双栈机制(用户栈与内核栈),以及分页硬件开启后如何维护进程隔离与共享。
概要:以 32 位操作系统为例,计算单级页表占用的巨大内存空间,引出多级页表(Multi-level Page Table)通过按需分配页表项来节省空间的原理。
git rebase -i HEAD~5 --exec "git commit --amend --author='新名字 <新邮箱>' --no-edit"
概要:介绍 xv6 文件系统的核心思想:一切皆文件(目录也是特殊文件)、目录树结构、相对路径与绝对路径的区别,以及 cd 只能由 shell 内置实现的原因。
概要:介绍 inode(索引节点)数据结构:它存储了文件除文件名与内容之外的元数据,并实现了文件名与文件数据的解耦,从而支持硬链接等机制。
概要:本文介绍 RK 平台 watchdog 的部署方式,包括后台喂狗脚本的创建、脚本内容配置、执行权限赋予,以及将喂狗程序加入开机启动(/etc/rc.local)的方法。
问题描述 XFCE 系统中,启动应用程序,光标一直显示正在转圈的状态,同时程序卡住无法打开。此时无法使用右键功能。不稳定复现。插拔USB,可以让光标恢复正常的箭头,此时程序正常弹出。
概要:介绍管道(pipe)作为进程间通信机制的内核实现:pipe 创建读写两端、fork 后父子进程共享同一内核缓冲区、子进程将读端接到 stdin 的关键操作,以及 read/write 的阻塞行为。
概要:通过 fork 写入文件的示例,说明复制文件描述符后父子进程共享同一 struct file 与文件偏移;并对比 fork/dup/open 在偏移共享上的区别及设计出发点。
概要:介绍内核文件对象(Linux 中的 struct file):它的核心属性、生命周期与共享关系,以及它与文件描述符、inode 之间的关系。
概要:以 shell 执行 cat < input.txt 为例,讲解 IO 重定向的实现原理:子进程先关闭标准输入,再打开目标文件使其占用最小文件描述符 0,从而让 cat 从文件读取。
概述 M.2 Bkey 可以接入PCIe信号、SATA信号、以及USB信号 接入PCIe信号和USB信号时,该槽可识别插入的模块类型,切换不同的信号 比如插入USB的4G模块(WWAN设备),那么就走USB信号 如果插入PCIe的设备,那么就出PCIe信号
概要:讲解文件描述符(fd)模型的核心思想:统一接口、进程隔离与可组合性,并结合 cat 的实现说明 fd 如何让文件、管道等对象统一通过 read/write 访问。
在 Shell(如 Bash) 中,单引号 ' ' 和双引号 " " 都用于引用字符串,但它们对变量、命令替换和转义字符的处理方式完全不同。
参考链接 Common Format and MIME Type for Comma-Separated Values (CSV) Files
参考链接 Icon for EXE file got cached in Explorer and doesn’t update after a rebuild Reset the icon cache in older versions of Windows
firefly根文件系统中,自带这两个服务进行根文件系统的扩展,功能上是冲突的。 expandable_disk.service resize-helper.service
概要:通过示例代码逐行解析 fork 系统调用:fork 创建子进程、父子进程分支执行,以及父进程通过 wait 等待子进程退出实现同步。
列出 ALSA 音频系统中所有可用的简单控制接口 ```bash amixer scontrols
问题背景
问题背景 客诉特定操作后,Whisker菜单自定义的图标会恢复成默认,同时下面一排的关机按键消失。
在 Visual Studio 项目中,让资源文件在生成时自动复制到输出目录(如 bin\Debug)。
查看软件是否安装
1. systemd-journald
systemd-journald、rsyslog 和 logrotate 这三者的概念,请阅读《Ubuntu 日志系统简介》。
在开机脚本中加入 # ntp====== (sleep 20; echo "[witheart] ntp时间同步" > /dev/kmsg; ntpdate ntp.aliyun.com 2>&1 | awk '{print "[witheart] ntpdate: " $0}'...
问题描述 Ubuntu 安装或卸载软件时报错 init PreDepends systemd-sysv but it is not going to be installed 具体如下 ```bash root@user:~# sudo apt purge chrony Reading package lists...
引脚除了被配置为input或者output,还可以配置为inout。
out 不是指针,但它和指针一样,是一种让方法能够“修改传入的参数”的方式,是C#中处理引用传递的一种参数修饰符。
HDMI 系统下设置 设置->显示->HDMI->分辨率设置中可以调节分辨率
概要:以执行 ls 命令为例,讲解 shell 启动程序的整体流程:fork 创建子进程、子进程通过 exec 替换为 ls 程序,以及对应的系统调用细节。
在C#编程中,NullReferenceException 可能是最常见的运行时异常之一。传统的空值检查需要大量冗余的 if 语句,使代码变得冗长且难以阅读。C# 6.0 引入的空条件运算符 ?. 彻底改变了这一局面,让空值检查变得简洁而优雅。
在处理可能为 null 的值时,我们经常需要提供回退值或默认值。C# 中的空合并运算符 ?? 专门为此设计,它提供了一种简洁、表达力强的方式来处理空值情况,避免了冗长的三元运算符或 if 语句。
在C#面向对象编程中,属性的访问控制是封装思想的核心体现。其中 { get; protected set; } 这种语法虽然简洁,却蕴含了精妙的设计哲学。它既不是完全公开的{ get; set; },也不是完全私有的字段,而是在可访问性与安全性之间找到了绝佳的平衡点。
在C#编程中,我们常常需要处理那些依赖于其他数据的派生值。传统做法是在构造函数中预先计算,或在方法中按需获取。但有一种更优雅的模式正逐渐成为现代C#开发的主流选择:这就是实时计算属性。
verilog 文件开头 `default_nettype none
Foxmail 安装目录下 FMStorage.list 记录存储位置
问题描述 客户要求去除Qt程序文件选择对话框中最近位置(Select File - Recent Place)
一、S3M 是什么?
HBM(High Bandwidth Memory,高带宽内存)是一种为高性能计算场景设计的高带宽、低功耗三维堆叠内存技术,常用于GPU、AI加速卡、FPGA和高性能CPU中。
概要:以 BusyBox 为例,讲解 argv[0] 除“程序名”之外的重要工程价值:程序如何根据 argv[0] 决定自身行为,实现一程序多用的设计。
概要:通过一个调用 exec 的示例程序,分析 exec 系统调用的使用方法与流程:exec 用新程序替换当前进程的内存与寄存器,失败时才会返回。
2. lunch rk3568_r-userdebug 这个命令用于选择 Android 构建的目标设备和构建配置。
Author: Wu Sihan (Witheart) Last Updated: 20250310
参考文档 《606161 Emmitsburg_EDS Rev 1-5》P2163 《EGS PDG 610826 V 1-2》P870
Intel CK440Q 是 Intel 针对现代服务器与高性能平台时钟发生器(Clock Generator)所定义的一套参考规范/时钟规格,用于统一服务器平台上 PCIe 和 CPU 时序信号的生成与分发。
Intel 的 CPU 代号习惯使用“Lake”作为后缀,这已成为其区分不同微架构版本的重要标识。
1. A电 (Always/Standby Power)
右键整个原理图或者单个原理图页,点击Find
概要:本文介绍 PCIe Link 与 Lane 的基本概念,说明 PCIe 全双工传输特性,并给出不同 PCIe 代际在不同编码方案下的单 Lane 单向带宽近似值与计算方法示例(以 PCIe 2.0 为例)。
PCIe(Peripheral Component Interconnect Express),即外围组件互联高速标准,是一种高速串行计算机扩展总线标准。它旨在取代旧的 PCI、PCI-X 和 AGP 总线标准,成为现代计算机系统中连接高速外设的主要内部接口。
很多人都会问: PCIe 到底有没有时钟?100MHz 是同步时钟吗?既然有 CDR,为什么还要参考时钟?
参考链接 M-CRPS 标准:https://146a55aca6f00848c565-a7635525d40ac1c70300198708936b4e.ssl.cf1.rackcdn.com/images/7dcd4a42fafc61adf22802577208a2404dd1c175.pdf
参考链接
概要:本文详细介绍了 Anlogic EF3 系列 FPGA 上电后的配置流程,包括上电初始化、配置数据写入、启动阶段及进入用户模式的详细过程,同时提供了配置信号状态控制的说明及 MSPI 配置流程图示。
点这个按钮,进入测量模式
📌 什么是 SlimSAS?
规范文档
参考链接
SFF-TA 是什么
概要:本文介绍了 NC-SI(网络控制器边带接口)的基本概念、工作原理以及其支持的电气接口和流量类型。NC-SI 作为 DMTF 定义的标准协议,使 BMC 能够利用主网卡的物理网络口进行带外管理通信,是服务器远程管理系统的关键技术之一。
一、MCIO 是什么?
DMI(Direct Media Interface)是 Intel 平台中,CPU 和 Chipset(PCH)之间的“内部高速互联总线”,本质上是一个“定制版 PCIe 链路”。
参考链接 官网 Server/MHS/DC-SCM-Specs-and-Designs:https://www.opencompute.org/w/index.php?title=Server/MHS/DC-SCM-Specs-and-Designs DC-SCM规范链接:https://www.ope...
QEMU 是一款开源的硬件虚拟化模拟器,它允许你在一个操作系统上运行另一个操作系统的程序,甚至模拟完整的计算机系统(包括 CPU、内存、存储设备、外设等)。 简单来说,QEMU 就像一个“计算机的乐高”,可以用软件“拼”出一台虚拟的电脑。
一、Yocto是什么?
update-alternatives 是 Debian/Ubuntu 等 Linux 发行版中的一个工具,用于管理系统中的替代程序(alternative programs)。它允许你在多个功能相似的程序版本之间进行切换,并维护一套统一的符号链接。
问题描述 在安装新版本python时,比如python3.9.0,虽然成功安装了,但是报一些ModuleNotFoundError,如下 hw@hw-Default-string:/mnt/hdd/openbmc/build/romulus$ pyenv install 3.9.0 Downloading Pyt...
pyenv 是最流行的 Python 版本管理工具,支持多个版本并行安装。
1. exception
概要:本文介绍了如何在编译服务器上同步 Rockchip SDK 官方仓库(Sync Repo),并将其处理为干净的开发仓库(Dev Repo),最终上传至内网 GitBlit 供研发人员拉取开发。文中包含同步处理的指令说明及完整的流程图示意。
概要:本文整理了 Rockchip 平台上 Watchdog(看门狗)功能的核心用法,包括内核自动喂狗与手动喂狗的操作方法,以及关于 356X 系列暂停与恢复看门狗计数的寄存器写法,适用于系统稳定性保障与故障恢复处理场景。
在 Unix/Linux shell 中,source 命令和 .(点)命令是等价的,它们执行完全相同的功能。
https://help.ubuntu.com/community/EnvironmentVariables https://askubuntu.com/questions/275965/how-to-list-all-variables-names-and-their-current-values/356973...
原始文档 man bash
概要:本文介绍了如何在 Linux 平台下使用交叉编译器编译 C 语言程序,并将其部署到 Android 设备上运行的完整过程。通过具体的命令示例,演示了从编译、推送到设备、赋予执行权限直到运行程序的整个流程。
问题描述 首次编译RK3588 Android15镜像时,报错 BTF: .tmp_vmlinux.btf: pahole (pahole) is not available Failed to generate BTF for vmlinux Try to disable CONFIG_DEBUG_INFO_B...
```.gitignore ############################################################################### common ########################################################...
一、 什么是 jiffy?
概要:本篇文章介绍了在 Gitblit 后台环境中如何通过命令行停止服务、编辑配置文件来删除用户或变更其权限,并展示了具体操作实例和服务启动方式。
kernel/Makefile HOSTCC = gcc
参考链接 https://code.visualstudio.com/api/get-started/your-first-extension
问题描述 vscode开发扩展时,F5调试,虽然弹出了Extension Development Host,但实际上没有成功编译,终端处报错 ```bash 正在执行任务: npm run watch
问题描述 在Extension Development Host中看不到设定的命令。
读到了一篇好文,担心以后看不到了,特此备份。 原文链接:https://chuquan.me/2022/05/21/understand-principle-of-git/
一、为什么要区分 wire 和 reg
设计 通过功能拆分为几个模块,明确需要什么输入和输出。 对于LED闪烁功能: 时钟输出 LED输出
目的 将bash脚本编译或封装为二进制可执行文件,这样就不会暴露源代码。
概要:当 .gitignore 规则不生效时,可能的原因之一是文件已被 Git 追踪。本文介绍如何移除 Git 追踪的文件,以使 .gitignore 规则生效,并提供相关命令与注意事项说明。
问题描述 使用EC200M 4G模组,客诉ifconfig看到的usb0节点为局域网ip,希望看到的是公网ip。
问题描述 使用EC200M 4G模组,客诉ifconfig看到的usb0节点为局域网ip,希望看到的是公网ip。
参考 https://linux-kernel-labs.github.io/refs/heads/master/labs/interrupts.html https://android.googlesource.com/kernel/msm/+/android-wear-5.1.1_r0.6/include/l...
目标 实现来电自启
目的 实现定时开机功能
问题描述 windows上使用iperf3时,报如下错误 ```cmd iperf3.exe -s
标准 Gradle 项目结构: app/build/intermediates/merged_native_libs/{buildType}/out/lib/{abi}/
概要:本文介绍在 RK 平台上进行 DDR 定频拷机测试的具体步骤,包括设置固定频率、确认频率、评估可用内存以及使用 stressapptest 进行长时间拷机测试的方法。
概要:本文介绍了 Google 开发的高性能内存压力测试工具 stressapptest 的原理及使用方法,并通过示例对其测试结果进行分析,帮助开发者识别并判断 DDR 内存硬件稳定性问题。
本文只梳理该问号的产生机理,没有提供解决方案。
查看时钟树 cat /sys/kernel/debug/clk/clk_summary
以下内容参考《Rockchip_User_Guide_SDK_Application_And_Synchronization_CN.pdf》
WiFi 模组布局与布线要求
概要:本文介绍了 RK3588 SoC 中 GPIO 的三种类型、电源配置要求、支持的功能特性(如 Retention 和中断)、基本电气特性以及复位默认状态等内容,是理解 RK3588 IO 设计的重要参考。
概要:本文介绍了eMMC控制器的技术规范与功能特性,并提供了eMMC连接的示意图,便于理解其电路结构和使用方式。
概要:本文介绍了DDR控制器的基本配置与兼容标准,详细阐述了电路设计中的关键要点,包括电源管理、时钟信号,以及LPDDR4/LPDDR5颗粒的连接要求,并通过拓扑结构图展示了典型的布局方式。
概要:本文介绍了 RK3588 芯片的 ARM JTAG 接口及其调试方式,包括 SWD 模式连接、管脚配置、电源要求以及 UART Debug 接口的接线规范。提供了连接示意图及相关注意事项,便于硬件调试和开发过程中的问题排查。
概要:本文介绍了 RK3588 芯片中关键的系统初始化配置信号 —— SDMMC_DET 管脚的作用及配置要求。该信号影响 ARM JTAG 与 SDMMC 功能的选择,对系统启动调试及 SD 卡启动至关重要。
根据SARADC_IN0_BOOT的上下拉电阻值,配置引导顺序 短路 EMMC_CLK/DATA 也可进入 Maskrom
概要:本文介绍了 RK3588 芯片的复位机制,包括硬件复位引脚的配置要求、复位信号来源(如 RK806、TSADC)、内部集成的看门狗与温度传感器模块(TSADC)如何触发复位,以及双 PMIC 和单 PMIC 系统中复位信号的路径。
在 Ubuntu 桌面环境中,有时我们需要查找某个图形界面程序对应的进程 ID(PID),以便进行进程监控、资源分析、强制结束进程等操作。本文将介绍几种常用的命令行工具和方法,帮助您快速定位窗口对应的进程。
基本原则 核心是要尽早在不等长处绕线
输入电容Cin和输出电容Cout应分别布置在Vin引脚、Vout引脚与DC/DC的GND引脚之间,并尽可能减小Vin、Vout与DC/DC地之间的环路面积,以降低电源的EMI干扰,从而显著提升DC/C电路的稳定性。 此外,在输入电容Cin、输出电容Cout及DC/C的GND连接处,应尽量多地设置过孔,建...
ESD(Electro-Static discharge, 静电放电) 防护是指通过一系列设计与措施,防止静电放电对电子设备造成损伤或干扰。
EMI(Electromagnetic Interference, 电磁干扰)防护是指通过抑制干扰源、阻断耦合路径等措施,防止电磁干扰影响电子设备正常工作的设计方法。
1 基础概念
时间管理是操作系统内核的核心功能之一。内核中大量函数依赖时间驱动,而非单纯的事件驱动。这些时间驱动的任务主要分为两类:周期性执行(如调度器负载均衡、屏幕刷新)和延迟执行(如磁盘I/O操作的推迟处理)。为支持这些机制,内核必须同时处理相对时间(例如“5秒后执行”)与绝对时间(如当前日期与时间),二者在内核时间管理中...
烧录 update——RK 如何进行完整固件(update.img)烧录
我们每天接触搜索引擎,虽然 AI 的出现替代了一部分搜索引擎的功能,但是在遇到具体的工程问题时,AI 往往只能提供一个思路,使用搜索引擎搜索到的前人的解决经验往往更加宝贵。而事实上,很多人连搜索引擎都无法正确地使用。
掌握提问的艺术,本质上是在修炼一种高效的思维与沟通方式。
嵌入式工程师的成长,并不取决于会多少 API,而取决于 面对未知问题时的处理方式、工具的熟练程度以及 工程化思维。
Avalonia 是一个基于 .NET 的、通过自绘渲染引擎在全部主流平台上实现像素级一致 UI 的跨平台框架。
GTK(GIMP Toolkit)是一个开源的、跨平台的图形用户界面(GUI)工具包,用于创建桌面应用程序的图形界面。它最初为GIMP(GNU Image Manipulation Program)图像编辑器而开发,因此得名。如今,它已成为Linux/Unix 系统上 GNOME 桌面环境的核心组件,同时也支持 ...
常用的软键盘
https://askubuntu.com/questions/1429379/how-to-force-onboard-appear-on-top-of-fullscreen-apps-in-a-tablet-running-ubuntu
版本查看
GNOME Shell 是 GNOME 桌面环境的核心用户界面和窗口管理器。它负责在屏幕上看到和与之交互的一切:顶栏、活动概述、应用网格、窗口切换、通知系统等等。
问题描述 Ubuntu烧录后,使用journalctl -f查看日志,提示no journal files were found,看不到日志输出。
概要:本文介绍了在 Ubuntu 系统上安装 Chromium 浏览器的具体步骤,并提供了注意事项,避免安装错误的软件包。
如何在运行 Ubuntu 系统的平板电脑上强制 Onboard 显示在全屏应用程序之上?
UTC(协调世界时) 是全球通用的标准时间基准,用于规范世界各地的时区和时间。
什么是 BCD 码?
概要:本文介绍了在 Android 应用开发中如何实例化广播接收器(BroadcastReceiver),包括静态注册和动态注册方式的实现方法与使用场景,并配以示例说明其应用方式。
概要:本文介绍了 Linux 内核中 RTC(实时时钟)模块的代码路径和调用流程,分析了 ioctl 接口的实现逻辑,并提供了使用 C/C++ 语言调用 RTC 接口读取时间的示例。适合希望深入了解 RTC 驱动机制的开发者阅读。
源码 frameworks/av/services/audiopolicy/enginedefault/src/Engine.cpp
概要:本文整理了在 Android 系统中查看和操作音频设备的常用命令,包括声卡与 PCM 设备的查看、音频控制项的读取与配置等,适用于调试与开发场景下的音频相关操作。
概要:本文介绍了 Android 音频框架的整体架构与各个组成部分的职责和作用,包括应用框架、JNI、原生框架、Binder IPC、媒体服务器、HAL 以及内核驱动程序等模块。
需求 客户接入usb摄像头,携带有麦克风。3568表现如下: 没有接入USB摄像头时,板载RK809麦克风正常使用 接入USB摄像头时,系统自动关闭了RK809的麦克风,切换成USB摄像头上的麦克风
概要:本文介绍了 RK3588 中 GPIO 的多档驱动强度调节能力,包括不同类型 GPIO 的可调档位、默认驱动强度以及相关技术参数表格。适用于开发者根据硬件需求选择合适的 GPIO 驱动强度配置。
概要:本文介绍了 Linux 内核中 printk 函数的使用方式及其日志调试级别的含义,包括内核日志缓冲区的工作机制、日志级别的分类、以及如何通过 /proc/sys/kernel/printk 参数控制日志输出行为。
首先说明,这个问题没有解决,只是规避了 这个问题在Ubuntu20.04 XFCE上没有遇见过,貌似和面板首选项中新增的暗黑模式相关 开启暗黑模式后,重启,面板上便会出现两个网络图标,其中一个是暗黑模式的,另一个是正常模式
1. FFmpeg:专注而强大的“编解码工具集”
无论程序是否具备图形用户界面(GUI),本方案均适用。
修改历史
具体报错 RK3588,Ubuntu 22.04 ```bash user@rk3588:~$ sudo alsactl restore -f /root/asound.state alsa-lib parser.c:2373:(load_toplevel_config) Unable to find the t...
MPP简介 MPP(Media Process Platform)全称为媒体处理平台,它是 RK 提供的一个用于进行视频硬编解码的库。通过 MPP,我们就可以使用 RK 芯片的 VPU(Video Process Unit,视频处理单元)对我们的视频进行硬件编解码,从而减少 CPU 的负担,加快编解码速度。
具体报错 Could not install the full language support org. freedesktop. PolicyKit. Error. Failed:(' system-bus-name',{ name':':1.81}): org. debian. apt. install-o...
右键面板上的时间,选择属性
编译 gcc -o lcdparamservice lcdparamservice.c
功能框图 内部是有两个通道的,每个通道位宽都是16 可以看到有8个bank,每个bank是8Gb,总共是64Gb,那么这个颗粒就是64/8=8GB大小
双通道封装的引脚定义与描述
LPDDR 概述
概念 主机名就像计算机的”名字”,在终端提示符中显示为user@firefly的”firefly”部分,主要用于在网络中唯一标识设备、方便管理员区分多台服务器、防止误操作,并让日常的SSH连接和系统管理更加直观和人性化。
概要:本文记录了在使用 Rockchip VOP2 输出到 DP 接口时,发现 DCLK 无法正确配置导致显示异常的问题排查过程,并给出了通过补丁和手动配置 PLL 参数解决的办法。
概要:本文介绍了 RK3588 芯片的时钟电路设计,包括内部振荡器与外部晶体的连接方式、器件选择建议以及芯片提供的各类时钟输出接口,适用于系统设计与外设时钟配置参考。
一、核心使用
Intent
广播接收器(BroadcastReceiver)介绍
Android权限声明是Android安全模型的核心组成部分,用于保护用户隐私和设备安全。
在 Android 系统中,每次物理按键的按下都触发了一系列精密的转换过程。这个过程中,Generic.kl 和 KeyEvent.java协同,将原始的硬件信号转化为应用程序可处理的事件。本文将深入探讨这两个关键组件如何协同工作,构成 Android 输入系统的基石。
Toast 是 Android 系统中的一个轻量级消息提示组件,用于在屏幕底部(默认位置)显示一个短暂的非模态弹窗,向用户提供操作反馈或简短信息,不会打断用户当前操作,几秒后会自动消失。
AppCompatActivity是现代 Android 应用开发的基石,是几乎所有 Activity 都应该直接继承的类。
Android ActionBar 是应用顶部的一个关键界面组件,用于显示应用标识、导航、操作项和菜单。它是 Android 3.0(Honeycomb,API 11)引入的重要设计元素,后来通过支持库向后兼容。
原则 有具体的找具体的修改 比如设计DP显示的支持,虽然设计内核和设备树,但是可以归类为更具体的显示,所以用display
1 设置系统默认 webview
AndroidManifest.xml中,有如下声明 ```xml ``` `android::sharedUserId="android.uid.system"` 是一个重要的 Android 系统属性,它表示应用要以**系统级特权**运行。
Android APK签名 一、核心概念 APK签名是Android应用发布的核心安全机制,用于验证应用的完整性和来源真实性。它确保APK在发布后不被篡改,并建立开发者身份的可信链。
更换debug签名 (也适用于更换release签名)
核心解释
本文资料来源:RK3588 Hardware Design Guide-V1.6-20250910-CN.pdf
概要:本文解读了一次 Android 应用中的代码变更,主要围绕通过 findViewById 方法绑定界面元素,包括新增按钮和输入框的绑定,以及相关事件处理器的实现。通过对比 Java 代码和 XML 布局文件的修改,详细分析了如何在 Activity 中实现界面控件的逻辑交互。
.class 文件是 Java 编译后的中间代码 它实现了 Java 的平台无关性 在运行时由 JVM 解释执行或 JIT 编译为机器码 是 Java 生态系统的基础,支撑了 Java 的跨平台特性
sync时,出现如下报错 ``` Your build is currently configured to use incompatible Java 21.0.3 and Gradle 7.4. Cannot sync the project.
DPI(Dots Per Inch,每英寸点数) 是一个分辨率度量单位,主要用于解决数字内容与物理世界之间的转换关系问题。
概要:本文介绍了在 Ubuntu 系统中进行压力测试的方法,包括安装 stress 工具、运行压力测试命令、合理配置内存占用,并提供了桌面监控建议和必要软件的安装方式。
一、设计目的:为什么需要页缓存?
缓冲区高速缓存在逻辑上依然重要,但在物理实现上已不再是独立缓存,而是被统一整合进了页高速缓存。
address_space 是一个文件在内存中的缓存视图,用于管理文件内容如何映射到内存页,每个打开的文件在内核中都有一个关联的 address_space。
理解 Linux 内核如何管理物理内存是深入系统编程和性能调优的重要基础。其核心思想是将物理内存划分为更小的逻辑单元,并通过层次化的管理机制应对硬件和使用的多样性。
一、基石:Unix 的四种核心抽象
在计算机系统中,硬盘(尤其是传统机械硬盘)的寻道操作是其中最慢的物理操作之一。想象一下,磁头在盘片上快速移动寻找数据的位置,这比 CPU 和内存的速度慢了数个数量级。如果操作系统内核只是简单地将应用程序发出的 I/O 请求,按照接收的顺序直接发送给硬盘,那么系统的整体性能将会惨不忍睹。I/O 调度程序 正是为了解...
在 Linux 操作系统中,磁盘 I/O 速度远慢于内存访问。为了提升系统性能,内核引入了页高速缓存(page cache)机制,将频繁读写的数据暂存于内存。然而,这种“延迟写入”策略也带来了数据一致性的挑战——flusher 线程正是为解决这一矛盾而生的幕后守护者。
参考链接 https://www.kernel.org/doc/html/next/filesystems/fscrypt.html https://blog.csdn.net/qq_39952971/article/details/116228285 https://redmine.rock-chips.com...
在 Linux 系统中,你可以在 U 盘、硬盘甚至网络存储之间复制文件,而无需关心它们各自使用什么文件系统(如 ext4、NTFS、FAT32),这背后的关键机制就是 Linux 文件系统抽象层,它如同一个“通用翻译官”,让内核和应用程序能够用同一套方法访问和管理不同类型的存储设备。
在 Linux 内核中,内存管理是操作系统最基础也最关键的组成部分之一。内核需要频繁地创建和销毁各种数据结构(如进程描述符、文件索引节点等),如果每次分配和释放都直接调用底层页分配器,不仅效率低下,还会产生严重的内存碎片。为了解决这些问题,Linux 引入了slab 分配器(slab allocator),它是一...
1. 中断的随机性与紧迫性 中断可能在任何时间点发生,打断任何正在执行的代码(包括内核或用户进程)。 系统需要尽快响应硬件中断(如网卡收到数据包、磁盘I/O完成),否则可能导致数据丢失或设备故障。 如果中断处理程序阻塞,被中断的代码将无法恢复执行,系统响应会严重延迟。
一、核心概念一句话定义
在 Linux 操作系统中,进程 是程序执行的基本单位,而操作系统通过进程状态来描述和调度进程在任意时刻的活动情况。理解进程状态对于系统管理、程序调试和性能优化至关重要。
在 Linux 内核中,进程是操作系统进行资源分配和调度的基本单位,而进程描述符(task_struct结构体)则是内核中用于表示和管理一个进程的所有信息的核心数据结构。
软中断是 Linux 内核用于处理中断下半部的一种核心机制,它允许内核在合适的时机执行一些对时间敏感但无需立即完成的任务,是保证系统响应性能与吞吐量的重要设计。
一、引言:为什么需要工作队列?
一、主要概念一句话定义
基本语法
概要:本文介绍了在 RK3568 Android 11 系统中,第三方 VPN 应用无法正常使用的问题。通过排查发现系统缺少必要的 VpnDialogs 组件,最终通过修改编译配置并重新编译系统解决了问题。
frameworks/native/services/surfaceflinger/SurfaceFlinger.cpp
功放芯片,全称为功率放大器芯片,是一种专门用于放大电信号功率的集成电路。
核心关系概述
TTL
什么是 BTL?
概要:本文介绍了 PJ-432 型 3.5mm TRRS 音频插孔的工作原理,特别是耳机插入时如何通过物理结构屏蔽扬声器。通过图示和结构分析,展示了该插孔如何利用金属弹片断开扬声器信号线路,从而达到自动切换音频输出的效果。
cut 是 Linux/Unix 系统中的一个文本处理命令,用于从文件或标准输入中提取文本的特定部分(如列、字段、字符范围)。它类似于在表格中“剪切”出指定的列。
基本语法
read -r line 是 Bash 中读取用户输入或文件内容到变量的命令。
awk 是一种强大的文本处理编程语言,特别适合处理结构化文本数据(如日志、CSV、表格数据等)。它以行为单位处理文本,并可以按字段进行操作。
编解码芯片(Codec)是音频系统的核心,负责将模拟声音信号转换为数字信号(编码),以及将数字信号还原为模拟声音(解码)。
什么是 I2S?
RK3588 官方设计要求
DP 接口技术性概述
1 接口标准 标准 DP 接口采用 20 针单槽连接器,引脚排列如下所示。
RK官方对DP1.4的 layout 要求如下
参考:https://zh.wikipedia.org/wiki/TRS%E7%AB%AF%E5%AD%90
思路: 在确保网络通畅的情况下,需定位在 IPsec 阶段还是 L2TP/PPP 阶段出错。
核心作用
读者一定好奇,为什么要在局域网中搭建 VPN 服务器。笔者搭建服务器的目的,主要是为了测试其他设备的 vpn 功能是否正常。具体配置文件可见笔记同目录下内容,配置文件和文章中的配置不太一样,但是是经验证两份配置都是可以正常使用的。
1 什么是有线网口?
RK3588 的媒体访问控制器(MAC)集成在 CPU 内部,需外接物理层芯片(PHY)协同工作。
概要:本文详细介绍了如何在 x86 主机上使用 Qt Creator 交叉编译 Qt 程序,并部署到 ARMv8 架构的目标设备上运行。内容涵盖 Qt Creator 的安装、交叉编译套件的配置、以及实际的 Qt 项目编译流程,适用于已完成 Qt 库交叉编译并部署的用户。
定位与目标 重点覆盖:脚本结构、变量与引号、条件判断与流程、函数与返回值、数组与遍历、I/O 重定向、错误处理、权限与设备操作、Here-Doc、日志规范等。
using System.Text; public static class Identifier { public static string Clean(string identifier) { var sb = new StringBuilder(identifier); ...
概要:本文介绍了如何在 C# 中遍历字符串中的每个字符,并通过 StringBuilder 对其进行重构。示例代码展示了根据字符类型(控制字符或空格)进行替换的方式,实现了对字符串的清洗功能。
1. char.IsControl(c) - 控制字符检测
概要:本文介绍了两台 Android 设备在蓝牙配对后未显示“已连接”的原因,并通过经典蓝牙 SPP 通信建立持续数据通道,实现连接状态的显示。同时简要说明了如何使用“e调试”工具进行连接测试。
概要:本文介绍了基于 TCAN1044-Q1 的 CAN 收发器电路设计原理,包括信号滤波、共模噪声抑制、终端匹配、TVS 保护器件的选型,以及 CAN 接口接地方式等关键设计要点。
触摸屏断开外部连接,使用USB线,将触摸屏的USB接口与windows主机连接起来 打开软件 ilitekUSBUpgradeTool_v2.3.5.7.exe
概要:本文介绍了在 Ubuntu/Linux 系统中提升触摸屏交互体验的两种方法:修改触摸屏控制板固件或通过系统配置优化触控操作,包括单击激活和右键菜单模拟工具的使用(如 evdev-right-click-emulation)。
概要:本文介绍了差模信号终端匹配中常见的两种方式,重点对比了标准终端电阻与分割端接(Split Termination)在共模噪声处理方面的区别,并通过CAN总线电路示例分析RC滤波的截止频率计算。
概要:本文是关于 Android AlarmManager 的使用笔记,记录了精确与不精确闹钟的区别、权限配置、重复闹钟的处理方式,以及如何在系统重启后保持闹钟有效。适用于需要在应用外执行定时任务的场景。
概要:本文介绍了在 RK3568 Android11 SDK 上,如何通过 logcat 抓取 SELinux 拒绝日志,并使用 audit2allow 工具快速生成 SELinux 权限策略,解决权限拒绝问题。
1 什么是控制器局域网(CAN)?
概述
概要:本文介绍了基于 Rockchip 平台的 Linux 固件结构,并详细说明了如何编译 u-boot、内核以及打包完整的 update.img 固件的流程。适用于需要定制和部署 RK 平台系统镜像的开发者。
概要:本文介绍了QY3588开发板的DEBUG接口使用方法,包括硬件连接方式、串口调试软件的下载安装、以及串口参数配置。推荐使用MobaXterm工具进行调试。
概要:本文介绍如何在 rk Linux 系统中不使用烧录模式(Loader)进行内核 boot.img 的在线更新。适用于无法进入烧录模式的场景,如客户装机完成后的现场调试等,通过命令行实现内核的替换与更新。
概要:本文介绍了在不同负载条件下使用 cyclictest 工具对 Linux 系统进行实时性测试的方法,涵盖测试环境配置、命令详解及测试结果的解读,特别强调了在压力测试下进行评估的重要性,并提供了一个非实时内核下的测试结果示例。
1 测试环境 kernel 5.10.160 Ubuntu 20.04 stress-ng -c 8 –io 2 –vm 1 –vm-bytes 1024M –timeout 1000000s cyclictest -c 0 -m -t 8 -p 99 -D 600
概要:本文介绍如何配置 journalctl 仅查看本次启动日志,并禁止日志持久化保存。通过修改 systemd 日志服务配置文件,实现日志存储方式的灵活控制。
点击①,选择要烧录的固件 点击②,启动连续烧录模式,此模式下,一旦检测到进入了烧录状态的板子,便会自动启动烧录 ③处会显示烧录的进度
参数 要求 走线阻抗 差分 90Ω ± 10% (确保 EDP 线缆的阻抗和 PCB 一致) 差分对内最大时延差 < 6 mil 走线...
问题背景 客诉Qt 程序中无法使用ibus-rime中文输入,而在其他位置(例如终端、xfce搜索框)中,中文输入是正常的。
1 接口引脚定义与连接
概要:本文介绍了 Anlogic UG003_AL-LINK 下载器的使用流程,包括驱动安装、TD IDE 操作步骤等,适用于使用 AL-LINK 下载器进行 FPGA Bit 流烧录的用户。
概要:本文简要介绍了 eth 接口设计中的关键点,包括变压器中心抽头的阻抗匹配、电容选择要求、差分线组长度要求,以及 PCB 设计中关于变压器下方的挖空处理。
概要:本文介绍了PS2接口的定义与原理图说明,重点讲解了电阻和磁珠在接口中的作用,包括阻抗匹配、限流和过压保护等知识点。
概要:本文介绍了两种常见的电平转换芯片类型:双向自动转换芯片(带方向检测)和方向可控制芯片,并结合芯片示意图说明其工作原理与使用注意事项。
概要:本文介绍了RS232串口接口的设计要点,包括UART RX引脚上拉电阻的设计原因及DB9接口针脚的定义和功能说明,配有示意图辅助理解。
有重复性的键盘和鼠标操作时,可以使用TinyTask这个软件进行自动化。
问题描述 windows主机有两个网口,分别是以太网1和以太网2,现在尝试将以太网2的网络共享给以太网1,报错如下
使用 apt 安装
安装方式
概要:本文简要介绍了LVDS接口是否需要ESD防护,以及LVDS信号是如何通过转换芯片(如CS5518、CH7511、CS5211)实现的。重点说明了RK3568和RK3588芯片平台如何通过特定转换芯片支持LVDS输出,以及各芯片的输入输出通道配置和特性差异。
设备按住烧录键复位,上电,等待烧录工具上显示“发现一个LOADER设备” 点击“设备分区表”,确定设备分区(会报一些分区找不到的错误,没有关系) 右侧会显示找到的各个分区的开始地址,找到rootfs分区的地址,在左侧找一个不使用的分区,填入地址和名字 选择要烧录的rootfs.img,勾选复选框...
概要:本文介绍在 VSCode 中打开 WSL 集成终端时报错“退出代码 2”的原因及解决方法。通过检查 VSCode 设置中的终端配置,修复路径或参数错误,恢复 WSL 终端正常使用。
点击设置同步
概要:本文介绍了在 VSCode 中如何通过配置 setting.json 来忽略某些特定设置的同步,避免因本地路径等配置在不同设备间同步引发的问题。
概要:本文介绍了在 DC-DC 芯片中,为实现带滞回功能的使能控制(EN 引脚),如何通过外部电阻和内部恒流源的配合,实现开启和关闭阈值不同的电压控制机制,并给出相应电阻的计算公式。
软件介绍 支持ble、经典蓝牙调试。 作者b站:https://space.bilibili.com/3493144448469573?spm_id_from=333.788.upinfo.head.click
一、什么是蓝牙 SPP?
蓝牙技术作为短距离无线通信的基石,已演进为一个包含多种技术标准的家族。其核心成员——经典蓝牙 与 低功耗蓝牙,凭借不同的技术特性,服务于截然不同的应用场景。本文将深入探讨两者的技术细节、协议架构与设计哲学。
待完善,参考 https://blog.csdn.net/quququuquq/article/details/131805413
在计算机世界的常规认知里,”服务器”是远端的强大机器,”客户端”是用户手中的设备。然而,在 X 窗口系统(X Protocol)中,这一概念被彻底颠覆:应用程序变成了”客户端”,而用户手中的终端反而成为了”服务器”。这种看似违背直觉的设计,恰恰体现了 X 协议的超前智慧。
一、LVDS 是什么?
1 LVDS 接口配置
概要:本文介绍了在 VMware 中安装 Ubuntu 系统时,安装 VMware Tools 后仍无法实现物理机与虚拟机之间拖拽文件的常见原因,并提供了基于 Wayland 设置的解决方法。
工具地址: https://github.com/Witheart/make-sysroot-symlinks-relative
一、HDMI 是什么?
0. Pin 概述
参数 HDMI 2.1 HDMI 2.0 差分阻抗 差分 100Ω ±10% 100Ω ±10% 差分对内等长 < 6 mil &...
概要:本文介绍了 FPGA 电路设计中的关键技术,包括 I/O 电压标准、数字可控阻抗(DCI)、高速串行收发模块(GTX/GTH)、配置引脚与加载流程、电压选择、上电复位电路及各模块时钟注意事项,适合有一定基础的 FPGA 开发者阅读参考。
概要:本文介绍了可编程逻辑器件的发展历程,从最早的PROM到现代高性能的FPGA/CPLD,并详细说明了FPGA的结构组成及其主要特点,展示了其在数字逻辑设计中的重要角色和发展趋势。
进入烧录模式,显示”发现一个LOADER设备” 点击设备分区表,确定设备分区(会报一些分区找不到的错误,没有关系) 点击选择要刷入的boot.img 复选框进行勾选 点击执行,开始烧写
参考链接 https://www.cnblogs.com/hencins/p/17758968.html https://blog.csdn.net/CATTLE_L/article/details/147637512
安装完成后的页面
使用 gnome-sound-recorder 进行测试,发现麦克风声音输入失败
sudo apt update
sudo apt update sudo apt install gnome-sound-recorder
```bash 4G 拨号====== init_4g() { echo “[witheart] 初始化4G拨号…” > /dev/kmsg
概要:本文介绍了 EC200M-CN 模块的接入方式,包括端口识别、网卡模式配置(ECM/RNDIS)、拨号脚本、SIM 卡状态查看等操作,适用于快速部署 4G 网络连接。
概述
概要:本文记录了在 Ubuntu 20.04 系统中,使用 USB 相机时普通用户无法通过 cheese(茄子)软件打开相机的问题。通过分析设备权限与日志,找出问题根源并提供了解决方法及异常情况的应对方案。
显示应用程序(Show Applications)这个选项会显示应用程序菜单,其中内容一般来源于系统目录 /usr/share/applications/和用户目录 ~/.local/share/applications/中的文件。
概要:本文介绍了有源晶振的基本结构及其在电路设计中的注意事项,包括输出端串联电阻的作用、电源引脚的处理、去耦电容的配置、外壳接地要求以及PCB布线建议,旨在帮助设计者提高时钟电路的稳定性和抗干扰能力。
https://exercism.org/tracks/csharp/exercises/lucians-luscious-lasagna
1 问题描述 RK3588 Android 13 nm372 wifi模组 cyw43430 设备开启热点,作为ap节点建立局域网后,连接到这个局域网的设备可以ping通网关,但是无法互相ping通,如下
public static class HelloWorld { public static string Hello() => "Hello, World!"; }
概要:本文介绍了晶体电路的常见设计方式,包括晶体负载电容的计算方法、电阻选择范围,以及布线时的注意事项。通过图示与公式,帮助读者更好地理解晶体电路的设计要点。
概要:本文介绍了在 RK3568 + Ubuntu + Xfce4 环境中,通过 Fontconfig 配置方式修改 Qt5 应用默认字体为“文泉驿等宽微米黑”的方法,并探讨了桌面环境字体设置对 Qt 程序的影响范围。
1 什么是SSH?
工作原理 当系统存在 /etc/xdg/autostart/ 中的某个 .desktop 文件时,用户可以通过在 ~/.config/autostart/ 创建同名文件并设置 Hidden=true 来屏蔽它。
概要:本文介绍了 PCB 设计中由于玻纤编织结构引发的电气性能问题——玻纤编织效应(Fiber Weave Effect),并解释了 Zig-Zag 等布线技术的原理与应用。文章从材料特性出发,分析了问题产生的原因,并提出了从材料选择与布线设计两方面的对策,帮助工程师优化高速信号的完整性。
1 基本原则
概要:本文详细介绍了BGA(Ball Grid Array)封装的布线设计方法,包括外层与中间层焊盘的扇出、盘中孔与狗骨结构的应用、PGD焊球识别与通道预留策略,以及电源供电路径的优化建议,辅以多张示意图辅助理解。
概要:本文介绍了数字电路中触发器的关键时序参数——建立时间(Tsetup)和保持时间(Thold),并配合图示分析了这两个参数在时钟系统中的作用及其约束条件。
概要:本文深入讲解了 Linux/Unix Shell 中的输出重定向,特别是 2>&1 的用法。通过文件描述符的变化过程和图示,帮助读者理解输出重定向的机制及其顺序的重要性。
概要:本文介绍了复位电路的基本功能与设计要点,分析了常见的复位设计问题,讨论了RC复位电路的不足,并推荐使用专用复位芯片来提高系统的稳定性与可靠性。
下面命令用于快速检查当前运行的内核是否启用了某个特定的功能或驱动模块。
问题描述 在 Xfce 桌面环境中创建应用程序图标后,虽然桌面文件配置正确,但图标无法正常显示。
概要:本文介绍了如何在 Ubuntu 系统中使用 Conky 工具,在桌面显示系统监控信息,包括 top 进程、dmesg 内核日志以及 journalctl 系统日志的配置与展示方法。同时还说明了如何设置 Conky 开机自启动以及多配置文件的使用方式。
问题现象 开机状态下,插入tf卡或U盘,可以自动挂载并弹出文件管理器。在此状态下重启,重启后无法自动挂载,必须再次热拔插。
概要:本文分析了 firefly 根文件系统中蓝牙固件自动加载的机制,定位到系统通过 udev 规则调用 bt-attach.service 自动加载 brcm_patchram_plus1 导致手动加载失败的问题,并提供了关闭自动加载的方法。
概要:本文介绍了BUCK降压变换器的基本原理、内部结构及关键设计参数,包括工作频率、纹波控制、软启动设置、相位匹配、输入输出电容选择、温度影响、并联均流问题及PCB设计注意事项。
概要:本教程介绍了如何在文件管理器 PCManFM 中添加“在此处打开终端”功能,包括使用原生方式配置终端模拟器以及通过自定义右键菜单实现更快捷的终端调用。
概要:本文探讨了 Verilog 中非阻塞赋值是否会引发竞争条件的问题。通过实例代码与仿真波形说明,作者指出非阻塞赋值由于其特性,在同一个时钟边沿中不会引发竞争,并与阻塞赋值进行了对比分析。
概要:本文简要介绍了 LDO(低压差线性稳压器)和 DC-DC(开关电源)转换器的主要特点,包括各自的优缺点,便于在电源设计中进行合理选择。
概要:本文介绍了 Verilog 语言中“可综合”和“不可综合”两个重要概念,解释了综合的定义、流程及其输入输出,并深入探讨了哪些 Verilog 代码结构可以被综合工具转换为实际硬件电路,以及哪些代码仅用于仿真不可综合。文章还列举了具体示例,帮助读者掌握可综合代码的编写规范。
网址 https://hdlbits.01xz.net/wiki/Main_Page
概要:本文介绍了低压差线性稳压器(LDO)的定义、构成模块、工作原理、常用参数、效率分析及其应用注意事项,包括外围器件选择、布线设计、外部电路影响及热功耗计算等内容。
概要:本文介绍了单板的电源架构设计,包括集中式与分布式两种架构的特点和对比,并阐述了上电时序控制的两种方式:软启动与硬启动。
概要:本文介绍了在 Ubuntu 系统中,当系统语言为中文时,如何将用户目录(如“桌面”)的文件夹名称更改为中文或保持为英文的操作方法。通过设置环境变量并使用 xdg-user-dirs-gtk-update 工具,用户可以自由控制文件夹语言显示方式。
概要:本文介绍了如何在 Ubuntu 20.04 系统中,通过 udev 规则将特定的物理网口(MAC 地址)绑定为固定的 ethX 命名方式。内容涵盖环境验证、MAC 地址查看、规则文件编写及系统重载等操作步骤。
概要:本文介绍了逻辑器件常见的关键电气参数,包括电源电压、输入输出电压范围、逻辑阈值、电流能力、输入电容、电源管理等,并通过图示和推荐参数表详细说明了各项参数的含义及选型注意事项,有助于在实际应用中正确选择与使用逻辑器件。
1 题目链接
1 题目链接
1 题目链接 https://verilogoj.ustc.edu.cn/oj/problem/35
1 题目链接
1 题目链接
题目来源 题目来源于中科大verilog OJ平台 https://verilogoj.ustc.edu.cn/oj/
在Android开发时,编译Android层耗时很长。而有时一些改动只涉及内核,能否只编译更新内核,而不编译Android部分?例如设备树的修改、内核的驱动适配。
CR(Clock Recovery,时钟恢复) 解决的是 “何时采样” 的问题,确保接收端能在正确的时间点读取数据。 EQ(Channel Equalization,通道均衡) 解决的是 “信号质量” 的问题,补偿传输过程中受损的信号,使其变得清晰可辨。
概要:本文概述了常见逻辑电平类型(如 TTL、CMOS、LVTTL、LVCOMS、CML、ECL 等)及其逻辑器件对应关系,详细解释了各种电平参数(VOH、VIH、VIL、VOL、Vt 等)的含义与判断标准,并介绍了电平互联、电平转换及开路门的应用。文中配有多幅图示,便于理解逻辑门特性的电气参数与使用方法。
概要:本文介绍了静电放电(ESD)及其对电子设备的影响,并详细阐述了几种常见的 ESD 保护器件(如 TVS、MOV、气体放电管)的原理、特点及选型建议。文中还提供了 USB 和网口等接口的实际 ESD 防护设计示例,帮助读者理解如何在实际电路设计中进行有效的 ESD 防护。
GDM 的主配置文件是 /etc/gdm/custom.conf。
nm372 和 cm256 是 海华科技(AzureWave) 推出的 WiFi 模组,分别采用了 CYW43438(或 CYW43430) 和 CYW43455 这两款无线芯片。那么,这些芯片究竟出自哪家公司?这背后涉及一连串复杂的历史收购与品牌变迁。
问题描述 3568 预装apk(使用device/rockchip/rkxxxx/preinstall_del目录),编译无报错,但烧录系统后发现没有预装成功。
1 核心概念快速区分
概要:本文详细介绍了静态随机存取存储器(SRAM)与动态随机存取存储器(DRAM)在结构、原理、速度、功耗、成本、应用等方面的差异,并深入解析SRAM的6T结构工作机制及其设计背后的逻辑。
概要:本文介绍了 Flash 存储器的基本概念、与 EEPROM 的区别,以及 NOR Flash 与 NAND Flash 的结构和性能对比。通过图示和表格,清晰展示了两种 Flash 的特点、用途及适用场景。
下面的脚本可以用于验证程序是否以普通用户身份启动:
本文旨在为提供一份清晰、实用的 ps (Process Status) 命令指南。
概要:本文详细介绍了 EEPROM(电可擦除可编程只读存储器)的结构、原理、工作机制、关键特性及其应用场景。通过图文结合的方式,讲解了 EEPROM 的写入、读取、擦除过程,并对其与 Flash 存储器的区别进行了对比说明。
简介 本手册指导您如何修改3588Ubuntu系统中的GPIO方向配置,并验证修改结果。
作者: 吴思含(Witheart) 更新时间: 20241217
用于生成pdf时强制分页: <div STYLE="page-break-after: always;"></div>
.ko文件,请放置在/lib/modules dhd-cyw43430.ko
作者:吴思含(Witheart) 更新时间:20250308
配置文件 device/rockchip/.BoardConfig.mk
原设备树文件 rockchip_suspend: rockchip-suspend { compatible = “rockchip,pm-rk3568”; status = “disabled”; rockchip,sleep-debug-en = <1>; rock...
kernel/include/dt-bindings/suspend/rockchip-rk3568.h 记录了设备树中支持的各种模式
使用 OSTree 进行文件系统版本控制的分析
练习环境 可在网站进行练习 https://play.kotlinlang.org/
简介 LVDS(Low-Voltage Differential Signaling)是一种常用的显示屏接口,适用于高分辨率和高刷新率的显示需求。在嵌入式系统中,适配 LVDS 屏幕的核心是通过设备树配置 LVDS 接口和屏幕参数,并确保驱动支持和系统正确初始化屏幕显示。
kernel/arch/arm64/boot/dts/rockchip/rk3568-evb.dtsi
&pmu_io_domains { status = "okay"; pmuio2-supply = <&vcc3v3_pmu>; vccio1-supply = <&vccio_acodec>; vccio3-supply = <&vccio...
为新板子添加各种配置文件 device/rockchip/rk356x/rk3568_HW/*
nk应该代指nodka https://nodka.eu/
[TOC]
预装软件配置 vendor/rockchip/common/apps/apps.mk
u-boot/drivers/video/drm/rockchip_panel.c 开发指南 struct rockchip_panel_priv 用于存储与 Rockchip 显示面板相关的各种配置和状态信息(比如添加控制gpio)
system/core/lcdparamservice/lcdparamservice.c https://blog.csdn.net/qq_32645109/article/details/121338840
由于github不一定被墙,所以Clash代理规则不一定生效,本文通过配置git走代理提高速度。
Git 仓库分支删除及清理指南
在 FPGA 设计中(主要使用 Verilog/VHDL 等 HDL),reg和wire是两种最基础的数据类型,它们的核心区别在于语义、赋值方式和硬件实现:
make.sh 使用与开发文档
./u-boot/make.sh
左网口(RJ45_J2)(eth0) /sys/devices/platform/fe2a0000.ethernet
Rockchip上的 TX RX delay指 mac芯片和phy芯片之间,时钟和数据相位上的延迟。
概要:本文介绍在 Ubuntu 20.04 系统中彻底停用 Snap 的方法。包括删除已安装的 Snap 软件、卸载核心文件、清除 Snap 管理工具及相关目录等步骤。无需停止 snapd 服务即可完成操作。
概要:本文记录了在执行 swap 操作时遇到的报错信息 “Function not implemented”,并分析其原因与给出解决方案。问题的根源是 Linux 内核未启用对交换文件的支持,解决方法是编译内核时启用 CONFIG_SWAP 选项。
本文提供了多种提升 XFCE 桌面流畅度的设置建议,用户可根据实际使用体验,自由选择搭配使用,无需全部应用。
概要:本指南介绍了如何将已安装的 Ubuntu WSL1 升级为 WSL2,包括查看当前 WSL 版本、使用命令更新 WSL、处理权限问题、手动下载安装包等步骤,适用于遇到“请求的操作需要提升”的用户。
tslib 库配置文件 (ts.conf)
ts_calibrate 是一个触摸屏校准软件,由 tslib 库编译得到。
USB树分析工具(USB Devices Tree Viewer) 该工具用于展示系统读取到的USB设备的详细信息,包括树状结构展示,原始描述符解析等等,对于理解USB设备的结构很有用。如果自行开发的USB设备出了问题,软件也能展示某些字段解析失败的结果,方便了USB的开发。这个工具基于微软的驱动开发工具包开发,...
在安装了Linux-Header后,可以编译一个简单内核模块验证:
以在RK3588上安装Linux-Header为例。
在看源码的过程中,发现有一些图标是这样引用的: <com.android.settings.wifiADB android:key="wifi_adb" android:title="@string/wifi_adb_title" android:summary="@string/w...
报错日志 ```bash rk3588 WILL NOT COMPILE rkaiq_tool_server binary error: packages/services/Iwlan/Android.bp:13:1: module “Iwlan” variant “android_common”: module...
现代 Linux 内核都集成了 PWM 子系统,它通过 Sysfs(虚拟文件系统)向用户空间提供统一的控制接口。 查看系统下导出的pwm控制目录 ```bash ls /sys/class/pwm/ -l
参考链接 https://www.firebbs.cn/forum.php?mod=viewthread&tid=37523 https://blog.csdn.net/weixin_46667572/article/details/143928686 https://stackoverfl...
1 设备树修改示例 ```diff diff –git a/kernel/arch/arm64/boot/dts/rockchip/NK-R36S0.dtsi b/kernel/arch/arm64/boot/dts/rockchip/NK-R36S0.dtsi index c2774fff9..4c3a5551...
问题背景
问题描述 之前vscode能通过ssh连上其他主机的,突然就不行了,点击连接后一直卡在“正在下载ssh服务器”。一般这种情况出现在vscode自动更新后。
概要:本文详细介绍了时钟器件选型中的关键知识点,包括晶振的原理、分类、参数解析、常见问题如抖动与偏移、及电路设计与布局建议。适用于电子工程师在选择和应用晶体振荡器时的参考。
概要:本文系统介绍了常见的嵌入式处理器类型,包括微处理器、微控制器(MCU)、数字信号处理器(DSP)、FPGA 及 SoC 的应用特性、架构分类和选型要点。并对 STM32 系列、双核 MCU 及 FPGA 的选型策略进行了详细解析,为嵌入式系统设计提供了重要参考。(这几节课太水了,当概念看看就好)
此方式为强制输出,不读EDID信息。
命名关系 AW-NM372SM是一颗wifi模组,使用了cyw43438_A1芯片组;而AW-CM256SM这颗wifi模组则集成了CYW43455芯片组。
概要:本文介绍了NMOS与PMOS管的特性、导通条件及应用场景,重点分析了其在开关、隔离以及电平转换等电路中的实际应用方式,并通过图示说明其导通方向及等效电路。
问题描述 更改桌面环境为中文后,面板上的时间显示仍然为英文,且为英文的显示格式,而右键时间->属性,弹出来的时间设置窗口中也无法选择中文。
1 修改方法 头像和用户名指此处的位置
1 问题描述 在XFCE4的语言支持中,选择添加中文简体语言,报错: Could not install the full language support. Details: org.freedesktop.PolicyKitError.Failed:('system-bus-name',{'name': ':...
问题描述 Ubuntu 修改密码报错 new password is too simple
问题描述 根据arch文档的说法 alsa-utils包 软件包默认包含了 systemd 单元配置文件 alsa-restore.service 和 alsa-state.service。
asound.state 文件的生成与加载
概要:本文介绍了三极管的基本类型、结构、选型要点及其在电路中的应用,特别是在逻辑开关和电压钳位等场合的使用方式与设计注意事项。
问题描述 firefly@firefly:/usr/bin$ ./chromium ./chromium: error while loading shared libraries: libjpeg.so.62: cannot open shared object file: No such file or di...
环境 rk3588 arm64 Ubuntu20.04
问题描述 从Gnome迁移到XFCE系统后,发现播放音乐时扬声器没有声音
一、二极管概述
概要:本文介绍了如何在 Android 11 及以上版本设备上,通过无线网络方式使用 ADB 工具进行调试。涵盖所需条件、设备与电脑的配对方法、命令行操作步骤等,适用于希望摆脱数据线连接的开发者。
概要:本文介绍了如何使用 ADB 进行无线调试,并设置固定端口号的方法。包括基本流程、连接方法以及常见问题的解决方案。
概要:本文介绍了在 Windows 系统上使用免费开源工具 scrcpy,通过 ADB(有线或无线)连接 Android 设备,实现无需安装 App 即可在 PC 端投屏安卓屏幕的具体方法。
概要:本文简要介绍了 PMOS 和 NMOS 的结构特点及其导通与截止的电平要求,同时通过图示说明了体二极管的方向以及源极与衬底的连接方式。
方法一:netplan 编辑配置文件(可查看/etc/netplan/下有没有其他文件,可以在已有的文件上编辑,没有则创建) /etc/netplan/01-netcfg.yaml
概要:本文介绍了在 Ubuntu 系统中配置巨型帧(Jumbo Frame)的方法,并通过与 Windows PC 的直连测试验证配置是否成功。包括具体的 Ubuntu 命令操作、Windows 网卡设置步骤,以及 ping 测试示例。
概要:本文详细分析了 Linux SDK 中 build.sh 脚本打包 update.img 的流程,涵盖了脚本调用关系、关键函数解析以及所用工具与软链接指向,帮助开发者更清晰地理解固件打包过程。
目前市面上的资料,大多数是对PS/2键盘的通信过程做了介绍,但是PS/2和Windows在开机阶段是怎么握手上的,却没有详细地介绍,本文弥补了这一点。
概要:本文主要介绍如何修改 build.sh 脚本以支持多设备树的编译与打包,适用于 Android 平台。内容包括设备树的编译流程、resource.img 和 boot.img 的构建逻辑,以及 ./build.sh -u 选项的函数执行原理。
问题描述 3588 Android 12,连接到手机蓝牙后,可以正常接收手机发送的文件,但是发送文件到手机时报错。
概要:本文详细介绍了磁珠在电子线路中抑制噪声的作用原理、结构特性、选型要点,以及磁珠与电感的异同和各自典型应用场景。通过图示和实际案例,帮助读者理解磁珠在信号完整性和EMI抑制中的重要性。
概要:本文记录了在 rk3568 平台的 Android 11 系统中,插入特定 USB 读卡器后导致 XHCI 控制器挂死的问题。通过日志分析与 Rockchip 官方技术支持配合,最终通过 HID 驱动补丁规避了问题,确保系统稳定运行。
Android 官方推荐使用apksigner来验证 APK 签名。该工具位于 Android SDK 的build-tools目录中。
1 方式一 这种方式预装的软件在开机自启应用处可能不显示。 相比于方式二,方式一安装的应用可获得的权限更高。 方式一是Android原生的软件预装方式。 1.1 目录结构
下面用简明扼要的方式介绍 Android APK 的四种签名方案(v1、v2、v3、v4)、它们的特点、兼容性与常用操作建议。
概要:本文记录了在 RK3588 平台预装 Termux 应用失败的排查与解决过程。通过分析 logcat 报错信息,发现 APK 使用了 v2 签名但缺失 v1 签名,导致系统无法识别签名并预装失败。最终通过使用 PRESIGNED 和 LOCAL_REPLACE_PREBUILT_APK_INSTALLED ...
概要:本文介绍了电感的基本作用、结构组成、参数定义(如品质因数Q)、误差等级、频率特性等内容,并结合图示详解了不同类型电感的应用场景及选型建议,适用于电子工程师在设计电路时参考使用。
模式 速率 USB 版本 Low Speed (LS) 1.5 Mbps USB 1.0/1.1 Full Speed (FS) 12 Mbps ...
直接复制 vs tar 打包
概要:本文系统介绍了电容器在电路中的作用、电容选型的关键要点、各类电容(陶瓷电容、电解电容、钽电容等)的特性与差异,并配以详细的频率曲线图与选型参考表,帮助读者理解不同电容的应用场景与选型策略。
切换方法
问题描述 看起来小屏幕叠加在了大屏幕上
概要:本文介绍了如何通过内核配置和 systemd 设置,实现 Ubuntu 启动时不进入图形桌面环境,而是仅启动 tty 命令行终端,适用于服务器环境或需要精简系统资源的场景。
概要:本文介绍了在 RK3568 Ubuntu X11+lightDM+xfce4 环境下,因内核配置不当导致无法切换到 tty 终端的现象,并通过启用内核选项 CONFIG_FRAMEBUFFER_CONSOLE 和 CONFIG_VT 解决问题,详细解释了相关机制和原理。
LINUX TTY终端显示中文指南 debian(deepin)编译内核支持中文显示 cjktty-patches univt-patches linux TTY终端显示中文实现方案现状
概要:本文介绍了四种常见电阻类型的工作原理与特点,并详细分析了电阻选型时应关注的参数,包括阻值、封装、功率、耐压、精度等。同时对阻值编码方式进行了说明,适用于不同精度等级的应用场景。
eDP 简介
1 参考链接
问题描述 客户apk会访问usb的摄像头,每次打开apk时,都会出现一个权限弹窗,提示“是否允许xxx应用访问xxx设备”。需求是去掉这个弹窗,默认允许所有USB设备的访问授权。
参考链接 https://developer.android.com/guide/components/activities/activity-lifecycle?hl=zh-cn
is_valid_ether_addr kernel-5.10/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c if (!is_valid_ether_addr(addr))
1 MAC存储方案介绍 目前MAC有三种存储方案。 写在固件中 —— 相同固件会产生相同的MAC,批量时会造成MAC冲突 使用随机地址 —— rk官方的机制为:检测不到正确的MAC时,驱动会生成随机的MAC地址 固化到EEPROM —— 更换固件后,只要从EEPROM读取MAC的代码逻辑相同,MAC...
概要:本文介绍了在驱动开发过程中,通过使用打印日志的技巧进行调试的方法,包括在关键函数中添加日志、使用宏和特殊标记进行定位与检索,并补充了与 __FUNCTION__ 类似的常用宏,提升日志定位能力。
问题描述 网卡的mac需要在eeprom中读取,但是开机后发现mac并没有正确读取。查看日志如下: ```bash console:/ # dmesg | grep -i “witheart” [ 2.072022] mpp_service mpp-srv: 32d8116903 author: Withe...
一、两种 UUID:一图搞懂
一、LUKS 是什么
问题描述 更新厂测apk时,发现使用adb 或者 u盘手动安装apk,则运行一切正常,但是预装到系统中,则运行报错,具体表现为应用可打开,但是某些操作后触发闪退,或者是运行不正常,比如不能正确获取mac、SN等。
厂测镜像 测试流程 先刷HDMI镜像,验证HDMI显示,然后使用OTA升级包升级,验证LVDS和eDP,然后使用厂测工具进行测试。
问题背景 在Rockchip平台开发过程中,发现一个奇怪现象: ✅ 手动安装:通过ADB或U盘安装APK运行完全正常 ❌ 预装方式:编译进系统镜像后首次运行立即崩溃
问题描述 RK3588适配了es8336芯片后,播放音频的声音一直比较小,查看适配的驱动发现为es8316.c,查看内核发现没有专门的es8336驱动。怀疑是驱动不完全适配导致的声音偏小。
参考文章
方法1:使用 usermod 命令(推荐) 打开终端,使用已拥有 sudo 权限的用户登录。 将用户添加到 sudo 组: sudo usermod -aG sudo user -aG:表示追加(a)到指定的组(G),不覆盖原有组。 sudo:目标用户...
1. 检查 /etc/os-release 文件 适用场景:所有 Linux 发行版通用方法(最可靠)。 操作步骤: 打开终端(快捷键:Ctrl + Alt + T)。 输入命令: cat /etc/os-release 关键字段: 若输出中包含 ...
1 查看用户所属的组 groups 命令: groups [username] 不加 username: 查看 当前登录用户 所属的所有组。 加 username: 查看指定用户 username 所属的所有组。 输出示例: username ...
在 Ubuntu 20.04 中,rc.local 默认是不启用的,因为它使用了更新的 systemd 启动系统。但你可以手动启用它,以下是完整步骤:
参考链接 以下的文章让我受益匪浅,建议仔细阅读: https://doc.embedfire.com/linux/rk356x/Qt/zh/latest/lubancat_qt/qtdemo/demo_run.html
简介 DBeaver Community 是一款免费跨平台的数据库工具,适用于开发者、数据库管理员、分析师以及所有处理数据的人员。它支持所有流行的 SQL 数据库,如 MySQL、MariaDB、PostgreSQL、SQLite、Apache 家族等。
要生成两个连续 commit(比如较早的 4c9fea 和较晚的 d439dd)的补丁,可以使用以下 Git 命令。
方法 1:使用连续提交范围(适用于连续提交) git cherry-pick <最早提交哈希>^..<最晚提交哈希> 示例: 若需 cherry-pick 分支上的提交 a1b2c3d、e4f5g6h、i7j8k9l、m0n1o2p(按时间顺序排列),其中 a1b2c3d 最早,m0n1...
使用软件DiskInternals Linux Reader,支持免费、只读访问 Ext4。(同目录下的Linux_Reader.exe)
深入探索 Android 的两个核心机制:系统属性(System Properties) 和 设置数据库(Settings Database)。
adb shell dumpsys meminfo | grep "Total RAM"
对应系统设置下-显示-永久隐藏状态栏选项
clash主机设置 设置-局域网连接
参考链接
问题背景 交叉编译qt后,运行qmake –version,发现使用了一个绝对路径的库。 hw@hw-Default-string:~$ /mnt/hdd/rk3568_qt_5129/qt-everywhere-src-5.12.9/host/bin/qmake --version QMake version ...
本文指导交叉编译的 Qt 用于编译 ARM64 平台的测试程序。
参考链接 https://doc.embedfire.com/linux/rk356x/Qt/zh/latest/lubancat_qt/install/install_arm_2.html#
1 打包复制 交叉编译Qt库后,make install,目标库将会被安装在x86,configure时被配置为QT_TARGET_PREFIX的位置。假设配置在ext目录下。 将ext目录下的内容打包为tar.gz,复制到arm板的/opt上,解压: tar -xzvf
Ubuntu 更换用户名后,如果有具体的依赖于用户名称的配置,无法自动识别更改,需要手动更改,具体如下:
使用的软件 一般用的软键盘程序是onboard,且系统可能预装,如果没有,安装即可。
本文通过流程图和代码示例,详细介绍了Linux驱动开发的加载流程和基本驱动骨架,包括驱动注册、设备匹配、probe函数调用等关键步骤,以及驱动结构体的各个组成部分和作用。
```bash 禁用现有 Swap(如有) sudo swapoff /swapfile
一、Mali GPU 驱动全景
一、Mali GPU 是什么
概要:本文介绍了在rk3568平台上进行Android WebView兼容性测试的方法,探讨了不同WebView实现的差异,并提供了WebView的下载方式及预装配置方法,旨在帮助开发者解决特定网页在不同WebView版本下的显示兼容性问题。
问题背景 运行hp-setup时,报错 error: /usr/lib/python3/dist-packages/PyQt5/QtGui.cpython-38-aarch64-linux-gnu.so: undefined symbol: _ZTI18QOpenGLTimeMonitor, version Qt...
选项位置 亮度调整位置 设置-电源管理器-系统托盘图标
以删除普通用户firefly为例:
在Ubuntu系统中,可以通过以下方法查看用户列表:
概要:本文针对Ubuntu系统中U盘或TF卡(格式为ext4)自动挂载后权限变为root导致用户无法操作的问题,分析了原因并提供通过修改udisks2配置的解决方案。
要移除的内容如下
传统壁纸设置仅作用于当前显示器,新插入的显示器会使用系统默认壁纸。本教程指导如何在XFCE中设置默认壁纸,使新增显示器自动应用指定壁纸。
系统级壁纸 /usr/share/backgrounds/
问题背景 rk3568 Ubuntu 20.04 firefly用户直接运行hp-setup,不会报错;而自定义的用户运行则报错: arm_release_ver:g13p0-01eac0, rk_so_ver: 10 Cannot find EGLConfig, returning nul...
LD_LIBRARY_PATH被显式设置时,系统可能就不会去/etc/ld.so.conf.d/aarch64-linux-gnu.conf文件中找动态链接库路径了!导致很多软件运行不正常!
概要:本文介绍了在主机通过两个网口连接外网与调试主板的场景中,如何进行网络配置以实现调试主板共享主机外网,解决因 MAC 冲突导致的 SSH 和 FTP 连接不稳定问题。
问题背景 测量高频率的信号时,如果不调整示波器的带宽,测出来的信号可能会失真。 如测一时钟信号,按理说应该是方波,但是测出来却是个三角波
问题分析 三种情况: 本来就是个三角波 示波器与探头的带宽限制,详见(https://www.genuway.com/4125.html) 晶振连接着电阻,与周围的寄生电容形成了个低通滤波器,详见(https://zhuanlan.zhihu.com/p/12864239825)
背景 输入法框架从fcitx更换为ibus,为了避免冲突,决定清理fcitx
1. 编辑 LightDM 配置文件 打开终端,使用管理员权限编辑 LightDM 的主配置文件: sudo nano /etc/lightdm/lightdm.conf 如果文件不存在,检查 /etc/lightdm/lightdm.conf.d/ 目录下的配置文件(如 aut...
问题背景 xfce的网络时间同步默认没有打开,但是选择打开时会提示缺少组件需要下载,下载时又报错。 具体在桌面面板,右键时间,点击属性,点击时间和日期设置…,配置选择“与互联网服务器保持同步”时,会触发上面的问题。 问题原因 Ubuntu中的ntp分为两种,xfce GUI中的开关用的是传统ntp服务,而内置的...
概要:本文介绍了在 Ubuntu 系统中改名用户后,无法通过 SSH 登录的问题,分析了其原因并提供了解决方法,即解锁被锁定的用户账户。
对比 传统 NTP (ntpd) 和 systemd-timesyncd 的主要区别对比:
1 配置选择说明 Ubuntu系统通常使用两种时间同步服务: ntpd:传统NTP守护进程(安装后自动启用) systemd-timesyncd:现代Linux默认的时间同步服务
一般不要做更改用户名的操作,因为如果配置过依赖用户名或者用户组的操作,改名字要把这些操作都变更了,十分的麻烦,本指南比较适用于还没怎么配置过的系统。
1 所需工具 ext4格式U盘或SD卡(容量大于8GB) hw_export_rootfs工具 ftp工具(如mobaxterm) / 另一个exfat格式的U盘
分析 rc.local 运行的性质: 尽管不同发行版和 systemd 的实现细节可能略有差异,rc.local 通常是在系统启动接近完成时(例如在 multi-user.target 阶段),由 rc-local.service 或类似的服务同步执行的一个脚本。
概要:本文介绍了 EC20 4G 模块的基本工作方式,主要包括系统内核配置、拨号方式选择与端口切换的操作方法,同时说明了不同拨号模式的原理及设备节点的识别方法。本文适用于在 Linux 和 Android 系统中集成和使用 EC20 模块的开发者。
具体报错如下 进入了紧急模式,continue+D后也无法启动到桌面
打开 1Panel 面板 首页右下角点击更新
github issues #9428
1Panel 命令行工具
主要需要备份两个目录的内容: 代码(/mnt/nvme/gitblit-1.9.1) git lfs存的根文件系统(/mnt/hdd/armrootfs_lfs/)
1 什么是跃点 metric 同一台ubuntu主机可能有不同的网络,比如多个有线网络、wlan、4G等等。当这些网络同时连接时,需要规定一个优先级,一般是有线>wifi>4G。优先级就是通过路由的跃点进行配置的。
查看路由: route -n
情况一:Kconfig中没有正确定义选项 1. 为什么 defconfig 中新增的选项不会自动进入 .config? 1.1 Kconfig 是配置的核心 .config 文件是 根据 Kconfig 解析生成的,并不是直接从 defconfig 复制过来的。 defconfig 只是提供默认值,但前...
1 系统下配置方法 注意:需要加入commit baeccb51ad86565bf338302f1bb54900732a29a6 才有此选项
目的 本指南旨在指导开发者修改 Android 11 SDK 源码,实现以下功能:
概要:本文记录了在 Android 11(RK3568)平台上,由于 data 分区文件系统从 f2fs 修改为 ext4,导致系统启动卡在 Android logo 的问题。通过分析 logcat 报错信息和对比 fstab 配置文件的修改,最终定位并解决问题的方法是修改当前编译版型对应的 recovery.f...
问题背景 AM3568客户反馈有线adb连接不稳定,开机前接入USB后,可识别到adb,但在开机后热拔插,则识别不到
概要:本文介绍了 RK 3566 3568 3588 平台上 NPU(神经网络处理器)的测试方法,包括驱动版本查看、开机日志检查、NPU 使用率获取以及 YOLOv5 demo 的使用指南,并指出常见报错的无害性,指导用户如何验证 NPU 功能完整性。
项目地址 出问题的旧插件(此插件不再维护):https://github.com/github0null/keil-assistant 新插件:https://github.com/ruiwarn/keil-assistant
概要:本文记录了一个 Git 问题的排查过程:文件已被 Git 追踪且未被忽略,但修改后 git status 不显示变更。最终发现是由于 core.fsmonitor 设置导致的问题,并详细介绍了其原理和解决方法。
问题描述 VMware Ubuntu 22.04 desktop amd64 安装 Ubuntu 后,图形界面不显示 ctrl + alt + f2可以唤出tty2终端
1 烧录 如果有boot.img,先烧录update.img,再烧录boot.img!!! 如果只有update.img,则烧录update.img即可
概要:本文介绍了在 Git 开发过程中如何将多个提交(commit)压缩为一个提交,以便在功能测试成熟后更方便地应用到其他分支。通过 git reset –soft 和 cherry-pick 等命令实现提交合并的操作。
概要:本文介绍了 Android 11 环境下 GMS 认证弹窗问题的两种解决方式,并提供了详细的代码修改方案与验证方法,确保用户在非官方认证环境下也能正常使用谷歌服务。
验证环境 rk3568 Android 11
概要:本文介绍了如何在 Linux 环境下通过 Android SDK 的工具自行打包 update.img 文件。详细说明了工具目录、脚本选择方法、变量配置方式,以及打包流程和注意事项。
概要:本文介绍了在 Ubuntu GNOME 设置中 WiFi 支持频率不显示 5GHz 的问题,并提出了通过在开机脚本中重启 NetworkManager 的方式来解决,同时分析了可能的原因。
问题描述 新增的目录在vscode的git视图中不显示,且目录并非空目录;而git status查看时,显示该目录untrack,但是没有列出该目录下的其他文件,而只列出了目录本身。
安装跑分工具 sudo apt install glmark2-es2
问题分析 一般是五个问题: 视图问题 文件大小和位置问题 缩略图缓存问题 缩略图工具问题 编解码器问题
概要:本文介绍了如何通过 Linux 系统的 /sys/bus/usb/devices/ 目录查看 USB 设备的拓扑结构与连接速度。详细解释了 USB 设备在该目录下的命名规则,并通过实例分析了多个 USB 总线的拓扑关系,最后介绍如何查看设备的连接速率及其含义。
概要:本文介绍了在 Git 项目中如何正确应用补丁文件,包括使用 git apply 和 git am 两种方式的详细说明,以及处理路径问题、解决冲突和验证变更的操作指南,适合需要合并补丁或协作开发的用户参考。
问题: cli运行git status、git log都不会卡顿,但是git graph视图中,每次更新(手动刷新/自动更新)都要卡顿10分钟
概要:本文介绍了当最近一次 Git 提交中误包含了多余文件时,如何通过 git reset 和 git commit –amend 等命令将其移除,同时保留对该文件的修改内容,并分离为新的提交。
概要:本文介绍了在 RK3588 Android 系统中,配置串口设备后,部分串口在使用串口调试软件时提示“没有串口读写权限”的问题。通过分析 /dev/ 目录下设备权限以及系统配置文件,最终定位到 ueventd.rockchip.rc 配置被其他 rc 文件覆盖,并提供了解决方法和参考补丁代码。
1 原理 1.1 实际效果 RJ45接口一般有左右两个Led灯,用于指示网络连接状态,实际上,一侧的灯珠位置上封装了两颗不同颜色的led灯(比如黄色和绿色),这样这个位置就可以按需显示不同颜色的灯光。
设备树包含结构 RB_RK3588.dts RB_RK3588.dtsi rk3588.dtsi rk3588s.dtsi rk3588-vccio3-pinctrl.dtsi rockchip-pinconf...
概要:本文介绍了Boost升压电路的基本原理,分析了其在实际应用中的问题,并通过加入二极管和电容的方式提出了解决方案。最后展示了实际电路模型中MOS管的应用。
概要:本文介绍了电感和电容在电路中电流与电压的变化特性,说明了电感的电流不能突变、电容的电压不能突变的物理与数学原因,并提供了工程应用中的直观理解。
1 问题背景 原生的设备树中已经预设好了许多参数,但总会遇到某些参数不符合要求,或者需要增加某些原来没有的参数的情况。 比如rk3588原生的SDK并没有对设备树屏幕背光使能引脚的解析,而硬件电路设计上有该引脚,这时候就需要我们在设备树中添加对该引脚的引用,然后在原来屏幕初始化的位置进行解析。
1 错误码定义 include/linux/errno.h https://kernel.googlesource.com/pub/scm/linux/kernel/git/nico/archive/+/v0.97/include/linux/errno.h
概要:本篇文章针对 RK3588 Android 系统在关机过程中出现的“闪屏”问题进行分析,确认是由背光下电延迟引起。文章提供了硬件和软件两种解决方案,并详细说明了软件层的修改过程,包括关键代码路径和具体实现方式。
几个寻找的位置: build/envsetup.sh kernel/makefile ./build.sh
治具定义,短接pin5-6、pin7-8、pin9-10、pin11-12
概要:本文详细介绍了使用 make menuconfig 配置 Linux 内核的完整流程,涵盖从 defconfig 生成 .config 文件、使用 menuconfig 编辑配置,到将配置保存回 defconfig 的全过程,并指出了使用中的关键注意事项与缺点。
问题 初次编译时报错,编译输出如下 ```sh checkvintf I 06-05 18:04:10 53974 53974 HostFileSystem.cpp:54] List ‘out/target/product/rk3588_RB/system_ext/etc/vintf/’: OK checkvin...
问题 首次编译3588 Android SDK时出现编译错误,日志如下: ```sh ‘out/target/product/rk3588_RB/system_ext/etc/vintf/manifest.xml’: OK checkvintf I 06-05 16:06:03 8701 8701 HostF...
GKI(Generic Kernel Image,通用内核镜像) 是 Android 操作系统针对 Linux 内核推出的标准化架构,旨在解决 Android 生态的内核碎片化问题。
背景 系统SDK预装 Gboard,烧录后打开 Gboard 闪退。
编译失败信息如下: ```sh [ 97% 128312/131660] //packages/modules/Wifi/framework:framework-wifi.stubs.source metalava merged [common] WARN: Unable to load JNA library ...
概要:本文介绍了如何在 Android 系统中,通过添加系统属性和设置 UI,实现主帧缓冲分辨率的动态调节功能,包括系统属性的配置、多语言支持、UI 接口接入、自定义 Preference 控件的实现与解析等,适用于性能调试、节能优化和兼容性测试等场景。
概要:本文介绍了 Android 系统中通过设置 DPI(每英寸点数)和最小宽度来优化屏幕显示效果的方法,并附带了相关命令和源码修改示例,适用于开发者进行系统定制和适配优化。
需求:原系统在开启热点后重启,热点不会保持开启状态,需要增加热点开关状态的记忆功能。
编译错误日志如下: ```sh [ 96% 101537/105371] //frameworks/base:module-lib-api-stubs-docs metalava merged [common] metalava detected access to files that are not expl...
接入 debug口,开机上电查看日志 可以看到对应的日志 Using display timing dts edp@fded0000: detailed mode clock 58460 kHz, flags[a] H: 1024 1072 1104 1224 V: 0768 0771 0775...
1 进程休眠机制 进程把自己放入等待队列中,设置为不可执行状态,与等待队列相关的事件发生时,唤醒队列上的进程
git diff 是 Git 中用于比较代码差异的核心命令,可以查看工作区、暂存区、不同提交或分支之间的差异。以下是其常见使用场景和参数详解:
分析命令 在终端中对包进行监听分析 tcpdump -i eth0 port 67 or port 68 -vvv
概要:本文介绍了在某些设备中由于 MAC 地址冲突导致有线网络无法上网的问题,并通过修改 MAC 地址解决该问题,提供了具体在 3568 平台上的操作命令示例。
将 Verilog 代码烧录到 FPGA 中,需要经过一系列工具链处理,本文介绍了流程中的各个节点。
FPGA(现场可编程门阵列)是一种高度灵活的半导体器件,其核心思想是通过可编程的硬件结构实现用户定义的电路功能。
`define, `undef
概要:本文介绍了 Verilog 中常用的数据类型,包括 wire、reg、向量、整数、实数以及参数的使用方式与综合行为,结合代码示例说明不同类型在设计中的作用及区别。
安装设备树编译器 apt update sudo apt install device-tree-compiler
概要:本文介绍如何在系统刷入后,通过查看设备树中的相关节点,判断 PCIE 卡槽配置的是 PCIE 资源还是 SATA 资源。通过命令行方式查看设备节点的 status 值,并结合源码设备树进一步确认资源配置情况。
公平的本质,是让时间在不同权重间流动时,依然保持其相对价值的守恒。
公平的本质,是让时间在不同权重间流动时,依然保持其相对价值的守恒。
——从优先级映射到公平调度算法的技术解析
引言:什么是优先级反转? 在计算机多任务系统中,高优先级任务被低优先级任务间接阻塞的现象,被称为优先级反转(Priority Inversion)。这种现象违背了“高优先级任务应优先完成”的设计初衷,可能导致系统崩溃或严重延迟。它的本质是资源共享与任务抢占机制之间的冲突。
一、发展历史:从“优先级时代”到“公平时代” 在计算机操作系统的发展历程中,进程调度始终是核心难题。早期的 Unix 系统(如 BSD)采用基于优先级和时间片轮转的调度策略:系统为每个进程分配固定优先级和时间片,高优先级进程能抢占低优先级进程。这种设计的优势是直观可控,但缺点明显: 交互式应用响应延迟:若未...
目标延迟的本质与设计动机 1. 理想模型的困境 理论目标: CFS的终极理想是模拟“完美多任务处理器”,让每个进程在任意时间段内获得1/n的处理器时间(n为可运行进程数)。例如: 若有2个进程,每个进程应占用50%的CPU时间; 若有20个进程,每个应占用5%的CPU时间。...
Ruby 是底层编程语言。 RubyGems/Bundler 用于依赖管理。 Jekyll 是生成静态网站的核心工具。 Minimal Mistakes 是现成的Jekyll主题。 GitHub Pages 是免费托管平台。
什么是Jekyll、Ruby、RubyGems、Bundle、Minimal Mistakes 和 GitHub Pages? 什么是Jekyll、Ruby、RubyGems、Bundle、Minimal Mistakes 和 GitHub Pages
二进制表示数值,只有01两种状态,如何表示正负两种符号?
概要:本文详细介绍了 i386 架构下的页式内存管理机制,包括从线性地址到物理地址的两级或三级映射过程、Linux 针对不同位宽 CPU 的分页结构适配方法,并进一步说明了用户空间与内核空间的划分原则及虚实地址之间的转换实现。
参考:https://www.youtube.com/watch?v=L6YqHxYHa7A 1:03:01
本文将以一个实际的 C# WinForms 应用为例,深入浅出地讲解 C# 的关键语法和特性,帮助已经掌握 C 语言的开发者快速上手 C#。你将看到熟悉的结构,也将学习到 C# 独有的现代特性。
概要:本文介绍了在 Ubuntu 系统中,通过 systemd 定时器与脚本实现自动检测并同步系统时间与硬件时钟(RTC)的配置方法,包含脚本编写、服务与定时器的创建、启用、关闭及恢复等完整流程。
本教程针对使用预装版本的Gboard,输入法已内置中英文输入,需要其他语言请参考本教程。
系统
引擎选择 设置-无障碍-文字转语音(TTS)输出
本教程针对使用非预装版本的Gboard。
谷歌TTS指的应该是安卓设置下,无障碍,文字转语音TTS
概要:本文介绍了 HW-T3568I 在 Ubuntu 系统下各接口的测试方法,包括终端操作、测试工具使用、各类接口(如 LVDS、USB、TF 卡、WLAN、以太网、4G、音频、GPIO、串口 COM)连接与验证流程,辅以操作截图和脚本命令,便于用户逐项进行功能验证。
测试接口位置标识
概要:本文介绍了 Verilog 中阻塞赋值(=)与非阻塞赋值(<=)的区别,并通过实例代码演示它们在仿真中的行为差异,包括赋值顺序对逻辑和时间的影响,帮助读者理解过程赋值与连续赋值的不同,并掌握其在实际编码中的使用方式。
1. 网站 仿真网站:edaplayground
概要:本文详细介绍了在Ubuntu系统中安装和使用todesk及向日葵远程控制软件的完整流程,包括安装步骤、启动方法和注意事项。
自定义开机脚本 /home/user/Custom_Startup_Script.sh
概要:本文介绍了在Ubuntu系统中通过nmcli工具修改网络连接优先级的方法,包括查看现有连接、调整路由优先级以及验证配置效果。
概要:本文介绍了在Ubuntu系统中重置todesk识别码的方法,包括卸载软件、删除配置文件以及注意事项。
执行以下命令安装Noto CJK字体系列 sudo apt update sudo apt install fonts-noto-cjk sudo apt install fonts-noto-cjk-extra
todesk 显示正常,但鼠标移动缓慢 应该是cpu占用很多导致的,运行时rk3568,4个核心占用都在80%以上
概要:本文总结了 Linux 环境下 CAN 和 CANFD 接口的常用操作命令,包括配置波特率、启动接口、查看状态以及数据收发等操作。
问题背景 发现以下现象:
概要:本文介绍了在硬件支持的情况下,如何在普通CAN和CANFD之间进行切换,包括驱动层面的配置和运行时的参数设置。
在 Makefile 中,不同的赋值操作符(=, :=, ?=, +=)具有不同的行为和用途。本文介绍它们的区别。
在 Linux 和类 Unix 系统中,软链接(Symbolic Link) 和 硬链接(Hard Link) 是两种常用的文件链接方式。它们允许用户通过多个路径访问同一文件或目录,但底层机制和适用场景截然不同。本文将详细解析它们的核心区别、创建方法及使用场景。
概要:本文详细介绍了美格MEIG 4G模块SLM770A在RK3568 Android11平台上的移植步骤,包括内核配置、驱动适配、权限设置、动态加载ril库以及常见问题解决方法。
grep 搜索文本内容 打开终端,进入包含./device目录的上级目录。 执行以下命令: grep -rnw './device' -e 'DEVICE_MANIFEST_FILE' -r 或 --recursive:递归搜索子目录。 -n 或 --...
概要:本文解释了defconfig与.config文件的区别,说明了defconfig中可能缺失某些选项的原因,并提供了相关示例。
在 Linux 脚本和 Android 的 init.rc 文件中,exec 命令的行为和用途有显著差异。
概要:本文详细介绍了 HW-T3568I Android 设备开机脚本的位置及其调用链,帮助开发者理解系统启动过程中脚本的执行顺序和逻辑。
概要:本文介绍了如何在Android系统中通过logcat打印调试信息,包括在init.rc脚本中和终端中使用的方法。
概要:本文介绍了在Android系统中如何修改文本文件,特别是在终端中无法使用vim或nano时的替代方法。
概要:本文介绍了在Android 3568系统中如何修改开机自定义脚本,包括使用adb获取权限和编辑相关配置文件的方法。
LVDS = Low-Voltage Differential Signaling 低电压差分信号
概要:本文探讨了RK3568 GPIO驱动强度的设置方法,分析了相关代码实现及驱动强度的特性。文中指出驱动强度的设置与引脚类型有关,并提到官方文档中驱动能力与level的对应关系存在特殊情况。
问题现象 在尝试加载内核模块 dhd-cyw43430.ko 时,系统提示错误: insmod: ERROR: could not insert module /lib/modules/dhd-cyw43430.ko: Invalid module format
1. 模块化编译(生成独立KO文件)
问题: 内核设备树修改屏参后,不生效,表现为debug口读取到的分辨率和设备树中设置的不一致,后面发现是和baseparameter 256KB处存储的屏参有关
概要:本文详细介绍了在 Android 系统下为 Fintek F81604 USB 转双 CAN 模块编译驱动 ko 文件的步骤,包括驱动目录的创建、Makefile 的修改、内核构建系统的调整以及编译和加载驱动的具体操作。
寻找使用的交叉编译链 在kernel下makefile中,定义了 ifeq ($(ARCH),arm64) ifneq ($(wildcard $(srctree)/../prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64...
概要:本文介绍了在rk3568设备上运行Ubuntu系统时,扬声器无声音的可能原因及解决方法,主要通过配置音频设置来解决问题。
概要:本文介绍了在Ubuntu 20.04系统中,使用LXDE桌面环境时,如何在系统启动后显示自定义动态GIF logo,并在加载完成后自动关闭动态logo并启动指定软件的解决方案。
概要:本文介绍如何在 Ubuntu 20.04 + LxQt 桌面环境下安装和配置 ibus-rime 中文输入法,包括依赖安装、环境变量设置、输入法添加、开机自启配置等步骤,并附有实际测试效果说明。
概要:本文介绍了在使用 apt upgrade 进行软件包全量更新后,系统因某个软件包问题导致崩溃的排查方法。通过二分法逐步缩小问题范围,最终定位并禁止问题软件包的更新。
概要:本文介绍了如何使用 apt-mark 命令设置 apt 默认不升级指定的软件包,包括如何标记软件包为保留状态以及查看已保留的软件包列表。
概要:本文介绍了在Ubuntu系统中修改某个账户密码的两种方法,包括使用passwd命令修改其他用户密码和修改当前登录用户的密码。
概要:本文介绍了如何在 Ubuntu 系统中安装 NTFS 支持工具,以便能够正常读写 NTFS 格式的 U 盘。通过简单的命令行操作,您可以快速实现 NTFS 文件系统的支持。
• 作者:吴思含(Witheart) • 更新时间:20250407
概要:本文探讨了在rk Ubuntu系统中自定义开机Logo时出现的上下左右完全镜像的问题,分析了可能的原因并提供了相关的测试结果。
概要:本文介绍了如何将LXDE系统的语言更改为中文,提供了具体的操作步骤和相关配置文件的修改方法。
概要:本文介绍了如何在 LXDE 系统中禁用桌面组件,使系统启动时不加载桌面环境,适用于信息亭等信息展示用途。
概要:本文介绍了如何使用 Chromium 浏览器的信息亭模式,使浏览器不显示地址栏,并提供了实际的启动命令和退出方法。
概要:本文介绍了在 Linux 内核中,uname -r 命令显示的内核版本号后缀的来源,以及如何通过 CONFIG_LOCALVERSION_AUTO 选项控制哈希值、dirty 标记和 + 号的显示情况。
概要:本文介绍了如何在 Android 系统开机后设置持久化属性,列举了常用命令及属性文件的保存位置,帮助开发者理解系统属性配置的具体实现方式。
概要:本文介绍了在不同 Rockchip 平台(rk3568 和 rk3588)上,通过修改 Android 构建配置文件来调整主副屏的显示顺序和输出设备。
概要:本文介绍在 Android 系统中同时启用 HDMI 和 LVDS 输出时,由于屏幕比例不同可能导致画面拉伸的问题,并尝试通过设置系统属性来指定 UI 的绘制比例以解决此问题,但该方法在双屏显示时仍存在比例异常的情况。
概要:本文介绍如何通过命令行方式自定义系统启动时显示的 Logo,包括准备 BMP 格式图片、挂载分区并替换 Logo 文件的具体步骤。适用于需要个性化设备开机画面的用户。
准备工作 1. 准备Logo图片 格式要求:必须为BMP格式,位深24位(使用32位会出现上下左右显示镜像的问题) 分辨率:应与设备显示分辨率一致 数量选择: 准备一张图片,复制两份分别命名为: logo.bmp log...
概要:本文介绍了在系统启动时自定义 Logo 的实现原理和操作方法。通过在 update.img 中添加一个格式化为 ext4 的 resource.img 分区,实现开机自动加载 Logo 的功能,并支持用户后续自行更换 Logo 图片。
概要:本文记录了 Qt 5.15.2 的源码下载及本地编译安装过程,包含所需依赖包的安装指令、编译配置参数及安装路径设置等详细步骤,适用于希望在本地构建 Qt 环境的开发者参考。
概要:本文介绍了 RK356x 平台中 update 分区的配置与计算方法,解析 mtdparts 的语法结构、分区大小计算方式,并说明固件打包及系统识别方式。
概要:本文介绍了 mSATA 接口在设备树中的配置方法,指出其与 PCIe 接口资源复用的特性,以及如何在 Rockchip 平台的设备树文件中启用或禁用相应功能。
GPI 默认电平可以通过设备树配置上下拉配置 GPO 不管配置上拉还是下拉,只要一旦配置为GPO,默认都是低电平输出
本指南将帮助您在 Ubuntu 系统中安装和使用 language-switcher 工具来更改系统语言。
概要:本文分享了做笔记的意义、适合记录的内容类型(概念型/步骤经验型/理论思考型)、记笔记的最佳时机、容易忽视但重要的笔记要素,以及推荐的笔记工具链(博客平台与本地部署+GitHub 同步)。
1. 挂载 rootfs.ext4 方法 1:直接挂载(适用于 Linux) ```bash 创建挂载点 sudo mkdir -p /mnt/rootfs
Linux 进程、线程、程序、任务
概要:本文介绍了常见的字符编码标准,包括 GB2312、GBK、ANSI 和 UTF-8。重点分析了它们的特点、适用场景及关键区别,并详细探讨了 UTF-8 BOM 的作用、问题及最佳实践。
下文以“新建Ubuntu开发目录”为例。
概要:本文讨论了在 bat 文件中使用 UTF-8 编码可能导致的命令解析错误,并提供了解决方案。
1. 卸载软件包(保留配置文件) sudo apt remove 软件包名 仅删除软件包,但保留配置文件(便于重新安装时恢复配置)。
概要:本指南提供了一个用于扩展Ubuntu根文件系统的分区脚本,并解决了之前版本中的两个主要问题:残留标志文件导致扩展不生效,以及脚本中分区硬编码的问题。通过动态获取根设备和分区,该脚本可以在不同机器上使用。
HW-T3568I Ubuntu
版本号查询 qmake -v
概要:本文介绍了在安装自行构建的 .deb 软件包时遇到依赖关系错误的问题,并提供了解决方法,即修改 DEBIAN/control 文件中的架构设置。
概要:本指南记录了如何将已在 A 主机(RK3588 Ubuntu)上编译完成的 Qt5.14.2 库移植到 B 主机(另一台 RK3588 Ubuntu),包括打包、解压及必要的依赖安装步骤。
步骤1:准备基础环境 # 创建打包工作目录 mkdir -p qt5142-deb/DEBIAN qt5142-deb/opt
概要:本文介绍了如何通过进程查找某个被服务调用的程序,并以 4G 拨号为例,展示具体步骤。
概要:本文介绍了在 Android 13 上如何通过修改 config.xml 配置文件,启用手势导航模式,从而隐藏导航栏。并分析了相关代码的解析和生效原理。
概要:本文介绍了在 Windows 系统中查看特定端口(如 53317)被哪个进程占用的方法,包括使用 netstat 命令、PowerShell、TCPView 工具以及资源监视器。
概要:在使用 git cherry-pick 命令时,可能会遇到 nothing to commit, working tree clean 的提示。本文将分析该问题的原因,并提供两种解决方案。
概要:本文记录了在 RK3588 上手动编译并安装 Qt 5.14.2 的完整过程,包括所需依赖的安装、源码下载与编译配置,以及常见问题的解决方案。
概要:本文介绍了如何在 LXDE 桌面环境中隐藏桌面导航栏,通过终端命令进入面板设置进行调整。
概要:本文介绍了如何在 LXDE 桌面环境中调整 PCManFM 文件管理器的图标大小,包括具体的操作步骤和推荐的图标尺寸。
index.lock 文件存在问题解决方案
概要:本文介绍了在 Git 仓库中遇到 index.lock 文件存在的问题的可能原因,并提供了相应的解决方案。
rm —— 使用 trash 代替
概要:rm 命令会永久删除文件,无法恢复,稍有不慎可能导致严重数据丢失。本文介绍了 trash-cli 作为 rm 的安全替代方案,提供安装和使用指南,并探讨如何避免误删文件的方法。
概要:由于存储空间不足,Gitblit 从 /home/arm/work/gitblit-1.9.1/ 移至 /mnt/nvme/gitblit-1.9.1/,并进行了相应的配置修改和备份操作。
概要:本文介绍了系统中 Qt 库的两个版本位置,以及如何使用 update-alternatives 管理默认 qmake 版本。同时,还提供了源码位置和安装参数信息。
概要:由于硬盘空间太小,需要将 Gitblit 迁移到其他位置。本文介绍了 Gitblit 迁移的详细步骤,包括停止服务、复制数据、修改配置、更新启动脚本、启动 Gitblit 以及验证迁移是否成功。
概要:本教程介绍了在 Ubuntu 系统下如何查看硬盘信息、进行分区、格式化、挂载以及设置开机自动挂载,适用于新安装的硬盘或重新配置的存储设备。
一般的 HDMI 分辨率都有适配,但是在某些横屏转竖屏 HDMI 输出下,就需要增加特殊的 HDMI 分辨率了 本文用于指导如何添加特殊分辨率的 HDMI 显示。 参考文档 RK官方文档\02、Android\common\display\Rockchip_Developer_Gui...
概要:本文介绍了如何在 Anlogic FPGA 开发环境中,新建 TD 工程、编写 Verilog 代码、使用 ModelSim 进行仿真,并最终完成管脚绑定。
概要:本文介绍如何使用 Gitblit 内置的 Git LFS 进行大文件存储,以管理根文件系统镜像压缩包的版本。包括 Gitblit 配置、仓库初始化、Git LFS 设置及如何上传和下载特定 commit 的压缩包。
概要:本文介绍了如何跳过 LFS 文件的下载,使其显示为指针文件,以及在本地 push 时确保大文件成功上传的方法。
概要:本文介绍了如何在 Git 中更改远程仓库的 URL,包括查看当前远程仓库、修改 URL、验证更改以及测试新的远程仓库。此外,还补充了如何重命名远程仓库的操作方法。
sudo 报错:无法解析主机,未知的名称或服务
概要:在 Ubuntu 上运行 sudo 命令时,可能会遇到 “无法解析主机:user: 未知的名称或服务” 错误。通常,这是由于主机名 (hostname) 配置错误或 /etc/hosts 文件缺少相应的条目。本文介绍如何检查和修复该问题。
概要:本指南详细介绍了在 RK3588 平台上安装 Hailo AI 加速卡驱动的步骤,包括 PCIe 支持检查、驱动编译、RT 库安装以及常见问题解决方案。
概要:本文介绍了在 RK 3588 平台上使用 Hailo AI 加速卡进行性能测试的方法,包括模型下载、性能测试命令及可能遇到的错误和解决方案。
1. 安装概述
系统已经预装VNC客户端:tigerVNC,并设置开机自启,客户端图标在桌面上也可以找到。
RK Android系统下已经预安装了谷歌拼音输入法,按下面方式开启即可。
概要:本指南介绍如何在 Linux 桌面环境下创建自定义图标,并定义其执行的命令。通过 .desktop 文件,可以便捷地启动应用程序,本文以 VNC Viewer 为例进行演示。
概要:本文介绍如何在 Linux 桌面环境下配置 GUI 应用的开机自启。由于普通的开机自启脚本可能缺少 DISPLAY 变量,导致 GUI 程序无法正常运行,因此本文采用桌面环境的自动启动项进行配置。
以下是几个 免费、开源、兼容性好 的 VNC 客户端推荐:
概要:本文介绍了 Linux 标头的概念,以及如何在 RK3588 的 Ubuntu SDK 环境下编译 Linux Header,以支持内核模块(KO)的自编译。
在 Linux 内核、U-Boot、Buildroot 等嵌入式系统开发中,Kconfig 是一个关键的配置管理系统。它用于定义、组织和管理大量的编译选项,使开发者能够灵活地启用或禁用不同的功能。与此同时,defconfig 和 .config 文件在整个配置流程中起着重要作用。本文将深入解析 Kconfig、d...
概要:在编译 Linux 内核并打包 Debian 包时,可能会遇到 chown: Operation not permitted 的错误。本文介绍如何使用 fakeroot 解决该问题,并正确生成 .deb 包。
概要:在 Windows 主机上进行 git clone 后,文件的行尾序列可能会从 LF 变为 CRLF,导致一些问题。本文介绍如何在 git clone 之前配置 core.autocrlf 以确保文件的行尾序列保持为 LF。
概要:本教程介绍了在 RK 3588 Ubuntu SDK 环境下编译 U-Boot、内核及固件的完整流程,并说明了生成的文件及最终 update.img 的打包过程。
概要:本文列出了 RK 3588 Ubuntu SDK 在实际使用过程中涉及的关键配置文件,包括 U-Boot 和内核的配置文件路径。
概要:本文介绍了 RK3568 的 VOP2.0 显示框架,包括其工作原理、VP 输出接口以及屏幕设备树的配置方法,重点讲解了 eDP 和 HDMI 双显的设备树配置。
概要:本文介绍了 RK WiFi BT 模组的移植调试方法,包括硬件检查、设备树配置、驱动加载以及日志分析等关键步骤,以帮助开发者快速定位和解决问题。
概要:本文记录了 RK3568 平台上移植并调试 WiFi6 模组 AIC8800 的过程,涵盖 WiFi 和蓝牙驱动的适配与问题排查。
概要:本文解析了 RK Android 系统中 OTG 模式切换的实现方式,介绍了相关的系统属性 persist.usb3.otg.mode 及其在源码中的应用,并详细分析了 OTG 模式切换的底层逻辑。
概要:本文介绍了基于 AIC8800D40 芯片的 WiFi6 模组 BL-M8800DS2-40 在 RK3568 平台上的驱动移植流程。主要涉及环境搭建、驱动代码分析、设备树修改、驱动编译配置、蓝牙库集成、wpa_supplicant 配置及 WiFi HAL 适配等内容,并提供详细的移植步骤和注意事项。
概要:本指南介绍了 RK 平台上 USB OTG(On-The-Go)功能的切换方法,包括主机与从机的角色转换、命令行操作以及图形界面设置,以便用户能够正确配置设备的 USB 模式。
概要:本文介绍了在 RK 设备上使用 ADB 进行调试的方法,包括软件使用、命令操作以及设备 USB 模式的配置。
1. 系统分层架构 通常可以将WiFi和BT的软件架构划分为以下几个层次:
1.1 dmesg 查看 UART 设备信息 dmesg | grep -i "ttyS" 示例输出: [ 1.869027] fdd50000.serial: ttyS0 at MMIO 0xfdd50000 (irq = 17, base_baud = 1500000) is a 16550A [ ...
1. 设备树(Device Tree)中的 serialX 别名 在 Linux 设备树(DTS/DTSI)文件中,通常会有 aliases 节点,其中定义了 serialX 别名。例如: aliases { serial0 = &uart0; serial1 = &uart1; ...
time 命令用于测量命令的执行时间,在 Linux 和 macOS 终端中非常有用。它可以显示程序运行所消耗的 总时间、用户 CPU 时间和系统 CPU 时间。
watch 命令用于定期执行指定的命令,并实时显示其输出,通常用于监视命令的执行结果是否发生变化。
stress 命令是一款用于 Linux 系统的压力测试工具,可以用于 CPU、内存、I/O 和磁盘的老化测试。
sensors 命令用于在 Linux 系统中显示硬件传感器的数据,例如 CPU 温度、风扇转速、电压等。
背景 由于工作室跳闸,需要断电后再重新上电。在这个过程中,忘记正常关闭编译服务器,直接断电了。恢复电源后,服务器可以正常启动,但尝试进行 SSH 连接时出现如下错误:
STC8 系统时钟控制器
在 STC8 单片机中,要实现阻塞 CPU 进程的简单延时,可以直接使用官方的烧录工具 stc-isp 生成延时代码。
本指南以 STC8H1K16 为例,介绍 PWM(脉宽调制)功能的基本使用方法,适合新手快速上手 PWM 配置。
编辑setting.json文件 生成setting.json文件的方式请查看文章《VSCode如何创建配置文件setting.json》
打开文件夹 在 VSCode 中打开需要生成配置文件的文件夹。
VNC(Virtual Network Computing)是一种远程桌面共享协议,允许用户通过网络访问远程计算机的桌面环境。本教程介绍如何在 Linux 系统(如 Ubuntu、Debian 等)上安装 x11vnc 服务器,并配置其开机自启,以便远程访问和管理桌面环境。
方法 1:使用 git reset(常用于本地分支,不推荐用于共享分支) 如果你想让你的分支回退到某个特定的 commit,并且 丢弃 之后的所有提交,可以使用 git reset 命令。
错误信息 root@RK3568:/vendor/lib/modules# ping -I wlan0 8.8.8.8 ping: invalid option -- 'I' Try 'ping --help' or 'ping --usage' for more information.
在 Ubuntu 系统中,可能会遇到多个网络管理工具共存的情况,导致网络配置混乱,甚至无法正常工作。本文将详细分析 Ubuntu 中常见的网络管理工具,并指导如何确定当前使用的工具,禁用多余的工具,确保网络管理的稳定性。
1. **查看当前目录下文件占用大小:du -sh * **
本指南用于指导如何使用update.zip进行 U盘 OTA 升级。
SSH 连接时显示的问候信息称为 MOTD (Message of the Day),在 Ubuntu 系统中可以通过静态或动态方式配置。
命名结构可视化 主分支:安卓版本:Android11 └── 版型分支:Androidx-具体版型 └── 客户版型定制分支1: Androidx-具体版型-客户简称1-...
修改本地分支名称
步骤 1: 查看 commit 历史 首先,确保你知道要基于哪个 commit 创建分支。可以使用以下命令查看 commit 历史:
适用于 Rockchip Android系统下,设置中显示的设备名称、型号、版本号的修改。
下面这些命令需要在桌面终端中执行,否则可能无法准确显示结果。如果你通过 SSH 登录系统,$XDG_SESSION_TYPE 和 $XDG_CURRENT_DESKTOP 等变量可能为空或返回非图形环境相关的值。
FireFly 官方提供的打包工具 ff_export_rootfs 不能指定打包的目录,只能指定打包后 .img 文件的输出目录。为了解决这个问题,我对脚本进行了修改,添加了 -s 参数,用于指定需要打包的源目录。 </br> 此脚本适用于以下场景:在另一台机子上挂载根文件系...
本文介绍如何签出 OSTree 仓库中某一分支的内容,并将其打包为根文件系统。
本文介绍如何使用 OSTree 提交文件系统内容,适用于从 .img 文件中导入根文件系统并提交到 OSTree 仓库的场景。
本文介绍如何使用 OSTree 进行远程增量拉取,重点包括仓库模式选择、远程服务器配置、本地仓库操作等。
The Fuck 是一个非常强大的命令纠错工具,它可以纠正你在终端中输入的错误命令,并提供正确的命令。
以下是如何在 Ubuntu 系统中启用、关闭和删除 Swap 的详细步骤。Swap 是虚拟内存的一部分,可以在物理内存不足时提供额外的内存支持。
OSTree 是一种强大的文件系统管理工具,广泛应用于操作系统版本控制和分发。本文总结了 OSTree 的常用命令,按功能进行分类,便于读者快速查阅。
LAN 模块组成
参考资料
前置准备
本文详细介绍了屏幕显示时序的基本参数,包括水平和垂直方向的有效像素、同步信号、前肩、后肩及其总周期的定义与计算公式。同时,通过公式和图示,阐明了各参数之间的关系,并提供了完整的参数缩写说明,帮助读者快速理解屏幕时序的核心概念和计算方法,是学习显示时序原理的实用参考。
本文介绍如何在使用 Fake Launcher 设置应用开机前台自启后,通过代码修改实现返回系统默认桌面的功能。如果需要了解如何设置 Fake Launcher 前台开机自启,请参考《设置应用开机前台自启》。
1. 工具简介
使用 du 命令: du -sh * 这个命令会列出当前目录下每个文件和目录的大小。-s 选项表示总结(只显示总大小),-h 选项表示以人类可读的格式显示大小(如 KB, MB, GB)。
本教程将详细介绍如何将 U 盘格式化为 ext4、FAT32 和 exFAT 文件系统,同时包括如何安装必要工具(如 exfat-utils)。
问题描述 执行程序时,报如下的错误: error while loading shared libraries: libicuil8n.so.66: cannot open shared object file: No such file or directory
更新软件包列表: sudo apt update
执行 lunch 选择产品后,通过执行“get_build_var TARGET_DEVICE_DIR”命令找到对应的目标文件夹。
本文将通过修改 Android 系统源代码和配置文件,实现应用在设备开机后以前台形式自启的功能(即用户可直接看到应用界面)。具体实现涉及多个文件的修改和联动,以下内容包括详细代码块、代码解释,以及最终实现该功能的总结。
1 查询应用的包名 方式1 运行以下命令,替换关键字 Your_APP_Name 为具体的模块名称,也就是应用对应路径下的vendor/rockchip/common/apps/Your_APP_Name/Android.mk中的LOCAL_MODULE属性。
文件路径: device/rockchip/rk356x/device.mk
本文介绍如何通过 Intel 的 SMBus 控制器与 IIC 器件(例如 LM75 温度传感器)进行通信,包括寄存器地址说明、读写操作过程及相关代码实现。
芯片简介 LM75 是一款低功耗、易于使用的数字温度传感器,支持 I2C 接口通信。它能够测量芯片本身的温度,输出分辨率为 0.5°C,同时支持可编程温度阈值和报警功能。该芯片适用于环境温度监测、热保护系统等应用场景。
在 Git 中,可以通过 git revert 或 git rebase 来撤销某个特定 commit 的更改。以下是两种方法的操作步骤:
本指南用于指导如何编译出可供U盘 OTA 升级的update.zip。
本指南介绍如何使用FireFly官方提供的打包工具 ff_export_rootfs 将Ubuntu的根文件系统打包成一个镜像文件。
在Ubuntu中,烧录好的 rootfs 文件系统可能未能占用整个分区的空间,导致设备的根分区提示空间不足。 解决方式:通过自动化脚本和服务配置,在启动时自动扩展根文件系统到分区的完整大小。
用法 请参考文章《为Markdown导出的PDF添加页眉页脚》,此处只给出设置的代码。
git cherry-pick 指南
以下是一篇详细的操作指南,介绍如何使用 git cherry-pick 将一个分支上的部分提交应用到另一个分支。
背景说明 在 Rockchip 平台中,TX 和 RX delay 指的是 MAC 芯片和 PHY 芯片之间,时钟和数据相位的延迟调整。由于千兆网卡的高频信号更容易受到 PCB layout 走线和电磁干扰的影响,RGMII 接口需要进行精确的时序配置。如果测试中出现吞吐率不足、不稳定或 TX、RX 不通的...
加载配置文件
只进行多设备树的编译并打包进resource.img ./build_hw.sh -m
build.sh 到 build_hw.sh 的迁移
以下是将原始 build.sh 升级为支持多设备树构建的开发指南:
问题描述 在使用 VS Code 的 Remote-SSH 插件连接远程服务器 192.168.0.22 时,连接失败,并提示如下错误: Failed to parse remote port from server output Resolver error: Error: ...
在使用Rockchip RK3568平台开发时,可能会遇到内核编译失败的情况。例如,使用./build.sh -K编译Linux内核时,可能会出现各种编译错误,而添加-C选项(即使用Clang编译器)后问题却能够解决。以下是对该问题的分析和解决过程的详细记录。
1. 内核编译 执行以下脚本编译内核源码:
unpack_bootimg 工具
在 Rockchip 的 Android SDK 开发中,unpack_bootimg 是一个非常重要的工具,用于解包 boot.img 文件,以便查看或修改其中的内容。以下将详细介绍如何编译和使用该工具。
功能名称:HW-ID DTB
当我们开发嵌入式系统(特别是基于 Rockchip 平台的设备)时,经常需要将多个设备树(DTB)文件与其他资源文件一起打包为一个 resource.img 文件,以供设备启动时加载。本文将详细解析 mkmultidtb.py 脚本的工作原理,并说明如何正确使用它完成设备树的打包。
1. 设置环境变量 运行以下命令,加载构建环境的相关脚本:
在构建系统中,U-Boot配置文件是指在 u-boot/configs/ 目录下的 *_defconfig 文件。它的主要作用是定义U-Boot的配置选项,这些选项会在构建U-Boot时被解析并生成最终的配置文件(.config),进而决定U-Boot的功能、硬件支持、启动模式等具体内容。
如何查看版型对应的设备树
Rockchip RK3568 TRM Part1 V1.1-20210301.pdf
在aliases处修改串口别名 serial0 = &uart0; serial1 = &uart7; serial2 = &uart5;
Rockchip RK3568 TRM Part1 V1.1-20210301.pdf
在使用lunch命令指定某一个编译版型后,可以通过以下步骤来确定该版型使用的设备树:
本文档旨在说明内核配置文件与版型的对应,以及如何生成自定义的内核配置文件。
在Android构建系统中,lunch命令是用于选择目标产品(版型)的核心工具。它通过加载与版型相关的配置文件,设置环境变量,从而确保构建系统能够正确生成目标镜像。本文将结合rk3568_HW.mk文件的内容,详细说明lunch命令如何与版型对应。
目的 修改 RK3568 的上下拉电阻,设置指定 GPIO 的默认电平。
编译环境构建
本文档旨在指导如何进行 HW-T3568 的安卓固件编译,最终生成 update.img 文件以供烧录。
You’ll find this post in your _posts directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different wa...
This theme supports link posts, made famous by John Gruber. To use, just add link: http://url-you-want-linked to the post’s YAML front matter and you’re done.
Only one thing is impossible for God: To find any sense in any copyright law on the planet. Mark Twain
A notice displays information that explains nearby content. Often used to call attention to a particular detail.
Abbott: Strange as it may seem, they give ball players nowadays very peculiar names.
All children, except one, grow up. They soon know that they will grow up, and the way Wendy knew was this. One day when she was two years old she was playing...
This post has been updated and should show a modified date if used in a layout.