Serveur de stockage USB Linksys NSLU2
Projet : MaMaisonMultimedia
Attention : infos de mi-2006, cette page est un peu obsolète maintenant (2008). Projet interrompu.
Magnifique petite innovation de Linksys dans le "home networking" (en 2006) !
Intro : Maintenant tout le monde a un disque externe dés qu'il veut du stockage de masse pas trop rigide... Disque externe = USB maintenant. Le top donc, c'est de pouvoir exploiter ce stockage sans avoir a allumer un ordi ou brancher le disque dessus (pour y accéder à plusieurs par exemple sans déplacer le disque ou tout allumer !). Et bien, c'est ça le NSLU2 : on branche jusqu'à 2 disques (ou clés !) USB dessus et hop, on a le stockage en réseau ! Mieux même accessible via le net par son ADSL sans même avoir de PC allumé !
Ce qui est rigolo c'est que pleins de firmware linux bricolés voient le jour pour en faire toujours plus !
Et moi ce qui m'intéresse c'est d'en faire un
MediaServer? Audio/visuel Upnp sans PC allumé. Et tous les médias stockés (musique, vidéos, photos) seront visualisables par le réseau sur mon
UltimeTV qui est Media Gateway Upnp ! Sans aucun PC allumé ! Le top. 2 solutions prêtes :
Mailing list des utilisateurs :
http://tech.groups.yahoo.com/group/nslu2-general/
FWT : 89 € (05/2006). LDLC à 95 €
Dimensions : 130 mm x 21 mm x 91 mm (c'est vraiment minus !)
Consommation électrique du NSLU2 : Off: 0 W. On: 3.5 W. Heavy CPU load: 3.9 W.
D'après un utilisateur.
Idées à intégrer dans le NSLU2 :
Il va m'en falloir plusieurs !
NSLU2 #1 (acheté !)
- Unslung 6.3 (OK)
- Media server upnp Twonky Vision (OK)
- Samba (DE BASE)
- Accès web aux fichiers + site ? (A FAIRE)
NSLU2 #2 (en projet)
- Cacti/rrdtools ?
- Pilotage prises courant (allumer TV & HTPC à distance ou sur programmation ou évènement)
- Host Bluetooth pour détection présence (allumer TV ou autre) et pour access point SmartPhone (à creuser ici et là )
- Webcam server ? D'accord mais pour quoi faire
- VPN server
- P2P ?
- Print & Scan server (http://hpoj.sourceforge.net/)
- MonRevo oublié comme terminal pour le NSLU ! fallait y penser !!
- Wake on Lan comme alternative aux prises pilotées (support dans Openslug)
Disque Dur USB2 externe :
Dimensions : 16,5 cm de hauteur, 5,5 de large et 14 de profondeur
Prix : 148 € en 320 Go chez LDLC (8/2006)
Très sympa, silencieux.
Mise en oeuvre NSLU #1
Problème de Spindown automatique du disque : il y a des accès toutes les 4 secondes.
Tentative de remount avec noatime comme c'est mentionné
dans le wiki mais sans succès :
-bash-3.1# cat rc.local
#!/bin/sh
# /unslung/rc.local
# diversion script to remount the drive(s) without access
# times being recorded (the update of access times can
# prevent drives sleeping)
# Usually it is enough just to do /sda1 as this is the usually
# the one that holds the system.
/bin/echo "Remounting /dev/sdb1 with noatime"
/bin/umount /dev/sdb1
/bin/mount -t vfat -o rw,noatime /dev/sdb1 /share/hdd/data/HDD_1_1_1
# /bin/mount -o remount,rw,noatime /dev/sdb1
# return 1
# EOF - include this line
Installation de Twonkymedia Serveur Upnp
Le script windows d'installation pour unslung 6.8 est très bien.
Il faut lancer l'accès Telnet avec la page qui va bien sur le slug.
Il m'a fallu lancer le script sans le
Disk1? branché sinon il l'installe dessus au lieu de la clé USB
Disk2?.
Le script de lancement donne :
/opt/etc/init.d/S99twonkyvision
#!/bin/sh
route add -net 224.0.0.0 netmask 240.0.0.0 dev ixp0
cd /share/flash/data/twonkyvision
/share/flash/data/twonkyvision/twonkymedia &
Ensuite la page d'admin pour moi c'est :
http://192.168.150.150:9000/configpage/index.html
Pb de password telnet
J'ai changé le mdp telnet par rapport au uNSLUng d'origine du firmware unslung et bien que je soit sur de ma mémoire, rien a faire, il ne fonctionne plus. J'ai encore l'accès en SSH par le mode booté en unsling et j'ai plein de fichiers passwd comme décrit
lĂ :
/share/hdd/conf/passwd
/share/flash/conf/passwd
/usr/local/passwd
/initrd/usr/local/passwd (lui n'a pas le mĂŞme hash de mdp que les autres !)
et
lrwxrwxrwx 1 root root 24 Nov 11 17:48 /etc/passwd -> /share/flash/conf/passwd
lrwxrwxrwx 1 root root 24 Nov 11 17:43 /initrd/etc/passwd -> /share/flash/conf/passwd
Pour m'en tirer, j'ai édité
/initrd/usr/local/passwd (vi est dispo) et lui ai mis le hash présent dans tous les autres fichiers ! En gros le mot de passe personnalisé qui marche en boot unsling sur la clé USB. Et là bingo ! Le login root telnet en boot sur "internal flash" fonctionne avec mon mdp.
Boot sans message d'erreur de taille de disque comme avant
# dmesg
Linux version 2.4.22-xfs (unslung@unslung.org) (gcc version 3.4.4) #1 Mon Apr 10
18:17:11 PDT 2006
CPU: XScale-IXP425/IXC1100 revision 1
Machine: Intel IXDP425 Development Platform
Warning: bad configuration page, trying to continue
Security risk: creating user accessible mapping for 0x60000000 at 0xff00f000
Security risk: creating user accessible mapping for 0x51000000 at 0xf1000000
On node 0 totalpages: 8192
zone(0): 8192 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: console=ttyS0,115200n8 root=/dev/mtdblock4 rootfstype=jffs2
rw init=/linuxrc mem=32M@0x00000000
Relocating machine vectors to 0xffff0000
Calibrating delay loop... 263.78 BogoMIPS?
Memory: 32MB = 32MB total
Memory: 30280KB available (1581K code, 271K data, 244K init)
Dentry cache hash table entries: 4096 (order: 3, 32768 bytes)
Inode cache hash table entries: 2048 (order: 2, 16384 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 8192 (order: 3, 32768 bytes)
POSIX conformance testing by UNIFIX
PCI Autoconfig: Found Bus 0, Device 1, Function 0
PCI Autoconfig: BAR 0, Mem, size=0x1000, address=0x4bfff000
PCI Autoconfig: Found Bus 0, Device 1, Function 1
PCI Autoconfig: BAR 0, Mem, size=0x1000, address=0x4bffe000
PCI Autoconfig: Found Bus 0, Device 1, Function 2
PCI Autoconfig: BAR 0, Mem, size=0x100, address=0x4bffdf00
PCI: bus0: Fast back to back transfers disabled
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
VFS: Disk quotas vdquot_6.5.1
Journalled Block Device driver loaded
devfs: v1.12c (20020818) Richard Gooch (rgooch@atnf.csiro.au)
devfs: boot_options: 0x0
Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
JFFS2 version 2.1. (C) 2001 Red Hat, Inc., designed by Axis Communications AB.
i2c-core.o: i2c core module
i2c-dev.o: i2c /dev entries driver module
i2c-core.o: driver i2c-dev dummy driver registered.
i2c-algo-bit.o: i2c bit algorithm module version 2.6.1 (20010830)
pty: 256 Unix98? ptys configured
Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI en
abled
ttyS00 at 0xff000003 (irq = 15) is a XScale UART
ttyS01 at 0xff001003 (irq = 13) is a XScale UART
RAMDISK driver initialized: 16 RAM disks of 16384K size 1024 blocksize
SCSI subsystem driver Revision: 1.00
* host:<NULL>
IXP425 Flash: Found an alias at 0x800000 for the chip at 0x0
cfi_cmdset_0001: Erase suspend on write enabled
0: offset=0x0,size=0x20000,blocks=64
Using buffer write method
Creating 6 MTD partitions on "IXP425 Flash":
0x00000000-0x00040000 : "RedBoot?"
0x00040000-0x00060000 : "SysConf?"
0x00060000-0x00160000 : "Kernel"
0x00160000-0x00180000 : "Ramdisk"
0x00180000-0x007e0000 : "Flashdisk"
0x007e0000-0x00800000 : "FIS directory"
usb.c: registered new driver usbdevfs
usb.c: registered new driver hub
pci probe begin
ehci_hcd 00:01.2: NEC Corporation USB 2.0
ehci_hcd 00:01.2: irq 26, pci mem c3872f00
usb.c: new USB bus registered, assigned bus number 1
PCI: 00:01.2 PCI cache line size set incorrectly (0 bytes) by BIOS/FW.
PCI: 00:01.2 PCI cache line size corrected to 32.
ehci_hcd 00:01.2: USB 2.0 enabled, EHCI 1.00, driver 2003-Jun-19/2.4
Device descriptor:8 bytes received.
Device descriptor:18 bytes received.
hub.c: USB hub found
hub.c: 5 ports detected
pci probe ok
host/usb-uhci.c: $Revision: 1.3 $ time 18:18:04 Apr 10 2006
host/usb-uhci.c: High bandwidth mode enabled
host/usb-uhci.c: v1.275:USB Universal Host Controller Interface driver
host/usb-ohci.c: USB OHCI at membase 0xc387a000, IRQ 28
host/usb-ohci.c: usb-00:01.0, NEC Corporation USB
usb.c: new USB bus registered, assigned bus number 2
Device descriptor:8 bytes received.
Device descriptor:18 bytes received.
hub.c: USB hub found
hub.c: 3 ports detected
host/usb-ohci.c: USB OHCI at membase 0xc3880000, IRQ 27
host/usb-ohci.c: usb-00:01.1, NEC Corporation USB (#2)
usb.c: new USB bus registered, assigned bus number 3
Device descriptor:8 bytes received.
Device descriptor:18 bytes received.
hub.c: USB hub found
hub.c: 2 ports detected
Initializing USB Mass Storage driver...
usb.c: registered new driver usb-storage
USB Mass Storage support registered.
i2c-dev.o: Registered 'IXP425 I2C Adapter' as minor 0
i2c-core.o: adapter IXP425 I2C Adapter registered as adapter 0.
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 2048 bind 4096)
IP-Config: No network devices available.
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
NetWinder? Floating Point Emulator V0.97 (double precision)
VFS: Mounted root (jffs2 filesystem).
Freeing init memory: 244K
hub.c: new USB device 00:01.2-2, assigned address 2
Device descriptor:8 bytes received.
Device descriptor:18 bytes received.
Protocol: Transparent SCSI
* * * detect:usb-storage
* scsi_register: usb-storage-0,
* scsi_reg, hostno:0 prot is 50
* scsi_reg, retval->host_no:0
scsi0 : SCSI emulation for USB Mass Storage devices
! scan_scsis
* * * 50
Vendor: Intuix Model: U3 Rev: 6.50
Type: Direct-Access ANSI SCSI revision: 02
* * * 50
Vendor: Intuix Model: U3 Rev: 6.50
Type: CD-ROM ANSI SCSI revision: 02
Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0
SCSI device sda: 977311 512-byte hdwr sectors (500 MB)
32 port connect!!!!!
sda: Write Protect is off
Partition check:
/dev/scsi/host0/bus0/target0/lun0: p1 p2 p3
WARNING: USB Mass Storage data integrity not assured
USB Mass Storage device found at 2
kjournald starting. Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
EXT3 FS 2.4-0.9.19, 19 August 2002 on sd(8,1), internal journal
Module init.
ixp425_eth:
Initializing IXP425 NPE Ethernet driver software v. 1.1
ixp425_eth: CPU clock speed (approx) = 0 MHz
[error] ixEthMiiPhyScan : unexpected Mii PHY ID 00008201
ixp425_eth: ixp0 is using the PHY at address 1
ixp425_eth: ixp1 is using the PHY at address 0
ixp425_eth: ixEthMiiLinkStatus failed on PHY0.
Can't determine
the auto negotiated parameters. Using default values.
enable_irq(22) unbalanced from c39451bc
X1226: I2C based RTC driver.
i2c-core.o: driver X1226 registered.
X1226: found X1226 on IXP425 I2C Adapter
i2c-core.o: client [X1226] registered to adapter [IXP425 I2C Adapter](pos. 0).
atr is 1f
ufsd: driver loaded
kjournald starting. Commit interval 5 seconds
EXT3 FS 2.4-0.9.19, 19 August 2002 on sd(8,2), internal journal
EXT3-fs: recovery complete.
EXT3-fs: mounted filesystem with ordered data mode.
Adding Swap: 127676k swap-space (priority -1)
Etapes post-unsling
J'avais déjà toute la config réseau OK. Pas perdue au 2eme unsling.
Mise Ă jour des packages :
http://www.nslu2-linux.org/wiki/Unslung/Packages
ipkg update
ipkg install unslung-feeds
ipkg update
ipkg list (Ouch ! Bigre qu'il y en a !)
Installation de mes préférés :
ipkg install openssh
ipkg install bash
ipkg install ntop mauvaise idée
ipkg install lighttpd
ipkg install bzip2 libmemcache
Pour lighttpd, j'ai déplacé l'admin NSLU sur le port 8000
J'ai du aussi installer sqlite pour le support du module webdav
ipkg install sqlite
ipkg install mysql tant que j'y suis !
ipkg install ushare essai de ce serveur upnp
Serveur Web avec LIGHTTPD
Petit serveur rapide et fonctionnel avec support Webdav.
La partie authentification pour le favori réseau sous XP exploitant webdav n'est pas tombé en marche tout seul.
J'utilise le
module auth de lighttpd et la méthode basic.
Problème pour le fichiers > à 512k !!
Ticket :
http://trac.lighttpd.net/trac/ticket/759
Solution apportée par un paramètre de conf :
http://forum.lighttpd.net/topic/5200#new
server.network-backend = "write"
Pré-étude pour passer le NLSU en Debian
Liens
Usages visés
- AP wifi avec un Dongle USB
- Portail hotspot captif
- Routeur, Firewall, NAT, DHCP, QoS?
- Cacti stats
- Nagios polling