systemd and the Linux kernel
Exherbo / September 13, 2010

This comes up all too often, so here’s a HowTo for systemd on Exherbo: You have to run a Linux kernel >=2.6.39. The new kernel is only needed at runtime, not for building systemd. You should run a Linux kernel >=3.0. The new kernel is only needed at runtime, not for building systemd. Kernel options for systemd: In your kernel config, enable autofs4, devtmpfs and cgroups. Do not enable autofs3. Here’s what I’m using (I enable more kernel options than strictly necessary, though.): CONFIG_DEVTMPFS=y (Strictly required!) CONFIG_DEVTMPFS_MOUNT=y (unless you’re using an initramfs that’s mounting it for you, e. g. one created by Dracut) # CONFIG_AUTOFS_FS is not set (Strictly required!) CONFIG_AUTOFS4_FS=y (Strictly required!) CONFIG_CGROUPS=y (Strictly required!) # CONFIG_CGROUP_DEBUG is not set CONFIG_CGROUP_NS=y CONFIG_CGROUP_FREEZER=y CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_CPUACCT=y # CONFIG_CGROUP_MEM_RES_CTLR is not set CONFIG_CGROUP_SCHED=y CONFIG_BLK_CGROUP=y # CONFIG_DEBUG_BLK_CGROUP is not set CONFIG_FANOTIFY=y (only used for readahead stuff which is not enabled by default.) CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y (only used for readahead stuff which is not enabled by default.)

systemd in Exherbo – what’s happened so far…
Exherbo / September 12, 2010

It has been quite a while since I last wrote something about my work on systemd in Exherbo, so here’s an update: What has been accomplished so far: The Exherbo patches are done. Do NOT try to submit them upstream yet, though. I’ll take care of that when the time is ripe. Lots of services are done. You can boot and run most systems using systemd now. I’ve built new amd64 and x86 stages without any init system so you can start out without the baselayout-1/sysvinit cruft. The installation guide has been updated. Every systemd service is implemented natively and we’re not using anything from baselayout-1 or sysvinit anymore. Instead, all the important stuff has been moved to skeleton-filesystem-layout. systemd’s dependencies have been updated accordingly. Thus, for people using systemd, baselayout-1 and sysvinit are now obsolete. YAY! What still needs to be done: Improve existing service definitions for systemd. Create socket definitions for several of the existing service definitions. (And new ones, of course.) Create systemd service files for missing services. Rules for new service files: Please make sure they’re implemented natively. I won’t accept non-native service files unless you can convince me there’s definitely no other solution. If you…