Целта на презентацията е да разгледа най-популярните платки с ARM процесори от типа на OLinuXino, CubieBoard, Banana Pi, Beaglebone black, Odroid, Raspberry Pi и да предостави насоки как да се адаптират Linux ядрото и различни Linux дистрибуции за тях. Ще бъдат представени практически примери за работа с Das U-Boot, Linux-sunxi, Debian и Linux базираната софтуерна платформа Tizen на серията open-source hardware платки OLinuXino. Също така ще бъде споделена информация за DIY (Do It Yourself) създаване на свободни устройства с отворен хардуер и софтуер.
6. OpenFest 2014
@leonanavi
6
ARM Holdings
● Компанията е основана през 1990г.
● Бизнес моделът им е базиран на
интелектуалната собственост
● ARM чипове се ползват от 95% от
смартфоните, 80% от цифровите фотоапарати
и 35% от всички други електронни устройства
7. OpenFest 2014
@leonanavi
7
Single Board Computers
№ SBC CPU
1 Raspberry Pi Model B ARM1176JZF-S @ 700MHz
2 BeagleBone Black AM335x 1GHz ARM® Cortex-A8
3 Odroid-U3 1.7GHz Exynos4412 Prime Cortex-A9 Quad-core
4 CubieTruck Allwinner A20 ARM Cortex-A7 @ 1GHz dual-core
5 Banana Pi Allwinner A20 ARM Cortex-A7 @ 1GHz dual-core
6 Parallella Zynq Z7010 / Zynq Z7020 Dual ARM Cortex
7 Cubieboard2 Allwinner A20 ARM Cortex-A7 @ 1GHz dual-core
8 A10-OLinuXino-Lime Allwinner A10 Cortex-A8 @ 1GHz
9 Galileo Intel Quark X1000 @ 400MHz
10 Udoo Quad Freescale i.MX 6 ARM Cortex-A9 Quad core @ 1GHz
9. OpenFest 2014
@leonanavi
9
Open Source Hardware
● Натрупване и споделяне на опит
● Eвтини и достъпни прототипи
● Примери: OLinuXino, Arduino
10. Linaro
Организация с нестопанска цел, предоставяща:
OpenFest 2014
@leonanavi
10
● Инструменти за разработка за ARM
● Linux ядра за ARM
● Linux дистрибуции за ARM
12. OpenFest 2014
@leonanavi
12
Как да подкараме Linux на
ARM?
● Bootloader (Das U-Boot, Barebox)
● Linux kernel
● Файлова система на Linux дистрибуция
13. OpenFest 2014
@leonanavi
13
Das U-Boot
● Универсална първоначална зареждаща
програма
● Лиценз GPLv2
http://git.denx.de/u-boot.git/
14. OpenFest 2014
@leonanavi
14
Linux kernel
● Създаден: 1991г
● Лиценз: GPLv2
● Последна стабилна версия: 3.17
● LTSI: 3.14
● Топ разработчици: Intel, Red Hat, Linaro,
Samsung , SUSE, IBM, Renesas Electronics,
Google, други
15. OpenFest 2014
@leonanavi
15
Linux-sunxi
● Sunxi – наименование на всички устройства с ARM
SoC от китайската компания Allwinner Technology
● Инструкции за създаване на linux-sunxi kernel 3.4 за
A20
git clone -b sunxi-3.4 https://github.com/linux-sunxi/linux-sunxi.git
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- sun7i_defconfig
make -j4 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage modules
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=output modules_install
● Резултат
arch/arm/boot/uImage
output/lib/modules/3.4.XXX/
16. OpenFest 2014
@leonanavi
16
Device Tree
● DTS - дървовидна структура от данни, която
описва физическите устройства в системата
● DTB - бинарен файл, който съдържа
описание на хардуера
17. OpenFest 2014
@leonanavi
17
FEX
● Стандартен формат за описание на хардуера
на устройства с Allwinner SoC
● FEX файлът се компилира до двоичен файл
script.bin
● Инструменти
https://github.com/linux-sunxi/sunxi-tools
https://github.com/mripard/sunxi-babelfish
18. OpenFest 2014
@leonanavi
18
uEnv.txt
● Текстов файл, съдържащ параметри към
Linux ядрото
console=tty0
loglevel=5
extraargs=console=ttyS0,115200 disp.screen0_output_type=3
disp.screen0_output_mode=EDID:800x480p33
hdmi.audio=EDID:0
19. OpenFest 2014
@leonanavi
19
Как да си изберем Linux
дистрибуция за ARM?
● Кои са най-популярните дистрибуции за ARM?
Arch Linux, Debian, Fedora, Ubuntu
● Как лесно да си направим собствена дистрибуция за ARM?
Yocto
● Има ли други Linux базирани ОС за ARM?
Android, Tizen, Firefox OS, SailfishOS
● Кои са често срещаните проблеми?
По-стари версии на Linux кеrnel, затворени GPU драйвери,
Wayland vs X11
20. OpenFest 2014
@leonanavi
20
Пример: Tizen
● Дистрибуции, на които може да се крос-
компилира Tizen за ARM: Ubuntu, Debian,
Fedora, CentOS, OpenSUSE
● Инструменти: Git, Gerrit, GBS, MIC
● Алгоритъм: сваляне на кода, компилиране на
пакети за ARM с GBS, създаване на Tizen
образ от ks файл
21. OpenFest 2014
@leonanavi
21
Подготовка на microSD карта
● FAT дял за Linux кеrnel и bootloader
● Ext един или повече дялове за файловата
система на Linux дистрибуцията
● Инструмент за съставяне на дяловете: fdisk
22. OpenFest 2014
@leonanavi
22
Отстраняване на грешки
● Наблюдение на работата чрез UART
sudo screen /dev/ttyUSB0 115200
25. OpenFest 2014
@leonanavi
25
DIY таблет
● ARM платка
● Дисплей
● Батерия или захранване
● Малко кабели
26. Как да пуснем Linux на Android
таблет?
● Изберете таблет с ARM SoC, съвместим с
желаната Linux дистрибуция, например A20
● Извлечете конфигурационни файлове от
Android, например за таблет с A20:
$ adb shell
# mkdir /sdcard/nanda
# mount -t vfat /dev/block/nanda /sdcard/nanda
# exit
$ adb pull /sdcard/nanda/script.bin script.bin