FreeBSD 4.X теперь гораздо более PnP-центрична, что отражается на некоторых устройствах PnP (к примеру, звуковых адаптерах и внутренних модемах), перестающих работать, хотя они функционировали в системе FreeBSD 3.X.
Причины такого поведения объясняются в следующем сообщении электронной почты, опубликованном в Питером Уэммом (Peter Wemm) в ответ на вопрос о внутреннем модеме, который перестал распознаваться после обновления до FreeBSD 4.X (комментарии внутри [] были добавлены для пояснения контекста послания.
Замечание: Содержание этой цитаты по сравнению с оригинальным текстом было изменено.
BIOS, поддерживающая PNP, предварительно отводит и оставляет ему [модему] место в адресном пространстве портов, так что [в 3.X] процедура обнаружения в старом стиле ISA ``находит'' его здесь.
В 4.0 код для работы с ISA гораздо более PnP-центричен. [В 3.X] было возможно при распознавании ISA найти ``беспризорное'' устройство и затем по идентификатору PNP-устройства произвести поиск и получить ошибку из-за конфликта ресурсов. Поэтому для предотвращения повторной процедуры распознавания в нём сначала выключаются все управляемые адаптеры. Это также означает, что для поддерживаемого оборудования PnP нужно знать их PnP-идентификаторы. Имеются планы на обеспечение возможности настройки этого со стороны пользователя.
Чтобы заставить устройство работать снова, требуется определить его PnP-идентификатор и добавить его в список, который используется процедурой распознавания ISA для идентификации устройств PnP. Этот идентификатор можно получить при помощи программы pnpinfo(8), найдя устройство в её выдаче, вот, например, вывод команды pnpinfo(8) в случае внутреннего модема:
# pnpinfo
Checking for Plug-n-Play devices...
Card assigned CSN #1 Vendor ID PMC2430 (0x3024a341), Serial Number 0xffffffff PnP Version 1.0, Vendor Version 0 Device Description: Pace 56 Voice Internal Plug & Play Modem
Logical Device ID: PMC2430 0x3024a341 #0 Device supports I/O Range Check TAG Start DF I/O Range 0x3f8 .. 0x3f8, alignment 0x8, len 0x8 [16-bit addr] IRQ: 4 - only one type (true/edge)