Asus Eee PC 900 (Linux) hacks
Omdat ik veel met de trein reis, wilde ik graag een netbook (mini-laptop) hebben, zodat ik in de trein verder kan werken. Uiteraard moest het ding wel Linux draaien, en dat moest de fabriek er op geïnstalleerd hebben.
Degene die ik gekocht heb, is een Asus Eee PC 900; een Linux-machientje met een scherm van 8.9" (kijk uit dat ze je er niet één proberen te verkopen met Windows XP!).
De gebruikte Linux distro is Xandros, een commerciële Debian variant.
Het apparaat is zo geconfigureerd dat Windows-gebruikers zich er thuis op voelen (lees: simpel), maar daar laat ik me natuurlijk niet door uit het veld slaan. Met een paar kunstgrepen voel ik me er ook op thuis… ;)
Maar eerst natuurlijk weer even dit:
Ik accepteer geen enkele verantwoordelijkheid voor wat voor schade dan ook.
Dat onderstaande voor mij werkt, is geen garantie dat het voor jou ook zal werken.
Alles wat je doet of nalaat, is je eigen verantwoording.
Inhoudsopgave:
Terminal
Waar ik even naar heb moeten zoeken, is een terminal. Ik zal je de zoetocht besparen: Ctrl-Alt-T.
Om vervolgens 'root te worden', doe je sudo su -.
Als de geopende console je niet bevalt en je wilt een andere instellen, doe dan
> sudo su - # cd /etc/alternatives # rm x-terminal-emulator # ln -s /usr/bin/konsole ./x-terminal-emulator(Inderdaad: KDE is geïnstalleerd.)
Apache, PHP en MySQL installeren
Omdat ik websites ontwikkel, is een minimale vereiste toch wel dat ik Apache, PHP en MySQL kan gebruiken. Het was immers de bedoeling dat ik de netbook zou gebruiken om te werken.
Omdat ik snel aan de slag wilde, heb ik gekozen voor een eenvoudige oplossing: Xampp (voorheen Lampp). Let op:
- download Xampp
- gunzip de download naar
/opt/lampp/ - chown -R nobody:nogroup /opt/lampp/
- klaar…
Is dat tof dan?
Xampp is een pakket met daarin de (bijna) nieuwste versies van Apache (inclusief SSL ondersteuning), PHP, MySQL, Perl, ProFTPD, PhpMyAdmin, PhpSqliteAdmin, Webmin, en zo vast nog een hele reut die ik nog niet ontdekt heb.
Houd er rekening mee dat de scripts in het pakket verwachten dat het pakket geïnstalleerd is in /opt/lampp/, en dat je het jezelf onnodig moeilijk maakt als je het ergens anders installeert.
Uiteraard was de standaardinstallatie voor mij niet genoeg…
Het bestandssysteem van de netbook bestaat uit 2 partities: /dev/sda1 voor het systeem (/) en /dev/sdb1 voor /home. Omdat /home aanzienlijk meer ruimte heeft dan /, wilde ik de DocumentRoot op /home.
Om dat te bereiken, heb ik het volgende gedaan:
> cd /home/user/ > mkdir htdocs > vim htdocs/index.php > mkdir etc > vim etc/httpd.conf > sudo su - # cd /opt # tar xzf /home/user/My\ Documents/xampp-linux-<versie>.tar.gz # chown -R nobody:nogroup lampp/ # echo -e "\n\n# local site\nInclude /home/user/etc/httpd.conf" >> lampp/etc/httpd.conf
Als ik Xampp nu start (/opt/lampp/lampp start) en mijn browser naar http://localhost stuur, krijg ik de pagina te zien die ik zojuist heb aangemaakt ('It works!').
Je kunt in je httpd.conf de ServerName en ServerAlias gebruiken die je wilt. Xampp roept tijdens het opstarten /opt/lampp/share/lampp/diagnose aan om /etc/hosts bij te werken, maar dat werkt niet altijd even goed (omdat dit script alleen de laatste paar regels van het Apache error log checkt). Check dus even /etc/hosts als je nieuw aangemaakte virtual host niet bereikbaar is. Bovendien beperkt het 'automatisch bijwerken' zich tot toevoegen en zul je dus zelf /etc/hosts moeten bijwerken als je virtual hosts verwijdert.
Het zou natuurlijk nog mooier zijn als Xampp zou opstarten bij het opstarten van de computer…
Om snel te kunnen opstarten, maakt de netbook geen gebruik van de standaard SysV init, maar van een eigen init, genaamd fastinit; strings /sbin/fastinit | less vertelt me dat fastinit onder andere gebruik maakt van het shellscript /usr/sbin/services.sh. Vervolgens vertelt less /usr/sbin/services.sh me dat naast de standaard-services ook alle services gestart worden die genoemd worden in /etc/fastservices; deze services moeten dan wel geconfigureerd zijn om te starten in het huidige runlevel (services worden gestart middels /usr/sbin/invoke-rc.d), wat 2 is. Dus:
> sudo su - # ln -s /opt/lampp/lampp /etc/init.d/lampp # /usr/sbin/update-rc.d lampp defaults # echo "lampp" >> /etc/fastservices
fastinit is gemaakt om de computer zo snel mogelijk gebruiksklaar te maken. Dit wordt onder andere bereikt door de X-server eerst op te starten en daarna pas de additionele services. Hierdoor kan het gebeuren dat, als je de netbook opstart, direct inlogt en dan de browser opstart, je niet direct http://localhost kunt bereiken; Apache is dan nog aan het opstarten.
Om die irritatie weg te nemen, heb ik de volgende regel opgenomen onderaan /usr/sbin/services.sh:
kdialog --display ':0' --passivepopup "Finished starting services." 3Ik krijg dan netjes een waarschuwing als het einde van het script bereikt is.
Om ook nog gebruik te kunnen maken van de manual pages die met Xampp meegeleverd worden, voer ik tenslotte nog deze 4 commando's uit:
> sudo su - # mkdir /var/cache/man/lampp # chown man /var/cache/man/lampp # chmod 2755 /var/cache/man/lamppen voeg ik deze 4 regels toe aan
/etc/manpath.config:
MANDATORY_MANPATH /opt/lampp/share/man MANPATH_MAP /opt/lampp/bin /opt/lampp/share/man MANPATH_MAP /opt/lampp/sbin /opt/lampp/share/man MANDB_MAP /opt/lampp/share/man /var/cache/man/lampp(Overigens worden de Apache manpages als 'apachectl' en 'httpd' helaas niet meegeleverd.)
En als ik het helemaal goed wil doen, voeg ik deze regel toe aan het einde van /home/user/.bash_profile:
export PATH="$PATH:/opt/lampp/bin"en deze aan het einde van
/root/.profile:
export PATH="$PATH:/opt/lampp/bin:/opt/lampp/sbin"
Dat was de volledige installatie van de webserver.
En mocht ik nu eens een nieuwe versie van Xampp willen installeren, dan hoef ik alleen maar
> sudo su - # cd /opt # rm -rf lampp # tar xzf /home/user/My\ Documents/xampp-linux-<versie>.tar.gz # chown -R nobody:nogroup lampp # echo -e "\n\n# local site\nInclude /home/user/etc/httpd.conf" >> lampp/etc/httpd.confte doen.
Houd er rekening mee dat Xampp verschillende logs bijhoudt, maar dat er geen logrotatie is geïnstalleerd/geconfigureerd. Op een gegeven moment zou je schijf dus vol kunnen lopen door de logs. Om dit te voorkomen, zou je het rotate script kunnen gebruiken dat ik geschreven heb. Als ik er een keer aan denk, zal ik ook het Xampp team op dat script wijzen.
Overige software installeren
Omdat ik niet overal een internetverbinding heb, maar wel overal wil kunnen ontwikkelen, wilde ik graag Subversion installeren, zodat ik de netbook makkelijk kan synchroniseren met mijn ontwikkelserver.
Bovendien vond ik het wel handig om te beschikken over een zoekmachine (ht://Dig) om te zoeken in alle manuals die ik gedownload heb.
Helaas is deze software niet te krijgen via de Eee download-site, en ook zijn er hiervoor geen pakketten zoals Xampp.
> sudo su - # echo "deb ftp://ftp.nl.debian.org/debian stable main contrib non-free" >> /etc/apt/sources.list
Meer had ik niet nodig om met behulp van aptitude software te installeren van de Debian site (Xandros is Debian gebaseerd).
Zie deze pagina voor de beschikbare mirrors.
# aptitude install subversion # aptitude install htdig
Om te zorgen dat mijn harde schijf niet te snel volloopt, heb ik nog wel even 2 regels gewijzigd in /etc/htdig/htdig.conf:
database_dir: /home/user/htdig start_url: http://localhost/docs/(Waarbij
start_url natuurlijk moet verwijzen naar de directory waar je de documentatie verzameld hebt.)
Logging
syslogd wordt niet gestart door fastinit; er wordt dus niets gelogd (behalve door Xampp). Aangezien ik echter 2 kinderen heb lopen die alles met knopjes 'leuk speelgoed' vinden, en ik toch wel zuinig wil zijn op het gereedschap van mijn bedrijf, wil ik in ieder geval kunnen zien wanneer de netbook aan- of uitgezet is.
Nou ja, download dit scriptje maar gewoon, want ik heb geen zin om er een verhaaltje omheen te schrijven…
'Echte' Linux
Ik heb dit niet geprobeerd, maar ik denk dat je van dit apparaat heel eenvoudig een 'echte' Linux-machine kunt maken door:
> sudo su - # cd /sbin # mv fastinit fastinit.eee # ln -s init fastinit
Op deze manier zal bij het opstarten de standaard init aangeroepen worden in plaats van de custom fastinit. Uiteraard zul je dan wel rekening moeten houden met langere opstarttijden en een harde schijf die sneller volloopt (i.v.m. logging). Ook zul je misschien nog het een en ander aan services moeten configureren.
| Reacties zijn welkom: rob[at]nerdstock.org |
![]() http://creativecommons.org/licenses/by-nc-sa/3.0/nl/deed.nl |







