Andreas Bach Aaen Innovation og Open Source

18. februar, 2010

1.2GHz arm server i drift

Filed under: hardware,linux — andreas @ 21:57

Rackskab - nu med gigahertz arm NAS

Hvor er det en fornøjelse. Endelig fik jeg min Buffalo Linkstation LS-XHL i drift. Jeg demoede den i efteråret til Open Source Community Day, hvor man kunne se, at den godt kunne trække både Mythtv og en squeezebox server. Jeg havde dog snydt lidt blot lagt min gamle debian NAS installation ind i et underkatalog og så lavet en chroot til dette underkatalog, mounted /proc og så ellers starte de ekstra services. Dette virker fint men har en række fordele og ulemper. Man kan fortsætte med at benytte NAS’en som den er tænkt af fabrikanten og så blot lege med sine egne programmer i et hjørne. Den største ulemper er nok, at man er bundet til en bestemt Linuxkerne. Jeg ville kunne benytte en nyere og bygge de kernemoduler, der gør det muligt, at benytte sjove USB-dimser så som en DVB-T tuner. Fordelen ved at beholde den medleverede kerne er, at det er nemmere at få aflæst powerkanppen og få blæserstyringen til at fungere.

Det var stort set lige ud af landevejen at bygge en 2.6.32 Linuxkerne til NAS-boksen.Ingridienserne er en vanilla 2.6.32 kerne og en mindre LS-XHL platformspatch fundet her. Dertil skal man selvfølgelig have en arm krydscompiler installeret. Her benyttede jeg den så lå i Marvells udviklingskit til SheevaPlugen, der jo benytter samme chipsæt.

Det absolut mest bøvlede var, at der ikke er seriel kontakt med uboot bootloaderen. Hermed, skal alt klappe og virke, man kan først få kontakt med sin NAS når systemer er bootet så langt op at netværket er oppe at køre. Meget kan gå galt inden da. Så skift kun een komponent ud af gangen og start med en kørende opstilling. Så den nye kerne kunne fint køre med det originale rodfilsystem leveret af Buffalo.

Jeg valgte at lave en noget anderledes partitionering end den oprindelige. Et par ting er vigtige at huske her. Da jeg ikke piller ved uboot, som ligger i flash, så er bootparametrene faste: “  console=ttyS0,115200 root=/dev/sda2 rw initrd=0x00800040,32M panic=5 BOOTVER=0.08”. Lad dig ikke snyde af at der tilsyneladende er seriel support. Alt er på plads på softwaresiden, det er blot på hardwaresiden, at der lige er klippet et par komponenter ud i forbrugerversionen frem for udviklerversionen af NAS-hardwaren. Så initrd og kerne skal ligge på partition 1, som skal være ext3 formateret. Navnene er: uImage.buffalo og initrd.buffalo. Partition 2 skal være rodpartitionen – med mindre man laver sjove julelege i initrd’en. Det er vigtigt at man ved formatering af ext3 filsystemet på partition 1 husker at bruge option “-I 128” til mkfs.ext3. Ellers kan uboot i flashromen ikke læse kernen og initrd’en.

Oprettelse af rodfilsystem laves med debootstrap. Jeg gjorde det nemt for mig selv og lavede det natively på en af mine gamle ARM baserede NASer. Krydsinstallation kan godt være noget vanskelig, så det sprang jeg over. Så skal der tilrettes nogle få filer og netværket sættes op. Kogebogsopskriften fandt jeg her. Men ak, der var noget der drillede. Og hvert mislykket forsøg kræver, at disken afmonteres og sættes over i et sata til usb interface på en anden PC. Det viste sig, at min bootsekevens kom til at hænge i /etc/rcS.d/S06checkroot.sh. Hvis jeg rettede i scriptet og tvang rootcheck=no, så kørte alt på skinner. For at kunne komme frem til dette, så lavede jeg mig en “console”, der skrev til disk under opstart. Jeg rettede i /lib/lsb/init-functions og pipede alle echo kommandoer over i /tmp/snydekonsol.Hermed fik jeg et spor på disken, som kunne bruges til næste boot forsøg.

Nå men det lykkedes at få installeret en debian unstable med en 2.6.32.4 kerne på Buffalo Linkstaion LS-XHL maskinen.  Så kom de mange glædelige overraskelser. Jeg have forkælet mig med en DVB-T USB tuner. Jeg valgte en Asus Mycinema-U3100/mini DVBT. Skuffelsen var stor da jeg fik den tilsendt og fik modellen, som hed plus til efternavn. Modellen uden plus skulle virke på Linux Asus EEE uden kvaler, den anden nævnte det overhovedet ikke på produkthjemmesiden. Heldigvis var hardwaren identisk. Der var blot en ekstra USB-dims med et IR-øje og en elendig fjernbetjening med. Det virkede med Linux lige ud af boksen. Den næste gode overraskelse var, at den også virkede under ARM linux. På min gamle buffalo NAS kørte jeg en 2.6.25 kerne, og der krævede det et hack i usb-delen af kernen at lokke data ud af DVB-T enheder. Så den fejl er fikset i mellemtiden. Asus DVB-T enheden har heller ikke den samme irriterende firmware bug som min gamle TakeMS DVB-T enhed havede. Den holdt i praksis op med at virke efter et par dage. Kun en kold reboot fik den på bedre tanker. Så den er fin til at tage med laptopen på farten med ikke i en fast serveropstilling.

Som kom tiden til softwareopdaterinerne. Squeezebox serverne havde tidligere været ret bøvlet at installere fordi, de kløjs rundt i hvilke versioner den krævede af en række Perl CPAN moduler. Men her havde Logitech oppet sig. En deb fil hentet direkte fra Logitechs Squeezeboxhjemmeside og så var den hjemme. Install med dpkg -i og så en efterfølgende apt-get install -f for at sikre afhængighederne. Nemt.

Mythtv installerede jeg i version 0.22, hvor jeg tidligere havde kørt 0.21. Det gav lidt knas, men ikke noget som 1000 andre ikke var faldet i før mig. Jeg installerede også mythweb, da jeg nu har en NAS-server med hele 256MB ram og ikke sølle 128 MB som jeg tidligere har måttet nøjes med. Ingen problemer med at trække dette også. Lækkert.

Og så endnu en god overraskelse. Jeg havde indtil nu kørt ATA over Ethernet (AoE) på min en gamle sløve NAS og alle de andre sjove services på NAS nummer 2. Min LS-XHL havde ingen problemer med at trække begge dele. Og faktisk så kan man virkeligt mærke at AoE er hurtigere pga. den hurtigere CPU NAS-serveren har.

Alt i alt så har jeg skiftet to servere ud med en ny, hurtigere og billigere. Det er ganske meget server man kan få for 1500 kr.

nas og nas2

De to gamle servere er nu kommet på pension. de har kostet omkring 4000 kr i indkøb. Men så var det jo også med en 500GB disk i hver og 400 MHz ARM processorer.

7 Comments »

  1. Tillykke – så fik du fundet tiden til det.

    Min XHL’er ligger stadig på hylden, da min tid til at lege forsvandt da min qnap ts-119 virkede som mythtv-backend og nu er der mere fokus på at få min fitpc2 til at fungere som frontend (det poulsbo chipsæt er problematisk) – hvis jeg skulle få tid til det, efter arbejde og husbyggeri 🙂

    Jeg har haft problemer med at mythtv-backend’en “dør” (den holder op med at optage og svare – men kører forsat og logger bare at den intet laver) når jeg har 2 optagelser kørende – og stensikkert hvis jeg forsøger at have 3 optagelser kørende samtidigt. Oplever du samme problem?

    Kommentar by Klavs Klavsen — 23. februar, 2010 @ 15:32

  2. qnap ts-119 benytter fuldstændigt samme chipsæt. Supporten for platformen er kommet med i standardkernen – og Debian har support for den. Qnap ts-119 har også 512 MB ram og ikke blot 256 Mb som Buffalo LS-XHL. Og ret vigtigt ts-119 har mulighed for at koble en serial snor på, hvilket gør debug meget nemmere. Det eneste der taler for Buffalo Linkstation LS-XHL er prisen.

    Med hensyn til mythbackend, så kører mit nuværende setup med mythtv 0.22 ganske stabilt. Jeg har dog ikke presset den synderligt med at lave mange optagelser samtidigt. Men ingen problemer med crash. I mit gamle setup havde jeg problemr med firmwaren til dvb-usb sticken. Firmwaren var fejlfyldt, så den krævede en koldstart ca. hver tredje dag. En koldstart kræver at strømmen tages fra USB-sticken, så det var ikke noget man kunne scripte sig ud af. Disse problemer har jeg ikke set med den ASUS Mini DVB-USB stick jeg bruger nu.

    Med hensyn til frontend, så har jeg satset på et Nvidia chipsæt og vdpau grænsefladen. Selvfølgelig passiv kølet. Det meste virker perfekt. Ingen hakken i DR HD. Lyden på de nye danske kanaler HE-ACC virker dog ikke, men det døjer alle vist med. Mere om frontenden senere på blogen…og måske også lidt om husbyggeri.

    Kommentar by andreas — 23. februar, 2010 @ 20:27

  3. Hvor meget strøm bruger din server? Jeg har selv en gammel aflagt PC (1GHz, 256 MB RAM, ja, *så* gammel) stående som web-og filserver og den kører fint, men ifølge mærkaten kan den bruge op til 70W, hvilket jeg synes er i overkanten, også selv om den sikkert kun bruger omkring det halve (min trådløse router bruger til sammenligning under 2). Så jeg er sikker på, at der faktisk ville være penge at spare til at skifte til noget lige så sparsomt, men mere tidssvarende.

    Hvad vil du i øvrigt anbefale af hardware, hvis kriteriet ud over en relativt billig pris er, at det godt må være nemt at installere en server-udgave af Linux?

    Kommentar by Carsten Agger — 28. april, 2010 @ 22:22

  4. Jeg bruger under 50W på UPS beskyttet: NAS server, ADSL modem, Router, 8 ports switch, DECT basestation, ATA IP-telefoni adapter. Så hvor mange watt NAS-serveren bruger er ikke ikke den eneste interessante parameter. Jeg mener at min NAS-server bruger omkring 18 W. En stor del bruges til harddisken. Hvis man vil længere ned i effekt, så skal man bruge 2½” diske i stedet for 3½” diske. De er dog en del dyrere.
    Jeg kan kun anbefale at bruge NAS enheder som miniserver. Der bliver ikke brugt overflødige watt til grafikchips og lignende. Det er dog en hel del nemmere, at installere f.eks. debian på en NAS, hvis der er mulighed for en seriel konsol. Her er Qnap ts-119 klart et bedre valg. Der findes også NAS-servere, der bruger x86 teknologi – f.eks. en Intel Atom processor, men de er ret sikkert mindre energieffektive end de ARM baserede NAS servere. Det er ikke uden grund, at ARM processorer er det klart mest udbredte processorteknologi til mobiltelefoner.
    Rent hastighedsmæssigt, så gå efter en NAS med nyeste ARM teknologi. Det rykker klart at have 1,2 GHz frem for 400 MHz.
    Hvis man går efter at bruge billigt aflagt hardware som 24/7 hjemmeserver, så brug en bærbar PC i stedet. Man må kunne få 1. generation af de bærbare netbooks ret billigt. Laderen til min ASUS netbook er på 36 W, men så meget bruger den ret sikkert ikke.

    Kommentar by andreas — 29. april, 2010 @ 0:29

  5. Hej

    Fortrøstningsfuld bestilte jeg en Asus stick magen til din fra shg. Desværre var den baseret på AF9035 chipsettet som jeg ikke engang kunne få til at fungere i en ubuntu32bit.

    Bare en advarsel til andre der gerne vil have en tuner på en arm. Nu leder jeg efter en tuner til min debian6-arm (guruplug kerne).

    Kommentar by Svend — 1. oktober, 2010 @ 13:57

  6. Hej Svend,
    Ærgeligt, at Asus ikke længere supporterer deres egen Linux baserede netbooks med DVB-T sticks.
    Hvis jeg ikke har smidt den ud, så kan du få min TakeMS DVB-T stick. Den virker i alt fald et par dage af gangen også på arm Linux.

    Skriv gerne tilbage, hvis du finder en anden USB-stick der virker. Jeg er for kort tid siden blevet spurgt af en tidligere kollaga om hvilken USB-stick jeg kunne anbefale. Heldigvis nåede jeg ikke at anbefale den ASUS DVB-T stick jeg selv har glæde af.

    Mvh
    Andreas

    Kommentar by andreas — 2. oktober, 2010 @ 22:05

  7. […] er også sket den forandring i rackskabet, at min arm baserede NAS maskine er udfaset. Den er blevet erstattet af noget kraftigere x86 PC. […]

    Pingback by Andreas Bach Aaen » Vis mig dit rackskab — 26. oktober, 2011 @ 11:59

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress