Langsung ke konten utama

Running proot program over termux xorg

 


# 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

Postingan populer dari blog ini

how to install postgresql and use it with php on termux

first of all you need to install it: apt install postgresql then specify data dir for it by typing: initd -D YOUR_DATA_DIR example YOUR_DATA_DIR is /data/data/com.termux/files/home/mydb note that you don't need to make the dir first, you just need the dir name then initdb will create it automatically :) in this example like this: initdb -D /data/data/com.termux/files/home/mydb The files belonging to this database system will be owned by user "u0_a171". This user must also own the server process. The database cluster will be initialized with locale "C.UTF-8". The default text search configuration will be set to "english". Data page checksums are disabled. creating directory test ... ok creating subdirectories ... ok selecting dynamic shared memory implementation ... sysv selecting default max_connections ... 100 selecting default shared_buffers ... 128MB selecting default time zone ... Asia/Jakarta creating configuration files

How to fix Apache httpd error: [:crit] [pid xxxx] (2)No such file or directory: AH00141: Could not initialize random number generator

How to fix Apache httpd error: [:crit] [pid xxxx] (2)No such file or directory: AH00141: Could not initialize random number generator. This error might be offen happen when using chroot  and no urandom in /dev folder of your chroot dir. Simply just mount the /dev folder to your chroot dir: mount -o bind /dev $chroot_dir/dev/ Then test it: httpd -v Server version: Apache/2.4.34 (Unix) Server built: Jul 19 2018 03:32:51