jun 062010
 

SheevaplugIk heb mijn tanden stuk mogen bijten op de Sheevaplug. En voordat ik verder ga met het beschrijven van mijn ervaringen ermee wil ik duidelijk stellen dat de problemen die ik gehad heb met het aan de praat krijgen van de verschillende toepassingen ongetwijfeld zal liggen aan mijn (tot nu toe) absoluut ontbrekende Linux kennis. Het is geen apparaat waar je als leek zomaar mee aan de slag kunt, maar wel een apparaat waar een Linux hacker heel veel plezier aan kan beleven. Zie dit bericht voor het uitpakfilmpje. In dit bericht zal ik de verschillende opties die ik uitgeprobeerd heb langs lopen. Niet altijd tot in het grootste detail, maar soms wel ook met de aantekeningen die wellicht voor anderen die ermee aan de slag gaan ook handig zijn.

Wat is het?
De Sheevaplug is een Linux computer met de afmetingen van een groot uitgevallen stekkerdoos. Je kunt hem rechtstreeks in het stopcontact steken, maar je kunt hem ook ergens neerleggen en aansluiten via de bijgeleverde stroomkabel. Op de computer staat een versie van Ubuntu 9.04 geïnstalleerd. De Sheevaplug heeft geen aansluiting voor een monitor, dus je eerste acties met de computer zullen plaats vinden via de commandoprompt.

Verbinding maken met de Sheevaplug
De Sheevaplug heeft een Gigabit ethernetverbinding. Je kunt hem dus met een kabel aan je eigen netwerk hangen. Nieuwere (duurdere) versies van de plug beschikken ook over ingebouwd draadloos internet. Als je de Sheevaplug voor het eerst aansluit zal hij op zoek gaan naar een IP-nummer. Om er achter te komen wat dat IP adres is zul je even naar je router moeten gaan, daar kun je bij de DHCP-server meestal kunnen zien welke apparaten verbonden zijn en welke IP-adressen uitgedeeld zijn. Voor Windows gebruikers is het gratis Putty programma nodig/aan te raden. Daarmee kun je eenvoudig een SSH-verbinding opbouwen met de Sheevaplug. Voor die eerste keer en alle andere keren dat je wijzigingen in de basissetup van de Sheevaplug wilt uitvoeren is er een betere oplossing. De Sheevaplug beschikt over een mini-USB aansluiting. Als je daar de bijgeleverde USB->mini-USB kabel op aansluit en de juiste drivers onder Windows installeert, kun je vanuit Putty ook via die USB verbinding contact maken met de Sheevaplug. Dat is handig omdat je dan niet op zoek hoeft naa rhet IP-adres, maar ook omdat je dan het opstarten van de Sheevaplug kunt zien gebeuren én kunt aanpassen. Via deze verbinding kun je namelijk ook bepalen wat er bij het opstarten gebeurt, of de Sheevaplug van het interne geheugen opstart, van de SD-kaart of een aangesloten USB-stick. En je hebt deze verbinding nodig als je de plug ‘stuk’ gemaakt hebt. Via deze route kun je in 10-15 minuten een nieuwe ‘image’ van het geïnstalleerde besturingssysteem terug zetten.

Als je een Sheevaplug helemaal nieuw uit de doos haalt, moet je ook nog een paar handelingen uitvoeren. Dat staat hier beschreven.
De procedure voor het gebruik van Putty via de USB-poort wordt hier uitgelegd en het  helemaal opnieuw installeren van de Sheevaplug (via de USB-kabel) wordt hier beschreven. Belangrijk zijn de beschreven wijzigingen in sheevaplug-installer-v1.x\uboot\openocd\config\interface\sheevaplug.cfg. Als je daar de instellingen fout hebt, dan vindt de installer je Sheevaplug niet.

Bij mij moest het er zo uitzien:

interface ft2232
ft2232_layout sheevaplug
ft2232_vid_pid 0x9e88 0x9e8f
jtag_khz 2000
ft2232_device_desc "SheevaPlug JTAGKey FT2232D B"

In de schermafdruk hierboven kun je zien dat ik VMware Workstation gebruik met daarin een Ubuntu image. Dat is niet persé noodzakelijk. Je kunt de Sheevaplug ook vanuit Windows inrichten en met behulp van Putty kun je de plug gewoon benaderen.

Wat kun je er daarna mee?

Wat je daarna met de Sheevaplug kunt hangt een beetje van je wensen, je kennis van Linux én de beschikbaarheid van applicaties voor het platform af. Hieronder beschrijf ik een aantal toepassingen die ik uitgeprobeerd heb. Veel daarvan kreeg ik niet aan het werken, maar omdat er online voorbeelden bestaan van mensen die ze wél aan de praat hebben gekregen in combinatie met de Sheevaplug is het in de meeste gevallen zo dat het (waarschijnlijk) aan mijn gebrek van Linux-kennis ligt. Ik heb de plug nog wel een weekje of twee in huis. Als jouw handen kriebelen bij het lezen van mijn pogingen en jij bent wel een Linux guru, laat het me dan weten. Dan geef ik je toegang tot de plug (gewoon op afstand via SSH).

Eenvoudig: een compacte webserver met Moodle

Het meest eenvoudige om op de Sheevaplug te realiseren is het gebruik er van als een compacte webserver. Met één commando installeer je MySql, Apache en PHP:

sudo tasksel install lamp-server

En met nog een paar commando’s extra heb je (bijvoorbeeld) Moodle geïnstalleerd staan en kun je aan de slag met deze open source elektronische leeromgeving. De instructies staan hier. Ik heb de plug uiteraard niet aan een real-life stress test kunnen onderwerpen. Ik heb dus geen idee hoe snel Moodle blijft werken bij grotere aantallen gebruikers.

Eenvoudig: Samba-server

Nee hoor, je hoeft niet aan het dansen. Een Samba-server zorgt er voor dat je een extra harde schijf aan de Sheevaplug kunt hangen (rechtstreeks aan de USB-poort of via een USB-hub) en die dan toegankelijk kunt maken via het netwerk voor jezelf, je huisgenoten of studenten.  Instructies zijn hier te vinden. Als je moet opzoeken wat je hostname is, kijk dan hier, en uitleg over het achterhalen van de groep van een gebruiker staan hier.

Wat complexer: andere Linuxversie en/of multiboot

Als je goed kijkt naar de screenshot hierboven, dan zie je overigens dat die URL begint met “Debian” en niet met “Ubuntu” zoals je wellicht zou verwachten. Dat komt omdat je niet persé gebruik hoeft te maken van Ubuntu. Je kunt o.a. ook Debian, Fedora, Gentoo of OpenWRT installeren. Als je de instellingen bij het opstarten (gebeurt door iets dat u-Boot heet) aanpast, kun je naar keuze ook van de SD-kaart of een externe USB-stick opstarten (multi boot). Bij mij ziet de combinatie van switches om dat mogelijk te maken er zo uit (let op! elke setenv-commando moet op één regel, de ‘\’ aan het einde van een regel geeft aan dat die in de opmaak afgebroken is):

setenv mtdpartitions 'mtdparts=orion_nand:0x400000@0x100000(uImage), \
 0x1fb00000@0x500000(rootfs)'
setenv bootargs_nand 'ubi.mtd=1 root=ubi0:rootfs rootfstype=ubifs'
setenv bootargs_mmc 'console=ttyS0,115200 root=/dev/mmcblk0p2 rootdelay=5'
setenv bootcmd_mmc 'setenv bootargs $(bootargs_console) $(bootargs_mmc); \
 mmcinit; ext2load mmc 0:1 0x00800000 /uImage; bootm 0x00800000'
setenv bootcmd_usb_part 'usb start; ext2load usb 0:1 0x01100000 /uInitrd; \
  ext2load usb 0:1 0x00800000 /uImage'
setenv bootcmd_usb 'setenv bootargs $(bootargs_console); run bootcmd_usb_part; \
  bootm 0x00800000 0x01100000'
setenv bootcmd_nand 'setenv bootargs $(bootargs_console) $(mtdpartitions) \
  $(bootargs_nand); nand read.e 0x00800000 0x00100000 0x00400000; bootm 0x00800000'
setenv bootcmd 'run bootcmd_mmc; run bootcmd_usb; run bootcmd_nand'

Het werk wordt gedaan in de laatste regel, daar staan 3 “run” commando’s achter elkaar: eerst kijkt de Sheevaplug of hij van de SD-kaart kan opstarten. Lukt dat niet, dan kijkt hij of hij van de eerste USB-stick kan opstarten. Lukt dat ook niet dan gaat hij naar de interne opslag.

Belangrijkste reden voor het gebruik van de SD-kaart of een USB-stick is het gebrek aan opslagruimte intern: 512MB maar. Een USB-stick is niet altijd ideaal: de Sheevaplug heeft maar 1 USB-poort. Gebruik van een (door Linux herkende) USB-hub werkt, maar een USB-stick die daar op aangesloten is wordt niet altijd snel genoeg herkend. Handiger is daarom om te booten vanaf de SD-kaart (ik heb er nu een kaartje van 8GB in zitten) en dan kun je gewoon een USB-hub gebruiken voor andere apparaten die je wilt aansluiten (inclusief USB-sticks of USB-schijven).

Iets meer werk: VNC voor een grafische interface op afstand

Iets meer werk in tijd is het instellen van de VNCserver op de Sheevaplug zodat je vanaf afstand, via een VNC-viewer, contact kunt maken met de Sheevaplug. Daarbij krijg je dan geen commandoprompt te zien, maar een nette desktop.

apt-get install x-window-system-core gnome-core
sudo apt-get install ubuntu-desktop
sudo apt-get install gdm
sudo /etc/init.d/gdm start
sudo dpkg-reconfigure xserver-xorg
apt-get install tightvncserver

Je moet dan

~/.vnc/xstartup

als volgt aanpassen:

#! / bin/ sh
xrdb $HOME/.Xresources
gnome-wm &
gnome-panel &
nautilus --no-default-window &
gnome-cups-icon &
gnome-volume-manager &
xrdb $HOME/.Xresourcesgnome-wm &gnome-panel &nautilus --no-default-window \
&gnome-cups-icon &gnome-volume-manager &

N.B. voor die eerste regel moeten de spaties tussen

#! / bin/ sh

weg, maar als ik dat doe het het alarm op de server af. De VNC-client hoeft geen gebruik te maken van Linux, hieronder zie je mijn VNC client op Windows 7 die verbinding maakt met de Sheevaplug. De grafische interface wordt ook door de plug gegenereerd en via VNC doorgegeven.

Voer voor frustratie: zaken die mij niet lukte (en anderen wel)

Als ik de mogelijkheid krijg om zo’n apparaat als de Sheevaplug onder handen te kunnen nemen, dan wil ik er uiteraard uit halen wat er in zit. Niets is dan ook zo frustrerend als wanneer ik op andere plekken beschrijvingen tegen kom van mooie toepassingen, terwijl ik die zelf dan niet aan de praat krijg. Toch was dat bij de Sheevaplug een aantal keer het geval:

  • USB2VGA – plug. Deze plug moet het mogelijk maken om een VGA-monitor aan te sluiten op de USB aansluiting van de Sheevaplug. Er staat documentatie online hier en hier en op YouTube staat een filmpje met demonstratie van het resultaat (niet van de stappen). Maar helaas is het mij niet gelukt.
  • PlugPBX – deze setup van Asterisk en FreePBX is speciaal voor de Sheevaplug. Je zou niet meer moeten hoeven te doen dan het op de SD-kaart plaatsen van de image. Helaas wil hij bij mij dan niet van de SD-kaart opstarten (ook niet met aangepaste u-Boot-instellingen)
  • Aansluiten en streamen van video van een webcam wordt hier beschreven en ook hier maar ik kreeg het niet aan de praat met mijn microsoft en logitech webcams. Daarom had ook de installatie van ZoneMinder weinig nut.

Er waren ook een paar zaken waarvan ik niet weet of iemand die al voor elkaar gekregen heeft, mij lukte het in ieder geval niet, maar het zou wel heel mooi zijn:

  • Installatie van bigbluebutton; dan zou je een portable open source online videoconference server hebben.
  • Installatie van OpenSimulator op de Sheevaplug zou er voor zorgen dat je een portable virtuele wereld ter beschikking hebt die je desgewenst aan elkaar koppelt in een grid.

Ik vond het trouwens raar dat er een hardware-hack nodig is om de Sheevaplug op 12 Volt te laten werken (zoals beschikbaar in je auto). Voor mijn Asus EEEPC 901 kon ik gewoon bij Asus een kabeltje bestellen waarmee hij op de sigarettenaansteker in de auto kon worden aangesloten. Voor een apparaat dat je ook eenvoudig als “carputer” zou kunnen inzetten had ik dat toch ook wel verwacht.

Conclusie

Ik heb het gevoel dat ik de Sheevaplug niet zijn volledige kracht heb kunnen laten tonen. En hoewel mijn (gebrek aan) Linux-kennis daarbij wellicht een verzachtende omstandigheid voor het apparaat is, is het natuurlijk ook een waarschuwing voor als je er mee aan de slag wilt. Er is nog veel dat niet “zomaar” gaat. Dat is waarschijnlijk ook de reden waarom er ook een markt is voor apparaten die de Sheevaplug als uitgangspunt nemen, maar er een gebruikersvriendelijkere schil bij leveren zoals de Tonido, die je overigens ook achteraf kunt installeren.

Ik benieuwd wat anderen met de Sheevaplug voor elkaar weten te krijgen (en dan graag gedetailleerde handleidingen online zetten!! ;-)).

Deel dit bericht:

  2 reacties aan “Sheevaplug – klein doosje met grote potentie”

Reacties (1) Pingbacks (1)
  1. Mijn Sheevaplug gaf na een tijdje de geest, problemen met de voeding. Op http://www.sheevaplug.de las ik dat dit kennelijk vaker voorkomt. Opletten dus.
    http://www.sheevaplug.de/forum/10-hardware/2011-sheeva-plug-nicht-mehr-erreichbar-leds-blinken.html

Sorry, het reactieformulier is momenteel gesloten.