- fixed i18n unicode setting

- set cdrom in kernel polling
This commit is contained in:
Harald Hoyer 2011-02-21 17:44:59 +01:00
parent a80e307c59
commit 59f9af3305
6 changed files with 273 additions and 2 deletions

View File

@ -0,0 +1,92 @@
From b282107fa947817f1fc0bce6ae88b0a83c275847 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 18 Feb 2011 10:58:39 +0100
Subject: [PATCH] lvm: use --sysinit, if lvm version >= v2.02.65
---
modules.d/90lvm/lvm_scan.sh | 50 +++++++++++++++++++++++++++++-------------
1 files changed, 34 insertions(+), 16 deletions(-)
diff --git a/modules.d/90lvm/lvm_scan.sh b/modules.d/90lvm/lvm_scan.sh
index e705d39..7d56fce 100755
--- a/modules.d/90lvm/lvm_scan.sh
+++ b/modules.d/90lvm/lvm_scan.sh
@@ -45,30 +45,40 @@ if [ ! -e /etc/lvm/lvm.conf ]; then
fi
check_lvm_ver() {
+ maj=$1; shift;
+ min=$1; shift;
+ ver=$1; shift;
# --poll is supported since 2.2.57
- [ $1 -lt 2 ] && return 1
- [ $1 -gt 2 ] && return 0
- # major is 2
- [ $2 -lt 2 ] && return 1
- [ $2 -gt 2 ] && return 0
- # minor is 2, check for
- # greater or equal 57
- [ $3 -ge 57 ] && return 0
+ [ $1 -lt $maj ] && return 1
+ [ $1 -gt $maj ] && return 0
+ [ $2 -lt $min ] && return 1
+ [ $2 -gt $min ] && return 0
+ [ $3 -ge $ver ] && return 0
return 1
}
+lvm version 2>/dev/null | ( \
+ IFS=. read maj min sub;
+ maj=${maj##*:};
+ sub=${sub%% *}; sub=${sub%%\(*};
+ ) 2>/dev/null
+
nopoll=$(
# hopefully this output format will never change, e.g.:
# LVM version: 2.02.53(1) (2009-09-25)
- lvm version 2>/dev/null | ( \
- IFS=. read maj min sub;
- maj=${maj##*:};
- sub=${sub%% *}; sub=${sub%%\(*};
- check_lvm_ver $maj $min $sub && \
+ check_lvm_ver 2 2 57 $maj $min $sub && \
echo " --poll n ";
- ) 2>/dev/null
)
+sysinit=$(
+ # hopefully this output format will never change, e.g.:
+ # LVM version: 2.02.53(1) (2009-09-25)
+ check_lvm_ver 2 2 65 $maj $min $sub && \
+ echo " --sysinit ";
+)
+
+export LVM_SUPPRESS_LOCKING_FAILURE_MESSAGES=1
+
if [ -n "$SNAPSHOT" ] ; then
# HACK - this should probably be done elsewhere or turned into a function
# Enable read-write LVM locking
@@ -94,13 +104,21 @@ fi
if [ -n "$LVS" ] ; then
info "Scanning devices $lvmdevs for LVM logical volumes $LVS"
lvm lvscan --ignorelockingfailure 2>&1 | vinfo
- lvm lvchange -ay --ignorelockingfailure $nopoll --ignoremonitoring $LVS 2>&1 | vinfo
+ if [ -z "$sysinit" ]; then
+ lvm lvchange -ay --ignorelockingfailure $nopoll --ignoremonitoring $LVS 2>&1 | vinfo
+ else
+ lvm lvchange -ay $sysinit $LVS 2>&1 | vinfo
+ fi
fi
if [ -z "$LVS" -o -n "$VGS" ]; then
info "Scanning devices $lvmdevs for LVM volume groups $VGS"
lvm vgscan --ignorelockingfailure 2>&1 | vinfo
- lvm vgchange -ay --ignorelockingfailure $nopoll --ignoremonitoring $VGS 2>&1 | vinfo
+ if [ -z "$sysinit" ]; then
+ lvm vgchange -ay --ignorelockingfailure $nopoll --ignoremonitoring $VGS 2>&1 | vinfo
+ else
+ lvm vgchange -ay $sysinit $VGS 2>&1 | vinfo
+ fi
fi
if [ "$lvmwritten" ]; then

View File

@ -0,0 +1,22 @@
From 440a4cc2475ff9ed1fc7b52b965dded8a36c9a2d Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 18 Feb 2011 13:11:53 +0100
Subject: [PATCH] Makefile: do not dash syntax check module-setup.sh
module-setup.sh is bash syntax, so dash complains about bash contructs
---
Makefile | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/Makefile b/Makefile
index 9dbe981..ab69c16 100644
--- a/Makefile
+++ b/Makefile
@@ -95,6 +95,7 @@ gitrpm: dracut-$(VERSION)-$(GITVERSION).tar.bz2
check: all
@ret=0;for i in modules.d/99base/init modules.d/*/*.sh; do \
+ [ "$${i##*/}" = "module-setup.sh" ] && continue; \
dash -n "$$i" ; ret=$$(($$ret+$$?)); \
done;exit $$ret
$(MAKE) -C test check

View File

@ -0,0 +1,54 @@
From 9edf1b206b69a9f6d6d038d333d8b855145ed4d6 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 18 Feb 2011 13:27:31 +0100
Subject: [PATCH] init: set cdrom polling in kernel
and reset to -1 after we are done.
---
modules.d/99base/init | 22 +++++++++++++++++-----
1 files changed, 17 insertions(+), 5 deletions(-)
diff --git a/modules.d/99base/init b/modules.d/99base/init
index 0a05e91..b49c87a 100755
--- a/modules.d/99base/init
+++ b/modules.d/99base/init
@@ -203,15 +203,19 @@ while :; do
# dirty hack for some cdrom drives,
# which report no medium for quiet
# some time.
- if [ ! -e /sys/module/block/parameters/events_dfl_poll_msecs ]; then
- for cdrom in /sys/block/sr*; do
- [ -e "$cdrom" ] || continue
+ for cdrom in /sys/block/sr*; do
+ [ -e "$cdrom" ] || continue
+ if [ -e "$cdrom"/events_poll_msecs ]; then
+ msecs=$(while read a; do echo $a;done < "$cdrom"/events_poll_msecs)
+ [ "$msecs" = "-1" ] && \
+ echo 1000 > "$cdrom"/events_poll_msecs
+ else
# skip, if cdrom medium was already found
strstr "$(udevadm info --query=env --path=${cdrom##/sys})" \
ID_CDROM_MEDIA && continue
echo change > "$cdrom/uevent"
- done
- fi
+ fi
+ done
i=$(($i+1))
[ $i -gt $RDRETRY ] \
@@ -220,6 +224,14 @@ done
unset job
unset queuetriggered
+# reset cdrom polling
+for cdrom in /sys/block/sr*; do
+ [ -e "$cdrom" ] || continue
+ if [ -e "$cdrom"/events_poll_msecs ]; then
+ echo -1 > "$cdrom"/events_poll_msecs
+ fi
+done
+
# pre-mount happens before we try to mount the root filesystem,
# and happens once.
getarg 'rd.break=pre-mount' 'rdbreak=pre-mount' && emergency_shell -n pre-mount "Break pre-mount"

View File

@ -0,0 +1,45 @@
From 06e07df001e196a47041bcea65b23f3039e005fa Mon Sep 17 00:00:00 2001
From: Andrey Borzenkov <arvidjaar@gmail.com>
Date: Sat, 19 Feb 2011 09:57:55 +0300
Subject: [PATCH] fix c0a82e271e2730159f042ee7d7fc4aca2e08d28a
Let inst_key_val usage agree with above patch :)
Also UNICODE is rather global console property, not font specific
(and if anything, is rather keyboard specific). Let it be just
vconsole.unicode
Signed-off-by: Andrey Borzenkov <arvidjaar@gmail.com>
Cc: initramfs@vger.kernel.org
---
modules.d/10i18n/parse-i18n.sh | 16 ++++++++--------
1 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/modules.d/10i18n/parse-i18n.sh b/modules.d/10i18n/parse-i18n.sh
index 61280c0..73dff6e 100755
--- a/modules.d/10i18n/parse-i18n.sh
+++ b/modules.d/10i18n/parse-i18n.sh
@@ -19,15 +19,15 @@ inst_key_val() {
unset _value
}
-inst_key_val /etc/vconsole.conf '' KEYMAP vconsole.keymap KEYTABLE
-inst_key_val /etc/vconsole.conf '' FONT vconsole.font SYSFONT
-inst_key_val /etc/vconsole.conf '' FONT_MAP vconsole.font.map CONTRANS
-inst_key_val /etc/vconsole.conf '' FONT_UNIMAP vconsole.font.unimap UNIMAP
-inst_key_val /etc/vconsole.conf 1 UNICODE vconsole.font.unicode
-inst_key_val /etc/vconsole.conf '' EXT_KEYMAP vconsole.keymap.ext
+inst_key_val '' /etc/vconsole.conf KEYMAP vconsole.keymap KEYTABLE
+inst_key_val '' /etc/vconsole.conf FONT vconsole.font SYSFONT
+inst_key_val '' /etc/vconsole.conf FONT_MAP vconsole.font.map CONTRANS
+inst_key_val '' /etc/vconsole.conf FONT_UNIMAP vconsole.font.unimap UNIMAP
+inst_key_val 1 /etc/vconsole.conf UNICODE vconsole.unicode
+inst_key_val '' /etc/vconsole.conf EXT_KEYMAP vconsole.keymap.ext
-inst_key_val /etc/locale.conf LANG locale.LANG
-inst_key_val /etc/locale.conf LC_ALL locale.LC_ALL
+inst_key_val '' /etc/locale.conf LANG locale.LANG
+inst_key_val '' /etc/locale.conf LC_ALL locale.LC_ALL
if [ -f /etc/locale.conf ]; then
. /etc/locale.conf

View File

@ -0,0 +1,45 @@
From 94cce410aaa7f4363c0fa48869c81f769ecd1289 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 21 Feb 2011 09:23:27 +0100
Subject: [PATCH] vconsole.font.unicode -> vconsole.unicode
---
dracut.kernel.7.xml | 4 ++--
modules.d/10i18n/parse-i18n.sh | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/dracut.kernel.7.xml b/dracut.kernel.7.xml
index 21cfecd..aad27e2 100644
--- a/dracut.kernel.7.xml
+++ b/dracut.kernel.7.xml
@@ -193,7 +193,7 @@ This parameter can be specified multiple times.</para>
</varlistentry>
<varlistentry>
<term>
- <envar>vconsole.font.unicode=</envar><replaceable>&lt;1|0&gt;</replaceable>
+ <envar>vconsole.unicode=</envar><replaceable>&lt;1|0&gt;</replaceable>
</term>
<listitem>
<para>boolean, indicating UTF-8 mode; will be written as <envar>UNICODE</envar> to <filename>/etc/vconsole.conf</filename> in the initramfs</para>
@@ -1168,7 +1168,7 @@ rd.znet=ctc,0.0.0600,0.0.0601,0.0.0602,protocol=bar</programlisting></para>
<envar>UNICODE</envar>
</term>
<listitem>
- <para><envar>vconsole.font.unicode</envar></para>
+ <para><envar>vconsole.unicode</envar></para>
</listitem>
</varlistentry>
<varlistentry>
diff --git a/modules.d/10i18n/parse-i18n.sh b/modules.d/10i18n/parse-i18n.sh
index 73dff6e..9f47326 100755
--- a/modules.d/10i18n/parse-i18n.sh
+++ b/modules.d/10i18n/parse-i18n.sh
@@ -23,7 +23,7 @@ inst_key_val '' /etc/vconsole.conf KEYMAP vconsole.keymap KEYTABLE
inst_key_val '' /etc/vconsole.conf FONT vconsole.font SYSFONT
inst_key_val '' /etc/vconsole.conf FONT_MAP vconsole.font.map CONTRANS
inst_key_val '' /etc/vconsole.conf FONT_UNIMAP vconsole.font.unimap UNIMAP
-inst_key_val 1 /etc/vconsole.conf UNICODE vconsole.unicode
+inst_key_val 1 /etc/vconsole.conf UNICODE vconsole.unicode vconsole.font.unicode
inst_key_val '' /etc/vconsole.conf EXT_KEYMAP vconsole.keymap.ext
inst_key_val '' /etc/locale.conf LANG locale.LANG

View File

@ -8,7 +8,7 @@
Name: dracut
Version: 008
Release: 4%{?dist}
Release: 5%{?dist}
Summary: Initramfs generator using udev
%if 0%{?fedora}
@ -91,7 +91,11 @@ Patch6: 0006-dracut-functions-fixed-installing-libraries-which-li.patch
Patch7: 0007-i18n-fixed-config-file-parsing-in-hostonly-mode.patch
Patch8: 0008-i18n-default-to-vconsole.font.unicode-1.patch
Patch9: 0009-selinux-turn-off-selinux-by-default.patch
Patch10: 0010-lvm-use-sysinit-if-lvm-version-v2.02.65.patch
Patch11: 0011-Makefile-do-not-dash-syntax-check-module-setup.sh.patch
Patch12: 0012-init-set-cdrom-polling-in-kernel.patch
Patch13: 0013-fix-c0a82e271e2730159f042ee7d7fc4aca2e08d28a.patch
Patch14: 0014-vconsole.font.unicode-vconsole.unicode.patch
%description
Dracut contains tools to create a bootable initramfs for 2.6 Linux kernels.
@ -164,6 +168,11 @@ This package contains tools to assemble the local initrd and host configuration.
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%build
make WITH_SWITCH_ROOT=0%{?with_switch_root}
@ -288,6 +297,10 @@ rm -rf $RPM_BUILD_ROOT
%dir /var/lib/dracut/overlay
%changelog
* Mon Feb 21 2011 Harald Hoyer <harald@redhat.com> 008-5
- fixed i18n unicode setting
- set cdrom in kernel polling
* Fri Feb 18 2011 Harald Hoyer <harald@redhat.com> 008-4
- readded dist tag