docs(termux): 补 MC 运行时结论(glibc JRE + LWJGL arm64 + softpipe GL)
- §4.2:Temurin 21 JRE 在 glibc 下跑通;AWT/X11 正常;
LWJGL 3.3.3 arm64 + GLFW + GLX/softpipe 端到端探针通过(GL 3.3)
- zink 仍卡 DRI3;softpipe 可用(软件 GL)
- README 同步:MC 标 🟡(栈已验证,启动器接线待做),后续改为接线 + DRI3
This commit is contained in:
1 parent
173a18b842
commit
02ed09ae49
2 files changed
+32
-5
No files matched your search
+7
-5
@@ -15,7 +15,7 @@
|
|||||||
| Java 发现 | ✅ | `JAVA_HOME`/PATH + `$PREFIX/lib/jvm` 扫描 |
|
| Java 发现 | ✅ | `JAVA_HOME`/PATH + `$PREFIX/lib/jvm` 扫描 |
|
||||||
| Java 自动安装 | ✅ | `ull java install 17` 由内置镜像装完 openjdk-17(约 20 s) |
|
| Java 自动安装 | ✅ | `ull java install 17` 由内置镜像装完 openjdk-17(约 20 s) |
|
||||||
| GPU(wgpu) | ✅ | 自编 Mesa 26.2.6 + KGSL;wgpu 选中 Adreno 840(Vulkan/turnip) |
|
| GPU(wgpu) | ✅ | 自编 Mesa 26.2.6 + KGSL;wgpu 选中 Adreno 840(Vulkan/turnip) |
|
||||||
| Minecraft 运行 | 🟡 | glibc JRE(Temurin 21.0.13)可跑,AWT/X11 正常;GLX 待 Mesa 26 GL 构建 |
|
| Minecraft 运行 | 🟡 | 栈已验证:glibc JRE + LWJGL arm64 + GLX/softpipe(GL 3.3);启动器接线待做 |
|
||||||
|
|
||||||
## 快速开始
|
## 快速开始
|
||||||
|
|
||||||
@@ -38,13 +38,15 @@ DISPLAY=:0 ./unlucky-launcher-iced --software-renderer
|
|||||||
`$PREFIX/glibc/{lib,share/vulkan/icd.d}` 后应用会自动启用;Termux 官方源里的
|
`$PREFIX/glibc/{lib,share/vulkan/icd.d}` 后应用会自动启用;Termux 官方源里的
|
||||||
glibc Mesa 太旧(24.2.6 不认识 Adreno 840)。驱动缺失时自动降级 CPU,不会崩。
|
glibc Mesa 太旧(24.2.6 不认识 Adreno 840)。驱动缺失时自动降级 CPU,不会崩。
|
||||||
- **MC**:Android 原生 natives 走不通(LWJGL 没有官方 Android/bionic 产物,且 GLFW 的
|
- **MC**:Android 原生 natives 走不通(LWJGL 没有官方 Android/bionic 产物,且 GLFW 的
|
||||||
窗口模型与 termux-x11 的 X11 不兼容)。可行路线是 glibc JVM(Temurin linux-aarch64 +
|
窗口模型与 termux-x11 的 X11 不兼容)。有效路线是 glibc JVM——Temurin 21 JRE + AWT、
|
||||||
glibc Mesa)——JRE 与 AWT/X11 已验证,GLX 还差一份 Mesa 26 的 GL 构建。
|
LWJGL arm64 + GLFW + GLX/softpipe 已手动跑通(GL 3.3)。启动器接线还差两步:
|
||||||
|
Linux/aarch64 上把 natives 选成 `natives-linux-arm64`,并给 MC 子进程带 glibc JVM 与
|
||||||
|
`MESA_LOADER_DRIVER_OVERRIDE=swrast`。
|
||||||
- Termux 上三条测试失败是环境差异(`/proc/*/children`、长路径脱敏、mtime flaky),
|
- Termux 上三条测试失败是环境差异(`/proc/*/children`、长路径脱敏、mtime flaky),
|
||||||
PC 的 Linux CI 不受影响。
|
PC 的 Linux CI 不受影响。
|
||||||
|
|
||||||
## 后续
|
## 后续
|
||||||
|
|
||||||
1. Mesa 26 GLX(zink/softpipe)构建 → MC 的 LWJGL/GLFW 打通
|
1. MC 运行链接线(natives arm64 映射 + glibc JVM 启动 + softpipe env)
|
||||||
2. MC 运行链接线:启动器在 Termux 上改用 glibc JVM(Temurin),bionic java 留给 UI/CLI
|
2. zink 的 DRI3 问题(硬件 GL;当前 softpipe 可跑但慢)
|
||||||
3. 剪贴板/IME 在 termux-x11 下的行为验证
|
3. 剪贴板/IME 在 termux-x11 下的行为验证
|
||||||
@@ -169,6 +169,31 @@ DISPLAY=:0 .gnu/target/release/unlucky-launcher-iced \
|
|||||||
- 已实测:`ull java install 17` 从 SAU 镜像装完 `openjdk-17`(含 `openjdk-17-x`),
|
- 已实测:`ull java install 17` 从 SAU 镜像装完 `openjdk-17`(含 `openjdk-17-x`),
|
||||||
约 20 秒;`ull java list` 随后列出 `[system]` 的 17。
|
约 20 秒;`ull java list` 随后列出 `[system]` 的 17。
|
||||||
|
|
||||||
|
### 4.2 跑 MC 需要的运行时(已手动验证)
|
||||||
|
|
||||||
|
bionic 的 Termux JVM 加载不了 MC 的 glibc natives,所以 MC 要用 **glibc JVM**:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Temurin 21 JRE(linux-aarch64),用 glibc loader 直接跑
|
||||||
|
curl -L -o jre21.tar.gz \
|
||||||
|
https://api.adoptium.net/v3/binary/latest/21/ga/linux/aarch64/jre/hotspot/normal/eclipse
|
||||||
|
tar -xzf jre21.tar.gz -C "$G/jre"
|
||||||
|
JRE="$G/jre/jdk-21.0.13+9-jre"
|
||||||
|
$PREFIX/glibc/lib/ld-linux-aarch64.so.1 \
|
||||||
|
--library-path "$JRE/lib:$JRE/lib/server:$PREFIX/glibc/lib" "$JRE/bin/java" -version
|
||||||
|
```
|
||||||
|
|
||||||
|
- AWT/X11:`DISPLAY=:0` 下 Swing 窗口正常(`headless=false`、`swing-ok`)。
|
||||||
|
- GL:需要 §5 的 Mesa 26 GL 构建(`-Dgallium-drivers=zink,softpipe -Dglx=dri`)。
|
||||||
|
`zink` 目前卡在 `DRI3 not available`;**softpipe 可用**:
|
||||||
|
`MESA_LOADER_DRIVER_OVERRIDE=swrast LIBGL_ALWAYS_SOFTWARE=1`。
|
||||||
|
- 端到端探针:LWJGL 3.3.3 arm64 natives + GLFW + GLX → `GL_VERSION=3.3 (Compatibility
|
||||||
|
Profile) Mesa 26.2.6`、`GL_RENDERER=softpipe`、`gl-ok`。
|
||||||
|
|
||||||
|
> 启动器侧还没接线:MC 的 library 清单在 Linux/aarch64 上要选
|
||||||
|
> `natives-linux-arm64` 而不是 `natives-linux`(x64),并在启动 MC 的子进程里带上
|
||||||
|
> `MESA_LOADER_DRIVER_OVERRIDE=swrast` 与 glibc JVM 的 `JAVA_HOME`。这两步是后续工作。
|
||||||
|
|
||||||
## 5. GPU(已打通:自编 Mesa 26.2.6 + KGSL)
|
## 5. GPU(已打通:自编 Mesa 26.2.6 + KGSL)
|
||||||
|
|
||||||
termux-x11 的 X 客户端可以走硬件;glibc 侧的问题在**驱动**,不在 loader:
|
termux-x11 的 X 客户端可以走硬件;glibc 侧的问题在**驱动**,不在 loader:
|
||||||
|
|||||||
Reference in new issue
Block a user