Strumenti Utente

Strumenti Sito


odroid:fondamenti

fondamenti di ODROID

Sito di riferimento http://hardkernel.com
Nella sezione download si scelga la directory corrispondente al proprio modello di ODROID
In questa guida viene usata una delle distribuzioni “unofficial” denominata “Minimal Debian jessie”
Di seguito il link per scaricare una copia dell'originale –> Minimal Debian jessie“

I file di tipo ”.xz” sono file compressi. per decomprimerli si può usare 7Zip per Windows oppure unxz per Linux

Una volta scaricato il file compresso decomprimere con il seguente comando:

unxz Debian-Jessie-1.0-20160131-C1.img.xz

Ora dobbiamo trasferire l'immagine decompressa su una schedina microSD
dopo aver individuato l'unità di memoria microSD (ad es. /dev/sdb) eseguire il seguente comando

dd if=Debian-Jessie-1.0-20160131-C1.img of=/dev/sdb

In questo modo ci troveremo sulla nostra scheda di memoria due partizioni: BOOT e rootfs
Prima di estrarre la nostra schedina e accendere il nostro Odroid, dobbiamo aprire il file boot.ini nella prima partizione “BOOT” e controllare alcuni parametri se corrispondo al materiale cha bbiamo a disposizione. Ad esempio nel mio caso ho a disposizione un monitor che supporta la risoluzione fullHD 1080 e porta di ingresso VGA. Considerato che l'uscita dell'Odroid è HDMI ho a disposizione anche un cavo adattatore HDMI-VGA.
Prima di proseguire considerate il fatto che ho modificato questo file boot.ini traducendolo in italiano per una migliore comprensione. Pertanto se guardiamo il contenuto del file nella prima sezione possiamo notare che tutte le righe sono commentate tranne la 720p. Ma noi possiamo commentarla e decommentare quella corrispondente a 1080p.
Inoltre dobbiamo specificare nella seconda sezione, il tipo di connessione che non sarà quindi HDMI come quella di default ma VGA.

modificare

# HDMI DVI Mode Configuration
setenv vout_mode "hdmi"
# setenv vout_mode "dvi"
# setenv vout_mode "vga"

con

# HDMI DVI Mode Configuration
# setenv vout_mode "hdmi"
# setenv vout_mode "dvi"
setenv vout_mode "vga"

Ora si può smontare la schedina dal PC e inserirla nell'odroid per il primo avvio
Il sistema parte e tra le operazioni di avvio c'è quella di espansione della seconda partizione “rootfs” che andrà ad occupare interamente lo spazio non ancora occupato della microSD.
Se tutto procede senza interruzioni dopo circa 2 minuti vi troverete a video la consolle per il login: root password odroid

Se invece il sistema si blocca probabilmente c'è un problema di memoria della scheda microSD ovvero non tutte le schedine sono uguali e possono avere un sistema di gestione differente. Pertanto si proverà a risolvere con la seguente procedura:
Smontare la schedina dall'odroid e rimontarla su pc ed editare il file boot.ini modificando la seguente sezione
da

# Configurazione per le UHS Card
# Togliere il commento alla riga sotto per DISABILITARE il supporto alle MicroSD UHS-1
# Questo può interrompere il boot per alcuni modelli di marca di schede.
setenv disableuhs "disableuhs"

a

# Configurazione per le UHS Card
# Togliere il commento alla riga sotto per DISABILITARE il supporto alle MicroSD UHS-1
# Questo può interrompere il boot per alcuni modelli di marca di schede.
# setenv disableuhs "disableuhs"

Se anche questa procedura fallisce dobbiamo rismontare nuovamente la micro e rimontarla su un pc che abbia a disposizione “GParted”.
Dovremo effettuare manualmente l'espansione della seconda partizione. (per la procedura si veda guida a parte).
Successivamente dobbiamo modificare nuovamente il file boot.ini nella sezione “Argomenti di boot” modificando il parametro relativo la posizione del dispositivo in cui si troverà la directory root
da

setenv bootargs "root=UUID=e139ce78-9841-40fe-8823-96a304a09859 rootwait ro ${condev} no_console_suspend vdaccfg=0xa000 logo=osd1,loaded,0x7900000,720p,full dmfc=3 cvbsmode=576cvbs hdmimode=${m} m_bpp=${m_bpp} vout=${vout_mode} ${disableuhs} ${hdmi_hpd} ${hdmi_cec} ${enabledac}"

a

setenv bootargs "root=/dev/mmcblk0p2 rootwait ro ${condev} no_console_suspend vdaccfg=0xa000 logo=osd1,loaded,0x7900000,720p,full   dmfc=3 cvbsmode=576cvbs hdmimode=${m} m_bpp=${m_bpp} vout=${vout_mode} ${disableuhs} ${hdmi_hpd} ${hdmi_cec} ${enabledac}"

A questo punto il sistema deve partire.

Approfondimento

Nel caso in cui si voglia realizzare un server (questo è il mio caso) non c'è bisogno del video quindi di seguito i passi per disattivare l'uscita HDMI e recuperare quindi un po' di RAM che non guasta mai.
Modificare come di seguito il file boot.ini nell'apposita sezione:

# Disabilita l'uscita HDMI 
# 0 = disabled
# 1 = enabled
setenv hdmioutput "0"

Se abbiamo avviato il sistema senza video dobbiamo necessariamente collegarci tramite ssh al nostro odroid.
Quindi solo se abbiamo nella nostra rete un DHCP possiamo scansionarla con nmap (ad esempio) per cercare tra gli altri il nostro odroid.
Ci colleghiamo nel seguente modo:

ssh root@192.168.1.110

L' IP suggerito è indicativo… voi ne avrete sicuramente un'altro.
Confermate alla richiesta di accettazione della chiave ECDSA
e dopo aver digitato la password “odroid” sarete a consolle.

Se avete effettuato l'avvio a video sarete già dentro pronti per modificare l'impostazione della tastiera
La prima cosa da fare è:

apt-get update

Installiamo i seguenti pacchetti:

apt-get install keyboard-configuration console-data console-setup

Al termine dell'installazione parte automaticamente la procedura per la selezione del layout e noi sceglieremo la quarta opzione che ci permette di scegliere tra tutte le opzioni disponibili ovvero la “italian standard standard”

Prima di proseguire verifichiamo la data e l'ora che siano giuste e corrispondenti al nostro fuso orario e per l'Italia se l'orario è solare o legale.

date

Sat May 21 10:19:56 UTC 2016

Nel mio caso (sono le ore 12:19) il sistema risulta indietro di 2 ore. Infatti il sistema essendo collegato a internet si è sincronizzato sulle informazioni base ovvero Fuso orario di Greenwich, ma noi siamo in Italia +1 e con l'ora legale +1 in totale avanti di 2 ore. Pertanto aggiustiamo l'ora installando il seguente pacchetto:

apt-get install tzdata

poi

dpkg-reconfigure tzdata

e seguendo la procedura guidata selezioniamo la città preferita. E se ridigitiamo il comando date avremo l'ora e la data aggiornate:

date

 Sat May 21 12:23:40 CEST 2016
 

Sia che abbiamo deciso di effettuare l'avvio in modalità “server” o che abbiamo scelto la modalità video, procediamo di seguito per il settaggio dell'indirizzo ip da dinamico a statico:

Editiamo il file interfaces

vi /etc/network/interfaces

l'originale

/etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
allow-hotplug eth0
iface eth0 inet dhcp

va modificato come di seguito:

/etc/network/interfaces
 
source-directory /etc/network/interfaces.d
 
auto lo
iface lo inet loopback
 
auto eth0
iface eth0 inet static
address 192.168.1.110
netmask 255.255.255.0
gateway 192.168.1.1
dns-servers 8.8.8.8

Specifichiamo che è necessario togliere la dicitura ”allow-hotplug eth0“ e sostituirla con ” auto eth0 “ perchè se avessimo impostato l'ip statico nella riga successiva esso avrebbe comunque acquisito anche l'ip dinamico e ci saremmo trovati due IP.
Ora abbiamo un sistema odroid basato su Debian base.
Digitiamo il seguente comando e verifichiamo le informazioni base del sistema LINUX.

uname -a

Linux odroid-jessie 3.10.80 #17 SMP PREEMPT Sat Oct 31 12:44:33 CET 2015 armv7l GNU/Linux

Riavviamo odroid e accertiamoci che sia attivo l'ip da noi assegnato e prima di fare l'upgrade dei pacchetti trasferiamo il contenuto della seconda partizione, cioè la ”/“ ovvero la “rootfs” vista all'inizio, su un disco USB esterno.

Collegare un HDD esterno

Si sa che le microSD hanno una vita limitata, di conseguenza può essere molto utile lavorare con un hdd esterno, vediamo come fare.
Ipotizziamo l'uso di un hdd esterno USB (da 2,5 o 3,5 non importa, l'importante è che il collegamento sia USB). Una volta connesso possiamo eseguire

dmesg

per identificare il device

[ 9032.990136] usb 1-1.1: new high-speed USB device number 4 using dwc_otg
[ 9033.091814] usb-storage 1-1.1:1.0: USB Mass Storage device detected
[ 9033.092871] usb-storage 1-1.1:1.0: Quirks match for vid 05e3 pid 0702: 520
[ 9033.099924] scsi0 : usb-storage 1-1.1:1.0
[ 9034.101936] scsi 0:0:0:0: Direct-Access     Hitachi  HTS541212H9AT00  0811 PQ: 0 ANSI: 0
[ 9034.106060] sd 0:0:0:0: [sda] 234441648 512-byte logical blocks: (120 GB/111 GiB)
[ 9034.114457] sd 0:0:0:0: [sda] Test WP failed, assume Write Enabled
[ 9034.119576] sd 0:0:0:0: [sda] Cache data unavailable
[ 9034.123785] sd 0:0:0:0: [sda] Assuming drive cache: write through
[ 9034.132239] sd 0:0:0:0: [sda] Test WP failed, assume Write Enabled
[ 9034.137123] sd 0:0:0:0: [sda] Cache data unavailable
[ 9034.141495] sd 0:0:0:0: [sda] Assuming drive cache: write through
[ 9034.533118]  sda: sda1 sda2 sda3
[ 9034.537402] sd 0:0:0:0: [sda] Test WP failed, assume Write Enabled
[ 9034.539062] sd 0:0:0:0: [sda] Cache data unavailable
[ 9034.545507] sd 0:0:0:0: [sda] Assuming drive cache: write through
[ 9034.549671] sd 0:0:0:0: [sda] Attached SCSI disk

Il disco esterno è quindi /dev/sda che contiene 3 partizioni in questo caso sda1 sda2 sda3. Se abbiamo bisogno di rivedere il partizionamento per adattarlo al nostro bisogno usiamo fdisk
Ipotiziammo di avere un'unica partizione sulla quale vorremo installare il nostro raspbian. Dobbiamo innanzitutto formattarla:

 mke2fs -t ext4 -L rootfs /dev/sdxx 

Ora la montiamo

 mount /dev/sdxx /mnt

Ma prima di iniziare la copia dobbiamo installare “rsync” quindi

apt-get install rsync

Ora copiamo tutto su hdd

rsync -axv / /mnt

Una volta terminat la copia apriamo il file

vi /boot/boot.ini

e se vi ricordate eravamo già intervenuto nella modifica della sezione “Argomenti di boot” modificando il parametro relativo la posizione del dispositivo in cui si troverà la directory root
modificheremo quindi da

setenv bootargs "root=UUID=e139ce78-9841-40fe-8823-96a304a09859 rootwait ro ${condev} no_console_suspend vdaccfg=0xa000 logo=osd1,loaded,0x7900000,720p,full dmfc=3 cvbsmode=576cvbs hdmimode=${m} m_bpp=${m_bpp} vout=${vout_mode} ${disableuhs} ${hdmi_hpd} ${hdmi_cec} ${enabledac}"

oppure

setenv bootargs "root=/dev/mmcblk0p2 rootwait ro ${condev} no_console_suspend vdaccfg=0xa000 logo=osd1,loaded,0x7900000,720p,full   dmfc=3 cvbsmode=576cvbs hdmimode=${m} m_bpp=${m_bpp} vout=${vout_mode} ${disableuhs} ${hdmi_hpd} ${hdmi_cec} ${enabledac}"

a

setenv bootargs "root=/dev/sdaxxx rootwait ro ${condev} no_console_suspend vdaccfg=0xa000 logo=osd1,loaded,0x7900000,720p,full   dmfc=3 cvbsmode=576cvbs hdmimode=${m} m_bpp=${m_bpp} vout=${vout_mode} ${disableuhs} ${hdmi_hpd} ${hdmi_cec} ${enabledac}"

ho notato che non c'è bisogno di modificare il file /etc/fstab in quanto è presente nella riga di montaggio della partizione root l'opzione errors=remount-ro che in caso di errore sul codice UUID va automaticamente a montare quanto indicato tra gli argomenti di boot del file boot.ini
altrimenti se si vuole essere più coerenti e lineari modificare anche il file /etc/fstab e sostituire

UUID=e139ce78-9841-40fe-8823-96a304a09859  /               ext4    defaults,noatime  0       1

CON

/dev/sdaxxx  /                    ext4    defaults,noatime  0       1

Possiamo riavviare e una volta riaperta la shell verificare di usare realmente l'hdd esterno digitando:

df

e l'output mostrerà se effettivamente la partizione / radice è stata montata dal dispositivo /dev/sdaxxx
Ce ne accorgeremo anche dal fatto che il led dell'hard disk subito dopo il riavvio inizierà a lampeggiare segno che sta lavorando.

UPGRADE

Ora se vogliamo mantenere un sistema aggiornato e possibilmente sicuro, dobbiamo effettuare l'upgrade dei pacchetti della distribuzione lanciando un bel:

apt-get upgrade

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  linux-headers-armhf-odroid-c1 linux-image-armhf-odroid-c1
The following packages will be upgraded:
  apt apt-utils base-files cpio deb-multimedia-keyring dpkg gnupg gpgv initramfs-tools
  isc-dhcp-client isc-dhcp-common libapt-inst1.5 libapt-pkg4.12 libc-bin libc6 libdns-export100
  libgcrypt20 libglib2.0-0 libgssapi-krb5-2 libhogweed2 libidn11 libirs-export91 libisc-export95
  libisccfg-export90 libk5crypto3 libkrb5-3 libkrb5support0 libnettle4 libpam-modules
  libpam-modules-bin libpam-runtime libpam0g libpcre3 libssh2-1 libssl1.0.0 libsystemd0
  libtasn1-6 libudev1 linux-headers-3.10.80 linux-image-3.10.80 locales login multiarch-support
  openssh-client openssh-server openssh-sftp-server passwd perl-base rsyslog systemd systemd-sysv
  udev
52 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
Need to get 48.9 MB of archives.
After this operation, 2,444 kB disk space will be freed.

e confermando con “Y”

Mentre lo lasciamo lavorare sarebbe bello poter perdere qualche minuto per capire come funzionano gli aggiornamenti e i repository di debian, ma non essendo ancora sufficientemente preparato per spiegarveli, vi rimando alla documentazione ufficiale qui –> http://guide.debianizzati.org/index.php/I_repository_ed_il_loro_utilizzo

odroid/fondamenti.txt · Ultima modifica: 2023/04/17 14:25 (modifica esterna)