{"id":5901,"date":"2026-10-01T18:00:41","date_gmt":"2026-10-01T09:00:41","guid":{"rendered":"https:\/\/donguri3.net\/server-tech\/wifi-router-instability-rtl8723bs-2\/"},"modified":"2026-10-01T18:00:43","modified_gmt":"2026-10-01T09:00:43","slug":"wifi-router-instability-rtl8723bs","status":"publish","type":"post","link":"https:\/\/donguri3.net\/en\/server-tech\/linux-server-network\/wifi-router-instability-rtl8723bs\/","title":{"rendered":"Could the Wi-Fi Router Instability Be Caused by the RTL8723BS Wireless Chip?"},"content":{"rendered":"<p>After installing Debian 12 on the palm-sized stick PC &#8220;MS-NH1-W10&#8221; and starting to operate it as a low-power, always-on server, I encountered a suspicious network issue. Whenever I performed package updates or communication-heavy tasks on the stick PC, its Wi-Fi connection would suddenly drop.<\/p>\n<p>What was puzzling was that, completely synchronized with the stick PC&#8217;s disconnection, all other Wi-Fi devices in the home\u2014such as smartphones and laptops\u2014simultaneously lost network connectivity. After waiting a few minutes, all devices would reconnect automatically, but every time the stick PC was put under load, the entire home Wi-Fi would experience brief, repeated outages. Suspecting that it wasn&#8217;t just a poor signal on a single client device, but rather that the main router itself was crashing, I began examining the logs to investigate the cause.<\/p>\n<h2>Hypothesis Derived from Router Log Timestamp Correlation and RTL8723BS Behavior<\/h2>\n<p>I extracted the system logs from the router (ASUS RT-AX86U Pro). As a result, tucked away among the firewall traffic logs, the decisive moment when the Wi-Fi access point process crashed was recorded.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nSep 13 19:17:15 wlceventd: wlceventd_proc_event(662): eth6: Disassoc 80:A5:89:xx:xx:xx, status: 0, reason: Disassociated because sending station is leaving (or has left) BSS (8), rssi:0\nSep 13 19:17:24 kernel: CSIMON: CSIMON&#x5B;1.1.0] Initialization\nSep 13 19:17:36 wlceventd: wlceventd_proc_event(645): eth6: Deauth_ind 84:30:95:xx:xx:xx, status: 0, reason: Disassociated due to inactivity (4), rssi:-54\nSep 13 19:17:36 wlceventd: wlceventd_proc_event(645): eth6: Deauth_ind 84:30:95:yy:yy:yy, status: 0, reason: Disassociated due to inactivity (4), rssi:-60\nSep 13 19:17:40 wlceventd: wlceventd_proc_event(645): eth6: Deauth_ind 84:30:95:zz:zz:zz, status: 0, reason: Disassociated due to inactivity (4), rssi:-54\nSep 13 19:17:42 wlceventd: wlceventd_proc_event(685): eth6: Auth 84:30:95:xx:xx:xx, status: Successful (0), rssi:0\n<\/pre>\n<p>Tracing the logs chronologically made the following behavior clear:<\/p>\n<p>At 19:17:15, the Realtek RTL8723BS built into the stick PC (OUI: 80:A5:89) disconnected from Wi-Fi (Disassoc).<\/p>\n<p>Just 9 seconds later (19:17:24), the internal traffic monitoring daemon (CSIMON) on the router detected an anomaly and performed re-initialization.<\/p>\n<p>Immediately following, between 19:17:36 and 19:17:40, forced disconnections (Deauth) were fired off in rapid succession toward all devices connected to the same Wi-Fi band (eth6).<\/p>\n<p>At 19:17:42, the router&#8217;s Wi-Fi access point function recovered, and all disconnected devices simultaneously initiated re-authentication (Auth).<\/p>\n<p>What should be noted here is &#8220;Disassociated due to inactivity (4)&#8221; recorded as the reason for disconnection for the other devices. This indicates Reason Code 4 (timeout disconnection due to packets not arriving for a certain period) defined in the IEEE 802.11 international Wi-Fi standard.<\/p>\n<p>Since it is statistically unlikely that multiple independent devices in the home would spontaneously stop communicating at the exact same second, it is expected that the router became unable to respond for some reason, triggering timeouts (Reason Code 4) in a cascading fashion.<\/p>\n<p>So, why did the router freeze right after the stick PC disconnected? When I investigated the overseas community Reddit, I found multiple reports of unstable behavior of the RTL8723BS in Linux environments.<\/p>\n<blockquote class=\"reddit-embed-bq\" style=\"height:316px\" >\n<p><a href=\"https:\/\/www.reddit.com\/r\/Fedora\/comments\/16z5b4h\/f38_rtl_8723bs_wifi_connection_drops_5_minutes\/\">F38 &#8211; RTL 8723BS &#8211; WiFi Connection Drops ~5 Minutes after Boot<\/a><br \/> by<a href=\"https:\/\/www.reddit.com\/user\/TheSackveganAcadian\/\">u\/TheSackveganAcadian<\/a> in<a href=\"https:\/\/www.reddit.com\/r\/Fedora\/\">Fedora<\/a><\/p>\n<\/blockquote>\n<p><script async src=\"https:\/\/embed.reddit.com\/widgets.js\" charset=\"UTF-8\"><\/script><\/p>\n<blockquote class=\"reddit-embed-bq\" style=\"height:316px\" >\n<p><a href=\"https:\/\/www.reddit.com\/r\/archlinux\/comments\/1t3qyow\/rtl8723bs_coalesce_failed_with_error_22_after\/\">RTL8723BS &#34;coalesce failed with error -22&#34; after upgrade<\/a><br \/> by<a href=\"\"><\/a> in<a href=\"https:\/\/www.reddit.com\/r\/archlinux\/\">archlinux<\/a><\/p>\n<\/blockquote>\n<p><script async src=\"https:\/\/embed.reddit.com\/widgets.js\" charset=\"UTF-8\"><\/script><\/p>\n<p>The threads above report issues where the link drops on its own just a few minutes after connection, or driver failures throwing packet transmission errors (coalesce failed). While I cannot assert this definitively without diving into raw radio packet analysis, I surmised that the RTL8723BS became unstable due to load or heat, transmitting abnormal packets or disconnection signals, which in turn caused the wireless router&#8217;s processing to break down, triggering a reboot (reset).<\/p>\n<h2>Completely Disabling the Built-in Driver and Offloading to USB<\/h2>\n<p>For hardware- and driver-level issues that cause the main router to crash, trying to buy time by tweaking power-saving settings on the Linux kernel side is not a wise move. I decided it was safer to completely isolate the suspected built-in Wi-Fi chip from the OS and switch to a USB interface.<\/p>\n<h3>Blacklisting the Built-in Driver (r8723bs)<\/h3>\n<p>Create a configuration file to prevent the problematic module from loading when the OS boots.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nsudo tee \/etc\/modprobe.d\/blacklist-rtl8723bs.conf &lt;&lt; &#039;EOF&#039;\nblacklist r8723bs\nEOF\n<\/pre>\n<p>Unload the currently loaded module.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nsudo modprobe -r r8723bs\n<\/pre>\n<p>Check the interfaces to confirm that the built-in Wi-Fi has disappeared.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nip link show wlan0\n<\/pre>\n<p>If you get the response &#8220;Device &#8220;wlan0&#8221; does not exist&#8221;, the disabling of the built-in chip is complete.<\/p>\n<h2>Conclusion<\/h2>\n<p>An issue occurred where the entire home Wi-Fi disconnected under network load on the stick PC &#8220;MS-NH1-W10&#8221;. Analyzing the router logs revealed that immediately after the built-in chip &#8220;RTL8723BS&#8221; disconnected, the access point process crashed abnormally, causing all devices to disconnect simultaneously. Communities like Reddit have also pointed out instances where the same chip exhibits unstable behavior. As a countermeasure, I decided to blacklist the built-in driver to silence it completely. As a result, the router crashes stopped entirely, and stability of the home LAN was achieved. When dealing with an unstable built-in chip, the best strategy is not to over-invest in troubleshooting, but to cut your losses and switch to an external one.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>After installing Debian 12 on the palm-sized stick PC &#8220;MS-NH1-W10&#8221; and starting to operate it as a [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":5706,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_locale":"en_US","_original_post":"https:\/\/donguri3.net\/?p=5705","footnotes":""},"categories":[1170],"tags":[52,105,20,10,275],"class_list":["post-5901","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux-server-network","tag-https","tag-linux","tag-oci","tag-server","tag-275","en-US"],"_links":{"self":[{"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/posts\/5901","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/comments?post=5901"}],"version-history":[{"count":1,"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/posts\/5901\/revisions"}],"predecessor-version":[{"id":5904,"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/posts\/5901\/revisions\/5904"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/media\/5706"}],"wp:attachment":[{"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/media?parent=5901"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/categories?post=5901"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/tags?post=5901"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}