Savage Board
İşlemci | Freescale i.MX6 Cortex A9 1Ghz / Quad Core |
---|---|
RAM | DDR3 1GB |
Storage | eMMC 8GB |
GPU | 3D GPU Vivante GC2000 |
Hard FP (eabihf) | Var |
USB | 2x Ext / 1x Int 1with mPCIe |
SATA | Var |
Micro SD Kart | Var |
Ethernet | Var (Gigabit) |
HDMI | Var |
Konsol | Var, RS232 DB9 |
NAND Flash | Yok |
Toolchain Seçimi
Savage Board hard-floating desteğine sahip olduğundan eabihf toolchain'ler kullanılabileceği, soft-float toolchain'ler de kullanılabilmektedir.
Güncel Linaro, CodeSourcery ve Arago toolchain'leri sorun yaşamadan kullanabilirsiniz.
U-boot
http://www.savageboard.org adresinden Download bölümünden uboot-savage-1.5.tar.gz
dosyası indirilmelidir. Aşağıdaki şekilde güncel versiyonu indirilip hardfp veya softfp toolchain'ler ile derlenebilir:
$ wget http://www.savageboard.org/Downloads/uboot-savage-1.5.tgz
$ tar xf uboot-savage-1.5.tgz
$ cd uboot-imx
$ make CROSS_COMPILE=arm-none-linux-gnueabi- mx6q_savage_config
$ make CROSS_COMPILE=arm-none-linux-gnueabi- -j4
İşlem bitiminde uboot.bin
dosyası oluşacaktır. Bu dosyayı kullanarak sistemi recovery yöntemiyle açabilirsiniz. Ancak derlediğiniz u-boot binary imajını eMMC içerisinde yer alan imaj ile değiştirmek için yapılması gereken ek işlemler bulunmaktadır. Konunun detayına geçmeden, iMX6 serisinde kullanılan IVT Tablosu Kullanımı konusuna değinmemiz gereklidir.
IVT Tablosu
U-boot Konsolunda Çalışmak
mmc dev 2
setenv bootargs console=ttymxc0,115200 root=/dev/mmcblk0p2 rootwait rw
fatload mmc 2:1 0x12000000 uImage
bootm 0x12000000
Kernel
http://www.savageboard.org adresinden Download bölümünden kernel_savage-1.5.tgz
dosyası indirilmelidir.
$ wget http://www.savageboard.org/Downloads/savage-arch-kernel-3.10.17-1.1.tar.gz
$ tar xf savage-arch-kernel-3.10.17-1.1.tar.gz
$ cd savage-kernel-3.10.17-20141127
$ cp arch/arm/config/savage_defconfig .config
$ make ARCH=arm imx6q-savage.dtb uImage -j8 \
LOADADDR=0x10008000 DTB=imx6q-savage.dtb \
CROSS_COMPILE=arm-none-linux-gnueabi-
Modülleri derlemek için:
$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- modules -j8
Modüller derlendikten sonra modules_install
target'ı kullanılarak, modüllerin kurulacağı kök dosya sistemi INSTALL_MOD_PATH
parametresi ile aşağıdaki gibi verilmelidir (kök dosya sisteminin /opt/savage
dizininde oluşturulduğunu varsayarsak):
$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- \
INSTALL_MOD_PATH=/opt/savage modules_install
Recovery
Board'un açılmaması, boot yükleyici alanının bozulması vb. durumlarında kullanabileceğiniz bir recovery mekanizması mevcuttur.
Cihazı bu moda geçirebilmek için, micro-usb kablosu cihaz ile bilgisayarınız arasında takılı durumdayken, kartın ortasındaki küçük butona basılı tutup karta enerji vermeniz gereklidir. Bu şekilde açıldığında bilgisayarınızdan lsusb
ile bakıldığında aşağıdaki gibi bir çıktı görünecektir:
$ lsusb
Bus 001 Device 009: ID 15a2:0054 Freescale Semiconductor, Inc. i.MX6Q SystemOnChip in RecoveryMode
Kart recovery modunda iken, micro-usb kablosu üzerinden derlemiş olduğunuz u-boot.bin dosyasını karta gönderebilir ve çalıştırılmasını sağlayabilirsiniz. Ancak bu süreci işletebilmek için, öncelikle imx_usb_loader projesini indirip derlemeliyiz. Projeyi derleyebilmeniz sistemde libusb development paketleri de kurulu olmalıdır, değilse öncelikle aşağıdaki şekilde paketleri yüklemelisiniz:
$ sudo apt-get install libusb-1.0-0-dev libusb-dev
Ardından projeyi clone'layıp aşağıdaki şekilde derleyiniz:
$ git clone https://github.com/boundarydevices/imx_usb_loader.git
$ cd imx_usb_loader
$ make
İşlem bitiminde imx_usb uygulaması oluşacaktır. Uygulamayı sudo aracılığıyla root erişim haklarıyla çalıştırıp, parametre olarak derlediğiniz u-boot.bin dosyasını vermelisiniz:
$ sudo ./imx_usb ../uboot-imx/u-boot.bin