{"id":16898619,"url":"https://github.com/afbjorklund/minimal-buildroot","last_synced_at":"2025-04-11T06:30:37.859Z","repository":{"id":92836052,"uuid":"313428255","full_name":"afbjorklund/minimal-buildroot","owner":"afbjorklund","description":"Minimal buildroot for amd64 and arm64","archived":false,"fork":false,"pushed_at":"2023-10-18T21:34:21.000Z","size":219,"stargazers_count":14,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-06T10:13:16.574Z","etag":null,"topics":["buildroot"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/afbjorklund.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"support/docker/Dockerfile","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-16T21:12:47.000Z","updated_at":"2025-03-05T17:45:14.000Z","dependencies_parsed_at":"2024-10-13T17:44:41.422Z","dependency_job_id":"c119a17e-774c-4bdc-a222-79f7eb7fb7c6","html_url":"https://github.com/afbjorklund/minimal-buildroot","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afbjorklund%2Fminimal-buildroot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afbjorklund%2Fminimal-buildroot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afbjorklund%2Fminimal-buildroot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afbjorklund%2Fminimal-buildroot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/afbjorklund","download_url":"https://codeload.github.com/afbjorklund/minimal-buildroot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248355343,"owners_count":21089995,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["buildroot"],"created_at":"2024-10-13T17:44:33.716Z","updated_at":"2025-04-11T06:30:37.490Z","avatar_url":"https://github.com/afbjorklund.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Minimal Buildroot\n\nTrying to build a minimal buildroot for booting using emulator and as a virtual machine.\n\nJust using the default setup from buildroot, will add custom kernel and software later.\n\n* `board/`\n\n* `configs/`\n\n| Target   | amd64 (x86_64)                    | arm64 (aarch64)               |\n| -------- | --------------------------------- | ----------------------------- |\n| QEMU     | qemu/x86_64                       | qemu/aarch64-virt             |\n|          | qemu_x86_64_defconfig             | qemu_aarch64_virt_defconfig   |\n| UEFI     | pc                                | aarch64-efi                   |\n|          | pc_x86_64_efi_defconfig           | aarch64_efi_defconfig         |\n\nJust copied these files from buildroot, since it was hard to see the forest for the trees.\n\nSome quirks: the x86_64 targets builds ext2 (not ext4), and without support for \"virtio\".\n\nThe name of the kernel and format of the initrd might also vary a bit, between the arch.\n\n* `kernel/`\n\n| Linux    | amd64 (x86_64)                    | arm64 (aarch64)               |\n| -------- | --------------------------------- | ----------------------------- |\n| Kernel   | kernel/x86_64_defconfig           | kernel/aarch64_defconfig      |\n|          | linux/arch/x86/configs/           | linux/arch/arm64/configs/     |\n\nThese default configs were copied from the Linux kernel, and seen with \"make defconfig\".\n\n----\n\nNew targets (based on UEFI above), making an `.img` disk with boot/root ext4 partitions.\n\n|          | amd64 (x86_64)                    | arm64 (aarch64)                   |\n| -------- | --------------------------------- | --------------------------------- |\n| Image    | img/x86_64                        | img/aarch64                       |\n|          | img_x86_64_defconfig              | img_aarch64_defconfig             |\n|          | img/x86_64/linux.config           | img/aarch64/linux.config          |\n\namd64\n```\nDisk disk-amd64.img: 136,5 MiB, 142656000 bytes, 278625 sectors\n\nDevice          Start    End Sectors  Size Type\ndisk-amd64.img1    64  32831   32768   16M EFI System\ndisk-amd64.img2 32832 278591  245760  120M Linux root (x86)\n```\n\narm64\n```\nDisk disk-arm64.img: 232 MiB, 243270144 bytes, 475137 sectors\n\nDevice          Boot Start    End Sectors  Size Id Type\ndisk-arm64.img1          1  65536   65536   32M ef EFI (FAT-12/16/32)\ndisk-arm64.img2      65537 475136  409600  200M 83 Linux\n```\n\nNew targets (based on UEFI above), making an `.iso` (ISO-9660) output instead of an `.img`.\n\n|          | amd64 (x86_64)                    | arm64 (aarch64)                   |\n| -------- | --------------------------------- | --------------------------------- |\n| ISO      | iso/x86_64                        | iso/aarch64                       |\n|          | iso_x86_64_defconfig              | iso_aarch64_defconfig             |\n|          | iso/x86_64/linux-extras.config    | iso/aarch64/linux-extras.config   |\n\namd64\n```\nboot-amd64.iso\n├── boot\n│   ├── initrd.img\n│   └── vmlinuz\n├── boot.catalog\n└── EFI\n    └── BOOT\n        ├── bootx64.efi\n        ├── efiboot.img\n        └── grub.cfg\n```\n\narm64\n```\nboot-arm64.iso\n├── boot\n│   ├── initrd.img\n│   └── vmlinuz\n├── boot.catalog\n└── EFI\n    └── BOOT\n        ├── bootaa64.efi\n        ├── efiboot.img\n        └── grub.cfg\n```\n\n----\n\n* `buildroot/`\n\nThis is the buildroot upstream, it is not modified except for the \"output\" directory.\n\n* `output/`\n\nThis is where the sources and build happens, and where the output ends up afterwards.\n\n```bash\ngit clone --branch=2023.02.x https://github.com/buildroot/buildroot\ncd buildroot\nmake BR2_EXTERNAL=.. \u003c*_defconfig\u003e\nmake\n```\n\n* `support/`\n\nSupport files for building, such as a container image with all required build tools.\n\n* `container/`\n\nContains helper files for constructing the container image from the rootfs archive.\n\n----\n\n```text\n93M  output/images/disk-amd64.img\n63M  output/images/disk-arm64.img\n```\n\n* [qemu-img-amd64.sh](qemu-img-amd64.sh)\n* [qemu-img-arm64.sh](qemu-img-arm64.sh)\n\nStart the emulator directly with the kernel and the rootfs in the same terminal window.\n\n* [run-img-amd64.sh](run-img-amd64.sh)\n* [run-img-arm64.sh](run-img-arm64.sh)\n\nStart the emulator with the complete system image with grub in a new graphical window.\n\n```text\n12M  output/images/boot-amd64.iso\n29M  output/images/boot-arm64.iso\n```\n\n* [qemu-iso-amd64.sh](qemu-iso-amd64.sh)\n* [qemu-iso-arm64.sh](qemu-iso-arm64.sh)\n\nStart the emulator directly with the kernel and the initrd in the same terminal window.\n\n* [run-iso-amd64.sh](run-iso-amd64.sh)\n* [run-iso-arm64.sh](run-iso-arm64.sh)\n\nStart the emulator from the UEFI CD boot image instead of disk, otherwise same as above.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fafbjorklund%2Fminimal-buildroot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fafbjorklund%2Fminimal-buildroot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fafbjorklund%2Fminimal-buildroot/lists"}