Dual Boot FreeBSD - Linux: conflict with the Ethernet adapter

At least I got the wifi working...
Your ifconfig output tells another story...

media: Ethernet autoselect (none)

There isn't even a working link on that interface after you restarted netif (for what??)

Your tcpdump output shows that you don't have *any* incoming traffic on that interface the problem seems to be further down the stack...
Have you tried a different cable? What switch are you using?

Can you verify that you actually get a working link (i.e. "status: active") on that interface at all?
What media type is negotiated when you have a working link? Check the ifconfig output from your linux install. If the link is anything but 1000baseT /w full duplex, try another cable and/or switchport and/or switch.

If other devices/NICs work with that cable and on that switchport; dump that NIC and just get one with an intel chipset (basically any pro/1000 will 'just work'™)
 
Your ifconfig output tells another story...

I got the wifi working with both networkmgr and wifimgr... 🤷‍♂️

There isn't even a working link on that interface after you restarted netif (for what??)

🤷‍♂️

Your tcpdump output shows that you don't have *any* incoming traffic on that interface the problem seems to be further down the stack...
Have you tried a different cable? What switch are you using?

No I haven't, I think that is only cable I have enough long to reach my desktop. It comes directly from the Comcast/Arris Modem-router-wifi...

Can you verify that you actually get a working link (i.e. "status: active") on that interface at all?
What media type is negotiated when you have a working link? Check the ifconfig output from your linux install. If the link is anything but 1000baseT /w full duplex, try another cable and/or switchport and/or switch.

I'll check later what media type Linux is using.
If other devices/NICs work with that cable and on that switchport; dump that NIC and just get one with an intel chipset (basically any pro/1000 will 'just work'™)

This is a laptop, it has a Thunderbolt port though; anyway a cold boot makes the NIC negotiates properly the DHCP lease.

I am tempted to open a bug on the Linux side and saying the driver doesn't reset the card properly making impossible to get a DHCP address on FreeBSD... 🤔
 
I got the wifi working with both networkmgr and wifimgr... 🤷‍♂️
The previous output of ifconfig you posted didn't show a working configuration for wlan0 (ip 0.0.0.0 and no carrier)


anyway a cold boot makes the NIC negotiates properly the DHCP lease.
Can you show us such a working state? Given that there was not a single incoming packet in your tcpdump, not even ARP or multicast packages that usually appear quite frequent on every LAN, makes it hard to believe that there is even a link present...

Again: make 100% sure your physical link is OK. Plug your cable out/in several (10) times and if you don't get a working link ("status: active" and "1000baseT <full-duplex>" media) within ~3 seconds every time, then replace that cable! Way too often there are hours wasted troubleshooting services or a network when the culprit is just a wonky cable with a bad connection on 1 or 2 wires...

If - and ONLY if - your link is stable and reliable it makes sense to diagnose anything further up the stack (like DHCP). If you confirmed your link is OK, but you don't get a DHCP lease, try a static IP configuration and always monitor what is going in and out of that interface (tcpdump is your friend!)
 
The previous output of ifconfig you posted didn't show a working configuration for wlan0 (ip 0.0.0.0 and no carrier)

Can you show us such a working state? Given that there was not a single incoming packet in your tcpdump, not even ARP or multicast packages that usually appear quite frequent on every LAN, makes it hard to believe that there is even a link present...

Again: make 100% sure your physical link is OK. Plug your cable out/in several (10) times and if you don't get a working link ("status: active" and "1000baseT <full-duplex>" media) within ~3 seconds every time, then replace that cable! Way too often there are hours wasted troubleshooting services or a network when the culprit is just a wonky cable with a bad connection on 1 or 2 wires...

If - and ONLY if - your link is stable and reliable it makes sense to diagnose anything further up the stack (like DHCP). If you confirmed your link is OK, but you don't get a DHCP lease, try a static IP configuration and always monitor what is going in and out of that interface (tcpdump is your friend!)

Sure I will, however right before the logs I posted from FreeBSD through the wifi 😁 , I was setting up Zoom on Linux and the connection was working fine...

I am pretty sure I bought any gigabite ethernet cable in a brick-and-mortar store ten years ago, if you have any recommendation to buy a good cable please let me know, thanks!

TGL
 
Sure I will, however right before the logs I posted from FreeBSD through the wifi 😁 , I was setting up Zoom on Linux and the connection was working fine...
We don't doubt that you're telling the truth. We are merely asserting that the information you provide does not align with what you're saying. This makes it difficult to be helpful in any meaningful way.
 
We don't doubt that you're telling the truth. We are merely asserting that the information you provide does not align with what you're saying. This makes it difficult to be helpful in any meaningful way.

Maybe wpa_supplicant and ifconfig don't talk to each other... 🤷‍♂️
 
Linux configuration:

Code:
uname -a && lsb_release -a
Linux dad-devuan 5.10.0-10-amd64 #1 SMP Debian 5.10.84-1 (2021-12-08) x86_64 GNU/Linux
No LSB modules are available.
Distributor ID:    Devuan
Description:    Devuan GNU/Linux 4 (chimaera)
Release:    4
Codename:    chimaera

Code:
$ lspci |grep -i eth
3b:00.0 Ethernet controller: Qualcomm Atheros Killer E2400 Gigabit Ethernet Controller (rev 10)

Code:
$ sudo ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 80:fa:5b:28:36:69 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.113/24 brd 10.0.0.255 scope global dynamic noprefixroute eth0
       valid_lft 172749sec preferred_lft 172749sec
    inet6 2601:586:4a00:2050::17fb/128 scope global dynamic noprefixroute
       valid_lft 604749sec preferred_lft 604749sec
    inet6 fe80::82fa:5bff:fe28:3669/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether de:7b:b1:d0:0f:a7 brd ff:ff:ff:ff:ff:ff permaddr a4:34:d9:64:f8:ca

Code:
sudo ethtool eth0
Settings for eth0:
    Supported ports: [ TP ]
    Supported link modes:   10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
                            1000baseT/Full
    Supported pause frame use: Symmetric Receive-only
    Supports auto-negotiation: Yes
    Supported FEC modes: Not reported
    Advertised link modes:  10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
                            1000baseT/Full
    Advertised pause frame use: Symmetric
    Advertised auto-negotiation: Yes
    Advertised FEC modes: Not reported
    Speed: 1000Mb/s
    Duplex: Full
    Auto-negotiation: on
    Port: Twisted Pair
    PHYAD: 0
    Transceiver: internal
    MDI-X: Unknown
        Current message level: 0x000060e4 (24804)
                               link ifup rx_err tx_err hw wol
    Link detected: yes

Anyway couldn't understand what kind of "media" the NIC is using on Linux.
 
Once again I reboot into FreeBSD after Linux and DHCP didn't get the IP:

Code:
ifconfig
alc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
    options=c319a<TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MCAST,WOL_MAGIC,VLAN_HWTSO,LINKSTATE>
    ether 80:fa:5b:28:36:69
    inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
    media: Ethernet autoselect (1000baseT <full-duplex>)
    status: active
    nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
    options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
    inet6 ::1 prefixlen 128
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
    inet 127.0.0.1 netmask 0xff000000
    groups: lo
    nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
wlan0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
    ether a4:34:d9:64:f8:ca
    groups: wlan
    ssid "" channel 1 (2412 MHz 11b)
    regdomain FCC country US authmode OPEN privacy OFF txpower 30
    bmiss 10 scanvalid 60 wme bintval 0
    parent interface: iwm0
    media: IEEE 802.11 Wireless Ethernet autoselect (autoselect)
    status: no carrier
    nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

I raised down the ethernet adapter and raised up the wifi one:

Code:
doas ifconfig alc0 down
doas ifconfig wlan0 up

Used the wifi to connect to my router, this time it is showed up correctly:

Code:
ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
    ether a4:34:d9:64:f8:ca
    inet 10.0.0.87 netmask 0xffffff00 broadcast 10.0.0.255
    groups: wlan
    ssid comcast-wireless channel 11 (2462 MHz 11g) bssid dc:fe:07:78:26:58
    regdomain FCC country US authmode WPA2/802.11i privacy ON
    deftxkey UNDEF TKIP 3:128-bit txpower 30 bmiss 10 scanvalid 60
    protmode CTS wme roaming MANUAL
    parent interface: iwm0
    media: IEEE 802.11 Wireless Ethernet OFDM/6Mbps mode 11g
    status: associated
    nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

Now I am going to reboot the PC again and see if by getting the IP with the WiFi will reset the alc0 card properly.
 
It didn't change anything:

Code:
alc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
    options=c319a<TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MCAST,WOL_MAGIC,VLAN_HWTSO,LINKSTATE>
    ether 80:fa:5b:28:36:69
    inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
    media: Ethernet autoselect (1000baseT <full-duplex>)
    status: active
    nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
    options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
    inet6 ::1 prefixlen 128
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
    inet 127.0.0.1 netmask 0xff000000
    groups: lo
    nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
    ether a4:34:d9:64:f8:ca
    inet 10.0.0.87 netmask 0xffffff00 broadcast 10.0.0.255
    groups: wlan
    ssid Ste-and-Ste-wireless channel 11 (2462 MHz 11g) bssid dc:fe:07:78:26:58
    regdomain FCC country US authmode WPA2/802.11i privacy ON
    deftxkey UNDEF TKIP 2:128-bit TKIP 3:128-bit txpower 30 bmiss 10
    scanvalid 60 protmode CTS wme roaming MANUAL
    parent interface: iwm0
    media: IEEE 802.11 Wireless Ethernet OFDM/6Mbps mode 11g
    status: associated
    nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

I put again tcpdump to listen, in the meantime I performed the following actions and uplugged/plugged the cable a bunch of time:

Code:
$ doas /etc/rc.d/dhclient stop alc0
Stopping dhclient.
Waiting for PIDS: 59318.
$ doas /etc/rc.d/dhclient start alc0
Starting dhclient.
DHCPDISCOVER on alc0 to 255.255.255.255 port 67 interval 5
DHCPDISCOVER on alc0 to 255.255.255.255 port 67 interval 9
DHCPDISCOVER on alc0 to 255.255.255.255 port 67 interval 12
DHCPDISCOVER on alc0 to 255.255.255.255 port 67 interval 18
DHCPDISCOVER on alc0 to 255.255.255.255 port 67 interval 17
No DHCPOFFERS received.
No working leases in persistent database - sleeping.
$ doas ifconfig alc0
alc0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
    options=c319a<TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MCAST,WOL_MAGIC,VLAN_HWTSO,LINKSTATE>
    ether 80:fa:5b:28:36:69
    inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
    media: Ethernet autoselect (1000baseT <full-duplex>)
    status: active
    nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
$ doas /etc/netstart
Setting hostuuid: 285bfa80-6936-0000-0000-000000000000.
Setting hostid: 0x293deffa.
Setting hostname: dad-bsd.
wpa_supplicant already running?  (pid=6256).
Starting Network: lo0 alc0 wlan0.
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
    options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
    inet6 ::1 prefixlen 128
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
    inet 127.0.0.1 netmask 0xff000000
    groups: lo
    nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
alc0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
    options=c319a<TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MCAST,WOL_MAGIC,VLAN_HWTSO,LINKSTATE>
    ether 80:fa:5b:28:36:69
    inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
    media: Ethernet autoselect (1000baseT <full-duplex>)
    status: active
    nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
wlan0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
    ether a4:34:d9:64:f8:ca
    inet 10.0.0.87 netmask 0xffffff00 broadcast 10.0.0.255
    groups: wlan
    ssid "" channel 11 (2462 MHz 11g)
    regdomain FCC country US authmode WPA2/802.11i privacy ON
    deftxkey UNDEF TKIP 2:128-bit TKIP 3:128-bit txpower 30 bmiss 10
    scanvalid 60 protmode CTS wme roaming MANUAL
    parent interface: iwm0
    media: IEEE 802.11 Wireless Ethernet autoselect (autoselect)
    status: no carrier
    nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
add host 127.0.0.1: gateway lo0 fib 0: route already in table
add host ::1: gateway lo0 fib 0: route already in table
add net fe80::: gateway ::1 fib 0: route already in table
add net ff02::: gateway ::1 fib 0: route already in table
add net ::ffff:0.0.0.0: gateway ::1 fib 0: route already in table
add net ::0.0.0.0: gateway ::1 fib 0: route already in table
$ doas /etc/rc.d/dhclient restart alc0
Stopping dhclient.
Waiting for PIDS: 91737.
Starting dhclient.
DHCPDISCOVER on alc0 to 255.255.255.255 port 67 interval 4
DHCPDISCOVER on alc0 to 255.255.255.255 port 67 interval 9
DHCPDISCOVER on alc0 to 255.255.255.255 port 67 interval 13
DHCPDISCOVER on alc0 to 255.255.255.255 port 67 interval 17
DHCPDISCOVER on alc0 to 255.255.255.255 port 67 interval 17
No DHCPOFFERS received.
No working leases in persistent database - sleeping.
$ doas ifconfig alc0 down
$ doas ifconfig alc0 up
$ doas /etc/rc.d/dhclient restart alc0
Stopping dhclient.
Waiting for PIDS: 10758.
Starting dhclient.
DHCPDISCOVER on alc0 to 255.255.255.255 port 67 interval 6
DHCPDISCOVER on alc0 to 255.255.255.255 port 67 interval 9
DHCPDISCOVER on alc0 to 255.255.255.255 port 67 interval 10
DHCPDISCOVER on alc0 to 255.255.255.255 port 67 interval 11
DHCPDISCOVER on alc0 to 255.255.255.255 port 67 interval 11
DHCPDISCOVER on alc0 to 255.255.255.255 port 67 interval 14
No DHCPOFFERS received.
No working leases in persistent database - sleeping.

The log in in attachment.

The wifi works well without issue:

Code:
$ doas ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
    ether a4:34:d9:64:f8:ca
    inet 10.0.0.87 netmask 0xffffff00 broadcast 10.0.0.255
    groups: wlan
    ssid comcast-wireless channel 11 (2462 MHz 11g) bssid dc:fe:07:78:26:58
    regdomain FCC country US authmode WPA2/802.11i privacy ON
    deftxkey UNDEF TKIP 2:128-bit txpower 30 bmiss 10 scanvalid 60
    protmode CTS wme roaming MANUAL
    parent interface: iwm0
    media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11g
    status: associated
    nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

Code:
$ doas  tcpdump -i wlan0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes
01:59:50.403669 IP 10.0.0.1 > all-systems.mcast.net: igmp query v3 [max resp time 1.0s]
01:59:50.404232 IP 10.0.0.87.20832 > cdns01.comcast.net.domain: 55458+ PTR? 1.0.0.10.in-addr.arpa. (39)
01:59:50.419254 IP cdns01.comcast.net.domain > 10.0.0.87.20832: 55458 NXDomain 0/0/0 (39)
01:59:50.419416 IP 10.0.0.87.16091 > cdns01.comcast.net.domain: 60746+ PTR? 1.0.0.224.in-addr.arpa. (40)
01:59:50.435220 IP cdns01.comcast.net.domain > 10.0.0.87.16091: 60746 1/0/0 PTR all-systems.mcast.net. (75)
01:59:50.435428 IP 10.0.0.87.13765 > cdns01.comcast.net.domain: 52140+ PTR? 87.0.0.10.in-addr.arpa. (40)
01:59:50.476916 IP cdns01.comcast.net.domain > 10.0.0.87.13765: 52140 NXDomain 0/0/0 (40)
01:59:50.477066 IP 10.0.0.87.52138 > cdns01.comcast.net.domain: 2826+ PTR? 75.75.75.75.in-addr.arpa. (42)
01:59:50.493684 IP cdns01.comcast.net.domain > 10.0.0.87.52138: 2826 1/0/0 PTR cdns01.comcast.net. (74)
01:59:51.325352 IP6 fe80::3a5f:66ff:fe7b:246a > ff02::1: ICMP6, router advertisement, length 120
01:59:51.325549 IP 10.0.0.87.15826 > cdns01.comcast.net.domain: 2887+ PTR? 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.f.f.ip6.arpa. (90)
01:59:51.342216 IP cdns01.comcast.net.domain > 10.0.0.87.15826: 2887 NXDomain 0/1/0 (154)
01:59:54.294986 IP6 fe80::3a5f:66ff:fe7b:246a > ff02::1: ICMP6, router advertisement, length 120
01:59:57.366992 IP6 fe80::3a5f:66ff:fe7b:246a > ff02::1: ICMP6, router advertisement, length 120
02:00:00.439008 IP6 fe80::3a5f:66ff:fe7b:246a > ff02::1: ICMP6, router advertisement, length 120
02:00:03.408615 IP6 fe80::3a5f:66ff:fe7b:246a > ff02::1: ICMP6, router advertisement, length 120
02:00:06.480619 IP6 fe80::3a5f:66ff:fe7b:246a > ff02::1: ICMP6, router advertisement, length 120
02:00:09.450407 IP6 fe80::3a5f:66ff:fe7b:246a > ff02::1: ICMP6, router advertisement, length 120
^C
18 packets captured
18 packets received by filter
0 packets dropped by kernel

5/6 hours should be enough to make a cold boot and having the alc0 adapter able to work properly... 🤷‍♂️
 

Attachments

  • tcpdump3.txt
    27.7 KB · Views: 97
I cannot say this is solved but at least after a while with the laptop turned off when you reboot the ethernet connection works as expected, and when I have to use both OSes I will have the back-up offered by the WiFi...
It is awkward but at least I can get internet... 🤷‍♂️
 
One thing that you could also do; is completely skip the dhcp portion is try just configuring a static ip address (and set the default gateway and dns servers). The main thing on that, is more of setting an ip address that it won't/very unlikely assign (like 220, something at the end of normal range that the chances of it using those address with is unlikely unless you have a large network).

Most commonly, .1 is often the router/modem and default gateway, and 254 is used to an lesser extent. Of course 255 is the broadcast, so can't be used. Outside of that, a lot of consumer routers often start the DHCP range at 100+. Beyond that, DHCP generally doesn't assign a random address in it's range, it works in sequential order (with an limited history built in).
 
I think that what is going on is that Linux is putting the MII / PHY in a state that neither the BIOS nor the FreeBSD driver can overcome. If it always works from a cold power-on it isn't the DHCP server or the cable. Arguably, it is the job of the BIOS / card firmware to get things back to a known state before loading any operating system, but that isn't happening.

If your system has options for UEFI vs. "legacy", you could try switching (note that this may involve bootblocks, EFI partitions and even less savory things). If it has an option for "fast reboot", you could try switching that to the other setting. If Linux has something similar to FreeBSD's "hw.acpi.handle_reboot" or "hw.acpi.disable_on_reboot" you could try those to see if Linux leaves the controller in a more usable state on a reboot. Another thing to try is enabling PXE booting in the card's setup, if it has that option. That last suggestion probably won't do anything because netboot will only be tried if booting from disk doesn't work. But there is a possibility that some card initialization will happen earlier on and clear whatever is causing the card to not receive packets.

Other than that, you're probably going to need to involve a FreeBSD developer. That probably means opening a PR since most developers don't read these forums looking for things to fix. Better that they spend time coding. :)
 
One thing that you could also do; is completely skip the dhcp portion is try just configuring a static ip address (and set the default gateway and dns servers). The main thing on that, is more of setting an ip address that it won't/very unlikely assign (like 220, something at the end of normal range that the chances of it using those address with is unlikely unless you have a large network).

Most commonly, .1 is often the router/modem and default gateway, and 254 is used to an lesser extent. Of course 255 is the broadcast, so can't be used. Outside of that, a lot of consumer routers often start the DHCP range at 100+. Beyond that, DHCP generally doesn't assign a random address in it's range, it works in sequential order (with an limited history built in).
Static setup didn't work as well
 
I think that what is going on is that Linux is putting the MII / PHY in a state that neither the BIOS nor the FreeBSD driver can overcome. If it always works from a cold power-on it isn't the DHCP server or the cable. Arguably, it is the job of the BIOS / card firmware to get things back to a known state before loading any operating system, but that isn't happening.

If your system has options for UEFI vs. "legacy", you could try switching (note that this may involve bootblocks, EFI partitions and even less savory things). If it has an option for "fast reboot", you could try switching that to the other setting. If Linux has something similar to FreeBSD's "hw.acpi.handle_reboot" or "hw.acpi.disable_on_reboot" you could try those to see if Linux leaves the controller in a more usable state on a reboot. Another thing to try is enabling PXE booting in the card's setup, if it has that option. That last suggestion probably won't do anything because netboot will only be tried if booting from disk doesn't work. But there is a possibility that some card initialization will happen earlier on and clear whatever is causing the card to not receive packets.

Other than that, you're probably going to need to involve a FreeBSD developer. That probably means opening a PR since most developers don't read these forums looking for things to fix. Better that they spend time coding. :)

Actually the laptop support legacy mode and I think I can disable PXE booting. However opening a bug report for a ten years old laptop is not really worth!

Thanks!
 
Back
Top