Я пытаюсь соляризовать консоль Linux.Я отследил соответствующий код до drivers/tty/vt/vt.c
и изменил определения цвета на соляризованный:
unsigned char default_red[] = {
- 0x00, 0xaa, 0x00, 0xaa, 0x00, 0xaa, 0x00, 0xaa,
- 0x55, 0xff, 0x55, 0xff, 0x55, 0xff, 0x55, 0xff
+ 0x07, 0xdc, 0x85, 0xb5, 0x26, 0xd3, 0x2a, 0xee,
+ 0x00, 0xcb, 0x58, 0x65, 0x83, 0x6c, 0x93, 0xfd
};
unsigned char default_grn[] = {
- 0x00, 0x00, 0xaa, 0x55, 0x00, 0x00, 0xaa, 0xaa,
- 0x55, 0x55, 0xff, 0xff, 0x55, 0x55, 0xff, 0xff
+ 0x36, 0x32, 0x99, 0x89, 0x8b, 0x36, 0xa1, 0xe8,
+ 0x2b, 0x4b, 0x6e, 0x7b, 0x94, 0x71, 0xa1, 0xf6
};
unsigned char default_blu[] = {
- 0x00, 0x00, 0x00, 0x00, 0xaa, 0xaa, 0xaa, 0xaa,
- 0x55, 0x55, 0x55, 0x55, 0xff, 0xff, 0xff, 0xff
+ 0x42, 0x2f, 0x00, 0x00, 0xd2, 0x82, 0x98, 0xd5,
+ 0x36, 0x16, 0x75, 0x83, 0x96, 0xc4, 0xa1, 0xe3
};
Можно также загрузить ядро с параметрами vm.default{red,grn,blu}
, установленными на эти значения.
В любом случае, консоль теперь выглядит как st с соляризованными цветами , но без патча no-bold-colors - все немного серовато.
В vt.c:1363
есть это:
const unsigned char color_table[] = { 0, 4, 2, 6, 1, 5, 3, 7,
8,12,10,14, 9,13,11,15 };
Поскольку патч no-bold-colors отключает жирные цвета, не добавляя к ним 8, а вторая строкаcolor_table
совпадает с первым +8, я попробовал это:
const unsigned char color_table[] = { 0, 4, 2, 6, 1, 5, 3, 7,
0, 4, 2, 6, 1, 5, 3, 7 };
Это выглядит намного лучше, но все же не так, как должно.Я экспортировал color_table
в качестве параметра модуля для быстрого тестирования других конфигураций.Но я действительно не хочу проверять 16!комбинации ...
Что на самом деле делает color_table
?Я не понимаю код, где он используется (например, строки 1760, 4292 в vt.c
).Разве это не просто неуклюжая таблица сопоставления?
Есть ли у вас какие-либо советы о том, как решить эту проблему?
Спасибо!
Кстати: я знаю, что есть решения для пользовательского пространства дляэто, но я хочу сделать это прямо в ядре.