Differenze tra le versioni di "ArduinoYunNodejs"
Riga 90: | Riga 90: | ||
Una soluzione può essere utilizzare il proprio computer per programmare (con molte facilità, vedi nodemon), mettere il codice su un repository (per esempio git) e scaricarlo da wrt. | Una soluzione può essere utilizzare il proprio computer per programmare (con molte facilità, vedi nodemon), mettere il codice su un repository (per esempio git) e scaricarlo da wrt. | ||
Sfortunatamente wrt deriva da OpenWRT e c'è qualche problema per l'autenticazione https e git. Una soluzione semplice è installare unzip e scaricare lo zip dei codici. Vedi [http://walkerlindley.wordpress.com/2014/03/12/arduino-yun-and-git/ Arduino Yun and Git] | Sfortunatamente wrt deriva da OpenWRT e c'è qualche problema per l'autenticazione https e git. Una soluzione semplice è installare unzip e scaricare lo zip dei codici. Vedi [http://walkerlindley.wordpress.com/2014/03/12/arduino-yun-and-git/ Arduino Yun and Git] | ||
+ | |||
+ | Per i repository privati su github si può utilizzare questo snippet: | ||
+ | |||
+ | <pre> | ||
+ | curl -L -k --user "user:pass" https://github.com/WeMake-cc/AccessControlSystem/zipball/master > repo.zip | ||
+ | </pre> | ||
+ | |||
+ | dove user:pass sono utente e password del proprio account di github | ||
+ | |||
+ | TOD: curl del zipball dei repo privati usando i github Token | ||
+ | |||
=== References === | === References === |
Versione delle 13:44, 26 mag 2014
Installare Node.js su Arduino Yun
Alcune istruzioni per installare Node.js su Arduino Yun
Materiale necessario
- Arduino Yun
- Cavo Micro-B USB
- Micro SD card (>2 GB consigliato)
- Arduino IDE versione >1.5.4
- Una rete wirless funzionante connessa a internet
Arduino Yun and OpenWRT 101
il terminale, netstat e capire l'ip di wrt, ssh per collegarsi alla shell, opkg update, scp per copiare i file, etc (un tutorial separato?)
Cos'è nodejs
bla bla bla
Aggiornare all'ultima immagine
Il team di Arduino ha creato un comodo pacchetto per installare node.js senza dover compilare il codice. Per questo però dobbiamo aggiornare l'immagine del sistema operativo sulla macchina limino. Si veda Yun System Upgrade
Espandere la memoria
Node.js ha bisogno di una memoria aggiuntiva. Si può utilizzare la scheda sd card come memoria della macchina limino. Il team arduino ha creato uno sketch per farlo in maniera semplice. Si veda Expand Yun disk space.
Questo sketch compie varie operazioni…. (spiega)
Check
Per accertarsi che sia andato a buon fine eseguire i check (sia che l'immagine sia corretta sia df)
Installare node.js e npm
Node.js è sviluppato con la modularità come feature principale. Per aggiungere moduli ha un packet manager: npm. ….
opkg update opkg install node
Hello world
Qualche test sulla console (magari un minimale benchmark?)
root@Arduino:~# node > console.log('hello world'); hello world > process.version 'v0.10.28' > process.versions.v8 '3.14.5.10'
Installare i moduli principali
opkg update npm install express npm install body-parser npm install ejs opkg install sqlite3-cli npm install dblite
Ser installare express fallisce con un messaggio di poca memoria
FATAL ERROR: Evacuation Allocation failed - process out of memory
bisogna modificare il file /usr/bin/node
#!/bin/sh #NODE_PATH=/usr/lib/node_modules /usr/bin/nodejs --stack_size=1024 --max_old_space_size=20 --max_new_space_size=2048 --max_executable_size=5 --gc_global --gc_interval=100 $@ NODE_PATH=/usr/lib/node_modules /usr/bin/nodejs $@
Deployment
Entrando in ssh su wrt possiamo scrivere file con vi o nano. Ma per qualcuno può non essere l'ambiente di sviluppo più pratico. Una soluzione può essere utilizzare il proprio computer per programmare (con molte facilità, vedi nodemon), mettere il codice su un repository (per esempio git) e scaricarlo da wrt. Sfortunatamente wrt deriva da OpenWRT e c'è qualche problema per l'autenticazione https e git. Una soluzione semplice è installare unzip e scaricare lo zip dei codici. Vedi Arduino Yun and Git
Per i repository privati su github si può utilizzare questo snippet:
curl -L -k --user "user:pass" https://github.com/WeMake-cc/AccessControlSystem/zipball/master > repo.zip
dove user:pass sono utente e password del proprio account di github
TOD: curl del zipball dei repo privati usando i github Token