Rehber Emülator (öykünücü) olan box86/box64 nedir ve nasıl kullanılır?

eilhanzy

Müdavim
Müdavim
Katılım
25 Mart 2019
Mesajlar
4,667
Çözümler
1
Reaksiyon puanı
7,873
Puanları
708
Yaş
20
hacks_00a-introfull.jpg


İyi forumlar. Bu konuda sizlere box86 ve box64'ten bahsetmiş olacağım. "Nedir?", "Nasıl kurulur?" ve "Hangi sistemlerde çalışabilir?" gibi soruları da cevaplamış olacağım. Hazırsanız başlayalım!

Nedir bu box86 ve box64?

box86 ve box64 şu anlık sadece Linux içinde kullanılan, daha çok ARM mimarisine göre tasarlanmış ve binary kodları x86/AMD64'ten ARM'a çeviren bir öykünücüdür (emülatordür) ya da daha doğrusu çeviricidir. JiT (Just in Time) sistemi ile çalışır. Amacı ise x86/AMD64 tabanlı uygulamaları ARM ya da RISC-V tabanlı bilgisayarlarda çalıştırmaktır. Genellikle Raspberry Pi, Orange Pi serisi tek kartlı bilgisayarlarda çalıştırılıyor bu tür yazılımlar.

Nasıl kurulur?

Kurmak için iki seçeneğiniz var. İlki apt ve dnf gibi paket yöneticileriyle kurmak ve ikinci yöntem ise derleyip, elle kurmak. Eğer Linux'u orta düzeyde kullanamıyorsanız size paket yöneticisiyle kurmanızı şiddetle öneririm eğer Fedora ve Debian tabanlı dağıtımları kullanıyorsanız ama bambaşka bir dağıtım kullanırsanız ikinci seçeneği kullanın. İki seçeneği sürprizbozanlarda göstereceğim.

Eğer paket yöneticileriyle kuracaksanız bunun için depoyu eklemeniz gerekebilir. Debian tabanlı dağıtımlarda ilk öncelikle uçbirimi (terminal'i) açmanız lazım ve bu komutları girmeniz lazım.

box64 için:
sudo wget https://ryanfortner.github.io/box64-debs/box64.list -O /etc/apt/sources.list.d/box64.list
wget -qO- https://ryanfortner.github.io/box64-debs/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/box64-debs-archive-keyring.gpg
sudo apt update
sudo apt install box64-arm64 -y

box86 için:

sudo wget https://itai-nelken.github.io/weekly-box86-debs/debian/box86.list -O /etc/apt/sources.list.d/box86.list
wget -qO- https://itai-nelken.github.io/weekly-box86-debs/debian/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/box86-debs-archive-keyring.gpg
sudo apt update
sudo apt install box86 -y

Eğer M1 ya da M2 tabanlı Mac'te Asahi Linux kullanıyorsanız ve box86'yı kurmanız gerekiyorsa kurmak mümkün değil, zira Apple Silicon'da 32 bit desteği yok (bkz).

İkinci yöntemde ise derlemeniz lazım ve bütün Linux dağıtımlarda kullanabilirsiniz. Raspberry Pi 5 örneği vereceğim, fakat box86 için 16K çekirdek yerine 4K (kernelv8.img) çekirdeğe geçmeniz lazım Raspberry Pi 5 için.

box86 için:

armhf multiarch'a ihtiyacınız olacaktır, bu sebeple libc6:armhf'yi kurmanız lazım.

sudo dpkg --add-architecture armhf
sudo apt update
sudo apt install libc6:armhf -y

Daha sonrasında ise derlemek için bazı derleyici ve araçlara ihtiyacımız olacak. Onları kuralım.
sudo apt update
sudo apt install cmake git sudo apt gcc-arm-linux-gnueabihf build-essential -y

Şimdi ise artık projeyi derleyebiliriz. İlk öncelikle git üzerinden GitHub'ta bulunan kaynak kodunu Raspberry Pi 5'e klonlamamız gerekecek. Ardından build klasörü oluşuturup, o klasörün içine girip cmake ile konfigrasyon yapacağız. Ardından make komutuyla derleyeceğiz.

git clone https://github.com/ptitSeb/box86
cd box86
mkdir build && cd build
cmake .. -DARM64=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo
make -j3
sudo make install
sudo systemctl restart systemd-binfmt

Bundan sonra box86'yı kullanabilirsiniz ancak kullanmadan evvel sistemi yeniden başlatmanızı öneririm.

box64:

box64 için ise yine yukarıda belirtilen gcc-arm-linux-gnueabihf haricinde bazı derleyici ve araçlara ihtiyacımız olacak. Onları kuralım. Daha sonrasında git komutuyla box64'ün kaynak kodunu klonlayacağız. Sonrasında dizin oluşturup içine girdikten sonra cmake ile konfigrasyon yapıyoruz ve en sonunda ise make komutunu çalıştırıp kuracağız. Yine söylüyorum, box86'da olduğu gibi sistemi yeniden başlatmanızı öneririm.

git clone https://github.com/ptitSeb/box64
cd box64
mkdir build; cd build; cmake .. -D RPI5ARM64=1 -D CMAKE_BUILD_TYPE=RelWithDebInfo
make -j4
sudo make install
sudo systemctl restart systemd-binfmt

Şunu da söylemeden geçmeyeyim. Yalnızca Raspberry Pi serisi için değil, aynı zamanda bütün ARM tabanlı sistemlerde çalışır box86 ve box64. Mac'e kurulan Asahi Linux'ta da dahil (sadece box64).

Nasıl kullanılır?

Güzel soru. Kullanmak için ise 32 bit yazılımlarda box86 <Çalıştıracağınız yazılım ve argümanlar> ve 64 bit yazılımlarda ise box64 <Çalıştıracağınız yazılım ve argümanlar> olacak şekilde çalıştırmanız yeterli. Eğer Steam'i kuracaksanız kaynak kodunun yer aldığı klasörün içindeki install_steam.sh'i çalıştırmanızı öneririm. Grafik arabiriminin çalışması için de box64'ün kurulu olması zorunludur. Ayrıca Steam'i kullanırken en az 6GB swap (sanal bellek) alanı ayırmayı da unutmayın.

Wine ile birlikte kullanımı

Eğer Windows programları ya da oyunları için konuşacak olursak evet, çalışıyor Wine. Hem 32 bit ve hem de 64 bit sorunsuz çalışıyor ancak DirectX performansının daha iyi olabilmesi adına Vulkan'ın 1.1, 1.2 gibi sürümler destekliyorsa DXVK'yi kurmanızı şiddetle öneririm. Fakat sadece Wine 9.0 geliştirme sürümlerinde x86_64 sürümünde SysWoW64 hatalı çalışıyor ve hatta çalışmıyor bile, bu zamanla düzeltilebilir. Sonraki rehberlerde ise x86 ve AMD64 mimarili Wine'ın nasıl kurulacağını bahsedeceğim.

Ne kadar performans farkı var?

Performans farkı var elbette ama aşırı uzak bir performans göstermiyor. Yani yaklaşık olarak %25'lik bir performans farkı oluyor:

1716049951993.png


Yerel mimariyle 31.3 / 31.9 FPS (64 bit/ 32 bit) alırken öykünme performansıyla ise 26.1 / 26.5 FPS (32 bit / 64 bit) vermekte.


Şu anda box86 / box64'ü kullanan projeler neler?

Android'ten birkaç örnek verecek olursak Wine'ı kullanan ve Termux'la çalışan Box64Droid ve yine Wine'ı kullanan, .apk ve .obb uzantısıyla yüklenebilen Winlator gibi projeleri sayabiliriz. Bu projelerin çok büyük bir amacı oyun oynamanızı sağlamaktır, hatta GTA V bile oynayabilirsiniz. Yani o derecede iyiler. :) Başka projeler de var ama onları saymayacağım. Sadece popüler olanları yazdım şu anlık.

Peki box86 ve box64'ün alternatifleri nedir?

box64 ve box86'ya alternatif olarak FEX-Emu var fakat bildiğim kadarıyla çok iyi performansa sahip değil ve daha da kötü performansa sahip olan qemu-static mevcut.

Sonuç olarak

Bu konuyu açmamın en temel sebeplerinden birisiyse hem ARM tabanlı cihazların x86 dolaylı yoldan bile olsa x86 / AMD64 mimarili yazılımları çalıştırabildiğini göstermek ki zaten Windows'ta ve Mac'te (Rosetta 2 sayesinde) ARM tabanlı cihazlarda çalışabiliyor ve hem de bu yazılıma karşı destek vermek amacı taşıyor. Okuduğunuz için teşekkürler.

 

vigilantemre

Moderatör
Moderatör
Katılım
26 Mayıs 2019
Mesajlar
1,790
Çözümler
3
Reaksiyon puanı
1,945
Puanları
358
Yaş
23
Bu yöntemi Termux ile kullanıp Android cihazlarda yerel olarak Windows oyunlarını oynayanlar gördüm, ayrıca Winlator diye yardımcı bir açık kaynak uygulaması da var, daha da geliştirilirse ve performans artışı yakalarsa aşırı iyi olacak, GTA 5 oynayan bile var görünce inanamadım 😆
Güzel rehber, ellerinize sağlık.
 

eilhanzy

Müdavim
Müdavim
Katılım
25 Mart 2019
Mesajlar
4,667
Çözümler
1
Reaksiyon puanı
7,873
Puanları
708
Yaş
20
Bu yöntemi Termux ile kullanıp Android cihazlarda yerel olarak Windows oyunlarını oynayanlar gördüm, ayrıca Winlator diye yardımcı bir açık kaynak uygulaması da var, daha da geliştirilirse ve performans artışı yakalarsa aşırı iyi olacak, GTA 5 oynayan bile var görünce inanamadım 😆
Güzel rehber, ellerinize sağlık.
Zaten onları "Peki box86 ve box64'ün alternatifleri nedir?" kısmında bahsettim. Birçok kez box86 ve box64'ü kullandım ve hâlâ da kullanıyorum. Winlator'ı da denedim zamanında ama Epic Games'i çalıştıramadım.
 

vigilantemre

Moderatör
Moderatör
Katılım
26 Mayıs 2019
Mesajlar
1,790
Çözümler
3
Reaksiyon puanı
1,945
Puanları
358
Yaş
23
Zaten onları "Peki box86 ve box64'ün alternatifleri nedir?" kısmında bahsettim. Birçok kez box86 ve box64'ü kullandım ve hâlâ da kullanıyorum. Winlator'ı da denedim zamanında ama Epic Games'i çalıştıramadım.
Hızlı hızlı okuyunca orayı kaçırmışım kusura bakmayın. Epic Games başlatıcısı Windows'ta bile sorunlu zaten ya, son zamanlarda biraz düzeldi gibi ama daha çok gelişmesi lazım 😄
 
Üst