Author Topic: DNS-323  (Read 29495 times)

0 Members and 1 Guest are viewing this topic.

Offline MsZ

  • Il Manutentore
  • Militante
  • ******
  • Posts: 913
  • GNUru Meditation
Re: DNS-323
« Reply #30 on: Mon 19 October 2009, 20:38 »
***Creare uRamdisk***

uRamdisk è l'immagine del filesystem che accompagna il kernel nel DNS. Senza filesystem il kernel è incompleto e senza kernel il filesystem non funziona. Quindi, se dovete flashare uno è meglio che aggiorniate (se necessario) e flashate (se lo aggiornate) anche l'altro. Come sempre, previa prova in RAM come descritto sopra.

Allora, per creare uRamdisk dovete prima di tutto tenere presente che in esso c'è un file, chiamato image.cfs, che è un filesystem di tipo cramfs. Inutile dire che il vostro sistema operativo (e quindi il vostro bel kernel *NIX) lo deve supportare. E' meglio che vi riferiate a questo messaggio per informazioni su come leggere il firmware ufficiale per avere un'idea di che cosa c'è dentro image.cfs.

Insomma, dovete supportare cramfs e avere mkfs.cramfs tra le vostre innumerevoli applicazioni. Poi, avendo la vostra brava directory di utility estratta da image.cfs ne modificate quello che volete e fate:
Code: [Select]
mkfs.cramfs <directory> <file_destinazione>dove <directory> è la directory delle utility e <file_destinazione> è il file compresso che ospita cramfs. Esso dovrà essere posto nella directory radice del ramdisk.



In genere nel filesystem cramfs trovate questa roba:
LPRng   codepages   driver      language   lltd   sbin   shared_name   web
bin   default      etc_codepage   lib      samba   scsi   upnp      web_page


E nella radice:
bin      dev   home      lib      mnt   root   sys   usr   web
busybox   etc   image.cfs   lost+found   proc   sbin   tmp   var   welcome.msg


Durante l'avvio il kernel monta il ramdisk e subito dopo monta via loopback image.cfs come cramfs, da cui collega le utility.

Una volta messo image.cfs nella radice creiamo il ramdisk ext2 con i seguenti passi:

  • Creiamo un file vuoto con dd:
    dd if=/dev/zero of=Ramdisk bs=1k count=8k
  • Creiamo il filesystem nel file appena creato:
    mkfs.ext2 -m0 -F Ramdisk
  • Montiamo il filesystem appena creato in un mountpoint precedentemente creato:
    mount -t ext2 -o loop /mnt/<mountpoint>
  • Copiamo la struttura del firmware:
    cp -dpvr <radice>/* /mnt/<mountpoint>
  • Smontiamo il filesystem:
    umount /mnt/<mountpoint>
  • Gzippiamo il ramdisk:
    cat Ramdisk | gzip -9 > Ramdisk.gz

E poi eseguiamo il comando di mkimage due post sopra, e carichiamo uRamdisk tramite seriale.
Bon, per il momento dovrebbe essere tutto quello che so fare. Appena posso posto il nuovo firmware, con kernel... fatto in casa :gogo8xe:

Offline MsZ

  • Il Manutentore
  • Militante
  • ******
  • Posts: 913
  • GNUru Meditation
Re: DNS-323
« Reply #31 on: Tue 20 October 2009, 23:13 »
Come promesso, ecco il nuovo firmware. Nuovo scintillante, dovrebbe essere pure un po' più veloce. Ovviamente non serve che vi dica due cose:

  • esso vale solo per i DNS-323 con versione hardware B1;
  • non mi riterrò responsabile per un qualsiasi danno o bricking al DNS su cui lo proverete.

Il mio DNS è un B1 e il flashing via web del firmware ha dato esito positivo.
Godetevi il changelog. :happy:

Quote
--- Version 0.6rc3 : Serial, Finally
[FIX] Restored image.cfs/sbin/daylight
[NEW] Brand New Kernel!!!
[NEW] XFS support
[NEW] VFAT support
[FIX] Fixed some kernel lines
[FIX] Fixed some busybox lines
[DEL] Removed printer support
[DEL] Removed ping output (XXX is alive!/No response from XXX)
[DEL] Removed CIFS support
[DEL] Removed CFQ scheduler from kernel
[ADD] Added directory image.cfs/modules
[ADD] Added clear applet
[ADD] Added su applet
[ADD] Added hwclock applet
[ADD] Added cursor optimization for vi
[ADD] Support for Large Block Devices (>2TB disks)
[ADD] Support for Large Single Files (>2TB files)
[FIX] Using rdate to syncronize time
[FIX] Removed wrongdate check at startup

[TODOS]
 ° This one is stable, and I managed to build a working
   ARM 2.6.12.6 custom kernel.
 ° Next time I have to substitute some D-Link binary blobs with some scripting
   and enforcing security (serial connection needs su and a normal user)
 ° Need to make crond less annoying
 ° Need to rewrite fscheck.sh from scratch
 ° Need to control raider & usb-share

E' stato un po' complicato far vedere le unità MTD al kernel, ma alla fine penso di avere trovato la configurazione giusta.

La potete vedere se entrate nel DNS tramite telnet:
Code: [Select]
telnet 192.168.0.32Come nome utente usate root e poi scrivete:
Code: [Select]
zcat /proc/config.gz | more
« Last Edit: Tue 20 October 2009, 23:28 by MsZ »

Offline MsZ

  • Il Manutentore
  • Militante
  • ******
  • Posts: 913
  • GNUru Meditation
Re: DNS-323
« Reply #32 on: Wed 21 October 2009, 20:57 »
Temo di aver brickato definitivamente il DNS... probabilmente ho giochicchiato troppo con la seriale.
Vedo se riesco a recuperarlo in qualche modo... :timoroso:

Offline deejaysound

  • Nuovo iscritto
  • Posts: 2
Re: DNS-323
« Reply #33 on: Thu 22 October 2009, 22:18 »
Ciao MsZ

....scusa l'intrusione, ma vorrei cercare di seguire il tuo progetto!!

Siccome però sono curioso di vedere come funziona il tuo nuovo firmware, vorrei provare a montarlo nel mio DNS.

Attualmente ho montata la versione del firmware 1.07, secondo te posso metterci sopra direttamente  la tua versione, oppure è meglio se prima faccio il downgrade alla 1.05?

Ciao e grazie!

Offline MsZ

  • Il Manutentore
  • Militante
  • ******
  • Posts: 913
  • GNUru Meditation
Re: DNS-323
« Reply #34 on: Thu 22 October 2009, 23:41 »
Non dovrebbe essere un problema anche se flashi la mia versione (che non è altro che una versione modificata della 1.05) direttamente sopra la 1.07, ma ti prego di ricordare che, se decidi di farlo e qualcosa non funziona più come prima, e prima ti andava bene, non potrai ritenermi responsabile di quello che più non ti funziona, perchè questo firmware l'ho modificato sulle mie esigenze, e sei tu che prendi la decisione di flashare un firmware piuttosto che un altro. E il mio firmware non è ufficiale della D-Link, quindi se ti va storto qualcosa e hai su il mio firmware è alquanto improbabile che la garanzia ti copra.

Inoltre ricorda che il mio DNS è ancora indisposto: cercherò di recuperarlo, ma se non riesco non credo che riprenderò in mano il progetto tanto presto, anche perchè non mi posso permettere un nuovo DNS al momento.

Offline deejaysound

  • Nuovo iscritto
  • Posts: 2
Re: DNS-323
« Reply #35 on: Fri 23 October 2009, 17:28 »
Grazie mille per la risposta!

Tranquillo, so bene che non copre queste cose la garanzia.... anche se potrei dimostrare come questo non sia stato proprio del tutto vero in piu di un occasione!   :tup:

Male che dovesse andare proverò a recuperarlo con la seriale o Jtag, non ricordo....

A proposito, proprio in questi giorni stò cercando di resuscitare (tramite JTAG) un nas Terastation di un cliente che è deceduto dopo un aggiornamento firmware finito male... spero di riuscirci! :think:

Offline roglio

  • Nuovo iscritto
  • Posts: 5
Re: DNS-323
« Reply #36 on: Sat 31 October 2009, 11:14 »
Ciao MsZ, mi dispiace per il tuo nas, speriamo che riesci a recuperarlo.

Se per caso non lo sapessi, volevo informarti che la dlink ha rilasciato i sorgenti gpl usati nella versione 1.06

Li trovi a questo link ftp://ftp.dlink.com/GPL/DNS-323/106/dns323_GPL_v1.06_12032008.tgz

Praticamente li rilasciano ad un anno di distanza dalla release  :sad:

In bocca al lupo!

Offline MsZ

  • Il Manutentore
  • Militante
  • ******
  • Posts: 913
  • GNUru Meditation
Re: DNS-323
« Reply #37 on: Sun 01 November 2009, 18:58 »
Mh, non credo. Di installare una JTAG non ho nessuna voglia, e continua a non dare segni di vita. Quindi ho deciso di cambiare e di costruire un NAS da uno Shuttle K48.

Ci installo una Gentoo e la modifico a seconda dei miei bisogni. Sono avvantaggiato perchè parto da zero e ho a disposizione tutti gli strumenti free software che voglio, da compilare come voglio. Intanto devo installarlo e farlo partire, poi vedremo.


Se vorrete continuare ad utilizzare i firmware presenti qui fate pure, sempre tenendo a mente le precauzioni che vi ho elencato. Chiudo il thread perchè ormai credo di non avere più molto da dire, a meno che qualcuno non voglia prendere in mano il progetto... basta che mi invii un PM e possiamo discuterne.


:happy:

 

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.