Hi,
attaches is a patch for minimal iniramfs support, please apply. It adds
an extra open-iscsi-initramfs package. The hooks there try to add the
basics stuff for booting via iscsi. The question now is how do we want
to pass the arguments to iscsistart. I'd go for a
/etc/iscsi/iscsistart.initramfs that gets also copied onto the initrd
and parsed by the local-top/iscsi script. I only wonder how we can
ensure, that the network is up? Depending on kernel level
autoconfiguration via dhcp or bootp would probably be easiest for now.
Cheers,
-- Guido
commit 9f34f6af9d67c2521a6de4a0f9e054a1cacdb68a
Author: Guido Guenther <[EMAIL PROTECTED]>
Date: Sun Aug 12 01:53:07 2007 +0200
add basic initramfs support
diff --git a/debian/changelog b/debian/changelog
index c240726..96cd5ba 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+open-iscsi (2.0.865-1~irf0) unstable; urgency=low
+
+ * add initramfs package
+ * use quilt for patches
+ * no need to link iscsistart statically
+
+ -- Guido Guenther <[EMAIL PROTECTED]> Sun, 12 Aug 2007 00:47:07 +0200
+
open-iscsi (2.0.865-1) unstable; urgency=low
* New upstream release
diff --git a/debian/control b/debian/control
index 731e823..294170d 100644
--- a/debian/control
+++ b/debian/control
@@ -2,7 +2,7 @@ Source: open-iscsi
Section: net
Priority: optional
Maintainer: Philipp Hug <[EMAIL PROTECTED]>
-Build-Depends: debhelper (>= 4.0.0), bzip2
+Build-Depends: debhelper (>= 4.0.0), bzip2, quilt (>= 0.40)
Standards-Version: 3.7.2.1
Package: open-iscsi
@@ -14,6 +14,17 @@ Description: High performance, transport independent iSCSI implementation
.
Homepage: http://www.open-iscsi.org/
+Package: open-iscsi-initramfs
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: boot from iscsi target support
+ iSCSI is a network protocol standard that allows the use of the SCSI protocol
+ over TCP/IP networks. This implementation follows RFC3720.
+ .
+ Homepage: http://www.open-iscsi.org/
+ .
+ This package contains the necessary scripts to support the rootfs on iSCSI.
+
#Package: linux-iscsi-modules-source
#Architecture: all
#Depends: ${shlibs:Depends}, ${misc:Depends}, module-assistant, debhelper (>= 4.0.0), bzip2
diff --git a/debian/initramfs/hooks b/debian/initramfs/hooks
new file mode 100644
index 0000000..2ed7536
--- /dev/null
+++ b/debian/initramfs/hooks
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+PREREQS=""
+
+prereqs() { echo "$PREREQS"; }
+
+case $1 in
+prereqs)
+ prereqs
+ exit 0
+ ;;
+esac
+
+if [ ! -x /sbin/iscsistart ]; then
+ exit 0
+fi
+
+. /usr/share/initramfs-tools/hook-functions
+
+copy_exec /sbin/iscsistart /sbin
+
+for x in iscsi_tcp libiscsi scsi_transport_iscsi; do
+ manual_add_modules ${x}
+done
+
diff --git a/debian/initramfs/local-top b/debian/initramfs/local-top
new file mode 100644
index 0000000..9066696
--- /dev/null
+++ b/debian/initramfs/local-top
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+VERBOSITY=0
+
+PREREQ=""
+
+prereqs() { echo "$PREREQ"; }
+
+case $1 in
+prereqs)
+ prereqs
+ exit 0
+ ;;
+esac
+
+
+if [ ! -e /sbin/iscsistart ]; then
+ exit 0
+fi
+
+modprobe -q iscsi_tcp
+
+exit 0
+
diff --git a/debian/open-iscsi-initramfs.install b/debian/open-iscsi-initramfs.install
new file mode 100644
index 0000000..e783265
--- /dev/null
+++ b/debian/open-iscsi-initramfs.install
@@ -0,0 +1 @@
+/usr/iscsistart /sbin/
diff --git a/debian/patches/nostatic.diff b/debian/patches/nostatic.diff
new file mode 100644
index 0000000..ca2b3cb
--- /dev/null
+++ b/debian/patches/nostatic.diff
@@ -0,0 +1,13 @@
+diff --git a/usr/Makefile b/usr/Makefile
+index db33ed1..fe34df2 100644
+--- a/usr/Makefile
++++ b/usr/Makefile
+@@ -50,7 +50,7 @@ iscsiadm: $(COMMON_SRCS) strings.o discovery.o iscsiadm.o
+
+ iscsistart: $(IPC_OBJ) $(ISCSI_LIB_SRCS) $(INITIATOR_SRCS) iscsistart.o \
+ statics.o
+- $(CC) $(CFLAGS) -static $^ -o $@
++ $(CC) $(CFLAGS) $^ -o $@
+
+ clean:
+ rm -f *.o $(PROGRAMS)
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..5bbd9fe
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+nostatic.diff
diff --git a/debian/rules b/debian/rules
index 391e717..b3efe53 100755
--- a/debian/rules
+++ b/debian/rules
@@ -16,7 +16,9 @@
# This has to be exported to make some magic below work.
export DH_OPTIONS
+include /usr/share/quilt/quilt.make
+INITRAMFS=$(CURDIR)/debian/open-iscsi-initramfs/usr/share/initramfs-tools/
CFLAGS = -Wall -g
export OPTFLAGS =-DDISCOVERY_FILE=\"/var/lib/open-iscsi/discovery\" -DNODE_FILE=\"/var/lib/open-iscsi/node\"
@@ -28,7 +30,7 @@ else
endif
configure: configure-stamp
-configure-stamp:
+configure-stamp: patch
dh_testdir
# Add here commands to configure the package.
@@ -39,7 +41,7 @@ configure-stamp:
build: build-arch
build-arch: build-arch-stamp
-build-arch-stamp: configure-stamp
+build-arch-stamp: configure-stamp
# Add here commands to compile the arch part of the package.
$(MAKE) -C usr
@@ -54,7 +56,7 @@ build-indep-stamp: configure-stamp
#$(MAKE) doc
touch build-indep-stamp
-clean:
+clean: unpatch
dh_testdir
dh_testroot
rm -f build-arch-stamp build-indep-stamp configure-stamp
@@ -113,6 +115,11 @@ install-arch:
install -m 644 etc/iscsid.conf $(CURDIR)/debian/open-iscsi/etc/iscsi
install -m 644 debian/initiatorname.iscsi $(CURDIR)/debian/open-iscsi/etc/iscsi/initiatorname.iscsi
+ # initramfs stuff:
+ install -D -m 755 debian/initramfs/hooks $(INITRAMFS)/hooks/iscsi
+ install -D -m 755 debian/initramfs/local-top \
+ $(INITRAMFS)/scripts/local-top/iscsi
+
dh_install -s
# Must not depend on anything. This is to be called by