본문 바로가기
안드로이드

Termux Native Desktop 환경 설정

by ㅋㅋ잠자 2025. 7. 28.
반응형

안녕하세요. 이때까지 아래의 Termux 환경을 활용하고, GPU가속 관련으로 많은 시도를 하였습니다.

 

한글입력 설정 Proot

https://blog.djjproject.com/829

 

Proot Debian 에서 작업환경 설정

https://blog.djjproject.com/831

 

Proot Debian 환경에서 KGSL Freedreno 지원 Mesa 드라이버 빌드

https://blog.djjproject.com/830

https://blog.djjproject.com/832

https://blog.djjproject.com/833

https://blog.djjproject.com/843

 

Termux Native 환경에서 KGSL Freedreno 지원 Mesa 드라이버 빌드

https://blog.djjproject.com/845

https://blog.djjproject.com/846

 

한글키 인식안되는 문제 오류 수정

https://blog.djjproject.com/829

 

다만 이런 작업을 하면서 느낀것은 내가 이걸 왜 활용해야하는가? 에 대한 의문이였는데요.

제가 Termux 에서 Wine 을 사용해서 게임을 하거나 하는게 아니였기 때문에...

 

단순 작업용이라 firefox 브라우저만 쌩쌩 돌아가면 큰 문제는 없었습니다.

그러다 보니 굳이 IO 오버헤드가 생기는 Proot 환경에 Debian이나 Ubuntu 환경을 설치해야하는가? 이런 의문이 생기더라구요.

 

그리고 Freedreno나 ZINK 드라이버를 사용하여 firefox 브라우저를 사용하면 화면이 꺠지거나 갑자기 강종되는 문제가 있습니다. 이 부분은 아직 해결을 못하고 있어서 결국에는.. 원점으로 회귀하는 결과가 되었는데요.

 

그냥 호환성 문제 없이 Zink 나 Freedreno 보다 성능은 떨어지지만 virgl 을 사용하자. 세팅도 쉽고 웹 브라우저에서 작업하는데에는 큰 문제가 없기 때문입니다.

 

그래서 그 설정 방법을 지금 백업합니다.

백업용 글이라서 따로 자세한 설치글이 아닙니다.

 

1. mesa / virgl / pulseaudio 설치

~ $ pkg install virglrenderer-android mesa pulseaudio

 

2. xfce4 설치

~ $ pkg install firefox xfce4 xfce4-goodies

 

3. termux-x11 nightly 설치

~ $ pkg install tur-repo x11-repo
~ $ pkg install termux-x11

 

4. 시작 스크립트 작성

$PREFIX/usr/bin 경로에 파일을 만듭니다.

$PREFIX 경로가 매우 복잡하기 때문에 매번 타이핑 하고 있기가 어렵습니다.

~ $ echo $PREFIX
/data/data/com.termux/files/usr
~ $ vi $PREFIX/bin/start

#!/data/data/com.termux/files/usr/bin/bash

pkill -9 -ef "termux.x11"

LD_PRELOAD=/system/lib64/libskcodec.so pulseaudio --start --load="module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1" --exit-idle-time=-1

virgl_test_server_android &
sleep 1
XDG_RUNTIME_DIR=${TMPDIR} termux-x11 -ac :0 &
sleep 1
am start --user 0 -n com.termux.x11/com.termux.x11.MainActivity > /dev/null 2>&1 &

export DISPLAY=:0
export PULSE_SERVER=127.0.0.1
export GALLIUM_DRIVER=virpipe
export LIBGL_ALWAYS_SOFTWARE=true
xfce4-session &
~ $ chmod a+x $PREFIX/bin/start

위 스크립트에서 termux-am 을 사용하여 termux-x11을 호출하는 과정이 있습니다. 그래서 아래 패키지를 추가 설치해야합니다.

~$ pkg install termux-am

 

5. 종료 스크립트 작성

termux의 경우 앱 정보에서 강제 종료를 하지 않는 이상, 실제로 종료되지 않는 프로세스들이 생깁니다.

그래서 termux 자체 프로세스를 죽여주면 모두 종료되는것을 확인해서 아래와 같이 스크립트를 작성했습니다.

~ $ vi $PREFIX/bin/stop

#!/data/data/com.termux/files/usr/bin/bash

pkill -9 -ef "com.termux"

exit 0
~ $ chmod a+x $PREFIX/bin/stop

 

6. 환경 정보

1) About XFCE

 

2) Firefox about:support 정보

 

3) glxinfo

~ $ glxinfo -B
name of display: :0.0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Mesa (0x1af4)
    Device: virgl (Adreno (TM) 740) (0x1010)
    Version: 25.1.5
    Accelerated: yes
    Video memory: 0MB
    Unified memory: no
    Preferred profile: compat (0x2)
    Max core profile version: 0.0
    Max compat profile version: 2.1
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.2
OpenGL vendor string: Mesa
OpenGL renderer string: virgl (Adreno (TM) 740)
OpenGL version string: 2.1 Mesa 25.1.5
OpenGL shading language version string: 1.20

OpenGL ES profile version string: OpenGL ES 3.2 Mesa 25.1.5
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

 

4) 스크린샷

반응형

댓글