{"id":13594774,"url":"https://github.com/raspberrypi/rpi-update","last_synced_at":"2025-10-01T09:30:36.440Z","repository":{"id":38845347,"uuid":"418458506","full_name":"raspberrypi/rpi-update","owner":"raspberrypi","description":"An easier way to update the firmware of your Raspberry Pi","archived":false,"fork":true,"pushed_at":"2024-09-10T13:27:23.000Z","size":161,"stargazers_count":143,"open_issues_count":17,"forks_count":18,"subscribers_count":14,"default_branch":"master","last_synced_at":"2024-09-28T10:03:27.686Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"Hexxeh/rpi-update","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/raspberrypi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-10-18T10:52:01.000Z","updated_at":"2024-09-25T06:31:30.000Z","dependencies_parsed_at":"2023-02-12T05:02:31.122Z","dependency_job_id":"dd9c44d5-e07f-40dc-b41f-cc5aae567e24","html_url":"https://github.com/raspberrypi/rpi-update","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raspberrypi%2Frpi-update","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raspberrypi%2Frpi-update/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raspberrypi%2Frpi-update/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raspberrypi%2Frpi-update/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raspberrypi","download_url":"https://codeload.github.com/raspberrypi/rpi-update/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234845351,"owners_count":18895742,"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":[],"created_at":"2024-08-01T16:01:39.005Z","updated_at":"2025-10-01T09:30:31.157Z","avatar_url":"https://github.com/raspberrypi.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"# rpi-update\n\nA tool to get the latest bleeding-edge firmware and kernel for your Raspberry Pi.\n\n# Notes\n\nThis is only intended for use with Raspberry Pi OS. If you are using a different\ndistribution then check with the maintainers if using rpi-update is safe.\n\nIf the distribution ships a custom kernel (e.g. BerryBoot), then it almost certainly is not\nsafe. Also differences in the usage of /boot and /opt/vc directories will\nlikely make it unsafe.\n\nEven on Raspberry Pi OS you should only use this with a good reason.\n\nThis gets you the latest bleeding edge kernel/firmware.\nThere is always the possibility of regressions.\n\nBug fixes and improvements will eventually make their way into new Raspberry Pi OS\nreleases and apt-get when they are considered sufficiently well tested.\n\nA good reason for using this would be if you like to help with the testing effort,\nand are happy to risk breakages and submit bug reports. These testers are welcome.\n\nAlso if you are suffering from a bug in current firmware (perhaps as one of\nthe reporters of the bug on github or forum) and a fix has been pushed out for\ntesting, then using rpi-update is the right way to get the fix until it makes\nits way into new Raspberry Pi OS images and apt-get.\n\nBacking up before updating is always advisable.\n\n## Installing\n\n### Installing under Raspberry Pi OS\n \nTo install the tool, run the following command:\n\n    sudo apt-get install rpi-update\n\n### Installing under other OSes\n\nTo install the tool, run the following command:\n\n    sudo curl -L --output /usr/bin/rpi-update https://raw.githubusercontent.com/raspberrypi/rpi-update/master/rpi-update \u0026\u0026 sudo chmod +x /usr/bin/rpi-update\n\n## Updating\n\nThen, to update your firmware, just run the following command:\n\n    sudo rpi-update\n\n## Activating\n\nAfter the firmware has been sucessfully updated, you'll need to reboot to load\nthe new firmware.\n\n## Options\n\nIf you'd like to set a different GPU/ARM memory split, then define `gpu_mem` in\n`/boot/firmware/config.txt`, or in older OSes `/boot/config.txt`.\n\nTo upgrade/downgrade to a specific firmware revision, specify its Git hash\n(from the https://github.com/raspberrypi/rpi-firmware repository) as follows:\n\n    sudo rpi-update fab7796df0cf29f9563b507a59ce5b17d93e0390\n\nYou can also specify a git branch in raspberrypi/rpi-firmware repo.\n\n    sudo rpi-update next\n\n## Using github artifacts from automated builds\n\nYou can also update the kernel to an automated github build from raspberrypi/linux.\nThese builds persist for 90 days, and won't be available after that time has elapsed.\n\n    sudo rpi-update pulls/5335 # update to most recent build from pull request 5335\n    sudo rpi-update ledoff     # update to a build PR'd from local branch named ledoff\n    sudo rpi-update 14a52e4d   # update to a build with hash 14a52e4d\n    sudo rpi-update rpi-6.2.y  # update to a latest build from branch rpi-6.2.y\n\nIf you only care about one build architecture you can specify the build architecture.\nOptions are: bcmrpi bcm2709 bcm2711 bcm2711_arm64 bcm2835 arm64 (last two are with upstream kernel config)\n\n    sudo rpi-update rpi-6.2.y:bcm2711  # update only bcm2711 kernel to latest build from branch rpi-6.2.y\n\n### Expert options\n\nThere are a number of options for experts you might like to use.  These are all\nenvironment variables you must set if you wish to use them.\n\n#### `UPDATE_SELF`\n\nBy default, `rpi-update` will attempt to update itself each time it is run.\nYou can disable this behavior by:\n\n    sudo UPDATE_SELF=0 rpi-update\n\n#### `SKIP_KERNEL`\n\n    sudo SKIP_KERNEL=1 rpi-update\n\nWill update everything **except** the `kernel.img` files and the kernel modules.\nUse with caution, some firmware updates might depend on a kernel update.\n\n#### `SKIP_BOOTLOADER`\nWill update everything except the bootloader EEPROM.\n\nTo revert previous updates to the local set of EEPROM binaries run:-\n```\nsudo rm -rf /lib/firmware/raspberrypi/bootloader-2711\nsudo rm -rf /lib/firmware/raspberrypi/bootloader-2712\nsudo apt reinstall rpi-eeprom\n```\n\n#### `SKIP_BACKUP`\n\n    sudo SKIP_BACKUP=1 rpi-update\n\nAvoids making backup of /boot and /lib/modules on first run.\n\n#### `SKIP_REPODELETE`\n\n    sudo SKIP_REPODELETE=1 rpi-update\n\nBy default the downloaded files (/root/.rpi-firmware) are deleted at end of update.\nUse this option to keep the files.\n\n#### `SKIP_VCLIBS`\n\n    sudo SKIP_VCLIBS=1 rpi-update\n\nWill update everything **except** the VideoCore libraries.\nUse this option to keep the existing VideoCore libraries if you do not want your\nlocal versions overwritten.\n\n#### `ROOT_PATH` and `BOOT_PATH`\n\n    sudo ROOT_PATH=/media/root BOOT_PATH=/media/boot rpi-update\n\nAllows you to perform an \"offline\" update, ie update firmware on an SD card you\nare not currently booted from. Useful for installing firmware/kernel to a\nnon-RPI customised image. Be careful, you must specify both options or neither.\nSpecifying only one will not work.\n\n#### `FW_SUBDIR`\n\n    sudo FW_SUBDIR=safe rpi-update\n\nAllows the firmware to be installed to a subdirectory of /boot. This feature is\nintended to support the `os_prefix` setting that can be used in `config.txt`.\nBy default, FW_SUBDIR is initialised to the value of `os_prefix` in effect when\nthe device was booted, so as to overwrite the \"running\" firmware. To explicitly\ninstall with no subdirectory (to install into /boot), use `FW_SUBDIR=/`.\n\n#### `PRUNE_MODULES`\n\nAllows you to delete unused module directories when doing an update. Set it equal to a non-zero value and it will remove all modules except the latest installed:\n\n    sudo PRUNE_MODULES=1 rpi-update\n\nwill remove previously installed module files. Use this option to free disk space used by older module updates.\n\n#### `JUST_CHECK`\n\nTo just get a list of commits contained in rpi-update since you last updated, run:\n\n    sudo JUST_CHECK=1 rpi-update\n\nThis won't update your firmware\n\n#### `GITHUB_API_TOKEN`\n\nBy default, `rpi-update` will not use a custom GitHub API token. If you run into rate limiting issues, you can supply an API token on the command line:\n\n\tsudo GITHUB_API_TOKEN=\u003cyour API token\u003e rpi-update\n\n#### `RPI_REBOOT`\n\nTo reboot after successfully update, run:\n\n    sudo RPI_REBOOT=1 rpi-update\n\nYou can use it to automate updates.\n\n## Troubleshooting\n\nThere are two possible problems related to SSL certificates that may prevent\nthis tool from working.\n\n-   The time may be set incorrectly on your Raspberry Pi, which you can fix\n    by setting the time using NTP.\n\n        sudo apt-get install ntpdate\n        sudo ntpdate -u ntp.ubuntu.com\n\n-   The other possible issue is that you might not have the `ca-certificates`\n    package installed, and so GitHub's SSL certificate isn't trusted. If you are\n    on Debian, you can resolve this by typing:\n\n        sudo apt-get install ca-certificates\n\nPi-hole and similar DNS based may stop this tool from working.\nMake sure github.com domains are not blocked. (e.g. codeload.github.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraspberrypi%2Frpi-update","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraspberrypi%2Frpi-update","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraspberrypi%2Frpi-update/lists"}