Найдите модуль ядра, выводящий сообщение об ошибке

Обозначение \rунаследовано от C и означает возврат каретки. Ваш файл, скорее всего, имеет окончания строк CRLF в стиле DOS/Windows -. sedи xargsсчитают CR просто еще одним символом, и он передается. Хотя все остальное в той же строке, за пределами тегов <Name>...</Name>, также будет передано этим sed.

$ echo 'foo <Name>bar</Name><Num>123</Num>' | sed 's/<Name>\([^<]*\)<\/Name>/\1/'
foo bar<Num>123</Num>

Если вы таким образом выбираете поля из XML-файла, вы можете sedодновременно удалить все, что окружает строку:

$ echo 'foo <Name>bar</Name><Num>123</Num>' | sed 's/.*<Name>\([^<]*\)<\/Name>.*/\1/'
bar

Это также должно избавиться от всех CR в конце, так как они соответствуют .*.

0
11.09.2020, 10:30
1 ответ

Я ожидаю, что имена функций (или какие бы они ни были ), RbTreeInsertи CreateNewUid, появятся, поскольку -находится в двоичном файле модуля. Таким образом, если ваши модули несжаты,

grep -r RbTreeInsert /lib/modules/$(uname -r)

сообщит вам, какой модуль содержит сообщение, или, если они сжаты,

find /lib/modules/$(uname -r) -name \*.ko.xz -exec xzgrep RbTreeInsert {} +

(регулировка по мере необходимости в зависимости от используемого пресс-инструмента ).

Я уверен, что эти сообщения исходят не от самого ядра Linux или каких-либо модулей, поставляемых с ним.

3
18.03.2021, 23:05

Теги

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