sysctl -a не включает log_buf_len

У меня та же проблема, есть довольно быстрое решение -нажмите Alt -F2, чтобы вызвать окно команды cinnamon, введите 'r' и нажмите Enter, это перезапускает cinnamon и размораживает его всякий раз, когда я подключаю второй экран, не закрывая все открытые программы a -la ctrl -alt -backspace

0
16.09.2019, 05:11
1 ответ

Значение log_buf_lenустанавливается раз и навсегда при настройке и сборке ядра ИЛИ при загрузке с параметромlog_buf_len=NNN:после этого изменить его нельзя. sysctlобычно относится к вещам, которые вы можете изменить в работающем ядре :, вероятно, поэтому log_buf_lenне включен.

Вы можете найти сконфигурированное значение LOG_BUF_SHIFT, просто просмотрев файл конфигурации ядра (, предполагая, что он доступен ). Например, в моей системе Fedora 29 я делаю

$ grep CONFIG_LOG_BUF_SHIFT /boot/config-5.2.11-100.fc29.x86_64 
CONFIG_LOG_BUF_SHIFT=18

log_buf_lenравно 2^18, тогда , ЕСЛИ не было установлено через командную строку загрузки.

Если это так (или если у вас нет доступа к конфигурационному файлу ), то единственный известный мне способ — это использовать gdbдля проверки работающего ядра, но я этого не сделал. делал это много лет, и я действительно не могу вспомнить все шаги -основная трудность заключается в том, чтобы получить отладочные символы для ядра, на котором вы работаете. Тем не менее, кто-то другой должен будет предоставить эти инструкции (или, возможно, предоставить более простой метод; например. можно написать модуль ядра, который выводит значение при загрузке -существует множество руководств по написанию простых модулей ядра, например. здесь:этот учебник восходит к временам ядра 2.6, и сегодня все может быть по-другому, но я (наивно? )не ждите, что все будет совсем по-другому ).

1
28.01.2020, 02:39

Теги

Похожие вопросы