Embedded GNU/Linux. Krzysztof Mazur



Podobne dokumenty
Instalacja cross-compilatora Inne elementy. Gentoo. Krzysztof Mazur. June 25, 2014

BF20 JTAG dla ARM ów z interfejsem USB Instrukcja obsługi

Instalacja NOD32 Remote Administrator

Gdy dystrybucja Linuksa staje się niepotrzebna

System kontroli dostępu ACCO NET Instrukcja instalacji

przedstawia Mariusz Gil

Jeden Linux. na różnych platformach sprzętowych. Jacek Danecki, Kamil Danecki. 12 marca 2016

Interfejsy: Ethernet do połączenia z siecią LAN Serial do połączenia z siecią WAN. pełną konfigurację urządzenia. Zadanie

K. Konopko; Toolchain. Jądro Linuksa. dr inż. Krzysztof Konopko

Git - podstawy. Błażej Kowalczyk. Koło Naukowe Robotyków KoNaR. 7 listopada 2014

Uruchomienie Raspberry Pi

Ćwiczenie Nr 7 Instalacja oraz konfiguracja wskazanego systemu operacyjnego

Najczęściej występujące problemy z instalacją i konfiguracją i ich rozwiązania.

ZADANIE.01 Cisco.&.Juniper Wprowadzenie do ZiMSK (budowa sieci, połączenie konsolowe, usuwanie konfiguracji urządzeń) 1h

BF30 OCDLINK/USBASP ARM-JTAG/AVR-ISP Programmer-debugger Instrukcja obsługi

Instalacja i konfiguracja serwera SSH.

Uruchomienie Raspberry Pi

Kompilacja image z CVS

Sprawozdanie z zadania 2. Artur Angiel, śr. 12:15

Konfiguracja IPSec Brama IPSec w Windows 2003 Server

Programowanie Systemów Wbudowanych

ABA-X3 PXES v Podręczna instrukcja administratora. FUNKCJE SIECIOWE Licencja FDL (bez prawa wprowadzania zmian)

CLI TELNET SSH HTTP SNMP

Instrukcja programowania płytek edycji 2014

ZiMSK. dr inż. Łukasz Sturgulewski dr inż. Artur Sierszeń

Instrukcja instalacji oprogramowania dla środowiska Linux

Spis treści. Wstęp... 10

Linux Kernel. Michał Kulling.

Tworzenie maszyny wirtualnej


Instalacja serwera baz danych PostgreSQL ze źródeł i pierwsze uruchomienie

Tworzenie oprogramowania

LINUX. Instalacja oprogramowania

Terminal ABA-X3 może być wykorzystywany jako terminal znakowy. Funkcja ta może być zrealizowana na kilka sposobów:

Wprowadzenie do obsługi systemu IOS na przykładzie Routera

EMBEDDED LINUX ON ARM9 CORE EMBEDDED LINUX NA PROCESORACH Z RODZINY ARM9

Konfiguracja i kompilacja jądra Linux. Based on Free Electrons

Instalacja środowiska MPI w systemie operacyjnym Linux

Instrukcja użytkownika Platforma transakcyjna mforex Trader dla systemu Linux

Programowanie Systemów Wbudowanych

Opis komunikacji na potrzeby integracji z systemem klienta (12 kwiecień, 2007)

Rys. 1. Widok uruchomienia polecenia apt-get install build-essential. Rys. 2. Widok uruchomienia polecenia apt-get install apache2

Qmail radość listonosza. Autorzy: Bartosz Krupowski, Marcin Landoch IVFDS

ZADANIE.01 Cisco.&.Juniper Wprowadzenie do ZiMSK (budowa sieci, połączenie konsolowe, usuwanie konfiguracji urządzeń)

MBUM #2. Zarządzanie kopiami konfiguracji RouterOS. Jacek Rokicki

Projekt inżynierski podręcznik użytkownika

1. Instalacja centrali Asterisk w systemie Ubuntu 12.04

Instrukcja instalacji oprogramowania dla środowiska MacOS

Instrukcja obsługi programu Monitor Wydruków

Migracja bazy w PostgreSQL do wersji Systemu Vendo od

Tu można sprawdzić poziom sygnału, adres IP karty SIM, 2G...LTE, wersję firmware...

Administrator systemu Linux program kursu. Wstęp. Część I Szybki wstęp do Linuksa. Część II Praca w środowisku tekstowym

w o l f e n s t e i n ENEMY TERRITORY P O R A D N I K INSTALACJA GRY W SYSTEMIE WINDOWS et.wrocek.com:27960

UMOWY CYWILNOPRAWNE Instalacja, rejestracja i konfiguracja programu

Materiały dodatkowe. Simulink Real-Time

Uruchomienie Intel Galileo

Konwerter RS-485->TCP/IP [ethernet] ATC-1000 SZYBKI START [konfiguracja urządzenia do współpracy z programem Meternet]

IBM SPSS Statistics - Essentials for R: Instrukcje instalacji dla Linux

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

Instrukcja konfiguracji programu Fakt z modułem lanfakt

WYDZIAŁ ELEKTRYCZNY KATEDRA TELEKOMUNIKACJI I APARATURY ELEKTRONICZNEJ. Pracownia specjalistyczna. Numer ćwiczenia: 5.

INSTALACJA LICENCJI SIECIOWEJ NET HASP Wersja 8.32

Warszawa, r. Copyright (c) 2015 Ministerstwo Finansów

INSTRUKCJA INSTALACJI APLIKACJI SEPI W SYSTEMIE LINUX. Dokumentacja zasilania aplikacji SEPI dla systemu Linux

EM8247 Elfin Module Board

DLACZEGO DYSTRYBUCJE NIE OBSŁUGUJĄ MOJEGO URZĄDZENIA? Marcin Juszkiewicz Software Engineer

Jak używać układów SoC Xilinx Zynq-7000 z Linuksem proste przykłady (2)

Instrukcja instalacji

K. Konopko; Toolchain. Toolchain. dr inż. Krzysztof Konopko

Brinet sp. z o.o. wyłączny przedstawiciel DrayTek w Polsce

ZL24PRG. Interfejs JTAG dla mikrokontrolerów ARM

Usługi sieciowe systemu Linux

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego

Rozdział 1. Informacje ogólne

Instalacja i konfiguracja SAS PC Files Server

Graficzny terminal sieciowy ABA-X3. część druga. Podstawowa konfiguracja terminala

Skanowanie podsieci oraz wykrywanie terminali ABA-X3

Instrukcja obsługi programu CMS Dla rejestratorów HANBANG

Instrukcja zainstalowania nowego oprogramowania do urządzeń firmy Inveo. Część I- Instrukcja dla zaawansowanych. Część II- Instrukcja krok po kroku.

Instrukcja konfiguracji programu Fakt z modułem lanfakt

System kontroli wersji git

Maple i wykresy. 1.1 Najpierw należy się zalogować. Jak to zrobić zostało opisane w moim poprzednim tutorialu.

Uruchamianie SNNS. Po uruchomieniu. xgui & lub snns & pojawia si e okno. programu. Symulator sztucznych sieci neuronowych SNNS 1

GRUB (GRand Unified Bootloader) - jest bootloaderem instalowanym standardowo w Ubuntu, potrafiącym obsłużyć kilka systemów jednocześnie (Multiboot).

INSTRUKCJA INSTALACJI I KONFIGURACJI APLIKACJI WEBSOFT CEIDG MONITOR

Konwerter RS-485->Ethernet [TCP/IP] CN-ETH-485 INSTRUKCJA [konfiguracja urządzenia do współpracy z programem MeternetPRO]

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja

Instrukcja inteligentnego gniazda Wi-Fi współpracującego z systemem Asystent. domowy

Podręcznik KGet. Gaurav Chaturvedi : Michał Bendowski : Jan Stożek

Konwerter RS-485->TCP/IP [ethernet] ATC-1000 SZYBKI START [konfiguracja urządzenia do współpracy z programem MeternetPRO]

Materiały dodatkowe. Raspberry Pi

Brinet sp. z o.o. wyłączny przedstawiciel DrayTek w Polsce

Pomoc do programu ISO Manager

Rozproszony system kontroli wersji GIT. Piotr Macuk

INSTRUKCJA INSTALACJI I KONFIGURACJI APLIKACJI WEBSOFT SITE ANALYZER 2.7.1

Podstawy technologii tworzenia oprogramowania BSP dla systemów wbudowanych (na przykładzie systemu operacyjnego QNX oraz narzędzi Lauterbach)

Laboratorium 5. Programy wspomagające zarządzanie I: MRTG i LinuxStat

Kalipso wywiady środowiskowe

Transkrypt:

Embedded GNU/Linux Krzysztof Mazur 26 czerwca 2014

0.1 autoconf $./configure --build=build-type \ --host=host-type \ --target=target-type Forma kanoniczna: machine-os-release arm-linux-elf arm-softfloat-none-eabi armv5tel-softfloat-linux-gnueabi i386-mingw32 i686-pc-linux-gnu i686-pc-cygwin alpha-netbsd m68k-coff-gcc 0.2 Dodanie katalogu z bibliotekami $ export TOPDIR=/home/user/grinn $ export LD_LIBRARY_PATH="$(TOPDIR)/lib" $ export LD_RUN_PATH="$(TOPDIR)/lib" $ export LDFLAGS="-L$(TOPDIR)/lib" $ export CFLAGS="$(CFLAGS) -I$(TOPDIR)/include" $ export CXXFLAGS="$(CXXFLAGS) -I$(TOPDIR)/include" $ export CPPFLAGS="$(CPPFLAGS) -I$(TOPDIR)/include" $ export PKG_CONFIG_PATH="$(TOPDIR)/lib/pkgconfig" $./configure 1 GNU toolchain 1.1 binutils $ wget ftp://ftp.gnu.org/gnu/ \ binutils/binutils-2.23.2.tar.bz2 $ wget ftp://ftp.gnu.org/gnu/ \ binutils/binutils-2.23.2.tar.bz2.sig $ gpg --recv-keys A4E55E93 $ gpg --verify binutils-2.23.2.tar.bz2.sig $ tar xfv binutils-2.23.2.tar.bz2.sig $ export arm_sysroot=/ścieżka/do/gentoo $ export arm_target=armv5tel-softfloat-linux-gnueabi $ mkdir build-arm $../buntils-2.23.2/configure --prefix=prefix --with-build-sysroot="$arm_sysroot" --with-sysroot="$arm_sysroot" --target="armv5tel-softfloat-linux-gnueabi" $ make -j5 $ make install

1.2 gcc $ wget ftp://ftp.gnu.org/gnu/gcc/ \ gcc-4.7.4/gcc-4.7.4.tar.bz2 $ wget ftp://ftp.gnu.org/gnu/gcc/ \ gcc-4.7.4/gcc-4.7.4.tar.bz2.sig $ gpg --recv-keys A4E55E93 $ gpg --verify gcc-4.7.4.tar.bz2 $ tar xfv gcc-4.7.4.tar.bz2 $ export arm_sysroot=/ścieżka/do/gentoo $ export arm_target=armv5tel-softfloat-linux-gnueabi $ mkdir gcc-arm $../gcc-4.7.4/configure --prefix=prefix \ --target="$arm_target" \ --with-build-sysroot="$arm_sysroot" \ --with-sysroot="$arm_sysroot" \ --with-gnu-as --with-gnu-ld \ --disable-multilib --enable-nls \ --disable-libstdcxx-pch --enable-languages=c,c++ 1.3 gdb $ wget ftp://ftp.gnu.org/gnu/gdb/\ gdb-7.7.1.tar.bz2 $ wget ftp://ftp.gnu.org/gnu/gdb/\ gdb-7.7.1.tar.bz2.sig $ tar xfv gdb-7.7.1.tar.bz2 $ export arm_target=armv5tel-softfloat-linux-gnueabi $ mkdir gdb-arm $../gdb-7.7.1/configure --prefix=prefix\ --target="$arm_target" 2 U-Boot 2.1 Konfiguracja U-Boot 1. Ustawić bootowanie BOOT na SPI flash 0. 2. Podłączyć się do portu szeregowego, włączyć płytkę i nacisnąć dowolny klawisz by przerwać automatyczne uruchamiane systemu prze uboota. 3. Ustawić adres IP używany przez U-Boota: U-Boot > set ipaddr 172.16.0.17 4. Ustawić adres IP serwera TFTP: U-Boot > set serverip 172.16.0.7 5. Ustawić argumenty kernela: U-Boot > set bootargs console=ttys2,115200n8 mem=32m 6. Ustawić skrypt bootowania:

U-Boot > set bootcmd "sf probe 0; sf read 0xc0700000 0x80000 0x380000; bootm 0xc0700000" 7. Zapisać konfigurację uboota do flasha: U-Boot > saveenv 2.2 Ładowanie systemu z tftp Poza ładowaniem firmware z pamięci flash U-Boot obsługuje także ładowanie firmware u po sieci za pomocą protokołu TFTP. W tym celu należy odpowiednio ustawić adres serwera TFTP w konfiguracji U-Boot (zobacz. 2.1) oraz umieścić plik uimage na serwerze TFTP w głównym katalogu. Następnie przy starcie U-Boota należy na konsoli nacisnąć jakiś przycisk by przerwać automatyczne bootowanie oraz wpisać następujące komendy: U-Boot > tftpboot U-Boot > bootm 3 Pobranie kluczy GPG $ gpg --keyserver hkp://pgp.mit.edu --recv-keys B305467D 6092693E 4 Kompilacja narzędzi potrzebnych do kompilacji oprogramowania 4.1 Instalacja wymaganych pakietów w Ubuntu $ sudo apt-get install libgmp-dev $ sudo apt-get install libmpfr-dev $ sudo apt-get install libmpc-dev $ sudo apt-get install uboot-mkimage 4.2 Instalacja cross-kompilatorów $ mkdir ~/omap $ cd ~/omap $ wget ftp://ftp.podlesie.net/pub/omap/omap-build-toolchain-0.0 $ wget ftp://ftp.podlesie.net/pub/omap/omap-build-toolchain-0.0.sig $ gpg --verify omap-build-toolchain-0.0.sig $ bash./omap-build-toolchain-0.0 Skrypt ten instaluje cross-compilatory domyślnie do katalogu ~/omap. W tym przypadku przy kompilacji innych elementów trzeba ustawić $ export PATH="$HOME/omap/bin:$PATH"

5 Kompilacja poszczególnych projektów 5.1 Linux $ mkdir ~/omap/ $ cd ~/omap $ wget ftp://ftp.kernel.org/pub/linux/kernel/v3.x/linux-3.6.10.tar.xz $ xz -d linux-3.6.10.tar.xz $ wget ftp://ftp.kernel.org/pub/linux/kernel/v3.x/linux-3.6.10.tar.sign $ gpg --verify linux-3.6.10.tar.sign $ tar xf linux-3.6.10.tar $ wget ftp://ftp.podlesie.net/pub/omap/linux-omap.tar.gz $ wget ftp://ftp.podlesie.net/pub/omap/linux-omap.tar.gz.sig $ gpg --verify linux-omap.tar.gz.sig $ cd linux-3.6.10 $ tar xfz../linux-omap.tar.gz $ patch -p1 < linux-omap/0001-*.patch $ patch -p1 < linux-omap/0002-*.patch $ make ARCH=arm O=linux-omap oldconfig $ cd linux-omap $ make ARCH=arm CROSS_COMPILE=armv4tl-softfloat-linux-gnueabi- uimage Zmiana konfiguracji: $ cd linux-omap $ make ARCH=arm menuconfig Instalacja: $ scp arch/arm/boot/uimage root@plytka $ ssh root@plytka fw-update uimage 6 Instalacja cross-compilatora 6.1 Pobieranie Gentoo Pobieranie: $ wget http://distfiles.gentoo.org/releases/arm/ autobuilds/current-stage3-armv5tel/ stage3-armv5tel-20140605.tar.bz2 $ wget http://distfiles.gentoo.org/releases/arm/ autobuilds/current-stage3-armv5tel/ stage3-armv5tel-20140605.tar.bz2.digests $ wget http://distfiles.gentoo.org/releases/arm/ autobuilds/current-stage3-armv5tel/ stage3-armv5tel-20140605.tar.bz2.digests.asc Weryfikacja: $ gpg --recv-keys 2D182910 $ gpg --verify *.asc Odpakowanie: # tar xfvp stage3-armv5tel-20140605.tar.bz2

Na potrzeby budowy cross-compilatora wystarczy: $ tar xfv stage3-armv5tel-20140605.tar.bz2 6.2 u-boot $ git clone git://git.podlesie.net/u-boot.git $ cd u-boot $ git checkout km2-genesis $ export PATH=PREFIX/bin:"$PATH" $ make CROSS_COMPILE=$arm_target- distclean $ make CROSS_COMPILE=$arm_target- chilisom_config $ make CROSS_COMPILE=$arm_target- -j5 6.3 openocd $ cat > a.cfg << EOF jtag_rclk 50; init; ftdi_set_signal PWR_RST 1; scan_chain; EOF $ openocd -f interface/ftdi/xds100v2.cfg \ -f board/ti_am335xevm.cfg -f a.cfg 6.4 openocd $ armv5tel-softfloat-linux-gnueabi-gdb u-boot > target remote localhost:3333 > monitor reset halt > monitor arm mcr 15 0 1 0 0 0 > monitor reset halt > load > cont > loadb 0x82000000 Przesłanie MLO > nand erase 0x0 0x20000 > nand write 0x82000000 0x0 0x20000 > loadb 0x82000000 Przesłanie u-boot > nand erase 0x80000 0x80000 > nand write 0x82000000 0x80000 0x80000

6.5 buildroot $ git clone git://git.buildroot.net/buildroot $ cd buildroot $ make menuconfig $ make > fatload mmc 0:1 0x82000000 uimage > ext2load mmc 0:2 0x82000000 /boot/uimage 6.5.1 Ładowanie systemu z NAND > set bootargs console=ttyo0,115200n8 root=/dev/mtdblock8 rootfstype=jffs2 rw mem=128m > set bootcmd "nand read 0x82000000 0x280000 0x500000; bootm 0x82000000" > setenv 6.5.2 Ładowanie systemu z MMC > set bootargs console=ttyo0,115200n8 root=/dev/mmcblk0p2 rw mem=128m rootwait > set bootcmd "fatload mmc 0:1 0x82000000 uimage; bootm 0x82000000" > setenv