Skip to contentSkip to conversation

Get rid of echoer script

PATCH In review initramfs mailing list 1 participant 1 message Feb 16, 2009 Kbuild

lore
Share & tools
lore
#0 lore raw

PATCH 44/50 Get rid of echoer script

Gitweb:     http://git.kernel.org/?p=linux/kernel/git/davej/dracut.git;a=commit;h=955f8b09ad8766dbe593361205268f43ca938029
Commit:     955f8b09ad8766dbe593361205268f43ca938029
Parent:     7d18dca5c1b99cda942c7e0c95a3df2959dea2c2
Author:     Victor Lowther <[email protected]>
AuthorDate: Fri Feb 13 04:43:16 2009 -0800
Committer:  Dave Jones <[email protected]>
CommitDate: Mon Feb 16 13:56:42 2009 -0500

[PATCH 44/50] Get rid of echoer script

We can use sh -c to accomplish the same goal

Also move cat back on to the list of debugging tools -- all the files we were using it on in the initrd can use read to accomplish the same goal.

---
 Makefile              |    3 +--
 dracut                |    6 ++----
 echoer                |    4 ----
 init                  |    7 ++++---
 pre-mount/50cryptroot |    2 +-
 rules.d/63-luks.rules |    2 +-
 6 files changed, 9 insertions(+), 15 deletions(-)
Makefile +1 -2
index 6d7cb68..365cdf1 100644
@@ -11,9 +11,8 @@ install:
 	install -m 0755 init $(DESTDIR)/usr/libexec/dracut/init
 	install -m 0755 switch_root $(DESTDIR)/usr/libexec/dracut/switch_root
 	install -m 0755 dracut-functions $(DESTDIR)/usr/libexec/dracut/functions
-	install -m 0755 echoer $(DESTDIR)/usr/libexec/dracut/echoer
 	mkdir $(DESTDIR)/usr/libexec/dracut/rules.d
-	for rule in rules.d/*.rules ; do install -m 0644 $$rule $(DESTDIR)/usr/libexec/dracut/rules.d ; done
+	for rule in rules.d/*.rules ; do install -m 0644 $$rule $(DESTDIR)/usr/libexec/dracut ; done
 	for hooks in pre-*/* ; do install -m 0755 $$hook $(DESTDIR/usr/libexec/dracut ; done
 clean:
 	rm -f *~
dracut +2 -4
index 3e3d6f7..c8550c7 100755
@@ -36,7 +36,6 @@ fi
 initfile=$dsrc/init
 switchroot=$dsrc/switch_root
 rulesdir=$dsrc/rules.d
-echoer=$dsrc/echoer
 hookdirs="pre-udev pre-mount pre-pivot"
 
 initdir=$(mktemp -d -t initramfs.XXXXXX)
@@ -48,11 +47,11 @@ for d in bin sbin usr/bin usr/sbin usr/lib etc proc sys sysroot dev/pts; do
 done
 
 # executables that we have to have
-exe="bash mount mknod mkdir modprobe udevd udevadm nash pidof sleep chroot echo cat sed"
+exe="bash mount mknod mkdir modprobe udevd udevadm nash pidof sleep chroot echo sed"
 lvmexe="lvm"
 cryptexe="cryptsetup"
 # and some things that are nice for debugging
-debugexe="ls ln ps grep more dmesg"
+debugexe="ls ln ps grep more dmesg cat"
 # udev things we care about
 udevexe="/lib/udev/vol_id /lib/udev/console_init"
 
@@ -70,7 +69,6 @@ fi
 # install our scripts and hooks
 inst "$initfile" "/init"
 inst "$switchroot" "/sbin/switch_root"
-inst "$echoer" "/echoer"
 for hookdir in $hookdirs; do
     for hook in "$dsrc/$hookdir"/*; do
 	[[ -f $hook ]] && inst "$hook" "/$hookdir/${hook##*/}"
echoer deleted +0 -4
deleted file mode 100755
index 9fc7abf..0000000
@@ -1,4 +0,0 @@
-#!/bin/sh
-target=$1
-shift
-echo "$@" >"$target"
\ No newline at end of file
init +4 -3
index 4b36e69..c8ac4e5 100755
@@ -10,12 +10,13 @@ emergency_shell()
     echo ; echo
     echo "Bug in initramfs /init detected. Dropping to a shell. Good luck!"
     echo
-    exec sh -i
+    sh -i 2>/dev/console
 }
 
 getarg() {
-    local o;
-    for o in $(cat /proc/cmdline); do
+    local o line
+    read -r line </proc/cmdline
+    for o in $line; do
 	[ "${o%%=*}" = "$1" ] && { echo $o; break; }
     done
     return 1
pre-mount/50cryptroot +1 -1
index de7eca4..0664f24 100755
@@ -1,7 +1,7 @@
 #!/bin/sh
 [ -f /cryptroot ] && { 
     echo "Encrypted root detected."
-    cryptopts=$(cat /cryptroot)
+    read cryptopts </cryptroot
     /sbin/cryptsetup luksOpen $cryptopts || emergency_shell
     udevadm settle --timeout=30
 }
rules.d/63-luks.rules +1 -1
index ab907e9..4d6a379 100644
@@ -8,6 +8,6 @@ SUBSYSTEM!="block", GOTO="luks_end"
 ACTION!="add|change", GOTO="luks_end"
 
 KERNEL!="sr*", IMPORT{program}="vol_id --export $tempnode"
-ENV{ID_FS_TYPE}=="crypto_LUKS", RUN+="/echoer /cryptroot $env{DEVNAME} luks-$env{ID_FS_UUID}"
+ENV{ID_FS_TYPE}=="crypto_LUKS", RUN+="/bin/sh -c 'echo $env{DEVNAME} luks-$env{ID_FS_UUID} >/cryptroot'"
 
 LABEL="luks_end"

--
To unsubscribe from this list: send the line "unsubscribe initramfs" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html