%20%D0%B2%20%D0%BE%D0%B4%D0%B8%D0%BD%20%D1%84%D0%B0%D0%B9%D0%BB%20.txt%20%D0%B8%D0%B7%20%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8%20%D1%8F%D0%B4%D1%80%D0%B0%3F.png)
Я пытаюсь понять SATA Host-Device Communication и для этого я поместил много отладочных сообщений в код драйвера ядра. Теперь сообщений так много, что я не могу увидеть начальные сообщения перечисления устройств в журнале dmesg. Для того же я изменил переменную конфигурации CONFIG_LOG_BUF_SHIFT(=21), чтобы увеличить размер кольцевого буфера, из которого dmesg берет сообщение, но я все еще сталкиваюсь с той же проблемой.
Итак, есть ли какой-либо метод, с помощью которого я могу записать все сообщения dmesg с момента загрузки ядра в определенный файл?
Спасибо за помощь в продвижении.
решение1
Вы можете использовать:
cat /var/log/dmesg > file.txt
и используйте:
head /var/log/dmesg
если вы хотите увидеть первые строки dmesg.
См. также 'man head' для дополнительных спецификаций. Символ '>' перенаправляет вывод 'cat' в 'file.txt'
решение2
Есть команда dmesg
, которая выводит логи на stdout. Вы можете просто перенаправить stdout в текстовый файл.
dmesg > /path/to/dmesg.txt
Вы можете расширить это. Действительно полезным вариантом было бы добавить строку в ваш ~/.profile
файл (в вашем домашнем каталоге), которая добавляет вывод dmesg при входе в систему. Просто добавьте строку, которая говорит:
dmesg >> /path/to/dmesg.txt
Если вам нужны только первые несколько строк (0,000000 сообщений), вы можете передать их head
следующим образом.
Со стандартным выводом:
dmesg | head
или с head
уже сохраненным файлом .txt.
head /path/to/dmesg.txt
Вот и все, надеюсь, это поможет!
РЕДАКТИРОВАТЬ:Кстати, это содержит 0,000000 сообщений.