[Openmoko] Flashare le immagini sul Freerunner

openmoko 2,628 Commenti »

Per installare un’immagine nel Freerunner bisogna innanzitutto scaricare l’immagine e il kernel della distribuzione che vogliamo installare :
Om2008.9
Om2008.8
Om2007.2
FDOM
QTopia
Dopo di che dobbiamo assicurarci di avere installato dfu-util nel nostro pc se non c’è installiamolo quindi accendiamo il Freerunner da NOR (tasto AUX + power) e colleghiamolo tramite usb al nostro pc apriamo il terminale,ci spostiamo nella directory che contiene l’immagine e il kernel che abbiamo scaricato e digitiamo :

sudo dfu-util -a kernel -R -D *.bin

Aspettiamo che finisca e che il Freerunner si spenga dopo di che lo scolleghiamo dalla porta usb e lo riaccendiamo da NOR e lo ricolleghiamo in usb e digitiamo nel terminale :

sudo dfu-util -a rootfs -R -D *.jffs2
(qui ci impiegherà più tempo…)

Appena finito il Freerunner si spegnerà e l’immagine sarà installata quindi potete accendere il Freerunner con la nuova immagine! :-)
Una volta acceso collegatelo al pc tramite usb e condividete la connessione internet per aggiornarlo,da terminale digitate :

iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24
sysctl -w net.ipv4.ip_forward=1
ifconfig usb0 192.168.0.200

ifconfig usb0 192.168.0.200 netmask 255.255.255.248

ssh root@192.168.0.202

Se in quest’ultimo comando ricevete un messaggio d’errore di questo tipo:

akus@akus-laptop:~$ ssh root@192.168.0.202
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
e8:4f:42:e0:ad:e3:76:4c:13:10:ba:39:d7:06:84:8e.
Please contact your system administrator.
Add correct host key in /home/akus/.ssh/known_hosts to get rid of this message.
Offending key in /home/akus/.ssh/known_hosts:1
RSA host key for 192.168.0.202 has changed and you have requested strict checking.
Host key verification failed.
akus@akus-laptop:~$

dovete andare nella vostra home e cancellare all’interno della cartella .ssh il file know_hosts e ridigitare il comando ssh root@192.168.0.202
una volta connessi dobbiamo sistemare i dns nel Freerunner quindi apriamo /etc/network/interfaces e cambiamo il codice da cosi :
iface usb0 inet static
address 192.168.0.202
netmask 255.255.255.0
network 192.168.0.0
gateway 192.168.0.200
up echo nameserver 192.168.0.200 > /etc/resolv.conf

a così :

iface usb0 inet static
address 192.168.0.202
netmask 255.255.255.0
network 192.168.0.0
gateway 192.168.0.200
up echo nameserver 212.216.112.112 > /etc/resolv.conf
up echo nameserver 212.216.172.62 >> /etc/resolv.conf

Quindi riavviamo la rete con questo comando :

/etc/rc0.d/K40networking restart

e proviamo a pingare verso l’esterno ping www.google.it se abbiamo settato tutto correttamente dovremmo ricevere i pacchetti dall’esterno,quindi possiamo iniziare ad aggiornare il Freerunner :

opkg update
opkg upgrade

Per vedere la lista di tutti i pacchetti disponibili da installare basta digitare :

opkg list

per cercare quelli con una determinata parola :

opkg list | grep parola

per installare un pacchetto :

opkg install nome_pacchetto

Leggi il resto dell'articolo..
Termini legati all'articolo: , , , , , , , , , , , , , ,
Scritto da akus

[Python] - 04 - Le liste

python 2,359 Commenti »

Eccovi che torno a presentarvi un’altra struttura dati di python,la liste.
Si può pensare una lista come una cassettiera numerata dove ogni cassetto può contenere un valore (all’interno di una lista i valori vengono indicizzati da zero) :


lista=[cassetto0,cassetto1,cassetto2]

Se vogliamo sapere che elemento c’è in una determinata posizione di una lista basta scrivere nome_lista[posizione] :


>>>lista=['Roma','Milano','Napoli']
>>>print lista[1]
Milano

Se invece vogliamo sapere in che posizione sta un determinato elemento basta scrivere nome_lista.index(nome_elemento) :


>>> lista=['Roma','Milano','Napoli']
>>> print lista.index('Roma')
0

Per cancellare un’elemento da una lista scriviamo del nome_lista[posizione_elemento] :


>>>lista=['Roma','Milano','Napoli']
>>>del lista[0]
>>>print lista
['Milano','Napoli']

Se vogliamo aggiungere un’elemento scriviamo nome_lista.append(elemento) :


>>>lista=['Milano','Napoli']
>>>lista.append('Palermo')
>>>print lista
['Milano','Napoli','Palermo']

Per sapere la lunghezza della lista basta digitare len(nome_lista) :


>>>lista=['Milano','Napoli','Palermo']
>>>print len(lista)
3

Per ordinare una lista si può utilizzare il comando nome_lista.sort() :


>>>lista=['Milano', 'Napoli', 'Ancona']
>>>lista.sort()
>>>print lista
['Ancona', 'Milano', 'Napoli']

Per sapere se un elemento è contenuto in una lista o no digitiamo nome_elemento in nome_lista e ci restituirà True se è contenuto False altrimenti :


>>>lista=['Ancona', 'Milano', 'Napoli']
>>>print 'Palermo' in lista
False
>>>print 'Milano' in lista
True
Leggi il resto dell'articolo..
Termini legati all'articolo: , , , , , , , ,
Scritto da akus

[Python] - Articolo 03 - I costrutti condizionali

python 2,630 Commenti »

I costrutti condizionali sono un’argomento che useremo in modo massiccio in tutte le nostre applicazioni.
In pratica tramite essi se si verifica una certa condizione otterremo un certo output anzichè un’altro.
Il primo costrutto che andrò a presentarvi è il WHILE, finchè è verificata una certa condizione eseguo le istruzioni indentate sotto la condizione :


while (condizione):
	istruzione_1
	istruzione_2
	...
	...
	istruzione_n

Ad esempio qui finchè la variabile contatore è <= (minore o uguale) a 4 stampa il valore di contatore :


contatore=1
while (contatore<=4):
	print contatore
	contatore=contatore+1

L’altro costrutto condizionale è IF…ELIF…ELSE, se è verificata condizione1 esegue istruzione_1 altrimenti controlla se è verificata condizione2 e se è verificata esegue istruzione_2 altrimenti esegue istruzione_n:


if (condizione1):
	istruzione_1
elif (condizione2):
	istruzione_2
else:
	istruzione_n

In questo esempio l’utente inserisce da tastiera il valore da dare a variabile,se variabile è uguale ad uno stampa “variabile uguale a 1″,se variabile è uguale a due stampa “variabile uguale a 2″ altrimenti stampa “variabile diversa da 1 e 2″:


variabile=input("Inserisci un valore : ")
if (variabile==1):
	print "variabile uguale a 1"
elif (variabile==2):
	print "variabile uguale a 2"
else:
	print"variabile diversa da 1 e 2"
Leggi il resto dell'articolo..
Termini legati all'articolo: , , , , , , , ,
Scritto da akus

[Python] - Articolo 02 - Variabili ed input

python 2,820 Commenti »

Le variabili sono da pensare come una sorta di scatola che contiene un qualcosa che nel corso del programma può cambiare.
Ad esempio abbiamo delle variabili che contengono dei valori numerici :


variabile=3

o variabili che contengono dei dati di tipo stringa :


variabile="Ciao!"

Adesso vediamo come interagire con i nostri script,cioè sarà l’utente ad inserire i valori delle variabili tramite tastiera e durante l’esecuzione del programma.
Se vogliamo inserire un valore numerico utilizziamo la parola chiave input


variabile=input("Inserisci un intero da tastiera : ")

se invece vogliamo inserire una stringa utilizziamo la parola chiave raw_input :


variabile=raw_input("Inserisci una stringa da tastiera : ")

per chiarirci un pò le idee eccovi uno script che calcola l’area di un rettangolo (Base x Altezza) con gli input inseriti da tastiera,per scrivere lo script aprite il vostro IDE scrivete le righe che trovate qui sotto e salvatelo come Area.py , se siete su Linux aprite il terminale e vi spostate nella directory che contiene lo script e digitate python Area.py mentre se siete in Windows aprite il prompt dei comandi da Start–>Esegui–>cmd vi spostate nella directory che contiene lo script e digitate python Area.py:


base=input("Inserisci il valore della base:")
altezza=input("Inserisci il valore dell”altezza:")
nome=raw_input("Inserisci il tuo nome:")
print "Ciao",nome," l'area da te calcolata e': ",base*altezza
Leggi il resto dell'articolo..
Termini legati all'articolo: , , , , , ,
Scritto da akus

[Python] - Articolo 01 - Iniziamo!

python 2,403 Commenti »

Per iniziare a programmare in python a meno che non siete su ambiente UNIX dove già lo troverete installato, :-) dovrete scaricare l’ultima versione di python al seguente indirizzo : http://www.python.org/download/ , inoltre vi suggerisco l’uso di un IDE (Integrated Development Environment) che vi aiuterà nello sviluppo delle vostre applicazioni (grazie al debug e ad altre funzioni in esso integrate…) .
Su Windows vi consiglio di usare Active Python mentre su Linux io attualmente uso Geany ma ce ne sono una miriade per ogni OS.
Una volta installato tutto possiamo passare a lavorare sul linguaggio vero e proprio.
Se siamo su Windows apriamo la consolle interattiva di python da : Start–>Esegui–>Digitiamo cmd e quando si apre il prompt–>Digitiamo python
Se invece siamo su Linux (qualunque distibuzione Ubuntu,Gentoo,Fedora,Debian….) apriamo il terminale e digitiamo python.
In entrambi i casi ci troveremo questo simbolo >>> che è la riga della consolle interattiva,qui possiamo fare le nostre prove :
-Scriviamo print “Hello World”


>>>print "Hello World"
Hello World

oppure digitiamo print 2+2


>>>print 2+2
4

mentre se digitiamo print ‘2+2′ otteniamo 2+2 perchè le virgolette indicano una stringa.


>>>print '2+2'
2+2
Leggi il resto dell'articolo..
Termini legati all'articolo: , , , , ,
Scritto da akus

Gioco del 15

openmoko, python 1 Commento »

Ho riscritto utilizzando python e le gtk il gioco del 15,l’interfaccia grafica è stata ottimizzata in modo tale da utilizzare lo script sia su desktop che su openmoko senza dover cambiare nulla ! :-)

Per utilizzare lo script su openmoko dovete passarlo sul freerunner con questo comando :

scp sorgente root@Freerunner_ip:/destinazione/

Poi andate dal terminale nella cartella dove avete messo lo script e digitate :

python gioco_del_15.py

Lo script lo potete scaricare da questi : http://download.tuxfamily.org/akusweblog/gioco_del_15.py

Leggi il resto dell'articolo..
Termini legati all'articolo: , , , , , , ,
Scritto da akus

Boot da SD

openmoko 14 Commenti »

Dopo un paio di giorni trascorsi tra chat,forum e wiki sono riuscito ad installare su sd om2008.8 ma con la stessa procedura di possono installare tutte le altre immagini.
PARTIZIONI NELLA SCHEDA SD:
Innanzitutto bisogna preparare le partizioni sulla scheda SD in questo modo :

fdisk /dev/mmcblk0

e poi seguiamo questo schema :

Command (m for help): d
Selected partition 1
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-983, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-983, default 983): +8M
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (18-1793, default 18):
Using default value 18
Last cylinder or +size or +sizeM or +sizeK (18-1793, default 1793):
Using default value 1793
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.


Formattiamo la prima partizione della scheda:

mkfs.vfat /dev/mmcblk0p1

e la seconda partizione:

mkfs.ext3 /dev/mmcblk0p2

Adesso abbiamo la scheda SD pronta per l’installazione dell’immagine! :-)

INSTALLIAMO L’IMMAGINE :
Scarichiamo l’immagine della distribuzione che ci interessa in tar.gz,e trasferiamolo nella SD tramite una sessione ssh :

scp NostraImmagine.tar.gz root@192.168.0.202:/media/mmcblk0p2/

Adesso logghiamoci sul freerunner sempre in ssh ed estraiamo il file dall’archivio tar.gz :

cd /media/mmcblk0p2
tar xzf NostraImmagine.tar.gz
rm NostraImmagine.tar.gz
rm -f /media/mmcblk0p2/boot/*


Adesso dobbiamo installare il kernel,quindi sul nostro pc scarichiamo il kernel relativo all’immagine da installare (il kernel ha l’estenzione .bin) e lo rinominiamo in uImage.bin come segue:

mv KernelScaricato.bin uImage.bin
scp uImage.bin root@192.168.0.202:/media/card/boot/
scp uImage.bin root@192.168.0.202:/media/card/


Adesso possiamo riavviare il nostro freerunner da NAND e scegliere “Boot from SD” e partirà la vostra nuova immagine!

Leggi il resto dell'articolo..
Termini legati all'articolo: , , ,
Scritto da akus

News

Senza categoria 3,062 Commenti »

Volevo informarvi che al più presto (magari anche da domani) inizierò a pubblicare degli articoli che riguardano la programmazione in python,una mini-guida,dai fondamenti agli argomenti più specifici e complessi.

Rimanete in ascolto !

Leggi il resto dell'articolo..
Termini legati all'articolo: , ,
Scritto da akus

Primo giorno con OpenMoko

openmoko 2,614 Commenti »

In questa prima giornata ho sperimentato un pò con le immagini del freerunner in particolare con :
2007.2 GTK
2008.8
Qtopia

Dopo un pò di prove Qtopia in effetti è risultata la più stabile per la gestione in generale solo che la vedo “poco linux“. :-S
La 2007.2 GTK graficamente è più accattivante rispetto alla 2008.8 ma ancora quest’ultima immagine è molto acerba col tempo migliorerà di sicuro…

Quindi alla fine delle mie sperimentazioni (per oggi! :-D ) tengo Qtopia installata sul freerunner mentre una tra la 2007.2GTK e 2008.8 la installerò nella sd per poterci smanettare per bene…

A presto!

Leggi il resto dell'articolo..
Termini legati all'articolo: , , ,
Scritto da akus

E’ arrivato…!!!

openmoko 2,612 Commenti »
-->

Oggi pomeriggio finalmente è arrivato il FreeRunner e da ora in poi inizieranno ore ed ore di smanettamenti :-)

Vi posto 3 foto del FreeRunner appena arrivato

Leggi il resto dell'articolo..
Termini legati all'articolo:
Scritto da akus
WP Theme & Icons by N.Design Studio Restyling by Tecnìco, sponsor by Stilegames
Entries RSS Comments RSS Collegati