rk1126尝试运行chromium和webkit

本文约 1200 字,阅读需 3 分钟。

rk1126上跑着一个apt都没有的linux,由于一些研究需要,想让其运行下chromium和webkit,但最终失败了,简单记录下其过程:

大致有3个思路:

  1. 安装apt,再配置安装源,用apt安装
  2. 使用合适的docker虚拟机安装,再打包到时rk上运行
  3. 构建一个完整的Linux镜像,重新安装系统

选择的是,1和2的本质其实差不多,但这个设备的硬盘有限,估计遭不住apt,2如果运用得当,应该很快的。

坑1:周一回来,发现所有的arm docker container都挂了,如下:

exec /bin/bash: no such file or directory

这个其实是模拟器配置失效了,如下:

➜  ~ docker run --rm --privileged multiarch/qemu-user-static --reset -p yes 
Setting /usr/bin/qemu-alpha-static as binfmt interpreter for alpha
Setting /usr/bin/qemu-arm-static as binfmt interpreter for arm
Setting /usr/bin/qemu-mips-static as binfmt interpreter for mips
......

如此就可以了

➜  ~ docker run -it --privileged  --platform linux/arm/v7  --name o2_simulator arm32v7/debian:10 

但apt update时遇到问题:

Err:6 http://deb.debian.org/debian buster-updates Release 
  404  Not Found [IP: 151.101.110.132 80]

原因是debian10太老了,已经不维护了。但AI给了提示,更换源:

sed -i 's|deb.debian.org|archive.debian.org|g' /etc/apt/sources.list

其实一开始用的是debian12,可以安装chromium和cog(wpe-webkit),使用AI提供的sh文件,借助ldd,把关联so打包并push到设备,发现大量错误:

 sh ./start.sh 
./chromium: /lib/ld-linux-armhf.so.3: version `GLIBC_2.35' not found (required by ./lib/libc.so.6)

其原因是,rk1126的系统用的是GLIBC2.28(ldd --version),刚好匹配debian10,但debian12的是GLIBC2.34,所以就行不通了。如果用debian10的镜像,也有不少问题:

  1. debian10安装的chromium是90,启动后--enable-features=UseOzonePlatform --ozone-platform=wayland的设置一直不失效,一直在找X11 Display,我都怀疑这个构建的包是不是写死了相关配置,从相关代码来看绝不应该如此的:
sh ./start.sh 
Fontconfig warning: "/usr/share/fontconfig/conf.avail/05-reset-dirs-sample.conf", line 6: unknown element "reset-dirs"
[4028:4028:0915/114915.243525:ERROR:browser_main_loop.cc(1386)] Unable to open X display.

相关代码:

  1. 按理可以在weston基础上加个Xwayland来兼容,但实际从debiao10打包下来又有其他失败
  2. debian10上没有cog和wpe-webkit只有gtk-webkit(安装后其实会同步安装MiniBrowser,在/usr/lib/arm-linux-gnueabihf/webkit2gtk-4.0目录下)
  3. webkit-gtk在rk1126+weston下也是无法运行的,很多gtk相关的报错

基于上面的发现,之前我想跑Linux平台的Webkit还是感觉比较麻烦的,都是通过官方(https://webkit.org/downloads/)的方式,即

# Epiphany Technology Preview + flatpak
flatpak run -v org.gnome.Epiphany.Devel

运行,现在可以通过MiniBrowser直接运行了:

/usr/lib/x86_64-linux-gnu/webkitgtk-6.0/MiniBrowser

版本分别是

为什么跑分差这么多?分支的区别?

20250915211737

总阅读量次。