Всегда стараюсь по максимуму оптимизировать систему, поэтому при сборке ядра все лишние устройства отключаю. А как быть, если подключили новое устройство и максимально быстро необходимо его запустить? Пересборка ядра - процесс небыстрый. Поэтому воспользуемся возможностью включать поддержку устройств как модуль.
В моем случае на удаленный сервер доустановили сетевую карту на чипсете RealTek 8139. После старта FreeBSD обнаружить ее не смогла, поскольку поддержка этого чипсета была отключена в конфигурационном файле ядра. В ядре GENERIC поддержка сетевых карт на этом чипсете выглядит так:
device rl # RealTek 8129/8139 |
Вывод ifconfig до манипуляций с подгрузкой модуля:
# ifconfig re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=389b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MAGIC> ether 70:71:bc:dc:94:38 media: Ethernet autoselect (1000baseT <full-duplex>) status: active ipfw0: flags=8801<UP,SIMPLEX,MULTICAST> metric 0 mtu 65536 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384 options=3<RXCSUM,TXCSUM> inet 127.0.0.1 netmask 0xff000000 vlan5: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=3<RXCSUM,TXCSUM> ether 70:71:bc:dc:94:38 inet 172.16.16.1 netmask 0xffffff00 broadcast 172.16.16.255 media: Ethernet autoselect (1000baseT <full-duplex>) status: active vlan: 5 parent interface: re0 |
Проверим, какие модули загружены:
# kldstat Id Refs Address Size Name 1 6 0xffffffff80100000 6d6290 kernel 2 1 0xffffffff80a12000 27adf pf.ko 3 1 0xffffffff80a3a000 a14 fire_saver.ko |
где
Воспользуемся командой kldload для подгрузки модуля (в моем случае необходима поддержка устройства rl):
# kldload /boot/kernel/if_rl.ko |
Проверяем, подгрузился ли модуль:
# kldstat
Id Refs Address Size Name
1 13 0xffffffff80100000 6d6290 kernel
2 1 0xffffffff80a12000 27adf pf.ko
3 1 0xffffffff80a3a000 a14 fire_saver.ko
4 1 0xffffffff80a3b000 4404 if_rl.ko |
Проверим состояние сетевых интерфейсов:
# ifconfig
re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=389b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MAGIC>
ether 70:71:bc:dc:94:38
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active
ipfw0: flags=8801<UP,SIMPLEX,MULTICAST> metric 0 mtu 65536
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=3<RXCSUM,TXCSUM>
inet 127.0.0.1 netmask 0xff000000
vlan5: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=3<RXCSUM,TXCSUM>
ether 70:71:bc:dc:94:38
inet 172.16.16.1 netmask 0xffffff00 broadcast 172.16.16.255
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active
vlan: 5 parent interface: re0
rl0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500 |
В результате имеем в наличии поддержку сетевой карты на чипсете RealTek 8139, которая определяется системой как устойство rl. Но каждый раз после перезагрузки сервера как-то неохота вручную "подгружать" модуль, поэтому добавим автоматическую загрузку модуля if_rl.ko при старте системы:
# echo 'if_rl_load="YES"' >> /boot/loader.conf |
Для оптимизации при следующей пересборке ядра можно будет включить поддержку устройства rl, а загрузку соответствующего модуля убрать из /boot/loader.conf.
Последние комментарии
21 неделя 6 дней назад
46 недель 17 часов назад
2 года 46 недель назад
3 года 16 недель назад
3 года 39 недель назад
4 года 2 недели назад
4 года 3 недели назад
4 года 6 недель назад
4 года 18 недель назад
4 года 22 недели назад