折腾在ios上用非Webkit的浏览器
我ipad的系统停在ios15养老,但是真的要被Safari恶心坏了,现在登不了谷歌账号,chatgpt也登录不了,github网页一半内容显示不了。还有各种莫名其妙的bug。目前网上也找不到任何non-webkit浏览器的ipa,没办法只有折腾虚拟机了。
碎碎念
之前在UTM上安装的Windows11,上面运行Chrome勉强可以上网,但是开两三个标签页之后就会变卡,而且每次打开浏览器要启动半天Windows,还要点点进去感觉很麻烦。于是打算Linux上不要桌面环境开机启动浏览器。
尝试了许久发现用Chromium超容易爆内存,只要开启了GPU加速,过一会UTM就提示内存不足然后退出了。不开GPU加速也爆。换成Firefox好多了,不会因为内存问题退出了。但是开启Retina模式就会超级卡,不开的话又很糊,手动用xrandr调分辨率和Retina一样,要么很糊要么很卡。用vnc感觉不太顺手。然后尝试了一下xrdp,感觉还行。
直接在UTM中显示
直接在UTM中显示,所有的“虚拟显卡显存”和渲染纹理本质上都是从 iOS 的通用内存(RAM)里硬扣出来的。分辨率一高 = 纹理贴图变大 = UTM 进程内存瞬间暴涨 = iOS 杀进程。所以很难受。
记录一下过程:
先去Alpine官网下最新的alpine-virt-{version}-aarch64.iso ,一路回车安装,到最后选硬盘 vda -> sys -> y,结束安装。
仓库去掉注释,更新软件包。然后
1 | apk add firefox |
vi /etc/inittab,可以用#注释掉tty3 到 tty6
1 | - 8: tty1::respawn:/sbin/getty 38400 tty1 |
mkdir -p ~/.config/openbox && vi ~/.config/openbox/rc.xml
1 |
|
vi ~/.profile && chmod +x ~/.profile
1 |
|
vi ~/.xinitrc && chmod +x ~/.xinitrc
1 |
|
跳过Grub界面 vi /etc/default/grub && grub-mkconfig -o /boot/grub/grub.cfg
1 | GRUB_TIMEOUT=0 |
模拟显卡最后可以选 virtio-ramfb-gl,可以不显示之前加载的输出,直接显示最后的浏览器画面。
用RDP来显示
由于我iPad上装了RD Client(之前按用来连Windows),所以我试了下装xrdp,发现效果更好。
- 先去Alpine官网下最新的alpine-virt-{version}-aarch64.iso ,utm中不启用显示(用串行),一路回车安装,到最后选硬盘 vda -> sys -> y,结束安装。
- 仓库
/etc/apk/repositories去掉注释,更新软件包apk update。 - 安装软件
1
2
3
4
5
6
7
8
9
10
11apk add xinit xorg-server xorgxrdp xrdp mesa-dri-gallium openbox
# 启动服务
service xrdp start
service xrdp-sesman start
# 设置开机自启
rc-update add xrdp default
rc-update add xrdp-sesman default
# 字体
apk add font-dejavu font-noto-cjk
fc-cache -fv - 允许空密码登录
1
2
3
4
5
6cat > /etc/pam.d/xrdp-sesman <<EOF
auth required pam_unix.so nullok
account required pam_unix.so
password required pam_unix.so nullok
session required pam_unix.so
EOF - 去掉openbox的box
mkdir -p ~/.config/openbox && vi ~/.config/openbox/rc.xml1
2
3
4
5
6
7
8
9
10
<openbox_config xmlns="http://openbox.org/3.4/rc"
xmlns:xi="http://www.w3.org/2001/XInclude">
<applications>
<application class="*">
<decor>no</decor>
<maximized>yes</maximized>
</application>
</applications>
</openbox_config> vi ~/.xinitrc1
2
3
4
openbox &
GDK_SCALE=2 firefox- utm共享文件夹,现在utm中选好文件夹,
ln -s /mnt/share ~/Downloads && ln -s /mnt/share ~/下载,然后在~/.xinitrc前加上1
2
3
4
5
6
7
8
9
10
11# 加载驱动 (以防万一)
modprobe 9p
modprobe 9pnet
modprobe 9pnet_virtio
# 创建目录
mkdir -p /mnt/share
# 执行挂载
# 这里的 'share' 是你的标签名,如果报错改成你在 UTM 设置里的名字
mount -t 9p -o trans=virtio,version=9p2000.L,rw share /mnt/share - 折腾声音。在~/.xinitrc前面添加
pulseaudio --start --log-target=syslog --exit-idle-time=-1。先utm中复制份系统出来,在复制的系统中编译好,然后1
2
3apk add pulseaudio pulseaudio-utils
cp /mnt/share/module-xrdp-sink.so /usr/lib/pulseaudio/modules/
cp /mnt/share/module-xrdp-source.so /usr/lib/pulseaudio/modules/
折腾在ios上用非Webkit的浏览器