ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

快速跑通 Thorium 源码构建完整指南

快速跑通 Thorium 源码构建完整指南 快速跑通 Thorium 源码构建完整指南【免费下载链接】thoriumChromium fork named after radioactive element No. 90. Source code and Linux releases. Windows/MacOS/ARM builds served in different repos, links are towards the top of the README.md.项目地址: https://gitcode.com/GitHub_Trending/th/thoriumThorium 是一个以元素周期表 90 号元素钍命名的 Chromium 分支,主打编译层优化拉满:ThinLTO PGO 默认开启,并按 SSE3、SSE4、AVX2、AVX512 指令集出不同构建包。这个仓库负责 Linux 版本:源码补丁、GN 参数、构建脚本全在这里,Windows 和 macOS 构建在别的仓库维护。下面按「选版本 → 备源码 → 打补丁 → 调参数 → 编译」的顺序,带你从零跑通一次 Thorium 构建。⚡ Thorium 分支与标准 Chromium 构建对比Thorium 的做法很直接:基线锁定最新 LTS 版 Chromium,行为向 Google Chrome 对齐,然后在编译层和功能层各做一件事。编译层默认打开 ThinLTO、PGO 和 V8 全套优化(v8_enable_builtins_optimization、v8_enable_maglev都在 args.gn 里),并按指令集出四个版本;功能层恢复上游默认受限的能力——JPEG XL、FTP、含 HEVC 在内的全编解码器——同时默认打开 Do Not Track 和 GPC 隐私信号,禁用 FLOC 与 Privacy Sandbox。对比项标准 Chromium 发布构建Thorium 分支构建编译优化常规 release 参数ThinLTO PGO 官方档案 V8 全套优化指令集版本单一通用包SSE3 / SSE4 / AVX2 / AVX512 分包,2016 年后的 x86 基本能跑 AVX2媒体解码HEVC 部分平台缺失全编解码器 HEVC 硬件解码 VAAPI,内置 Widevine隐私默认值跟踪类功能默认开Do Not Track、GPC 默认开,禁 FLOC 与 Privacy Sandbox图片与协议JPEG XL 默认关、FTP 已移除JPEG XL 恢复并默认开,FTP 恢复基线版本滚动主干锁定最新 LTS 修订,当前 tag 为 138.0.7204.306这张截图是构建出来的 Thorium 默认样子:2024 新 UI 直接启用,书签栏、完整地址栏 URL 都在,右侧菜单里能看到 About Thorium 入口。 按指令集和安装方式选构建路径挑路径前先跑一次指令集检测,后面所有决策都靠它的输出:./check_simd.sh脚本读 /proc/cpuinfo,依次报告 64 位、SSE2 到 SSE4.2、AES、AVX、AVX2 的检测结果,并直接告诉你这台机器能不能构建、运行 Thorium。CPU 不支持某套指令集时,对应版本启动即崩,所以先检测、后选包。预编译 release 包(默认路线):适合只想装一个快浏览器的你。按检测结果挑 release 里的 AVX2、SSE4 或 SSE3 包;Atom、Celeron 这类低端型号可能连 AVX 都没有,别硬上。本仓库源码构建:适合要最新补丁、自定义 flag 或自己指定 PGO 档案的人,本文主线,全程在这一个仓库内完成。其他平台:Windows、macOS(M1/X64)、Android、树莓派的构建在各自独立仓库维护,这个仓库只面向 Linux x64,树莓派相关参数可以看 arm/raspi/ 目录,但别指望从这里交叉编译出来。 Linux 源码构建五步走构建脚本假定三样东西都在$HOME下:depot_tools、thorium(本仓库)、chromium。硬件门槛是 x64 机器、16GB 内存(8GB 是下限)、75GB 空闲磁盘;主力开发环境是 Ubuntu 22.04,Debian 10/11/12 和 Ubuntu 20.04 也能跑。检出 Chromium 源码树cd ~ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git export PATH$HOME/depot_tools:$PATH git clone https://gitcode.com/GitHub_Trending/th/thorium mkdir ~/chromium cd ~/chromium fetch --no-history --nohooks chromium这步把三棵源码树备齐:depot_tools 提供 fetch、gclient 等官方工具,thorium 仓库存补丁和 GN 参数,chromium 才是真正参与编译的主体。--no-history让 fetch 变成浅克隆,百兆带宽下省下大半天;--nohooks把 hook 推迟到装完依赖再跑。注意 PATH 里别用~,要用$HOME或绝对路径,否则 gclient runhooks 会直接报错。安装依赖并执行 hookscd ~/chromium/src ./build/install-build-deps.sh --no-nacl gclient runhooksinstall-build-deps.sh 一次性装齐 apt 依赖,--no-nacl跳过已移除的 NaCl 包。装完依赖才能跑 gclient runhooks,它会下载 LLVM、Debian sysroot 等二进制,顺序不能颠倒。同步版本并写入补丁cd ~/thorium ./trunk.sh ./version.sh ./setup.sh --avx2trunk.sh 把 chromium 树 rebase 到最新 tip 并拉取全部版本标签;version.sh 检出 Thorium 锁定的 tag 并顺带下载官方 PGO 档案,落在chrome/build/pgo_profiles/下,文件名形如chrome-linux-*.profdata,下一步要用。setup.sh 把 src/ 下的修改和 other/ 里的补丁(HEVC、FTP、GPC、各类崩溃修复)写进 chromium 树,再按 flag 复制对应指令集的构建文件和 Linux 启动 wrapper;SSE4 换--sse4,SSE3 换--sse3,默认目标目录可用CR_DIR环境变量覆盖。配置 GN 参数cd ~/chromium/src gn args out/thoriumgn args 打开编辑器,把 thorium 仓库根目录的 args.gn 整份粘进去。必须手改的只有一处:最后一行pgo_data_path指向作者机器的默认路径,改成 version.sh 下载到那个*.profdata的真实位置。漏掉这步,PGO 优化直接落空,启动和首屏渲染都会掉速。其余参数逐项解释见 docs/ABOUT_GN_ARGS.md。并行编译并验证cd ~/thorium ./build.sh 8 ~/chromium/src/out/thorium/thorium ./package.sh 8build.sh 一次构建四个目标:thorium 主体、chrome_sandbox、chromedriver 和 thorium_shell(content_shell 的封装)。8是并行任务数,按核心数填。二进制能跑起来后,package.sh 产出 .deb 和 .rpm 安装包;想回收磁盘空间,仓库根的 clean.sh 可以清掉构建产物。⚙️ 三个最值得动的 args.gn 参数编译只是及格线,args.gn 里这三个参数决定 Thorium 到底快多少。chrome_pgo_phase 2(配 pgo_data_path):改什么——确认 phase 为 2,且路径指向真实存在的 .profdata。为什么——编译器基于真实运行数据对热点路径做专项优化,官方发布包和通用构建的差距主要就来自这里。预期收益——启动更快、首屏渲染更顺。风险——路径指向不存在的文件或版本过期的档案,构建直接报 undefined symbol,重跑 version.sh 更新档案即可。use_avx2 true:改什么——把 args.gn 里默认关闭的这项打开,配合setup.sh --avx2装的 wrapper-avx2 启动文件。为什么——AVX2 的 256 位向量让单条指令处理的数据量翻倍。预期收益——解码和 JS 重负载页面明显提速。风险——CPU 不支持 AVX2 时浏览器直接起不来,改之前必须先用 check_simd.sh 确认过。use_vaapi true:改什么——保持默认开启,并确认系统装了显卡对应的 libva 驱动。为什么——视频解码从 CPU 挪到 GPU。预期收益——长视频播放时 CPU 占用和风扇噪音一起降下来。注意——Nvidia 用户还可以走打过补丁的 VDPAU 路径,两者留一个就好。这张截图是 Thorium 的设置页,版本信息证明补丁打在 Chromium LTS 稳定基线上,而非滚动主干。不用编译也有一个开关:chrome://flags/#thorium-2024可以切回 M124 之前的经典界面,同一份构建里两套 UI 共存,试完再决定留哪套。两套 UI 在同一份构建里共存,这张截图就是 thorium-2024 开关切回的经典 Chrome 界面,布局紧凑、书签栏独立成行。 构建与运行高频报错速查报错表现背后原因解法fetch 慢到像挂了拉了完整仓库历史重新 fetch 时加--no-historygclient runhooks 直接报错PATH 里用了~波浪号改成$HOME或绝对路径启动即崩溃、非法指令下了 CPU 不支持的指令集版本跑 check_simd.sh 重查,换 SSE3 或 SSE4 包构建报 undefined symbolPGO 档案路径没配对或版本过期重跑 version.sh,更新 pgo_data_path视频解码吃满 CPU缺 VAAPI 驱动安装对应显卡的 libva 驱动 延伸文档与动手清单Linux 构建全流程与疑难杂症:docs/BUILDING.md指令集科普与选包对照:docs/ABOUT_RELEASES.md全部补丁与新增 flag 清单:docs/PATCHES.md调试构建与 Debug Shell:infra/DEBUG/DEBUGGING.mdpak 打包解包工具源码:pak_src/在自己机器上跑一遍 check_simd.sh,确认当前用的构建版本没选错建一个 out/thorium-debug 目录,用同一份源码对比 debug 与 release 的行为差异打开 chrome://flags/#thorium-2024 试经典 UI,再决定留哪套用 pak_src 里的 pak 工具解包一个 .pak 文件,看看 Chromium 资源怎么组织指令集选对、PGO 指对,Thorium 剩下的工作只有一个:陪你把每个网页跑得再快一点。【免费下载链接】thoriumChromium fork named after radioactive element No. 90. Source code and Linux releases. Windows/MacOS/ARM builds served in different repos, links are towards the top of the README.md.项目地址: https://gitcode.com/GitHub_Trending/th/thorium创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表