<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[chwit的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/chwit</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; chwit]]></copyright><item><title><![CDATA[NVIDIA Container Runtime]]></title><link>https://blog.youkuaiyun.com/chwit/article/details/164114329</link><guid>https://blog.youkuaiyun.com/chwit/article/details/164114329</guid><author>chwit</author><pubDate>Thu, 27 Aug 2026 13:18:00 +0800</pubDate><description><![CDATA[NVIDIA runtime 接收原始 OCI spec，向其中添加 NVIDIA runtime hook，然后再调用宿主机上的原生。已经不是完整 fork 出来的 runc，而是围绕原生 runc 的薄封装。所以在 Orin/Thor 上，真正决定“哪些宿主机库会进容器”的权威来源。NVIDIA 的介入位置主要在 OCI runtime 层。，它的容器注入逻辑比普通 x86 独立显卡场景更特殊。从 2019 年开始，]]></description><category></category></item><item><title><![CDATA[ubuntu软件源设计思想]]></title><link>https://blog.youkuaiyun.com/chwit/article/details/163815695</link><guid>https://blog.youkuaiyun.com/chwit/article/details/163815695</guid><author>chwit</author><pubDate>Mon, 17 Aug 2026 10:26:58 +0800</pubDate><description><![CDATA[Ubuntu 源的设计哲学可以概括成一句："用分层（component/pocket/priority）+ 冻结基线 + 签名信任链 + 声明式元数据 + 受约束的生命周期钩子，把一个海量、可变、多方贡献的包生态，治理成一个可预测、可审计、不破坏系统、可分阶段演进的稳定系统。Pocket（按变更目的 + 成熟度）：release（冻结版本）/ -security（安全补丁）/ -updates（bug 修复）/ -proposed（测试中）/ -backports（新版本回传）。]]></description><category></category></item><item><title><![CDATA[DRIVE AGX启动流程]]></title><link>https://blog.youkuaiyun.com/chwit/article/details/163731266</link><guid>https://blog.youkuaiyun.com/chwit/article/details/163731266</guid><author>chwit</author><pubDate>Thu, 13 Aug 2026 18:02:29 +0800</pubDate><description><![CDATA[NVIDIA SOC 支持安全启动，并且会验证直至要加载的内核/根文件系统镜像在内的所有代码的完整性和真实性。这采用两阶段安全启动签名机制实现，其中 SOC 引导加载程序由 NVIDIA 和原始设备制造商共同签名，而 CPU 引导加载程序和引导配置表则由原始设备制造商签名。相反，BPMP 和 PSC 处理器会先上电，并负责初始化系统硬件和启动 CPU。从 Orin 系列开始，PSC（安全协处理器）为安全启动提供加密硬件加速和密钥管理功能。2：CPU 启动——启动 UEFI 与操作系统内核。]]></description><category></category></item><item><title><![CDATA[qemu对ofd锁的支持]]></title><link>https://blog.youkuaiyun.com/chwit/article/details/163110013</link><guid>https://blog.youkuaiyun.com/chwit/article/details/163110013</guid><author>chwit</author><pubDate>Wed, 22 Jul 2026 17:51:33 +0800</pubDate><description><![CDATA[这是一个issue驱动的问题探究；涉及ubuntu20、24，systemd、qemu、docker、buildx等系统组件。]]></description><category></category></item><item><title><![CDATA[智驾系统——docker部署还是软件包部署]]></title><link>https://blog.youkuaiyun.com/chwit/article/details/162972650</link><guid>https://blog.youkuaiyun.com/chwit/article/details/162972650</guid><author>chwit</author><pubDate>Fri, 17 Jul 2026 16:21:23 +0800</pubDate><description><![CDATA[到后期要做量产+合规，开发者超过200人，车辆超过200台，docker就不如软件包部署了。docker好用但是也没有那么好用，不能无脑docker，需要视情况而定。总结下来，前期开发验证阶段，使用docker是非常方便且高效的。话又说回来了，软件包部署是很重的，需要的infra开发更多。]]></description><category></category></item><item><title><![CDATA[deb包依赖关系拓扑图生成]]></title><link>https://blog.youkuaiyun.com/chwit/article/details/162868049</link><guid>https://blog.youkuaiyun.com/chwit/article/details/162868049</guid><author>chwit</author><pubDate>Tue, 14 Jul 2026 12:07:32 +0800</pubDate><description><![CDATA[也可以单独查找反向依赖：debtree -R --max-depth=3 --no-recommends libqt5core5t64 | dot -Granksep=3 -Gsplines=polyline -Tsvg -o qt5_chain.svg。比如我这里要查看的是为什么在ubuntu24 noble下面 ros2-jazzy还依赖的是qt5，可以生成svg矢量图，如果用win wsl，可以直接用浏览器打开，方便查看和搜索。一定要加max-depth深度，不然会无限递归，耗时非常长。]]></description><category></category></item><item><title><![CDATA[如何区分一个ssh ubuntu环境是虚拟机、物理机、docker]]></title><link>https://blog.youkuaiyun.com/chwit/article/details/162758080</link><guid>https://blog.youkuaiyun.com/chwit/article/details/162758080</guid><author>chwit</author><pubDate>Fri, 10 Jul 2026 23:01:39 +0800</pubDate><description><![CDATA[刚入职的时候，大家都会有很多ssh直接登录的环境，刚开始不知道这个是什么一个环境，本文简单介绍一下，让大家能快速熟悉ssh登录的是一个什么环境。systemd-detect-virt 是一个好工具，可以在很多自动化测试工具中使用，自动区分执行环境。命令行输入：cat /proc/1/cgroup，显示/docker 或者 /kubepods。命令行输入：systemd-detect-virt  显示 docker。systemd-detect-virt 显示 none。]]></description><category></category></item><item><title><![CDATA[openvino use-after-scope问题debug记录]]></title><link>https://blog.youkuaiyun.com/chwit/article/details/149808592</link><guid>https://blog.youkuaiyun.com/chwit/article/details/149808592</guid><author>chwit</author><pubDate>Thu, 31 Jul 2025 19:03:46 +0800</pubDate><description><![CDATA[我们从ubuntu18升级到ubuntu22，发现有一个模型会卡住，在gtest、onenode planner、orion 等不同的环境都会复现，这是一个cpu模型，在做模型推理的时候卡住，用gdb attach到进程中可以看到是这个堆栈，但是这个是没有符号表的。对应到 is_unsupported_parallel_work_amount 这个变量会把这个匿名类存储在栈上，栈上的变量有个特点，在作用域结束的时候会被销毁，也就是说在if语句结束的时候，会把调用这个匿名类的析构函数，同时释放内存。]]></description><category></category></item><item><title><![CDATA[从optional头文件缺失看std库升级]]></title><link>https://blog.youkuaiyun.com/chwit/article/details/146075229</link><guid>https://blog.youkuaiyun.com/chwit/article/details/146075229</guid><author>chwit</author><pubDate>Thu, 06 Mar 2025 17:21:30 +0800</pubDate><description><![CDATA[虽然我们工程已经切换成clang编译了，但是std库还是用的GNU的，这是因为ubuntu系统还是使用GCC进行编译的，而且暂时没有切换到clang的计划。随着标准库更新，std库优化了头文件之间的依赖关系，减少不必要的间接包含，以提高编译速度和代码清晰度。在ubuntu18，stdc++的版本为8.3.0，到ubuntu22，已经升级至12.3.0了。由于std基础库带来的差异挺麻烦的，一套代码需要兼容两个不同的std库。相同的代码，在ubuntu18不会报错，到ubuntu22就报错了。]]></description><category></category></item><item><title><![CDATA[clang支持的运行时问题检测工具（各种Sanitizers）]]></title><link>https://blog.youkuaiyun.com/chwit/article/details/145589054</link><guid>https://blog.youkuaiyun.com/chwit/article/details/145589054</guid><author>chwit</author><pubDate>Wed, 12 Feb 2025 11:50:46 +0800</pubDate><description><![CDATA[这些。]]></description><category></category></item><item><title><![CDATA[breakpad未生成minidump问题]]></title><link>https://blog.youkuaiyun.com/chwit/article/details/144607678</link><guid>https://blog.youkuaiyun.com/chwit/article/details/144607678</guid><author>chwit</author><pubDate>Fri, 20 Dec 2024 12:02:35 +0800</pubDate><description><![CDATA[breakpad生成minidump问题]]></description><category></category></item><item><title><![CDATA[【QT6】【QChart】绘图时曲线显示不全]]></title><link>https://blog.youkuaiyun.com/chwit/article/details/131154612</link><guid>https://blog.youkuaiyun.com/chwit/article/details/131154612</guid><author>chwit</author><pubDate>Sun, 13 Aug 2023 18:31:35 +0800</pubDate><description><![CDATA[在用QChart来绘制自动化曲线QSplineSeries时，总是发现曲线显示不全。]]></description><category></category></item><item><title><![CDATA[Android native C++快速打印复杂结构体内容]]></title><link>https://blog.youkuaiyun.com/chwit/article/details/129310383</link><guid>https://blog.youkuaiyun.com/chwit/article/details/129310383</guid><author>chwit</author><pubDate>Wed, 22 Mar 2023 22:42:56 +0800</pubDate><description><![CDATA[C/C++快速打印复杂结构体内容，如何在android c++中、或者ndk c++程序中快速打印复杂结构体内容。]]></description><category></category></item><item><title><![CDATA[设备树解析 & i2c设备模型]]></title><link>https://blog.youkuaiyun.com/chwit/article/details/129616775</link><guid>https://blog.youkuaiyun.com/chwit/article/details/129616775</guid><author>chwit</author><pubDate>Fri, 17 Mar 2023 14:46:34 +0800</pubDate><description><![CDATA[1、基础概念
1、总线
2、手机启动流程
1、MTK启动流程
2、高通启动流程的差别
3、设备树解析
1、设备树相关
2、设备树解析
4、 i2c 设备初始化流程]]></description><category></category></item><item><title><![CDATA[NDK编译log分析]]></title><link>https://blog.youkuaiyun.com/chwit/article/details/129532082</link><guid>https://blog.youkuaiyun.com/chwit/article/details/129532082</guid><author>chwit</author><pubDate>Tue, 14 Mar 2023 17:01:02 +0800</pubDate><description><![CDATA[确认编译器、platform、abis、查找两个mk，等。2：开始解析Application.mk，再解析Android.mk；加上V=1，可以把clang++编译每个文件的编译命令打印出来。3：根据mk，确定依赖，以及编译module；使用 clang++  -o进行指定依赖so。4：执行clean，删除编译历史文件；使用 llvm-strip工具。8：处理shared_lib。7：确认是否需要strip。5：开始编译src文件。]]></description><category></category></item><item><title><![CDATA[Linux内核、驱动笔记]]></title><link>https://blog.youkuaiyun.com/chwit/article/details/129404410</link><guid>https://blog.youkuaiyun.com/chwit/article/details/129404410</guid><author>chwit</author><pubDate>Wed, 08 Mar 2023 15:24:08 +0800</pubDate><description><![CDATA[Linux内核设计与实现》单内核与微内核：有助于理解内核的发展；1980年之前，所有内核都设计成单内核，单内核意味着一个单独的大过程，所有内核服务、模块运行在同一地址空间；优点：简单、高效、性能高缺点：安全、隐私问题、稳定性。所有事物的发展都先野蛮生长，由于没有人为的规则约束，事物的发展首先是以效率为优先的，等事物发展的足够影响到人了，人类就会加以一定的规则约束，这样就需要考虑很多规则、安全、隐私等问题。做一个行业很重要的是要理解当前行业处于事物发展的什么阶段。]]></description><category></category></item><item><title><![CDATA[安卓整体架构]]></title><link>https://blog.youkuaiyun.com/chwit/article/details/129400182</link><guid>https://blog.youkuaiyun.com/chwit/article/details/129400182</guid><author>chwit</author><pubDate>Wed, 08 Mar 2023 15:16:16 +0800</pubDate><description><![CDATA[软件堆栈
分区结构
启动模式
Treble]]></description><category></category></item><item><title><![CDATA[ELF文件中的符号]]></title><link>https://blog.youkuaiyun.com/chwit/article/details/129358426</link><guid>https://blog.youkuaiyun.com/chwit/article/details/129358426</guid><author>chwit</author><pubDate>Tue, 07 Mar 2023 17:04:13 +0800</pubDate><description><![CDATA[ELF文件中的符号、符号修饰、强引用弱引用问题
]]></description><category></category></item><item><title><![CDATA[使用readelf、objdump分析一个elf文件完整结构]]></title><link>https://blog.youkuaiyun.com/chwit/article/details/129214001</link><guid>https://blog.youkuaiyun.com/chwit/article/details/129214001</guid><author>chwit</author><pubDate>Wed, 01 Mar 2023 20:43:42 +0800</pubDate><description><![CDATA[ELF文件类型、readelf的使用]]></description><category></category></item><item><title><![CDATA[跨平台结构体字节对齐问题]]></title><link>https://blog.youkuaiyun.com/chwit/article/details/129277467</link><guid>https://blog.youkuaiyun.com/chwit/article/details/129277467</guid><author>chwit</author><pubDate>Wed, 01 Mar 2023 11:48:54 +0800</pubDate><description><![CDATA[__attribute__((packed)) 与 #pragma pack()的使用。]]></description><category></category></item></channel></rss>