· 톺아보기

PC/모바일

termux 우분투 셋팅법

로그켓 · · 수정

조회 35,632 · 공감 9 · 댓글 28

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



위젯에서 바로 실행이 됩니다

댓글 28

  1. LinkeneitoR ·
    북마크 하고 갑니다 ㅎㅎ
  2. 파랑동네 ·
    termux-x11.deb설치 -> 알려주신 링크에는 컴파일 환경만 있는데 혹시 직접 컴파일 하여 apk 생성 하여야 하나요?
    (해결) 로그인을 해야 다운이 되는군요!!!
  3. 흡혈귀왕 ·
    termux-widget 설치 시도시 기존 termux와 패키지가 충돌한다고 나오는데 해결법이 있을까용?
  4. 흡혈귀왕 ·
    댓글 이미지
    @로그켓님 선생님 감사합니다 덕분에 위젯 설치는 무사히 할수있었습니다!
    그런데 실행 시 작동이 안되는 문제가 있네요 ㅠ

    모든 과정을 거쳤는데 첨부한 스크린샷처럼 나오고 있습니다.
    혹시 제가 실수한게 있을까용?

    ~ $ #!/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
    ~ $
  5. 흡혈귀왕 ·
    댓글 이미지
    @로그켓님 위젯 등록 상태
  6. 흡혈귀왕 ·
    댓글 이미지
    @로그켓님 위젯 실행 시 화면입니다.
    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
  7. 로그켓 · · 공감 1
    @흡혈귀왕님 termux에서
    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 설치하셨나요?
    이 패키지 설치 안하면 작동 불가능합니다
  8. 흡혈귀왕 ·
    @로그켓님 퇴근 후 도전해보겠습니다! 상세한 가이드 감사합니당! :)
  9. 흡혈귀왕 ·
    @로그켓님 설치가 되어있다고 나와있네용 ㅠㅠ
    일단 다시 시도해보겠읍니당
  10. 로그켓 · · 공감 1
    @흡혈귀왕님
    ~ $ #!/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로 수정하면 부팅됩니다
    이제는 되실거에요
  11. 흡혈귀왕 ·
    @로그켓님 감사합니다!
    선생님 혹시 virgl 가속 후 glxinfo -B 명령어 입력시 GPU info 로드되시나용?

    전 안되는거 같더군요
  12. 로그켓 · · 공감 1
    댓글 이미지
    @흡혈귀왕님
    ~ $ #!/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에서 불러올수는 없지만 가속은 되는것으로 보입니다
  13. 흡혈귀왕 ·
    @로그켓님 아아 저랑 동일하군요! 감사합니다! 혹시 파이어폭스 webgl demo 구동되시나요?
    GALLIUM_DRIVER=virpipe 옵션 수동으로 걸어도 안되는거 같더군요 저는
  14. 로그켓 ·
    @흡혈귀왕님 저도 그걸 해결하지 못했습니다 ㅠ about:config에서 활성화를 하면 된다고 하는데 안되네요
  15. 흡혈귀왕 ·
    @로그켓님 일단 블렌더3d 등 테스트하고있는데 블렌더3d 퍼포먼스는 좋아졌는데
    프로그램이 죽어버리는 문제랑 UI 텍스트가 로드안되는 버그가 있더군요

    아직은 Virgl 개선이 좀 필요해보입니다~ 그거 빼곤 전체적으로 사용성이 탭S8+의 경우 리눅스 랩탑쓰는 느낌이네요~
  16. 로그켓 ·
    @흡혈귀왕님 다행입니다 ㅎㅎ
    노트10+에서는 llvmpipe가 버그가 거의 없어서 따로 가속이 필요한 앱만 virgl가속을 하는게 좋은것 같습니다 S8+는 역시 성능이 좋네요
  17. 흡혈귀왕 ·
    @로그켓님 집에 놀고있는 엑시노스2100 탑재의 S21U에도 테스트 해볼생각입니다.
    이게 찾아보니 아드레노가 Virgl 호환성이 생각보다 별로인듯하더군요.
    엑시노스는 좀 나을지도 모르겠군요 ㅋ
  18. 로그켓 ·
    댓글 이미지
    @흡혈귀왕님 노트10에서는 블랜더는 무리인가 봅니다 ㅠ
  19. 흡혈귀왕 ·
    @로그켓님 어?! virgl 가속 먹은 상태인거죵? GUI는 잘 로드된거같네용?ㄷㄷㄷㄷㄷㄷ
  20. 흡혈귀왕 ·
    댓글 이미지
    @로그켓님 아 그리고 파이어폭스 WebGL 문제 해결했습니다.
    about:config에서 webgl.force-enabled를 ture로 설정해주니깐 나오더군요!

    llvmpipe에선 2~5fps나온게 vitgl에선 25~28fps로 5배 이상 퍼포먼스가 나오네요 ㅎㅎ
  21. 로그켓 ·
    댓글 이미지
    @흡혈귀왕님 llvmpipe에서 1~2 fps나오다가 10~13fps가 나오네요 ㅎㅎ
    webgl 활성화 방법 알려주셔서 감사합니다
  22. 아이폰포그러 ·
    따라 해보려고 했더니 시작부터 막히네요 ㅎㅎ;;
    pkg install -y openssh passwd sshd ifconfig 했더니
    E: Unable to locate package passwd 나오면서 안되네요..
    검색해보니 뭐 repo를 변경하면 된다고 하는거 같아서 해봐도 마찬가지네요 ㅠ.ㅠ
  23. 로그켓 ·
    @아이폰포그러님 pkg update & upgrade하시면 됩니다
  24. 아이폰포그러 ·
    로그켓님// 그렇게 해도 마찬가지네요 ㅎㅎ;; ㅠㅠ
  25. 로그켓 ·
    @아이폰포그러님 한번에 설치하지마시고 따로설치하시면 문제없을겁니다

팁과강좌 최근 글

팁과강좌 목록 더 보기