Banana Pi M3 (Bpi-M3) İncelemesi
Hatırlarsanız geçenlerde Banana Pi’yi incelemiştik. Bugün de hızlıca 8 çekirdekli Banana Pi M3 (Bpi-M3)’ü inceleyeceğiz.
Bu inceleme için bize ürünü önceden tedarik eden SinoVoIP‘ye teşekkür ederiz 🙂
Önce biraz donanımın kendisinden bahsetmek ve tanıtım resimlerini eklemek istiyorum:
Öncelikle bunu ayrıca yazmak istiyorum: Cihazda 8 Çekirdek işlemci var. Ağır CPU yükü gerektiren işlemlerde bu cihaz oldukça faydalı olacak.
Banana Pi M3 özellikleri:
- Yonga: Allwinner A83T
- İşlemci: 8 Çekirdek ARM Cortex-A7 @ 2.0 GHz, 512 KB L1 önbellek, 1 MB L2 önbellek
- Grafik Yongası: PowerVR SGX544MP GPU supporting OpenGL ES 2.0/1.1, OpenCL 1.1, DX 9.3.
- Bellek: 2 GB LPDDR3 ram
- Dahili Hafıza: 8 GB Samsung eMMC
- SATA Girişi: USB köprüsü Genesys GL830 üzerinden USB portları ile paylaşımlı
- SD Kart Girişi: Mikro SD slot
- Video Çıkışları:
- HDMI: 1920×1200’e kadar, HDMI 1.4 özellikli çıkış
- Görüntü modülleri için: MIPI DSI bağlantısı
- Ses Giriş ve Çıkışları:
- Dijital çıkış: HDMI üzerinden,
- Analog: 3.5 mm jack üzerinden, ses çıkışı ve Mikrofon Girişi
- Kamera girişi: MIPI CSI ve paralel kamera bağlantıları
- Kablo ile Bağlantı: 10/100/1000Mbps ethernet (Realtek RTL8211E/D)
- Kablosuz Bağlantı (WiFi): 802.11 b/g/n (Dahili AP 6212 modülü)
- Bluetooth: Bluetooth 4.0 modülü
- USB:
- 2 adet USB 2.0 portu
- 1 adet USB OTG portu
- Konsolda debugging için UART
- Pinler: Raspberry Pi ile birebir uyumlu 40 pin,
- Butonlar ve alıcılar:
- Power butonu,
- Reset butonu
- U-boot butonu
- IR alıcısı
- Boyut: 92 x 60 milimetre
- Ağırlık: 45 gram
Board’un üzerindeki bileşenler:
Aslında prototip olarak iki adet üretilmiş, birinde güç girişi mikro usb yerine adaptör olarak ayarlanmış. Bana gelen prototipte mikro usb giriş vardı, bu yüzden ben de bu resmi ekledim, kalanı aynı.
Şimdi geldi sıra paketi açmaya
Çin’den posta ile gelen paketi açtığımda şöyle kutulanmıştı:
Paket kilitli paketti, Bpi-m1’de olduğu gibi, cihazı ilk açan bendim.
Cihaz açınca gerçekten oldukça şık:
Malzeme kalitesini oldukça başarılı buldum. Banana Pi’ye nazaran daha başarılı.
Tek “keşke olsun” dediğim şey içinde olmayan WiFi / Bluetooth anteni idi, bunu da dışarıdan ayrıca satın almak lazım.
Girişi IPX standardında olan bu yuvayı GPIO pinlerinin hemen altında bulabilirsiniz (bkz: yukarıdaki resim).
Yuva girişi şunun gibi yani.
Ben Aliexpress’te laptoplar için olan, şöyle bir anten seti buldum indirimde (78 sent civarı idi), an itibari ile gelmesini bekliyorum:
Ama siz tabi şunun gibi bir kablo ile kendi anteninizi de kullanabilirsiniz (50-60 sent bu kablolar):
Cihazın dış görünüşünü kıyaslamaya geldi sıra
Banana Pi M1 ile yan yana iken de şöyleler:
Banana Pi M1’den “görünüş olarak” öne çıkan farkları ilk bakışta şöyle:
- Malzeme kalitesini ben daha başarılı buldum
- Analog Video çıkış portu kaldırılmış,
- 26 yerine artık 40 pin var
- Standart SD kart yerine Mikro SD kart kullanıyr
- Yonga Banana Pi M1’deki gibi aşağıda değil, üst kısımda
- Dahili Hafıza,
- WiFi Çipseti
Şimdi geldi sıra cihaza işletim sistemi yüklemeye ve de ilk testleri gerçekleştirmeye:
Banana pi için Android de dahil olmak üzere pek çok işletim sistemi var. Önce siteler arasında oldukça kayboldum, çünkü bananapi.com, bananapi.org, www.banana-pi.org gibi pek çok site vardı. En fazla aktivitenin olduğu domain ve de en güncel imajların olduğu site olarak www.banana-pi.org adresini gördüm, ve de imajları buradan indirmeye karar verdim.
http://www.banana-pi.org/download.html#e-panel
Adresine tıklayarak (ve de açılmamışsa BPi-M3 sekmesine tıklayarak) imajları indirebiliyorsunuz.
Göreceğiniz üzere Android 5.1, Ubuntu Mate, Raspbian, Debian, Fedora, Crux, Arch Linux, Gentoo Linux ve Armbian gibi pek çok dağıtım indirilmeye hazır olarak sizleri bekliyor.
SinoVOIP takımı da mailleşmemizde e-posta ile geliştirmenin devam ettiğini belirtmişti. Benim aşağıda inceleyeceğim dağıtımlarda da bu devam eden geliştirmelerin sonuçları olacak. Bu dağıtımların tümünü “beta” gibi düşünebilirsiniz.
Bunun asıl sebebi Bpi-m2 ve m3’te m1’e nazaran farklı SoC ler kullanılması, ve de bunların farklı bootloader’larının ve driverlarının olması.
İşletim Sistemleri ve Denediğim Özellikler
Raspbian
İlk olarak Raspbian’ı denedim. Anlatılana göre Raspberry pi’deki Raspbian ile birebir uyumlu olacaktı, ama henüz tam o kıvama gelmiş değil.
Boot ediyordu, ama HDMI üzerinden bir türlü görüntü alamadım. Grafik arayüzünü göremedim yani. Bu yüzden grafik arayüzü ile ilgili yorum yapamıyorum.
Cihaza ethernet kablosu, USB klavye mouse dongle’ı ve de HDMI ekran bağlıyken 0.5A civarında akım yiyor. Grafik arayüzünü seçip boot ettiğimde 0.67A civarını gördüm.
SSH ile bağlantı kurabildim, ve de raspi-config’i inceledim, standart raspi-config’in %99 aynısı, sadece cihaz için arka planı modifiye edilmiş.
Ayrıca hazır SSH’a bağlıyken işlemci bilgisi ve de dahili SD kart bilgisine bakmak istedim:
İşlemci gerçekten 8 çekirdek gözüküyordu!
Gördüğünüz gibi, cihaz gerçekten 8 çekirdek, 8 thread işlemciye sahip, ve de standart ayarlarda CPU çekirdekleri en düşük 480, en yüksek 1800MHZ’de çalışacak şekilde ayarlandı.
Bunları 2GHZ’e çıkartabilirsiniz, ama heatsink/fan gibi bir araçla yongayı soğutmanız lazım, zira çok basit bir stres testinde bile baya ısındı bende, 3-4 liralık heatsink’ler ağır yük altındaysa cihaz fazlasıyla iş görecektir.
Cihaz konsol logininde idle iken güç kullanımı şunun gibi:
Grafik arayüzü açıkken de (1920×1080 HDMI ekranımda görüntü alamadım ama çalışıyordu) şöyleydi:
Mate ya kendini ayarlıyordu, ya da hala beta olan dağıtımda bir sorun var, ya da ekranımı algılayamamasından dolayı işlem kullanımı bir şeyleri hesaplamaya çalıştığından (çözünürlük vs.) yüksekti, açıkçası ben de anlamadım.
Raspbian’da GPIO Portları
Nasıl ki tüm driver’lar farklı, GPIO portları için de tüm kütüphaneler henüz hazır değil, ama GitHub sayfalarında gördüğüm üzere SinoCOIP takımı, WiringPi kütüphanesini Banana Pi için hazırlamış, Raspbian’da denemek için kurup derlemek lazım sadece.
Repo adresi şu: https://github.com/BPI-SINOVOIP/BPI-WiringPi
Kurulumu ise çok basit birkaç aşamadan ibaret, indirip kurmak lazım sadece yani:
Raspbian’da komutlar okubenisindeki ile aynı.
git clone https://github.com/BPI-SINOVOIP/BPI-WiringPi.git -b BPI_M3 cd BPI-WiringPi chmod +x build sudo ./build
Kurulum ardından halen yapılmadıysa cihazı yeniden başlatın.
Kurulumdan sonra m3_test klasörü altındaki örnekleri derleyebilir, veya Raspberry Pi B+ ve üzerinde kullandığınız WiringPi kodlarını doğrudan BPi-M3 üzerinde kullanabilirsiniz.
Bu yazıyı okurken (sanmıyorum ama) depo silinmiş veya adı değişmiş olabilir, alternatif olarak 10 ocak 2016 tarihi ile en güncel kodları buradan da indirebilirsiniz.
Aşağıda kendilerinin bu konu için çektiği bir video var:
WiFi (kablosuz internet)
Cihazdaki dahili Wifi çipi Raspbian ve ARMBian’da doğrudan çalışıyor, Daha iyi bir çekim gücü için tabi bir anten takmak gerekecek tabi.
Terminalden kablosuz ağı aktif edip kolaylıkla tarama yaptım:
Göreceğiniz üzere doğrudan tanımlanmıştı.
- Önce iwconfig komutu ile Linux hangi adreste kablosuz ağı görüyor onu aradım. wlan2 olarak ayarlıydı.
- Ardından WiFi’yi aktif hale getirdim: ifconfig wlan2 up (buradaki wlan2 az önceki değer)
- Ardından ağda arama yaptım: iwlist wlan2 scan, ve de yakındaki WiFi ağlarını anten olmamasına rağmen gördüm.
Kısaca, sitemizdeki WiFi ağlarına bağlanma, Wicd gibi Raspberry Pi’de olan pek çok yolu sürücü kurulu olarak var sayıp doğrudan bu cihazda da kullanabilirsiniz.
ARMBian
Bu minimal dağıtım geliştiricileri tarafından SinoCOIP resmen desteklenmese de SinoVOIP eski sürüm kernelleri ile birleştirip paketlenmiş. Çok az açık proses vardı, bu da baya hoşuma gitti:
Armbian’da raspi-config yok, ama onun yerine çok daha basit, önden hazır konfigleri yükleyen “bpi-bootsel” isminde bir araç var.
bpi-bootsel
komutu ile seçebileceğiniz mevcut ayarlar geliyor.
bpi-bootsel /imaj/yolu diyerek boot ayarını değiştirebilirsiniz.
Bu ayarların özelleştirilmesine aşağıda değineceğim.
Tavsiyem, eğer cihazı headless ve sunucu olarak kullanacaksanız bu dağıtımı düşünmenizden yana.
Android Kurulumu
Cihaza Android kurulabiliyor, bunun için de bir makale yazmışlar, Windows, Linux ve OSX’te çalışıyor, ama kurmama rağmen ben muhtemelen aynı sorundan görüntü alamadım, bu yüzden buraya bırakıyorum:
http://forum.banana-pi.org/t/how-to-burn-android-image-to-bpi-m3-emmc/
(dikkatinizi çekerim, bu prototipin güç girişi USB’den değil, adaptör ile 🙂 )
Kurulum uğraştırdı evet, ama Bpi-m1’den beri bu cihazlarda Android kurlabildiği de bilinen bir şey. Ama ben hala görüntü alamadığım için maalesef sadece video bırakabiliyorum.
Bu durumda diğer dağıtımları denemeyeceğim, çünkü görüntü alamıyorum (aşağıda notlar kısmında buna değineceğim).
Dahili eMMC hafızaya Linux imajı yüklemek
Bu metod ile board üzerindeki Samsung marka, 8GB dahili hafızaya istediğiniz bir dağıtımı kurabilir, ve de SD kart olmaksızın içinden çalıştırabilirsiniz!
Yalnız burada bunu kurmak için hazır bir araç tedarik edilmediğinden, imajı kurmak için yine bir SD kart lazım oldu.
Mantık: SD karta geçici olarak atılan işletim sistemi üzerinden, ve de flash disk, yerel ağ, internet gibi bir yerden edinilmiş bir imajı Linux terminali altında Raspberry Pi imajı atar gibi yazmak.
Yapılacaklar:
- Öncelikle geçici olarak en az 8 GB bir SD herhangi bir Banana Pi M3 imajını kurun
- Ardından 8GB’lık, asıl eMMC karta kurulacak .img dosyasına bir şekilde erişmelisiniz. En zahmetsiz yolu bir flash diski NTFS olarak biçimlemeli (4GB’dan büyük dosyaları atabilmek için) veya harici bir USB Hard disk bağlamalısınız.
- Ardından Samba makalemizin ilk kısmındaki gibi diski mount etmelisiniz. Diskiniz NTFS ise mount tipine ntfs-3g demelisiniz.
- (Opsiyonel): Alternatif olarak kullandığınız makineye ssh daemon kurup “sshfs” ile kullandığınız bilgisayarınızın diskini Banana Pi’ye de mount edebilirsiniz. Bunun için şu İngilizce makaledeki yolları izlemelisiniz.
- Mount ettikten sonra SD kartın yolunu öğrenmeliyiz: Birinci çıkacak harici SD kart olacak, ikincisi de dahili. %99 /dev/mmcblk1 yolu, ama emin olalım yine de:Bunun için sudo fdisk -l komutunu kullanın
Gördüğünüz üzere /dev/mmcblk1 miş asıl yolu (ikinci kart / disk). .img dosyasını bu yola yazacağız ve partisyonlar dolacak.
- İmaj yazma komutu da şöyle:
sudo dd if=/imaj/yolu.img of=/dev/mmcblk1 bs=1m
if = input file, giriş dosyası
of = outout file, çıkış noktası
bs = block size, 1er megabyte’lık bloklar halinde yazdırdım. SD kartınız hızlı ise 4m de diyebilirsiniz. - Yazma işlemi bittikten sonra cihazı kapatın, harici SD kartı çıkartın ve de cihazı yeniden başlatın.
- Eğer her şeyi sorunsuz yaptıysanız açtığınızda işletim sistemi dahili SD karttan yüklenecek.
Sata Sürücüsü
Sata sürücüsü dediğimiz şey aslında düz Banana Pi (M1)’e göre daha farklı. Banana Pi M1’de dedike bir SATA çip’i vardı, bu yüzden USB’lerle dar boğaz olmamakta, ve de cihaz root’u sata sürücüsünden boot edilebiliyordu. BPi-M3’te ise USB – Sata köprüsü kullanılmış, yani gördüğümüz SATA portu USB-SATA dönüştürücüsü ucundan çok farklı değil. Eğer ağır sata trafiğiniz olacaksa buna dikkat etmeyi unutmayın.
Performans Testleri
ARMBian’ı kurcalarken hazır içlerindeki en hafif dağıtım varken sysbench ile birkaç test yapmak istedim
İşlemci Testi
sysbench ile terminalde işlemcileri test etmek istedim. 8 Çekirdek burada cidden hissedilir fark ettiriyor.
Test Kodum:
sysbench --test=threads --cpu-max-prime=20000 --num-threads=8 run
8 thread’i de kullanarak maksimum 2 GHZ’de işlemci testi sonucum:
Not: Eskiden ısınma sorunu varmış ama düzelmiş.
Bellek Testi
Cihazda 2 GB bellek var, ama ne kadar hızlı ? Okuma ve yazmayı ayrı ayrı test ettim:
Okuma
sysbench --test=memory --memory-block-size=1K --memory-scope=global --memory-total-size=2G --memory-oper=read run
Ortalama 213.2 Megabyte / saniye bellekten okuma hızı var. LPDDR3 bellek ve böyle bir yonga için yeterli bir rakam bence.
Yazma
sysbench --test=memory --memory-block-size=1K --memory-scope=global --memory-total-size=2G --memory-oper=write run
Diğer benchmarklar
ARMBian forumlarından tkaiser’ın güncel imajllarla testlerini de bu linkte bulabilirsiniz.
Ayar dosyası?
Mimaride u-boot eski olduğu için henüz scriptingg desteklemediğinden, config.txt gibi bir değerden ayar okuyup da girilemediği için şimdilik ayarları girip elinizle derlemelisiniz.
Repoyu indirip bir profilin klonunu alıp bunun gibi bir dosyayı alıp ihtiyaçlarınıza göre şuradaki listeye göre düzenleyip yukarıda da belirttiğim bpi-bootsel gibi bir imaja atmanız lazım.
Bu ciddi bir handikap. Umarım kısa sürede güncellerler.
DC Girişi Bağlama
Bu da yapılan popüler hacklerden biri, düşük voltajla işlemciler daha yavaş çalıştığından, çok bileşen olunca da teoride 5v 1.8a ile kısıtlı mikro usb yuvasından gelen akım da yetersiz olacağından, DC girişi için de yuva olduğundan dolayı DC değil USB girişini alanlardan lehimleyenler var, eğer çok yük altında kalacaksa cihaz ve de kapanmalar / yavaşlamalar yaşıyorsanız buna benzer bir yola gitmenizi önerebilirim:
Notlar:
Kendimce bazı iyi ve kötü yönlerini değerlendirmek istiyorum:
Çoğu sorun yazılım güncellemeleri ile olacak, şimdilik yazılım tarafındaki eksikler en büyük darboğaz
- Dökümantasyon neredeyse yok, çoğu şeyi kendiniz keşfetmelisiniz
- Voltage drop olabiliyor yüksek güç altında, çekirdeklerin hız çarpanları düşüyor, 2A ile beslemelisiniz ve de ağır yük altında kalacaksa heatsink / fan gibi araçlar kullanmalısınız.
- config.txt gibi bir ayar dosyası lazım, her config güncellemede bsp’yi yeniden derlemek zaman kaybı
- İmajlar en güncel bsp’leri barındırmıyor, https://github.com/BPI-SINOVOIP/BPI-M3-bsp adresindeki yönermelerden alıp derlemeniz lazım
- WiFi için paketin içinde bir anten olmalıydı bence.
- WiringPi var, rpi.pyhon kütüphaneleri ve WiringX’e de destek gelmesini bekliyorum.
- Donanım olarak çok şık duruyor
- Fiyatı (70-80 dolar civarı) bu donanım için güzel
Sadece güç için, güzel bir güç beselemesi ile oldukça faydalı bir sunucu olacaktır, ama bence son kullanıcı için halen erken. BPi-M2’de de aynısı olmuştu. Birkaç aya umarım daha stabil dağıtımlar çıkar.