top of page
Search

Chrome Spinners: An Update to ChromeOS Wi-Fi Troubleshooting a Decade in the Making

  • 2 hours ago
  • 4 min read

Once upon a time in 2016, Jim Vajda wrote a great article on troubleshooting Chromebooks. This was the ONLY comprehensive resource I found while struggle-bussing trying to evaluate roaming problems at schools. So I thought "Gee it has been 10 years, shouldn't someone do an update?" Well have I got updates for you and they're all listed here.


Totally real car btw
Totally real car btw

How it Started

I dragged my cursor to Amazon and found a fairly reasonable Chromebook capable of running Linux alone. That's important because some tools you cannot access outside the Linux shell container within crosh. If none of that made sense, please read Jim's article. He explains the basics of ChromeOS quite well. Apparently, not all models support Linux installs. I bought and had to return the first Chromebook I got due to this. Here's the exact model I used:


""Acer Chromebook 315 Laptop | Intel Celeron N4500 | 15.6" Full HD IPS Display | Intel UHD Graphics | 4GB LPDDR4X | 64GB eMMC | Intel Wi-Fi 6 | DTS Audio | USB Type-C | Chrome OS | CB315-4H-C8XU,Silver"

Model Name

CB315-4H-C8XU

Model Year

2022

Model Number

NX.AZ0AA.001

Once I got the Chromebook updated and configured, that's when the real fun began.

Command Changes

After reviewing Jim's guide, here's what still works ten years later:

  • ping

  • route

  • tracepath

  • connectivity show devices

  • connectivity show services

  • dmesg

  • Chrome browser commands

    • chrome://system

    • chrome://device-log

These commands did not work when I tried them:

  • network_diag --wifi

  • network_logging wifi

  • chrome://net-internals/#chromeos

    • This was deprecated and moved to chrome://network


Fortunately, you can view the information in network_diag --wifi in chrome://system


Developer Mode


A few commands require placing the Chromebook into developer mode, which by the way, factory resets the whole Chromebook. After configuring developer mode, I got this five minute count down and once the count down expired, I could boot regularly.


From here, you can type "shell" to enter the linux shell if needed. Developer Mode Commands that still work:

  • (In crosh) packet_capture --frequency <frequency in MHz>

    • Remember to turn your Wi-Fi NIC off so it can use monitor mode

    • I got an error that "It is likely that none of your wireless devices are capable of monitor mode, so your mileage may vary.

  • tail -f /var/log/net.log


Some commands worked but I had to enter the Developer Console This bypasses the Chrome sandbox. To enter Developer Console, press Ctrl + Alt + F2 (the "Forward" or "Refresh" key on your top row).

Developer Console
Developer Console

These commands only worked in the Developer Console:

  • sudo lspci -nnk | grep -A2 0280


These commands did not work no matter what.

  • sudo ethtool -i wlan0

  • sudo tcpdump -i wlan0 -w ~/Downloads/capture.pcap


For both commands here, I received an error that I had to install the developer tools with "sudo dev_install" first, but the package wouldn't install without errors, so I moved on.


I found two additional commands that may be helpful, but these only work in the Developer Console as well:

  • sudo dmesg | grep -i wifi -To see kernel-level driver events

  • sudo tail -f /var/log/messages  -Contains more verbose connectivity logs than net.log in newer ChromeOS versions


Interestingly while I could not use tcpdump, I was able to bring the wlan0 interface up and down, set it to monitor mode, and freely change the channels in the Developer Console


  • Bring the interface down: sudo ifconfig wlan0 down

  • Set to Monitor Mode: sudo iw dev wlan0 set type monitor

  • Bring it back up: sudo ifconfig wlan0 up

  • Set your channel: sudo iw dev wlan0 set channel 36 80MHz


When you're done, be sure to bring the interface down and set it back to a client:


  • Bring the interface down: sudo ifconfig wlan0 down

  • Set to Managed Mode: sudo iw dev wlan0 set type managed

  • Bring it back up: sudo ifconfig wlan0 up


While there's still many tools at your disposal in ChromeOS, I had a difficult time figuring out how to quickly and easily make use of this info for troubleshooting. Honestly, the most useful info you can find in chrome://system and chrome://device-log still. That brings me to my next endeavor.

The Future

I really was spinning my wheels on how exactly to make Chromebook troubleshooting less painful. ChromeOS almost provides too much information and trying to assess what's wrong by looking at 10,000 lines of driver logs didn't work for me. So naturally, I built a tool to help. Thanks to advents in vibe coding, you too can make tools. After consuming tokens like I was the vacuum from the Teletubbies, I had a working application!

"Mmmm delicious tokens."
"Mmmm delicious tokens."

I present the ChromeOS Wi-Fi Troubleshooter.



The purpose? Understand Wi-Fi connectivity from the Chromebook's perspective. It mostly parses chrome://system and chrome://device-log by saving each page as a HTML file. Two tabs give areas to upload each log: System Info and Network Timeline

System Info Panel
System Info Panel
Connection Timeline
Connection Timeline

This app is still in the testing phase. I need to gather larger data sets for wireless issues and test them. You can try it here at your own risk. Or, if you want to get it from GitHub and customize it, the repo is here. Next, I'd like to add roaming analysis features among other things. Hope someone out there finds it useful.

 
 
 
Comments

Share Your ThoughtsBe the first to write a comment.

© 2021 Wifrizzy. All rights reserved.

bottom of page