rk1126尝试运行chromium和webkit
rk1126上跑着一个apt都没有的linux,由于一些研究需要,想让其运行下chromium和webkit,但最终失败了,简单记录下其过程:
大致有3个思路:
- 安装apt,再配置安装源,用apt安装
- 使用合适的docker虚拟机安装,再打包到时rk上运行
- 构建一个完整的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的镜像,也有不少问题:
- 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.
相关代码:
- https://source.chromium.org/chromium/chromium/src/+/refs/tags/90.0.4430.29:ui/base/ui_base_features.cc
- https://source.chromium.org/chromium/chromium/src/+/refs/tags/90.0.4430.29:content/browser/browser_main_loop.cc
- 按理可以在weston基础上加个Xwayland来兼容,但实际从debiao10打包下来又有其他失败
- debian10上没有cog和wpe-webkit只有gtk-webkit(安装后其实会同步安装MiniBrowser,在/usr/lib/arm-linux-gnueabihf/webkit2gtk-4.0目录下)
- 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
版本分别是
- WebKitGTK 2.48.3
- Web 49.0-7-gd7aba2a32+
- https://www.whatsmybrowser.org/都是: Safari60….
为什么跑分差这么多?分支的区别?
