home: hub: mkinitfs

Download patch

ref: 7f77e0b383330265be27f551b2e384a6a8648afa
parent: 9e1b472701fa1785989f6757243a3d81e97944f2
author: Tuan M. Hoang <tmhoang@flatglobe.org>
date: Mon May 14 05:14:29 CDT 2018

initramfs-init: add disk and network detection on s390x

- Allow including dasd and qeth modules when building initramfs
- Add detection for dasd and qeth devices from cmdline in init

--- a/Makefile
+++ b/Makefile
@@ -48,7 +48,9 @@
 		features.d/xfs.files \
 		features.d/xfs.modules \
 		features.d/zfs.files \
-		features.d/zfs.modules
+		features.d/zfs.modules \
+		features.d/qeth.modules \
+		features.d/dasd_mod.modules
 
 SCRIPTS		:= mkinitfs bootchartd initramfs-init
 IN_FILES	:= $(addsuffix .in,$(SCRIPTS))
@@ -71,6 +73,9 @@
 		-e 's:@datadir@:$(datadir):g'
 
 DEFAULT_FEATURES ?= ata base cdrom ext2 ext4 keymap kms mmc raid scsi usb virtio
+ifeq ($(shell uname -m), s390x)
+DEFAULT_FEATURES += qeth dasd_mod
+endif
 
 
 all:	$(SBIN_FILES) $(SCRIPTS) $(CONF_FILES)
--- /dev/null
+++ b/features.d/dasd_mod.modules
@@ -1,0 +1,1 @@
+kernel/drivers/s390/block/dasd*
--- /dev/null
+++ b/features.d/qeth.modules
@@ -1,0 +1,1 @@
+kernel/drivers/s390/net/qeth*
--- a/initramfs-init.in
+++ b/initramfs-init.in
@@ -269,7 +269,7 @@
 myopts="alpine_dev autodetect autoraid chart cryptroot cryptdm cryptheader cryptoffset
 	cryptdiscards debug_init dma init_args keep_apk_new modules ovl_dev pkgs quiet
 	root_size root usbdelay ip alpine_repo apkovl alpine_start splash blacklist
-	overlaytmpfs rootfstype rootflags nbd resume"
+	overlaytmpfs rootfstype rootflags nbd resume s390x_net dasd"
 
 for opt; do
 	case "$opt" in
@@ -344,6 +344,25 @@
 mount -t devpts -o gid=5,mode=0620,noexec,nosuid devpts /dev/pts
 [ -d /dev/shm ] || mkdir /dev/shm
 mount -t tmpfs -o nodev,nosuid,noexec shm /dev/shm
+
+if [ -n "$dasd" ]; then
+	for mod in dasd_mod dasd_eckd_mod dasd_fba_mod; do
+		modprobe $mod
+	done
+	for _dasd in $(echo "$dasd" | tr ',' ' ' ); do
+		echo 1 > /sys/bus/ccw/devices/"${_dasd%%:*}"/online
+	done
+fi
+
+if [ "${s390x_net%%,*}" = "qeth_l2" ]; then
+	for mod in qeth qeth_l2 qeth_l3; do
+		modprobe $mod
+	done
+	_channel="${s390x_net#*,}"
+	echo "$_channel" > /sys/bus/ccwgroup/drivers/qeth/group
+	echo 1 > /sys/bus/ccwgroup/drivers/qeth/"${_channel%%,*}"/layer2
+	echo 1 > /sys/bus/ccwgroup/drivers/qeth/"${_channel%%,*}"/online
+fi
 
 # load available drivers to get access to modloop media
 ebegin "Loading boot drivers"