Skip to contentSkip to conversation

cursor bug

DISCUSSION Gerd Knorr 2 participants 2 messages Nov 8, 2004 – Nov 9, 2004 Framebuffer layer

lore
Share & tools
lore

Gerd Knorr

author
#0 lore raw

Hi,

There is annonying cursor bug in recent kernels (started in 2.6.10-rc1 IIRC). There kernel seems not to keep track of the cursor state correctly when switching virtual terminals. Here is how to reproduce it:

(1) boot with vesafb (thats what I'm using, maybe it shows on other framebuffers and/or vgacon as well).
(2) login into one terminal, then type "echo -ne '\033[?17;15;239c'". You should have a nice, yellow and *not* blinking cursor block. That is what I have in my .profile because I can't stand the blinking cursors.
(3) Switch to another terminal. The cursor goes into blinking underscore mode now (i.e. the default cursor).
(4) Switch back to the first terminal. Now you have a yellow block with the last two pixel lines (i.e. the underscore) blinking.

Oh no. Please fix that. Thank you.

Gerd

Signature · 8 lines
#define printk(args...) fprintf(stderr, ## args)


-------------------------------------------------------
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click
#1 lore raw
Quoted 18 lines · Gerd Knorr

Hi,

There is annonying cursor bug in recent kernels (started in 2.6.10-rc1 IIRC). There kernel seems not to keep track of the cursor state correctly when switching virtual terminals. Here is how to reproduce it:

(1) boot with vesafb (thats what I'm using, maybe it shows on other framebuffers and/or vgacon as well).
(2) login into one terminal, then type "echo -ne '\033[?17;15;239c'". You should have a nice, yellow and *not* blinking cursor block. That is what I have in my .profile because I can't stand the blinking cursors.
(3) Switch to another terminal. The cursor goes into blinking underscore mode now (i.e. the default cursor).
(4) Switch back to the first terminal. Now you have a yellow block with the last two pixel lines (i.e. the underscore) blinking.

Quoted 1 line

Oh no. Please fix that. Thank you.

Hmn, this bug has been present since the beginning of 2.6, probably even 2.5, hidden, but got exposed during the cursor cleanup. The main problem is that fbcon is not checking if the vt is using its own softcursor, and this has been the case since the fb architecture was rewritten.

We fix this by checking if vt.c is using its softcursor (vc->vc_cursor_type & 0x10), and if true, disable fbcon cursor.

I'll submit a patch to Andrew.

Tony