Fontconfig 参考资料:Font configuration
Fontconfig 是一个用于向应用程序提供可用的字体 列表,以及字体渲染配置的库。
Fontconfig 的默认字体路径是 /usr/share/fonts/ 和 ~/.local/share/fonts(以及过时的 ~/.fonts/)。Fontconfig 将在这些路径下递归查找字体。
用户配置文件位于 $XDG_CONFIG_HOME/fontconfig/fonts.conf 中(通常是 $HOME/.config/fontconfig/fonts.conf)。全局配置文件位于 /etc/fonts/local.conf。 用户配置优先级高于全局配置。两个文件使用相同的语法。 Fontconfig 配置文件使用 XML 格式,其需要的头部如下:
1 2 3 4 5 6 7 <?xml version="1.0" ?> <!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd" > <fontconfig > </fontconfig >
中文字体显示奇怪 June 4, 2024
本次更新后中文不再是 Noto Sans 字体,变成了更细、发虚的字体(各种意义上太难看了
Arch论坛看了下: 由于近期 noto-fonts-cjk 打包变化,导致默认CJK回落字体不再是 Noto 系列字体。详情
解决方案: 在 ~/.config/fontconfig/ 下 新建一个字体文件(xxx.conf),让 Noto Sans CJK SC 优先使用即可: 参考:修正简体中文显示为异体(日文)字形
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 <?xml version="1.0" ?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd" > <fontconfig > <alias > <family > sans-serif</family > <prefer > <family > Noto Sans CJK SC</family > <family > Noto Sans CJK TC</family > <family > Noto Sans CJK JP</family > </prefer > </alias > <alias > <family > monospace</family > <prefer > <family > Noto Sans Mono CJK SC</family > <family > Noto Sans Mono CJK TC</family > <family > Noto Sans Mono CJK JP</family > </prefer > </alias > </fontconfig >
Waydroid 没有waydroid,我怎么玩碧蓝航线啊(悲
ERROR: Can’t open /dev/binder: No such file or directory December 24, 2024
更新后发现 waydroid 挂了,表现为 waydroid session start 出错:
1 2 [13:02:43] Failed to add presence handler: None [gbinder] ERROR: Can't open /dev/binder: No such file or directory
看看 binder_linux-dkms 貌似也没啥问题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 $ pacman -Qi binder_linux-dkms-git 名字 : binder_linux-dkms-git 版本 : r57.ee4c25f-3 描述 : Android kernel driver fork by @choff in DKMS format, binder only 架构 : any URL : https://github.com/choff/anbox-modules 软件许可 : GPL-2.0-only 组 : 无 提供 : 无 依赖于 : dkms 可选依赖 : 无 依赖它 : 无 被可选依赖 : 无 与它冲突 : binder_linux-dkms anbox-modules-dkms 取代 : binder_linux-dkms 安装后大小 : 279.35 KiB 打包者 : lilac-alarm (on behalf of i7arch) <i7arch@member.fsf.org> 编译日期 : 2024年10月03日 星期四 19时16分59秒 安装日期 : 2024年10月07日 星期一 19时46分44秒 安装原因 : 单独指定安装 安装脚本 : 否 验证者 : SHA-256 校验值 数字签名
去论坛看了下发现上周core/linux已经启用了 binderfs 的MR合并,那可能是冲突了?然而卸载了binder_linux-dkms-git并没有成功启动。
最后根据waydroid文档的建议,尝试重置镜像之后就能正常使用了。
[gbinder] Service manager /dev/anbox-binder has appearedJanuary 18, 2025
今天重装了系统,发现Waydroid是挂的,一直在启动中挂起:
1 2 3 4 $ waydroid session start [11:22:15] Starting waydroid session [gbinder] Service manager /dev/anbox-binder has appeared
日志里只有lxc的地方看上去有点奇怪,但是我看不懂(
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 $ waydroid log (000837) [22:08:19] % mkdir -p /dev/binderfs (000837) [22:08:19] % mount -t binder binder /dev/binderfs (000837) [22:08:19] % ln -s /dev/binderfs/anbox-hwbinder /dev/binderfs/anbox-vndbinder /dev/binderfs/anbox-binder /dev/binderfs/features /dev/binderfs/binder-control /dev/ (000837) [22:08:19] Save config: /var/lib/waydroid/waydroid.cfg (000837) [22:08:19] % modprobe -q ashmem_linux (000837) [22:08:19] % lxc-info --version 6.0.3 (000837) [22:08:19] % mkdir -p /var/lib/waydroid/lxc/waydroid (000837) [22:08:19] % sh -c cat "/usr/lib/waydroid/data/configs/config_base" "/usr/lib/waydroid/data/configs/config_3" "/usr/lib/waydroid/data/configs/config_4" > "/var/lib/waydroid/lxc/waydroid/config" (000837) [22:08:19] % sed -i s/LXCARCH/x86_64/ /var/lib/waydroid/lxc/waydroid/config (000837) [22:08:19] % cp -fpr /usr/lib/waydroid/data/configs/waydroid.seccomp /var/lib/waydroid/lxc/waydroid/waydroid.seccomp (000837) [22:08:19] % systemctl is-active -q apparmor (000837) [22:08:19] % mv /var/lib/waydroid/config_nodes /var/lib/waydroid/lxc/waydroid (000592) [22:08:19] % lxc-info -P /var/lib/waydroid/lxc -n waydroid -sH STOPPED (000592) [22:08:19] % modprobe -q ashmem_linux (000592) [22:08:19] % chmod 666 -R /dev/anbox-binder (000592) [22:08:19] % chmod 666 -R /dev/anbox-vndbinder (000592) [22:08:19] % chmod 666 -R /dev/anbox-hwbinder (000592) [22:09:15] % /usr/lib/waydroid/data/scripts/waydroid-net.sh start vnic is waydroid0 (000592) [22:09:15] % systemctl is-active -q nfcd (000592) [22:09:15] % chmod 777 -R /dev/dri (000592) [22:09:15] % chmod 777 -R /dev/fb0 (000592) [22:09:15] % chmod 777 -R /dev/video0 (000592) [22:09:15] % chmod 777 -R /dev/video1 (000592) [22:09:15] % mv /var/lib/waydroid/config_session /var/lib/waydroid/lxc/waydroid (000592) [22:09:15] % mount -o ro /usr/share/waydroid-extra/images/system.img /var/lib/waydroid/rootfs (000592) [22:09:15] % mkdir -p /var/lib/waydroid/overlay_work/system (000592) [22:09:15] % mount -t overlay -o ro,lowerdir=/var/lib/waydroid/overlay:/var/lib/waydroid/rootfs,upperdir=/var/lib/waydroid/overlay_rw/system,workdir=/var/lib/waydroid/overlay_work/system,xino=off overlay /var/lib/waydroid/rootfs (000592) [22:09:15] % mount -o ro /usr/share/waydroid-extra/images/vendor.img /var/lib/waydroid/rootfs/vendor (000592) [22:09:15] % mkdir -p /var/lib/waydroid/overlay_work/vendor (000592) [22:09:15] % mount -t overlay -o ro,lowerdir=/var/lib/waydroid/overlay/vendor:/var/lib/waydroid/rootfs/vendor,upperdir=/var/lib/waydroid/overlay_rw/vendor,workdir=/var/lib/waydroid/overlay_work/vendor,xino=off overlay /var/lib/waydroid/rootfs/vendor (000592) [22:09:15] % mount -o bind /var/lib/waydroid/waydroid.prop /var/lib/waydroid/rootfs/vendor/waydroid.prop (000592) [22:09:15] Save config: /var/lib/waydroid/waydroid.cfg (000592) [22:09:15] % lxc-start -P /var/lib/waydroid/lxc -F -n waydroid -- /init (000592) [22:09:15] New background process: pid=1129, output=background (000592) [22:09:15] % lxc-info -P /var/lib/waydroid/lxc -n waydroid -sH RUNNING (001076) [22:09:15] Skipping clipboard manager service because of missing pyclip package (001577) [22:09:41] % tail -n 60 -F /var/lib/waydroid/waydroid.log (001577) [22:09:41] *** output passed to waydroid stdout, not to this log ***
排查了很久,根本找不到问题所在。直到我尝试用软解成功启动waydroid。那肯定是显卡的问题。有点纳闷我寻思也是混合模式啊,不应该是优先核显嘛… 而且检查结果也没问题。
1 2 $ glxinfo | grep 'OpenGL renderer' OpenGL renderer string: AMD Radeon 680M (radeonsi, rembrandt, LLVM 19.1.6, DRM 3.59, 6.12.9-arch1-1)
看着waydroid的默认配置,我还是觉得和显卡有关,但是死活找不出原因(
1 2 3 4 5 6 7 8 9 10 11 12 13 /var/lib/waydroid/waydroid_base.prop ------------------------------------ sys.use_memfd=true debug.stagefright.ccodec=0 ro.hardware.gralloc=gbm ro.hardware.egl=mesa ro.hardware.vulkan=radeon ro.hardware.camera=v4l2 ro.opengles.version=196609 waydroid.system_ota=https://ota.waydro.id/system/lineage/waydroid_x86_64/VANILLA.json waydroid.vendor_ota=https://ota.waydro.id/vendor/waydroid_x86_64/MAINLINE.json waydroid.tools_version=1.4.3 ro.vndk.lite=true
直到我看到了一个issues:[gbinder] Service manager /dev/anbox-binder has appeared than hangs
eglinfo看了下,已经确定是同一个问题,内核早加载的时候,优先使用了Nvidia
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 $ eglinfo -B GBM platform: EGL API version: 1.5 EGL vendor string: NVIDIA EGL version string: 1.5 EGL client APIs: OpenGL_ES OpenGL OpenGL core profile vendor: NVIDIA Corporation OpenGL core profile renderer: NVIDIA GeForce RTX 3060 Laptop GPU/PCIe/SSE2 OpenGL core profile version: 4.6.0 NVIDIA 565.77 OpenGL core profile shading language version: 4.60 NVIDIA OpenGL compatibility profile vendor: NVIDIA Corporation OpenGL compatibility profile renderer: NVIDIA GeForce RTX 3060 Laptop GPU/PCIe/SSE2 OpenGL compatibility profile version: 4.6.0 NVIDIA 565.77 OpenGL compatibility profile shading language version: 4.60 NVIDIA OpenGL ES profile vendor: NVIDIA Corporation OpenGL ES profile renderer: NVIDIA GeForce RTX 3060 Laptop GPU/PCIe/SSE2 OpenGL ES profile version: OpenGL ES 3.2 NVIDIA 565.77 OpenGL ES profile shading language version: OpenGL ES GLSL ES 3.20 ...
解决办法是,在 /etc/mkinitcpio.conf 的HOOK数组上添加回来 kms ,并重做 mkinitcpio ,重启之后,gbm就会优先让AMD工作。最后再重置waydroid镜像就正常工作了
在HOOK数组删 kms 模块的原因 但是当我加上 kms 后,也没在 journalctl -b 找到 nouveau 的东西,估计没啥大问题。
镜像Bug May 20, 2025
今天久违更新了镜像,发现 adb shell wm size 1280x720 后鼠标触摸出错,只能点击部分区域(1280x720大小),应该是把Los20版本的一些东西搞到Los18版本出现的不兼容。
解决方法是回到推出Los20测试镜像前的Los18镜像,即版本时间线为2025-04-13的system和vendor。
关于如何自定义镜像版本:https://docs.waydro.id/faq/using-custom-waydroid-images
屏幕刷新率 February 04, 2025
今天更新后发现核显的刷新率只能以60HZ显示了(习惯了240HZ看60HZ真难受)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 $ wlr-randr eDP-1 "Thermotrex Corporation TL160ADMP11-0 (eDP-1)" Make: Thermotrex Corporation Model: TL160ADMP11-0 Serial: (null) Physical size: 350x220 mm Enabled: yes Modes: 2560x1600 px, 60.000000 Hz (preferred, current) 1920x1200 px, 60.000000 Hz 1920x1080 px, 60.000000 Hz 1600x1200 px, 60.000000 Hz 1680x1050 px, 60.000000 Hz 1280x1024 px, 60.000000 Hz 1440x900 px, 60.000000 Hz 1280x800 px, 60.000000 Hz 1280x720 px, 60.000000 Hz 1024x768 px, 60.000000 Hz 800x600 px, 60.000000 Hz 640x480 px, 60.000000 Hz Position: 0,0 Transform: normal Scale: 1.500000 Adaptive Sync: disabled
1 2 $ uname -aLinux ATRI 6.13.1-arch1-1 #1 SMP PREEMPT_DYNAMIC Sun, 02 Feb 2025 01:02:29 +0000 x86_64 GNU/Linux
切换了一下内核发现又能核显240HZ了,估计是内核的bug。不太懂,摆了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 $ wlr-randr eDP-1 "Thermotrex Corporation TL160ADMP11-0 (eDP-1)" Make: Thermotrex Corporation Model: TL160ADMP11-0 Serial: (null) Physical size: 350x220 mm Enabled: yes Modes: 2560x1600 px, 239.998001 Hz (preferred, current) 2560x1600 px, 59.999001 Hz (preferred) 1920x1200 px, 239.998001 Hz 1920x1080 px, 239.998001 Hz 1600x1200 px, 239.998001 Hz 1680x1050 px, 239.998001 Hz 1280x1024 px, 239.998001 Hz 1440x900 px, 239.998001 Hz 1280x800 px, 239.998001 Hz 1280x720 px, 239.998001 Hz 1024x768 px, 239.998001 Hz 800x600 px, 239.998001 Hz 640x480 px, 239.998001 Hz Position: 0,0 Transform: normal Scale: 1.500000 Adaptive Sync: disabled
1 2 $ uname -aLinux ATRI 6.12.12-1-lts #1 SMP PREEMPT_DYNAMIC Sat, 01 Feb 2025 18:47:29 +0000 x86_64 GNU/Linux
August 20, 2025 七月的某次更新修复了这个问题,具体内容有点忘记了,做个结果补记一下
/home挂载失败 开机显示 貌似是硬盘的问题,但是其他分区能挂载,应该不是整个盘炸了
由开机时的报错提示看应该是 /home 出了问题
1 [FAILED] Failed to start File System Check on /dev/disk/by-uuid/0d34532b-4120-4ad6-8153-e208696ac4f1. See 'systemctl status "systemd-fsck@dev-disk-by\\x2duuid-0d34532b\\x2d4120\\x2d4ad6\\x2d8153\\x2de208696ac4f1.service"' for details. [DEPEND] Dependency failed for /home. [DEPEND] Dependency failed for Local File Systems. [ OK ] Started D-Bus User Bus.
挂载失败?使用 blkid 对比了/etc/fstab上的UUID好像也没问题。
1 2 3 4 5 6 7 8 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS nvme0n1 259:5 0 1.9T 0 disk /mnt/data nvme1n1 259:0 0 931.5G 0 disk ├─nvme1n1p1 259:1 0 1G 0 part /boot ├─nvme1n1p2 259:2 0 32G 0 part [SWAP] ├─nvme1n1p3 259:3 0 128G 0 part / └─nvme1n1p4 259:4 0 770.5G 0 part
使用 mount -a 查看显示分区出现错误,奇怪的是再次使用 lsblk 查看又能挂载了(重试了几次发现是 mount -a 命令导致的,并且使用 mount -a 一次之后再次使用将不显示分区出现错误,检测不出错误了)
1 2 3 4 5 6 7 8 9 10 11 [ 34.606814] EXT4-fs (nvme1n1p4): warning: mounting fs with errors, running e2fsck is recommended NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS nvme1n1 259:0 0 931.5G 0 disk ├─nvme1n1p1 259:1 0 1G 0 part /boot ├─nvme1n1p2 259:2 0 32G 0 part [SWAP] ├─nvme1n1p3 259:3 0 128G 0 part / └─nvme1n1p4 259:4 0 770.5G 0 part /home nvme0n1 259:5 0 1.9T 0 disk /mnt/data
按提示使用e2fsck(Linux 系统中用于检查和修复 ext2、ext3、ext4 文件系统的命令行工具)
由于薛定谔的挂载,还是手动卸载挂载 /home 先
然后使用工具修复
1 2 3 4 ...... /dev/nvme0n1p4: ***** FILE SYSTEM WAS MODIFIED ***** /dev/nvme0n1p4: 309933/50503680 files (1.3% non-contiguous), 17569752/201985024 blocks
重启完事
原因猜测: 这几天我没有进行系统更新啥的,也没有修改系统设置。 唯一让我觉得有关联的事情就是,前段时间宿舍频繁停电,可能埋下了问题。 也有可能是其他原因。