chromium ARM版本编译记录

这篇具有很好参考价值的文章主要介绍了chromium ARM版本编译记录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求

用的国产电脑,统信麒麟自带的chromium版本都是83版本,lceda要求超过100版本,低版本没法打开编辑器,只能用客户端版本。都是JS,还整这么多事...

刚开始想着一步到位直接在阿里云香港主机上买高配置的竞价虚拟机,结果居然编译不过,老是报有个东西没安装,试了好几次都不行,本来都计划放弃了的。周末闲着没事,想着家里的12核32GB的x86电脑也不弱了,再来搞一次交叉编译试试。

代码获取

必要条件是必须有办法有梯子,没梯子,代码都拉不下来。

编译过程参考的步骤,官网有2个网页。但是都太简单了,还有个stackexchange的问答,里面详细一些。

https://chromium.googlesource.com/chromium/src/+/main/docs/linux/build_instructions.md

https://chromium.googlesource.com/chromium/src/+/main/docs/linux/chromium_arm.md

ubuntu - Compile Chromium Browser for ARM (2019) - Unix & Linux Stack Exchange

基本上参考这3个地址就能正常编译了。

这里主要记录下我编译过程:

先配置git和http代理


/usr/bin/git config --global http.proxy http://xxx:xx
/usr/bin/git config --global https.proxy http://xxx:xx
export http_proxy="http://xxx:xx"
export https_proxy="http://xxx:xx"

然后拉工具配置环境


git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATH="$PATH:$HOME/chromium/depot_tools"

然后拉代码


mkdir ~/chromium && cd ~/chromium
fetch --nohooks --no-history chromium

--no-history能节约好多空间。

配置和编译

然后就开始安装依赖


./build/install-build-deps.sh

这个过程报了个错,看了下是拉谷歌字体的时候用的个Py调用的curl,Py里面没法把环境变量的代理传进去,手工编辑下


vi ./build/linux/install-chromeos-fonts.py
#找到curl的那行,添加
'-x', 'http://192.168.5.221:20171', 
改好后的调用如下
subprocess.check_call(['curl', '-x', 'http://192.168.5.221:20171', '-L', url, '-o', tarball])

再执行install-build-deps.sh就好了。

然后再安装arm交叉编译的环境


./build/install-build-deps.sh --arm
./build/linux/sysroot_scripts/install-sysroot.py --arch=arm
./build/linux/sysroot_scripts/install-sysroot.py --arch=arm64

接下来开始配置并编译


mkdir out
mkdir out/arm
gclient sync && gclient runhooks &&

gn gen out/arm --args='is_official_build=true is_debug=false is_component_build=false symbol_level=0 enable_nacl=false blink_symbol_level=0 use_jumbo_build=true target_cpu="arm64" chrome_pgo_phase=0'
gclient runhooks
autoninja -C out/arm chrome

我机器编译大概一两个小时,看机器配置,编译完成后,网上很多文章说直接运行chrome就行,但我拷贝到飞腾机器上直接运行报错。后面打包了文件夹内容就正常了。


cd out
tar zcf ./arm.tar.gz --exclude=./arm/obj --exclude=./arm/thinlto-cache --exclude=./arm/clang_x64_v8_arm64 --exclude=./arm/clang_x86_v8_arm --exclude=./arm/gen --exclude=./arm/clang_x64 --exclude=./arm/irt_arm --exclude=./arm/nacl_helper ./arm

里面应该还打包了不少不需要的文件,不过体积大的基本被exclude掉了,拷贝到飞腾机器上解压后运行正常。

小坑

但是发现无法播放视频网站的视屏,但播放youtube的是可以的。搜索了下,有人早遇到过了

Chromium浏览器不能播放MP4-腾讯云开发者社区-腾讯云

原因是部分通用的H264 解码codec没编译进去,解决办法就是在生成配置的时候添加2个参数重新编译就好了。


proprietary_codecs = true ffmpeg_branding = “Chrome"

最后编译配置参数为:


gn gen out/arm --args='is_official_build=true is_debug=false is_component_build=false symbol_level=0 enable_nacl=false blink_symbol_level=0 use_jumbo_build=true target_cpu="arm64" chrome_pgo_phase=0 proprietary_codecs=true ffmpeg_branding="Chrome" chrome_pgo_phase=0'

如果想进一步了解,可以查看这些参数的说明,比如:


gn args --list out/arm | grep -C10  ffmpeg_branding

后续如果遇到需要从源码编译什么版本,增加禁用什么功能就可以自己搞定了,不用再看国内浏览器厂商脸色了。

arm chrome,Linux学习记录,chrome,arm,linux

关于硬件解码

在Linux上如何查看有3个方法:

1. chrome://gpu/  这个页面查看下面两行

  • Video Decode: Hardware accelerated
  • Video Encode: Software only. Hardware acceleration disabled

2. 在真实页面播放视频,F12打开开发者工具,右边三个点的按钮点开选媒体,点选正在播放的播放器查看属性。

arm chrome,Linux学习记录,chrome,arm,linux

 3. 用chrome://media-internals/ 查看媒体播放器,选中正在播放的视频,下面会显示属性

arm chrome,Linux学习记录,chrome,arm,linux

至于这个里面显示的解码器是硬件还是软件解码,有空再查询下chromium的相关东西。再确定。

 文章来源地址https://www.toymoban.com/news/detail-666142.html

到了这里,关于chromium ARM版本编译记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Linux 学习记录59(ARM篇)

    Linux 学习记录59(ARM篇)

    I2C总线是PHLIPS公司在八十年代初推出的一种串行半双工同步总线,主要用于连接整体电路 两个芯片之间通讯 SOC(stm32mp157a)------- IIC总线 -------温湿度传感器(si7006) 两个设备之间通讯 PC------ UART总线 ------开发板 I2C总线为两线制,只有两根双向信号线,一根是数据线SDA,另一根是

    2024年02月15日
    浏览(12)
  • Linux 学习记录58(ARM篇)

    Linux 学习记录58(ARM篇)

    PPI:私有外设中断号:(ID:0~15) SPI:共享外设中断号:(ID:16~31) SGI:软件产生的中断号:(ID:0~287) 总结: GIC层一共管理288个中断号(ID:0 ~ 287),16个SGIS,16个PPIS,256个SPIS 例: 功能:使能CPU 功能:设置GICD层中断使能 该寄存器共有8个(0-8),用于使能GICD层的的288个中断号,每个寄存器

    2024年02月15日
    浏览(11)
  • Linux 学习记录54(ARM篇)

    Linux 学习记录54(ARM篇)

    以STM32MP157为例 相关数据手册在文章顶部下载 (1. RCC寄存器 2.5.2 (2. GPIO寄存器 1. 模式配置寄存器 2. 输出模式配置寄存器 3. 速度配置寄存器 4. 上下拉配置寄存器 5. GPIO输出寄存器 (1. RCC寄存器配置 (2. GPIO寄存器配置

    2024年02月16日
    浏览(12)
  • Linux 学习记录52(ARM篇)

    Linux 学习记录52(ARM篇)

    基本的数据处理指令 数据搬移指令 数据移位指令 算数运算指令 位运算指令 比较指令 跳转指令 内存读写指令 程序状态寄存器读写指令 软中断指令 (1. 格式 (2. 指令码类型 (3. 使用示例 能够当作指令的一部分去执行的数据叫做立即数。一个立即数可以通过一个0-255之间的数字

    2024年02月17日
    浏览(7)
  • Linux 学习记录57(ARM篇)

    Linux 学习记录57(ARM篇)

    通过IO口的电平,产生对应的外部中断,通过外部中断的处理函数完成相应功能 GIC distributor (GICD)是通用中断控制器(GIC)中的一个组件,它负责接收来自外部设备的中断信号,并将这些中断信号分发给对应的处理器核心进行处理。GICD在多核处理器系统中起到了协调和管理中断

    2024年02月15日
    浏览(11)
  • Linux 学习记录53(ARM篇)

    Linux 学习记录53(ARM篇)

    在下图界面中可以搜索指定的内存地址 (1. 前索引方式 (2. 后索引方式 (3. 自动索引 结合了前两者的索引方式 (1. 操作码 (2. 格式 (3. 使用示例 (4. 地址增长方式 1 ia后缀 ia后缀:先往指定的寄存器数值为起始地址中存放数据,然后该寄存器数值自动偏移 例:stmia r6!,{r1-r5} 2 ib后缀

    2024年02月16日
    浏览(9)
  • ARM & Linux 基础学习 / 配置交叉编译工具链 / 编译 Linux 应用和驱动 / 编译内核

    编辑整理 by Staok。 本文部分内容摘自 “100ask imx6ull” 开发板的配套资料(如 百问网的《嵌入式Linux应用开发完全手册》,在 百问网 imx6ull pro 开发板 页面 中的《2.1 100ASK_IMX6ULL_PRO:开发板资料》或《2.2 全系列Linux教程:在线视频与配套资料》里面可以下载到),还有参考 菜

    2024年02月04日
    浏览(16)
  • ARM架构Linux操作系统上C语言版本的CycloneDDS中HelloWorld的编译过程(交叉编译工具链)

    ARM架构Linux操作系统上C语言版本的 CycloneDDS 中 HelloWorld 的编译过程与源码编译过程中的 roundtrip 示例编译是一样的,因为实在ARM架构上,所以需要将 idlc_generat e注释掉,自己手动添加源代码和头文件,之后在进行 cmake 和 make 操作

    2024年02月15日
    浏览(10)
  • 交叉编译arm程序,编译arm版本的openssl

    交叉编译arm程序,编译arm版本的openssl

    开局一个错: 显示没有GCC, 于是下载gcc; 下载gcc有问题: 发现是换源的问题,于是换源后继续安装,安装成功: 接着继续出错: 继续安装库sudo apt-get install libncurses5-dev 接着又报错了,我之前去的github上弄的buildroot,现在去官网下载一个。 果然运行成功了: Target options:

    2024年02月04日
    浏览(12)
  • Linux CEF(Chromium Embedded Framework)源码下载编译详细记录

    Linux CEF(Chromium Embedded Framework)源码下载编译详细记录

    Linux CEF(Chromium Embedded Framework)源码下载编译 由于CEF默认的二进制分发包不支持音视频播放,需要自行编译源码,将ffmpeg开关打开才能支持。这里介绍的是Linux平台下的CEF源码下载编译过程。 Windows平台参考: 《Windows 编译CEF源码详细记录》 下载的过程非常艰辛,因为硬性要

    2024年02月14日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包