Skip to content

Instantly share code, notes, and snippets.

@waveform80
Created January 30, 2020 18:11
Show Gist options
  • Save waveform80/d96ad595cf45bbb86bdba8033214db9a to your computer and use it in GitHub Desktop.
Save waveform80/d96ad595cf45bbb86bdba8033214db9a to your computer and use it in GitHub Desktop.
Some graphs of the ubuntu boot sequence
# Build with dot -Tpng ubuntu-classic-boot.dot | display png:-
digraph G {
graph [rankdir=TB];
node [fontsize=10, fontname="Arial"];
edge [fontsize=10, fontname="Arial"];
/* files */
node [shape=rect, style=filled, fillcolor="#7ec2cc", penwidth=0];
bootcode_bin [label="/boot/bootcode.bin"];
device_tree [label="/boot/bcm*.dtb"];
start_elf [label="/boot/start*.elf;\n/boot/fixup*.dat"];
initrd_img [label="/boot/initrd.img"];
kernel_img [label="/boot/vmlinuz"];
uboot_bin [label="/boot/uboot*.bin"];
config_txt [label="/boot/config.txt"];
cmdline_txt [label="/boot/cmdline.txt"];
boot_scr [label="/boot/uboot.env\nor\n/boot/boot.scr"];
//uboot_env [label="/boot/uboot.env"];
flash_kernel [label="/usr/sbin/flash-kernel"];
/* processes */
node [shape=parallelogram, fillcolor="#f54e4e", penwidth=0];
bootcode_bin_exe [label="bootcode.bin"];
start_elf_exe [label="start*.elf"];
initrd_img_exe [label="initrd.img"];
kernel_img_exe [label="vmlinuz"];
uboot_bin_exe [label="uboot*.bin"];
device_tree_mem [label="<device-tree>", fillcolor="#e09392"];
/* packages */
node [shape=ellipse, fillcolor="#7ec27e", penwidth=0];
base [label="base image"];
linux_firmware [label="linux-firmware-raspi2"];
linux_modules [label="linux-modules-*-raspi2"];
initramfs_tools [label="initramfs-tools"];
flash_kernel_pkg [label="flash-kernel"];
kernel [label="linux-image-*"];
uboot [label="u-boot-rpi"];
edge [style=bold, label="runs"];
bootcode_bin_exe->start_elf_exe;
start_elf_exe->uboot_bin_exe;
start_elf_exe->device_tree_mem [label="creates"];
uboot_bin_exe->kernel_img_exe;
kernel_img_exe->initrd_img_exe;
edge [style=solid, label="contained\nin"];
flash_kernel->flash_kernel_pkg;
boot_scr->flash_kernel_pkg;
bootcode_bin->linux_firmware;
cmdline_txt->base;
config_txt->base;
device_tree->linux_modules;
initrd_img->initramfs_tools;
kernel_img->kernel;
start_elf->linux_firmware;
uboot_bin->uboot;
edge [style=dashed, label="installed\nby"];
boot_scr->flash_kernel;
bootcode_bin->linux_firmware;
cmdline_txt->uboot [label="modified\nby"];
config_txt->uboot [label="modified\nby"];
device_tree->flash_kernel;
initrd_img->flash_kernel;
kernel_img->flash_kernel;
start_elf->linux_firmware;
uboot_bin->uboot;
edge [style=solid, label="refs"];
config_txt->cmdline_txt;
config_txt->uboot_bin;
config_txt->kernel_img;
config_txt->initrd_img;
boot_scr->kernel_img;
boot_scr->initrd_img;
edge [style=solid, label="uses"];
bootcode_bin_exe->config_txt;
bootcode_bin_exe->bootcode_bin;
start_elf_exe->config_txt;
start_elf_exe->cmdline_txt;
start_elf_exe->start_elf;
start_elf_exe->device_tree;
uboot_bin_exe->uboot_bin;
kernel_img_exe->kernel_img;
initrd_img_exe->initrd_img;
uboot_bin_exe->boot_scr;
uboot_bin_exe->device_tree_mem;
kernel_img_exe->device_tree_mem;
start_elf_exe->device_tree_mem;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment