Author Topic: DNS-323  (Read 28849 times)

0 Members and 1 Guest are viewing this topic.

Offline MsZ

  • Il Manutentore
  • Militante
  • ******
  • Posts: 913
  • GNUru Meditation
Re: DNS-323
« Reply #10 on: Sat 30 May 2009, 20:29 »
Pronta la 0.5. Attivo il supporto Flash USB. Adesso potete montare e leggere le chiavi USB ext2/ext3 che avete direttamente dal DNS. Sto anche studiando awk e vedendo di ottimizzare ulteriormente gli script. L'unico cruccio è che dovete loggarvi tramite telnet e agire manualmente.

Quote
--- Version 0.5 : Some More USB Choice
(ADD) Added USB Storage Capability
(CHG) MACAddress retrievement in rc.sh is now through 'awk'

Avevo fatto altre modifiche ma sono andate perse perchè ho ripristinato un firmware precedente, avevo fatto troppo casino con degli script di automount. Cose che succedono.
Comunque fdisk del DNS non funziona come dovrebbe, e lo cambierò con una versione originale ricompilata.
« Last Edit: Sat 30 May 2009, 21:14 by MsZ »

Offline MsZ

  • Il Manutentore
  • Militante
  • ******
  • Posts: 913
  • GNUru Meditation
Re: DNS-323
« Reply #11 on: Mon 01 June 2009, 19:12 »
Sembra che lo script fscheck.sh all'avvio funzioni.

Sto facendo delle prove con ntp per vedere se riesco a liberarmi di adjtimex.

Alla D-Link hanno fatto davvero un lavoro schifoso. Due delle cose rilevanti (di cui  mi sono accorto con mio grande dispiacere) è che l'interfaccia di fdisk è totalmente distrutta e non è possibile invocarlo manualmente, e che wget non ha alcun messaggio in output. Capisco che non serva, ma loro fanno delle cose assolutamente senza senso, come togliere l'output dal codice di wget e mettere dei messaggi di echo negli script di avvio... insieme a mettere dei messaggi con mesg, che tra l'altro non è neppure compilato in busybox...

Ma ditemi voi... :tdown:

Bene, ho scoperto che una piccola applicazione, simile a ntpdate, setta l'ora del DNS. Il problema è che la setta su un server della D-Link, che ha 10 ore di differenza dall'Italia. :whustling:
« Last Edit: Tue 02 June 2009, 16:33 by MsZ »

Offline MsZ

  • Il Manutentore
  • Militante
  • ******
  • Posts: 913
  • GNUru Meditation
Re: DNS-323
« Reply #12 on: Sun 09 August 2009, 15:58 »
Update. Un po' tardi, ma ho avuto tante cose da fare, e non è neanche ideale come update. Se volete provatela, ci sono tante cose interessanti. Fate riferimento alla sezione di Warning per alcuni messaggi importanti. E' una rc1, diventerà una 0.6 quando la renderò ideale per me.

Rimane versione 1.05, comunque.

Changelog:
Quote
--- Version 0.6rc1 : A Little Order In A Sea Of Chaos
(FIX) Modified rc.sh: fake smbcom
(ADD) Introducing fscheck.sh: safe unmounting
(ADD) Introducing usb-share.sh: shared flash USB stick on the net
(ADD) Adding sfdisk to system
(CHG) Changed fdisk: usable version
(CHG) Changed e2fsck (1.41.3): ext3 disks can support new features
(CHG) /etc/samba/smb.conf is now stable
[DEL] Pending for deletion:
   HDDStrCmp
   judge_swap
   smbcom
   write_raidtab
   hd_verify
   chk_mtdaapd_path
   SetTimeZone
   stime
   mfg_search
[DEL] Pending for deletion: the entire D-Link RAID system (raidtab)
->   To be replaced with mdadm + free software array
   script recognition system
(ADD) Introducing 'raider': RAID array assembly/disassembly
(DEL) Deleted: /etc/hotplug/hiddenmount
(DEL) Deleted: /etc/hotplug/satamount
(DEL) Deleted: /etc/hotplug/sataumount
(DEL) Deleted: /sbin/hotplug
[DEL] Pending for deletion: BitTorrent structure
   To be replaced with... I don't know :(
   If I manage to cross compile the entire glibc toolchain
   I may actually use transmission-daemon on ARM :)

(BitTorrent lo voglio cancellare perchè non è più free software. Lo era fino alla versione 5. Dalla 6 in poi è proprietario.)

Adesso due tra le cose più interessanti sono:
-- Una eventuale chiavetta flash USB installata nel DNS si monta automaticamente e diventa disponibile in rete fin da subito. --
Se l'avete formattata in Windows (probabile, ovvero non ha partizioni) la potete montare con il seguente comando:

Code: [Select]
mount -t cifs //192.168.0.32/flash <mountpoint> -o user=root
Se è partizionata il DNS dovrebbe montare tutte le partizioni leggibili dal kernel. Le potete montare con il comando:

Code: [Select]
mount -t cifs //192.168.0.32/flashN <mountpoint> -o user=root
una alla volta, dove N è un numero che parte da 1 e va fino al numero massimo di partizioni all'interno della chiavetta... entro certi limiti, e saltando alcuni numeri, se avete creato delle partizioni logiche nella primaria... :whustling: eccetera eccetera.
Guardatela così, avete una porta USB in più via Ethernet. :sdentato:

-- L'array RAID all'interno del DNS viene assemblato, montato e condiviso automaticamente. --

Lo script che gestisce questo si trova in /sys/crfs/sbin/ e si chiama raider. Potete darci un'occhiata se volete.
Vengono ovviamente fatti dei controlli durante le varie fasi. Se esistono i dischi (e sono due, fisici); se esistono le partizioni (e i dischi ne hanno una sola); se le partizioni e i filesystem all'interno dell partizioni sono sani, ecc.
Il DNS supporta due dischi fisici con una partizione primaria ciascuno. Contravvenendo ad uno solo dei controlli comporta un'interruzione della procedura di montaggio e condivisione.

L'array RAID viene montato nel DNS sotto la directory raid. Per montarla via CIFS fate:

Code: [Select]
mount -t cifs //192.168.0.32/raid <mountpoint> -o user=root
Una volta montati i dischi via CIFS avrete tutti i diritti di lettura e scrittura. Devo ricordarmi di mettere un utente neutrale (con soli diritti di lettura) per evitare errori titanici.



*** BIG FAT WARNING ***

Purtroppo alcune ciambelle vengono senza buco, e questa è una ciambella senza buco. Un krapfen. (Che buoni.)
In sostanza, se accedete all'interfaccia web trovate in basso allo schemino un messaggio di errore (probabilmente un'applicazione non trovata, richiamata da goweb). Non è grave, semplicemente ho involontariamente mutilato l'interfaccia di gestione di formattazione dell'array, che era sostanzialmente quello che volevo. Quello che non volevo è il fatto che i dischi all'avvio si mettono a lavorare per un motivo a me sconosciuto, e non vorrei che succedesse qualcosa al filesystem. Ho riavviato il sistema due volte e non ho riscontrato problemi. E sono disponibili via CIFS durante il lavoro. Mah, indagherò.
A parte il fatto che la prima volta che ho riavviato con il nuovo firmware non ho visto i due pulsantini "Skip" e "Next"... panico.
Poi sono andato a vedere nella struttura dell'interfaccia web e ho tirato fuori il nome della pagina principale. L'ho digitata nella barra degli indirizzi del browser e soo riuscito a raggiungere il menu.

Fiù.

Ho poi modificato leggermente il file /sys/crfs/web_page/formatHD/wizard1.asp in modo che mi mettesse i due pulsantini prima della richiesta della funzione che genera errore, ho ricaricato il firmware e sono ricomparsi. E' una pezza temporanea, rimarrà per il tempo che mi servirà per capire come fare a sistemare la cosa in modo un po' più "classoso".


Questa è una versione di prova. Funziona, ma da risultati a me inaspettati. Provatela a vostro rischio e pericolo.
« Last Edit: Sun 09 August 2009, 16:40 by MsZ »

Offline MsZ

  • Il Manutentore
  • Militante
  • ******
  • Posts: 913
  • GNUru Meditation
Re: DNS-323
« Reply #13 on: Mon 10 August 2009, 03:05 »
Ah si. Ho reso fscheck.sh stabile, ovvero ad ogni avvio fa un controllo dei filesystem, come dovrebbe essere.

Adesso devo fare in modo che all'arresto i filesystem si smontino.

Offline MsZ

  • Il Manutentore
  • Militante
  • ******
  • Posts: 913
  • GNUru Meditation
Re: DNS-323
« Reply #14 on: Tue 11 August 2009, 22:35 »
Sostituirò anche mke2fs, quello fornito da D-Link fa cose strane in fase della creazione di filesystem. Al suo posto metto mke2fs 1.41.3 compilato da me medesimo per ARM. :biggrin:

Offline MsZ

  • Il Manutentore
  • Militante
  • ******
  • Posts: 913
  • GNUru Meditation
Re: DNS-323
« Reply #15 on: Wed 12 August 2009, 12:52 »
Ho trovato la causa del superlavoro dei dischi all'avvio del DNS. E' mt-daapd, ha a che fare con iTunes.

Poco male, avevo già in programma di sradicarlo.

Offline MsZ

  • Il Manutentore
  • Militante
  • ******
  • Posts: 913
  • GNUru Meditation
Re: DNS-323
« Reply #16 on: Wed 30 September 2009, 18:24 »
Con l'ultimo firmware sto rischiando molto. Ho fatto una valanga di cambiamenti e ormai manca pochissimo. Se funziona avrò la conferma che il DNS è relativamente flessibile e tollera cambiamenti piuttosto radicali alla struttura del firmware.

Non so se l'ho già detto, ma è bene ripeterlo, anche come promemoria.
Il firmware del DNS si regge su pochi, importanti aspetti per poter continuare ad essere modificato. Ma quei pochi sono estremamente delicati.

1-Il kernel.
Il kernel è fondamentale, è il nucelo del sistema operativo, poco da fare.
2-Busybox.
Busybox sostituisce init e molte altre applicazioni fondamentali. E, in quanto init, fornisce un supporto (virtuale, il DNS in sè non ha concetto di runlevel) per una serie determinata di script. Dovrebbe essere possibile un primitivo supporto di runlevel, sebbene in Busybox non ci sia traccia di telinit. Ma non esiste solo init, ci sono tutta una serie di applet che devono esistere in Busybox per avere un sistema completo.
3-Lo script di avvio.
Lo script di avvio, /etc/rc.sh, elenca le applicazioni che devono essere avviate all'avvio del sistema. Non è un runlevel: uno script attiva applicazioni; un runlevel attiva script, che attivano variabili o applicazioni.
4-La rete.
Ovviamente, essendo il DNS un NAS (Network Attached Storage) si basa sulla rete per una comunicazione soddisfacente con le altre macchine. Se la rete è giù sono problemi seri e non si può interagire con il webserver.
5-Il webserver.
A tuttora il webserver è l'unico mezzo che conosco per aggiornare il firmware. In poche parole, se il webserver è down, non è possibile (per ora) ne aggiornare il firmware nè interagire con i comandi, la configurazione o i settaggi del DNS. Certo, c'è sempre utelnet e non è fondamentale, però è un aiuto non indifferente.

Trascurare il corretto funzionamento e una corretta configurazione di uno qualsiasi degli elementi sopra elencati significa prendersi un biglietto di sola andata per il negozio di PC a comprare un altro DNS, perchè se non c'è rete, o il kernel non funziona, o il firmware non può essere aggiornato, sono cavoli amari. L'unica alternativa è montare una porta COM seriale, ma ciò significa hackare l'hardware del DNS con equipaggiamenti e manovre un po' pericolose per la salute del NAS. In compenso poi si ha il controllo completo del dispositivo ed è possibile sbagliare quanto si vuole pur non perdendo nulla.

Ma mi sa che comunque per me sarà l'unica scelta. Hackare il DNS via rete è un po' come brancolare nel buio e sperare di non inciampare mai, il che è arduo di per sè -e allora l'unica scelta che hai è di evitare certe strade, come la ricompilazione del kernel.
« Last Edit: Wed 30 September 2009, 18:29 by MsZ »

Offline franz1789

  • Vagrant
  • Administrator
  • Militante
  • *****
  • Posts: 767
    • Been Smoking Too Long
Re: DNS-323
« Reply #17 on: Thu 01 October 2009, 20:11 »
Ma mi sa che comunque per me sarà l'unica scelta. Hackare il DNS via rete è un po' come brancolare nel buio e sperare di non inciampare mai, il che è arduo di per sè -e allora l'unica scelta che hai è di evitare certe strade, come la ricompilazione del kernel.
evitare la ricompilazione del kernel a scapito di una possibile ottimizzazione hardware?

Offline MsZ

  • Il Manutentore
  • Militante
  • ******
  • Posts: 913
  • GNUru Meditation
Re: DNS-323
« Reply #18 on: Thu 01 October 2009, 21:27 »
Mah... il kernel così com'è non è male, mi piacerebbe vedere se si può togliere qualcosa di non necessario. Ora come ora il DNS si avvia in media in 25 secondi, bisognerebbe vedere se si può accorciare 'sto tempo.

Offline MsZ

  • Il Manutentore
  • Militante
  • ******
  • Posts: 913
  • GNUru Meditation
Re: DNS-323
« Reply #19 on: Fri 02 October 2009, 11:53 »
Ho ordinato un cavo FT232R alla DigiKey, direttamente in America.

Oh, che bene. Ci metterà un po' per arrivare, però poi potrò fare tutti gli smanettamenti che mi verranno in mente :idea:

 

Creative Commons License All ValerioCipriani.com contents are published according to Creative Common License, except different instructions. The Staff is not responsible of eventually guide, article and publishing mistakes. All published items are patent free. All trade marks reported are right reserved. Contact us, Info.