Понимание связи между файлом конфигурации ядра FreeBSD и реальным устройством

Вы могли бы рассмотреть/dev/kmsg для ранних сообщений запуска. Они будут сохранены в кольцевом буфере в ядре, пока пространство пользователя (в значительной степени всех дистрибутивов) не выведет его в системный журнал после того, как файловая система сделана перезаписываемой, и дисковые проверки работали. Это будет работать, пока Ваш буфер ядра является более крупным, чем размер сообщений, которые происходят, прежде чем регистратор запущен. Размер буфера журнала ядра настраивается во время компиляции. Необходимо смочь перенаправить вещи в/dev/kmsg с типичными сценариями оболочки.

Что касается перенаправления stdout произвольных программ к системному журналу, существуют утилиты там, которые читают STDIN и перенаправление к системному журналу, и затем Вы просто передаете вывод по каналу демона к утилите. Вот тот, который я нашел полезными: http://b0llix.net/perp/site.cgi?page=sissylog.8

Однако существует много людей, делающих много умных вещей с входом. Так как Вы кажетесь интересующимися предметом, Вы могли бы интересоваться чтением раздела "The syslog design is flawed form the start" из http://www.skarnet.org/software/s6/s6-log.html

3
30.07.2015, 07:57
2 ответа

Имя ядра определяется строкой identity в файле конфигурации ядра. Переменная KERNCONF определяет, какой файл kernelconf использовать.

Раздел «Проверка и подключение устройства» в руководстве по архитектуре FreeBSD описывает, как определяется устройство USB: https://www.freebsd.org/doc/en_US.ISO8859-1/ books / arch-handbook / usb-devprobe.html

0
27.01.2020, 21:41

Текстовый файл определяет только то, что встроено в ядро; то, что вы туда не поместили, в конечном итоге будет скомпилировано как загружаемые модули ядра.

И да, во время загрузки - или после загрузки модуля ядра - запускается процедура "probe" драйвера; эта процедура отвечает за выяснение того, есть ли аппаратное обеспечение, поддерживаемое драйвером. Если это так, будет запущена функция драйвера "attach"; эта функция фактически присоединяет экземпляр драйвера к устройству. FreeBSD обычно не пытается автоматически загружать модули ядра, поэтому если драйвер не встроен в ядро, вы должны либо загрузить его вручную (kldload), либо использовать rc скрипт для загрузки (используя rc переменную kld_list), либо использовать bootloader для предварительной загрузки (редактируя /boot/loader.conf).

0
27.01.2020, 21:41

Теги

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