{"id":40186224,"url":"https://github.com/info-beamer/rpi-eeprom-tools","last_synced_at":"2026-01-19T19:07:12.187Z","repository":{"id":206514192,"uuid":"717092853","full_name":"info-beamer/rpi-eeprom-tools","owner":"info-beamer","description":"Tools for working with the Pi4/Pi5 EEPROM firmware files","archived":false,"fork":false,"pushed_at":"2025-12-15T15:16:47.000Z","size":16,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-18T20:23:50.650Z","etag":null,"topics":["eeprom","pi4","pi5","raspberry-pi"],"latest_commit_sha":null,"homepage":"","language":"Python","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/info-beamer.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-11-10T14:41:54.000Z","updated_at":"2025-12-15T15:16:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"550509aa-da0e-4842-a338-b86590041b8b","html_url":"https://github.com/info-beamer/rpi-eeprom-tools","commit_stats":null,"previous_names":["info-beamer/rpi-eeprom-tools"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/info-beamer/rpi-eeprom-tools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/info-beamer%2Frpi-eeprom-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/info-beamer%2Frpi-eeprom-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/info-beamer%2Frpi-eeprom-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/info-beamer%2Frpi-eeprom-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/info-beamer","download_url":"https://codeload.github.com/info-beamer/rpi-eeprom-tools/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/info-beamer%2Frpi-eeprom-tools/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28580733,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T19:06:42.549Z","status":"ssl_error","status_checked_at":"2026-01-19T19:06:42.040Z","response_time":67,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["eeprom","pi4","pi5","raspberry-pi"],"created_at":"2026-01-19T19:07:10.592Z","updated_at":"2026-01-19T19:07:12.172Z","avatar_url":"https://github.com/info-beamer.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pi4 / Pi5 EEPROM tools\n\nCreated for use by [info-beamer hosted](https://info-beamer.com): They allow you to\nmodify the pieeprom EEPROM images used for the Pi4 and Pi5. You can inspect those\nEEPROM files and modify some of their content for fun and profit :)\n\nSomewhat based on https://github.com/raspberrypi/rpi-eeprom/blob/master/rpi-eeprom-config\n\n## Usage:\n\nFetch one of the EEPROM files from the [firmware repository](https://github.com/raspberrypi/rpi-eeprom):\n\n```\n$ wget https://github.com/raspberrypi/rpi-eeprom/raw/master/firmware-2711/latest/pieeprom-2023-05-11.bin -o pieeprom.bin\n```\n\n### Inspecting an EEPROM file\n\n```\n$ ./pi-eeprom-ls pieeprom.bin\neeprom version: 4fd8f1f3, 2023-05-11 (pi4)\n-----------------------------------\n\u003cChunkBoot: \u003cbootsys\u003e         60424 @ 0x00000000 /      0\u003e\n\u003cChunkFile: bootmain         226258 @ 0x0000ec20 /  60448\u003e\n\u003cChunkFile: memsys00.bin      14328 @ 0x00047000 / 290816\u003e\n\u003cChunkFile: memsys01.bin      12946 @ 0x0004a810 / 305168\u003e\n\u003cChunkFile: memsys02.bin      11918 @ 0x0004dac0 / 318144\u003e\n\u003cChunkFile: memsys03.bin      11650 @ 0x00050968 / 330088\u003e\n\u003cChunkFile: memsys04.bin      13659 @ 0x00053708 / 341768\u003e\n\u003cChunkFile: memsys05.bin      13914 @ 0x00056c80 / 355456\u003e\n\u003cChunkFile: memsys06.bin      13005 @ 0x0005a2f8 / 369400\u003e\n\u003cChunkFile: memsys07.bin      13533 @ 0x0005d5e0 / 382432\u003e\n\u003cChunkFile: memsys08.bin      12596 @ 0x00060ad8 / 395992\u003e\n\u003cChunkFile: mcb.bin            4157 @ 0x00063c28 / 408616\u003e\n\u003cChunkFile: vl805hub.bin       7012 @ 0x00064c80 / 412800\u003e\n\u003cChunkFile: vl805mcu.bin      60435 @ 0x00066800 / 419840\u003e\n\u003cChunkFile: logo.bin           2410 @ 0x00075430 / 480304\u003e\n\u003cChunkFile: font.bin           8803 @ 0x00075db8 / 482744\u003e\n\u003cChunkFile: qrcode.bin         1586 @ 0x00078038 / 491576\u003e\n\u003cChunkConf: pubkey.bin         1024 @ 0x00079000 / 495616\u003e\n\u003cChunkConf: bootconf.sig       1024 @ 0x0007a000 / 499712\u003e\n\u003cChunkConf: bootconf.txt         54 @ 0x0007b000 / 503808\u003e\n-[ bootconf.txt ]------------------\n[all]\nBOOT_UART=0\nWAKE_ON_GPIO=1\nPOWER_OFF_ON_HALT=0\n\n\n-[ bootconf.sig ]------------------\n00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n-[ pubkey.bin ]--------------------\n00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n```\n\n### Extracting EEPROM content\n\nYou can extract and decompress the files within an EEPROM image into individual files:\n\n```\n$ mkdir pieeprom\n$ ./pi-eeprom-extract pieeprom.bin pieeprom\n$ ls -l pieeprom\ntotal 720\n-rw-rw-r-- 1 dividuum dividuum  60424 Nov 10 15:29 boot\n-rw-rw-r-- 1 dividuum dividuum   1024 Nov 10 15:29 bootconf.sig\n-rw-rw-r-- 1 dividuum dividuum     54 Nov 10 15:29 bootconf.txt\n-rw-rw-r-- 1 dividuum dividuum 244964 Nov 10 15:29 bootmain\n-rw-rw-r-- 1 dividuum dividuum  27404 Nov 10 15:29 font.bin\n-rw-rw-r-- 1 dividuum dividuum  12844 Nov 10 15:29 logo.bin\n-rw-rw-r-- 1 dividuum dividuum   5440 Nov 10 15:29 mcb.bin\n-rw-rw-r-- 1 dividuum dividuum  20492 Nov 10 15:29 memsys00.bin\n-rw-rw-r-- 1 dividuum dividuum  20492 Nov 10 15:29 memsys01.bin\n-rw-rw-r-- 1 dividuum dividuum  20492 Nov 10 15:29 memsys02.bin\n-rw-rw-r-- 1 dividuum dividuum  20492 Nov 10 15:29 memsys03.bin\n-rw-rw-r-- 1 dividuum dividuum  20492 Nov 10 15:29 memsys04.bin\n-rw-rw-r-- 1 dividuum dividuum  20492 Nov 10 15:29 memsys05.bin\n-rw-rw-r-- 1 dividuum dividuum  20492 Nov 10 15:29 memsys06.bin\n-rw-rw-r-- 1 dividuum dividuum  20492 Nov 10 15:29 memsys07.bin\n-rw-rw-r-- 1 dividuum dividuum  20492 Nov 10 15:29 memsys08.bin\n-rw-rw-r-- 1 dividuum dividuum   1024 Nov 10 15:29 pubkey.bin\n-rw-rw-r-- 1 dividuum dividuum  40044 Nov 10 15:29 qrcode.bin\n-rw-rw-r-- 1 dividuum dividuum   9446 Nov 10 15:29 vl805hub.bin\n-rw-rw-r-- 1 dividuum dividuum  86680 Nov 10 15:29 vl805mcu.bin\n\n$ file pieeprom/bootmain \npieeprom/bootmain: ELF 32-bit LSB executable, Broadcom VideoCore III, version 1 (SYSV), statically linked, stripped\n\n$ gimp pieeprom/logo.bin\n```\n\n### Rewriting bootconf.txt\n\nThis can be used to create files needed for the update process (see [here](https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#eeprom-update-files)):\n\n```\n$ ./pi-eeprom-update pieeprom.bin updated.bin updated.sig updated.ver\n```\n\nThis will create three new files. `updated.bin` contains the modified EEPROM, `updated.sig` is a signature file and\n`updated.ver` contains the version number of the EEPROM.\n\nUse\n\n```\n$ ./pi-eeprom-ls updated.bin \n```\n\nto confirm that these changes are have been made.\n\n### Recompressing the firmware files\n\nNot sure why you would do that, but it here it is. Be sure to run `make` first so `compress.so` gets built. Otherwise the\ncompression is shit:\n\n```\n$ make\ngcc compress.c -O3 -shared -o compress.so\n$ ./pi-eeprom-recompress pieeprom.bin updated.bin\n\n$ ./pi-eeprom-ls pieeprom.bin |grep bootmain\n\u003cChunkFile: bootmain         226258 @ 0x0000ec20 /  60448\u003e\n\n$ ./pi-eeprom-ls updated.bin |grep bootmain\n\u003cChunkFile: bootmain         223675 @ 0x0000ec20 /  60448\u003e\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfo-beamer%2Frpi-eeprom-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finfo-beamer%2Frpi-eeprom-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfo-beamer%2Frpi-eeprom-tools/lists"}