Адаптация на linux за arm устройства

28
Адаптация на Linux за ARM устройства Леон Анави @leonanavi [email protected] OpenFest 2014

Upload: leon-anavi

Post on 13-Jul-2015

411 views

Category:

Engineering


3 download

TRANSCRIPT

Page 1: Адаптация на Linux за ARM устройства

Адаптация на Linux за ARM устройства

Леон Анави@[email protected]

OpenFest 2014

Page 2: Адаптация на Linux за ARM устройства

OpenFest 2014@leonanavi

2

Съдържание

● ARM eкосистемата● Linux и ARM● Свободни устройства с отворен хардуер и софтуер

Page 3: Адаптация на Linux за ARM устройства

ARM eкосистемата

Page 4: Адаптация на Linux за ARM устройства

OpenFest 2014@leonanavi

4

Защо Linux и ARM?

● Смартфони и таблети● In-Vehicle Infotainment (IVI)● Internet of Things (IoT)

Page 5: Адаптация на Linux за ARM устройства

OpenFest 2014@leonanavi

5

CISC срещу RISC

Page 6: Адаптация на Linux за ARM устройства

OpenFest 2014@leonanavi

6

ARM Holdings

● Компанията е основана през 1990г.● Бизнес моделът им е базиран на интелектуалната собственост● ARM чипове се ползват от 95% от смартфоните, 80% от цифровите фотоапарати и 35% от всички други електронни устройства

Page 7: Адаптация на Linux за ARM устройства

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

Page 8: Адаптация на Linux за ARM устройства

OpenFest 2014@leonanavi

8

Производители на ARM SoC

● Allwinner Tech● Broadcom● Freescale● MediaTek● Samsung● Renesas● Rockchip● Texas Instruments● Qualcomm● други

Page 9: Адаптация на Linux за ARM устройства

OpenFest 2014@leonanavi

9

Open Source Hardware

● Натрупване и споделяне на опит● Eвтини и достъпни прототипи● Примери: OLinuXino, Arduino

Page 10: Адаптация на Linux за ARM устройства

OpenFest 2014@leonanavi

10

Linaro

Организация с нестопанска цел, предоставяща:● Инструменти за разработка за ARM● Linux ядра за ARM● Linux дистрибуции за ARM

Page 11: Адаптация на Linux за ARM устройства

Linux & ARM

Page 12: Адаптация на Linux за ARM устройства

OpenFest 2014@leonanavi

12

Как да подкараме Linux на ARM?● Bootloader (Das U-Boot, Barebox) ● Linux kernel● Файлова система на Linux дистрибуция

Page 13: Адаптация на Linux за ARM устройства

OpenFest 2014@leonanavi

13

Das U-Boot

● Универсална първоначална зареждаща програма● Лиценз GPLv2

http://git.denx.de/u-boot.git/

Page 14: Адаптация на Linux за ARM устройства

OpenFest 2014@leonanavi

14

Linux kernel

● Създаден: 1991г● Лиценз: GPLv2● Последна стабилна версия: 3.17● LTSI: 3.14 ● Топ разработчици: Intel, Red Hat, Linaro, Samsung , SUSE, IBM, Renesas Electronics, Google, други

Page 15: Адаптация на Linux за ARM устройства

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/

Page 16: Адаптация на Linux за ARM устройства

OpenFest 2014@leonanavi

16

Device Tree

● DTS - дървовидна структура от данни, която описва физическите устройства в системата● DTB - бинарен файл, който съдържа описание на хардуера

Page 17: Адаптация на Linux за ARM устройства

OpenFest 2014@leonanavi

17

FEX

● Стандартен формат за описание на хардуера на устройства с Allwinner SoC● FEX файлът се компилира до двоичен файл script.bin● Инструменти

https://github.com/linux-sunxi/sunxi-tools

https://github.com/mripard/sunxi-babelfish

Page 18: Адаптация на Linux за ARM устройства

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

Page 19: Адаптация на Linux за ARM устройства

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

Page 20: Адаптация на Linux за ARM устройства

OpenFest 2014@leonanavi

20

Пример: Tizen

● Дистрибуции, на които може да се крос-компилира Tizen за ARM: Ubuntu, Debian, Fedora, CentOS, OpenSUSE● Инструменти: Git, Gerrit, GBS, MIC● Алгоритъм: сваляне на кода, компилиране на пакети за ARM с GBS, създаване на Tizen образ от ks файл

Page 21: Адаптация на Linux за ARM устройства

OpenFest 2014@leonanavi

21

Подготовка на microSD карта

● FAT дял за Linux кеrnel и bootloader● Ext един или повече дялове за файловата система на Linux дистрибуцията● Инструмент за съставяне на дяловете: fdisk

Page 22: Адаптация на Linux за ARM устройства

OpenFest 2014@leonanavi

22

Отстраняване на грешки

● Наблюдение на работата чрез UART

sudo screen /dev/ttyUSB0 115200

Page 23: Адаптация на Linux за ARM устройства

Свободни устройства

Page 24: Адаптация на Linux за ARM устройства

OpenFest 2014@leonanavi

24

DIY лаптоп

● ARM платка● Motorola Lapdock● HDMI кабел● USB кабели● преходници

Page 25: Адаптация на Linux за ARM устройства

OpenFest 2014@leonanavi

25

DIY таблет

● ARM платка● Дисплей● Батерия или захранване● Малко кабели

Page 26: Адаптация на Linux за ARM устройства

Как да пуснем 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

Page 27: Адаптация на Linux за ARM устройства

OpenFest 2014@leonanavi

27

Полезни връзки

● https://www.olimex.com/● https://www.linaro.org/● http://linux-sunxi.org/● https://github.com/leon-anavi/tizen-sunxi● http://wiki.tizen.org/

Page 28: Адаптация на Linux за ARM устройства

OpenFest 2014@leonanavi

28

Въпроси?