EC2上のqemuにgdbを接続して、Linuxを起動する

# 概要
Amazon EC2上のLinux (Ubuntu22.04LTS) で、Qemuにgdbを接続して、Linux (6.4.0-rc6) を起動した。
なお、環境構築時間は、c6in.xlargeだと、Linuxカーネルのコンパイルが10分程度、Buildrootのコンパイルが30分程度かかる。このため、必要に応じて利用するEC2インスタンスのCPUコア数を強化する(xlarge以上にする)。もしくは、あらかじめコンパイル済みのファイルをS3においておく (特に、Buildrootファイル) 等の対策が必要かもしれない。



# 手順
以下の手順で行う。

- Linuxカーネルコンパイル
- buildrootコンパイル
- qemuとgdbを動かす
- gdb経由でLinuxカーネル起動する。


## linuxカーネルの作成
以下の手順で行う。なお、gdb用のスクリプトを直した方が良い(gdbのエラー2を参照)。

```
sudo apt update
sudo apt install -y make gcc flex bison libelf-dev libssl-dev
git clone --depth=1 http://github.com/torvalds/linux
cd  linux/
time make x86_64_defconfig
scripts/config --enable DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT
scripts/config --disable DEBUG_INFO_REDUCED
scripts/config --enable DEBUG_INFO_COMPRESSED_NONE
scripts/config --disable DEBUG_INFO_COMPRESSED_ZLIB
scripts/config --disable DEBUG_INFO_SPLIT
scripts/config --enable GDB_SCRIPTS
time make -j $(nproc)
cd
```


## buildrootイメージの作成
buildrootイメージの設定とコンパイル(xlargeで30分程度)を行う。
なお、ほかに細かい設定をしたい場合は、`make menuconfig`等で追加設定を行う。

```
sudo apt update
sudo apt install -y libncurses-dev g++ unzip bzip2
cd
git clone https://github.com/buildroot/buildroot
cd buildroot/
vi ~/defconfig
make defconfig BR2_DEFCONFIG=/home/ubuntu/defconfig # defconfigは、以下の設定ファイル。
time  make -j $(nproc)
```

`defconfig`ファイルは以下を参照のこと。このファイルの`make menuconfig`での生成は、文末参照のこと。なお、このファイルは、設定後`make savedefconfig`で生成することもできる。なお、本設定は、[あるブログ](https://kuniyu.jp/ja/blog/2/)より引用した。

```
BR2_x86_64=y
BR2_PACKAGE_GLIBC_UTILS=y
BR2_PACKAGE_PYTHON3=y
BR2_PACKAGE_PYTHON3_SSL=y
BR2_PACKAGE_LIBOPENSSL_BIN=y
BR2_PACKAGE_LIBOPENSSL_ENGINES=y
BR2_PACKAGE_LIBCURL=y
BR2_PACKAGE_LIBCURL_CURL=y
BR2_PACKAGE_IPTABLES=y
BR2_PACKAGE_NGINX=y
BR2_PACKAGE_NGINX_HTTP_SSL_MODULE=y
BR2_PACKAGE_OPENSSH=y
BR2_PACKAGE_TCPDUMP=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
```

## buildrootイメージの書き換え

- dhcp
- ssh (開発用なので、パスワード不要でのログイン設定)

```
cd buildroot
sudo mkdir /mnt/buildroot
sudo mount -o loop ./output/images/rootfs.ext4 /mnt/buildroot
echo -e '\nauto eth0\niface eth0 inet dhcp' | sudo tee -a /mnt/buildroot/etc/network/interfaces
sudo sed -i -e 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/'   -e 's/#PermitEmptyPasswords no/PermitEmptyPasswords yes/'   /mnt/buildroot/etc/ssh/sshd_config
sudo umount /mnt/buildroot
```
## qemuのインストールおよびイメージの起動
- 以下のコマンドで起動できる。なお、イメージ停止は、Ctrl-Cで行う。
- 以下の例では、シングルCPUコアの例を示す。
  - マルチCPUコアにする場合、qemuのブートオプションの`-smp`及び、カーネルのブートオプション`acpi=on`で起動する。
- Qemuでは、grubを介さずlinuxカーネルを起動する。


```
sudo apt update
sudo apt install -y qemu-system-x86
qemu-system-x86_64 -boot c -m 2048M  -kernel ~/linux/arch/x86/boot/bzImage -drive file=~/buildroot/output/images/rootfs.ext4,format=raw -append "root=/dev/sda rw console=ttyS0,115200 acpi=off nokaslr" -serial mon:stdio -display none -nic user,hostfwd=tcp::10022-:22
```


## qemuとgdbの接続 
qemuの`-S`オプションと`-gdb`オプションを設定してデバイスをつなげる。

gdbはvmlinuxをバイナリとして指定し、ブレークポイントを指定できる。
現在の状態(gdbと接続できる。ただし、ソースコードの行を見れない。)

- qemu側

rootでパスワードなしでログインできる。

```
$ qemu-system-x86_64 -S -gdb tcp::12345 -boot c -m 2048M  -kernel ~/linux/arch/x86/boot/bzImage -drive file=~/buildroot/output/images/rootfs.ext4,format=raw -append "root=/dev/sda rw console=ttyS0,115200 acpi=off nokaslr" -serial mon:stdio -display none -nic user,hostfwd=tcp::10022-:22

中略

Welcome to Buildroot
buildroot login:
```

- gdb側

`gdb linux/vmlinux`で起動する。

```
sudo apt update
sudo apt install -y gdb
cd
mkdir -p .config/gdb
vi .config/gdb/gdbinit # 以下のファイルを記入する
$ gdb linux/vmlinux
GNU gdb (Ubuntu 12.1-0ubuntu1~22.04) 12.1
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from linux/vmlinux...
(gdb) target remote localhost:12345
Remote debugging using localhost:12345
0x000000000000fff0 in exception_stacks ()
(gdb) b start_kernel
Breakpoint 1 at 0xffffffff831f9940: file init/main.c, line 881.
(gdb) c
Continuing.

Breakpoint 1, start_kernel () at init/main.c:881
881     {
(gdb) c
Continuing.
```

.config/gdb/gdbinit
```
        set auto-load safe-path /
        add-auto-load-safe-path /home/ubuntu/linux/scripts/gdb/vmlinux-gdb.py
```

# 付録
## 参考資料
###  ソフトウェアの版数

||Qemu|gdb||
|:--|--:|--:|:--|
|22.04LTS|6.2|12.1||
|20.04LTS|4.2|9.2||

- [qemu package in Ubuntu](https://launchpad.net/ubuntu/+source/qemu)
  - [qemu/ChangeLog](https://wiki.qemu.org/ChangeLog)
    - 7.0 AMX命令サポート
    - 7.2 VAES命令サポート
    - 8.0 Sapphire Rapidsサポート
- [gdb package in Ubuntu](https://launchpad.net/ubuntu/+source/gdb)
### ソフトウェアのマニュアル
- Linux
  - [Development tools for the kernel](https://docs.kernel.org/dev-tools/index.html)
    - [Debugging kernel and modules via gdb](https://docs.kernel.org/dev-tools/gdb-kernel-debugging.html) 
  - [The Linux kernel user's and administrator's guide](https://docs.kernel.org/admin-guide/index.html)
    - [Bug hunting](https://docs.kernel.org/admin-guide/bug-hunting.html)
- [Buildroot](https://buildroot.org/docs.html)
- Qemu
  - [QEMU User Documentation](https://www.qemu.org/docs/master/system/qemu-manpage.html) 
  - [System Emulation](https://qemu-project.gitlab.io/qemu/system/index.html) 
    - [GDB usage](https://qemu-project.gitlab.io/qemu/system/gdb.html)
    - [Direct Linux Boot](https://qemu-project.gitlab.io/qemu/system/linuxboot.html)
- [GDB: The GNU Project Debugger](https://sourceware.org/gdb/download/onlinedocs/)

### qemuとgdbの接続の際参考にした記事

- [Linux カーネルを QEMU 上で起動する](https://kuniyu.jp/ja/blog/2/)
- [gdbからQEMUに接続する](http://bfin.sakura.ne.jp/?p=2107)
- [QEMU を使った Linux のカーネルデバッグ](https://troushoo.blog.fc2.com/blog-entry-499.html)
## qemu
### 起動時オプション

- `-kernel` Linux Kernelを直接指定する場合に使う。
- `-machine` ハードウェアを指定する場合に使う。利用可能なハードウェアは、`qemu-system-x86_64 -machine help`で確認できる。
- `-smp` SMPのCPU数の指定 また、Linuxカーネルのブートオプションでは、`acpi=on`にする必要がある。`acpi=off`にすると、1CPUコアでブートとなる。
- `-gdb` gdbとの接続設定
- `-S` 起動時のCPU停止
- `-cpu` cpu model指定　デフォルトは`qemu64`

### qemu monitorの切り替えコマンド

- Ctrl^a c
### qemuサブコマンド
- info mtree

## gdbのサブコマンド
- [GDB QUICK REFERENCE](https://sourceware.org/gdb/download/onlinedocs/refcard.pdf)
- `target remote localhost:12345`
- `bt` # backtrace
- `n` # next
- `x` 
- `p`


## 各種時間やサイズ
### Linux Kernelコンパイル
m3.xlargeの場合

```
real    14m29.189s
user    49m54.070s
sys     4m27.207s
```


m5.2xlargeの場合
```
real    5m36.239s
user    33m41.594s
sys     3m5.302s
```
大まかなカーネルサイズは12MB

```
$ ls -l ~/linux/arch/x86/boot/bzImage
-rw-rw-r-- 1 ubuntu ubuntu 12532864 Jun 14 15:40　/home/ubuntu/linux/arch/x86/boot/bzImage
```
### Buildrootコンパイル
以下を見ると、並列度を上げてもコンパイル時間は変わらないように見える。

c6in.xlargeの場合は以下

```
real    29m35.472s
user    68m18.768s
sys     7m8.857s
```
m5.2xlargeの場合

```
real    32m1.038s
user    93m11.339s
sys     10m6.779s
```
buildrootでのrootfs.ext4のファイルサイズは、63MB程度

```
$ ls -al /home/ubuntu/buildroot/output/images/rootfs.ext4
lrwxrwxrwx 1 ubuntu ubuntu 11 Jun 14 15:07 /home/ubuntu/buildroot/output/images/rootfs.ext4 -> rootfs.ext2
$ ls -al /home/ubuntu/buildroot/output/images/rootfs.ext2
-rw-r--r-- 1 ubuntu ubuntu 62914560 Jun 14 15:07 /home/ubuntu/buildroot/output/images/rootfs.ext2
```

## buildroot
buildrootの設定は、savedefconfigで保存できる。そして、そのファイル取り込みは、defconfigでできる。

```
make savedefconfig BR2_DEFCONFIG=/home/ubuntu/defconfig
```

```
make defconfig BR2_DEFCONFIG=/home/ubuntu/savedefconfig
```

- [9.3. Storing the Buildroot configuration](https://buildroot.org/downloads/manual/manual.html#customize-store-buildroot-config)

### buildrootのビルド設定

今回の設定は、make menuconfigで行う場合は、以下の通りである。なお、本設定は、[あるブログ](https://kuniyu.jp/ja/blog/2/)より引用した。

- Target options
  - Target Architecture
    - x86_64 を選択
- Toolchain
  - C library
    - glibc を選択
  - Install glibc utilities にチェックを入れる
- Target packages
  - Interpreter languages and scripting
    - python3 にチェックを入れる
      - core python3 modules
        - ssl にチェックを入れる
  - Libraries
    - Crypto
      - openssl support
        - ssl library
          - openssl を選択
          - openssl
            - openssl binary にチェックを入れる
            - openssl additional engines にチェックを入れる
    - Networking
      - libcurl にチェックを入れる
        - curl binary にチェックを入れる
          - SSL/TLS library to use
            - OpenSSL を選択
  - Networking applications
    - iptables にチェックを入れる
      - nginx にチェックを入れる
        - ngx_http_ssl_module にチェックを入れる
    - openssh にチェックを入れる
    - tcpdump にチェックを入れる
- Filesystem images
  - ext2/3/4 root filesystem にチェックを入れる
    - ext2/3/4 variant
      - ext4 を選択



# トラブルシューティング
## qemu
qemu起動時に、`-hda ~/output/images/rootfs.ext4`と指定した場合、以下のエラーが出る。
このメッセージは、該当ディスクを、`-drive  file=~/buildroot/output/images/rootfs.ext4,format=raw`と指定すると消える。

```
WARNING: Image format was not specified for '/home/ubuntu/buildroot/output/images/rootfs.ext4' and probing guessed raw.
         Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
         Specify the 'raw' format explicitly to remove the restrictions.
```
## gdb
### エラー2
gdb用のPythonスクリプトに障害があったが、2023/6/7に投稿されたパッチを適用すれば消える。ただし、このパッチは、Linuxのカーネル用の修正パッチなので、6.4以降にならないと直らない。

- [[PATCH] scripts/gdb: Fix SB_* constants parsing](https://lore.kernel.org/lkml/20230607221337.2781730-1-florian.fainelli@broadcom.com/T/)
- [scripts/gdb: fix SB_* constants parsing](https://github.com/torvalds/linux/commit/6a59cb5158bff13b80f116305155fbe4967a5010) # 取り込んだ修正パッチ　6.4より
該当コード
- [scripts/gdb/linux/constants.py.in#L50-L56](https://github.com/torvalds/linux/blob/v6.4-rc6/scripts/gdb/linux/constants.py.in#L50-L56)

```
Traceback (most recent call last):
  File "/home/ubuntu/linux/vmlinux-gdb.py", line 25, in <module>
    import linux.constants
  File "/home/ubuntu/linux/scripts/gdb/linux/constants.py", line 5
    LX_SB_RDONLY = ((((1UL))) << (0))
                       ^
SyntaxError: invalid decimal literal
```

### エラー1
以下のメッセージは、.config/gdb/gdbinitを作成し、二行の設定を記述することにより消えた。

```
warning: File "/home/ubuntu/linux/scripts/gdb/vmlinux-gdb.py" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".
To enable execution of this file add
        add-auto-load-safe-path /home/ubuntu/linux/scripts/gdb/vmlinux-gdb.py
line to your configuration file "/home/ubuntu/.config/gdb/gdbinit".
To completely disable this security protection add
        set auto-load safe-path /
line to your configuration file "/home/ubuntu/.config/gdb/gdbinit".
For more information about this security protection see the
--Type <RET> for more, q to quit, c to continue without paging--
"Auto-loading safe path" section in the GDB manual.  E.g., run from the shell:
        info "(gdb)Auto-loading safe path"
```
## ブートログの例

ブートログの例 (CPUは、一つしか認識していない例。複数CPUの場合は、qemu側でsmpオプション、linux kernel側でacpi=onが必要である)

```
[    0.000000] Linux version 6.4.0-rc6 (ubuntu@ip-172-31-17-160) (gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #2 SMP PREEMPT_DYNAMIC Mon Jun 12 13:15:29 UTC 2023
[    0.000000] Command line: root=/dev/sda rw console=ttyS0,115200 acpi=off nokaslr
[    0.000000] x86/fpu: x87 FPU will use FXSAVE
[    0.000000] signal: max sigframe size: 1440
[    0.000000] BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000007ffdffff] usable
[    0.000000] BIOS-e820: [mem 0x000000007ffe0000-0x000000007fffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fffc0000-0x00000000ffffffff] reserved
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] SMBIOS 2.8 present.
[    0.000000] DMI: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014
[    0.000000] tsc: Fast TSC calibration using PIT
[    0.000000] tsc: Detected 2500.015 MHz processor
[    0.011580] last_pfn = 0x7ffe0 max_arch_pfn = 0x400000000
[    0.012235] x86/PAT: Configuration [0-7]: WB  WC  UC- UC  WB  WP  UC- WT
[    0.025697] found SMP MP-table at [mem 0x000f5ba0-0x000f5baf]
[    0.032114] No NUMA configuration found
[    0.032145] Faking a node at [mem 0x0000000000000000-0x000000007ffdffff]
[    0.032757] NODE_DATA(0) allocated [mem 0x7ffdc000-0x7ffdffff]
[    0.035190] Zone ranges:
[    0.035216]   DMA      [mem 0x0000000000001000-0x0000000000ffffff]
[    0.035306]   DMA32    [mem 0x0000000001000000-0x000000007ffdffff]
[    0.035321]   Normal   empty
[    0.035348] Movable zone start for each node
[    0.035377] Early memory node ranges
[    0.035411]   node   0: [mem 0x0000000000001000-0x000000000009efff]
[    0.035606]   node   0: [mem 0x0000000000100000-0x000000007ffdffff]
[    0.035825] Initmem setup node 0 [mem 0x0000000000001000-0x000000007ffdffff]
[    0.037158] On node 0, zone DMA: 1 pages in unavailable ranges
[    0.037422] On node 0, zone DMA: 97 pages in unavailable ranges
[    0.058515] On node 0, zone DMA32: 32 pages in unavailable ranges
[    0.059104] Intel MultiProcessor Specification v1.4
[    0.059236] MPTABLE: OEM ID: BOCHSCPU
[    0.059257] MPTABLE: Product ID: 0.1
[    0.059276] MPTABLE: APIC at: 0xFEE00000
[    0.059719] Processor #0 (Bootup-CPU)
[    0.060248] IOAPIC[0]: apic_id 0, version 32, address 0xfec00000, GSI 0-23
[    0.060422] Processors: 1
[    0.060545] smpboot: Allowing 1 CPUs, 0 hotplug CPUs
[    0.061460] PM: hibernation: Registered nosave memory: [mem 0x00000000-0x00000fff]
[    0.061507] PM: hibernation: Registered nosave memory: [mem 0x0009f000-0x0009ffff]
[    0.061536] PM: hibernation: Registered nosave memory: [mem 0x000a0000-0x000effff]
[    0.061544] PM: hibernation: Registered nosave memory: [mem 0x000f0000-0x000fffff]
[    0.061678] [mem 0x80000000-0xfffbffff] available for PCI devices
[    0.061707] Booting paravirtualized kernel on bare hardware
[    0.062015] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1910969940391419 ns
[    0.077312] setup_percpu: NR_CPUS:64 nr_cpumask_bits:1 nr_cpu_ids:1 nr_node_ids:1
[    0.079382] percpu: Embedded 54 pages/cpu s182760 r8192 d30232 u2097152
[    0.081554] Kernel command line: root=/dev/sda rw console=ttyS0,115200 acpi=off nokaslr
[    0.083079] Unknown kernel command line parameters "nokaslr", will be passed to user space.
[    0.084582] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.085065] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[    0.086961] Fallback order for Node 0: 0
[    0.087456] Built 1 zonelists, mobility grouping on.  Total pages: 515808
[    0.087485] Policy zone: DMA32
[    0.087765] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.101229] Memory: 2020644K/2096632K available (18432K kernel code, 2718K rwdata, 6324K rodata, 2580K init, 1676K bss, 75732K reserved, 0K cma-reserved)
[    0.104912] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.119078] Dynamic Preempt: voluntary
[    0.122734] rcu: Preemptible hierarchical RCU implementation.
[    0.122749] rcu:     RCU event tracing is enabled.
[    0.122778] rcu:     RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=1.
[    0.122911]  Trampoline variant of Tasks RCU enabled.
[    0.123011] rcu: RCU calculated value of scheduler-enlistment delay is 100 jiffies.
[    0.123042] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.138911] NR_IRQS: 4352, nr_irqs: 256, preallocated irqs: 16
[    0.146113] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.151974] Console: colour VGA+ 80x25
[    0.153810] printk: console [ttyS0] enabled
[    0.182066] APIC: Switch to symmetric I/O mode setup
[    0.186881] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[    0.193007] clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles: 0x240947e4e44, max_idle_ns: 440795210104 ns
[    0.194094] Calibrating delay loop (skipped), value calculated using timer frequency.. 5000.03 BogoMIPS (lpj=2500015)
[    0.195012] pid_max: default: 32768 minimum: 301
[    0.196812] LSM: initializing lsm=capability,selinux,integrity
[    0.197447] SELinux:  Initializing.
[    0.199413] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.199845] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.220389] process: using AMD E400 aware idle routine
[    0.220835] Last level iTLB entries: 4KB 512, 2MB 255, 4MB 127
[    0.221175] Last level dTLB entries: 4KB 512, 2MB 255, 4MB 127, 1GB 0
[    0.221824] Spectre V1 : Mitigation: usercopy/swapgs barriers and __user pointer sanitization
[    0.222378] Spectre V2 : Mitigation: Retpolines
[    0.222639] Spectre V2 : Spectre v2 / SpectreRSB mitigation: Filling RSB on context switch
[    0.222819] Spectre V2 : Spectre v2 / SpectreRSB : Filling RSB on VMEXIT
[    0.714994] Freeing SMP alternatives memory: 44K
[    0.933784] smpboot: CPU0: AMD QEMU Virtual CPU version 2.5+ (family: 0xf, model: 0x6b, stepping: 0x1)
[    0.941690] cblist_init_generic: Setting adjustable number of callback queues.
[    0.941815] cblist_init_generic: Setting shift to 0 and lim to 1.
[    0.942826] Performance Events: PMU not available due to virtualization, using software events only.
[    0.945381] rcu: Hierarchical SRCU implementation.
[    0.945668] rcu:     Max phase no-delay instances is 400.
[    0.952574] smp: Bringing up secondary CPUs ...
[    0.952871] smp: Brought up 1 node, 1 CPU
[    0.953053] smpboot: Max logical packages: 1
[    0.953325] smpboot: Total of 1 processors activated (5000.03 BogoMIPS)
[    0.968535] devtmpfs: initialized
[    0.977443] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns
[    0.977989] futex hash table entries: 256 (order: 2, 16384 bytes, linear)
[    0.981368] PM: RTC time: 13:37:51, date: 2023-06-12
[    0.986395] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.990324] audit: initializing netlink subsys (disabled)
[    0.995318] audit: type=2000 audit(1686577070.810:1): state=initialized audit_enabled=0 res=1
[    0.996792] thermal_sys: Registered thermal governor 'step_wise'
[    0.996837] thermal_sys: Registered thermal governor 'user_space'
[    0.998430] cpuidle: using governor menu
[    1.002160] PCI: Using configuration type 1 for base access
[    1.005888] kprobes: kprobe jump-optimization is enabled. All kprobes are optimized if possible.
[    1.414569] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
[    1.414827] HugeTLB: 28 KiB vmemmap can be freed for a 2.00 MiB page
[    1.420399] ACPI: Interpreter disabled.
[    1.421178] iommu: Default domain type: Translated
[    1.421411] iommu: DMA domain TLB invalidation policy: lazy mode
[    1.423260] SCSI subsystem initialized
[    1.425524] usbcore: registered new interface driver usbfs
[    1.426063] usbcore: registered new interface driver hub
[    1.426449] usbcore: registered new device driver usb
[    1.427151] pps_core: LinuxPPS API ver. 1 registered
[    1.427359] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    1.427845] PTP clock support registered
[    1.430741] Advanced Linux Sound Architecture Driver Initialized.
[    1.440298] NetLabel: Initializing
[    1.440489] NetLabel:  domain hash size = 128
[    1.440698] NetLabel:  protocols = UNLABELED CIPSOv4 CALIPSO
[    1.441976] NetLabel:  unlabeled traffic allowed by default
[    1.446106] PCI: Probing PCI hardware
[    1.447240] PCI host bridge to bus 0000:00
[    1.447721] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
[    1.448085] pci_bus 0000:00: root bus resource [mem 0x00000000-0xffffffffff]
[    1.448859] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[    1.450554] pci 0000:00:00.0: [8086:1237] type 00 class 0x060000
[    1.454245] pci 0000:00:01.0: [8086:7000] type 00 class 0x060100
[    1.454946] pci 0000:00:01.1: [8086:7010] type 00 class 0x010180
[    1.457412] pci 0000:00:01.1: reg 0x20: [io  0xc040-0xc04f]
[    1.458900] pci 0000:00:01.1: legacy IDE quirk: reg 0x10: [io  0x01f0-0x01f7]
[    1.459262] pci 0000:00:01.1: legacy IDE quirk: reg 0x14: [io  0x03f6]
[    1.459834] pci 0000:00:01.1: legacy IDE quirk: reg 0x18: [io  0x0170-0x0177]
[    1.460126] pci 0000:00:01.1: legacy IDE quirk: reg 0x1c: [io  0x0376]
[    1.461106] pci 0000:00:01.3: [8086:7113] type 00 class 0x068000
[    1.461753] pci 0000:00:01.3: quirk: [io  0x0600-0x063f] claimed by PIIX4 ACPI
[    1.462147] pci 0000:00:01.3: quirk: [io  0x0700-0x070f] claimed by PIIX4 SMB
[    1.462864] pci 0000:00:02.0: [1234:1111] type 00 class 0x030000
[    1.463729] pci 0000:00:02.0: reg 0x10: [mem 0xfd000000-0xfdffffff pref]
[    1.465151] pci 0000:00:02.0: reg 0x18: [mem 0xfebb0000-0xfebb0fff]
[    1.468534] pci 0000:00:02.0: reg 0x30: [mem 0xfeba0000-0xfebaffff pref]
[    1.468999] pci 0000:00:02.0: Video device with shadowed ROM at [mem 0x000c0000-0x000dffff]
[    1.470039] pci 0000:00:03.0: [8086:100e] type 00 class 0x020000
[    1.471064] pci 0000:00:03.0: reg 0x10: [mem 0xfeb80000-0xfeb9ffff]
[    1.472018] pci 0000:00:03.0: reg 0x14: [io  0xc000-0xc03f]
[    1.474818] pci 0000:00:03.0: reg 0x30: [mem 0xfeb00000-0xfeb7ffff pref]
[    1.476007] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00
[    1.477568] pci 0000:00:01.0: PIIX/ICH IRQ router [8086:7000]
[    1.479599] pci 0000:00:02.0: vgaarb: setting as boot VGA device
[    1.479784] pci 0000:00:02.0: vgaarb: bridge control possible
[    1.479784] pci 0000:00:02.0: vgaarb: VGA device added: decodes=io+mem,owns=io+mem,locks=none
[    1.479833] vgaarb: loaded
[    1.482608] clocksource: Switched to clocksource tsc-early
[    1.484801] VFS: Disk quotas dquot_6.6.0
[    1.485159] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    1.488856] pnp: PnP ACPI: disabled
[    1.506621] NET: Registered PF_INET protocol family
[    1.508024] IP idents hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    1.516791] tcp_listen_portaddr_hash hash table entries: 1024 (order: 2, 16384 bytes, linear)
[    1.517172] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    1.517553] TCP established hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    1.518377] TCP bind hash table entries: 16384 (order: 7, 524288 bytes, linear)
[    1.519605] TCP: Hash tables configured (established 16384 bind 16384)
[    1.521174] UDP hash table entries: 1024 (order: 3, 32768 bytes, linear)
[    1.521744] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes, linear)
[    1.523443] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    1.525771] RPC: Registered named UNIX socket transport module.
[    1.526029] RPC: Registered udp transport module.
[    1.526319] RPC: Registered tcp transport module.
[    1.526539] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    1.530458] pci_bus 0000:00: resource 4 [io  0x0000-0xffff]
[    1.530690] pci_bus 0000:00: resource 5 [mem 0x00000000-0xffffffffff]
[    1.531167] pci 0000:00:01.0: PIIX3: Enabling Passive Release
[    1.531811] pci 0000:00:00.0: Limiting direct PCI/PCI transfers
[    1.532342] PCI: CLS 0 bytes, default 64
[    1.538636] platform rtc_cmos: registered platform RTC device (no PNP device found)
[    1.625394] Initialise system trusted keyrings
[    1.628934] workingset: timestamp_bits=56 max_order=19 bucket_order=0
[    1.632408] NFS: Registering the id_resolver key type
[    1.632948] Key type id_resolver registered
[    1.633183] Key type id_legacy registered
[    1.634337] 9p: Installing v9fs 9p2000 file system support
[    1.671772] Key type asymmetric registered
[    1.672031] Asymmetric key parser 'x509' registered
[    1.672596] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
[    1.673396] io scheduler mq-deadline registered
[    1.673660] io scheduler kyber registered
[    1.677737] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    1.682923] acpi_thermal_pm (35) used greatest stack depth: 15632 bytes left
[    1.933088] serial8250: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[    1.943562] Non-volatile memory driver v1.3
[    1.943803] Linux agpgart interface v0.103
[    1.964000] loop: module loaded
[    1.974073] scsi host0: ata_piix
[    1.976350] scsi host1: ata_piix
[    1.976923] ata1: PATA max MWDMA2 cmd 0x1f0 ctl 0x3f6 bmdma 0xc040 irq 14
[    1.977375] ata2: PATA max MWDMA2 cmd 0x170 ctl 0x376 bmdma 0xc048 irq 15
[    1.983978] e100: Intel(R) PRO/100 Network Driver
[    1.984177] e100: Copyright(c) 1999-2006 Intel Corporation
[    1.984623] e1000: Intel(R) PRO/1000 Network Driver
[    1.984866] e1000: Copyright (c) 1999-2006 Intel Corporation.
[    1.985841] e1000 0000:00:03.0: PCI->APIC IRQ transform: INT A -> IRQ 11
[    2.132744] ata1: found unknown device (class 0)
[    2.137443] ata1.00: ATA-7: QEMU HARDDISK, 2.5+, max UDMA/100
[    2.137776] ata1.00: 122880 sectors, multi 16: LBA48
[    2.142411] ata2: found unknown device (class 0)
[    2.143058] ata2.00: ATAPI: QEMU DVD-ROM, 2.5+, max UDMA/100
[    2.160388] scsi 0:0:0:0: Direct-Access     ATA      QEMU HARDDISK    2.5+ PQ: 0 ANSI: 5
[    2.173269] sd 0:0:0:0: [sda] 122880 512-byte logical blocks: (62.9 MB/60.0 MiB)
[    2.175078] sd 0:0:0:0: [sda] Write Protect is off
[    2.175799] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    2.176727] sd 0:0:0:0: [sda] Preferred minimum I/O size 512 bytes
[    2.177533] sd 0:0:0:0: Attached scsi generic sg0 type 0
[    2.180070] scsi 1:0:0:0: CD-ROM            QEMU     QEMU DVD-ROM     2.5+ PQ: 0 ANSI: 5
[    2.194650] sr 1:0:0:0: [sr0] scsi3-mmc drive: 4x/4x cd/rw xa/form2 tray
[    2.195050] cdrom: Uniform CD-ROM driver Revision: 3.20
[    2.204164] sr 1:0:0:0: Attached scsi generic sg1 type 5
[    2.219381] sd 0:0:0:0: [sda] Attached SCSI disk
[    2.320143] e1000 0000:00:03.0 eth0: (PCI:33MHz:32-bit) 52:54:00:12:34:56
[    2.320828] e1000 0000:00:03.0 eth0: Intel(R) PRO/1000 Network Connection
[    2.321553] e1000e: Intel(R) PRO/1000 Network Driver
[    2.321768] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    2.322089] sky2: driver version 1.30
[    2.324331] usbcore: registered new interface driver usblp
[    2.324716] usbcore: registered new interface driver usb-storage
[    2.325330] i8042: PNP: No PS/2 controller found.
[    2.325574] i8042: Probing ports directly.
[    2.328056] serio: i8042 KBD port at 0x60,0x64 irq 1
[    2.328561] serio: i8042 AUX port at 0x60,0x64 irq 12
[    2.334081] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0
[    2.339742] rtc_cmos rtc_cmos: registered as rtc0
[    2.340712] rtc_cmos rtc_cmos: alarms up to one day, 114 bytes nvram
[    2.341509] fail to initialize ptp_kvm
[    2.342156] device-mapper: ioctl: 4.48.0-ioctl (2023-03-01) initialised: dm-devel@redhat.com
[    2.343696] hid: raw HID events driver (C) Jiri Kosina
[    2.345313] usbcore: registered new interface driver usbhid
[    2.345569] usbhid: USB HID core driver
[    2.345801] Driver 'wmi-bmof' was unable to register with bus_type 'wmi' because the bus was not initialized.
[    2.361544] Initializing XFRM netlink socket
[    2.362086] NET: Registered PF_INET6 protocol family
[    2.369297] Segment Routing with IPv6
[    2.369691] In-situ OAM (IOAM) with IPv6
[    2.370977] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    2.373984] NET: Registered PF_PACKET protocol family
[    2.375455] 9pnet: Installing 9P2000 support
[    2.375968] Key type dns_resolver registered
[    2.378099] IPI shorthand broadcast: enabled
[    2.402114] sched_clock: Marking stable (2367152869, 34076201)->(2403799295, -2570225)
[    2.405079] registered taskstats version 1
[    2.405336] Loading compiled-in X.509 certificates
[    2.419649] PM:   Magic number: 11:859:634
[    2.420552] printk: console [netcon0] enabled
[    2.420771] netconsole: network logging started
[    2.421856] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    2.437446] kworker/u2:2 (43) used greatest stack depth: 14824 bytes left
[    2.446197] Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    2.448307] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    2.448846] cfg80211: failed to load regulatory.db
[    2.449876] ALSA device list:
[    2.450082]   No soundcards found.
[    2.582351] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x240947e4e44, max_idle_ns: 440795210104 ns
[    2.582961] clocksource: Switched to clocksource tsc
[    2.974599] input: ImExPS/2 Generic Explorer Mouse as /devices/platform/i8042/serio1/input/input2
[    2.975933] md: Waiting for all devices to be available before autodetect
[    2.976307] md: If you don't use raid, use raid=noautodetect
[    2.976569] md: Autodetecting RAID arrays.
[    2.976760] md: autorun ...
[    2.976938] md: ... autorun DONE.
[    3.006743] EXT4-fs (sda): mounted filesystem 464c4e63-e1c7-4832-9dc1-d363d212184f r/w with ordered data mode. Quota mode: none.
[    3.007619] VFS: Mounted root (ext4 filesystem) on device 8:0.
[    3.009919] devtmpfs: mounted
[    3.057480] Freeing unused kernel image (initmem) memory: 2580K
[    3.058002] Write protecting the kernel read-only data: 26624k
[    3.060949] Freeing unused kernel image (rodata/data gap) memory: 1868K
[    3.340153] x86/mm: Checked W+X mappings: passed, no W+X pages found.
[    3.340640] Run /sbin/init as init process
[    3.510911] mount (49) used greatest stack depth: 13624 bytes left
[    3.560764] EXT4-fs (sda): re-mounted 464c4e63-e1c7-4832-9dc1-d363d212184f r/w. Quota mode: none.
Starting syslogd: [    3.979418] start-stop-daem (62) used greatest stack depth: 13456 bytes left
OK
Starting klogd: OK
Running sysctl: OK
Saving 256 bits of non-creditable seed for next boot
Starting iptables: OK
Starting network: [    5.193282] e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
[    5.195789] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
udhcpc: started, v1.36.0
udhcpc: broadcasting discover
udhcpc: broadcasting select for 10.0.2.15, server 10.0.2.2
udhcpc: lease of 10.0.2.15 obtained from 10.0.2.2, lease time 86400
deleting routers
adding dns 10.0.2.3
OK
Starting nginx...
[    7.016655] nginx (113) used greatest stack depth: 13392 bytes left
[    7.123445] random: crng init done
ssh-keygen: generating new host keys: RSA ECDSA ED25519
Starting sshd: OK

Welcome to Buildroot
buildroot login:
```


```
(qemu) info mtree
address-space: memory
  0000000000000000-ffffffffffffffff (prio 0, i/o): system
    0000000000000000-000000007fffffff (prio 0, ram): alias ram-below-4g @pc.ram 0000000000000000-000000007fffffff
    0000000000000000-ffffffffffffffff (prio -1, i/o): pci
      00000000000a0000-00000000000bffff (prio 1, i/o): vga-lowmem
      00000000000c0000-00000000000dffff (prio 1, rom): pc.rom
      00000000000e0000-00000000000fffff (prio 1, rom): alias isa-bios @pc.bios 0000000000020000-000000000003ffff
      00000000fd000000-00000000fdffffff (prio 1, ram): vga.vram
      00000000feb80000-00000000feb9ffff (prio 1, i/o): e1000-mmio
      00000000febb0000-00000000febb0fff (prio 1, i/o): vga.mmio
        00000000febb0000-00000000febb017f (prio 0, i/o): edid
        00000000febb0400-00000000febb041f (prio 0, i/o): vga ioports remapped
        00000000febb0500-00000000febb0515 (prio 0, i/o): bochs dispi interface
        00000000febb0600-00000000febb0607 (prio 0, i/o): qemu extended regs
      00000000fffc0000-00000000ffffffff (prio 0, rom): pc.bios
    00000000000a0000-00000000000bffff (prio 1, i/o): alias smram-region @pci 00000000000a0000-00000000000bffff
    00000000000c0000-00000000000c3fff (prio 1, ram): alias pam-rom @pc.ram 00000000000c0000-00000000000c3fff
    00000000000c4000-00000000000c7fff (prio 1, ram): alias pam-rom @pc.ram 00000000000c4000-00000000000c7fff
    00000000000c8000-00000000000cbfff (prio 1, ram): alias pam-rom @pc.ram 00000000000c8000-00000000000cbfff
    00000000000cb000-00000000000cdfff (prio 1000, ram): alias kvmvapic-rom @pc.ram 00000000000cb000-00000000000cdfff
    00000000000cc000-00000000000cffff (prio 1, ram): alias pam-rom @pc.ram 00000000000cc000-00000000000cffff
    00000000000d0000-00000000000d3fff (prio 1, ram): alias pam-rom @pc.ram 00000000000d0000-00000000000d3fff
    00000000000d4000-00000000000d7fff (prio 1, ram): alias pam-rom @pc.ram 00000000000d4000-00000000000d7fff
    00000000000d8000-00000000000dbfff (prio 1, ram): alias pam-rom @pc.ram 00000000000d8000-00000000000dbfff
    00000000000dc000-00000000000dffff (prio 1, ram): alias pam-rom @pc.ram 00000000000dc000-00000000000dffff
    00000000000e0000-00000000000e3fff (prio 1, ram): alias pam-rom @pc.ram 00000000000e0000-00000000000e3fff
    00000000000e4000-00000000000e7fff (prio 1, ram): alias pam-rom @pc.ram 00000000000e4000-00000000000e7fff
    00000000000e8000-00000000000ebfff (prio 1, ram): alias pam-ram @pc.ram 00000000000e8000-00000000000ebfff
    00000000000ec000-00000000000effff (prio 1, ram): alias pam-ram @pc.ram 00000000000ec000-00000000000effff
    00000000000f0000-00000000000fffff (prio 1, ram): alias pam-rom @pc.ram 00000000000f0000-00000000000fffff
    00000000fec00000-00000000fec00fff (prio 0, i/o): ioapic
    00000000fed00000-00000000fed003ff (prio 0, i/o): hpet
    00000000fee00000-00000000feefffff (prio 4096, i/o): apic-msi

address-space: I/O
  0000000000000000-000000000000ffff (prio 0, i/o): io
    0000000000000000-0000000000000007 (prio 0, i/o): dma-chan
    0000000000000008-000000000000000f (prio 0, i/o): dma-cont
    0000000000000020-0000000000000021 (prio 0, i/o): pic
    0000000000000040-0000000000000043 (prio 0, i/o): pit
    0000000000000060-0000000000000060 (prio 0, i/o): i8042-data
    0000000000000061-0000000000000061 (prio 0, i/o): pcspk
    0000000000000064-0000000000000064 (prio 0, i/o): i8042-cmd
    0000000000000070-0000000000000071 (prio 0, i/o): rtc
      0000000000000070-0000000000000070 (prio 0, i/o): rtc-index
    000000000000007e-000000000000007f (prio 0, i/o): kvmvapic
    0000000000000080-0000000000000080 (prio 0, i/o): ioport80
    0000000000000081-0000000000000083 (prio 0, i/o): dma-page
    0000000000000087-0000000000000087 (prio 0, i/o): dma-page
    0000000000000089-000000000000008b (prio 0, i/o): dma-page
    000000000000008f-000000000000008f (prio 0, i/o): dma-page
    0000000000000092-0000000000000092 (prio 0, i/o): port92
    00000000000000a0-00000000000000a1 (prio 0, i/o): pic
    00000000000000b2-00000000000000b3 (prio 0, i/o): apm-io
    00000000000000c0-00000000000000cf (prio 0, i/o): dma-chan
    00000000000000d0-00000000000000df (prio 0, i/o): dma-cont
    00000000000000f0-00000000000000f0 (prio 0, i/o): ioportF0
    0000000000000170-0000000000000177 (prio 0, i/o): ide
    00000000000001ce-00000000000001d1 (prio 0, i/o): vbe
    00000000000001f0-00000000000001f7 (prio 0, i/o): ide
    0000000000000376-0000000000000376 (prio 0, i/o): ide
    0000000000000378-000000000000037f (prio 0, i/o): parallel
    00000000000003b4-00000000000003b5 (prio 0, i/o): vga
    00000000000003ba-00000000000003ba (prio 0, i/o): vga
    00000000000003c0-00000000000003cf (prio 0, i/o): vga
    00000000000003d4-00000000000003d5 (prio 0, i/o): vga
    00000000000003da-00000000000003da (prio 0, i/o): vga
    00000000000003f1-00000000000003f5 (prio 0, i/o): fdc
    00000000000003f6-00000000000003f6 (prio 0, i/o): ide
    00000000000003f7-00000000000003f7 (prio 0, i/o): fdc
    00000000000003f8-00000000000003ff (prio 0, i/o): serial
    00000000000004d0-00000000000004d0 (prio 0, i/o): elcr
    00000000000004d1-00000000000004d1 (prio 0, i/o): elcr
    0000000000000510-0000000000000511 (prio 0, i/o): fwcfg
    0000000000000514-000000000000051b (prio 0, i/o): fwcfg.dma
    0000000000000600-000000000000063f (prio 0, i/o): piix4-pm
      0000000000000600-0000000000000603 (prio 0, i/o): acpi-evt
      0000000000000604-0000000000000605 (prio 0, i/o): acpi-cnt
      0000000000000608-000000000000060b (prio 0, i/o): acpi-tmr
    0000000000000700-000000000000073f (prio 0, i/o): pm-smbus
    0000000000000cf8-0000000000000cfb (prio 0, i/o): pci-conf-idx
    0000000000000cf9-0000000000000cf9 (prio 1, i/o): piix3-reset-control
    0000000000000cfc-0000000000000cff (prio 0, i/o): pci-conf-data
    0000000000005658-0000000000005658 (prio 0, i/o): vmport
    000000000000ae00-000000000000ae17 (prio 0, i/o): acpi-pci-hotplug
    000000000000af00-000000000000af1f (prio 0, i/o): acpi-cpu-hotplug
    000000000000afe0-000000000000afe3 (prio 0, i/o): acpi-gpe0
    000000000000c000-000000000000c03f (prio 1, i/o): e1000-io
    000000000000c040-000000000000c04f (prio 1, i/o): piix-bmdma-container
      000000000000c040-000000000000c043 (prio 0, i/o): piix-bmdma
      000000000000c044-000000000000c047 (prio 0, i/o): bmdma
      000000000000c048-000000000000c04b (prio 0, i/o): piix-bmdma
      000000000000c04c-000000000000c04f (prio 0, i/o): bmdma

address-space: cpu-memory-0
  0000000000000000-ffffffffffffffff (prio 0, i/o): system
    0000000000000000-000000007fffffff (prio 0, ram): alias ram-below-4g @pc.ram 0000000000000000-000000007fffffff
    0000000000000000-ffffffffffffffff (prio -1, i/o): pci
      00000000000a0000-00000000000bffff (prio 1, i/o): vga-lowmem
      00000000000c0000-00000000000dffff (prio 1, rom): pc.rom
      00000000000e0000-00000000000fffff (prio 1, rom): alias isa-bios @pc.bios 0000000000020000-000000000003ffff
      00000000fd000000-00000000fdffffff (prio 1, ram): vga.vram
      00000000feb80000-00000000feb9ffff (prio 1, i/o): e1000-mmio
      00000000febb0000-00000000febb0fff (prio 1, i/o): vga.mmio
        00000000febb0000-00000000febb017f (prio 0, i/o): edid
        00000000febb0400-00000000febb041f (prio 0, i/o): vga ioports remapped
        00000000febb0500-00000000febb0515 (prio 0, i/o): bochs dispi interface
        00000000febb0600-00000000febb0607 (prio 0, i/o): qemu extended regs
      00000000fffc0000-00000000ffffffff (prio 0, rom): pc.bios
    00000000000a0000-00000000000bffff (prio 1, i/o): alias smram-region @pci 00000000000a0000-00000000000bffff
    00000000000c0000-00000000000c3fff (prio 1, ram): alias pam-rom @pc.ram 00000000000c0000-00000000000c3fff
    00000000000c4000-00000000000c7fff (prio 1, ram): alias pam-rom @pc.ram 00000000000c4000-00000000000c7fff
    00000000000c8000-00000000000cbfff (prio 1, ram): alias pam-rom @pc.ram 00000000000c8000-00000000000cbfff
    00000000000cb000-00000000000cdfff (prio 1000, ram): alias kvmvapic-rom @pc.ram 00000000000cb000-00000000000cdfff
    00000000000cc000-00000000000cffff (prio 1, ram): alias pam-rom @pc.ram 00000000000cc000-00000000000cffff
    00000000000d0000-00000000000d3fff (prio 1, ram): alias pam-rom @pc.ram 00000000000d0000-00000000000d3fff
    00000000000d4000-00000000000d7fff (prio 1, ram): alias pam-rom @pc.ram 00000000000d4000-00000000000d7fff
    00000000000d8000-00000000000dbfff (prio 1, ram): alias pam-rom @pc.ram 00000000000d8000-00000000000dbfff
    00000000000dc000-00000000000dffff (prio 1, ram): alias pam-rom @pc.ram 00000000000dc000-00000000000dffff
    00000000000e0000-00000000000e3fff (prio 1, ram): alias pam-rom @pc.ram 00000000000e0000-00000000000e3fff
    00000000000e4000-00000000000e7fff (prio 1, ram): alias pam-rom @pc.ram 00000000000e4000-00000000000e7fff
    00000000000e8000-00000000000ebfff (prio 1, ram): alias pam-ram @pc.ram 00000000000e8000-00000000000ebfff
    00000000000ec000-00000000000effff (prio 1, ram): alias pam-ram @pc.ram 00000000000ec000-00000000000effff
    00000000000f0000-00000000000fffff (prio 1, ram): alias pam-rom @pc.ram 00000000000f0000-00000000000fffff
    00000000fec00000-00000000fec00fff (prio 0, i/o): ioapic
    00000000fed00000-00000000fed003ff (prio 0, i/o): hpet
    00000000fee00000-00000000feefffff (prio 4096, i/o): apic-msi

address-space: cpu-smm-0
  0000000000000000-ffffffffffffffff (prio 0, i/o): memory
    0000000000000000-00000000ffffffff (prio 1, i/o): alias smram @smram 0000000000000000-00000000ffffffff
    0000000000000000-ffffffffffffffff (prio 0, i/o): alias memory @system 0000000000000000-ffffffffffffffff

address-space: i440FX
  0000000000000000-ffffffffffffffff (prio 0, i/o): bus master container

address-space: PIIX3
  0000000000000000-ffffffffffffffff (prio 0, i/o): bus master container

address-space: VGA
  0000000000000000-ffffffffffffffff (prio 0, i/o): bus master container

address-space: e1000
  0000000000000000-ffffffffffffffff (prio 0, i/o): bus master container
    0000000000000000-ffffffffffffffff (prio 0, i/o): alias bus master @system 0000000000000000-ffffffffffffffff

address-space: piix3-ide
  0000000000000000-ffffffffffffffff (prio 0, i/o): bus master container
    0000000000000000-ffffffffffffffff (prio 0, i/o): alias bus master @system 0000000000000000-ffffffffffffffff

address-space: PIIX4_PM
  0000000000000000-ffffffffffffffff (prio 0, i/o): bus master container

memory-region: pc.ram
  0000000000000000-000000007fffffff (prio 0, ram): pc.ram

memory-region: pc.bios
  00000000fffc0000-00000000ffffffff (prio 0, rom): pc.bios

memory-region: pci
  0000000000000000-ffffffffffffffff (prio -1, i/o): pci
    00000000000a0000-00000000000bffff (prio 1, i/o): vga-lowmem
    00000000000c0000-00000000000dffff (prio 1, rom): pc.rom
    00000000000e0000-00000000000fffff (prio 1, rom): alias isa-bios @pc.bios 0000000000020000-000000000003ffff
    00000000fd000000-00000000fdffffff (prio 1, ram): vga.vram
    00000000feb80000-00000000feb9ffff (prio 1, i/o): e1000-mmio
    00000000febb0000-00000000febb0fff (prio 1, i/o): vga.mmio
      00000000febb0000-00000000febb017f (prio 0, i/o): edid
      00000000febb0400-00000000febb041f (prio 0, i/o): vga ioports remapped
      00000000febb0500-00000000febb0515 (prio 0, i/o): bochs dispi interface
      00000000febb0600-00000000febb0607 (prio 0, i/o): qemu extended regs
    00000000fffc0000-00000000ffffffff (prio 0, rom): pc.bios

memory-region: smram
  0000000000000000-00000000ffffffff (prio 0, i/o): smram
    00000000000a0000-00000000000bffff (prio 0, ram): alias smram-low @pc.ram 00000000000a0000-00000000000bffff

memory-region: system
  0000000000000000-ffffffffffffffff (prio 0, i/o): system
    0000000000000000-000000007fffffff (prio 0, ram): alias ram-below-4g @pc.ram 0000000000000000-000000007fffffff
    0000000000000000-ffffffffffffffff (prio -1, i/o): pci
      00000000000a0000-00000000000bffff (prio 1, i/o): vga-lowmem
      00000000000c0000-00000000000dffff (prio 1, rom): pc.rom
      00000000000e0000-00000000000fffff (prio 1, rom): alias isa-bios @pc.bios 0000000000020000-000000000003ffff
      00000000fd000000-00000000fdffffff (prio 1, ram): vga.vram
      00000000feb80000-00000000feb9ffff (prio 1, i/o): e1000-mmio
      00000000febb0000-00000000febb0fff (prio 1, i/o): vga.mmio
        00000000febb0000-00000000febb017f (prio 0, i/o): edid
        00000000febb0400-00000000febb041f (prio 0, i/o): vga ioports remapped
        00000000febb0500-00000000febb0515 (prio 0, i/o): bochs dispi interface
        00000000febb0600-00000000febb0607 (prio 0, i/o): qemu extended regs
      00000000fffc0000-00000000ffffffff (prio 0, rom): pc.bios
    00000000000a0000-00000000000bffff (prio 1, i/o): alias smram-region @pci 00000000000a0000-00000000000bffff
    00000000000c0000-00000000000c3fff (prio 1, ram): alias pam-rom @pc.ram 00000000000c0000-00000000000c3fff
    00000000000c4000-00000000000c7fff (prio 1, ram): alias pam-rom @pc.ram 00000000000c4000-00000000000c7fff
    00000000000c8000-00000000000cbfff (prio 1, ram): alias pam-rom @pc.ram 00000000000c8000-00000000000cbfff
    00000000000cb000-00000000000cdfff (prio 1000, ram): alias kvmvapic-rom @pc.ram 00000000000cb000-00000000000cdfff
    00000000000cc000-00000000000cffff (prio 1, ram): alias pam-rom @pc.ram 00000000000cc000-00000000000cffff
    00000000000d0000-00000000000d3fff (prio 1, ram): alias pam-rom @pc.ram 00000000000d0000-00000000000d3fff
    00000000000d4000-00000000000d7fff (prio 1, ram): alias pam-rom @pc.ram 00000000000d4000-00000000000d7fff
    00000000000d8000-00000000000dbfff (prio 1, ram): alias pam-rom @pc.ram 00000000000d8000-00000000000dbfff
    00000000000dc000-00000000000dffff (prio 1, ram): alias pam-rom @pc.ram 00000000000dc000-00000000000dffff
    00000000000e0000-00000000000e3fff (prio 1, ram): alias pam-rom @pc.ram 00000000000e0000-00000000000e3fff
    00000000000e4000-00000000000e7fff (prio 1, ram): alias pam-rom @pc.ram 00000000000e4000-00000000000e7fff
    00000000000e8000-00000000000ebfff (prio 1, ram): alias pam-ram @pc.ram 00000000000e8000-00000000000ebfff
    00000000000ec000-00000000000effff (prio 1, ram): alias pam-ram @pc.ram 00000000000ec000-00000000000effff
    00000000000f0000-00000000000fffff (prio 1, ram): alias pam-rom @pc.ram 00000000000f0000-00000000000fffff
    00000000fec00000-00000000fec00fff (prio 0, i/o): ioapic
    00000000fed00000-00000000fed003ff (prio 0, i/o): hpet
    00000000fee00000-00000000feefffff (prio 4096, i/o): apic-msi


```