[PATCH] kbd.init - drugie podejście
Przemysław Białek
lobo w chello.pl
Wto, 12 Paź 2004, 19:40:11 CEST
On Tue, Oct 12, 2004 at 07:16:15PM +0200, Jakub Bogusz wrote:
> On Tue, Oct 12, 2004 at 07:08:29PM +0200, Przemysław Białek wrote:
> > --- kbd.init.orig 2004-10-12 14:30:28.863893416 +0200
> > +++ kbd.init 2004-10-12 19:06:32.061904584 +0200
> > @@ -26,12 +26,9 @@
> > . /etc/sysconfig/console
> >
> > # Checking if we have framebuffer enabled
> > - if [ -f /proc/fb ]; then
> > - # /proc shows as files with size=0, this is workaround
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > - if cat /proc/fb | grep -q "."; then FB=yes; fi
> > - fi
> > -
> > - if [ -n "$SVGATEXTMODE" ]; then
> > + if [ -s /proc/fb ]; then
> > + FB=y
> > + elif [ -n "$SVGATEXTMODE" ]; then
>
> $ test -s /proc/fb ; echo $?
> 1
> $ cat /proc/fb
> 0 3Dfx Voodoo5
>
> inna rzecz, że niektóre fb pozostawiają pusty /proc/fb - np. pm2,
> przynajmniej tak było na jakichś starszych 2.4.x na alphie.
> Nie wiem jak teraz, bo sprzęt poszedł do szafy dawno temu.
>
Tutaj widziałem ten komentarz, ale go źle zrozumiałem :). Wydawało mi
się, że chodzi o to, że /proc/fb jest pusty, w przypadku, gdy jest
załadowany podsystem fb, ale nie ma żadnego aktywnego sterownika.
Już cofam ten kawałek. W załączeniu poprawiony patch. Dzieki.
--
Pozdrawiam
Przemysław Białek
-------------- następna część ---------
--- kbd.init.orig 2004-10-12 14:30:28.863893416 +0200
+++ kbd.init 2004-10-12 19:38:16.515383648 +0200
@@ -29,9 +29,7 @@
if [ -f /proc/fb ]; then
# /proc shows as files with size=0, this is workaround
if cat /proc/fb | grep -q "."; then FB=yes; fi
- fi
-
- if [ -n "$SVGATEXTMODE" ]; then
+ elif [ -n "$SVGATEXTMODE" ]; then
run_cmd "Setting Text Mode $SVGATEXTMODE" SVGATextMode $SVGATEXTMODE
fi
@@ -44,46 +42,35 @@
;;
esac
+ if [ -e /dev/.devfsd -a -d /dev/vc ]; then
+ DEVICES="`cd /dev/vc; ls`"
+ pattern="/dev/vc/"
+ else
+ DEVICES="`cat /etc/inittab | grep '^[0-9]*:' | cut -f1 -d :`"
+ pattern="/dev/tty"
+ fi
+
+ [ -z "$SET_FONT_TERMINALS" ] && SET_FONT_TERMINALS="$DEVICES"
+
if [ -n "$CONSOLEFONT" ]; then
CMD="setfont -m ${CONSOLEMAP:-trivial} $CONSOLEFONT"
show "Loading console font and map"
busy
# 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
-
+ # (assume that, in this case fb is initialized)
+ if [ -n "$FB" ]; then
# 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"
+ tty=`/usr/bin/tty`
+ tty=${tty##$pattern}
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
- fi
done
+ # restore old tty number
if [ "$tty" = "/dev/console" ]; then
- tty=1
+ tty=1
fi
/usr/bin/switchto $tty
else
@@ -96,6 +83,21 @@
fi
run_cmd "Enabling SAK sequence" /bin/sh -c "echo Control Alt keycode 101 = SAK | loadkeys"
+ if [ -n "$NUM_LOCK" ]; then
+ if is_yes "$NUM_LOCK"; then
+ show "Setting up numlock status (on)"
+ NUMLOCK_CMD="+num"
+ else
+ show "Setting up numlock status (off)"
+ NUMLOCK_CMD="-num"
+ fi
+ busy
+ for cons in $DEVICES; do
+ /usr/bin/setleds -D $NUMLOCK_CMD < "$pattern$cols"
+ done
+ ok
+ fi
+
power_option=""
if [ "$POWER_SAVE" ]; then
if [ "$BLANK_TIME" ]; then
Więcej informacji o liście dyskusyjnej pld-devel-pl