Add README
This commit is contained in:
parent
f20223c36b
commit
6fb086be6b
105
README.md
105
README.md
|
@ -1,103 +1,6 @@
|
||||||
# Raspberry Pi image specs
|
This is a fork of https://salsa.debian.org/raspi-team/image-specs/-/tree/master
|
||||||
|
|
||||||
This repository contains the files with which the images referenced at
|
been playing around with using their vmdb2 specfile to build debian image for raspberry pi,
|
||||||
https://wiki.debian.org/RaspberryPiImages have been built.
|
as a starting point for building the peach image
|
||||||
|
|
||||||
## Option 1: Downloading an image
|
not sure this is the best way yet, but its working
|
||||||
|
|
||||||
See https://wiki.debian.org/RaspberryPiImages for where to obtain the
|
|
||||||
latest pre-built image.
|
|
||||||
|
|
||||||
## Option 2: Building your own image
|
|
||||||
|
|
||||||
If you prefer, you can build a Debian buster Raspberry Pi image
|
|
||||||
yourself. If you are reading this document online, you should first
|
|
||||||
clone this repository:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
git clone --recursive https://salsa.debian.org/raspi-team/image-specs.git
|
|
||||||
cd image-specs
|
|
||||||
```
|
|
||||||
|
|
||||||
For this you will first need to install the following packages on a
|
|
||||||
Debian Buster (10) or higher system:
|
|
||||||
|
|
||||||
* vmdb2 (>= 0.17)
|
|
||||||
* dosfstools
|
|
||||||
* binfmt-support
|
|
||||||
* qemu-user-static
|
|
||||||
* time
|
|
||||||
* kpartx
|
|
||||||
|
|
||||||
To install these (as root):
|
|
||||||
```shell
|
|
||||||
apt install -y vmdb2 dosfstools qemu-user-static binfmt-support time kpartx
|
|
||||||
```
|
|
||||||
|
|
||||||
Do note that –at least currently– vmdb2 uses some syntax that is available
|
|
||||||
only in the version in testing (Bullseye).
|
|
||||||
|
|
||||||
If debootstrap still fails with exec format error, try
|
|
||||||
running `dpkg-reconfigure qemi-user-static`. This calls
|
|
||||||
`/var/lib/dpkg/info/qemu-user-static.postinst` which uses binfmt-support
|
|
||||||
to register the executable format with /usr/bin/qemu-$fmt-static
|
|
||||||
|
|
||||||
This repository includes a master YAML recipe (which is basically a
|
|
||||||
configuration file) for all of the generated images, diverting as
|
|
||||||
little as possible in a parametrized way. The master recipe is
|
|
||||||
[raspi_master.yaml](raspi_master.yaml).
|
|
||||||
|
|
||||||
A Makefile is supplied to drive the build of the recipes into images —
|
|
||||||
`raspi_0w` (for the Raspberry Pi 0, 0w and 1, models A and B),
|
|
||||||
`raspi_2` (for the Raspberry Pi 2, models A and B), `raspi_3`
|
|
||||||
(for all models of the Raspberry Pi 3), and `raspi_4` (for all
|
|
||||||
models of the Raspberry Pi 4). Some portions of building the image
|
|
||||||
will require root privileges, the you'll need to execute *make*
|
|
||||||
below as root. That being said, if you want to build the
|
|
||||||
default image for a Raspberry Pi 3B+, you can just issue:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
make raspi_3.img
|
|
||||||
```
|
|
||||||
|
|
||||||
You might also want to edit them to customize the built image. If you
|
|
||||||
want to start from the platform-specific recipe, you can issue:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
make raspi_3.yaml
|
|
||||||
```
|
|
||||||
The recipe drives [vmdb2](https://vmdb2.liw.fi/), the successor to
|
|
||||||
`vmdebootstrap`. Please refer to [its
|
|
||||||
documentation](https://vmdb2.liw.fi/documentation/) for further
|
|
||||||
details; it is quite an easy format to understand.
|
|
||||||
|
|
||||||
Copy the generated file to a name descriptive enough for you (say,
|
|
||||||
`my_raspi.yaml`). Once you have edited the recipe for your specific
|
|
||||||
needs, you can generate the image by issuing the following (as root):
|
|
||||||
|
|
||||||
```shell
|
|
||||||
vmdb2 --rootfs-tarball=my_raspi.tar.gz --output \
|
|
||||||
my_raspi.img my_raspi.yaml --log my_raspi.log
|
|
||||||
```
|
|
||||||
|
|
||||||
This is, just follow what is done by the `_build_img` target of the Makefile.
|
|
||||||
|
|
||||||
## Installing the image onto the Raspberry Pi
|
|
||||||
|
|
||||||
Plug an SD card which you would like to entirely overwrite into your SD card reader.
|
|
||||||
|
|
||||||
Assuming your SD card reader provides the device `/dev/mmcblk0`
|
|
||||||
(**Beware** If you choose the wrong device, you might overwrite
|
|
||||||
important parts of your system. Double check it's the correct
|
|
||||||
device!), copy the image onto the SD card:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
sudo dd if=raspi_3.img of=/dev/mmcblk0 bs=64k oflag=dsync status=progress
|
|
||||||
```
|
|
||||||
|
|
||||||
Then, plug the SD card into the Raspberry Pi, and power it up.
|
|
||||||
|
|
||||||
The image uses the hostname `rpi0w`, `rpi2`, `rpi3`, or `rpi4` depending on the
|
|
||||||
target build. The provided image will allow you to log in with the
|
|
||||||
`root` account with no password set, but only logging in at the
|
|
||||||
physical console (be it serial or by USB keyboard and HDMI monitor).
|
|
|
@ -0,0 +1,103 @@
|
||||||
|
# Raspberry Pi image specs
|
||||||
|
|
||||||
|
This repository contains the files with which the images referenced at
|
||||||
|
https://wiki.debian.org/RaspberryPiImages have been built.
|
||||||
|
|
||||||
|
## Option 1: Downloading an image
|
||||||
|
|
||||||
|
See https://wiki.debian.org/RaspberryPiImages for where to obtain the
|
||||||
|
latest pre-built image.
|
||||||
|
|
||||||
|
## Option 2: Building your own image
|
||||||
|
|
||||||
|
If you prefer, you can build a Debian buster Raspberry Pi image
|
||||||
|
yourself. If you are reading this document online, you should first
|
||||||
|
clone this repository:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
git clone --recursive https://salsa.debian.org/raspi-team/image-specs.git
|
||||||
|
cd image-specs
|
||||||
|
```
|
||||||
|
|
||||||
|
For this you will first need to install the following packages on a
|
||||||
|
Debian Buster (10) or higher system:
|
||||||
|
|
||||||
|
* vmdb2 (>= 0.17)
|
||||||
|
* dosfstools
|
||||||
|
* binfmt-support
|
||||||
|
* qemu-user-static
|
||||||
|
* time
|
||||||
|
* kpartx
|
||||||
|
|
||||||
|
To install these (as root):
|
||||||
|
```shell
|
||||||
|
apt install -y vmdb2 dosfstools qemu-user-static binfmt-support time kpartx
|
||||||
|
```
|
||||||
|
|
||||||
|
Do note that –at least currently– vmdb2 uses some syntax that is available
|
||||||
|
only in the version in testing (Bullseye).
|
||||||
|
|
||||||
|
If debootstrap still fails with exec format error, try
|
||||||
|
running `dpkg-reconfigure qemi-user-static`. This calls
|
||||||
|
`/var/lib/dpkg/info/qemu-user-static.postinst` which uses binfmt-support
|
||||||
|
to register the executable format with /usr/bin/qemu-$fmt-static
|
||||||
|
|
||||||
|
This repository includes a master YAML recipe (which is basically a
|
||||||
|
configuration file) for all of the generated images, diverting as
|
||||||
|
little as possible in a parametrized way. The master recipe is
|
||||||
|
[raspi_master.yaml](raspi_master.yaml).
|
||||||
|
|
||||||
|
A Makefile is supplied to drive the build of the recipes into images —
|
||||||
|
`raspi_0w` (for the Raspberry Pi 0, 0w and 1, models A and B),
|
||||||
|
`raspi_2` (for the Raspberry Pi 2, models A and B), `raspi_3`
|
||||||
|
(for all models of the Raspberry Pi 3), and `raspi_4` (for all
|
||||||
|
models of the Raspberry Pi 4). Some portions of building the image
|
||||||
|
will require root privileges, the you'll need to execute *make*
|
||||||
|
below as root. That being said, if you want to build the
|
||||||
|
default image for a Raspberry Pi 3B+, you can just issue:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
make raspi_3.img
|
||||||
|
```
|
||||||
|
|
||||||
|
You might also want to edit them to customize the built image. If you
|
||||||
|
want to start from the platform-specific recipe, you can issue:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
make raspi_3.yaml
|
||||||
|
```
|
||||||
|
The recipe drives [vmdb2](https://vmdb2.liw.fi/), the successor to
|
||||||
|
`vmdebootstrap`. Please refer to [its
|
||||||
|
documentation](https://vmdb2.liw.fi/documentation/) for further
|
||||||
|
details; it is quite an easy format to understand.
|
||||||
|
|
||||||
|
Copy the generated file to a name descriptive enough for you (say,
|
||||||
|
`my_raspi.yaml`). Once you have edited the recipe for your specific
|
||||||
|
needs, you can generate the image by issuing the following (as root):
|
||||||
|
|
||||||
|
```shell
|
||||||
|
vmdb2 --rootfs-tarball=my_raspi.tar.gz --output \
|
||||||
|
my_raspi.img my_raspi.yaml --log my_raspi.log
|
||||||
|
```
|
||||||
|
|
||||||
|
This is, just follow what is done by the `_build_img` target of the Makefile.
|
||||||
|
|
||||||
|
## Installing the image onto the Raspberry Pi
|
||||||
|
|
||||||
|
Plug an SD card which you would like to entirely overwrite into your SD card reader.
|
||||||
|
|
||||||
|
Assuming your SD card reader provides the device `/dev/mmcblk0`
|
||||||
|
(**Beware** If you choose the wrong device, you might overwrite
|
||||||
|
important parts of your system. Double check it's the correct
|
||||||
|
device!), copy the image onto the SD card:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
sudo dd if=raspi_3.img of=/dev/mmcblk0 bs=64k oflag=dsync status=progress
|
||||||
|
```
|
||||||
|
|
||||||
|
Then, plug the SD card into the Raspberry Pi, and power it up.
|
||||||
|
|
||||||
|
The image uses the hostname `rpi0w`, `rpi2`, `rpi3`, or `rpi4` depending on the
|
||||||
|
target build. The provided image will allow you to log in with the
|
||||||
|
`root` account with no password set, but only logging in at the
|
||||||
|
physical console (be it serial or by USB keyboard and HDMI monitor).
|
Loading…
Reference in New Issue