RHEL and Fedora, like Ubuntu, include a copy of our kernel drivers
within the initramfs. This can cause problems when updating the driver
since if a tablet is present when booting, the (unmodified) version from
the initramfs will be loaded into memory rather than the updated copy.
To get around this, we need to update the image as part of the install
process.

The command to update the image on RHEL/Fedora is `dracut`. Unlike the
similar command found in Ubuntu, however, it generates an entirely new
initramfs rather than updating the existing one. We've been hesitant
to use `dracut` because building a new initramfs from scratch could wipe
out custom modifications that a user may have made. Instead of updating
the installer, our instructions tell users to run `dracut` themselves.

Using `dracut` directly should be safe enough, however. If it weren't,
then systems would break every time the package manager installed a
kernel update. Users with customizations very likely make use of the
dracut configuration files rather than passing arguments to the command
every time.

Signed-off-by: Jason Gerecke <jason.gere...@wacom.com>
---
 3.17/Makefile.in | 4 ++++
 3.7/Makefile.in  | 4 ++++
 4.5/Makefile.in  | 4 ++++
 3 files changed, 12 insertions(+)

diff --git a/3.17/Makefile.in b/3.17/Makefile.in
index abebdaf..addd0df 100644
--- a/3.17/Makefile.in
+++ b/3.17/Makefile.in
@@ -24,6 +24,7 @@ endif # CONFIG_HID_WACOM
 else  # We were called from command line
 PWD  := $(shell pwd)
 UPDATE_INITRAMFS := $(shell command -v update-initramfs 2>/dev/null)
+DRACUT := $(shell command -v dracut 2>/dev/null)
 
 WCM_KERNEL_DIR := @WCM_KERNEL_DIR@
 MODUTS := @MODUTS@
@@ -44,6 +45,9 @@ install modules_install:
 ifdef UPDATE_INITRAMFS
        $(UPDATE_INITRAMFS) -u -k $(MODUTS)
 endif
+ifdef DRACUT:
+       $(DRACUT) -f /boot/initramfs-$(MODUTS).img
+endif
 
 uninstall:
        @# Debian uses symlinks in the path to WCM_KERNEL_DIR
diff --git a/3.7/Makefile.in b/3.7/Makefile.in
index 900cd11..f313ca1 100644
--- a/3.7/Makefile.in
+++ b/3.7/Makefile.in
@@ -16,6 +16,7 @@ endif # CONFIG_USB_WACOM
 
 else  # We were called from command line
 PWD  := $(shell pwd)
+DRACUT := $(shell command -v dracut 2>/dev/null)
 
 WCM_KERNEL_DIR := @WCM_KERNEL_DIR@
 MODUTS := @MODUTS@
@@ -33,6 +34,9 @@ install modules_install:
        mkdir -p /etc/depmod.d
        echo "override wacom * extra" > /etc/depmod.d/input-wacom.conf
        PATH="$(PATH):/bin:/sbin" depmod -a $(MODUTS)
+ifdef DRACUT:
+       $(DRACUT) -f /boot/initramfs-$(MODUTS).img
+endif
 
 uninstall:
        @# Debian uses symlinks in the path to WCM_KERNEL_DIR
diff --git a/4.5/Makefile.in b/4.5/Makefile.in
index 55c49ca..438229b 100644
--- a/4.5/Makefile.in
+++ b/4.5/Makefile.in
@@ -17,6 +17,7 @@ endif # CONFIG_HID_WACOM
 else  # We were called from command line
 PWD  := $(shell pwd)
 UPDATE_INITRAMFS := $(shell command -v update-initramfs 2>/dev/null)
+DRACUT := $(shell command -v dracut 2>/dev/null)
 
 WCM_KERNEL_DIR := @WCM_KERNEL_DIR@
 MODUTS := @MODUTS@
@@ -37,6 +38,9 @@ install modules_install:
 ifdef UPDATE_INITRAMFS
        $(UPDATE_INITRAMFS) -u -k $(MODUTS)
 endif
+ifdef DRACUT:
+       $(DRACUT) -f /boot/initramfs-$(MODUTS).img
+endif
 
 uninstall:
        @# Debian uses symlinks in the path to WCM_KERNEL_DIR
-- 
2.16.2


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

Reply via email to