Table of Contents

Hardkernel Odroid-X2

Hardware

URL: http://www.hardkernel.com/renewal_2011/products/prdt_info.php?g_code=G135235611947

CPU Cortex-A9 Quad Core 1.7Ghz
GPU Mali-400 Quad Core 440MHz
RAM 2GB LP-DDR2 880Mega data rate
LAN 10/100Mbps Ethernet RJ-45
Video out Micro HDMI
Storage SD card reader
Napájení 5V @ 2A (3A pojistka)
Rozměry 90x94mm
Číslo Pinu Název pinu na expanzním konektoru ODROID-X2 Název pinu Exynos4412 Funkce
1 T_INT XEINT27 GPX3[3]/WAKEUP_INT3[3]/KP _ROW11/ALV_DBG23
2 BL_EN UXuRTSn[2] GPA1[3]/UART_2_RTSn/I2C_3_SCL
3 SDA Xi2 c1SDA GPD1[2]/I2C_1_SDA
4 T_RST XEINT17 GPX2[1]/WAKEUP_INT2[1]/KP _ROW[1]/ALV_DBG13
5 SCL IXi2 c1SCL GPD1[3]/I2C_1_SCL
6 SPI_1.CLK XspiCLK[1] GPB[4]/SPI_1_CLK/IEM_SCLK
7 T_SCL XspiMOSI[0] GPB[3]/SPI_0_MOSI/I2C_5_SCL
8 T_SDA XspiMISO[0] GPB[2]/SPI_0_MISO/I2C_5_SDA
9 XE.INT12 XEINT12 GPX1[4]/WAKEUP_INT1[4]/KP _COL[4]/ALV_DBG[8]
10 SPI_1.CSN XspiCSn[1] GPB[5]/SPI_1_nSS/IEM_SPWI
11 SPI_1.MOSI XspiMOSI[1] GPB[7]/SPI_1_MOSI
12 VDDQ_LCD
13 PWM_BRT XpwmTOUT[1] GPD0[1]/TOUT_1/LCD_PWM
14 RXD XuRXD[3] GPA1[4]/UART_3_RXD/UART_AUDIO _RXD
15 SPI_1.MISO XspiMISO[1] GPB[6]/SPI_1_MISO
16 TXD XuTXD[3] GPA1[1]/UART_3_TXD/UART_AUDIO _TXD
17 VD19 XvVD19 GPF2[7]/LCD_VD19
18 VD21 XvVD21 GPF3[1]/LCD_VD21
19 VD2 XvVD[2] GPF0[6]/LCD_VD[2]
20 VD8 XvVD[8] GPF1[4]/LCD_VD[8]
21 VD15 XvVD15 GPF2[3]/LCD_VD15
22 VD0 XvVD[0] GPF0[4]/LCD_VD[0]
23 VCLK XvVCLK GPF0[3]/LCD_VCLK
24 VD7 XvVD[7] GPF1[3]/LCD_VD[7]
25 VD18 XvVD18 GPF2[6]/LCD_VD18
26 VD11 XvVD11 GPF1[7]/LCD_VD11
27 VSYNC XvVSYNC GPF0[1]/LCD_VSYNC
28 VD6 XvVD[6] GPF1[2]/LCD_VD[6]
29 VDEN XvVDEN GPF0[2]/LCD_VDEN
30 VD20 XvVD20 GPF3[0]/LCD_VD20
31 HSYNC XvHSYNC GPF0[0]/LCD_HSYNC
32 GND Ground
33 VD3 XvVD[3] GPF0[7]/LCD_VD[3]
34 VD12 XvVD12 GPF2[0]/LCD_VD12
35 VD5 XvVD[5] GPF1[1]/LCD_VD[5]
36 VD10 XvVD10 GPF1[6]/LCD_VD10
37 VD14 XvVD14 GPF2[2]/LCD_VD14
38 VD17 XvVD17 GPF2[5]/LCD_VD17
39 VD9 XvVD[9] GPF1[5]/LCD_VD[9]
40 VD23 XvVD23 GPF3[3]/LCD_VD23
41 VD1 XvVD[1] GPF0[5]/LCD_VD[1]
42 VD4 XvVD[4] GPF1[0]/LCD_VD[4]
43 VD22 XvVD22 GPF3[2]/LCD_VD22
44 VD13 XvVD13 GPF2[1]/LCD_VD13
45 VD16 XvVD16 GPF2[4]/LCD_VD16
46 SYS DC Jack +5V
47 ADC.AIN2 XadcAIN[2] XadcAIN[2]
48 VDD_IO +1,8 V
49 ADC.AIN3 XadcAIN[3] XadcAIN[3]
50 GND Ground

Napájení

Modul má od výroby vyvedený napájecí bod na který lze přiletovat napájecí kablík MLAB, který lze pak dále připojit k napájecím modulům UNIPOWER02A. Na plošném spoji ODROIDu je pak od výroby připravena pozice pro ochrannou diodu D7, která však není osazena. Je velmi vhodné tuto diodu doplnit například v MLABu běžně používaným typem M4. Čímž se zařízení stane odolné proti náhodnému přepólování.

Po připojení napájení se na desce rozsvítí červená LED. A nic dalšího se neděje dokud ODROID nemá z čeho bootovat.

Připojení I²C

Odroid má sběrnici I²C vyvedenu na piny na expanzním konektoru. Připojení I2C zařízení je proto snadné. Je však potřeba dát pozor na fakt, že logika odroidu pracuje na napěťové úrovni 1,8 V a běžné logické úrovně jako 3,3V nebo +5V pro něj mohou být destruktivní. Je proto vhodné připojit sběrnici přes rozhraní zabezpečující alespoň minimální ochranu. K tomu lze využít modul: I2Chub02A, který kromě translace napěťových úrovní vyřeší i možnost připojení více zařízení se stejnými adresami.

Realizace připojení modulu vypadá následovně:

Na fotografii to není patrné ale datové piny nejsou použity úplně poslední ale je volná ještě jedna řada na fotografii zdola.

Použité piny jsou:

Číslo Pinu Název pinu na expanzním konektoru ODROID-X2 Funkce
3 SDA GPD1[2]/I2C_1_SDA
5 SCL GPD1[3]/I2C_1_SCL
48 VDD_IO Napájení 1,8 V LDO3 of MAX77686
50 GND Ground

Požití I2C

Obecné informace o používání I²C lze najít na stránce I2C a MLAB.

Pokud chceme, aby sběrnice I²C fungovala ihned po nabootování, tak je třeba aby jádro nahrálo modul i2c-dev při startu. To lze zařídit přidáním modulu do souboru /etc/modules

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
i2c-dev

Připojení monitoru

ODROID má pouze mikroHDMI výstup, který obsahuje pouze digitální obrazový signál. Je proto potřeba aby připojený monitor mel HDMI vstup. Redukce z HDMI na DVI nelze použít.

Otestované monitory, které s odroidem fungují jsou:

Software

Ubuntu

Obraz pro boot z SD karty (minimálně 8 GB) je ke stažení v MLAB Downloads (720MB). Je u něj i README.txt soubor popisující způsob jeho nahrání na SD kartu.

Případně je možné použít přímo obrazy z HardKernel.

Příprava SD karty

Rozbalený image se naklonuje přímo na SD kartu příkazem

dd if=image.img of=/dev/sdb bs=1M
sync

Důležité je použít při zápisu celé zařízení tj. /dev/sdb místo oddílu /dev/sdb1

Aktivácia všetkých jadier pod linuxom

Po nabootovaní je aktívne len 1 jadro.

$ cat /sys/devices/system/cpu/online 
0

Pre aktiváciu zvyšných 3 jadier je možné použiť nasledujúce príkazy:

echo 1 > /sys/devices/system/cpu/cpu1/online
echo 1 > /sys/devices/system/cpu/cpu2/online
echo 1 > /sys/devices/system/cpu/cpu3/online

Taktiež je zapnutá frekvenčná regulácia jadier, ak nie je cpu vyťažené, jadra bežia na 200MHz. Pri vyťažení sa vedia jadrá rozbehnúť na 1.6GHz (popr. po ďalšom nastavení až na 2GHz).

Pre konštantú frekvenciu 1.6GHz stačí použiť príkaz:

echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Dostupné módy réžie frekvencie:

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors 
conservative userspace powersave ondemand performance

Rozdělení úložného prostoru

Obraz Ubuntu je vyrobený tak, že obsahuje dva oddíly s celkovou velikostí přibližně 6 GB a zbývající prostor je pak nevyužit.

Je proto vhodné ve zbývajícím prostoru vyrobit další oddíl na ukládání dat. To lze udělat například programem gparted. Novému oddílu se pak přiřadí mount point podle návodu pro fstab. Příklad konfigurace je následující

$ sudo cat /etc/fstab
# UNCONFIGURED FSTAB FOR BASE SYSTEM

UUID=e139ce78-9841-40fe-8823-96a304a09859 / ext4  errors=remount-ro,noatime 0 1
/dev/mmcblk0p3 /home ext4  errors=remount-ro,noatime 0 1
/dev/mmcblk0p1 /media/boot vfat defaults,rw,owner,flush,umask=000 0 0
tmpfs /tmp tmpfs nodev,nosuid,mode=1777 0 0
none /run/lock tmpfs rw,noexec,nosuid,nodev,size=5242880
none /run/shm tmpfs rw,noexec,nodev

Výsledek pak vypadá takto:

$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/mmcblk0p2   5544548 2462844   2800056  47% /
udev             1014224       4   1014220   1% /dev
tmpfs            1015816       8   1015808   1% /tmp
tmpfs             406328     604    405724   1% /run
none                5120       0      5120   0% /run/lock
none             1015816     100   1015716   1% /run/shm
/dev/mmcblk0p1    129039    7490    121550   6% /media/boot
/dev/mmcblk0p3   9845280 2987528   6357632  32% /home

Aktualizace kernelu

Poslední verzi kernelu pro zařízení odroid připravenou hardkernelem můžeme stáhnout pomocí připraveného skriptu:

wget http://builder.mdrjr.net/tools/kernel-update.sh
chmod +x kernel-update.sh
sudo ./kernel-update.sh

Systémové informace

Měření teploty

Teplotu lze vyčíst přímo ze senzoru v CPU například příkazem:

 cat /sys/devices/virtual/thermal/thermal_zone0/temp

Související stránky