Linux z node.js dla Raspberry Pi

Podobne dokumenty
Budowanie dystrybucji GNU/Linux dla Raspberry Pi z pomoc Yocto Project

Uruchomienie Raspberry Pi

Uruchomienie Raspberry Pi

Embedded GNU/Linux. Krzysztof Mazur

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

Programowanie Systemów Wbudowanych

Instalacja systemu operacyjnego dla minikomputera Raspberry Pi.

Tworzenie oprogramowania

X P.I.W.O. Portowanie Tizena na nowe architektury na przykładzie ARMv6. Maciej Wereski Samsung R&D Institute Poland. 17 Maj Poznań, Polska

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

Uruchomienie Intel Galileo

SVN - wprowadzenie. 1 Wprowadzenie do SVN. 2 U»ywanie SVN. Adam Krechowicz. 16 lutego Podstawowe funkcje. 2.1 Windows

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

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

I. INSTALACJA BAZY DANYCH ORACLE10g EXPRESS EDITION

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Podstawowa konfiguracja routerów. Interfejsy sieciowe routerów. Sprawdzanie komunikacji w sieci. Podstawy routingu statycznego

UC-8410A. Pełny opis produktu. Wbudowany mini komputer przemysłowy z 8 x RS-232/422/485, 3 x LAN, DIO, slot na karty SD, USB

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

Rys historyczny Systemy Wbudowane Raspberry Pi Raspberry Pi - systemy Raspberry Pi - zastosowania Uruchamianie i system NIE

Thinkcore W325A. Pełny opis produktu. Wbudowany komputer przemysłowy z GSM/GPRS, 1x LAN, 2x RS-232/422/485, SD, RISC CPU. [Nowy moduł GSM/GPRS]

Plan wykładu. 1. Sieć komputerowa 2. Rodzaje sieci 3. Topologie sieci 4. Karta sieciowa 5. Protokoły używane w sieciach LAN 6.

Instrukcja instalacji

INFORMATOR TECHNICZNY WONDERWARE. Konfiguracja komputera klienckiego do łączenia się z serwerem IndustrialSQL

Usługi sieciowe systemu Linux

Materiały dodatkowe. Raspberry Pi

Moduł nie może być zasilany z PoE. Nie ma wbudowanej przetwornicy PoE, a posiada tylko wyprowadzenie pinów RJ45 na płytkę PCB

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

SKRÓCONA INSTRUKCJA OBSŁUGI CR-500- HD

SINAMICS G120C STARTER. Tworzenie nowego projektu w trybie offline.

Przyk ad konfiguracja MRP przy pomocy IO kontrolera Simatic S7-300 i switchy Scalance X

Konfiguracja współpracy urządzeń mobilnych (bonowników).

MeetingHelper. Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania. Instrukcja obsługi dla programisty

Podstawy Systemów Wbudowanych

SINAMICS G120C STARTER. Tworzenie nowego projektu w trybie online.

Node.js i TypeScript - jak zacz?

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Pracownia internetowa w każdej szkole. Opiekun pracowni internetowej SBS 2003 PING

Następnie kliknąć prawym klawiszem myszy na Połączenie sieci bezprzewodowej i wybrać Wyłącz.

Instrukcja instalacji oprogramowania dla środowiska Windows

ZASTOSOWANIE PLATFORM CYFROWYCH ARDUINO I RASPBERRY PI W NAUCZANIU STEROWANIA OBIEKTEM PNEUMATYCZNYM

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

Produkt wycofany z oferty. W celu dobrania zamiennika prosimy o kontakt na

Komunikacja w sieci Industrial Ethernet z wykorzystaniem Protokołu S7 oraz funkcji PUT/GET

Konfiguracja po czenia pomi dzy serwerem OPC, a sterownikiem PLC dla sieci Profibus

Instrukcja instalacji oprogramowania dla środowiska Linux

Wprowadzenie do obsługi systemów obliczeniowych PCSS

Programowanie Systemów Wbudowanych

s FAQ: 24/PL Data: DD/MM/RRRR

Instalacja i konfiguracja serwera SSH.

Wybrane środowiska szybkiego prototypowania

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

VMware, QEMU, UML. oraz inne wirtualne maszyny. Piotr Findeisen Filip Grządkowski Piotr Kuśka Krzysztof Mroczek

EC4P Pierwszy program w 6 krokach

PLD Linux Day. Maciej Kalkowski. 11 marca Wydziaª Matematyki i Informatyki UAM

PERSON Kraków

Automatyczna instalacja oraz zmiana konfiguracji w ramach całego klastra.

EC1000 KATALOG SYSTEMÓW STEROWANIA

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat usługi DHCP.

Stosowanie tego urządzenia zwiększa możliwości stosowanego sprzętu jak i sofware.

Cyfrowe Ukªady Scalone

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

Załącznik nr 6 Uszczegółowienie przedmiotu zamówienia 214/IH/PN/13/2014. Pakiet 1 (Gdańsk) Tabela 1. Komputer przenośny.

OBSŁUGI Konwerter USB-RS

PARAMETRY TECHNICZNE PRZEDMIOTU ZAMÓWIENIA. Nazwa i adres Wykonawcy: Dostawa infrastruktury do wirtualizacji usług

Instrukcja instalacji oprogramowania dla środowiska Linux

SVN - wprowadzenie. 1 Wprowadzenie do SVN. 2 U»ywanie SVN. Adam Krechowicz 24 czerwca Podstawowe funkcje. 2.1 Windows

Programator AVR USBasp

INSTRUKCJA U YTKOWNIKA. Karty synchroniczne V.35 TAHOE 931/932 WOLNOή KOMUNIKACJI

Kopiowanie i instalowanie pliku w systemie Windows CE

Paweł Skrobanek. C-3, pok pawel.skrobanek.staff.iiar.pwr.wroc.pl

Siemens IO-Link. Smart TIA integration of sensors and actuators

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

1. Tworzenie nowego projektu.

Zbieranie podstawowych śladów działalności.

Karta adaptacyjna GSM

Instalacja programów Ubuntu

raceboard-s Szybki start

Pracownia internetowa w ka dej szkole (edycja 2004)

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

Pracownia Technik Obliczeniowych

Viper Linux Lite, oprogramowanie Linux

linkprog programator USB

Instrukcja. Suscriptor.

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

T: Zabezpieczenie dostępu do komputera.

ARCHITEKTURA SYSTEMÓW WBUDOWANYCH - LABORATORIUM. Ćwiczenie 4. Temat: Serwer stron WWW jako interfejs komunikacyjny z Systemem Wbudowanym.

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

Linux LAMP, czyli Apache, Php i MySQL

s FAQ: 13/PL Data: 29/01/2012

Programowanie Systemów Wbudowanych

Warstwy systemu Windows 2000

ZL24PRG. Interfejs JTAG dla mikrokontrolerów ARM

Embedded Solutions Automaticon Efektywne pomiary i sterowanie przy użyciu systemu wbudowanego MicroDAQ

1.1 Co to jest USBasp? Parametry techniczne Obsługiwane procesory Zawartość zestawu... 4

PC Terminal Emulator Cables, RJ-45 (Central Data) to DB-9

Subversion - jak dziaªa

Programowanie Systemów Wbudowanych

1. Wprowadzenie do C/C++

Transkrypt:

Linux z node.js dla Raspberry Pi Adam Stolcenburg 10 stycznia 2018 Akademia ADB

Raspberry Pi

Raspberry Pi 2 Model B V1.1 i 1

Raspberry Pi 2 Model B V1.1 ii BCM2836 (rodzina BCM2709) czterordzeniowy procesor ARM Cortex-A7 900 MHz (ARMv7-A) rdze«graczny 3D VideoCore IV slot na kart micro SD 40 pinów ogólnego przeznaczenia port HDMI 3.5mm port audio i analogowego video interfejs do podª czenia kamery interfejs do podª czenia wy±wietlacza SMSC LAN9514 port Ethernet 4 porty USB Elpida EDB8132B4PB-8D-F 1 GB DDR2 SDRAM 2

Model pracy - stacja robocza 3

Model pracy - dost p zdalny 4

Model pracy - system wbudowany 5

Oprogramowanie stacji roboczej zazwyczaj Linux oprogramowanie umo»liwiaj ce komunikacje przez port szeregowy oprogramowanie sieciowe Telnet, SSH (Secure Shell) zdalny terminal NFS (Network File System) dzielenie plików TFTP (Trivial File Transfer Protocol), HTTP (Hypertext Transfer Protocol) przesyªanie obrazu systemu zestaw narz dzi do kompilacji skro±nej (ang. cross compiling toolchain) 6

Kompilacja skro±na proces kompilacji wykonywany na innej architekturze procesora ni» ta, dla której kod jest generowany wyró»nia si nast puj ce platformy zalety platforma na której budowany jest kompilator (ang. build platform) platforma na której kompilator b dzie uruchamiany (ang. host platform) platforma na której b dzie wykonywany kod wygenerowany przez budowany kompilator (ang. target platform) brak konieczno±ci posiadania dziaªaj cego systemu na urz dzeniu docelowym brak konieczno±ci posiadania kompilatorów na systemie docelowym znacznie krótszy czas budowania 7

Komunikacja przez UART i UART u»ywa dwóch sygnaªów TxD (transmisja danych) pin 8, RxD (odbiór danych) pin 10 aby skomunikowa urz dzenia nale»y poª czy skro±nie ich sygnaªy RxD z sygnaªami TxD oraz ich mas pin 6 (na przykªad) komunikacja odbywa si na poziomie napi TTL 3,3V w przypadku komunikacji ze stacj robocz wymagany jest konwerter poziomów napi MAX3232 USB-UART FT232RL, CH340G domy±lne parametry transmisji danych: 115200 8N1 (115200 bps, 8 bitów, bez kontroli parzysto±ci, 1 bit stopu) bez kontroli przepªywu danych 8

Komunikacja przez UART ii 9

Systemy operacyjne dla Raspberry Pi bazuj ce na Linuxie Raspbian Android Things Gentoo Linux wªasne dystrybucje zbudowane z wykorzystaniem systemów wpieraj cych tworzenie dystrybucji wbudowanych (ang. embedded), np. Yocto Project (...) nie bazuj ce na Linuxie Windows 10 IoT Core FreeBSD NetBSD Haiku (...) https://en.wikipedia.org/wiki/raspberry_pi#operating_systems 10

Wªasny system bazuj cy na Linux + idealnie skrojony do potrzeb + doskonaªy by zdoby dogª bn wiedz na temat Linuxa wymaga wªasnego systemu budowania integracja dodatkowych bibliotek wymaga r cznego dbania o zale»no±ci wymaga du»ej wiedzy i nakªadu pracy 11

Dystrybucja Linux przygotowana za pomoc Yocto Project + w razie potrzeby umo»liwia idealne dopasowanie do potrzeb + umo»liwia ªatw integracje tysi cy pakietów wraz z ich zale»no±ciami + wspierany przez spoªeczno± stosunkowo wysoki próg wej±cia dªugi czas budowania wymaga ogromnych ilo±ci miejsca na stacji roboczej 12

Dystrybucja Raspbian + gotowa do natychmiastowego u»ycia + umo»liwia ªatw instalacj tysi cy pakietów wraz z ich zale»no±ciami + proces instalacji pakietów taki sam jak dla dystrybucji na PC + wspierany przez spoªeczno± du»y rozmiar minimalnej instalacji (2GB dla wersji Stretch Lite) dost pne pakiety zazwyczaj nie s naj±wie»sze 13

Raspbian

Instalacja Raspbian Strech Lite strona Raspbian https://www.raspberrypi.org/downloads/raspbian/ pobranie i rozpakowanie obrazu ~$ wget https://downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite -2017-12-01/2017-11-29-raspbian-stretch-lite.zip ~$ unzip 2017-11-29-raspbian-stretch-lite.zip wykrycie nazwy urz dzenia przypisanego do czytnika kart SD za pomoc dmesg sd 6:0:0:1: [sdc] 30318592 512-byte logical blocks: (15.5 GB/14.5 GiB) sd 6:0:0:1: [sdc] Write Protect is off sdc: sdc1 sdc2 sd 6:0:0:1: [sdc] Attached SCSI removable disk zapisanie obrazu na karcie SD warto± <sdx> nale»y zast pi odpowiedni nazw urz dzenia ~$ sudo dd bs=4m if=2017-11-29-raspbian-stretch-lite.img of=/dev/<sdx> status= progress conv=fsync 14

Partycje obrazu Raspbian ~$ echo p fdisk./2017-11-29-raspbian-stretch-lite.img Disk./2017-11-29-raspbian-stretch-lite.img: 1,7 GiB, 1858076672 bytes, 3629056 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x37665771 Device Boot Start End Sectors Size Id Type./2017-11-29-raspbian-stretch-lite.img1 8192 93236 85045 41,5M c W95 FAT./2017-11-29-raspbian-stretch-lite.img2 94208 3629055 3534848 1,7G 83 Linux 15

Pocz tkowe etapy startu Raspbian na RPi2 GPU wykonuje kod bootera pierwszego poziomu z ROM booter 1-go poziomu czyta z partycji FAT karty SD kod bootera drugiego poziomu (bootcode.bin), ªaduje go do cache i uruchamia booter 2-go poziomu wª cza SDRAM i ªaduje rmware GPU (start.elf) rmware czyta pliki konguracyjne (config.txt, cmdline.txt) i na ich podstawie ªaduje z karty SD odpowiedni kod j dra systemu Linux do pami ci RAM, a nast pnie resetuje rdze«arm rdze«arm uruchamia j dro systemu Linux podaj c jako parametr wywoªania j dra zawarto± (cmdline.txt) j dro systemu Linux montuje partycj ext4 i uruchamia z niej init 16

Wª czenie serwisu SSH na Raspbian z poziomu stacji roboczej ~$ mkdir rpiboot ~$ sudo losetup -o $((8192*512)) /dev/loop0./2017-11-29-raspbian-stretch-lite.img ~$ sudo mount /dev/loop0./rpiboot ~$ sudo touch./rpiboot/ssh ~$ ls./rpiboot bcm2708-rpi-0-w.dtb bcm2710-rpi-cm3.dtb fixup.dat LICENCE.broadcom start.elf bcm2708-rpi-b.dtb bootcode.bin fixup_db.dat LICENSE.oracle start_x.elf bcm2708-rpi-b-plus.dtb cmdline.txt fixup_x.dat overlays bcm2708-rpi-cm.dtb config.txt issue.txt ssh bcm2709-rpi-2-b.dtb COPYING.linux kernel7.img start_cd.elf bcm2710-rpi-3-b.dtb fixup_cd.dat kernel.img start_db.elf ~$ sudo umount./rpiboot ~$ sudo losetup -d /dev/loop0 ~$ rmdir rpiboot 17

Stacja robocza na Ubuntu

Minicom instalacja ~$ sudo apt-get install minicom dodanie uprawnie«do terminala (po tej zmianie nale»y si ponownie zalogowa ) ~$ sudo adduser $USER dialout uruchomienie (nazw ttyusb0 nale»y zast pi odpowiedni nazw terminala do którego zostaª przypisany konwerter USB-UART informacja dost pna przez dmesg) ~$ minicom -con -D /dev/ttyusb0 ttyusb0 wyª czenie sprz towej kontroli transmisji danych (ang. Hardware Flow Control) nale»y wcisn CTRL + a, nast pnie o, wybra Serial port setup i wcisn f aby przeª czy ustawienie Hardware Flow Control na No zapisanie ustawie«nale»y wyj± z poprzedniego menu za pomoc ESC i wybra Save setup as ttyusb0 18

SSH instalacja ~$ sudo apt-get install openssh-client logowanie do Raspbian (domy±lne hasªo: raspberry) ~$ ssh pi@192.168.0.180 pi@192.168.0.180's password: 19

NFS instalacja ~$ sudo apt-get install nfs-kernel-server nfs-common konguracja ~$ sudo mkdir /mnt/nfs ~$ sudo chmod 777 /mnt/nfs ~$ sudo sh -c 'cat << EOF >> /etc/exports /mnt/nfs *(rw,sync,no_subtree_check) EOF' uruchomienie ~$ sudo service nfs-kernel-server restart montowanie katalogu z poziomu Raspbian pi@raspberrypi:~$ sudo mkdir /mnt/nfs pi@raspberrypi:~$ sudo mount -t nfs -o nolock 192.168.0.100:/mnt/nfs /mnt/nfs 20

Zestaw narz dzi do kompilacji skro±nej dla Raspberry Pi instalacja (najnowsza dost pna wersja znajduje si w katalogu arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf) ~$ git clone https://github.com/raspberrypi/tools.git elementy zestawu narz dzi GNU narz dzia generuj ce i operuj ce na plikach obiektowych gcc, g++ kompilatory dla j zyków C i C++ gdb debugger nm, objdump, readelf analiza plików obiektowych ld linker strip usuwanie symboli z plików obiektowych ar, ranlib zarz dzanie archiwami as generowanie kodu binarnego z assemblera podstawowe biblioteki platformy docelowej (libc, libm, libstdc++, libpthread, itd.) 21

Node.js dla Raspbian

Instalacja z repozytorium Raspbian instalacja domy±lnej wersji pi@raspberrypi:~$ sudo apt-get install nodejs pi@raspberrypi:~$ nodejs -v v4.8.2 instalacja najnowszej wersji LTS pi@raspberrypi:~$ curl -sl https://deb.nodesource.com/setup_8.x sudo -E bash - pi@raspberrypi:~$ sudo apt-get install nodejs pi@raspberrypi:~$ node -v v8.9.4 22

Instalacja z ocjalnej strony node.js wersje LTS dla architektury ARM do pobrania ze strony https://nodejs.org/en/download/ ARMv6 ARMv7 ARMv8 pobranie i instalacja z poziomu Raspberry Pi pi@raspberrypi:~$ wget https://nodejs.org/dist/v8.9.4/node-v8.9.4-linux-armv7l. tar.xz pi@raspberrypi:~$ sudo tar xjvf node-v8.9.4-linux-armv7l.tar.xz -C /usr/local --strip-components 1 pi@raspberrypi:~$ node -v v8.9.4 23

Kompilacja na Raspberry Pi pobranie i wypakowanie ¹ródeª z poziomu Raspberry Pi pi@raspberrypi:~$ wget https://nodejs.org/dist/v8.9.4/node-v8.9.4.tar.gz pi@raspberrypi:~$ tar xzvf node-v8.9.4.tar.gz pi@raspberrypi:~$ cd node-v8.9.4 kompilacja i instalacja pi@raspberrypi:~/node-v8.9.4 $./configure pi@raspberrypi:~/node-v8.9.4 $ make -j 3 pi@raspberrypi:~/node-v8.9.4 $ sudo make install 24

Kompilacja skro±na pobranie i wypakowanie ¹ródeª wget https://nodejs.org/dist/v8.9.4/node-v8.9.4.tar.gz tar xzvf node-v8.9.4.tar.gz cd node-v8.9.4 kompilacja i instalacja w katalogu stacji roboczej export PATH=~/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin:$PATH export AR=arm-linux-gnueabihf-ar export CC=arm-linux-gnueabihf-gcc export CXX=arm-linux-gnueabihf-g++./configure --without-snapshot --without-intl --dest-cpu=arm --dest-os=linux make -j 4 make install DESTDIR=~/node-v8.9.4-arm 25

Rozwój aplikacji node.js dla Raspberry Pi

Wskazówki dotycz ce procesu tworzenia aplikacji o wiele ªatwiej pisa kod na stacji roboczej ni» na Raspberry Pi katalog z projektem mo»e by dzielony za pomoc NFS pomi dzy stacj robocza a Raspberry Pi pomimo ró»nic w architekturze, ten sam kod JavaScript mo»e by uruchomiony zarówno na stacji roboczej jak i na Raspberry Pi transpilacj TypeScript do JavaScript najlepiej wykonywa na stacji roboczej warto utrzymywa mo»liwo± uruchamiania aplikacji na stacji roboczej, nawet je±li peªen zakres funkcjonalno±ci nie jest mo»liwy do osi gni cia 26

Pakiety wykorzystuj ce kod natywny odpowiedni kod binarny jest ±ci gany w trakcje instalacji pakietu, a w przypadku jego braku nast puje próba kompilacji w przypadku Raspbian z zainstalowanym kompilatorem mo»liwa jest instalacja za pomoc npm bezpo±rednio na urz dzeniu zalecana jest instalacja pakietów na stacji roboczej z u»yciem kompilacji skro±nej export PATH=~/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin:$PATH export AR=arm-linux-gnueabihf-ar export CC=arm-linux-gnueabihf-gcc export CXX=arm-linux-gnueabihf-g++ npm install --arch=arm --target_arch=arm 27

Debugowanie z poziomu Visual Studio Code i uruchomienie node.js z wª czonym inspektorem na Raspberry Pi pi@raspberrypi:/mnt/nfs/project $ node --inspect=0.0.0.0:7777 --nolazy./dist/ index.js dodanie konguracji umo»liwiaj cej podª czenie do node.js dziaªaj cego na Raspberry Pi z poziomu Visual Studio Code dziaªaj cego na stacji roboczej 28

Debugowanie z poziomu Visual Studio Code ii dodanie dodatkowego wpisu do pliku launch.json "type": "node", "request": "attach", "name": "Attach to Remote", "address": "192.168.0.180", "port": 7777, "localroot": "${workspacefolder}", "remoteroot": "${workspacefolder}" uruchomienie sesji debugowej informacje na temat debugowania z poziomu Visual Studio Code dost pne s pod adresem: https://code.visualstudio.com/docs/nodejs/nodejs-debugging 29

Dzi kuj 29