Cubieboard2

Zrychlení startu díky Systemd

Rychlost startu vašeho linuxového stroje je pro velkou část uživatelů podstatným parametrem, pro některé je to ovšem parametr zcela nepodstatný. Rychlost startu lze ovlivnit několika způsoby. Prvním, podstatným a dnes rozebraným je změna defaultního init systému za těžce paralelní systemd.

Debian distribuce ještě sice nepřešla na systemd, ale používá ještě starší upstart init systém. Na druhou stranu je ale systemd obsažen v repozitářích distribuce. Pokud používáte debian Wheezy a novější, je možné systemd nainstalovat standardní cestou.

sudo apt-get install systemd

Nainstalování samotného init systému ovšem nezaručí, že se začne používat. Je nutné jádru systému předat parametr s tím, který z instalovaných init systémů má používat. Na Cubieboard vývojových deskách je toto možné udělat následujícím způsobem. Na ostatních deskách se postup může mírně lišit, pravděpodobně ale bude dost podobný.

Pokud máte možnost přeinstalovat bootloader, je vhodné přidat další parametr init do bootargs (argumenty předávané kernelu). Při tomto způsobu je nutné modifikovat boot.cmd a modifikovat následující části.

init /lib/systemd/systemd
setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait panic=10 ${extra} init=${init}

Po uložení boot.cmd je pak samozřejmě nutné znovu vytvořit boot.scr.

mkimage -C none -A arm -T script -d /mnt/boot.cmd /mnt/boot.scr

Pokud nemáte možnost modifikovat bootloader jeho přepsáním na SD kartě, je nutné zastavit bootovací proces v u-bootu. Potom nastavit hodnotu parametru extra, který je v defaultní instalaci na konci bootargs parametrů.

setenv extra 'init=/lib/systemd/systemd'
saveenv
run bootcmd

Pokud se vše povede, použije se při příštím startu jako init systém právě nainstalovaný systemd. Start systému se pouhou změnou init systému zrychlil o celých 10s (30%).

 


Posted

in

by