gbOS86

Hardware detection

One image for many laptops: at every boot gbOS86 reads the machine's devices and loads the matching drivers.

What happens at boot

  1. Module tree. The volume's gbos/modules/ (about 400 kernel modules, built and indexed for the running kernel) is bind-mounted over /lib/modules.
  2. Coldplug. The script reads the modalias string of every device in sysfs (PCI, USB, ACPI, HID, I2C, DMI) and asks modprobe to load whatever module claims each one. It repeats up to four times, because loading a driver (an audio controller, a USB hub) creates new devices.
  3. Firmware. The kernel's firmware loader is pointed at gbos/firmware, a trimmed copy of linux-firmware and sof-bin. After the switch to Android it points at the same folder as seen from there.
  4. Wait and report. It waits a few seconds for Wi-Fi, Bluetooth and sound to appear and writes logs/boot-N/hwdetect.txt.

Every step is non-fatal: a laptop with an unsupported device simply ends up without that driver. Set HWDETECT=0 to disable it. If a stick has no gbos/modules, the older Latitude 5300-specific Wi-Fi and Bluetooth sequence runs instead.

What is covered

AreaDrivers
Graphicsi915 (Skylake to Raptor Lake, loaded by stage0), xe for newer parts (needs its own firmware; see Tested laptops), ACPI video and the backlight class.
Wi-FiIntel iwldvm (7260, 7265) and iwlmvm (8265 to BE200), Realtek rtw88/rtw89, MediaTek mt7921/mt7922/mt7925, Qualcomm ath10k/ath11k, Broadcom brcmfmac.
Bluetoothbtusb with Intel, Realtek, MediaTek, Qualcomm and Broadcom support, plus Intel PCIe Bluetooth.
AudioLegacy HDA with Realtek, Conexant, Cirrus, IDT/SigmaTel, VIA and other codecs, or SOF (Intel DSP, digital mics, SoundWire). The kernel's snd_intel_dspcfg picks one per machine.
InputIntel LPSS I2C-HID (most touchpads), Intel Integrated Sensor Hub, PS/2 (Synaptics, ALPS, Elan), Synaptics RMI4.
PlatformDell, HP, ThinkPad, IdeaPad, Asus, Acer, Samsung, MSI, Sony, Fujitsu, LG and Intel HID hotkey/rfkill/fan drivers; Intel PMC and thermal drivers.
OtherSD readers (Realtek, SDHCI), USB webcams (UVC), Ethernet (r8169, e1000e, igc, USB adapters).

Audio

Google's audio service matches a configuration to the ALSA card id. Nearly every Intel PCH laptop using legacy HDA has the card id PCH, for which a complete configuration ships. For another main card (for example a SOF card) a configuration is generated from the PCH one with that card's id and name. That is a best-effort mapping: mixer control names differ per codec, so some laptops will have no sound or wrong routing until a config is written for them. Reports help.

The report

hwdetect.txt contains the kernel version, DMI vendor and model, PCI devices that have no driver, USB devices with their drivers, input devices, network interfaces, Bluetooth controllers, backlight devices with their range, sound cards, rfkill switches, missing-firmware kernel messages, and the list of loaded modules. It is the first thing asked for in any hardware report.

Firmware layout

The files are in gbos/firmware/ using the names the kernel requests: Intel Wi-Fi iwlwifi-*.ucode at the top level, intel/ibt-* for Intel Bluetooth, i915/ for graphics microcontrollers, intel/sof* for SOF audio, and folders for rtw88, rtw89, mediatek, ath10k, ath11k, brcm, qca, rtl_bt and cirrus.

Something wrong or missing? Tell us or ask in the forum.