Feature #13876

Updated by Toomas Soome 5 months ago

Add support for CSI 38;2 and CSI 48;2 sequences to use RGB colors. 

 We already do support 256 color mode (CSI 38;5;X m, and CSI 48;5;X m, where X is value from range 0-255). When we are using framebuffer mode with depth 15/16/24 or 32, we could use more colors. To achieve this, add support for CSI 38;2;r;g;b m and CSI 48;5;r;g;b m, with r, g and b being values from 0-255. 

 This implementation does cover both boot loader and kernel tem. The initial install does not implement support for tem default colors as RGB values (adding such support in certainly possible, but will also require update of early start kernel code). 

 This feature does require version up of visual_io protocol, which is used to send data from tem (console terminal emulator) to gfx_private (low level driver for console hardware), this is because the current visual_io interface is using 8-bit color values. 

 when CSI 38/48 is used with unsupported framebuffer mode, the sequences are ignored and the console color will not be changed. 

 Testing done: tested both loader and kernel console in text mode but also depths 8, 16 and 32. 
 Tested with intel gfx by myself and nvidia by Reginald Beardsley: 

 I just typed in the corrected string to a mate-term and got green text on a white background :-) I think it works. Now confirmed by killing X and rebooting to a text console. I got green text. "svcadm enable lightdm' starts X and brings up lightdm properly. In doing this I've exercised X and MATE a good bit. I think everything is OK.