The force-release list for Samsung is already an ultralong monster, and
reportedly still incomplete (see https://launchpad.net/bugs/574250).
Give up and instead apply the force-release quirk to all Samsung models. The
worst that can happen is that autorepeat behaves a bit weird, but that's much
better than a complete freeze after each keypress.
Renaming network devices might delay events for the other device, which has
the same devpath in the meantime as the original event. Causing a delay until
the timout of the event is reached.
Look at the ifindex/devnum of the devices to check if they are really
the same devices.
This is to match where libudev.so is installed and it works because
all dependent libraries are already installed in / instead of /usr on
most distros:
$ ldd /usr/lib64/libgudev-1.0.so
linux-vdso.so.1 => (0x00007fff44dff000)
libudev.so.0 => /lib64/libudev.so.0 (0x0000003bf2600000)
libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x0000003fb5200000)
libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x0000003fb4e00000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003d5b000000)
librt.so.1 => /lib64/librt.so.1 (0x0000003d5b800000)
libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x0000003fb4a00000)
libc.so.6 => /lib64/libc.so.6 (0x0000003d5ac00000)
/lib64/ld-linux-x86-64.so.2 (0x0000003d5a800000)
With this change it is possible to write libgudev applications that
can be installed in /bin or /sbin and can run without /usr being
mounted. This is needed for e.g. udisks, NetworkManager and other
subsystem-specific daemons.
Signed-off-by: David Zeuthen <davidz@redhat.com>
This functions are working as follows:
- Send a SIGTERM to all processes that may be finished
- Send a SIGKILL to all processes that still live and may be finished
- Try to unmount all mount points
- Try to remount read-only all mount points that can't be umounted
- Umount all swap devices
- Umount and detach all loopback devices
- Call [poweroff|halt|reboot|kexec]
TODO:
- Umount device-mapper.
- Make log work. So far it is being useless as we do not parse
/etc/systemd/system.conf, kernel command line but just
environment, however we're executed by init and thus have no
useful variables. Forcing it to target=kmsg/console and
level=debug also does not produce any output, however writing to
/dev/console does work (hack used during debug).
This functions will:
- umount all mount points that aren't API
- remount read-only all mount points that can't be umounted
- umount all swap devices.
- detach all loopback devices
TODO:
- umount dms
Mountpoints are being read from /proc/self/mountinfo.
Swaps are being read from /proc/swaps.
Loop devices from /sys/class/block/loop*.
Arch uses the same paths and default font of gentoo. Previously,
systemd-vconsole-setup was failing with the following message:
systemd-vconsole-setup[59]: /bin/setfont failed with error code 1.
Some drives don't like huge feature buffers, so we query twice. First
run for the current profile and to get the length.
Second time we query the whole profile feature set.