Взять информацию из пространства пользователя в ядре - PullRequest
0 голосов
/ 11 июня 2018

Я новичок в программировании ядра и вносил изменения в модуль памяти.Проблема в том, что когда я вставляю операторы printk(), при загрузке вывод получается очень многословным, а поскольку распечатки требуют больших вычислительных ресурсов, для загрузки требуется много времени.Я думал о создании переключателя для него, так как при загрузке он может попросить пользователя включить / выключить печать.

Я видел sscanf() или vsscanf(), но он принимает данные только отуже заданная строка.Я также знаю, что логически нельзя допускать такой вклад в вопросах безопасности, но есть ли способ убедиться, что это можно сделать?Или какой-либо другой подход, о котором я не знаю?

Редактировать: Для ясности я хочу включить / выключить печать по требованию после загрузки / загрузки ядра.

1 Ответ

0 голосов
/ 11 июня 2018

Если вам нужно настроить поведение ядра до его загрузки, у вас есть два простых способа:

  • Поскольку это проблема отладки, самый простой и менее навязчивый вариант -настройте два ядра (одно включено, другое отключено) и предоставьте пользователю возможность выбрать, какое из них загружать, например, GRUB.

  • Если вам действительно нужно использовать то же самое ядро ​​(например, некоторые пользователи)может понадобиться в какой-то момент, а вы не хотите или не можете распространять несколько версий), затем используйте параметр загрузочного ядра.Взгляните на макросы и документацию по адресу https://elixir.bootlin.com/linux/v4.17/source/include/linux/moduleparam.h

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...