{"id":18714900,"url":"https://github.com/arenekosreal/raspberrypi4-uefi","last_synced_at":"2026-06-06T06:05:11.839Z","repository":{"id":37541764,"uuid":"330358889","full_name":"arenekosreal/raspberrypi4-uefi","owner":"arenekosreal","description":"UEFI, firmware and other packages for Raspberry Pi 4B in UEFI mode","archived":false,"fork":false,"pushed_at":"2024-04-25T02:21:43.000Z","size":743,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-04-26T02:39:59.143Z","etag":null,"topics":["arch-linux","archlinux","linux","raspberry-pi-4","raspberrypi","uefi"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"wtfpl","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arenekosreal.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}},"created_at":"2021-01-17T09:50:04.000Z","updated_at":"2024-04-25T01:27:09.000Z","dependencies_parsed_at":"2023-12-14T09:27:38.919Z","dependency_job_id":"41d6e4a9-570b-4151-be3f-8f189aacf266","html_url":"https://github.com/arenekosreal/raspberrypi4-uefi","commit_stats":null,"previous_names":["arenekosreal/raspberrypi4-uefi"],"tags_count":109,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arenekosreal%2Fraspberrypi4-uefi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arenekosreal%2Fraspberrypi4-uefi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arenekosreal%2Fraspberrypi4-uefi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arenekosreal%2Fraspberrypi4-uefi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arenekosreal","download_url":"https://codeload.github.com/arenekosreal/raspberrypi4-uefi/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223518546,"owners_count":17158689,"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":["arch-linux","archlinux","linux","raspberry-pi-4","raspberrypi","uefi"],"created_at":"2024-11-07T13:06:42.194Z","updated_at":"2026-06-06T06:05:06.786Z","avatar_url":"https://github.com/arenekosreal.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Files for Booting Raspberry Pi in UEFI mode\n\n![LICENCE.WTFPL](https://img.shields.io/github/license/zhanghua000/raspberrypi-uefi-boot?logoColor=9cf\u0026style=flat-square \"WTFPL LICENCE\")\n![Auto Build Arch Packages](https://github.com/zhanghua000/raspberrypi-uefi-boot/workflows/Auto%20Build%20Arch%20Packages/badge.svg)\n\n## What is this?\n\nFiles needed for booting Raspberry Pi 4 in UEFI mode.  \n\n## How to use?\n\n`PKGBUILD` file is designed for Arch Build System (ABS), you can know more about it at [there](https://wiki.archlinux.org/index.php/Arch_Build_System). Here are the steps for using these files correctly:\n\n- Clone this repository.\n- [Build](#build) packages.\n- [Install](#install) package by using `pacman -U`\n- [Adjust bootloader](#adjust-bootloader)\n\n## Build\n\nWe are using GitHub Action completely to build those packages now. It has those benifits:\n\n1. No need to set dependencies manually, we just use GitHub Action's `needs` key to define that. This will build all packages as many as possible.\n\n2. No need to maintain two build workflows. If build workflow passes on GitHub Action, it will pass locally.\n\n3. You can build those packages on non-archlinuxarm distributions, like ubuntu.\n\nHowewer, this means that you may not build packages as easy as old days. But we still provide a simple guide here:\n\n1. Install [act](https://github.com/nektos/act), which is the magic to let GitHub Action run locally.\n\n2. Simply run `act -e ./act/events/build.json` and everything should be fine. If everything works correctly, you will find packages at `pkgdest` directory in the repository.\n\n\u003e [!NOTE]\n\u003e You can always build packages on archlinuxarm by running commands like `makepkg` `makechrootpkg` in the `PKGBUILD` directory.\n\u003e Using act can allow building packages on non-archlinuxarm distributions. But built packages are still only available to archlinuxarm.\n\n\u003e [!TIP]\n\u003e If sometimes there is a network error to mirror.archlinuxarm.org, you can simply retry after a cup of cola.\n\n\u003e [!IMPORTANT]\n\u003e If you use qemu-user-static to emulate aarch64 on x86_64, you have to ensure `C` in its flags. Or you will fail to install dependencies.\n\n## Install\n\nMost of the time you need to install packages provide `uefi-raspberrypi4` and `raspberrypi-overlays`.\nIf you want to install dependencies used for building, you can install `raspberrypi4-uefi-devel-meta` meta package.\nHere are also some pacman hooks maybe useful for you at [pacman-hooks](./pacman-hooks) folder, you can check `README.md` here for how to use them.\n\n## Adjust bootloader\n\nYou can choose any bootloader supports UEFI, like `grub` or `systemd-boot`.\nYou may also need to migrate your kernel parameters, they used to be staying in `/boot/cmdline.txt`, you may consider using your bootloader's configuration instead.\nYou can take a look at [NOTE](#note) for more info.\n\n## Why not upload to AUR or Arch Linux ARM repository?\nThey are [here](https://github.com/archlinuxarm/PKGBUILDs/pull/1958), but this PR has not been merged.\nIf you think pacman or other wrapper complains about not found these packages, please add them to `IgnorePkg` in `/etc/pacman.conf`\n\n## NOTE\n\n1. Backup your Pi's files or at least backup boot partition. Or you may have to reinstall your original system.  \n2. UEFI firmware is experimental, that means maybe some features may not work properly. You can get more infomation at [there](https://github.com/pftf/RPi4)  \n3. Install grub with `--removeable` flag, or you have to choose boot from `/EFI/grub/grubaa64.efi` file in UEFI manually when your Pi is powering on. Also you can add a boot entry in UEFI manualy to solve this. For systemd-boot, `--no-variables` should be OK.\n4. According to kernel [documentation](https://www.kernel.org/doc/Documentation/arm64/booting.rst), a compressed aarch64 kernel does not have a decompressor, so you have to choose a bootloader which can do the decompression job. GRUB works well on Raspberry Pi 4B even with the compressed vmlinuz kernel.  \n5. GRUB may create some useless entries in advanced menu, like booting from vmlinux without initramfs, booting from Image without initramfs and so on, you can remove them as you like, booting from vmlinuz with initramfs works well.  \n\n## References\n\nUEFI provided by [this](https://github.com/pftf/RPi4) project. Thanks to [pftf](https://github.com/pftf) and others' contribution, we can use UEFI Firmware in RaspberryPi.  \nOverlays provided by [raspberrypi/firmware](https://github.com/raspberrypi/firmware).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farenekosreal%2Fraspberrypi4-uefi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farenekosreal%2Fraspberrypi4-uefi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farenekosreal%2Fraspberrypi4-uefi/lists"}