# Reporting a machine When SchOS half-works on a machine (no network, a dead touchpad, a disk it cannot see), the fastest fix starts with a description of that machine. `hwreport` writes one onto a USB stick that any other computer can read. ``` hwreport # onto a mounted FAT volume, or the first USB stick that mounts hwreport /mnt # into a directory of your choosing ``` 1. Plug in a FAT32 USB stick. Nearly every stick comes formatted that way. 2. Run `hwreport`. It mounts the stick itself if nothing is mounted, writes a folder named `hwreport-YYYYMMDD-HHMMSS`, syncs, and unmounts again. 3. Pull the stick out once it says so, and send the folder from another computer. Zip it first if your mail or chat client prefers one file. It also prints `summary.txt` on the screen. On a machine where even the USB port is not working, a photo of that screen is the next best thing. ## What is in the folder | file | what it is | |------|------------| | `summary.txt` | machine, firmware, CPU, memory, and every PCI and USB device with the driver that claimed it, or `-- no driver` | | `dmesg.txt` | the kernel log from this boot (and earlier ones, if a crash left them in memory) | | `lspci.txt` | each PCI device the way `lspci -nnk -xxx` shows it: IDs, subsystem, driver, IRQ, the first 256 bytes of config space | | `lsusb.txt` | each USB device and its `uevent` | | `dmi.txt` | the SMBIOS identity: vendor, model, board, BIOS version | | `memmap.txt` | the firmware's memory map | | `acpi/*.dat` | every ACPI table, byte for byte; `iasl -d DSDT.dat` disassembles one | | `acpi/tables.txt` | the table list with lengths and OEM IDs | | `proc/*.txt` | `/proc` files: interrupts, devices, partitions, mounts and more | The file names and formats are Linux's, so a report taken here can be compared with `lspci`, `acpidump` and `dmesg` output taken under Linux on the same machine. ## What is left out - **Serial numbers and the system UUID.** The kernel does not publish them. - **The MSDM and SLIC ACPI tables.** They hold the machine's Windows licence key. `acpi/tables.txt` lists them as left out. Nothing else in the report identifies its owner. Read `summary.txt` before sending it if you want to be sure. ## Where the information comes from All of it comes from `/sys`, laid out the way Linux lays it out (see [filesystem.md](../architecture/filesystem.md#sysfs)), plus `/proc`. The same files are there to read by hand: ``` cat /sys/class/dmi/id/product_name ls /sys/firmware/acpi/tables lspci -nnk lsusb ```