Raspberry Pi Imaging Utility
- To install on Raspberry Pi OS, use
sudo apt update && sudo apt install rpi-imager
. - Download the latest version for Windows, macOS and Ubuntu from the Raspberry Pi downloads page.
Please see our official documentation.
- Install the build dependencies (Debian used as an example):
sudo apt install --no-install-recommends build-essential cmake git libgnutls28-dev
git clone --depth 1 https://github.com/raspberrypi/rpi-imager
sudo ./qt/build-qt.sh
This will build and install the version of Qt preferred for Raspberry Pi Imager into /opt/Qt/. You must use sudo
for the installation step to complete.
./create-appimage.sh
./Raspberry_Pi_Imager-*.AppImage
- Get the Qt online installer from: https://www.qt.io/download-open-source
- During installation, choose Qt 6.9 with Mingw64 64-bit toolchain.
- For building the installer, install Inno Setup scriptable install system: https://jrsoftware.org/isdl.php
- Install Visual Studio Code (or a derivative) and the Qt Extension Pack.
- It is assumed you already have a valid code signing certificate, and the Windows 10 Kit (SDK) installed.
Building Raspberry Pi Imager on Windows is best done with Visual Studio Code (or a derivative).
- Open Visual Studio Code, and select 'Clone repo'. Give it the git url of this project.
- Open the CMake plugin settings, and set the following Configure Args:
-DQt6_ROOT=C:\Qt\6.9.0\mingw_64
- or the equivalent path you installed Qt 6.9 to.-DMINGW64_ROOT=C:\Qt\Tools\mingw1310_64
- or the equivalent path you installed mingw64 to.-DENABLE_INNO_INSTALLER=ON
- to enable the Inno Setup installer, rather than the legacy NSIS installer.-DIMAGER_SIGNED_APP=ON
- to enable code signing for redistribution.
- In the CMake plugin tab, ensure you have selected the
MinSizeRel
variant if you intend to distribute to others. - In the CMake plugin tab, select the 'inno_installer' target, and build it
- Your resultant installer will be located in
%WORKSPACE%\build\installer
- Build a minimal Qt from source using our build script:
./qt/build-qt-macos.sh
- This builds only what's needed for rpi-imager, resulting in faster builds and smaller size
- See
qt/README-qt-build-macos.md
for detailed instructions
- Install Visual Studio Code (or a derivative), and the Qt Extension Pack.
- It is assumed you have an Apple developer subscription, and already have a "Developer ID" code signing certificate for distribution outside the Mac Store.
Building Raspberry Pi Imager on macOS is best done with Visual Studio Code (or a derivative).
- Open Visual Studio Code, and select 'Clone repo'. Give it the git url of this project.
- Open the CMake plugin settings, and set the following Configure Args:
-DQt6_ROOT=/opt/Qt/6.9.1/macos
- or the equivalent path you installed Qt 6.9 to.-DIMAGER_SIGNED_APP=ON
- to enable code signing.-DIMAGER_SIGNING_IDENTITY=$cn
- to specify the Developer ID Certificate Common Name.-DIMAGER_NOTARIZE_APP=ON
- to enable automatic notarization for distribution to others.-DIMAGER_NOTARIZE_KEYCHAIN_PROFILE=notarytool-password
- specify the name of the keychain item containing your Apple ID credentials for notarizing.
- In the CMake plugin tab, ensure you have selected the
MinSizeRel
variant if you intend to distribute to others. - In the CMake plugin tab, select the 'rpi_imager' target, and build it
- Your resultant DMG will be located at
$WORKSPACE/build/Raspberry Pi Imager-$VERSION.dmg
The Raspberry Pi Network installer (embedded imager) runs inside an operating system created by pi-gen-micro.
To build the entire system, you must first build our customised embedded qt:
./qt/build-qt-embedded.sh
Then build the embedded AppImage:
./create-embedded.sh
Package the appImage for use with pi-gen-micro and other Debian systems:
dpkg-buildpackage -uc -us --profile=embedded
And finally, import your new embedded imager into pi-gen-micro for packaging:
rm ${pi-gen-micro-root}/packages/rpi-imager-embedded*.deb
cp ../rpi-imager-embedded*.deb ${pi-gen-micro-root}/packages/
pushd ${pi-gen-micro-root}/packages/ && dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz && popd
If the application is started with "--repo [your own URL]" it will use a custom image repository. So can simply create another 'start menu shortcut' to the application with that parameter to use the application with your own images.
In order to understand usage of the application (e.g. uptake of Raspberry Pi Imager versions and which images and operating systems are most popular), Raspberry Pi Imager collects anonymous metrics (telemetry) by default. These metrics are used to prioritise and justify work on the Raspberry Pi Imager, and contain the following information:
- The URL of the OS you have selected
- The category of the OS you have selected
- The observed name of the OS you have selected
- The version of Raspberry Pi Imager
- A flag to say if Raspberry Pi Imager is being used on the Desktop or as part of the Network Installer
- The host operating system version (e.g. Windows 11)
- The host operating system architecture (e.g. arm64, x86_64)
- The host operating system locale name (e.g. en-GB)
If the Raspberry Pi Imager is being run a part of the Network Installer, Imager will also collect the revision of Raspberry Pi it is running on.
This web service is hosted by Heroku and only stores an incrementing counter using a Redis Sorted Set for each URL, operating system name and category per day in the eu-west-1
region and does not associate any personal data with those counts. This allows us to query the number of downloads over time and nothing else.
The last 1,500 requests to the service are logged for one week before expiring as this is the minimum log retention period for Heroku.
As the data is stored in aggregate form, only aggregate data is available to any viewer. See what we see at: rpi-imager-stats
The most convenient way to opt-out of anonymous metric collection is via the Raspberry Pi Imager UI:
- Select "App Options"
- Untoggle "Enable anonymous statistics (telemetry) collection"
- Press "Save"