some console colors cannot be modified
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
usplash (Ubuntu) |
Invalid
|
Low
|
Unassigned |
Bug Description
Binary package hint: usplash
Ubuntu 8.10
Linux 2.6.27-14-generic #1 SMP Wed Apr 15 18:59:16 UTC 2009
linux-image-
usplash, Version 0.5.25
Bug also appears with 8.10 live CD (with 2.6.27-7 kernel).
After booting with usplash ("splash") and no frame buffer ("nofb"), some console text colors cannot be modified, nor do they blank when the screen blanks. If you've noticed that when the console blanks after the blank timeout (the default is usually ten minutes) some text remains visible, you have this bug.
To reproduce:
1. Download the three attached text files.
2. If necessary, reboot using the nofb and splash options.
3. Wait for system to fully boot up, then switch to a text console and log-in.
4. Load a 256-character font so that all sixteen colors can be used:
setfont Lat15-Fixed16
5. cat display_
6. The text colors should now be seen (15 digits on a black background).
7. cat set_red_
8. All text should now be pure red. If some aren't, you have this bug.
9. cat restore_
10. Text should now be back to its default colors.
While all colors remain on the screen, you may also set the blank timeout:
setterm -blank 1
Then wait a minute to see if all colors go blank. (If APM is available, this may or may not be a useful test. If your backlight also goes out you won't see anything anyway.)
This bug is caused by the fact that usplash does not restore the VGA Palette Registers. In fact, usplash doesn't restore any VGA registers, which also caused bug 392795. See LP:392795 for details. Years ago it did restore the registers, but that code was removed.
As I did for the other bug, I am including a couple of patches for consideration. Either one should fix the problem. One patch, "restore_
Note that either of these patches should also fix bug 392795. So if either of these is used, there is no need to install another patch to fix that bug.
Does anyone see any potential for usplash and the kernel trying to access the VGA registers at the same time? Do we need to add any handshaking to prevent conflicts? I've not seen any problems of that sort, but it would be good if someone who knows this code better than I looked it over for that sort of thing.
When testing the patch, don't forget to update the appropriate initrd.img... file (as I have forgotten more times than I'd like to admit!).
Are you sure this is solely a usplash issue? I can reproduce it even when booting with nofb and without the splash option by simply doing:
(1) boot into a kernel with "nofb" (splash, quiet disabled) consolefonts/ Arabic- Fixed15. psf.gz
(2) switch to the console (alt-f1) and login
(3) setfont /usr/share/
(4) showconsolefont
(5) setterm -blank 1
and then wait 1 minute, as not all of the screen blanks. I have reproduced this behavior on hardy, intrepid, and karmic's 2.6.30 and 2.6.31 kernels.