미니 Termux의 마지막.. Freedreno kgsl로 gpu 가속만 하면 완벽할것같은데..
- 안경22
- 조회 수 901
- 2024.08.21. 02:44
이제 termux 네이티브 xfce로 리눅스 시스템 구축을 어느정도 완료했습니다. 특히 리브레오피스 너무 잘돌아가서 좋고요.
이제 거의 마지막인 gpu 가속만 하면 완벽할것 같은데, 최근에 나온 mesa 24.2.0부터 추가된 freedreno kgsl 솔루션을 여기에서 알게 되었습니다. 그래서 설치하려고
해당 깃허브에서 aarch64로 다운을 받아 압축을 풀어보니 mesa 24.2.0.deb도 있고 dev도 있고, icd-freedreno 등등이 있어 일단 기본(접미사가 아무것도 붙지 않은 버전)으로
termux 네이티브상에서 dpkg -i 명령어를 이용해 설치했는데 그 이후로 xfce 실행이 안되어 아예 termux 전체 삭제하고 재설치했네요 ㅠㅠㅠ
또 현재 상황으로는 termux 네이티브 상에서는 gpu 가속이 llvmpipe로 돌아가고, proot 환경으로 로그인해서 proot 컨테이너 상에서 실행했을 때는 mesa zink로 돌아가네요. 둘다 kgsl 환경에서 실행되도록 만들수 있을까요?
이것들을 뭐 어떻게 하면 설치할 수 있을지 아시는분 있으면 감사하겠습니다.
네. 설치 자체는 잘 되었구요. 또 시작할때 스크립트중 MESA_LOADER_DRIVER_OVERRIDE 변수를 zink에서 kgsl로 변경하고 termux를 다시 시작했는데, 아예 부팅 자체가 안되네요.
아래는 풀 로그입니다 ㅠ 혹시 아시면 도와주시면 감사하겠습니다.
++ 몇번 해서 확인해보니 스크립트를 zink에서 kgsl로 바꾸는 등은 부팅에 영향을 안미치고, mesa를 24.0 버전은 부팅이 잘 되지만, mesa를 24.2로 올리기만 하면 부팅이 안되네요..
termux-x11: no process found
Xwayland: no process found
virgl_test_server_android: no process found
virgl_test_server: no process found
[1] 29437
Starting: Intent { cmp=com.termux.x11/.MainActivity }
Warning: Activity not started, its current task has been brought to the front
bash: syntax error near unexpected token `newline'
[2] 29508
MESA: error: CreateSwapchainKHR failed with VK_ERROR_INITIALIZATION_FAILED
MESA: error: zink: could not create swapchain
MESA: error: kopper: could not create texture from pixmap (4)
I2024-08-22 17:09:22.267010 instance.cpp:1384] Override Enabled Addons: {}
I2024-08-22 17:09:22.267241 instance.cpp:1385] Override Disabled Addons: {}
I2024-08-22 17:09:22.272371 xcbconnection.cpp:189] Connecting to X11 display, display name::1.0.
I2024-08-22 17:09:22.273412 addonmanager.cpp:205] Loaded addon xcb
I2024-08-22 17:09:22.275071 addonmanager.cpp:205] Loaded addon quickphrase
I2024-08-22 17:09:22.275417 addonmanager.cpp:205] Loaded addon imselector
I2024-08-22 17:09:22.281408 addonmanager.cpp:205] Loaded addon keyboard
I2024-08-22 17:09:22.282523 addonmanager.cpp:205] Loaded addon clipboard
I2024-08-22 17:09:22.283664 addonmanager.cpp:205] Loaded addon unicode
I2024-08-22 17:09:22.287022 addonmanager.cpp:205] Loaded addon dbus
I2024-08-22 17:09:22.288101 addonmanager.cpp:205] Loaded addon dbusfrontend
I2024-08-22 17:09:22.309556 addonmanager.cpp:205] Loaded addon fcitx4frontend
I2024-08-22 17:09:22.311464 addonmanager.cpp:205] Loaded addon ibusfrontend
I2024-08-22 17:09:22.312987 addonmanager.cpp:205] Loaded addon xim
I2024-08-22 17:09:22.339610 inputmethodmanager.cpp:209] Found 738 input method(s) in addon keyboard
I2024-08-22 17:09:22.358426 addonmanager.cpp:205] Loaded addon kimpanel
I2024-08-22 17:09:22.359856 addonmanager.cpp:205] Loaded addon virtualkeyboard
I2024-08-22 17:09:22.394015 classicui.cpp:64] Created classicui for x11 display::1.0
I2024-08-22 17:09:22.394117 addonmanager.cpp:205] Loaded addon classicui
I2024-08-22 17:09:22.395058 addonmanager.cpp:205] Loaded addon notifications
I2024-08-22 17:09:22.395131 dbusmodule.cpp:790] Service name change: org.fcitx.Fcitx5 :1.10
I2024-08-22 17:09:22.395171 kimpanel.cpp:116] Kimpanel new owner:
I2024-08-22 17:09:22.395190 virtualkeyboard.cpp:216] VirtualKeyboard new owner:
E2024-08-22 17:09:22.395216 portalsettingmonitor.cpp:115] DBus call error: org.freedesktop.DBus.Error.ServiceUnknown The name org.freedesktop.portal.Desktop was not provided by any .service files
** (xfdesktop:29593): WARNING **: 17:09:22.469: Failed to get system bus: Could not connect: No such file or directory
I2024-08-22 17:09:23.369039 addonmanager.cpp:205] Loaded addon hangul
conky: desktop window (c0003e) is subwindow of root window (511)
conky: window type - normal
conky: drawing to created window (0x1c00002)
conky: drawing to double buffer
conky: Unknown setting 'backend'
Xlib: extension "DPMS" missing on display ":1.0".
Xlib: extension "DPMS" missing on display ":1.0
+ dpms 디스플레이 못찾는문제가 오류인줄 알았는데 아니더군요. 정상 부팅과정에서도 저 로그 뜹니다
#!/data/data/com.termux/files/usr/bin/bash
killall -9 termux-x11 Xwayland pulseaudio virgl_test_server_android virgl_test_server
termux-wake-lock; termux-toast "Starting X11"
XDG_RUNTIME_DIR=${TMPDIR} termux-x11 :1 & > /dev/null 2>&1
sleep 1
am start --user 0 -n com.termux.x11/com.termux.x11.MainActivity
sleep 1
MESA_NO_ERROR=1 MESA_LOADER_DRIVER_OVERRIDE=kgsl TU_DEBUG=noconform MESA_GL_VERSION_OVERRIDE=4.6COMPAT MESA_GLES_VERSION_OVERRIDE=3.2 virgl_test_server_android --angle-gl & > /dev/nul>
env DISPLAY=:1.0 dbus-launch --exit-with-session xfce4-session & > /dev/null 2>&1
입니다
확인해보니 termux native 에서도 문제 없이 잘 되네요...
시작 스크립트는 아래와 같습니다.
#!/bin/sh
rm -rf ${TMPDIR}/*
pkill -9 -ef "pulseaudio"
pkill -9 -ef "termux.x11.Loader"
# Termux-X11 start
am start --user 0 -n com.termux.x11/com.termux.x11.MainActivity
XDG_RUNTIME_DIR=${TMPDIR} termux-x11 :0 -ac -extension MIT-SHM &
sleep 1
pulseaudio --load="module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1" --exit-idle-time=-1 &
sleep 1
export DISPLAY=:0; export PULSE_SERVER=tcp:127.0.0.1:4713; MESA_LOADER_DRIVER_OVERRIDE=kgsl dbus-launch --exit-with-session xfce4-session
스샷 첨부 드립니다.
https://blog.djjproject.com/832
일단 오늘 proot 에서의 환경을 정리했습니다.
님 도음이 컸습니다.
사이트 제제로 닉네임을 삭제합니다.
다만 termux native 와 proot 의 차이는 잘 모르겠어서 proot 만 사용하고 있습니다.