- Notifications
You must be signed in to change notification settings - Fork19
stock debian arm64 linux for the nanopi r5c & r5s
License
inindev/nanopi-r5
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This stock Debian ARM64 Linux image is built directly from official packages using the DebianDebootstrap utility, see filesteps/install_rootfs_1st_stage.sh
.
Being an unmodified Debian build, patches are directly available from the Debian repos using the stockapt package manager, see functionfile_apt_sources()
in filesteps/finalize_rootfs.sh
.
If you want to run true up-stream Debian Linux on your ARM64 device, this is the way to do it.
1. download the appropriate image
(R5C) wget https://github.com/inindev/nanopi-r5/releases/download/v12.0.3/nanopi-r5c_bookworm-1203.img.xz(R5S) wget https://github.com/inindev/nanopi-r5/releases/download/v12.0.3/nanopi-r5s_bookworm-1203.img.xz
2. determine the location of the target micro sd card
- before plugging-in device
ls -l /dev/sd*ls: cannot access '/dev/sd*': No such file or directory
- after plugging-in device
ls -l /dev/sd*brw-rw---- 1 root disk 8, 0 Mar 19 21:08 /dev/sda
- note: for mac, the device is
/dev/rdiskX
3. in the case above, substitute 'a' for 'X' in the command below (for /dev/sda)
sudo sh -c 'xzcat nanopi-r5s_bookworm-1203.img.xz > /dev/sdX && sync'
when the micro sd has finished imaging, eject and use it to boot the nanopi r5c or r5s to finish setup
4. login account
user: debianpass: debian
5. take updates
sudo apt updatesudo apt upgrade
6. create new admin account
sudo adduser <youruserid>echo '<youruserid> ALL=(ALL) NOPASSWD: ALL' | sudo tee /etc/sudoers.d/<youruserid>sudo chmod 440 /etc/sudoers.d/<youruserid>
7. lockout and/or delete debian account
sudo passwd -l debiansudo chsh -s /usr/sbin/nologin debian
sudo deluser --remove-home debiansudo rm /etc/sudoers.d/debian
8. change hostname (optional)
sudo nano /etc/hostnamesudo nano /etc/hosts
Imaging the internal eMMC device involves booting from a removable MMC card and imaging the internal eMMC device. When booted, the removable MMC device is seen as/dev/mmcblk0
and the internal eMMC device is seen as/dev/mmcblk1
1. boot from removable MMC
Using the steps in the first section above, create a removable MMC card and boot using it. Note: If the internal eMMC device already has a bootable image on it, it will prefer to boot from that. To force the nanopi5 to boot from the removable MMC card you just made, hold themask
button down before applying power. Once successfully booted to the removable MMC, you will be able to see this by using thedf
command which will show /dev/mmcblk0p1 as the booted partition.
2. download the appropriate image to the booted MMC card and image the internal eMMC
(R5C) wget https://github.com/inindev/nanopi-r5/releases/download/v12.0.3/nanopi-r5c_bookworm-1203.img.xz(R5S) wget https://github.com/inindev/nanopi-r5/releases/download/v12.0.3/nanopi-r5s_bookworm-1203.img.xzsudo suxzcat nanopi-r5s_bookworm-1203.img.xz > /dev/mmcblk1
Once imaging completes, shutdown, remove the MMC card and it will then boot using the internal eMMC device.
Note: Once booted,sudo apt update
thensudo apt upgrade
to get the latest updates from the debian repositories.
Imaging the internal NVMe device involves booting from a removable MMC card and imaging the internal NVMe device. When booted, the internal NVMe device is seen as/dev/nvme0n1
1. boot from removable MMC
Using the steps in the first section above, create a removable MMC card and boot using it. Note: If the internal eMMC device already has a bootable image on it, it will prefer to boot from that. To force the nanopi5 to boot from the removable MMC card you just made, hold themask
button down before applying power. Once successfully booted to the removable MMC, you will be able to see this by using thedf
command which will show /dev/mmcblk0p1 as the booted partition.
2. download the image to the booted MMC card and image the internal NVMe
wget https://github.com/inindev/nanopi-r5/releases/download/v12.0.3/nanopi-r5s_bookworm-1203.img.xzsudo suxzcat nanopi-r5s_bookworm-1203.img.xz > /dev/nvme0n1
3. install u-boot to internal eMMC
The last step is to prepare the internal eMMC to host u-boot. The eMMC must not contain a bootable partition or it will be preferred for boot over the internal NVMe. Start by downloading the two u-boot files:
wget https://github.com/inindev/nanopi-r5/releases/download/v12.0.3/idbloader-r5s.imgwget https://github.com/inindev/nanopi-r5/releases/download/v12.0.3/u-boot-r5s.itb
Erase the internal eMMC (the device is actually/dev/mmcblk1
but X is placed where 1 belongs to prevent a copy paste mistake)
sudo dd if=/dev/zero of=/dev/mmcblkX bs=1M count=1024
The internal eMMC is now erased, install u-boot (again, change X to 1):
sudo dd bs=4K seek=8 if=idbloader-r5s.img of=/dev/mmcblkXsudo dd bs=4K seek=2048 if=u-boot-r5s.itb of=/dev/mmcblkX
4. setup is now complete and the system is ready for use
shutdown the device, remove the external mmc card, and restart the device
Note: Once booted,sudo apt update
thensudo apt upgrade
to get the latest updates from the debian repositories.
The build script uses docker and qemu to build an image compatible with arm64 devices,even if you run it on a standard x86 machine.
1. clone the repo
git clone https://github.com/inindev/nanopi-r5.gitcd nanopi-r5
2. run the debian build script
(R5C) cd debian/nanopi-r5c(R5S) cd debian/nanopi-r5ssudo sh make_debian_img.sh
- note: edit the script at
debian/env.sh
to change various options:nano ../env.sh
3. the output if the build completes successfully
mmc_2g.img.xz
About
stock debian arm64 linux for the nanopi r5c & r5s