Chromeos is one of the easier operating systems to use. It’s matured a lot over the years and there are now some great troubleshooting options under the hood. One thing I hate doing is mashing buttons without at least some semblance of proof of a hypothesis about what a problem is. In other words, I like to start troubleshooting with logs. For this let’s use Ctrl+Alt+F2 to bring up a virtual terminal. From there:
- A standard place for logs since Unix System V has been /var/log. In there are files such as libcros_log, which is where chromium dumps logs from services.
- /var/log/messages and subdirectories of /var/log/window_manager/chromeos-wm.LATEST and /home/chronos/user/log/chromoeos-wm.LATEST
- /home/chronos/user/log/chrome_log which is dedicated chrome logs for the internal login manager
- Find installed webapps in /opt/google/chrome/resources
To reconfigure the network stack, use the initctl command along with the restart verb and then flimflam. One of the things I love about Chrome is that we can see the source for things like this, with this one here.
sudo initctl restart flimflam
Connman is short for connection manager and so connmanctl is a controller script for that. To run a config use the config verb (check help for other syntaxes):
connmanctl config
I wrote this article a bit ago on Crosh commands if more details are needed on those:
Some general things to be aware of:
- Autoupdate: The daemon that manages updating software
- build_image and start_devserver: Build images
- Connection Manager (connman): APIs for all the network things
- cron: Standard timing management
- cros_workon: workflow tool (should be run in chroot – like with `make_chroot –fast` && `enter_chroot.sh`) use the list verb to see packages
- D-Bus: Connects the browser to the system
- enable_localaccount.sh: Found in ../mychromiumos/src/scripts) enables a local account on the device (use with $1 as guest to enable a guest account)
- Firmware (includes Fast Boot, Verified Boot, And System Recovery)
- gclient: Depot management for different version control systems (including git)
- NTP: Standard *nix network time management framework
- /etc/portage: package management (borrowed from Gentoo), managed via emerge and ebuild commands
- Remoting: Remote Desktop (enabled using `chrome –enable-remoting`
- setup_board: inits SYSROOT
- syslog: Standard Linux logging facilities
- Power Management: Handles on the subsystems for batteries and the like
- xscreensaver: Manages the screen lock and processes around screen management
- Web Apps: Hosted apps (not packaged) installed via .crx files
- WebGL: 3d framework (./chrome –enable-webgl when needed e.g. at compile time)
- WPA Supplicant: 802.1x subsystem