[Bug 907446] Re: Corrupt ttys, splash; Console colour dummy device

TJ 907446 at bugs.launchpad.net
Fri Dec 23 23:40:54 UTC 2011


I've been analysing the kernel's start-up code that sets the console.

The selection of the dummy console occurs in
drivers/video/console/vgacon.c::vgacon_startup()

There is a code label "novga" which results in the VGA console driver
not being used:

	if (screen_info.orig_video_isVGA == VIDEO_TYPE_VLFB ||
	    screen_info.orig_video_isVGA == VIDEO_TYPE_EFI) {
	      no_vga:
#ifdef CONFIG_DUMMY_CONSOLE
		conswitchp = &dummy_con;
		return conswitchp->con_startup();
#else
		return NULL;
#endif

The "novga" label is also reached from later code that checks
boot_params.screen_info has been initialized, and then whether the
screen is in a VGA16 mode not handled by VGACON.

	/* boot_params.screen_info initialized? */
	if ((screen_info.orig_video_mode  == 0) &&
	    (screen_info.orig_video_lines == 0) &&
	    (screen_info.orig_video_cols  == 0))
		goto no_vga;

	/* VGA16 modes are not handled by VGACON */
	if ((screen_info.orig_video_mode == 0x0D) ||	/* 320x200/4 */
	    (screen_info.orig_video_mode == 0x0E) ||	/* 640x200/4 */
	    (screen_info.orig_video_mode == 0x10) ||	/* 640x350/4 */
	    (screen_info.orig_video_mode == 0x12) ||	/* 640x480/4 */
	    (screen_info.orig_video_mode == 0x6A))	/* 800x600/4 (VESA) */
		goto no_vga;


For a while I was chasing a presumption that arch/x86/kernel/setup.c::setup_arch() was enabling EFI support with

efi_enabled=1;

After a lot of analysis of  boot_params.efi_info I arrived at the
"novga" code and realised it can also be triggered by the boot-loader
leaving the display in a graphic mode.

I then investigated the GRUB configuration and discovered the
GRUB_GFXPAYLOAD_LINUX option, described in the blueprint

https://blueprints.launchpad.net/ubuntu/+spec/packageselection-
foundations-n-grub2-boot-framebuffer

The bug can be fixed in "/etc/default/grub" by adding

GRUB_GFXPAYLOAD_LINUX=text

However, this is a local workaround. The blueprint refers to the file
"/boot/grub/gfxblacklist" which is generated by  a script in the package
"grub-gfxpayload-lists". The file contains PCI IDs of video devices that
GRUB should not leave in graphics mode. These are declared in
"/usr/share/grub-gfxpayload-lists/blacklist/"

The attached patch adds a new file "20_intel" to the blacklisted devices
in the package.

If adding it manually to a system, place it in the "/usr/share/grub-
gfxpayload-lists/blacklist/" directory.

To add the new device to "/boot/grub/gfxblacklist.txt" run:

sudo update-grub-gfxpayload

** Patch added: "Blacklist Intel 815 devices from GRUB GFX handover"
   https://bugs.launchpad.net/ubuntu/+source/linux/+bug/907446/+attachment/2645278/+files/0001-LP907446-corrupt-consoles-on-Intel-i815-device.patch

** Also affects: grub-gfxpayload-lists (Ubuntu)
   Importance: Undecided
       Status: New

** Changed in: grub-gfxpayload-lists (Ubuntu)
       Status: New => Confirmed

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to grub-gfxpayload-lists in
Ubuntu.
https://bugs.launchpad.net/bugs/907446

Title:
  Corrupt ttys, splash; Console colour dummy device

Status in “grub-gfxpayload-lists” package in Ubuntu:
  Confirmed
Status in “linux” package in Ubuntu:
  Confirmed

Bug description:
  Sony PCG-SRX51P, with Intel 810 graphics.

  A clean installation of 11.10 32-bit, wiping out the previously
  correctly working Xubuntu 10.04 installation.

  The boot splash screen is corrupted (appears to be text-mode but with
  the >128 ASCII-code box drawing characters). Once at the X/Unity log-
  in prompt switching to any of the the virtual consoles (tty1-6) the
  consoles are also corrupted and impossible to read.

  The best description of what is seen is that spaces are spaces, but
  characters are drawn outline-shadowed (like HTML inset/outset table
  borders) and drawn mirrored through the Y axis. E.g. a "b" looks like
  a "d".  Making out the characters is extremely difficult unless you
  know what to expect, such as when typing username at the console log-
  in prompt.

  I noticed the kernel reports:

  Console: colour dummy console 80x25

  instead of what I'd expect:

  Console: colour VGA+ 80x25

  Also, it seems the efifb driver creates a framebuffer device later
  although I'm not sure if it is responsible for the corrupted display.

  More likely is that GRUB leaves the video chipset in an unexpected
  mode.

  lspci -nn
  00:00.0 Host bridge [0600]: Intel Corporation 82815 815 Chipset Host Bridge and Memory Controller Hub [8086:1130] (rev 11)
  00:02.0 VGA compatible controller [0300]: Intel Corporation 82815 Chipset Graphics Controller (CGC) [8086:1132] (rev 11)

  ProblemType: Bug
  DistroRelease: Ubuntu 11.10
  Package: linux-image-3.0.0-12-generic 3.0.0-12.20
  ProcVersionSignature: Ubuntu 3.0.0-12.20-generic 3.0.4
  Uname: Linux 3.0.0-12-generic i686
  AlsaVersion: Advanced Linux Sound Architecture Driver Version 1.0.24.
  AplayDevices:
   **** List of PLAYBACK Hardware Devices ****
   card 0: I82801BAICH2 [Intel 82801BA-ICH2], device 0: Intel ICH [Intel 82801BA-ICH2]
     Subdevices: 1/1
     Subdevice #0: subdevice #0
  ApportVersion: 1.23-0ubuntu4
  Architecture: i386
  AudioDevicesInUse:
   USER        PID ACCESS COMMAND
   /dev/snd/controlC0:  tj         1618 F.... pulseaudio
  CRDA: Error: [Errno 2] No such file or directory
  Card0.Amixer.info:
   Card hw:0 'I82801BAICH2'/'Intel 82801BA-ICH2 with YMF753 at irq 9'
     Mixer name	: 'Yamaha YMF753'
     Components	: 'AC97a:594d4803'
     Controls      : 41
     Simple ctrls  : 28
  Date: Wed Dec 21 17:02:46 2011
  EcryptfsInUse: Yes
  HibernationDevice: RESUME=UUID=be8937e3-e911-452c-b8ce-353b831a7c2c
  InstallationMedia: Ubuntu 11.10 "Oneiric Ocelot" - Release i386 (20111012)
  Lsusb:
   Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
   Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
   Bus 002 Device 002: ID 054c:0069 Sony Corp. Memorystick MSC-U03 Reader
   Bus 002 Device 003: ID 044e:3002 Alps Electric Co., Ltd Bluetooth Device
  MachineType: Sony Corporation PCG-SRX51P_B(GB)
  PccardctlIdent:
   Socket 0:
     no product info available
  PccardctlStatus:
   Socket 0:
     no card
  ProcEnviron:
   LANGUAGE=en_GB:en
   PATH=(custom, no user)
   LANG=en_GB.UTF-8
   SHELL=/bin/bash
  ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.0.0-12-generic root=UUID=ca308bfa-d389-4d9e-92a7-2dd4b55cba2e ro quiet splash vt.handoff=7 video=efifb:off
  RelatedPackageVersions:
   linux-restricted-modules-3.0.0-12-generic N/A
   linux-backports-modules-3.0.0-12-generic  N/A
   linux-firmware                            1.60
  SourcePackage: linux
  UpgradeStatus: No upgrade log present (probably fresh install)
  dmi.bios.date: 01/24/03
  dmi.bios.vendor: Phoenix Technologies LTD
  dmi.bios.version: R0232U2
  dmi.chassis.asset.tag: 463M3A3471383200000000000000
  dmi.chassis.type: 10
  dmi.chassis.vendor: Sony Corporation
  dmi.chassis.version: N/A
  dmi.modalias: dmi:bvnPhoenixTechnologiesLTD:bvrR0232U2:bd01/24/03:svnSonyCorporation:pnPCG-SRX51P_B(GB):pvr01:cvnSonyCorporation:ct10:cvrN/A:
  dmi.product.name: PCG-SRX51P_B(GB)
  dmi.product.version: 01
  dmi.sys.vendor: Sony Corporation

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/grub-gfxpayload-lists/+bug/907446/+subscriptions




More information about the foundations-bugs mailing list