Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

904 views

Published on

Целта на презентацията е да разгледа най-популярните платки с 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) създаване на свободни устройства с отворен хардуер и софтуер.

Published in: Engineering
  • Be the first to like this

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

  1. 1. Адаптация на Linux за ARM устройства Леон Анави @leonanavi leon@anavi.org OpenFest 2014
  2. 2. OpenFest 2014 @leonanavi 2 Съдържание ● ARM eкосистемата ● Linux и ARM ● Свободни устройства с отворен хардуер и софтуер
  3. 3. ARM eкосистемата
  4. 4. OpenFest 2014 @leonanavi 4 Защо Linux и ARM? ● Смартфони и таблети ● In-Vehicle Infotainment (IVI) ● Internet of Things (IoT)
  5. 5. OpenFest 2014 @leonanavi 5 CISC срещу RISC
  6. 6. OpenFest 2014 @leonanavi 6 ARM Holdings ● Компанията е основана през 1990г. ● Бизнес моделът им е базиран на интелектуалната собственост ● ARM чипове се ползват от 95% от смартфоните, 80% от цифровите фотоапарати и 35% от всички други електронни устройства
  7. 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
  8. 8. OpenFest 2014 @leonanavi 8 Производители на ARM SoC ● Allwinner Tech ● Broadcom ● Freescale ● MediaTek ● Samsung ● Renesas ● Rockchip ● Texas Instruments ● Qualcomm ● други
  9. 9. OpenFest 2014 @leonanavi 9 Open Source Hardware ● Натрупване и споделяне на опит ● Eвтини и достъпни прототипи ● Примери: OLinuXino, Arduino
  10. 10. Linaro Организация с нестопанска цел, предоставяща: OpenFest 2014 @leonanavi 10 ● Инструменти за разработка за ARM ● Linux ядра за ARM ● Linux дистрибуции за ARM
  11. 11. Linux & ARM
  12. 12. OpenFest 2014 @leonanavi 12 Как да подкараме Linux на ARM? ● Bootloader (Das U-Boot, Barebox) ● Linux kernel ● Файлова система на Linux дистрибуция
  13. 13. OpenFest 2014 @leonanavi 13 Das U-Boot ● Универсална първоначална зареждаща програма ● Лиценз GPLv2 http://git.denx.de/u-boot.git/
  14. 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. 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. 16. OpenFest 2014 @leonanavi 16 Device Tree ● DTS - дървовидна структура от данни, която описва физическите устройства в системата ● DTB - бинарен файл, който съдържа описание на хардуера
  17. 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. 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. 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. 20. OpenFest 2014 @leonanavi 20 Пример: Tizen ● Дистрибуции, на които може да се крос- компилира Tizen за ARM: Ubuntu, Debian, Fedora, CentOS, OpenSUSE ● Инструменти: Git, Gerrit, GBS, MIC ● Алгоритъм: сваляне на кода, компилиране на пакети за ARM с GBS, създаване на Tizen образ от ks файл
  21. 21. OpenFest 2014 @leonanavi 21 Подготовка на microSD карта ● FAT дял за Linux кеrnel и bootloader ● Ext един или повече дялове за файловата система на Linux дистрибуцията ● Инструмент за съставяне на дяловете: fdisk
  22. 22. OpenFest 2014 @leonanavi 22 Отстраняване на грешки ● Наблюдение на работата чрез UART sudo screen /dev/ttyUSB0 115200
  23. 23. Свободни устройства
  24. 24. OpenFest 2014 @leonanavi 24 DIY лаптоп ● ARM платка ● Motorola Lapdock ● HDMI кабел ● USB кабели ● преходници
  25. 25. OpenFest 2014 @leonanavi 25 DIY таблет ● ARM платка ● Дисплей ● Батерия или захранване ● Малко кабели
  26. 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
  27. 27. 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/
  28. 28. OpenFest 2014 @leonanavi 28 Въпроси?

×