Dit is een archief-paginaDit is een archief-pagina.
Ik werk deze pagina niet meer actief bij. Handleiding NSLU2 met DebianOp deze paginaAugustus 2012: Beste lezer; ik ga over op de Raspberry Pi als home server, en daarmee zijn deze pagina's dus verouderd (worden niet meer bijgewerkt)... Deel 2 (april 2010): Zoals in deel 1 beschreven heb ik een Linksys NSLU2 in mijn lokale netwerkje hangen. Dit kastje is een 'Netwerk Storage Link Unit', een interface tussen een losse USB2 harde schijf en mijn lokale ethernet netwerk. Heel geschikt als centrale file server (niet meer met usb-sticks van de ene naar de andere computer), en met SSH ook een veilige centrale gateway voor 'toegang op afstand' via het onveilige internet. Op mijn Linux en Windows file uitwisseling-pagina de informatie over samba, veilig toegang vanaf het internet via een ssh-tunnel (en een squid proxy), etc... De software op de NSLU2 had ik vervangen door een 'open versie', de linux
uNSLUng variant. uNSLUng
is helaas een nogal gestripte Linux, en daarom ben ik uiteindelijk over naar
een meer volledige variant, gebaseerd op de Debian distributie. Voordelen zijn dat dit een meer standaard Linux distributie is (en
dat dus bijvoorbeeld de startup files etc op de te verwachten plaatsen staan,
zie Linux
policies), er veel meer pakketten voor zijn, en de Debian distributie ook
de basis is voor Ubuntu, waar ik op de PC mee
werk. Nadelen zijn er ook, er is bijvoorbeeld niet meer de gebruiksvriendelijke web-based LinkSys interface, en je moet het beheer op de linux-manier met SSH en een command prompt (shell) doen. Let op: enige Linux basiskennis is wel handig! Gehele proces is op eigen risico! Om dit te doen zonder mijn huidige file server uit de lucht te halen heb ik een tweede NSLU gekregen (bedankt, Math) (ook een hebben? € 40..50 op marktplaats). Hier steek ik een USB-stick in (4 GB), om daar Debian 5.0 (Lenny) op te installeren. De tweede USB poort hield ik vrij voor de USB harde schijf waar de files op komen. Ondertussen heb ik de USB stick op de interne poort 3 aangesloten en in de behuizing ingebouwd, en heb ik de twee externe disk ports weer vrij... Maar, zo je iets nieuws willen kopen, dan zou ik eens naar bijvoorbeeld de Sheeva-plug (of Guru-plug) kijken... ~$99 (=€129 ?? via importeur) resp. $129 (=€169 ??), krachtiger processor, meer geheugen, etc. Kennis verzamelenEerst maar eens kijken wat hier zoal al over geschreven is. Nuttige websites die ik zoal gevonden heb: Pas op, sommige webpages zijn verouderd. Een aantal problemen die beschreven worden, zijn in de huidige installer en de 5.0.4 Lenny release (kernel 2.6.26-2-ixp4xx) opgelost! Zo is het mij prima gelukt om in een keer op een USB-stick te installeren.
Met deze sites moet het toch gaan lukken.
De Debian-Linux installatieWat heb je nodigVoorbereiding: wat heb je zoal nodig?
Instellen IP adresUiteindelijk belanden deze gegevens in drie files: de ip gegevens in
Het is van belang voor de installatie gegevens als IP-adres en dergelijken goed in te stellen (dus nog vanuit de LinkSys web interface). Deze gegevens gaan door de Debian installer overgenomen worden als vast IP adres. Staan deze niet goed ingesteld, dan gaat Debian over op automatische IP toewijzing (DHCP) en is het maar afwachten op welk IP adres je NSLU opduikt (al is'ie dan ook wel terug te vinden, zie Angry IP Scanner). Instellen in de Administration tab van de LinkSys web interface. Gegevens
zijn natuurlijk afhankelijk van je eigen netwerk, maar bij mij: naam
De Installer downloaden en installerenJe hebt een aangepaste versie van de Debian installer nodig. De reden
hiervoor is dat een deel van de netwerksoftware geen 'open source' is en dus
niet standaard in Debian meegeleverd kan worden. De versie die nodig is, is
Vanuit Linux kan je ook de UpSlug2 utility gebruiken, zie de uNSLUng UpSlug2 documentatie. Voor Windows kan het soortgelijk (bijvoorbeeld na problemen met upgraden: zet je NSLU in upgrade mode, en dan de nieuwe binary uploaden met de upgrade utility (WinXP). Vista/Windows 7: lees eerst deze upgrade pagina! Via de standaard LinkSys NLSU2 web interface kan je nu de NSLU upgraden,
door vanuit het upgrade menu (Administration --> Advanced --> Upgrade)
naar deze Nadat de installer is geflasht in het interne NSLU2 geheugen, zal de NLSU2
opnieuw opstarten met de Debian installer. Normaal zou de Debian installer via
een beeldscherm of seriële lijn communiceren, maar de NSLU2 heeft die
mogelijkheden niet standaard en gebruikt daarom een SSH-verbinding via je
lokale netwerk. Als de installer opgestart is (kan 5 .. 15 minuten duren,
afhankelijk van de snelheid van je NSLU, niet schrikken als de leds een tijdje
allemaal uit zijn, ze gaan weer aan) wordt de status LED groen, en piept de
NSLU drie keer. Vanaf dat moment kan je met SSH inloggen op de NSLU, met
gebruikersnaam ' ssh installer@192.168.1.9 Als het je niet lukt om met de NSLU te communiceren, is vermoedelijk het IP adres niet correct. Probeer de NSLU te vinden, bijvoorbeeld (windows) met de Angry IP Scanner (zie vorige hoofdstuk, instellen IP adres)... Het kiezen van USA als standplaats, tijdzone (Eastern) en zo lijkt de minste problemen te geven met installeren, zie de Debian installeren op de Linksys NSLU 2 pagina. Kan je later goed zetten op onze eigen tijd. De eigenlijke installatieDe eigenlijke installatie neemt er de tijd voor... Afhankelijk van je internetverbinding is dit rond de 3..4 uur. Helaas worden er nu en dan tijdens dit proces vragen gesteld (zie Debian installeren op de Linksys NSLU 2 voor de vragen en antwoorden; alleen de partitionering heb ik wat anders gedaan, zie hiernaast), zoals het root-wachtwoord na zo'n 1.5 uur en nog wat vragen 1 en 2 kwartier later. Loop dus niet te ver uit de buurt, elk kwartier even checken kan geen kwaad. De USB stick heb ik door de installer laten formatteren (keuze: guided met alle disk space, en alle data in een partitie; maakt dan automatisch de drie benodigde partities aan: sda1=boot, sda2=/ (root) en sda5=swap). Voor root heb ik gewoon ext3 filesystem aangehouden. Aan het einde van de installatie krijg je een bevestiging dat de installatie klaar is. Druk op OK, wacht tot de installer helemaal klaar is en je SSH sessie afbreekt, wacht nog enkele minuten, en als het goed is kan je dan weer met SSH inloggen, maar dan met je nieuwe user naam/wachtwoord of root & root-wachtwoord. HerstartenVoordat je opnieuw opstart: check of in de file
Controleer ook of de klok ongeveer goed staat ( Dan: opnieuw opstarten (met power switch of het reboot commando)! Dit om te zorgen dat een aantal files correct herladen wordt (zoals de package repositories). Booten duurt ongeveer een tot twee minuten, dan weer met SSH inloggen. Problemen: boot log aanzetten, zet in Bij checken geheugengebruik van het kale systeem met het Anders dan bij uNSLUng zijn een aantal nuttige pakketten al
voorgeïnstalleerd, zoals SSH en de editor nano. screen is
helaas nog niet geïnstalleerd (zie ook deel 1);
De eerste wijzigingenEn hier wat ik zoal gewijzigd heb na de installatie (voor deze keer maar inloggen als root): Package repository up-to-date makenZoals gebruikelijk: zorg dat de software en de database met packages up-to-date is... apt-get update && apt-get dist-upgrade Tijdzone instellen op NederlandInstallatie gaat bij voorkeur met Amerikaanse time setting (waarom
eigenlijk), maar toch goed om nu je eigen time zone (Europa --> Amsterdam)
weer te selecteren, niet meer met Daarnaast is het nuttig SFTP met FileZillaSoms is het voldoende om in een PuTTY/SSH window te werken. Maar om snel in het filesysteem te kunnen bladeren, is een explorer-achtige view toch handiger. Kan bijvoorbeeld met SFTP via de FileZilla FTP client. Aan/uit schakelaarStandaard doet de aan/uit switch in deze installatie een reboot, en geen
power down... Verander met Hergenereer de SSH-keysVermoedelijk al niet meer nodig, maar vanwege mogelijke zwakke keys met oudere ssh-keygen versies de keys opnieuw genereren (let op, SSH/puTTY zal wel opnieuw de fingerprint willen checken bij de volgende keer inloggen): cd /etc/ssh/ De USB GeheugenstickUSB Flash wear (slijtage)Flash geheugen (als in een USB-stick) moet niet teveel geschreven worden; de levensduur is beperkt. Voorkom dus zo veel mogelijk onnodig schrijven naar de USB-stick. Uitleg op bijvoorbeeld Tips for running Linux on a flash device. Swap op harde schijf?Als je ook de swap niet op de USB-disk wilt: zie verderop het stukje over
Disk checken na een storing. Maar,
moet er al wel een harde schijf aanhangen...
Move Vind alle files nieuwer dan bijvoorbeeld marker.txt: In de gaten houden van een partitie? Check een keer per minuut met: Het voorkomen van het schrijven van logfiles etc is best even lastig.
Checken hoe vaak naar flash geschreven wordt (zowel swap als normaal) kan door
analyse van Met de Using tmpfs to
Minimize Disk IO over log files heb ik Om de hele En nu wordt er inderdaad bij gebruik als file server niets meer naar de USB
geschreven. Alleen bij afsluiten worden de logfiles teruggekopiëerd, en worden
natuurlijk bij wijzigingen in de configuratie of eventueel op de usb staande
NSLU2-Flash Image backupDe installatie staat grotendeels op de USB-stick. Haal die uit je NSLU en
stop die in een PC met Linux (Ubuntu): er worden twee
partities gemount ( Nu eerst maar eens een backup, voor als in de configuratie iets mis gaat (bijvoorbeeld inloggen lukt niet meer) en het systeem niet meer te bereiken is... Backup van de USB-stick: ruim eerst op wat niet meer nodig is (zoals
oude log files, en de 100+ Mbyte cache van apt-get: De zo gegenereerde
Naast de backup van de USB-stick heb je ook een image van het 8 MB
flashgeheugen in de NSLU2 nodig. Dump het flashgeheugen naar file met
Harde Schijf en File ServerHarde Schijf en Disk-volgordeBlijkbaar is bij USB de volgorde van detectie van de disks wel eens
wisselend... Met als gevolg dat als je er nog een disk op aansluit, het booten
mis kan gaan omdat er op de verkeerde disk wordt gekeken ( Een ongebruikte USB harde schijf heb ik opnieuw geformatteerd, met twee
partities: een grote Op naam (label) booten kan door de kernel command
line aan te passen met Beep beepSoms handig bij testen van automatische scripts etc: het 'beep'-commando (
De HD wordt niet automatisch gemount maar wordt wel herkend (ook bij later
inpluggen): als ik kijk in Ik heb Mounten (en file system check) doe ik nu automatisch bij opstarten via een
eigen Samba File serverLet op: de client-kant van samba (ook b.v. samba via ssh) staat beschreven op mijn samba pagina... Netbios is niet echt veilig... Kan je uitschakelen met in de global sectie op te nemen: [global] Daar ging het eigenlijk (ook) om: de file server. Er staat een beknopte
uitleg van het installeren van de SAMBA server (en andere programma's
als web server en midnight commander, een file browser) op Debian on
NSLU2 - samba. Andere uitleg: SambaOnLinux.
Installatie is simpel ( /etc/samba/smb.conf ), zie daarvoor de zojuist genoemde links, en
bijvoorbeeld Samba.org en de Samba Setup Guide for Linux. Vergeet niet na
een aanpassing in de configuratie samba te herstarten (hoewel, samba
herlaadt de .conf file elke 60 seconden?): /etc/init.d/samba
restart De globale share verwijst naar een public directory op mijn
harde schijf, en is gedefinieerd als:
Vergeet niet de (in linux al bestaande!) users aan samba toe te voegen met
Toevoegen Linux user (evt met Wil je zonder wachtwoord in kunnen loggen? Zie Samba: How to share files without user/password [shared] Bij een al in gebruik zijnde NSLU2 disk kan het nodig zijn bijvoorbeeld de
owner/groep van de bestaande files in
Verder heb ik alles in Transfer rate: 5 MB/s upload (40 mbit/s), >6 MB/s download (50 mbit/s), 20% beter dan bij uNSLUng. Denk dat dit met name door mijn lokale netwerk bepaald wordt (100 mbit/s). Via de SSH gateway (dus met encryptie, zie hierna) gaat dit uiteraard naar beneden; een download was nu 800 KB/s met een 80% cpu load voor dropbear (de encryptie, denk ik zo); en 10% voor smbd (en 10% voor de rest van het systeem). Ach, naar buiten heb ik toch een nog trager abonnement, dus who cares... NTFS supportInstalleren NTFS support (niet standaard aanwezig, vfat wel) kan met
ntfs-3g zodat
ik er ook grote Windows-disks aan kan hangen. Mount met (uid 1000 is mijn
default non-root user; gid 100 is group ' mount -t ntfs-3g -o noauto,noexec,errors=remount-ro,uid=1000,gid=100,fmask=113,dmask=002 /dev/sda1 /mnt/windows Spin Down van de harde schijfKijk, dat lijkt er meer op. Na opzetten dropbear en uitschakelen van de openssh server, en wat andere optimalisaties: free geeft nu (inclusief buffers/cache) 20 MByte vrij (van de 29 beschikbaar)... Nu zal de swapfile op de USB stick niet meer veel gebruikt worden. En met draaiende sftp-server en een mount onder Windows nog steeds 10+M vrij. Gedurende een e2fsck disk check (boot) wordt wel tijdelijk geswapt. Om power te besparen wil ik de disk in stand-by mode (spin-down) laten gaan
als deze enige tijd (bijvoorbeeld 20 minuten) niet aangesproken wordt; mijn
disk doet dit niet vanzelf. Er zijn hiervoor kant-en-klare programma´s, zoals
Spindown
0.4.0 (moet wel gecompileerd), maar ik heb zelf wat met scripts in elkaar
gezet. Disk-aktiviteit kan je checken in de pseudo-file apt-get install sg3-utils Ik heb dit gecombineerd met mijn De disk checken na een storingDe stroom is even uitgevallen, en ik wil graag de disk checken op problemen:
Gelukkig had ik ook een partitie op de schijf vrij gemaakt om als extra
swap-ruimte te dienen (een partitie met label ' # Eenmalig de swap-partitie op schijf initialiseren: Jawel, dat ziet er beter uit. Ook in het Tasks: 41 total, 1 running, 40
sleeping, 0 stopped, 0 zombie SSH gateway (ook voor samba)Ik wil de NSLU ook als veilige SSH gateway van het externe internet naar mijn lokale netwerk en filesysteem kunnen gebruiken (bijvoorbeeld omdat mijn zoon vanaf zijn studentenkamer in Nijmegen ook bij de disk wil kunnen, voor bijvoorbeeld backups). Zie mijn deel 1 over het opzetten van de SSH server (en gebruik van key files in plaats van passwords en zo). Wel ben ik vanwege geheugengebruik over van de grote openssh-server naar de meer lichtgewicht dropbear server (gebruikt 1 Mbyte, in plaats van de 9 MB die openssh gebruikt; op 32 Mbyte totaal telt dat toch hard aan en ik wil zo min mogelijk swappen). Eerst de openssh server naar een andere poort, bijvoorbeeld
Blijkbaar ondersteund dropbear toch wel SFTP!! Mits de openssh-server geïnstalleerd is (maar hoeft niet te draaien); dropbear gebruikt namelijk de sftp-server van openssh... Documentatie loopt zeker hier en daar wat achter Dan dropbear installeren, configureren
( Maar, ik ga toch access doen via samba. Dit kan ik ook veilig via het internet benaderen: via een SSH tunnel. Meer uitleg hierover heb ik verhuisd naar mijn nieuwe samba pagina... Nu nog af van inloggen via ssh met wachtwoorden, en in plaats daarvan
keyfiles gebruiken (veiliger); zie deel 1. Wat
ik heb gedaan is simpelweg de keys van de oude NSLU2 (die van deel 1) via de PC
gekopieerd naar de nieuwe NSLU2 met Debian (directory Vergeet niet op je router de ssh-poort (bv 22222) naar de juiste computer te forwarden! Zie ook mijn server-pagina's. Dan klassieke autenticatie met wachtwoord uitzetten in de config files:
dropbear heeft daarvoor de Veilig browsen op vakantieOok op vakantie wil ik veilig kunnen browsen, zonder dat anderen op hotspots
mijn verbinding af kunnen luisteren. Het idee is een veilige SSH tunnel op te zetten (waarbij je de poort naar de proxy als
port-forwarding opzet, Ik ben uitgegaan van de debian-installatie als beschreven op squid (met squid
2.7.3), maar wel met een aantal aanpassingen in
Hoe weet je of squid goed werkt? Om dit echt te testen moet je dus op een ander netwerk dan je normale netwerk zitten. (bijvoorbeeld op je werk), en een SSH-verbinding op te zetten. Ga naar je browser en stel deze zo in (via opties -> netwerk) dat deze via de proxy naar het internet gaat, en check dan met bijvoorbeeld WhatIsMyIP wat je IP-adres is (en hier via https): dit zou het IP adres van je huisnetwerk (waar je raspberry staat) moeten zijn, en niet van het netwerk vanaf waar je test... Enige probleem: Android (op mijn phone) kent standaard geen proxies, in ieder geval niet voor versie 3... En dat voor een Linux-based OS, slordig; hebben meer mensen al over geklaagd maar geen antwoord van Google. Firefox op Android kan er wel mee overweg; en met de Proxy Mobile extensie is er redelijk snel te wisselen. Om alle Android apps via de proxy te laten lopen moet je een proxy-app als ProxyDroid hebben, en daarvoor heb je wel een geroote Android nodig. Hopelijk wordt dat ooit nog verbeterd.Ps: SSH tunnel opzetten gaat handig met het gratis ConnectBot. X server forwarding via SSH gatewayDit hoofdstuk is verhuisd naar mijn SSH pagina... En verder...Reductie geheugengebruikProcessor speedIs de NSLU2 al op snelheid, of moet je nog overklokken (zie
ook mijn deel 1)? Check de huidige clock speed met
onderstaand commando, zou ongeveer 266 MHz moeten opleveren, maar op oude
NSLU2-versies kan dit ook 133 MHz zijn...
Tips for
reducing memory usage (voorbeeld: to disable IPv6: Andere tip die ik gelezen heb, nfs service (drive sharing;
Lichtgewicht web serverOm mijn foto-albums via web te kunnen bekijken, bijvoorbeeld op de Wii (heb al web-pages van elk album)... Ik gebruik de Lighttp lichtgewicht web server, op dit moment nog zonder de PHP extensies. Let er wel op dat je het pad (en de eigenlijke files) world-readable zet, anders krijg je een 403 access denied error. Meer security: chroot jailUser in jail: jk_lsh (limited shell) of jk_chrootsh (basic shell), zie de doc voor het opzetten van de .ini files Een programmagroep kopiëren naar de jail: zie jk_init (typische groepen voor mij: basicshell, editors, terminfo, scp, sftp, ssh). Individuele programma's (incl libraries) kunnen met jk_cp gekopiëerd. Om ook nano te laten werken in de chroot jail: voeg Gedaan: Om te voorkomen dat gebruikers overal bij het systeem kunnen na met
ssh te hebben ingelogd heb ik een chroot
jail opgezet. Ik gebruik hiervoor het Jailkit script van Olivier Sessink:
download en extract, ga naar jailkit directory; installeer development tools (C
compiler nodig; Een bestaande user eventueel naar de jail schuiven (zie jailkit howto)
gaat met Nu kan een jailed user natuurlijk niet uit de jail, en dus ook niet bij de
harde schijf... En, je kan geen link leggen naar een map buiten de jail. Moet
dus anders (zie ook de jailkit FAQ): mount als root
de disk (of map) binnen de jail... In mijn geval (maakt voor de jail user een
map I2C voor hardware besturingOp de NSLU2 zit (zoals op zo veel systemen) een I2C bus
(vergelijkbaar met de SMB bus), in dit geval
voor aansturing van de real-time clock chip. Op deze 2-pins (plus
ground/voeding) multi-master bus kan je ook je eigen hardware aansluiten; het
is een ideale manier om bijvoorbeeld extra I/O pinnen te krijgen met behulp van
een PCF8574 chip (8 extra I/O pinnen). De basis I²C driver zit in de Debian
software (zoals gebruikelijk in Linux als file driver, zie
Ik heb een connector aangebracht (flatcable),
zie ook deze NSLU2 I²C
Interface pagina (met software voorbeeld), en de NSLU2 I²C pagina.
Hierop om te testen een PCF8574A
(€ 2.10 bij Dick Best) met twee LEDs en
een switch, zie schema hiernaast. Was nog even lastig de PCF te 'vinden' op de
bus; het adres op de bus was een bit naar rechts verschoven t.o.v. de
documentatie van de PCF8574A; was geloceerd op Met het commando Deze setup is de basis voor verdere besturingen, wil ook aan de slag met de 8-bit PWM led controller PCA9634. Zijn nog veel meer I²C chips (op PC borden worden bijvoorbeeld I²C temperatuursensoren gebruikt). Op de bus kunnen meerdere devices worden aangesloten (bijvoorbeeld 8 stuks 8574A, voor 64 I/O pinnen). En op de NSLU2 zijn er bijvoorbeeld al gebruikers die er een LCD display mee aansturen. Overigens, uiteindelijk is de toestand rond de led controller PCA9634 (wegens verkrijgbaarheid en hanteerbaarheid) een project op zich geworden... Media streaming met mediatombWil ook muziek naar mijn media systeem (TV) kunnen streamen; daarvoor naar
mediatomb aan het
kijken. Is ook beschikbaar voor de NSLU2. Nog even zoeken; configuratie staat
in De mediatomb web interface voor het toevoegen van media is standaard bereikbaar op poort 49152; via die interface kan je mappen toevoegen aan de data die via de streamer toegankelijk mag zijn (standaard is deze verzameling leeg). Mijn apparaat kan geen wma files aan: omzetten naar MP3 met wma2mp3. En ja, ik zie mijn audio-verzameling! Verdere plannenKijken of ik de hele configuratie (flash en USB backup) op een andere NSLU2 kan zetten zonder weer 4 uur te hoeven installeren? Oops, werkte niet. Misschien toch subtiele verschillen tussen verschillende NSLU versies (denk maar aan de clock-speed). pkg-nslu2-utils? Extra USB support? |
op mijn site |