Opened 3 months ago

Last modified 2 months ago

#19096 new bug

Some findings about using RTL8111/8168/8411 ethernet controller with Haiku

Reported by: zhaom Owned by: nobody
Priority: normal Milestone: Unscheduled
Component: Drivers/Network/rtl81xx Version: R1/beta5
Keywords: Cc:
Blocked By: Blocking:
Platform: All

Description

Thinkpad T14 with Haiku R1Beta5 is used.

RTL8111/8168/8411 ethernet controller is known to have some problems with Haiku[1][2] but it seems that there hasn't been a solution to solve that. If I boot my laptop directly the ethernet won't work. I found that, however, if I enter the BIOS menu, press F12 to enter the menu of temporary devices, and continue booting without doing anything, my ethernet can connect correctly. I attach the boot logs of two cases, one with good ethernet connection and the other one without. I hope these can help to improve Haiku. If any further information is needed please leave a comment.

Thank you.

[1]: https://discuss.haiku-os.org/t/rtl81xx-unable-to-get-ethernet-working-at-all/13802

[2]: https://hardware.besly.de/index.php?hardware=Network_Cards

Attachments (9)

good_conn_syslog.txt (35.8 KB ) - added by zhaom 3 months ago.
boot syslog with good ethernet connect
bad_conn_syslog.txt (182.1 KB ) - added by zhaom 3 months ago.
boot syslog with no ethernet connectivity
good_conn_with_ethernet_cable.txt (145.0 KB ) - added by zhaom 3 months ago.
Booting while ethernet is pluginned. There is ethernet connectivity.
bad_conn_with_ethernet_cable.txt (143.1 KB ) - added by zhaom 3 months ago.
Booting while ethernet is pluginned. There is no ethernet connectivity.
bad_conn_after_kill_net_server.txt (3.8 KB ) - added by zhaom 3 months ago.
Killing net_server and connect ethernet cable but no ethernet connectivity
good_conn_after_kill_net_server.txt (2.8 KB ) - added by zhaom 3 months ago.
Killing net_server, connect ethernet cable and get ethernet connected
listdev.txt (6.3 KB ) - added by roiredxsoto 3 months ago.
Listdev output
listimage_drivers.txt (1.7 KB ) - added by roiredxsoto 3 months ago.
Listimage drivers output
Wifi-syslog (224.0 KB ) - added by roiredxsoto 3 months ago.
Syslog

Download all attachments as: .zip

Change History (19)

by zhaom, 3 months ago

Attachment: good_conn_syslog.txt added

boot syslog with good ethernet connect

by zhaom, 3 months ago

Attachment: bad_conn_syslog.txt added

boot syslog with no ethernet connectivity

comment:1 by waddlesplash, 3 months ago

Component: - GeneralDrivers/Network/rtl81xx

I don't see any rtl81xx errors in either syslog, they look about the same (the first one is cut off, however.)

by zhaom, 3 months ago

Booting while ethernet is pluginned. There is ethernet connectivity.

by zhaom, 3 months ago

Booting while ethernet is pluginned. There is no ethernet connectivity.

in reply to:  1 comment:2 by zhaom, 3 months ago

Replying to waddlesplash:

I don't see any rtl81xx errors in either syslog, they look about the same (the first one is cut off, however.)

I think that is because I forgot to clean log after every boot. I have uploaded other two. I tried to read them but I haven't found anything useful (from my point of view). I find that there are some errors in the log. Some 'KERN: 's are randomly logged. You can try to search with 'PCKERN: I' in good_conn_with_ethernet_cable.txt. Maybe data race? Should go more in depth?

comment:3 by waddlesplash, 3 months ago

There are at least some errors in the "bad" one now, but they're just DHCP not receiving any replies. Everything else looks the same.

Is there some way you could try and assign a static IP and see if it works anyway, and whether the problem is just your DHCP server on your router? You can also try killing net_server (it will be automatically restarted) to see if the DHCP sending logic is somehow getting messed up randomly.

comment:4 by zhaom, 3 months ago

Assigning a static IP does not work.

by zhaom, 3 months ago

Killing net_server and connect ethernet cable but no ethernet connectivity

by zhaom, 3 months ago

Killing net_server, connect ethernet cable and get ethernet connected

comment:5 by zhaom, 3 months ago

Why does it try to send DHCP_REQUEST when no DHCP_OFFER is provided? [1]

[1]:https://dev.haiku-os.org/attachment/ticket/19096/bad_conn_after_kill_net_server.txt#L23

comment:6 by zhaom, 3 months ago

I use another computer to spoof the network. With the good ethernet connectivity boots, I can capture DHCP_DISCOVER and DHCP_REQUEST. But with the bad ones, none of them is captured.

comment:7 by korli, 3 months ago

Looks like for "Client-server interaction - reusing a previously allocated network address" https://datatracker.ietf.org/doc/html/rfc2131#section-3.2 no DHCP_OFFER is required.

in reply to:  7 comment:8 by zhaom, 3 months ago

Replying to korli:

Looks like for "Client-server interaction - reusing a previously allocated network address" https://datatracker.ietf.org/doc/html/rfc2131#section-3.2 no DHCP_OFFER is required.

Yes it is like caching the address. The client will send a REQUEST directly if it once had an address. But it is quite weird that DHCP_DISCOVER is not captured.

by roiredxsoto, 3 months ago

Attachment: listdev.txt added

Listdev output

by roiredxsoto, 3 months ago

Attachment: listimage_drivers.txt added

Listimage drivers output

by roiredxsoto, 3 months ago

Attachment: Wifi-syslog added

Syslog

comment:9 by roiredxsoto, 3 months ago

Good day,

Same issue here on fresh install of hrev58198, then updated to hrev58201 the issue still persists.

ifconfig reports: /dev/net/rtl81xx/1

Hardware type: Ethernet, Address: 8c:8c:aa:c8:36:41 inet addr: --, Bcast: --, Mask: -- MTU: 1500, Metric: 0, up broadcast Receive: 0 packets, 0 errors, 0 bytes, 0 mcasts, 0 dropped Transmit: 0 packets, 0 errors, 0 bytes, 0 mcasts, 0 dropped Collisions: 0

/dev/net/rtl81xx/0

Hardware type: Ethernet, Address: 8c:8c:aa:c8:36:42 inet addr: --, Bcast: --, Mask: -- MTU: 1500, Metric: 0, up broadcast Receive: 0 packets, 0 errors, 0 bytes, 0 mcasts, 0 dropped Transmit: 0 packets, 0 errors, 0 bytes, 0 mcasts, 0 dropped Collisions: 0

That is, two devices (0 and 1) also reported by Network Preferences. Using DHCP devices always show No Link. When changing to Static, the device will show 'Connected' and print the given ip address though no traffic. Ping the router results in all packets lost.

comment:10 by pbuyle, 2 months ago

I've the same Issue on a Lenovo E495 booting in UEFI with rEFInd. The network adapter was working just fine when booting from USB to try and install Haiky. I even following the fouind EUFI install guide from the laptop itself. But on first boot, when leting the laptop do a normal boot, directly in rEFInd and select Haiku, the network adapter wouldn't work (neither DHCP, nor static). However, if interupting the boot sequence to go to the boot menu (F12) to select rEFInd anbd the Haiku, the network adapter would work. Enabling/disably Legacy boot didn't change anything. Nor did enabling CSM. However, disabling the "Quick boot" option in the EFI Setup (the BIOS) also solve the issue. When quick boot is disabled, the laptop quickly display a short hardware diagnostic before loading rEFInd.

I'm not expert, but it looks like the driver do need the UEFI firmware to initialize the network adapter properly. I suspect the boot disagnostic and the boot menu initialize it in order (for diasgnotic or to offer net boot).

Note: See TracTickets for help on using tickets.