![흡혈귀왕](https://meeco.kr/files/member_extra_info/profile_image/266/266.jpg?20191028102945)
미니 엑시노스2400에 리눅스 대안점을 찾았습니다!
- 흡혈귀왕
- 조회 수 1606
- 2024.03.31. 23:24
해외 어느 능력자분이
Termux 네이티브 XFCE 데스크탑 환경에서
PRoot 리눅스 프로그램을 바로 실행하도록 해주는
솔루션을 만들어주셨더군요!
즉 Termux -> PRoot 리눅스 X11 환경으로 로그인할 필요없이
Termux 네이티브 X11 환경에서 메뉴 원클릭 or 터미널 명령어로
바로 PRoot 리눅스 프로그램 실행이 가능합니다.
이게 장점이
Termux 네이티브 X11 환경이 PRoot X11 환경보다 훨씬 GUI가 쾌적합니다.
(PRoot가 컨테이너 방식이지만 저장소 분리로 오버헤드가 좀 있음)
즉 그 쾌적한 환경에서 리눅스 프로그램이 구동된다는 것이죠..
윈도우의 WSL과 비슷하다고 보면됩니다.
WSL로 리눅스 컨테이너를 설치 후 윈도우에서 리눅스 프로그램을 구동하는 방식인데
요 솔루션도 WSL처럼 안드로이드 X11에서
PRoot로 컨테이너화된 리눅스 프로그램만 구동된다라고 생각하면됩니다.
해당 솔루션의 경우 설치 시 Termux XFCE와 PRoot 데비안 리눅스 컨테이너가 설치되는데
Termux 네이티브 XFCE 데스크탑과 PRoot 데비안 환경 모두 초기 세팅에 virgl이 세팅이 되어있어서
GPU 가속이 기본 적용되어 있습니다.
(zink로 바꾸거나 llvmpipe로 바꾸기 가능)
제가 여기서 테스트를 해봤습니다.
WSI Layer를 적용해서 안드로이드 호스트 Vulkan 드라이버로 GPU 가속이 정말 가능한지!!!
https://github.com/xMeM/vulkan-wsi-layer
그 결과!
좌 : Termux 네이티브 X11 glmark2-es2_Vulkan+mesa zink
우 : PRoot 프로그램 실행 glmark2-es2_virgl
WSI Layer가 안드로이드 Vulkan 드라이버에에서 아주 잘작동합니다!
Termux 네이티브 X11 환경에서
Xclipse 940 안드로이드 호스트 Vulkan 드라이버(with WSI Layer)와 mesa zink와 조합해서
OpenGL4.6 & OpenGL ES3.2 가속을 지원합니다!
virgl 대비 퍼포먼스가 대략 5배 이상 높게 나옵니다.
근데 최신 mesa24.0.5 기준에서 zink가 Xclipse 940랑 호환성이 떨어지는지 Blender가 깨져서 보이더군요.
mesa22.0.5의 zink는 mesa24.0.5의 zink 대비 퍼포먼스가 배로 후달리지만 훨씬 안정적입니다.
Blender가 월활히 돌아가더군요.
어차피 zink는 GUI 프로그램 구동용이니 안정성이 제일 좋다 판단하여 그냥 mesa22.0.5를 사용하였습니다.
glxinfo -B 명령어로 확인해보면
Termux 네이티브 X11 환경에서 확실히
Vulkan(Xclipse 940)+ zink 조합으로 GPU 가속이 적용되어있습니다.
vulkaninfo 명령어 입력하면
안드로이드 Vulkan 드라이버가 불러와집니다!
clvk와 조합해서
Termux 네이티브 X11 환경에서 OpenCL3.0 가속도 됩니다!
WSI Layer 가 제대로 작동되지 봐야겠죵?
zink 없이 순수 Vulkan으로만 돌아가는 vkcube 데모도 아주 잘됩니다!
vkmark 벤치마크도 잘돌아갑니다!
문제는 WSI Layer 호환성 이슈인지
vkmark 한정에서만 아티펙트가 발생하더군요.
퍼포먼스는 Adreno750의 turnip DRI3 패치보다 좀더 잘나옵니다 ㄷㄷㄷㄷ
위에가 Termux 네이티브 XFCE에서 PRoot 리눅스의 리브레오피스를 실행한 상황입니다.
좌측 Blender는 Termux로 포팅된 버전이구요.
Termux 네이티브에선
VSCODE
Blender
GIMP
Inkscape
RawTherapee
Audacity
VLC
등등 유명 범용 프로그램이 이미 포팅되어있어서 찐 네이티브로 구동이 가능합니다!
위 스크린샷이 실제 Termux 네이티브 XFCE 환경에서
Blender
GIMP
Inkscape
RawTherapee
Audacity
VLC
등등을 실행한 스크린샷입니다.
PRoot 리눅스 프로그램을 구동하지 않아도 위에 프로그램들만해도 충분히 컴퓨터스럽죠 ㅎㅎ
엑시노스2400 환경에선 PRoot 리눅스를 사용할게 아니라 요 솔루션을 사용하면 될거같네요
Vulkan 가속도 거의 완벽히되고 Blender 같이 OpenGL3.3 이상을 요구하는 특이한 애들 제외하고
대부분 리눅스 프로그램들은 OpenGL2.1에서 구동 가능해서 일반적인 리눅스 프로그램들은 요 솔루션에서
PRoot 형태로(virgl 가속 적용) 실행하고 Blender나 게임같은건 Termux에서 Vulkan+zink 네이티브로 실행하면 될테니깐요.
Kdenlive만 좀 Termux 전용으로 포팅되면 딱이겠네요.
아직 제가 해결하지 못한 이슈가 2가지 있습니다.
1. Termux XFCE 로케일을 한글로 바꾸는 법
2. 키보드 언어 전환하는 법
Termux XFCE 로케일과 키보드 언어 세팅법은 리눅스랑은 좀 달라서 이부분은 확인중입니다.
PRoot 프로그램은 PRoot에 한글 키보드 프로그램 설치하면 한영키 전환은 가능합니다.
그리고 또 해결되어야 할 이슈로
제가 해결할건 아니고 WSI Layer 개발자분께서 해주셔야할 부분인데
WSI Layer 호환성 개선과 VK_KHR_xlib_surface 지원이 필요합니다.
VK_KHR_xlib_surface 이게 되어야 Wine이랑 호환이 가능합니다.
이래야 제대로 스팀 게임 구동 시 DXVK랑 VKD3D 사용이 가능하죠..ㅡㅡㅋ
PRoot 환경의 box64+wine64보다 Termux 네이티브 환경에서의 box64+wine64가 퍼포먼스 측면에서
훨씬 낫습니다.
요즘 핫한 mobox 에뮬도 (기커완도 안드로이드에서 스팀 게임 테스트하려고 사용했죠)
PRoot 방식이 아닌 아닌 순수 Termux 네이티브 기반이더군요.
아! 그러고보니 Termux 네이티브 환경에선
USB 마운트도 가능하다는데 이쪽도 한번 연구해봐야 겠습니다.
이거 X11 GUI가 너무 쾌적해서
로케일 설정과 키보드 언어 전환 설정, USB 마운트 방법만 찾게되면 탭S9 울트라랑 S24U에도 저걸로 대체해야겠네요.
스냅드래곤 시리즈는
Termux 네이티브 XFCE 환경에선 WSI Layer 적용해서 안드로이드 호스트 Vulkan 드라이버와 mesa zink로 가속하고
PRoot 데비안 컨테이너 환경에선 mesa turnip(with DRI3 패치)와 mesa zink 조합해서 가속하면 딱일듯합니다.
[요약]
- 어느 해외 능력자분이 Termux 네이티브 XFCE 데스크탑 환경에서 PRoot 리눅스 프로그램을 바로 실행해주는 솔루션을 만들어 주심
- 이는 윈도우 위에서 컨테이너 형태로 리눅스 프로그램만 구동하는 WSL과 비슷한 방식임
(안드로이드 X11 환경에서 PRoot 데비안 리눅스의 프로그램만 실행)
- Termux 네이티브 XFCE 데스크탑 환경이 PRoot 리눅스 XFCE 데스크탑 환경보다 훨씬 쾌적
(PRoot가 컨테이너 방식이라 거의 네이티브 성능이지만 저장소가 완벽히 분리되어있는 덕에 약간의 오버헤드가 발생)
- Termux 네이티브 XFCE 데스크탑 환경에선 WSI Layer를 통해 안드로이드 호스트 Vulkan 드라이버 + mesa zink 조합으로 X11 환경에서 GPU 가속이 가능
(스냅드래곤 시리즈는 Termux용으로 빌드된 mesa turnip을 통해서도 Vulkan 가속 가능)
- 터미널에 간단한 명령어나 메뉴에서 아이콘 클릭을 통해 Termux 네이티브 XFCE 데스크탑 환경에서 PRoot 리눅스 프로그램이 구동됨
- PRoot 리눅스에서는 기본적으로 virgl을 통한 GPU 가속이 세팅되어있음
(스냅드래곤일 경우 turnip + zink로 세팅을 바꾸면 좋을것으로 보임)
- 엑시노스처럼 리눅스에서 GPU 가속이 제한되는 SoC는 해당 솔루션으로 리눅스 사용하는게 좋아보임
(Blender나 게임은 Termux 네이티브에서 구동하면 됨)
- Termux 네이티브 XFCE 데스크탑 환경에서 로케일 변경 방법과 키보드 언어 전환 방법은 찾는 중
(실행된 리눅스 프로그램에선 한영키 전환 가능)
- WSI Layer 호환성 개선되고 VK_KHR_xlib_surface 만 지원되면 대부분 SoC는 걍 요 솔루션쓰면 될테고 box64+wine64 조합으로 윈도우 게임도 원활히 구동 가능할것으로 전망
![흡혈귀왕](https://meeco.kr/files/member_extra_info/profile_image/266/266.jpg?20191028102945)
mobox랑 같은 방식이군요? Termux로 포팅되는게 훨씬빠르군요 좋은 정보 감사드립니다