# Running xorg and xvfb on Termux
pkg add tur-repo
apt update -y && apt upgrade -y
pkg install x11-repo
# Mempermudah nantinya
apt install fish starship pulseaudio tmux -y
chsh -s fish
exit
# Kembali ke termux dan ini hasilnya:
# Beri akses ke internal storage
termux-setup-storage
# Install xorg-server
apt install xorg-server xorg-server-xvfb -y
# Sampai sini harusnya akan ada error muncul jika mencoba menjalankannya:
# Fix error dengan cara install mesa zink
apt install mesa-zink/tur-packages
# Install xwayland untuk termux-x11
apt install libwayland-protocols libepoxy xwayland
# Download termux-x11 .zip dari github lalu extract file zip-nya dan install file termux-x11.apk dan .deb-nya (dengan cara dpkg -i file.deb)
# Kenapa install dari github? Karna termux-x11-nightly dari repo termux bermasalah
# Setelah semua selesai, tinggal install program yg membutuhkan X server, misalkan xterm (30MB) atau openbox (700MB)
apt install xterm -y
# Jalankan X11
DISPLAY=:0 termux-x11
# Oia, jika ingin mempermudah pindah2 terminal bisa gunakan tmux
apt install tmux -y
tmux
# Quick tips penggunaan tmux
# Ctrl-bc untuk membuka terminal baru
# Ctrl-bd untuk menutup terminal sekarang
# Ctrl-bN (N adalah angka terminal yg muncul; ubah sesuai urutan terminal) untuk pindah2 terminal atau sentuh saja tab nama terminal-nya
# Jalankan X :0 atau Xvfb :0 -ac
Xvfb :0 -ac
# Terakhir, jalankan program yg diinginkan
DISPLAY=:0 xterm
# Lalu buka aplikasi x11 termux dan selesai
# Tambahan jika ingin mencoba di proot via virgl
apt install proot-distro vulkan-loader-android/stable virglrenderer-android -y
# Jalankan virgl server-nya
MESA_NO_ERROR=1 MESA_GL_VERSION_OVERRIDE=4.0 GALLIUM_DRIVER=zink virgl_test_server_android --use-egl-surfaceless --use-gles
# atau
virgl_test_server_android
# Install proot
proot-distro install manjaro
# Untuk mempermudah proot
mkdir ~/var/binds
touch ~/var/binds/fbindprocpcidevices
alias manjaro='proot-distro login manjaro --shared-tmp --bind /data/data/com.termux/files/home/var/binds/fbindprocpcidevices:/proc/bus/pci/devices'
# Masuk ke Manjaro
manjaro
# Update & upgrade seperti biasa
pacman -Syu
# Install package yg membutuhkan Display seperti openbox & xterm & mesa-utils untuk mencoba
pacman -Sy openbox xterm mesa-utils
# verifikasi path agar tau tidak bentrok dengan package dari termux
which openbox # harusnya muncul /usr/bin/openbox
# Jika terjadi masalah karna user root, maka coba buat user biasa lalu login dan jalankan dari sana
# Jalankan xterm
DISPLAY=:0 GALLIUM_DRIVER=virpipe xterm
# atau
DISPLAY=:0 __GLX_VENDOR_LIBRARY_NAME=mesa MESA_LOADER_DRIVER_OVERRIDE=virpipe GALLIUM_DRIVER=virpipe xterm
# Jika sesuai, seharusnya muncul xterm di aplikasi termux-x11
# Lalu ketik di xterm glxgears
glxgears # cek termux bagian virgl maka akan muncul log yg berarti berhasil menggunakan virglrenderer
# Mencoba glmark2
pacman -Sy glmark2
# Ketik di xterm
glmark2
# Hasilnya adalah object kuda dkk ditampilkan dengan baik :)
# untuk menghentikan animasinya, kita harus Ctrl-c pada xterm yg ada di proot
# Coba buka openbox dgn cara: DISPLAY=:0 GALLIUM_DRIVER=virpipe openbox-session
# Lalu di app termux x11 buka menu openbox dengan cara ketuk dua jari
# Mencoba browser chromium
pacman -Sy chromium
# Buka menu openbox seperti cara di atas dan cari opsi terminal xterm lalu ketik:
chromium --no-sandbox # Login-lah sebagai user biasa agar bisa sandbox
# Mencoba browser firefox
pacman -Sy firefox
firefox
# Kenapa menggunakan virgl? Sayangnya program yg membutuhkan X display di proot tidak bisa menggunakan zink secara langsung, jadi harus virgl atau softpipe (Opengl 3.3) atau llvmpipe (Opengl 4.5) (keduanya software rendering, bukan hardware accelerated)
# Lanjut kita coba hardware rendering melalu VNC
# Install x11vnc
pkg install x11vnc
# Jalankan dan jangan lupa pass argument port Xorg dan optional autoport
x11vnc -display :0 -autoport 5900 # cari port yg tersedia mulai dari 5900
# Buka aplikasi VNC client, disini kita gunakan saja bVnc dari Playstore
# Isi alamat localhost:5900 (sesuaikan dengan port Xorg)
# Lalu hubungkan, dan di termux jalankan openbox seperti sebelumnya kita menjalankannya yaitu: DISPLAY=:0 GALLIUM_DRIVER=virpipe openbox-session
# Maka openbox akan berjalan di VNC, untuk mengeceknya sentuh dengan dua jari di layar dan akan terbuka menu openbox
# Coba jalankan xterm dan program lain dari VNC seperti kita menjalankannya dari aplikasi termux x11
# Kelebihan VNC adalah bisa copas clipboard android ke proot dengan mudah (ketuk 3 jari untuk paste clipboard android); Juga Special key seperti Ctrl, Alt, Shift tidak sekaku di app termux x11; Selain itu juga kita bisa zooming jadi bisa melihat detail2 secara visual :)
# Kelebihan dari program proot daripada termux menurut saya adalah ringan (opini pribadi saat menggunakan firefox termux via zink dan membandingkan dengan chromium di proot manjaro menggunakan vnc dan termux x11)
# Mungkin karna GALLIUM_DRIVER=zink berat atau program X yg jalan di termux berat, siapa tahu?
# Sekaligus juga proot lebih banyak support package linux daripada termux yg beberapa sudah mulai didukung namun masih tidak bekerja merata di semua device
# Btw, xorg-server-xvfb hasil display-nya lebih mengikuti layar hape daripada xorg-server yg cenderung stretch
# Kalian juga bisa mengganti windowing-nya selain openbox yaitu i3 (tiling based), atau awesome (windowing seperti openbox) dan masih banyak lagi
# Tambahan bisa install tint2 sebagai panel penampung ketika window openbox di-minimize
# Kreasikan sendiri Linux on Android (proot) kalian dengan berbagai dotfiles di internet dan hal lainnya
# Selamat mencoba!
# Dari berbagai sumber
Komentar
Posting Komentar