====== 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\\ # 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:\\ 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 \\