Recent blog entries by guylhem

The X201 tablet is a sweet device that works quite well as a hackintosh - better than my genuine Macbook Air. However, if you have the Intel core i7 620M CPU (the most powerful one available for the X201t) you are limited: if you don’t use a DSDT, there is no sleep support, and if you use a DSDT there is no sound. Regardless of which CPU you have, there is no tablet support.

But that won’t do much good because
the WACF004 that shows in ioreg is disabled. Adding that to
Apple16x50Serial does not help tabletmagic - you have to enable the
peripheral.

I could find only one documented way,
TabletEnabler. However the binaries I got do not work with 10.9 and
since I don’t have the sourcecode they can’t be fixed.

So I did it my way by editing the DSDT. For the device DTR, simply replace Name (LCFG, 0x00) by Name (LCFG, 0x01) : the 1 will allow method _STA to report the device as enabled (0x0F) instead of disabled (0x0D):

Then TabletMagic will recognize the serial port, but you’re not over. You move the pen, the cursor moves, but it is way off the screen when you approach the right side.

For some reason, tablet magic has a bug so you must specify manually the dimension of the tablet and the screen.

For the tablet, use 26312 x 16520, and for the screen 1280x800. In the mappings tab, make sure you set on the left handside 00001 0001 26311 16519. You may have to do it twice, but after that the pen will work perfectly.

This directory has been packaged with a few useful default files - nothing fancy, but enough to remove sysv-init related things, and udev since systemd-devereaux will provide it. Use the following to create a debian package:

This will also remove some things we need, that will be installed back after systemd-deveraux is installed. Precisely, the following packages will be removed: bsdmainutils* bsdutils* dmsetup* e2fsprogs* init* initscripts* insserv* libcryptsetup4* libdevmapper1.02.1* libsystemd0* libudev1* man-db* procps* systemd* systemd-sysv* sysv-rc* sysvinit-utils* udev* util-linux*

NB: init-system-helpers is used to maintain compatibility with debian scripts - you should keep it in case you want to symlink /usr/lib/systemd to /lib/systemd to use debian systemd services

To avoid any problem with dependancies, install not just systemd-devereaux real package but also the pseudopackages we just created before:dpkg -i *deb

A few sound tools (if only to silence the console beep in alsamixer)apt-get install alsa-base alsa-tools alsa-utils mpg123 sox flite

NB: we do not install kbd since keyboard-configuration console-setup etc are redundant with systemd keyboard config, so we use instead a package providing sensible defaults for a x60 (mostly udev and sysctl rules)dpkg -i x60-defaults-devereaux.deb

And declare the partition type in fstab, otherwise systemd will not be able to mount it in read-write mode:echo “/dev/sda3 / xfs rw,relatime,attr2,nobarrier,inode64,allocsize=8192k,noquota 0 1” > etc/fstab

You may want to remove my default SSH keys - they will be recreated on reboot:

However, something still needs to be fixed: wpa+dhcp means the network connection is only available 1.3 seconds later.

X is a work-in-progress - packages will be posted soon. At the moment, the target is to get to X in an additional 0.5 to 0.7s, so that you get to X in less than 2 seconds. This may not be possible on X60-tablets which need more time for the wacom digitizer initialization.

The basic idea here is to try and keep debian compatibility as much as possible while using systemd completely, without any sysvinit compatibility layer - which means some services will have to be rewritten.

Then you can use “apt-get install -t testing” to install any package from testing.

systemd is a work-in-progress, so installing a long-term stable release seems like the best idea. You can do that with git:git clone -b v210-stable git://anongit.freedesktop.org/systemd/systemd-stablecd systemd-stable/ && git pull

A quick explaination is needed: Audit slows down the kernel, and is only good for corporate use, while IMA goes hand to hand with TPM (and checksums can do the same job more easily) so we disable them. AppArmor/SElinux/SECCOMP/SMACK are different ways to do MAC, but require configuration on debian so they are also disabled - and likewise for sysvinit compat since we just don’t want that. I use bash so I also disabled zsh completion.

For the directories :- localstatedir is where the journal is kept, so /var/log- libdir is where the libs links and pkgconfigs are installed, so /usr/lib- rootlibdir is where libs links target and the pamsecurity is, so /lib- firmware-path is where firmware files are found, so /lib/firmware- rootprefixdir and prefix is where /lib/udev/ and /lib/systemd/ go, with some bins in bin/, so /- bindir is where the rest of the binaries go, /bin- sysconfdir is where etc/systemd, etc/udev and the etc/.d directories (tmpfiles, binfmt, modules-load, sysctl, pam) along with xdg, kernel, so /etc- sysroot is where the required includes and libs are found, so /- datarootdir is where README and some code sample will be installed, with doc/systemd automatically being added as a suffix, so /usr/share- datadir is where the locales and dbus-1 services go, so also /usr/share- sharedata is where polkit-1, kbd-model-map and some pkgconfig files go, but they are correctly found by default.

You can now compile with make, but borefore you do the installation, manually remove each file from udev since systemd provide his own udevd:

cat /var/lib/dpkg/info/udev.list|xargs rm

You may want to keep only /usr/share/man/man8/scsi_id.8.gz manpage, /etc/modprobe.d/fbdev-blacklist.conf and the initramfs-tools hooks and tools from /usr/share/initramfs-tools.

You could remove udev altogether, but for this first article we just watch to stitch together something that will work.

After running make install, one binary is forgotten, so copy it manually, and remove the locales (unless you really want/need them) which for some reason end up in /share:cp systemd /sbinrm -fr /share

Here is a list of the files that will be installed://var/lib/var/lib/systemd/var/log/journal/etc/etc/bash_completion.d/systemd/etc/bash_completion.d/systemd/busctl/etc/bash_completion.d/systemd/journalctl/etc/bash_completion.d/systemd/systemctl/etc/bash_completion.d/systemd/systemd-analyze/etc/bash_completion.d/systemd/systemd-cat/etc/bash_completion.d/systemd/systemd-cgls/etc/bash_completion.d/systemd/systemd-cgtop/etc/bash_completion.d/systemd/systemd-delta/etc/bash_completion.d/systemd/systemd-detect-virt/etc/bash_completion.d/systemd/systemd-nspawn/etc/bash_completion.d/systemd/systemd-run/etc/bash_completion.d/systemd/udevadm/etc/bash_completion.d/systemd/kernel-install/etc/bash_completion.d/systemd/bootctl/etc/bash_completion.d/systemd/systemd-coredumpctl/etc/bash_completion.d/systemd/hostnamectl/etc/bash_completion.d/systemd/localectl/etc/bash_completion.d/systemd/timedatectl/etc/bash_completion.d/systemd/machinectl/etc/bash_completion.d/systemd/loginctl/etc/pam.d/etc/pam.d/systemd-user/etc/tmpfiles.d/etc/udev/etc/udev/rules.d/etc/udev/hwdb.d/etc/udev/udev.conf/etc/udev/hwdb.bin/etc/xdg/etc/xdg/systemd/etc/xdg/systemd/user/etc/dbus-1/system.d/etc/dbus-1/system.d/org.freedesktop.systemd1.conf/etc/dbus-1/system.d/org.freedesktop.hostname1.conf/etc/dbus-1/system.d/org.freedesktop.locale1.conf/etc/dbus-1/system.d/org.freedesktop.timedate1.conf/etc/dbus-1/system.d/org.freedesktop.machine1.conf/etc/dbus-1/system.d/org.freedesktop.login1.conf/etc/binfmt.d/etc/systemd/etc/systemd/ntp-units.d/etc/systemd/network/etc/systemd/system/etc/systemd/system/multi-user.target.wants/etc/systemd/system/multi-user.target.wants/systemd-networkd.service/etc/systemd/system/multi-user.target.wants/remote-fs.target/etc/systemd/system/getty.target.wants/etc/systemd/system/getty.target.wants/getty@tty1.service/etc/systemd/user/etc/systemd/system.conf/etc/systemd/user.conf/etc/systemd/journald.conf/etc/systemd/bootchart.conf/etc/systemd/logind.conf/etc/modules-load.d/usr/lib/usr/lib/libsystemd.so/usr/lib/pkgconfig/usr/lib/pkgconfig/libsystemd.pc/usr/lib/pkgconfig/libudev.pc/usr/lib/pkgconfig/gudev-1.0.pc/usr/lib/libgudev-1.0.so/usr/lib/libudev.so/usr/lib/libsystemd.la/usr/lib/libudev.la/usr/lib/libnss_myhostname.so.2/usr/lib/libgudev-1.0.la/usr/lib/libnss_myhostname.la/usr/share/usr/share/doc/usr/share/doc/systemd/usr/share/doc/systemd/README/usr/share/doc/systemd/NEWS/usr/share/doc/systemd/LICENSE.LGPL2.1/usr/share/doc/systemd/LICENSE.GPL2/usr/share/doc/systemd/LICENSE.MIT/usr/share/doc/systemd/DISTRO_PORTING/usr/share/doc/systemd/sd-shutdown.h/usr/share/doc/systemd/sd-readahead.c/usr/share/doc/systemd/sd-readahead.h/usr/share/doc/systemd/libudev/usr/share/doc/systemd/libudev/home.png/usr/share/doc/systemd/libudev/index.sgml/usr/share/doc/systemd/libudev/left.png/usr/share/doc/systemd/libudev/libudev.devhelp2/usr/share/doc/systemd/libudev/right.png/usr/share/doc/systemd/libudev/style.css/usr/share/doc/systemd/libudev/up.png/usr/share/doc/systemd/libudev/api-index-full.html/usr/share/doc/systemd/libudev/ch01.html/usr/share/doc/systemd/libudev/index.html/usr/share/doc/systemd/libudev/libudev-udev-device.html/usr/share/doc/systemd/libudev/libudev-udev-enumerate.html/usr/share/doc/systemd/libudev/libudev-udev-hwdb.html/usr/share/doc/systemd/libudev/libudev-udev-list.html/usr/share/doc/systemd/libudev/libudev-udev-monitor.html/usr/share/doc/systemd/libudev/libudev-udev-queue.html/usr/share/doc/systemd/libudev/libudev-udev-util.html/usr/share/doc/systemd/libudev/libudev-udev.html/usr/share/doc/systemd/gudev/usr/share/doc/systemd/gudev/gudev.devhelp2/usr/share/doc/systemd/gudev/home.png/usr/share/doc/systemd/gudev/index.sgml/usr/share/doc/systemd/gudev/left.png/usr/share/doc/systemd/gudev/right.png/usr/share/doc/systemd/gudev/style.css/usr/share/doc/systemd/gudev/up.png/usr/share/doc/systemd/gudev/GUdevClient.html/usr/share/doc/systemd/gudev/GUdevDevice.html/usr/share/doc/systemd/gudev/GUdevEnumerator.html/usr/share/doc/systemd/gudev/annotation-glossary.html/usr/share/doc/systemd/gudev/api-index-deprecated.html/usr/share/doc/systemd/gudev/api-index-full.html/usr/share/doc/systemd/gudev/gudev-hierarchy.html/usr/share/doc/systemd/gudev/index.html/usr/share/doc/systemd/gudev/ix02.html/usr/share/doc/systemd/gudev/ref-API.html/usr/share/man/man1/usr/share/man/man1/busctl.1/usr/share/man/man1/journalctl.1/usr/share/man/man1/systemctl.1/usr/share/man/man1/systemd-analyze.1/usr/share/man/man1/systemd-ask-password.1/usr/share/man/man1/systemd-cat.1/usr/share/man/man1/systemd-cgls.1/usr/share/man/man1/systemd-cgtop.1/usr/share/man/man1/systemd-delta.1/usr/share/man/man1/systemd-detect-virt.1/usr/share/man/man1/systemd-inhibit.1/usr/share/man/man1/systemd-machine-id-setup.1/usr/share/man/man1/systemd-coredumpctl.1/usr/share/man/man1/timedatectl.1/usr/share/man/man1/systemd-nspawn.1/usr/share/man/man1/systemd.1/usr/share/man/man1/bootctl.1/usr/share/man/man1/machinectl.1/usr/share/man/man1/systemd-tty-ask-password-agent.1/usr/share/man/man1/loginctl.1/usr/share/man/man1/hostnamectl.1/usr/share/man/man1/init.1/usr/share/man/man1/systemd-notify.1/usr/share/man/man1/systemd-run.1/usr/share/man/man1/systemd-bootchart.1/usr/share/man/man1/localectl.1/usr/share/man/man8/usr/share/man/man8/kernel-install.8/usr/share/man/man8/halt.8/usr/share/man/man8/runlevel.8/usr/share/man/man8/shutdown.8/usr/share/man/man8/systemd-suspend.service.8/usr/share/man/man8/systemd-sysctl.service.8/usr/share/man/man8/systemd-getty-generator.8/usr/share/man/man8/systemd-fsck@.service.8/usr/share/man/man8/systemd-gpt-auto-generator.8/usr/share/man/man8/systemd-tmpfiles.8/usr/share/man/man8/nss-myhostname.8/usr/share/man/man8/pam_systemd.8/usr/share/man/man8/systemd-ask-password-console.service.8/usr/share/man/man8/systemd-halt.service.8/usr/share/man/man8/poweroff.8/usr/share/man/man8/systemd-udevd.service.8/usr/share/man/man8/reboot.8/usr/share/man/man8/systemd-fsck.8/usr/share/man/man8/systemd-initctl.service.8/usr/share/man/man8/systemd-journald.service.8/usr/share/man/man8/systemd-efi-boot-generator.8/usr/share/man/man8/systemd-remount-fs.service.8/usr/share/man/man8/systemd-initctl.8/usr/share/man/man8/systemd-shutdownd.service.8/usr/share/man/man8/systemd-update-utmp.service.8/usr/share/man/man8/systemd-journald.8/usr/share/man/man8/telinit.8/usr/share/man/man8/systemd-activate.8/usr/share/man/man8/systemd-socket-proxyd.8/usr/share/man/man8/systemd-fstab-generator.8/usr/share/man/man8/udevadm.8/usr/share/man/man8/systemd-remount-fs.8/usr/share/man/man8/systemd-backlight@.service.8/usr/share/man/man8/systemd-shutdown.8/usr/share/man/man8/systemd-system-update-generator.8/usr/share/man/man8/systemd-binfmt.service.8/usr/share/man/man8/systemd-hostnamed.service.8/usr/share/man/man8/systemd-localed.service.8/usr/share/man/man8/systemd-logind.service.8/usr/share/man/man8/systemd-machined.service.8/usr/share/man/man8/systemd-networkd.service.8/usr/share/man/man8/systemd-quotacheck.service.8/usr/share/man/man8/systemd-random-seed.service.8/usr/share/man/man8/systemd-readahead-replay.service.8/usr/share/man/man8/systemd-rfkill@.service.8/usr/share/man/man8/systemd-timedated.service.8/usr/share/man/man8/systemd-vconsole-setup.service.8/usr/share/man/man8/systemd-modules-load.service.8/usr/share/man/man8/systemd-cryptsetup-generator.8/usr/share/man/man8/systemd-cryptsetup@.service.8/usr/share/man/man8/systemd-user-sessions.service.8/usr/share/man/man8/systemd-ask-password-console.path.8/usr/share/man/man8/systemd-ask-password-wall.path.8/usr/share/man/man8/systemd-ask-password-wall.service.8/usr/share/man/man8/systemd-fsck-root.service.8/usr/share/man/man8/systemd-hibernate.service.8/usr/share/man/man8/systemd-hybrid-sleep.service.8/usr/share/man/man8/systemd-initctl.socket.8/usr/share/man/man8/systemd-journald.socket.8/usr/share/man/man8/systemd-kexec.service.8/usr/share/man/man8/systemd-poweroff.service.8/usr/share/man/man8/systemd-reboot.service.8/usr/share/man/man8/systemd-shutdownd.8/usr/share/man/man8/systemd-shutdownd.socket.8/usr/share/man/man8/systemd-sleep.8/usr/share/man/man8/systemd-sysctl.8/usr/share/man/man8/systemd-tmpfiles-clean.service.8/usr/share/man/man8/systemd-tmpfiles-clean.timer.8/usr/share/man/man8/systemd-tmpfiles-setup-dev.service.8/usr/share/man/man8/systemd-tmpfiles-setup.service.8/usr/share/man/man8/systemd-udevd-control.socket.8/usr/share/man/man8/systemd-udevd-kernel.socket.8/usr/share/man/man8/systemd-udevd.8/usr/share/man/man8/systemd-update-utmp-runlevel.service.8/usr/share/man/man8/systemd-update-utmp.8/usr/share/man/man8/systemd-backlight.8/usr/share/man/man8/systemd-binfmt.8/usr/share/man/man8/systemd-hostnamed.8/usr/share/man/man8/systemd-localed.8/usr/share/man/man8/systemd-logind.8/usr/share/man/man8/systemd-machined.8/usr/share/man/man8/systemd-networkd.8/usr/share/man/man8/systemd-quotacheck.8/usr/share/man/man8/systemd-random-seed.8/usr/share/man/man8/systemd-readahead-collect.service.8/usr/share/man/man8/systemd-readahead-done.service.8/usr/share/man/man8/systemd-readahead-done.timer.8/usr/share/man/man8/systemd-readahead.8/usr/share/man/man8/systemd-rfkill.8/usr/share/man/man8/systemd-timedated.8/usr/share/man/man8/systemd-vconsole-setup.8/usr/share/man/man8/systemd-modules-load.8/usr/share/man/man8/systemd-cryptsetup.8/usr/share/man/man8/systemd-user-sessions.8/usr/share/man/man5/usr/share/man/man5/systemd.preset.5/usr/share/man/man5/systemd.scope.5/usr/share/man/man5/hostname.5/usr/share/man/man5/os-release.5/usr/share/man/man5/tmpfiles.d.5/usr/share/man/man5/systemd-sleep.conf.5/usr/share/man/man5/systemd.service.5/usr/share/man/man5/systemd-system.conf.5/usr/share/man/man5/systemd.automount.5/usr/share/man/man5/systemd.device.5/usr/share/man/man5/machine-info.5/usr/share/man/man5/binfmt.d.5/usr/share/man/man5/journald.conf.5/usr/share/man/man5/systemd.slice.5/usr/share/man/man5/locale.conf.5/usr/share/man/man5/systemd.exec.5/usr/share/man/man5/sysctl.d.5/usr/share/man/man5/logind.conf.5/usr/share/man/man5/systemd.kill.5/usr/share/man/man5/systemd.snapshot.5/usr/share/man/man5/localtime.5/usr/share/man/man5/systemd.mount.5/usr/share/man/man5/machine-id.5/usr/share/man/man5/systemd.path.5/usr/share/man/man5/systemd.socket.5/usr/share/man/man5/systemd.target.5/usr/share/man/man5/systemd.unit.5/usr/share/man/man5/vconsole.conf.5/usr/share/man/man5/crypttab.5/usr/share/man/man5/systemd.resource-control.5/usr/share/man/man5/systemd.swap.5/usr/share/man/man5/systemd.timer.5/usr/share/man/man5/bootchart.conf.5/usr/share/man/man5/modules-load.d.5/usr/share/man/man5/systemd-user.conf.5/usr/share/man/man7/usr/share/man/man7/bootup.7/usr/share/man/man7/daemon.7/usr/share/man/man7/kernel-command-line.7/usr/share/man/man7/systemd.journal-fields.7/usr/share/man/man7/systemd.special.7/usr/share/man/man7/systemd.time.7/usr/share/man/man7/udev.7/usr/share/man/man3/usr/share/man/man3/sd-daemon.3/usr/share/man/man3/sd_session_is_active.3/usr/share/man/man3/sd_readahead.3/usr/share/man/man3/sd_booted.3/usr/share/man/man3/sd_id128_to_string.3/usr/share/man/man3/sd_journal_get_catalog.3/usr/share/man/man3/sd_journal_get_data.3/usr/share/man/man3/sd_journal_get_realtime_usec.3/usr/share/man/man3/sd_journal_print.3/usr/share/man/man3/sd_listen_fds.3/usr/share/man/man3/sd-login.3/usr/share/man/man3/SD_CRIT.3/usr/share/man/man3/sd_uid_get_state.3/usr/share/man/man3/sd-id128.3/usr/share/man/man3/sd_id128_get_machine.3/usr/share/man/man3/sd_journal_add_match.3/usr/share/man/man3/sd_journal_get_cutoff_realtime_usec.3/usr/share/man/man3/sd_journal_get_usage.3/usr/share/man/man3/sd_journal_query_unique.3/usr/share/man/man3/sd_notify.3/usr/share/man/man3/sd_get_seats.3/usr/share/man/man3/sd_watchdog_enabled.3/usr/share/man/man3/SD_ALERT.3/usr/share/man/man3/sd_login_monitor_new.3/usr/share/man/man3/sd-readahead.3/usr/share/man/man3/SD_DEBUG.3/usr/share/man/man3/sd-journal.3/usr/share/man/man3/sd_id128_randomize.3/usr/share/man/man3/sd_is_fifo.3/usr/share/man/man3/sd_journal_get_cursor.3/usr/share/man/man3/sd_journal_get_fd.3/usr/share/man/man3/sd_journal_next.3/usr/share/man/man3/sd_journal_open.3/usr/share/man/man3/sd_journal_seek_head.3/usr/share/man/man3/sd_pid_get_session.3/usr/share/man/man3/sd_journal_stream_fd.3/usr/share/man/man3/sd_seat_get_active.3/usr/share/man/man3/sd_journal.3/usr/share/man/man3/sd_journal_flush_matches.3/usr/share/man/man3/sd_notifyf.3/usr/share/man/man3/SD_EMERG.3/usr/share/man/man3/SD_ID128_CONST_STR.3/usr/share/man/man3/SD_JOURNAL_APPEND.3/usr/share/man/man3/SD_JOURNAL_INVALIDATE.3/usr/share/man/man3/SD_LISTEN_FDS_START.3/usr/share/man/man3/sd_is_mq.3/usr/share/man/man3/sd_journal_add_conjunction.3/usr/share/man/man3/sd_journal_get_monotonic_usec.3/usr/share/man/man3/sd_journal_open_files.3/usr/share/man/man3/SD_ID128_FORMAT_STR.3/usr/share/man/man3/SD_JOURNAL_CURRENT_USER.3/usr/share/man/man3/SD_JOURNAL_NOP.3/usr/share/man/man3/SD_NOTICE.3/usr/share/man/man3/sd_id128_get_boot.3/usr/share/man/man3/sd_journal_add_disjunction.3/usr/share/man/man3/sd_journal_get_timeout.3/usr/share/man/man3/sd_journal_next_skip.3/usr/share/man/man3/SD_ID128_MAKE.3/usr/share/man/man3/SD_JOURNAL_FOREACH_UNIQUE.3/usr/share/man/man3/SD_JOURNAL_SUPPRESS_LOCATION.3/usr/share/man/man3/sd_is_socket.3/usr/share/man/man3/sd_journal_enumerate_unique.3/usr/share/man/man3/sd_journal_perror.3/usr/share/man/man3/sd_journal_open_container.3/usr/share/man/man3/SD_JOURNAL_FOREACH.3/usr/share/man/man3/SD_JOURNAL_LOCAL_ONLY.3/usr/share/man/man3/SD_WARNING.3/usr/share/man/man3/sd_id128_t.3/usr/share/man/man3/sd_is_socket_inet.3/usr/share/man/man3/sd_journal_get_catalog_for_message_id.3/usr/share/man/man3/sd_journal_close.3/usr/share/man/man3/sd_journal_get_events.3/usr/share/man/man3/SD_ERR.3/usr/share/man/man3/SD_INFO.3/usr/share/man/man3/SD_JOURNAL_FOREACH_BACKWARDS.3/usr/share/man/man3/SD_JOURNAL_SYSTEM.3/usr/share/man/man3/sd_id128_equal.3/usr/share/man/man3/sd_is_socket_unix.3/usr/share/man/man3/sd_journal_get_cutoff_monotonic_usec.3/usr/share/man/man3/sd_is_special.3/usr/share/man/man3/sd_journal_get_data_threshold.3/usr/share/man/man3/SD_ID128_FORMAT_VAL.3/usr/share/man/man3/SD_JOURNAL_FOREACH_DATA.3/usr/share/man/man3/SD_JOURNAL_RUNTIME_ONLY.3/usr/share/man/man3/sd_id128_from_string.3/usr/share/man/man3/sd_journal_enumerate_data.3/usr/share/man/man3/sd_journal_open_directory.3/usr/share/man/man3/sd_journal_previous.3/usr/share/man/man3/sd_journal_previous_skip.3/usr/share/man/man3/sd_journal_printv.3/usr/share/man/man3/sd_journal_process.3/usr/share/man/man3/sd_journal_reliable_fd.3/usr/share/man/man3/sd_journal_restart_data.3/usr/share/man/man3/sd_journal_restart_unique.3/usr/share/man/man3/sd_journal_seek_cursor.3/usr/share/man/man3/sd_journal_seek_monotonic_usec.3/usr/share/man/man3/sd_journal_seek_realtime_usec.3/usr/share/man/man3/sd_journal_seek_tail.3/usr/share/man/man3/sd_journal_send.3/usr/share/man/man3/sd_journal_sendv.3/usr/share/man/man3/sd_journal_set_data_threshold.3/usr/share/man/man3/sd_journal_test_cursor.3/usr/share/man/man3/sd_journal_wait.3/usr/share/man/man3/sd_get_machine_names.3/usr/share/man/man3/sd_get_sessions.3/usr/share/man/man3/sd_get_uids.3/usr/share/man/man3/sd_login_monitor.3/usr/share/man/man3/sd_login_monitor_flush.3/usr/share/man/man3/sd_login_monitor_get_events.3/usr/share/man/man3/sd_login_monitor_get_fd.3/usr/share/man/man3/sd_login_monitor_get_timeout.3/usr/share/man/man3/sd_login_monitor_unref.3/usr/share/man/man3/sd_pid_get_machine_name.3/usr/share/man/man3/sd_pid_get_owner_uid.3/usr/share/man/man3/sd_pid_get_slice.3/usr/share/man/man3/sd_pid_get_unit.3/usr/share/man/man3/sd_pid_get_user_unit.3/usr/share/man/man3/sd_seat_can_graphical.3/usr/share/man/man3/sd_seat_can_multi_session.3/usr/share/man/man3/sd_seat_can_tty.3/usr/share/man/man3/sd_seat_get_sessions.3/usr/share/man/man3/sd_session_get_class.3/usr/share/man/man3/sd_session_get_display.3/usr/share/man/man3/sd_session_get_remote_host.3/usr/share/man/man3/sd_session_get_remote_user.3/usr/share/man/man3/sd_session_get_seat.3/usr/share/man/man3/sd_session_get_service.3/usr/share/man/man3/sd_session_get_state.3/usr/share/man/man3/sd_session_get_tty.3/usr/share/man/man3/sd_session_get_type.3/usr/share/man/man3/sd_session_get_uid.3/usr/share/man/man3/sd_session_get_vt.3/usr/share/man/man3/sd_session_is_remote.3/usr/share/man/man3/sd_uid_get_seats.3/usr/share/man/man3/sd_uid_get_sessions.3/usr/share/man/man3/sd_uid_is_on_seat.3/usr/share/pkgconfig/usr/share/pkgconfig/systemd.pc/usr/share/pkgconfig/udev.pc/usr/share/dbus-1/system-services/usr/share/dbus-1/system-services/org.freedesktop.systemd1.service/usr/share/dbus-1/system-services/org.freedesktop.hostname1.service/usr/share/dbus-1/system-services/org.freedesktop.locale1.service/usr/share/dbus-1/system-services/org.freedesktop.timedate1.service/usr/share/dbus-1/system-services/org.freedesktop.machine1.service/usr/share/dbus-1/system-services/org.freedesktop.login1.service/usr/share/dbus-1/services/usr/share/dbus-1/services/org.freedesktop.systemd1.service/usr/share/polkit-1/actions/usr/share/polkit-1/actions/org.freedesktop.hostname1.policy/usr/share/polkit-1/actions/org.freedesktop.locale1.policy/usr/share/polkit-1/actions/org.freedesktop.timedate1.policy/usr/share/polkit-1/actions/org.freedesktop.login1.policy/usr/share/polkit-1/actions/org.freedesktop.systemd1.policy/usr/share/systemd/usr/share/systemd/kbd-model-map/usr/include/usr/include/gudev-1.0/gudev/usr/include/gudev-1.0/gudev/gudev.h/usr/include/gudev-1.0/gudev/gudevenums.h/usr/include/gudev-1.0/gudev/gudevenumtypes.h/usr/include/gudev-1.0/gudev/gudevtypes.h/usr/include/gudev-1.0/gudev/gudevclient.h/usr/include/gudev-1.0/gudev/gudevdevice.h/usr/include/gudev-1.0/gudev/gudevenumerator.h/usr/include/libudev.h/usr/include/systemd/usr/include/systemd/sd-login.h/usr/include/systemd/sd-id128.h/usr/include/systemd/sd-daemon.h/usr/include/systemd/sd-journal.h/usr/include/systemd/sd-messages.h/usr/include/systemd/_sd-common.h/lib/lib/udev/lib/udev/rules.d/lib/udev/rules.d/75-tty-description.rules/lib/udev/rules.d/78-sound-card.rules/lib/udev/rules.d/80-drivers.rules/lib/udev/rules.d/60-persistent-alsa.rules/lib/udev/rules.d/80-net-setup-link.rules/lib/udev/rules.d/60-persistent-storage.rules/lib/udev/rules.d/95-udev-late.rules/lib/udev/rules.d/42-usb-hid-pm.rules/lib/udev/rules.d/50-udev-default.rules/lib/udev/rules.d/60-drm.rules/lib/udev/rules.d/60-keyboard.rules/lib/udev/rules.d/60-persistent-serial.rules/lib/udev/rules.d/64-btrfs.rules/lib/udev/rules.d/50-firmware.rules/lib/udev/rules.d/60-persistent-input.rules/lib/udev/rules.d/75-net-description.rules/lib/udev/rules.d/60-persistent-storage-tape.rules/lib/udev/rules.d/60-cdrom_id.rules/lib/udev/rules.d/60-persistent-v4l.rules/lib/udev/rules.d/61-accelerometer.rules/lib/udev/rules.d/75-probe_mtd.rules/lib/udev/rules.d/70-uaccess.rules/lib/udev/rules.d/70-power-switch.rules/lib/udev/rules.d/99-systemd.rules/lib/udev/rules.d/71-seat.rules/lib/udev/rules.d/73-seat-late.rules/lib/udev/hwdb.d/lib/udev/hwdb.d/20-pci-vendor-model.hwdb/lib/udev/hwdb.d/20-pci-classes.hwdb/lib/udev/hwdb.d/20-usb-vendor-model.hwdb/lib/udev/hwdb.d/20-usb-classes.hwdb/lib/udev/hwdb.d/20-sdio-vendor-model.hwdb/lib/udev/hwdb.d/20-sdio-classes.hwdb/lib/udev/hwdb.d/20-bluetooth-vendor-product.hwdb/lib/udev/hwdb.d/20-acpi-vendor.hwdb/lib/udev/hwdb.d/20-OUI.hwdb/lib/udev/hwdb.d/20-net-ifname.hwdb/lib/udev/hwdb.d/60-keyboard.hwdb/lib/udev/ata_id/lib/udev/cdrom_id/lib/udev/collect/lib/udev/scsi_id/lib/udev/v4l_id/lib/udev/accelerometer/lib/udev/mtd_probe/lib/security/lib/security/pam_systemd.so/lib/security/pam_systemd.la/lib/tmpfiles.d/lib/tmpfiles.d/systemd.conf/lib/tmpfiles.d/systemd-nologin.conf/lib/tmpfiles.d/tmp.conf/lib/tmpfiles.d/x11.conf/lib/kernel/install.d/lib/kernel/install.d/50-depmod.install/lib/kernel/install.d/90-loaderentry.install/lib/rpm/macros.d/lib/rpm/macros.d/macros.systemd/lib/systemd/lib/systemd/systemd/lib/systemd/systemd-cgroups-agent/lib/systemd/systemd-initctl/lib/systemd/systemd-update-utmp/lib/systemd/systemd-shutdownd/lib/systemd/systemd-shutdown/lib/systemd/systemd-remount-fs/lib/systemd/systemd-reply-password/lib/systemd/systemd-fsck/lib/systemd/systemd-ac-power/lib/systemd/systemd-sysctl/lib/systemd/systemd-sleep/lib/systemd/systemd-bus-proxyd/lib/systemd/systemd-socket-proxyd/lib/systemd/systemd-modules-load/lib/systemd/systemd-udevd/lib/systemd/systemd-activate/lib/systemd/systemd-journald/lib/systemd/systemd-coredump/lib/systemd/systemd-binfmt/lib/systemd/systemd-vconsole-setup/lib/systemd/systemd-readahead/lib/systemd/systemd-bootchart/lib/systemd/systemd-quotacheck/lib/systemd/systemd-random-seed/lib/systemd/systemd-backlight/lib/systemd/systemd-rfkill/lib/systemd/systemd-cryptsetup/lib/systemd/systemd-hostnamed/lib/systemd/systemd-localed/lib/systemd/systemd-timedated/lib/systemd/systemd-machined/lib/systemd/systemd-networkd/lib/systemd/systemd-logind/lib/systemd/systemd-user-sessions/lib/systemd/systemd-multi-seat-x/lib/systemd/system/lib/systemd/system/local-fs.target.wants/lib/systemd/system/local-fs.target.wants/systemd-remount-fs.service/lib/systemd/system/local-fs.target.wants/tmp.mount/lib/systemd/system/multi-user.target.wants/lib/systemd/system/multi-user.target.wants/systemd-logind.service/lib/systemd/system/multi-user.target.wants/systemd-user-sessions.service/lib/systemd/system/multi-user.target.wants/getty.target/lib/systemd/system/multi-user.target.wants/systemd-ask-password-wall.path/lib/systemd/system/sysinit.target.wants/lib/systemd/system/sysinit.target.wants/systemd-modules-load.service/lib/systemd/system/sysinit.target.wants/kmod-static-nodes.service/lib/systemd/system/sysinit.target.wants/systemd-tmpfiles-setup-dev.service/lib/systemd/system/sysinit.target.wants/systemd-tmpfiles-setup.service/lib/systemd/system/sysinit.target.wants/systemd-udevd.service/lib/systemd/system/sysinit.target.wants/systemd-udev-trigger.service/lib/systemd/system/sysinit.target.wants/systemd-journald.service/lib/systemd/system/sysinit.target.wants/systemd-journal-flush.service/lib/systemd/system/sysinit.target.wants/systemd-binfmt.service/lib/systemd/system/sysinit.target.wants/proc-sys-fs-binfmt_misc.automount/lib/systemd/system/sysinit.target.wants/systemd-vconsole-setup.service/lib/systemd/system/sysinit.target.wants/systemd-random-seed.service/lib/systemd/system/sysinit.target.wants/cryptsetup.target/lib/systemd/system/sysinit.target.wants/systemd-update-utmp.service/lib/systemd/system/sysinit.target.wants/dev-hugepages.mount/lib/systemd/system/sysinit.target.wants/dev-mqueue.mount/lib/systemd/system/sysinit.target.wants/sys-kernel-config.mount/lib/systemd/system/sysinit.target.wants/sys-kernel-debug.mount/lib/systemd/system/sysinit.target.wants/sys-fs-fuse-connections.mount/lib/systemd/system/sysinit.target.wants/systemd-sysctl.service/lib/systemd/system/sysinit.target.wants/systemd-ask-password-console.path/lib/systemd/system/sockets.target.wants/lib/systemd/system/sockets.target.wants/systemd-udevd-control.socket/lib/systemd/system/sockets.target.wants/systemd-udevd-kernel.socket/lib/systemd/system/sockets.target.wants/systemd-journald.socket/lib/systemd/system/sockets.target.wants/systemd-initctl.socket/lib/systemd/system/sockets.target.wants/systemd-shutdownd.socket/lib/systemd/system/busnames.target.wants/lib/systemd/system/busnames.target.wants/org.freedesktop.hostname1.busname/lib/systemd/system/busnames.target.wants/org.freedesktop.locale1.busname/lib/systemd/system/busnames.target.wants/org.freedesktop.timedate1.busname/lib/systemd/system/busnames.target.wants/org.freedesktop.machine1.busname/lib/systemd/system/busnames.target.wants/org.freedesktop.login1.busname/lib/systemd/system/timers.target.wants/lib/systemd/system/timers.target.wants/systemd-tmpfiles-clean.timer/lib/systemd/system/dbus-org.freedesktop.hostname1.service/lib/systemd/system/dbus-org.freedesktop.locale1.service/lib/systemd/system/dbus-org.freedesktop.timedate1.service/lib/systemd/system/dbus-org.freedesktop.machine1.service/lib/systemd/system/dbus-org.freedesktop.login1.service/lib/systemd/system/default.target/lib/systemd/system/ctrl-alt-del.target/lib/systemd/system/autovt@.service/lib/systemd/system/graphical.target/lib/systemd/system/multi-user.target/lib/systemd/system/debug-shell.service/lib/systemd/system/emergency.target/lib/systemd/system/sysinit.target/lib/systemd/system/basic.target/lib/systemd/system/getty.target/lib/systemd/system/halt.target/lib/systemd/system/kexec.target/lib/systemd/system/local-fs.target/lib/systemd/system/local-fs-pre.target/lib/systemd/system/initrd.target/lib/systemd/system/initrd-fs.target/lib/systemd/system/initrd-root-fs.target/lib/systemd/system/remote-fs.target/lib/systemd/system/remote-fs-pre.target/lib/systemd/system/network.target/lib/systemd/system/network-online.target/lib/systemd/system/nss-lookup.target/lib/systemd/system/nss-user-lookup.target/lib/systemd/system/hibernate.target/lib/systemd/system/hybrid-sleep.target/lib/systemd/system/poweroff.target/lib/systemd/system/reboot.target/lib/systemd/system/rescue.target/lib/systemd/system/rpcbind.target/lib/systemd/system/time-sync.target/lib/systemd/system/shutdown.target/lib/systemd/system/final.target/lib/systemd/system/umount.target/lib/systemd/system/sigpwr.target/lib/systemd/system/sleep.target/lib/systemd/system/sockets.target/lib/systemd/system/busnames.target/lib/systemd/system/timers.target/lib/systemd/system/paths.target/lib/systemd/system/suspend.target/lib/systemd/system/swap.target/lib/systemd/system/slices.target/lib/systemd/system/system.slice/lib/systemd/system/systemd-initctl.socket/lib/systemd/system/systemd-shutdownd.socket/lib/systemd/system/syslog.socket/lib/systemd/system/dev-hugepages.mount/lib/systemd/system/dev-mqueue.mount/lib/systemd/system/sys-kernel-config.mount/lib/systemd/system/sys-kernel-debug.mount/lib/systemd/system/sys-fs-fuse-connections.mount/lib/systemd/system/tmp.mount/lib/systemd/system/printer.target/lib/systemd/system/sound.target/lib/systemd/system/bluetooth.target/lib/systemd/system/smartcard.target/lib/systemd/system/systemd-ask-password-wall.path/lib/systemd/system/systemd-ask-password-console.path/lib/systemd/system/systemd-udevd-control.socket/lib/systemd/system/systemd-udevd-kernel.socket/lib/systemd/system/system-update.target/lib/systemd/system/initrd-switch-root.target/lib/systemd/system/systemd-tmpfiles-clean.timer/lib/systemd/system/systemd-journald.socket/lib/systemd/system/proc-sys-fs-binfmt_misc.automount/lib/systemd/system/proc-sys-fs-binfmt_misc.mount/lib/systemd/system/systemd-readahead-drop.service/lib/systemd/system/systemd-readahead-done.timer/lib/systemd/system/cryptsetup.target/lib/systemd/system/cryptsetup-pre.target/lib/systemd/system/org.freedesktop.hostname1.busname/lib/systemd/system/org.freedesktop.locale1.busname/lib/systemd/system/org.freedesktop.timedate1.busname/lib/systemd/system/machine.slice/lib/systemd/system/org.freedesktop.machine1.busname/lib/systemd/system/user.slice/lib/systemd/system/org.freedesktop.login1.busname/lib/systemd/system/getty@.service/lib/systemd/system/serial-getty@.service/lib/systemd/system/console-shell.service/lib/systemd/system/console-getty.service/lib/systemd/system/container-getty@.service/lib/systemd/system/systemd-initctl.service/lib/systemd/system/systemd-shutdownd.service/lib/systemd/system/systemd-remount-fs.service/lib/systemd/system/systemd-update-utmp.service/lib/systemd/system/systemd-update-utmp-runlevel.service/lib/systemd/system/systemd-ask-password-wall.service/lib/systemd/system/systemd-ask-password-console.service/lib/systemd/system/systemd-sysctl.service/lib/systemd/system/emergency.service/lib/systemd/system/rescue.service/lib/systemd/system/user@.service/lib/systemd/system/systemd-hibernate.service/lib/systemd/system/systemd-hybrid-sleep.service/lib/systemd/system/systemd-suspend.service/lib/systemd/system/systemd-halt.service/lib/systemd/system/systemd-poweroff.service/lib/systemd/system/systemd-reboot.service/lib/systemd/system/systemd-kexec.service/lib/systemd/system/systemd-fsck@.service/lib/systemd/system/systemd-fsck-root.service/lib/systemd/system/systemd-udevd.service/lib/systemd/system/systemd-udev-trigger.service/lib/systemd/system/systemd-udev-settle.service/lib/systemd/system/initrd-parse-etc.service/lib/systemd/system/initrd-cleanup.service/lib/systemd/system/initrd-udevadm-cleanup-db.service/lib/systemd/system/initrd-switch-root.service/lib/systemd/system/systemd-nspawn@.service/lib/systemd/system/systemd-modules-load.service/lib/systemd/system/kmod-static-nodes.service/lib/systemd/system/systemd-tmpfiles-setup-dev.service/lib/systemd/system/systemd-tmpfiles-setup.service/lib/systemd/system/systemd-tmpfiles-clean.service/lib/systemd/system/systemd-journald.service/lib/systemd/system/systemd-journal-flush.service/lib/systemd/system/systemd-binfmt.service/lib/systemd/system/systemd-vconsole-setup.service/lib/systemd/system/systemd-readahead-collect.service/lib/systemd/system/systemd-readahead-replay.service/lib/systemd/system/systemd-readahead-done.service/lib/systemd/system/systemd-quotacheck.service/lib/systemd/system/quotaon.service/lib/systemd/system/systemd-random-seed.service/lib/systemd/system/systemd-backlight@.service/lib/systemd/system/systemd-rfkill@.service/lib/systemd/system/systemd-hostnamed.service/lib/systemd/system/systemd-localed.service/lib/systemd/system/systemd-timedated.service/lib/systemd/system/systemd-machined.service/lib/systemd/system/systemd-networkd.service/lib/systemd/system/systemd-logind.service/lib/systemd/system/systemd-user-sessions.service/lib/systemd/system/-.slice/lib/systemd/ntp-units.d/lib/systemd/network/lib/systemd/network/99-default.link/lib/systemd/network/80-container-host0.network/lib/systemd/system-shutdown/lib/systemd/system-sleep/lib/systemd/system-generators/lib/systemd/system-generators/systemd-getty-generator/lib/systemd/system-generators/systemd-fstab-generator/lib/systemd/system-generators/systemd-system-update-generator/lib/systemd/system-generators/systemd-efi-boot-generator/lib/systemd/system-generators/systemd-gpt-auto-generator/lib/systemd/system-generators/systemd-cryptsetup-generator/lib/systemd/user-generators/lib/systemd/user/lib/systemd/user/shutdown.target/lib/systemd/user/sockets.target/lib/systemd/user/busnames.target/lib/systemd/user/timers.target/lib/systemd/user/paths.target/lib/systemd/user/bluetooth.target/lib/systemd/user/printer.target/lib/systemd/user/sound.target/lib/systemd/user/smartcard.target/lib/systemd/user/basic.target/lib/systemd/user/default.target/lib/systemd/user/exit.target/lib/systemd/user/systemd-exit.service/lib/systemd/catalog/lib/systemd/catalog/systemd.fr.catalog/lib/systemd/catalog/systemd.ru.catalog/lib/systemd/catalog/systemd.it.catalog/lib/systemd/catalog/systemd.catalog/lib/sysctl.d/lib/sysctl.d/50-default.conf/lib/sysctl.d/50-coredump.conf/lib/libsystemd.so.0/lib/libsystemd.so.0.0.1/lib/libudev.so.1/lib/libudev.so.1.4.0/lib/libgudev-1.0.so.0/lib/libgudev-1.0.so.0.2.0/bin/bin/systemd-ask-password/bin/kernel-install/bin/systemd-stdio-bridge/bin/systemd-delta/bin/bootctl/bin/systemd-coredumpctl/bin/udevadm/bin/journalctl/bin/systemd-tty-ask-password-agent/bin/systemctl/bin/machinectl/bin/loginctl/bin/systemd-machine-id-setup/bin/localectl/bin/systemd-inhibit/bin/hostnamectl/bin/systemd-tmpfiles/bin/systemd-detect-virt/bin/systemd-run/bin/systemd-cat/bin/systemd-notify/bin/systemd-cgls/bin/systemd-cgtop/bin/systemd-nspawn/bin/systemd-analyze/bin/busctl/bin/timedatectl

Congratulations, you are now ready to use systemd!

But before you reboot, some small changes must be made: - add myhostname to /etc/nsswitch.conf, so that it works even without DNS - move your sysctl stuff from /etc/sysctl.conf to files in /etc/sysctl.d/ - certain files must be created automatically, so I created /etc/tmpfiles.d/debian.conf with:D /run/lock 0755 root rootD /run/sendsigs.omit.d 0755 root rootL /run/initctl - - - - /dev/initctlD /run/network 0755 root netdev - for my thinkpad, I added some hdaps UDEV rules in /etc/51-hdapsd.rules : KERNEL==”event[0-9]*”, ATTRS{phys}==”hdaps/input1”,ATTRS{modalias}==”input:b0019v1014p5054e4801-*”,SYMLINK+=”input/hdaps/accelerometer-event” - bluetooth in debian has a problem with bluetooth.conf content being ignored, so I used another udev rule named /etc/rules.d/20-bluetooth.rules: ACTION==”add”, KERNEL==”hci0”, RUN+=”/usr/sbin/hciconfig hci0 up piscan” - systemd-journal will complain of unknown group systems-journal in /lib/tmpfiles.d/systemd.conf 25 to 28, so simply add a group named systemd-journal, for example under GID 11 (unused in /etc/group)

You may also want to set some defaults : - in /etc/systemd/system/bootchart.conf I use: Init=/lib/systemd/systemd - in journald.conf I use:SystemMaxUse=300MForwardToSyslog=noForwardToConsole=yesTTYPath=/dev/tty11 - in logind.conf I use:NAutoVTs=10HandlePowerKey=rebootPowerKeyIgnoreInhibited=no - in system.conf I use: LogTarget=journal-or-kmsg

2. Fixing bugs

2.1 blank screen (only with an old version of native video init coreboot)

On a x60 with native video init on an old coreboot, the #1 problem is a blank screen when you boot. That’s due to some i915 mode change, that I thought be caused by the backlight service or the console kit services

The easiest answer seemed to be booting the kernel in a way that would disable the mode change with “quiet systemd.show_status=1 video=inteldrmfb:off” and to mask these services:systemctl mask console-kit-daemonsystemctl mask systemd-vconsole-setup

They allow you to use use localectl to set your keyboard, etc - no need for them, especially since we can create a loadkeys service.

However, for some reason (maybe linked to udev) the backlight service always came back.

The next problem is some characters in files: if you did not delete it, the old udevd might complain of “invalid key/value pair” in file /lib/udev/rules.d/91-permissions and 95-keymap.rules, line 93 at character 37 and line 96 at character 142 : simply add a \ to the first (so that it goes on to the next line), and remove the # and what follows for the second

Finally, here is what a “verbose” systemd boot now looks like, with systemd.show_status=1 in the kernel options:Loading, please wait…

Unless you really like these messages, I suggest booting in quiet mode and using systemctl or journald to check when some service fails.

3. Adding features

First, read the basics in https://wiki.archlinux.org/index.php/Systemd so that you know how you can access the journal with journalctl, or a bit harder that you can stop it with systemctl kill —kill-who=main —signal=SIGUSR2 systemd-journald.service

3.1 Keeping boot messages

If you do not want clear the tty1 console, to read systemd messages : cp /lib/systemd/system/getty\@.service /etc/systemd/system/getty@tty1.service and set TTYVTDisallocate=no

3.2 Adding services

systemctl told me which services were started by LSB compatibility scripts, so I started creating some systemd .service scripts

And in case you need to recreate your ssh keys automatically when they are removed, sshd-genkeys.service:[Unit]Description=SSH Key GenerationConditionPathExists=|!/etc/ssh/ssh_host_keyConditionPathExists=|!/etc/ssh/ssh_host_key.pubConditionPathExists=|!/etc/ssh/ssh_host_ecdsa_keyConditionPathExists=|!/etc/ssh/ssh_host_ecdsa_key.pubConditionPathExists=|!/etc/ssh/ssh_host_dsa_keyConditionPathExists=|!/etc/ssh/ssh_host_dsa_key.pubConditionPathExists=|!/etc/ssh/ssh_host_rsa_keyConditionPathExists=|!/etc/ssh/ssh_host_rsa_key.pub

systemd-analyze and systemd-analyze blame basically told me a 8 years old laptop running debian wheezy start in 3 seconds, after spending a bit more than 2 seconds starting the kernel, then a bit less than 1 second starting the daemons I want - much better that sysvinit, with only minimal changes!

This is a good start, but it requires many tweaks. Doing deeper changes with a debian built to support systemd (jessie !) can give you much better results, halving the 3 seconds to 1.3s

It’s a xmodmap I wrote to write math easily, using the 3rd and 4th level (AltGr and Shift+AltGr), while keeping the standard layout by default.

For most letters, you’ll find greek letters - including the rare ones, like script theta : ϑ, script phi ϕ, script epsilon ϵ and even the really rare ancient-greek ones (check wikipedia, they all have a cool story)

sampi Ͳ : U+0372 U+0373

numeric sampi ϡ : U+03E0 U+03E1

koppa Ϙ : U+03DE U+03DF

numeric koppa ϟ : U+03D8 U+03D9

digamma ς : U+03DA U+03DB (but also U+03C2)

Numeric koppa looks ϟ like thunderbolts : ϟϟ. With koppa I can even add clouds above to make a full storm:-)

ϘϘϘϘϘϘ

ϟϟ ! ! ϟϟ ! !

Not sure I’ll ever use them, but who knows - and they’re fun!!

Digamma ς the last one is still used and goes by many names - waw, epsimmon, stigma, or “final sigma” as that’s what σ should look like when it’s at the end of a words (so says wikipedia!)

You’ll notice my lowercase gamma, taus and chis are not standard, because I hate the way they look in most fonts : a gamma that looks like a y or a chi that looks like a x won’t cut it . So I dug in unicode shapes and found some cool replacements. Likewise for epsilon, which is accompanied by a big epsilon for whenever I need it and the standard awfully round ϵ next to omegapi ϖ (that’s not a creative name, whoever created that one must have been really tired :-)

Beside all this unicode goodness, I have :

- On the first row, math symbols (with the integral as Shift+AltGr I, the other exception being square root and perpedicular for the letter V, and rounded d ∂ for Shift+AltGr a, to keep company to α)

- On the right handside, accents - so I can add a macron on any letter, or do vectors like α⃗ (alpha vector says hello!), or strike through things a⃗⃠ (alpha vector says goodbye!)

A very good friend of mine use one of my domains for its password recovery email address - in case something happens to the mainstream account. For such purposes, I keep a special domain on a grand-fathered “google apps” plans - with no real users, just one administrator and a catchall set to never mark anything as spam and forward everything to a special email.

Recently, my friend forgot his yahoo password and for whatever reason, the mail with the recovery link was *NOT* reaching him, despite the catchall!! It was not in spam, not in the trash, nowhere after the google app- apparently it was just silently discarded by google. Separate tests using another (non yahoo) domain to send a similar email to the recovery address *DID* work, suggesting indeed that the spare domain setup and the catchall did work, and that the problem was somewhere else.

In the end, I had to create a special user with this given email on this domain so that my friend could log in and receive the recovery link from yahoo.

That’s extra weird - maybe some recently-added Google security feature to avoid yahoo.com account thievery by a catchall. But this raises the question - is there that much interest for a “premium” yahoo.com account in 2014???