Samsung Android Tablet Üzerinde Linux Ubuntu
Android üzerinde tam tekmilli Linux işletmek mümkün. Android alt
seviyeleri bilindiği gibi çekirdek seviyesinde Linux kullanır, bu
cekirdek uzerine birkac katman Java, gorsel bilesenler,
vs. eklenmistir. Termux uygulaması Android'in cekirdegi ile iletisim
kurar, ve bildik Unix sistem cagrilarinin islemesini saglar, aynı
zamanda kullanıcıya Linux sistemlerinden tanıdık bir komut satırı
programı sunar. Bu program üzerine pek çok bilinen Unix komutu pkg
install
ile kurulabilir. Bu konuyu daha önce işlemiştik [4].
Bu yazıyı paylaştığımızdan bu yana Termux bazı iniş çıkışlar yaşadı, Google Play Store'daki versiyon problem çıkartıyordu, kurulumlar tam yapılamıyordu, daha sonra bir Android versiyonunda Termux gibi uygulamaların bir süre sonra süreçlerinin (process) isletim sistemi tarafından zorla durdurulduğu söylendi. Yeni versiyonlarda bu problemler düzeltilmiş, Termux'u artık Github üzerinden kuruyoruz, ve süreç durdurması için ise bir Android 14 üzerinde yeni bir seçenek var, bunu kullanıyoruz.
Yazımız temel olarak Samsung Galaxy Tab A9 tabletini merkez
alacak. Şuradaki arkadaş [2] A10 tablet kullanmış. Bu donanımlar
saglamdir, işletim sistem versiyonlari Android 14, gerekli seçeneğe
sahipler. Donanımı açınca önce Settings
| About Phone
seçip oradan
Build Number
diyen yere gidiyoruz, ve yedi kere ardı ardına bu yazı
üstüne basıyoruz. Bitince bu işlem ile Android'in geliştirici seviyesi
(developer mode) aktif edilmiş oluyor. Şimdi Developer Options
görünür halde olmalı, buna giderek Disable Subprocess Restrictions
seçeneğini seçiyoruz.
Termux kurulumu için [2] bağlantısından Termux apk'si indirilir. Bu
indirilen apk üzerinde seçim yapıp onu kurarız, uyarıları iptal edip
devam ederiz, işlemi tamamlarız. Artık bir Termux ikonu program
listesinde gözüküyor olmalı. İkona tıklayıp komut satırına gireriz,
burada pkg install
ile istenen programları kurmak artık mümkün.
Proot
Fakat hala elimizdeki tam tekmilli bir Ünix değil. Unix'te kullanılan programların Android için derlenmiş hallerini kullanıyoruz. Eğer ciddi bir Linux, yani dosya sistemi, kullanıcı idaresi vs ile birlikte olan, bunun için Proot [3] kullanabiliriz.
Proot bir emülasyon sistemidir. Mesela Ubuntu Linux kullanmak istiyorsak onun işler kodlarını olduğu gibi alır, işletirken sistem çağrıları varsa onları yakalayıp (intercept) o çağrıları gerekli Termux çağrısına tercüme eder, Termux kütüphaneleri Android ile iletişimi halleder. Mesela Ubuntu dosyaya yazmak için bir sistem çağrısı yapabilir, Proot bunu alıp Termux üzerinden dosyaya yazma komutu haline getirir.
Peki işler kodlar (executable) ne oluyor? Bazı tur emülasyonlar vardır ki mesela Intel x86 için yazılmış kodları Motorola işlemcisi üzerinde işletebilir, yani herşey tercüme edilir. Buradaki durum farklı, emülasyon baştan kendine uyumlu işler kodları indiriyor, yani en alt seviye makina kodu bazında emülasyona gerek yok. PRoot üzerinden emülasyon içinde bir program kurduğumuzda hala kendi işlemcimize göre kodlar alıyoruz, mesela Samsung üzerinde Ubuntu ARM uyumlu programlar indirilecektir.
Kurmak için Termux üzerinde,
pkg install proot-distro
Ardından
proot-distro install ubuntu
Şimdi sisteme girmek için
proot-distro login ubuntu
kullanırız. Bu bizi Ubuntu sistemine sokar. Etrafa bakınınca Unix
demirbaşlarını görebiliyoruz, dosya sistemi, /var
, '/etc', ya da
süreçler için /proc
. Ben hemen useradd
ile bir normal kullanıcı
yarattım, root
için passwd
ile bir şifre atadım, böylece gerekli
sistem kurulumlarını su - root
sonrası yapıyorum, diğer her iş için
root
üzerinden normal kullanıcıya geçiş yapıyorum, su - user1
gibi.
Dikkat, normal kullanıcı için eğer başlangıç ayarları .bashrc
içinde
tanımladıysak bunun çağrılması normal Ubuntu'daki gibi otomatik
olmuyor, bir .bash_profile
ekleyip oradan . .bashrc
ile çağrıyı
bizim kodlamamız gerekiyor. Bu yapıldıktan sonra su - user1
ile
giriş yapılınca gerekli ayarlar .bashrc
içinden çağrılır.
Girer girmez hemen bir upt update
ve apt upgrade
yapmak faydalı
olur. Artık apt install
ile istediğimiz her Ubuntu programını
kurabiliriz.
İlginç bir nokta Termux üzerinde pkg install
ile kurulmuş
programların Proot içinden görülebilmesi. Mesela pkg install htop
kurmuşsam bu programı Ubuntu'da işletebiliyorum. Fakat tersi olmuyor.
Benim tercihim programları emulasyon içinde, yani Ubuntu ise Ubuntu
üzerinde, o sisteme göre kurmak, Termux'ta degil, böylece o programın
diğerleri ile olan etkileşimi daha rahat olur.
X11
[1] bağlantısında görüldüğü gibi tablet üzerinde Linux masaüstü bile işletmek mümkün. APK alınan yerde bir Termux:X11 apk'si var, bu kurulup geri kalan ayarlar yapılınca görsel X uygulamaları da işletilebiliyor.
Kaynaklar
[1] https://youtu.be/UgRds3iP0BU
[2] https://github.com/olegos2/termux-box
[3] https://github.com/termux/proot-distro
[4] Android Uzerinde Linux - Termux, Samsung J6
Yukarı