OWFS på DNS-320/325

Från Temperatur.nu
Hoppa till navigeringHoppa till sök

Här följer en beskrivning för att komma igång med OWFS på D-links nätverkshårddisk (NAS - Network Attached Storage) DNS-320/325 med Debian Squeeze. För att konfigurera OWFS på ett normalt Linux-system, se OWFS HowTo.

Bakgrund

D-link DNS-320 är en billig nätverkshårddisk från D-link med plats för två hårddiskar och en USB-port. Trots att programvaran är specialskriven för att agera just nätverkshårddisk så finns det möjighet att öppna upp enheten och få vad som nästan är ett normalt linux-system. D-link har släppt instruktioner för hur man ska göra för att få en chroot:ad installation av Debian Squeeze. Tyvärr är inte USB-porten tillgänglig i Debian om man följer den instruktionen. Den här beskrivningen visar hur man kan ta sig runt det problemet.

Mål

Att få igång ett 1-wire-nät med OWFS på en D-link DNS-320 med 1-wire-USB-adaptern DS9490R.

Hårdvara

Mjukvara

Beskrivning

Beskrivningen startar med att nollställa och formattera om hårddiskarna på NAS:en. Se noterna längst ner om du har data på hårddiskarna du inte vill radera eller t.o.m. har Debian Squeeze installerat.

  • Återställ NAS:en och ge den baslinjeinställningar.
    • Logga in på din NAS via dess web-interface.
    • Välj Management/System Management/System Settings/Defaults/Restore to Factory Defaults Settings.
    • Vänta på reboot.
    • Logga in med admin/<blank>.
    • Välj Management/Account Management/Admin Password och sätt password.
    • Välj Management/System Management/Time and Date.
      • Sätt tidszon och NTP-server.
    • Välj Management/System Management/Device.
      • Namnge enheten workgroup/eddie/DNS-320. (NAS:en heter alltså 'eddie' i denna beskrivning.)
    • Följande punkter är ej nödvändiga.
      • Välj Management/System Management/System Settings.
        • Sätt Idle Time till 60 minuter.
      • Välj Management/System Management/Power Management.
        • Sätt Hibernation=5 minuter, Power Recovery=on och Fan Control=Auto.
      • Välj Management/System Management/Notifications och fyll i din mail-info.
  • Formattera om hårddiskarna.
    • Välj Management/Disk Management/Hard Drive Configuration.
    • Välj Set RAID Type and Re-Format.
    • Bestäm själv RAID-typ. Jag kör med RAID 1 och Disable Auto-rebuild.
    • Om du får ett felmeddelande under formatteringen, välj 'Restart' och kör formatteringen en gång till. (Kan hända om du redan har fun_plug installerat.)

Nu är NAS:en färdig. Dags att ladda ner lite filer:

På din PC, kör följande (koden fungerar på ett linux-system, kör du t.ex. Windows får du ev. ladda ner filerna med din web-läsare.)

# Create a dir for downloaded files.
mkdir dns320deb
cd dns320deb
# Download fun_plug v0.7 from uli.
wget http://wolf-u.li/u/433 -O fun_plug
wget http://inreto.de/dns323/fun-plug/0.7/arm/fun_plug.tgz
# Download fun_plug.debian and squeeze.tar.gz from dlink.
wget ftp://ftp.dlink.pl/dns/dns-320/driver_software/DNS-320\&325_linuxDebian_revA_Squeeze_all_en_20110111.zip
unzip DNS-320\&325_linuxDebian_revA_Squeeze_all_en_20110111.zip

Du bör nu ha filerna fun_plug, funplug.tgz, fun_plug.debian, squeeze.tar.gz och DNS-320&325_howto_Linux-Debian-in-chroot.txt i samma katalog. Lägg följande kod i en fil med namnet fun_plug.debian.patch:

if grep -q -e '--rbind[ \t]/proc' ./fun_plug.debian; then
  echo 'mount --rbind /proc exists, not patching.'
else
  echo -n 'mount --rbind /proc not found, patching...'
  sed -i 's:mount[ \t]*--bind[ \t]/proc:mount --rbind /proc:' ./fun_plug.debian
  sed -i 's:mount[ \t]*--bind[ \t]/dev:mount --rbind /dev:' ./fun_plug.debian
  echo done.
fi
if grep -q fun_plug.local ./fun_plug.debian; then
  echo 'Reference to fun_plug.local exists, not patching.'
else
  echo -n 'No reference to fun_plug.local found, patching...'
  perl -pi -e '/chroot/ && print "# run fun_plug.local, if present\nif [ -x ./fun_plug.local ]; then\n\techo -n \"* Running ./fun_plug.local ...\"\n\t./fun_plug.local\n\techo done.\nfi\n\n"' fun_plug.debian
  echo done.
fi
if grep -q 'Write a log file'; then
  echo 'Loggin is enabled, not patching.'
else
  echo -n 'Enabling logging...'
  perl -ni -e 'chomp; print "echo \"$_\"\n" unless (/^\s*$/ || /^\s*(if|fi|echo|#)/); print "$_\n"' fun_plug.debian
  perl -ni -e 'print; print "\n# Write a log file\nexec >> /mnt/HD/HD_a2/ffpdeb.log 2>&1\necho\ndate\n" if m:/bin/sh:' fun_plug.debian
fi