# 12.0-RELEASE and the unknown igb0 device



## olafz (Feb 6, 2019)

Same story, different machine. I am still investigating the _working_ way to upgrade from 11.2-RELEASE to 12.0-RELEASE.

So far, so good. The GENERIC kernel says:

```
igb0: <Intel(R) PRO/1000 PCI-Express Network Driver> port 0x1060-0x107f mem 0x80000000-0x8001ffff,0x80040000-0x80043fff irq 20 at device 20.0 on pci0
igb0: attach_pre capping queues at 8
igb0: using 1024 tx descriptors and 1024 rx descriptors
igb0: msix_init qsets capped at 8
igb0: pxm cpus: 8 queue msgs: 9 admincnt: 1
igb0: using 8 rx queues 8 tx queues
igb0: Using MSIX interrupts with 9 vectors
igb0: allocated for 8 tx_queues
igb0: allocated for 8 rx_queues
igb0: Ethernet address: 00:07:cb:04:01:14
```

So I have added `device          igb` to my custom kernel configuration, but building fails:

```
--------------------------------------------------------------
>> stage 1: configuring the kernel
--------------------------------------------------------------
cd /usr/src/sys/amd64/conf;  PATH=/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/sbin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/bin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/bin:/usr/obj/usr/src/amd64.amd64/tmp/usr/sbin:/usr/obj/usr/src/amd64.amd64/tmp/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin  config  -d /usr/obj/usr/src/amd64.amd64/sys/ANNIE  -I '/usr/src/sys/amd64/conf' '/usr/src/sys/amd64/conf/ANNIE'
config: Error: device "igb" is unknown
config: 1 errors
*** Error code 1
```

With "device em", the kernel builds fine, but the host is offline after booting it.

Before posting another bug report like e.g. PR 235107 I am now asking here.


----------



## olafz (Feb 6, 2019)

Before somebody mentions this: yes, I have these lines in src.conf():

```
ifconfig_igb0="inet 163.172.218.133 netmask 255.255.255.0"
ifconfig_em0="inet 163.172.218.133 netmask 255.255.255.0"
```


----------



## SirDice (Feb 6, 2019)

olafz said:


> yes, I have these lines in src.conf():


I hope you meant rc.conf(5) because it really doesn't belong in /etc/src.conf. 

The driver is em(4) but the interfaces should still be detected as igbN.


----------



## olafz (Feb 6, 2019)

Thank you! Yes, it was rc.conf of course. Anyway, with em() the system was offline. But that could be another issue. I never had such trouble when upgrading to the next STABLE release.


----------



## SirDice (Feb 6, 2019)

Well, I know they work, or at least mine do:

```
dice@hosaka:~ % ifconfig igb0
igb0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 9000
        options=e527bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,WOL_MAGIC,VLAN_HWFILTER,VLAN_HWTSO,RXCSUM_IPV6,TXCSUM_IPV6>
        ether 00:25:90:f1:58:38
        inet 192.168.10.180 netmask 0xffffff00 broadcast 192.168.10.255
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
dice@hosaka:~ % uname -a
FreeBSD hosaka.dicelan.home 12.0-STABLE FreeBSD 12.0-STABLE r343720 HOSAKA  amd64
```

It might be offline, but have you checked if the interface does exist? It may just be unconfigured and not coming up due to that.

When moving from one -STABLE to another it often helps to redo your kernel config, options  change all the time, new stuff gets added too. Start with the basic GENERIC and take out the things you're certain you don't need. Then compare it with your previous -STABLE config. The only notable difference for me was the em/igb issue, and perhaps netmap(4).


----------

