Всегда стараюсь по максимуму оптимизировать систему, поэтому при сборке ядра все лишние устройства отключаю. А как быть, если подключили новое устройство и максимально быстро необходимо его запустить? Пересборка ядра - процесс небыстрый. Поэтому воспользуемся возможностью включать поддержку устройств как модуль.
В моем случае на удаленный сервер доустановили сетевую карту на чипсете 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.
Последние комментарии
1 год 15 недель назад
1 год 39 недель назад
3 года 40 недель назад
4 года 9 недель назад
4 года 32 недели назад
4 года 48 недель назад
4 года 48 недель назад
5 лет 4 часа назад
5 лет 11 недель назад
5 лет 15 недель назад