Archive for March, 2013

Kworker High CPU

After a recent kernel upgrade on my home server I noticed that Kworker was hogging most of the CPU after boot and wasn’t dying down over time. Research online lead me to believe this was due to an ACPI interrupt storm creating a high load. I tested a fix for this by adding the following line to root crontab

@reboot echo "disable" > /sys/firmware/acpi/interrupts/gpe00

This essentially serves to switch off ACPI and upon reboot I found that CPU usage had indeed returned to normal. As setting ACPI to off has no impact on my home server and what it is used for I decided to leave this tweak in place and to check to see if it was still required when future kernel upgrades come around – this has been a widely reported bug on Ubuntu launchpad.

Comments off    

Removing Plymouth

While recently upgrading my headess Ubuntu home server I came across an issue whereby boot would hang due to some issue with plymouth, the application providing the graphical splash screen shown when Ubuntu boots. As this server is headless I decided that rather than seek to resolve the issues I’d simply remove plymouth, after all it isn’t any use on a headless system to show a splash screen on boot!

Plymouth is unfortunately a dependency in apt for two important packages, cryptsetup and mountall and as such cannot be removed using the usual apt-get remove method. As plymouth is in fact not really required by these components, we can replace it with a dummy package that will keep apt happy and allow us to boot up sans-plymouth.

Firstly configure a dummy package

vi plymouth

Enter in the following details

Section: misc
Priority: optional
Standards-Version: 3.9.2

Package: plymouth-dummy
Version: 1.0
Provides: plymouth
Architecture: all
Description: Dummy plymouth package to allow proper plymouth removal

Now build your new package

equivs-build plymouth

If you get an error running this command saying it doesn’t exist, install it using apt as follows, then re-run

apt-get install equivs

Once you have your dummy package, we can now force remove plymouth and replace it with it’s dummy. To do this without affecting any if it’s dependencies, we do this using dpkg

dpkg -r --force-depends plymouth

Then we replace what we removed with the dummy package as follows

dpkg -i plymouth-dummy_1.0_all.deb

We can now safely reboot the server knowing that plymouth will not be available at boot but all other components will be. For me this fixed an annoying partial boot problem, for you it may just mean the removal of a component you really don’t need in headless mode. Either way, I hope this proves useful.

Comments off