{"id":15486578,"url":"https://github.com/stefanbossbaly/yocto-raspberry-distro","last_synced_at":"2025-10-05T13:29:36.898Z","repository":{"id":158440458,"uuid":"628703407","full_name":"StefanBossbaly/yocto-raspberry-distro","owner":"StefanBossbaly","description":"My personal Yocto distro that runs on arm64 hardware","archived":false,"fork":false,"pushed_at":"2023-09-03T14:46:53.000Z","size":52,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-19T07:15:46.563Z","etag":null,"topics":["raspberry-pi","yocto"],"latest_commit_sha":null,"homepage":"","language":"BitBake","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/StefanBossbaly.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-16T19:02:10.000Z","updated_at":"2023-04-21T22:23:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"1c03f047-0b4a-40f2-b333-adb18a14cf96","html_url":"https://github.com/StefanBossbaly/yocto-raspberry-distro","commit_stats":{"total_commits":27,"total_committers":1,"mean_commits":27.0,"dds":0.0,"last_synced_commit":"57004c307041552047d07fcbc49289f92bd578ec"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/StefanBossbaly/yocto-raspberry-distro","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StefanBossbaly%2Fyocto-raspberry-distro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StefanBossbaly%2Fyocto-raspberry-distro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StefanBossbaly%2Fyocto-raspberry-distro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StefanBossbaly%2Fyocto-raspberry-distro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/StefanBossbaly","download_url":"https://codeload.github.com/StefanBossbaly/yocto-raspberry-distro/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StefanBossbaly%2Fyocto-raspberry-distro/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278463325,"owners_count":25991175,"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","status":"online","status_checked_at":"2025-10-05T02:00:06.059Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["raspberry-pi","yocto"],"created_at":"2024-10-02T06:09:05.374Z","updated_at":"2025-10-05T13:29:36.851Z","avatar_url":"https://github.com/StefanBossbaly.png","language":"BitBake","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Yocto Raspberry Distro\n\nThe goal of this project to to house the various repositories layers needed to build a Yocto image for Raspberry Pi.\nThe repository will use git submodules to reference the `meta-*` layers and include Bitbake configuration files to ensure\nthat all layers are added correctly to the project. In the future I hope to add some convince scripts that will be able\nto configure the build area bases on user select criteria.\n\n## Why Yocto?\n\nYocto allows the building of an embedded Linux distro that is tailor made for a specific needs and platform while also being versatile\nto support other SoC/architectures if needed in the future (and given the prices and availability of pis, it is a very real possibility).\nWhile it is certainly possible to use a stripped down distro like Raspberry Pi OS Lite, the image is still 300MB+ and still has to be\nconfigured inorder to run you application software. With Yotco all the configuration is handled during the Bitbake process and the\noutput is a configured and ready to deploy image with all the software you need and nothing more.\n\n## Docker\n\nCurrently I use Fedora for my personal laptop (which is not a supported build environment). Regardless if you use a supported\nbuild environment natively, it is generally a good idea to use a container to ensure that all dependencies are meet. I use\nthe [crops/poky](https://github.com/crops/poky-container) container for my builds. Below is the command to launch a container\nwith work area mounted, just replace `$REPO_ROOT` with location of this cloned repository.\n\n```\ndocker run --rm -it --net=host -v $REPO_ROOT:/workdir crops/poky --workdir=/workdir\n```\n\n## Setup\n\nTo get started, simply `source` the `init-build` script in the Docker container with the desired target directory, like so:\n\n```\nsource init-build raspberrypi0-wifi\n```\n\nOnce that script is run, you bash shell should now have everything it needs to start Bitbaking.\n\n## Building\n\nTo build an image simply run the `bitbake` command. Currently there are two images in the `meta-application` layer:\n* `transit-board-dev-image`: Image that contains application and debug tools like gdb, objdump, and allows paswordless ssh\nroot access to the device.\n* `transit-board-prod-image`: Image that contains application and necessary dependencies.\n\n## Emulator\n\nOpenembedded provides support for the qemu emulator. It can be quite helpful when debugging build issues quickly without having\nthe need to deploy to an actual target device. Since I do my builds in a Docker container, I also have to run the emulator in the\ncontainer as well. To build for qemu, change the `MACHINE` variable to `qemuarm64` in the local.conf file. Then Bitbake the desired\nimage. Once complete you can run emulator using the command below:\n\n```\nrunqemu nographic slirp\n```\n\nWe use `nographic` since we want a headless instance and `slirp` since we are running in a container and tun/tap interface is not needed\nfor networking.\n\n## Authors\n\nStefan Bossbaly\n\n## Acknowledgments\n\n- [poky](https://git.yoctoproject.org/poky) \n- [meta-openembedded](https://git.openembedded.org/meta-openembedded) \n- [meta-raspberrypi](https://git.yoctoproject.org/meta-raspberrypi)\n- [meta-rust](https://github.com/meta-rust/meta-rust)\n- [meta-clang](https://github.com/kraj/meta-clang)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstefanbossbaly%2Fyocto-raspberry-distro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstefanbossbaly%2Fyocto-raspberry-distro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstefanbossbaly%2Fyocto-raspberry-distro/lists"}