# Linux Kernel Module Cheat

### 9.3. Get device tree from a running kernel

https://unix.stackexchange.com/questions/265890/is-it-possible-to-get-the-information-for-a-device-tree-using-sys-of-a-running/330926#330926

This is specially interesting because QEMU and gem5 are capable of generating DTBs that match the selected machine depending on dynamic command line parameters for some types of machines.

So observing the device tree from the guest allows to easily see what the emulator has generated.

Compile the `dtc` tool into the root filesystem:

    ./build-buildroot \
      --arch aarch64 \
      --config 'BR2_PACKAGE_DTC=y' \
      --config 'BR2_PACKAGE_DTC_PROGRAMS=y' \
    ;

`-M virt` for example, which we use by default for `aarch64`, boots just fine without the `-dtb` option:

    ./run --arch aarch64

Then, from inside the guest:

    dtc -I fs -O dts /sys/firmware/devicetree/base

contains:

            cpus {
                    #address-cells = <0x1>;
                    #size-cells = <0x0>;

                    cpu@0 {
                            compatible = "arm,cortex-a57";
                            device_type = "cpu";
                            reg = <0x0>;
                    };
            };