Skip site navigation (1)Skip section navigation (2)
Date:      4 Apr 2001 09:48:46 -0000
From:      nivit@libero.it (Nicola Vitale)
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   kern/26348: [pcvt] scon -s, page fault in HP mode
Message-ID:  <20010404094846.8845.qmail@numeria>

next in thread | raw e-mail | index | archive | help

>Number:         26348
>Category:       kern
>Synopsis:       [pcvt] scon -s, page fault in HP mode
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Apr 04 07:30:01 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Nicola Vitale
>Release:        FreeBSD 4.2-RELEASE i386
>Organization:
>Environment:

=====================
Kernel compiled with:
=====================
device 		vt0 	at isa?
options		XSERVER
options		FAT_CURSOR
options		PCVT_FREEBSD=210
options		PCVT_NSCREEN=12
options		PCVT_SCREENSAVER
options		PCVT_CTRL_ALT_DEL
options		PCVT_24LINESDEF
options		COLOR_KERNEL_BG=BG_BLACK
options		COLOR_KERNEL_FG=FG_RED

==============================================
System configuration files with these patches:
==============================================

--- rc.i386.orig	Mon Nov 20 13:03:04 2000
+++ rc.i386	Tue Feb 13 18:36:40 2001
@@ -6,0 +7,7 @@
+if [ -r /etc/defaults/rc.conf ]; then
+	. /etc/defaults/rc.conf
+	source_rc_confs
+elif [ -r /etc/rc.conf ]; then
+	. /etc/rc.conf
+  fi
+

================================
System configuration files added
================================

# /etc/rc.local
# pcvt configuration

if [ -r /etc/defaults/rc.conf ]; then
    . /etc/defaults/rc.conf
    source_rc_confs
elif [ -r /etc/rc.conf ]; then
    . /etc/rc.conf
fi

if [ -x /usr/sbin/ispcvt ]; then
    if /usr/sbin/ispcvt; then
	# loading fonts into vga

    	echo 'console driver type: pcvt'
    	if [ -x /usr/sbin/loadfont -a -x /usr/sbin/scon ]; then
      	    adaptor=`/usr/sbin/scon -a`
      	    if [ $adaptor = VGA ]; then
            echo 'loading 25 lines base font into character set 0'
            /usr/sbin/loadfont -c0 -f/usr/share/misc/pcvtfonts/vt220l.816
            echo 'loading 25 lines extension font into character set 1'
        		/usr/sbin/loadfont -c1 -f/usr/share/misc/pcvtfonts/vt220h.816
        		echo 'loading 28 lines base font into character set 2'
        		/usr/sbin/loadfont -c2 -f/usr/share/misc/pcvtfonts/vt220l.814
        		echo 'loading 28 lines extension font into character set 3'
        		/usr/sbin/loadfont -c3 -f/usr/share/misc/pcvtfonts/vt220h.814
        		echo 'loading 40 lines base font into character set 4'
        		/usr/sbin/loadfont -c4 -f/usr/share/misc/pcvtfonts/vt220l.810
        		echo 'loading 40 lines extension font into character set 5'
        		/usr/sbin/loadfont -c5 -f/usr/share/misc/pcvtfonts/vt220h.810
        		echo 'loading 50 lines base font into character set 6'
        		/usr/sbin/loadfont -c6 -f/usr/share/misc/pcvtfonts/vt220l.808
        		echo 'loading 50 lines extension font into character set 7'
        		/usr/sbin/loadfont -c7 -f/usr/share/misc/pcvtfonts/vt220h.808
      			elif [ $adaptor = EGA ]; then
        			echo 'loading 25 lines base font into character set 0'
        			/usr/sbin/loadfont -c0 -f/usr/share/misc/pcvtfonts/vt220l.814
        			echo 'loading 25 lines extension font into character set 1'
        			/usr/sbin/loadfont -c1 -f/usr/share/misc/pcvtfonts/vt220h.814
        			echo 'loading 35 lines base font into character set 2'
        			/usr/sbin/loadfont -c2 -f/usr/share/misc/pcvtfonts/vt220l.810
        			echo 'loading 35 lines extension font into character set 3'
        			/usr/sbin/loadfont -c3 -f/usr/share/misc/pcvtfonts/vt220h.810
			fi
    			fi

		# setting screen sizes and emulation
    		if [ -x /usr/sbin/scon ]; then
      			if [ $adaptor = VGA ]; then
        			size=-s28
        			echo 'switching to 28 lines and VT/HP-emulation'
      			elif [ $adaptor = EGA ]; then
        			size=-s25
        			echo 'switching to 25 lines and VT/HP-emulation'
      			else
        			size=
        			echo 'switching to VT/HP-emulation'
      			fi

		# get monitor type (mono/color)

      		monitor=`/usr/sbin/scon -m`

		# for all screens do

      for device in /dev/ttyv*
      do

# setup HP mode

        /usr/sbin/scon -d$device $size -H

# setup cursor size

        if [ X${set_cursor} = X"YES" -a -x /usr/sbin/cursor ]; then
          /usr/sbin/cursor -d$device -s$set_cur_start -e$set_cur_end
        fi

# if monochrome monitor, set color palette to use a higher intensity

        if [ $monitor = MONO ]; then
          if [ $adaptor = VGA ]; then
            /usr/sbin/scon -d$device -p8,60,60,60
          fi
        fi
      done

# switch to screen 0
      /usr/sbin/scon -c0

# set screensaver timeout to one minute
      /usr/sbin/scon -t360
    fi

# if desired, setup keyboard layout
    if [ X${set_keybd} = X"YES" -a -x /usr/sbin/kcon ]; then
      echo "switching to ${keybd_lang} keyboard layout"
      /usr/sbin/kcon -m ${keybd_layout}
    fi

# if desired, setup rate and delay keyboard values
    if [ X${set_keydr} = X"YES" -a -x /usr/sbin/kcon ]; then
      echo setting keyboard typematic rate = $set_keydr_rate and delay = $set_keydr_delay
      /usr/sbin/kcon -r $set_keydr_rate -d $set_keydr_delay
    fi

# if desired, start xdm on screen 8
    if [ X${xdm_start} = X"YES" -a -x /usr/X386/bin/xdm ]; then
      /usr/sbin/scon -c 7
      /usr/X386/bin/xdm
      sleep 5
      /usr/sbin/scon -c 0
    fi

# cp /etc/ttys corresponding to console driver
    if [ -f /etc/ttys.pcvt ]; then
      echo 'copying /etc/ttys.pcvt -> /etc/ttys'
      cp /etc/ttys.pcvt /etc/ttys
    fi

    if [ -f /etc/XF86Config.pcvt ]; then
      echo 'copying /etc/XF86Config.pcvt -> /etc/XF86Config'
      cp /etc/XF86Config.pcvt /etc/XF86Config
    fi
  else
    if [ -f /etc/ttys.pccons ]; then
      echo 'copying /etc/ttys.pccons -> /etc/ttys'
      cp /etc/ttys.pccons /etc/ttys
    fi
    
    if [ -f /etc/XF86Config.pccons ]; then
      echo 'copying /etc/XF86Config.pccons -> /etc/XF86Config'
      cp /etc/XF86Config.pccons /etc/XF86Config
    fi    
  fi
fi
#EOF /etc/rc.local

# /etc/ttys.pcvt
# $FreeBSD: src/etc/etc.i386/ttys,v 1.8 2000/01/29 12:18:03 obrien Exp $
#	@(#)ttys	5.1 (Berkeley) 4/17/89
#
# This file specifies various information about terminals on the system.
# It is used by several different programs.  Common entries for the
# various columns include:
#
# name  The name of the terminal device.
#
# getty The program to start running on the terminal.  Typically a
#       getty program, as the name implies.  Other common entries
#       include none, when no getty is needed, and xdm, to start the
#       X Window System.
#
# type The initial terminal type for this port.  For hardwired
#      terminal lines, this will contain the type of terminal used.
#      For virtual consoles, the correct type is cons25.  Other
#      common values include network for network connections on
#      pseudo-terminals, dialup for incoming modem ports, and unknown
#      when the terminal type cannot be predetermined.
#
# status Must be on or off.  If on, init will run the getty program on
#        the specified port.  If the word "secure" appears, this tty
#        allows root login.
#
# name	getty				type	status		comments
#
# If console is marked "insecure", then init will ask for the root password
# when going to single-user mode.
console	none				unknown	off secure
#
ttyv0	"/usr/libexec/getty Pc"		vt220	on  secure
# Virtual terminals
ttyv1	"/usr/libexec/getty Pc"		vt220	on  secure
ttyv2	"/usr/libexec/getty Pc"		vt220	on  secure
ttyv3	"/usr/libexec/getty Pc"		vt220	on  secure
ttyv4	"/usr/libexec/getty Pc"		vt220	on  secure
ttyv5	"/usr/libexec/getty Pc"		vt220	on  secure
ttyv6	"/usr/libexec/getty Pc"		vt220	on  secure
ttyv7	"/usr/libexec/getty Pc"		vt220	on  secure
ttyv8	"/usr/X11R6/bin/xdm -nodaemon"	xterm	off secure
ttyv9	"/usr/libexec/getty Pc"		vt220	on  secure
ttyva	"/usr/libexec/getty Pc"		vt220	on  secure
ttyvb	"/usr/libexec/getty Pc"		vt220	on  secure

# Serial terminals
# The 'dialup' keyword identifies dialin lines to login, fingerd etc.
ttyd0	"/usr/libexec/getty std.9600"	dialup	off secure
ttyd1	"/usr/libexec/getty std.9600"	dialup	off secure
ttyd2	"/usr/libexec/getty std.9600"	dialup	off secure
ttyd3	"/usr/libexec/getty std.9600"	dialup	off secure
# Pseudo terminals
ttyp0	none			network
ttyp1	none			network
ttyp2	none			network
ttyp3	none			network
ttyp4	none			network
ttyp5	none			network
ttyp6	none			network
ttyp7	none			network
ttyp8	none			network
ttyp9	none			network
ttypa	none			network
ttypb	none			network
ttypc	none			network
ttypd	none			network
ttype	none			network
ttypf	none			network
ttypg	none			network
ttyph	none			network
ttypi	none			network
ttypj	none			network
ttypk	none			network
ttypl	none			network
ttypm	none			network
ttypn	none			network
ttypo	none			network
ttypp	none			network
ttypq	none			network
ttypr	none			network
ttyps	none			network
ttypt	none			network
ttypu	none			network
ttypv	none			network
ttyq0	none			network
ttyq1	none			network
ttyq2	none			network
ttyq3	none			network
ttyq4	none			network
ttyq5	none			network
ttyq6	none			network
ttyq7	none			network
ttyq8	none			network
ttyq9	none			network
ttyqa	none			network
ttyqb	none			network
ttyqc	none			network
ttyqd	none			network
ttyqe	none			network
ttyqf	none			network
ttyqg	none			network
ttyqh	none			network
ttyqi	none			network
ttyqj	none			network
ttyqk	none			network
ttyql	none			network
ttyqm	none			network
ttyqn	none			network
ttyqo	none			network
ttyqp	none			network
ttyqq	none			network
ttyqr	none			network
ttyqs	none			network
ttyqt	none			network
ttyqu	none			network
ttyqv	none			network
ttyr0	none			network
ttyr1	none			network
ttyr2	none			network
ttyr3	none			network
ttyr4	none			network
ttyr5	none			network
ttyr6	none			network
ttyr7	none			network
ttyr8	none			network
ttyr9	none			network
ttyra	none			network
ttyrb	none			network
ttyrc	none			network
ttyrd	none			network
ttyre	none			network
ttyrf	none			network
ttyrg	none			network
ttyrh	none			network
ttyri	none			network
ttyrj	none			network
ttyrk	none			network
ttyrl	none			network
ttyrm	none			network
ttyrn	none			network
ttyro	none			network
ttyrp	none			network
ttyrq	none			network
ttyrr	none			network
ttyrs	none			network
ttyrt	none			network
ttyru	none			network
ttyrv	none			network
ttys0	none			network
ttys1	none			network
ttys2	none			network
ttys3	none			network
ttys4	none			network
ttys5	none			network
ttys6	none			network
ttys7	none			network
ttys8	none			network
ttys9	none			network
ttysa	none			network
ttysb	none			network
ttysc	none			network
ttysd	none			network
ttyse	none			network
ttysf	none			network
ttysg	none			network
ttysh	none			network
ttysi	none			network
ttysj	none			network
ttysk	none			network
ttysl	none			network
ttysm	none			network
ttysn	none			network
ttyso	none			network
ttysp	none			network
ttysq	none			network
ttysr	none			network
ttyss	none			network
ttyst	none			network
ttysu	none			network
ttysv	none			network
ttyP0	none			network
ttyP1	none			network
ttyP2	none			network
ttyP3	none			network
ttyP4	none			network
ttyP5	none			network
ttyP6	none			network
ttyP7	none			network
ttyP8	none			network
ttyP9	none			network
ttyPa	none			network
ttyPb	none			network
ttyPc	none			network
ttyPd	none			network
ttyPe	none			network
ttyPf	none			network
ttyPg	none			network
ttyPh	none			network
ttyPi	none			network
ttyPj	none			network
ttyPk	none			network
ttyPl	none			network
ttyPm	none			network
ttyPn	none			network
ttyPo	none			network
ttyPp	none			network
ttyPq	none			network
ttyPr	none			network
ttyPs	none			network
ttyPt	none			network
ttyPu	none			network
ttyPv	none			network
ttyQ0	none			network
ttyQ1	none			network
ttyQ2	none			network
ttyQ3	none			network
ttyQ4	none			network
ttyQ5	none			network
ttyQ6	none			network
ttyQ7	none			network
ttyQ8	none			network
ttyQ9	none			network
ttyQa	none			network
ttyQb	none			network
ttyQc	none			network
ttyQd	none			network
ttyQe	none			network
ttyQf	none			network
ttyQg	none			network
ttyQh	none			network
ttyQi	none			network
ttyQj	none			network
ttyQk	none			network
ttyQl	none			network
ttyQm	none			network
ttyQn	none			network
ttyQo	none			network
ttyQp	none			network
ttyQq	none			network
ttyQr	none			network
ttyQs	none			network
ttyQt	none			network
ttyQu	none			network
ttyQv	none			network
ttyR0	none			network
ttyR1	none			network
ttyR2	none			network
ttyR3	none			network
ttyR4	none			network
ttyR5	none			network
ttyR6	none			network
ttyR7	none			network
ttyR8	none			network
ttyR9	none			network
ttyRa	none			network
ttyRb	none			network
ttyRc	none			network
ttyRd	none			network
ttyRe	none			network
ttyRf	none			network
ttyRg	none			network
ttyRh	none			network
ttyRi	none			network
ttyRj	none			network
ttyRk	none			network
ttyRl	none			network
ttyRm	none			network
ttyRn	none			network
ttyRo	none			network
ttyRp	none			network
ttyRq	none			network
ttyRr	none			network
ttyRs	none			network
ttyRt	none			network
ttyRu	none			network
ttyRv	none			network
ttyS0	none			network
ttyS1	none			network
ttyS2	none			network
ttyS3	none			network
ttyS4	none			network
ttyS5	none			network
ttyS6	none			network
ttyS7	none			network
ttyS8	none			network
ttyS9	none			network
ttySa	none			network
ttySb	none			network
ttySc	none			network
ttySd	none			network
ttySe	none			network
ttySf	none			network
ttySg	none			network
ttySh	none			network
ttySi	none			network
ttySj	none			network
ttySk	none			network
ttySl	none			network
ttySm	none			network
ttySn	none			network
ttySo	none			network
ttySp	none			network
ttySq	none			network
ttySr	none			network
ttySs	none			network
ttySt	none			network
ttySu	none			network
ttySv	none			network
#EOF /etc/ttys.pcvt

>Description:

In HP mode, if you change the number of character lines on the screen,
system crashes with

Fatal trap 12: page fault while in kernel mode
...

(This does not happen in VT220 mode or under FreeBSD3.3-R)

>How-To-Repeat:

% scon -H
% scon -s 25
% scon -s 28

>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010404094846.8845.qmail>