Эта проблема решена в IPv6 с помощью SLAAC (Автоконфигурация адресов без сохранения состояния ), но я предполагаю, что вы ищете решение для IPv4.
К сожалению, SLAAC недоступен для IPv4. Microsoft сделал что-то похожее (APIPA, Automatic Private IP Addressing ), но если маршрутизатор не настроен на эти адреса, это бесполезно.
В любом случае, ваша реальная проблема заключается в том, что вы хотите использовать сети, которые плохо настроены и/или имеют некоторые неисправности. Протокола на это нет.
Все в порядке, теперь монстры ушли. Это устройство шины PCI -. Устройства PCI — наши друзья.
$ lspci | grep SMBus
00:1f.3 SMBus: Intel Corporation Wildcat Point-LP SMBus Controller (rev 03)
Назначением адресов для устройств PCI управляет программное обеспечение. Устройству не нужно прослушивать фиксированные порты ввода-вывода или адреса памяти.
Поэтому она не будет включена случайно. Стандарт говорит, что IRQ устройства должен быть специально включен (, и существует стандартный способ сделать это ).
https://en.wikipedia.org/wiki/Peripheral_Component_Interconnect#Auto_configuration
Существует предостережение, которое рекомендует НЕ загружать драйвер для SMBus. Устройство SMBus может управляться прошивкой ACPI(AML). В этом случае ядро не должно управлять им. Предполагается, что ACPI объявляет ресурсы устройства SMBus, чтобы ядро могло этого избежать. Я не уверен, может ли ACPI ошибиться или нет. Я думаю, что раньше ядро ошибалось, но теперь оно распознает это.
i801_smbus 0000:00:1f.3: PCI INT B -> GSI 21 (level, low) -> IRQ 21
ACPI: I/O resource 0000:00:1f.3 [0x400-0x41f] conflicts with ACPI region SMRG [0x400-0x40f]
ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver