[PATCH] kbd.init - numlock dla textmode

Przemysław Białek lobo w chello.pl
Pon, 11 Paź 2004, 20:05:00 CEST


Witam!

Dzisiaj zorientowałem się, że skrypt kbd.init nie włącza mi numlocka, na
konsoli tekstowej. Po obejżeniu skryptu zauważyłem, że robi on to tylko
na framebufferze. W załączeniu mała poprawka na ww plik. W zasadzie to
nawet dwie poprawki. W jednej robię to z automatu dla wszystkich konsol
z inittaba. W drugiej jest to robione tak jak dla fb (jeżeli jest
ustawione $SET_FONT_TERMINALS to dla konsol które są tam wymienione,
jeżeli jest puste to dla wszystkich z inittaba).

Jeśli nie będzie żadnych uwag, to prosiłbym o zaaplikowanie.

-- 
Pozdrawiam
Przemysław Białek
-------------- następna część ---------
--- kbd.init.orig	2004-06-28 21:24:23.000000000 +0200
+++ kbd.init	2004-10-11 19:40:06.427346984 +0200
@@ -49,36 +49,31 @@
 		show "Loading console font and map"
 		busy
 
+		# check if devfs (workaround: -a option don't work at all)
+		if [ -d /dev/vc ]; then
+			DEVICES="`ls /dev/vc/* | sed 's|/dev/vc/||g'`"
+			pattern="s/\/dev\/vc\///g"
+			VC_PATH="/dev/vc/"
+		else
+			DEVICES="`cat /etc/inittab | grep '^[0-9]*:' | cut -f1 -d :`"
+			pattern="s/\/dev\/tty//g"
+			VC_PATH="/dev/tty"
+		fi
+
 		# don't initialize on multiple terminals if we use fbset
 		# (assume that, in this case fb is loaded as a module)
 		if [ ! -z "$FB" ]; then
-			# Check for devfs (workaround: -a option don't work at all)
-			if [ -d /dev/vc ]; then
-				pattern="s/\/dev\/vc\///g"
-			else
-				pattern="s/\/dev\/tty//g"
-			fi
-
 			# save old tty number
 			tty=`/usr/bin/tty | sed $pattern`
 
-			# check if devfs (workaround: -a option don't work at all)
-			if [ -d /dev/vc ]; then
-				DEVICES="`ls /dev/vc/* | sed 's|/dev/vc/||g'`"
-			else
-				DEVICES="`cat /etc/inittab | grep '^[0-9]*:' | cut -f1 -d :`"
-			fi
-
 			[ -z "$SET_FONT_TERMINALS" ] && SET_FONT_TERMINALS="$DEVICES"
 
 			for cons in $SET_FONT_TERMINALS; do
 				/usr/bin/open -c $cons -s -w -- $CMD
-				if [ "$NUM_LOCK" ]; then
-					if [ $NUM_LOCK = "on" ]; then
-						/usr/bin/open -c $cons -s -w -- /usr/bin/setleds -D +num
-					else
-						/usr/bin/open -c $cons -s -w -- /usr/bin/setleds -D -num
-					fi
+				if is_yes "$NUM_LOCK"; then
+					/usr/bin/open -c $cons -s -w -- /usr/bin/setleds -D +num
+				else
+					/usr/bin/open -c $cons -s -w -- /usr/bin/setleds -D -num
 				fi
 			done
 
@@ -87,6 +82,11 @@
 			fi
 			/usr/bin/switchto $tty
 		else
+			if is_yes "$NUM_LOCK"; then
+				for cons in $DEVICES; do
+					/usr/bin/setleds -D +num < $VC_PATH$cons
+				done
+			fi
 		    	$CMD
 		fi
 		ok
-------------- następna część ---------
--- kbd.init.orig	2004-06-28 21:24:23.000000000 +0200
+++ kbd.init	2004-10-11 19:54:37.985849952 +0200
@@ -49,36 +49,31 @@
 		show "Loading console font and map"
 		busy
 
+		# check if devfs (workaround: -a option don't work at all)
+		if [ -d /dev/vc ]; then
+			DEVICES="`ls /dev/vc/* | sed 's|/dev/vc/||g'`"
+			pattern="s/\/dev\/vc\///g"
+			VC_PATH="/dev/vc/"
+		else
+			DEVICES="`cat /etc/inittab | grep '^[0-9]*:' | cut -f1 -d :`"
+			pattern="s/\/dev\/tty//g"
+			VC_PATH="/dev/tty"
+		fi
+
+		[ -z "$SET_FONT_TERMINALS" ] && SET_FONT_TERMINALS="$DEVICES"
+
 		# don't initialize on multiple terminals if we use fbset
 		# (assume that, in this case fb is loaded as a module)
 		if [ ! -z "$FB" ]; then
-			# Check for devfs (workaround: -a option don't work at all)
-			if [ -d /dev/vc ]; then
-				pattern="s/\/dev\/vc\///g"
-			else
-				pattern="s/\/dev\/tty//g"
-			fi
-
 			# save old tty number
 			tty=`/usr/bin/tty | sed $pattern`
 
-			# check if devfs (workaround: -a option don't work at all)
-			if [ -d /dev/vc ]; then
-				DEVICES="`ls /dev/vc/* | sed 's|/dev/vc/||g'`"
-			else
-				DEVICES="`cat /etc/inittab | grep '^[0-9]*:' | cut -f1 -d :`"
-			fi
-
-			[ -z "$SET_FONT_TERMINALS" ] && SET_FONT_TERMINALS="$DEVICES"
-
 			for cons in $SET_FONT_TERMINALS; do
 				/usr/bin/open -c $cons -s -w -- $CMD
-				if [ "$NUM_LOCK" ]; then
-					if [ $NUM_LOCK = "on" ]; then
-						/usr/bin/open -c $cons -s -w -- /usr/bin/setleds -D +num
-					else
-						/usr/bin/open -c $cons -s -w -- /usr/bin/setleds -D -num
-					fi
+				if is_yes "$NUM_LOCK"; then
+					/usr/bin/open -c $cons -s -w -- /usr/bin/setleds -D +num
+				else
+					/usr/bin/open -c $cons -s -w -- /usr/bin/setleds -D -num
 				fi
 			done
 
@@ -87,6 +82,11 @@
 			fi
 			/usr/bin/switchto $tty
 		else
+			if is_yes "$NUM_LOCK"; then
+				for cons in $SET_FONT_TERMINALS; do
+					/usr/bin/setleds -D +num < $VC_PATH$cons
+				done
+			fi
 		    	$CMD
 		fi
 		ok


Więcej informacji o liście dyskusyjnej pld-devel-pl