Merge "Make driver package release a command line param"
This commit is contained in:
commit
fa933d905f
@ -0,0 +1,83 @@
|
||||
From e5f3bfdb1bf1438d4d1c4b2625eb8830b554cf69 Mon Sep 17 00:00:00 2001
|
||||
From: Jiping Ma <jiping.ma2@windriver.com>
|
||||
Date: Thu, 3 Nov 2022 20:39:50 -0700
|
||||
Subject: [PATCH] Make driver switch more adaptable
|
||||
|
||||
This commit makes it flexible to address future requirements.
|
||||
It will load drivers based on multi-drivers-switch=version, if the
|
||||
legacy drivers are put into /lib/modules/$(uname -r)/extra/.
|
||||
That means we do not need to modify initramfs if we need to support
|
||||
more drivers in the future.
|
||||
|
||||
Legacy drivers:
|
||||
ls /lib/modules/$(uname -r)/extra/
|
||||
i40e-cvl-2.54 iavf-cvl-2.54 ice-cvl-2.54
|
||||
i40e-cvl-x.xx iavf-cvl-x.xx ice-cvl-x.xx
|
||||
|
||||
Latest drivers:
|
||||
/lib/modules/$(uname -r)/updates/
|
||||
i40e-cvl-4.0.1 iavf-cvl-4.0.1 ice-cvl-4.0.1
|
||||
|
||||
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
|
||||
---
|
||||
init-ostree.sh | 23 +++++++++++++++++++++--
|
||||
1 file changed, 21 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/init-ostree.sh b/init-ostree.sh
|
||||
index b6eacbf..d0b0dda 100644
|
||||
--- a/init-ostree.sh
|
||||
+++ b/init-ostree.sh
|
||||
@@ -64,6 +64,22 @@ do_mount_fs() {
|
||||
mount -t "$1" "$1" "$2"
|
||||
}
|
||||
|
||||
+network_modules() {
|
||||
+ if grep -s -q '\smulti-drivers-switch=' /proc/cmdline ; then
|
||||
+ if [ -d /lib/modules/"$(uname -r)"/extra/ice-"${DRIVER_VERSION}" ]; then
|
||||
+ insmod /lib/modules/"$(uname -r)"/extra/ice-"${DRIVER_VERSION}"/ice.ko
|
||||
+ insmod /lib/modules/"$(uname -r)"/extra/i40e-"${DRIVER_VERSION}"/i40e.ko
|
||||
+ insmod /lib/modules/"$(uname -r)"/extra/iavf-"${DRIVER_VERSION}"/iavf.ko
|
||||
+ echo "Legacy NIC ${DRIVER_VERSION} drivers have been activated"
|
||||
+ elif [ -d /lib/modules/"$(uname -r)"/updates/ice-"${DRIVER_VERSION}" ]; then
|
||||
+ insmod /lib/modules/"$(uname -r)"/updates/ice-"${DRIVER_VERSION}"/ice.ko
|
||||
+ insmod /lib/modules/"$(uname -r)"/updates/i40e-"${DRIVER_VERSION}"/i40e.ko
|
||||
+ insmod /lib/modules/"$(uname -r)"/updates/iavf-"${DRIVER_VERSION}"/iavf.ko
|
||||
+ echo "NIC ${DRIVER_VERSION} drivers have been activated"
|
||||
+ fi
|
||||
+ fi
|
||||
+}
|
||||
+
|
||||
early_setup() {
|
||||
|
||||
do_mount_fs proc /proc
|
||||
@@ -72,6 +88,9 @@ early_setup() {
|
||||
do_mount_fs tmpfs /tmp
|
||||
do_mount_fs tmpfs /run
|
||||
|
||||
+ read_args
|
||||
+ network_modules
|
||||
+
|
||||
$_UDEV_DAEMON --daemon
|
||||
udevadm trigger --action=add
|
||||
|
||||
@@ -103,6 +122,8 @@ read_args() {
|
||||
DEBUGFATAL=1 ;;
|
||||
flux=*)
|
||||
OSTREE_LABEL_FLUXDATA=$optarg ;;
|
||||
+ multi-drivers-switch=*)
|
||||
+ DRIVER_VERSION=$optarg ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
@@ -167,8 +188,6 @@ fatal() {
|
||||
|
||||
early_setup
|
||||
|
||||
-read_args
|
||||
-
|
||||
[ -z "$CONSOLE" ] && CONSOLE="/dev/console"
|
||||
[ -z "$INIT" ] && INIT="/sbin/init"
|
||||
|
||||
--
|
||||
2.35.1
|
||||
|
@ -1,38 +0,0 @@
|
||||
From 21919ca120e0693419c3b97fb442edf040f660f2 Mon Sep 17 00:00:00 2001
|
||||
From: Jiping Ma <jiping.ma2@windriver.com>
|
||||
Date: Thu, 15 Sep 2022 02:48:39 -0700
|
||||
Subject: [PATCH] Support multi-drivers in initramfs.
|
||||
|
||||
Remove the network drivers ice, i40e and iavf if multi-drivers-switch
|
||||
is set in cmdline, which ensures that ice, i40e and iavf drivers will
|
||||
not be loaded during initramfs stage.
|
||||
|
||||
pxe-network-installer will not be impacted because the parameter
|
||||
multi-drivers-switch is not set in this stage.
|
||||
|
||||
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
|
||||
---
|
||||
init-ostree.sh | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/init-ostree.sh b/init-ostree.sh
|
||||
index 6017fcf..b0d46a1 100644
|
||||
--- a/init-ostree.sh
|
||||
+++ b/init-ostree.sh
|
||||
@@ -167,6 +167,13 @@ fatal() {
|
||||
|
||||
early_setup
|
||||
|
||||
+if grep -s -q '\smulti-drivers-switch=' /proc/cmdline ; then
|
||||
+ rm -r /lib/modules/*/updates/ice
|
||||
+ rm -r /lib/modules/*/updates/i40e
|
||||
+ rm -r /lib/modules/*/updates/iavf
|
||||
+ echo "Removed network drivers ice, i40e and iavf"
|
||||
+fi
|
||||
+
|
||||
read_args
|
||||
|
||||
[ -z "$CONSOLE" ] && CONSOLE="/dev/console"
|
||||
--
|
||||
2.35.1
|
||||
|
@ -1,74 +0,0 @@
|
||||
From ae37f72593a2f539fdcf039db38ac9dcb80f9a63 Mon Sep 17 00:00:00 2001
|
||||
From: Jiping Ma <jiping.ma2@windriver.com>
|
||||
Date: Wed, 26 Oct 2022 18:26:33 -0700
|
||||
Subject: [PATCH] Switch drivers in initramfs
|
||||
|
||||
Running depmod fails on Debian loads due to ostree. Using
|
||||
"ostree admin unlock --hotfix" allows the command to pass,
|
||||
but that's not usable for feature/product delivery.
|
||||
|
||||
So we will switch drivers in initramfs. If cmdline parameter
|
||||
multi-drivers-switch is set to legacy, the legacy drivers
|
||||
will be loaded by "insmod" command before udevd is started,
|
||||
and that ensures that the legacy drivers will be loaded
|
||||
rather than the latest drivers.
|
||||
|
||||
We need do the following steps to switch to the legacy drivers.
|
||||
1. Add cmdline parameter multi-drivers-switch=cvl-2.54
|
||||
2. reboot
|
||||
|
||||
Do the following steps to switch back to the latest drivers.
|
||||
1. Add cmdline parameter multi-drivers-switch=cvl-4.0.1
|
||||
2. reboot
|
||||
|
||||
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
|
||||
---
|
||||
init-ostree.sh | 18 +++++++++++-------
|
||||
1 file changed, 11 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/init-ostree.sh b/init-ostree.sh
|
||||
index 80d4082..eded9ff 100644
|
||||
--- a/init-ostree.sh
|
||||
+++ b/init-ostree.sh
|
||||
@@ -64,6 +64,15 @@ do_mount_fs() {
|
||||
mount -t "$1" "$1" "$2"
|
||||
}
|
||||
|
||||
+network_modules() {
|
||||
+ if grep -s -q '\smulti-drivers-switch=cvl-2.54' /proc/cmdline ; then
|
||||
+ insmod /lib/modules/"$(uname -r)"/extra/ice-1.5.8.1/ice.ko
|
||||
+ insmod /lib/modules/"$(uname -r)"/extra/i40e-2.14.13/i40e.ko
|
||||
+ insmod /lib/modules/"$(uname -r)"/extra/iavf-4.0.1/iavf.ko
|
||||
+ echo "Legacy NIC drivers have been activated"
|
||||
+ fi
|
||||
+}
|
||||
+
|
||||
early_setup() {
|
||||
|
||||
do_mount_fs proc /proc
|
||||
@@ -72,6 +81,8 @@ early_setup() {
|
||||
do_mount_fs tmpfs /tmp
|
||||
do_mount_fs tmpfs /run
|
||||
|
||||
+ network_modules
|
||||
+
|
||||
$_UDEV_DAEMON --daemon
|
||||
udevadm trigger --action=add
|
||||
|
||||
@@ -167,13 +178,6 @@ fatal() {
|
||||
|
||||
early_setup
|
||||
|
||||
-if grep -s -q '\smulti-drivers-switch=' /proc/cmdline ; then
|
||||
- rm -r /lib/modules/*/updates/ice
|
||||
- rm -r /lib/modules/*/updates/i40e
|
||||
- rm -r /lib/modules/*/updates/iavf
|
||||
- echo "Removed network drivers ice, i40e and iavf"
|
||||
-fi
|
||||
-
|
||||
read_args
|
||||
|
||||
[ -z "$CONSOLE" ] && CONSOLE="/dev/console"
|
||||
--
|
||||
2.35.1
|
||||
|
@ -4,5 +4,4 @@
|
||||
0005-Wait-for-devices-to-be-configured-after-boot.patch
|
||||
0006-init-ostree-install.sh-break-hardlinks-in-var.patch
|
||||
0007-Add-support-for-StarlingX-partitioning-formatting.patch
|
||||
0008-Support-multi-drivers-in-initramfs.patch
|
||||
0009-Switch-drivers-in-initramfs.patch
|
||||
0008-Make-driver-switch-more-adaptable.patch
|
||||
|
Loading…
Reference in New Issue
Block a user