cursor bug
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
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