termux-x11 gui 설치
termux 사용시 필요한앱
termux
https://f-droid.org/en/packages/com.termux/
termux-x11
https://github.com/termux/termux-x11/actions/workflows/debug_build.yml
termux-api
https://f-droid.org/ko/packages/com.termux.api/
termux-widget
https://github.com/termux/termux-widget/actions/workflows/debug_build.yml
위 4가지 앱을 먼저 설치합니다
Termux 스토리지 접근허용
termux앱을 실행하고 termux-setup-storage 입력합니다 팝업창이 나오면 허용을 눌러줍니다
Termux 업데이트
pkg update -y && pkg upgrade -y
PC에서 작업하는것이 편리합니다 ssh포트는 port 8022입니다
pkg install -y openssh passwd sshd ifconfig
Termux에서 필요한 pkg를 설치합니다:
pkg install -y xwayland pkg install -y x11-repo pkg update -y pkg install -y pulseaudio virglrenderer-android proot-distro
termux-x11.deb설치
termux-x11.deb는 https://github.com/termux/termux-x11/actions 에서 다운받습니다
dpkg -i ~/storage/downloads/[다운로드위치]*.deb
sed '/allow-external-apps/s/^# //' -i ~/.termux/termux.properties termux-reload-settings
GPU가속을 위한 서버를 실행합니다:
virgl_test_server_android &
Ubuntu 접속 명령어:
Proot-distro login ubuntu --user root --shared-tmp
debconf 오류를 해결하기 위해 설치합니다:
apt update -y && apt upgrade -y apt install -y dialog apt-utils
명령어를 입력합니다
groupadd storage
groupadd wheel
groupadd video
XFCE4와 우분투에 필요한 프로그램을 설치합니다
apt install onboard // 터치 키보드
apt install ibus-hangul // 한글키보드
apt install fonts-nanum // 나눔폰트
apt install -y sudo nano psmisc htop software-properties-common wget mesa-utils dbus-x11 xfce4 xfce4-terminal
root 비밀번호를 설정합니다
passwd
user 를 만듭니다
user [사용자이름] _user=[사용자이름] echo $_user ALL=\(root\) ALL > /etc/sudoers.d/$_user;chmod 0440 /etc/sudoers.d/$_user
user 로그인을 합니다
login [사용자이름] sudo nano /etc/sudoers // user를 추가합니다
예시에서는 user 이름을 user로 설정하였습니다
ctrl+x
Enter
입력하면 저장됩니다
proot-distro 실행 및 GUI 구동
Termux:X11 앱을 실행하고 Termux을 돌아옵니다
XDG_RUNTIME_DIR=${TMPDIR} termux-x11 :0 -ac &
오디오 서버를 가동합니다
pulseaudio --start --load="module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1" --exit-idle-time=-1 pacmd load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1
proot 와 XFCE4를 실행합니다
proot-distro login ubuntu --user root --shared-tmp --no-sysvipc export DISPLAY=:0 PULSE_SERVER=tcp:127.0.0.1:4713 dbus-launch --exit-with-session startxfce4 &
위젯을 사용하여 자동실행
termux-api를 설치합니다
pkg install termux-api
mkdir .shortcuts echo '#!/bin/sh killall -9 termux-x11 Xwayland pulseaudio virgl_test_server_android termux-wake-lock; termux-toast "Starting X11" am start --user 0 -n com.termux.x11/com.termux.x11.MainActivity XDG_RUNTIME_DIR=${TMPDIR} termux-x11 :0 -ac & sleep 3 pulseaudio --start --load="module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1" --exit-idle-time=-1 pacmd load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1 virgl_test_server_android & proot-distro login ubuntu --user root --shared-tmp -- bash -c "export DISPLAY=:0 PULSE_SERVER=tcp:127.0.0.1:4713; dbus-launch --exit-with-session startxfce4"' > ~/.shortcuts/LaunchXFCE_proot
위젯에서 바로 실행이 됩니다
(해결) 로그인을 해야 다운이 되는군요!!!
f-droid에 올라온 apk 설치해보세요
그런데 실행 시 작동이 안되는 문제가 있네요 ㅠ
모든 과정을 거쳤는데 첨부한 스크린샷처럼 나오고 있습니다.
혹시 제가 실수한게 있을까용?
~ $ #!/bin/sh
~ $ echo '#!/bin/sh
> killall -9 termux-x11 Xwayland pulseaudio virgl_test_server_android termux-wake-lock; termux-toast "Starting X11" am start --user 0 -n com.termux.x11/com.termux.x11.MainActivity XDG_RUNTIME_DIR=${TMPDIR} termux-x11 :0 -ac & sleep 3 pulseaudio --start --load="module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1" --exit-idle-time=-1 pacmd load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1 virgl_test_server_android & proot-distro login ubuntu --user hsm --shared-tmp -- bash -c "export DISPLAY=:0 PULSE_SERVER=tcp:127.0.0.1:4713; dbus-launch --exit-with-session startxfce4"' > ~/.shortcuts/LaunchXFCE_proot_fin
~ $
Xwayland와 Virgl 모두 정상 설치된 상태입니당 ㅠㅠ
termux-x11: no process found
Xwayland: no process found
pulseaudio: no process found
virgl_test_server_android: no process found
termux-wake-lock: no process found
sleep: unrecognized option '--start
Try 'sleep --help for more information.
/usr/bin/startxfce4: X server already running on display :0
xrdb: Connection refused
xrdb: Can't open display ':0'
xfce4-session: Cannot open display:
사용방법을 보려면 'xfce4-session --help'를 입력합니다.
[Process completed (code 1) press Enterl
rm -rf $TMPDIR
mkdir -p $TMPDIR
해보세요 그리고 termux-x11앱과 termux앱 강제중지하고 다시 들어가면될겁니다
이걸로 안되신다면 숏컷 명령을 이걸로 한번 수정해보세요
#!/bin/bash
echo ""
echo "1. [ SET RUNTIME DIR ]"
export XDG_RUNTIME_DIR=${TMPDIR}
echo "DONE"
sleep 1
echo ""
echo "2. [ SET PULSE AUDIO ]"
pulseaudio --start --load="module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1" --exit-idle-time=-1
echo "DONE"
sleep 1
echo ""
echo "3. [ START termux-x11 ]"
termux-x11 > /dev/null &
echo "DONE"
echo ""
sleep 6
echo ""
echo "4. [ DISTRO LOGIN && START X-11 ]"
echo ""
proot-distro login udroid-jammy-raw --shared-tmp -- runuser -l v8 -c 'DISPLAY=:0 xfce4-session'
echo ""
echo "DONE"
echo ""
exit 0
여기에다가 윗글에 있는 스크립트를 적당히 수정하시면 될겁니다
강좌에 올라온 방식은 위젯에서 버튼을 누르면 실행되고 termux 최소화이후 x11도 바로 불러오는데 지금 댓글에 있는 방식은 termux 최소화를 수동으로하고 x11앱을 실행 시켜야합니다
혹시 pkg install termux-api 설치하셨나요?
이 패키지 설치 안하면 작동 불가능합니다
https://github.com/orgs/RandomCoderOrg/discussions/152
링크 참조하시면 도움될겁니다
Termux api앱을 설치해야되는데 설치안하셔서 그런것 같습니다
본문에 빠진내용 추가했습니다
일단 다시 시도해보겠읍니당
~ $ #!/bin/sh
~ $ echo '#!/bin/sh
> killall -9 termux-x11 Xwayland pulseaudio virgl_test_server_android termux-wake-lock; termux-toast "Starting X11" am start --user 1 -n com.termux.x11/com.termux.x11.MainActivity XDG_RUNTIME_DIR=${TMPDIR} termux-x11 :0 -ac & sleep 3 pulseaudio --start --load="module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1" --exit-idle-time=-1 pacmd load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1 virgl_test_server_android & proot-distro login ubuntu --user hsm --shared-tmp -- bash -c "export DISPLAY=:0 PULSE_SERVER=tcp:127.0.0.1:4713; dbus-launch --exit-with-session startxfce4"' > ~/.shortcuts/LaunchXFCE_proot_fin
~ $
이렇게 하면 실행될겁니다
다시 테스트 해보니 root유저는 0 사용자계정은 1로 수정하면 부팅됩니다
이제는 되실거에요
선생님 혹시 virgl 가속 후 glxinfo -B 명령어 입력시 GPU info 로드되시나용?
전 안되는거 같더군요
~ $ #!/bin/sh
~ $ echo '#!/bin/sh
> killall -9 termux-x11 Xwayland pulseaudio virgl_test_server_android termux-wake-lock; termux-toast "Starting X11" am start --user 1 -n com.termux.x11/com.termux.x11.MainActivity XDG_RUNTIME_DIR=${TMPDIR} termux-x11 :0 -ac & sleep 3 pulseaudio --start --load="module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1" --exit-idle-time=-1 pacmd load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1 virgl_test_server_android & proot-distro login debian --user user --shared-tmp -- bash -c "export DISPLAY=:0 PULSE_SERVER=tcp:127.0.0.1:4713; GALLIUM_DRIVER=virpipe dbus-launch --exit-with-session startxfce4"' > ~/.shortcuts/LaunchXFCE_proot_fin
~ $
저는 데비안에서 실행하였고 glxinfo -f는 오류가 발생했지만 glmark2를 터미널에서 열어보니 GALLIUM_DRIVER=virpipe 이런 명령어 추가 없이도 gpu 드라이버가 잡히는걸로 보아 glxinfo에서 불러올수는 없지만 가속은 되는것으로 보입니다
GALLIUM_DRIVER=virpipe 옵션 수동으로 걸어도 안되는거 같더군요 저는
프로그램이 죽어버리는 문제랑 UI 텍스트가 로드안되는 버그가 있더군요
아직은 Virgl 개선이 좀 필요해보입니다~ 그거 빼곤 전체적으로 사용성이 탭S8+의 경우 리눅스 랩탑쓰는 느낌이네요~
노트10+에서는 llvmpipe가 버그가 거의 없어서 따로 가속이 필요한 앱만 virgl가속을 하는게 좋은것 같습니다 S8+는 역시 성능이 좋네요
이게 찾아보니 아드레노가 Virgl 호환성이 생각보다 별로인듯하더군요.
엑시노스는 좀 나을지도 모르겠군요 ㅋ
about:config에서 webgl.force-enabled를 ture로 설정해주니깐 나오더군요!
llvmpipe에선 2~5fps나온게 vitgl에선 25~28fps로 5배 이상 퍼포먼스가 나오네요 ㅎㅎ
webgl 활성화 방법 알려주셔서 감사합니다
pkg install -y openssh passwd sshd ifconfig 했더니
E: Unable to locate package passwd 나오면서 안되네요..
검색해보니 뭐 repo를 변경하면 된다고 하는거 같아서 해봐도 마찬가지네요 ㅠ.ㅠ