Howto install archlinuxarm raspberrypi5: Difference between revisions
Mandulete1 (talk | contribs) No edit summary |
Mandulete1 (talk | contribs) |
||
(28 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
= requeriments = | = requeriments = | ||
* raspberrypi 5 | * raspberrypi 5 | ||
* sdcard | * sdcard 8gb or more | ||
* mini hdmi female to micro hdmi male adapter or cable | * mini hdmi female to micro hdmi male adapter or cable | ||
* usb-c power adapter | * usb-c power adapter | ||
* archlinux or debian system to create image | * archlinux or debian system to the create image | ||
= download images = | = download images = | ||
download raspios image: | download raspios image: | ||
Line 18: | Line 19: | ||
use qemu-user-static to interpret the arm instructions in the chroot: | use qemu-user-static to interpret the arm instructions in the chroot: | ||
pacman -Sy qemu-user-static --noconfirm | pacman -Sy qemu-user-static --noconfirm | ||
install multipath-tools: | install multipath-tools in archlinux: | ||
pacman -S multipath-tools | pacman -S multipath-tools --noconfirm | ||
if you use debian you can install this packages: | |||
apt install kpartx qemu-user-static | |||
script to mount and umount raspberrypi image: | script to mount and umount raspberrypi image: | ||
curl -ko ./raspimg https://raw.githubusercontent.com/vidalinux/raspi/main/raspimg | curl -ko ./raspimg https://raw.githubusercontent.com/vidalinux/raspi/main/raspimg | ||
mount image to /mnt/temp: | chmod +x ./raspimg | ||
./raspimg mount | mount image to /mnt/temp without binding directories: | ||
./raspimg mount $(date +%F)-archlinux-aarch64.img | |||
do you want to bind /dev /proc /sys /pkg directories now : no | |||
remove image contents from: | |||
rm -rf /mnt/temp/* | |||
decompress archlinux arm file to /mnt/temp: | |||
tar xvf ArchLinuxARM-rpi-aarch64-latest.tar.gz -C /mnt/temp | |||
copy the qemu-aarch64-static binary to the chroot: | copy the qemu-aarch64-static binary to the chroot: | ||
cp /usr/bin/qemu-aarch64-static /mnt/temp/usr/bin/ | cp /usr/bin/qemu-aarch64-static /mnt/temp/usr/bin/ | ||
register the qemu-aarch64-static as an arm interpreter in the kernel: | register the qemu-aarch64-static as an arm interpreter in the kernel: | ||
curl -ko /usr/local/bin/binfmt_manager https://raw.githubusercontent.com/mikkeloscar/binfmt-manager/master/binfmt_manager | |||
chmod +x /usr/local/bin/binfmt_manager | |||
binfmt_manager register aarch64 | |||
umount image: | |||
./raspimg umount $(date +%F)-archlinux-aarch64.img | |||
mount it again binding /dev /proc /sys and pkg directories: | |||
./raspimg mount $(date +%F)-archlinux-aarch64.img | |||
do you want to bind /dev /proc /sys /pkg directories now : yes | |||
enter chroot using arch-chroot: | enter chroot using arch-chroot: | ||
chroot /mnt/temp | chroot /mnt/temp | ||
= configure image = | = configure image = | ||
update /etc/fstab for the different sd block device: | |||
sed -i 's/mmcblk0/mmcblk1/g' /etc/fstab | |||
initialize pacman: | initialize pacman: | ||
pacman-key --init | pacman-key --init | ||
pacman-key --populate archlinuxarm | pacman-key --populate archlinuxarm | ||
remove /etc/resolv.conf file: | |||
rm /etc/resolv.conf | |||
configure dns: | |||
cat > /etc/resolv.conf << EOF | |||
nameserver 4.2.2.1 | |||
nameserver 4.2.2.2 | |||
EOF | |||
update all system: | update all system: | ||
pacman -Syuu --noconfirm | pacman -Syuu --noconfirm | ||
install the following packages: | install the following packages: | ||
pacman -Sy base-devel libnewt git wget rsync networkmanager parted multipath-tools lsof git sudo fakeroot screen --noconfirm | pacman -Sy base-devel libnewt git wget rsync networkmanager parted multipath-tools lsof git sudo fakeroot screen inetutils --noconfirm | ||
install expand-sd: | install expand-sd: | ||
curl -ko /usr/local/bin/expand-sd https://raw.githubusercontent.com/vidalinux/raspi/main/expand-sd | curl -ko /usr/local/bin/expand-sd https://raw.githubusercontent.com/vidalinux/raspi/main/expand-sd | ||
Line 48: | Line 73: | ||
passwd root | passwd root | ||
replace current kernel with aarch64: | replace current kernel with aarch64: | ||
pacman -Sy linux-rpi | pacman -Sy linux-rpi | ||
make sure you have rpi5 support: | make sure you have rpi5 support: | ||
pacman -Ql linux-rpi | grep rpi-5 | pacman -Ql linux-rpi | grep rpi-5 | ||
Line 55: | Line 80: | ||
systemctl disable systemd-networkd.socket | systemctl disable systemd-networkd.socket | ||
systemctl disable systemd-resolved | systemctl disable systemd-resolved | ||
disable suspend, hibernate or sleep: | |||
systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target | |||
start and enable networkmanager: | start and enable networkmanager: | ||
systemctl enable NetworkManager | systemctl enable NetworkManager | ||
Line 60: | Line 87: | ||
= desktop environment = | = desktop environment = | ||
install xorg: | install xorg: | ||
pacman -Sy --noconfirm alsa-utils alsa-oss xorg xorg-server xf86-video-fbdev xorg-xrefresh adobe-source-han-sans-cn-fonts ttf-dejavu ttf-bitstream-vera wqy-zenhei ttf-arphic-ukai ttf-arphic-uming opendesktop-fonts ttf-inconsolata ttf-ubuntu-font-family adobe-source-code-pro-fonts xorg-xclock xterm xorg-twm | pacman -Sy --noconfirm alsa-utils alsa-oss xorg xorg-server xf86-video-fbdev xorg-xrefresh adobe-source-han-sans-cn-fonts ttf-dejavu ttf-bitstream-vera wqy-zenhei ttf-arphic-ukai ttf-arphic-uming opendesktop-fonts ttf-inconsolata ttf-ubuntu-font-family adobe-source-code-pro-fonts xorg-xclock xterm xorg-twm libmd libbsd | ||
install xfce4: | install xfce4: | ||
pacman -Sy --noconfirm xfce4 xfce4-goodies lightdm-gtk-greeter accountsservice gvfs gvfs-mtp ntfs-3g exfat-utils p7zip file-roller fcitx fcitx-configtool fcitx-googlepinyin fcitx-cloudpinyin fcitx-gtk2 fcitx-gtk3 network-manager-applet gnome-keyring pavucontrol pavucontrol-qt pulseaudio-alsa | pacman -Sy --noconfirm xfce4 xfce4-goodies lightdm-gtk-greeter accountsservice gvfs gvfs-mtp ntfs-3g exfat-utils p7zip file-roller fcitx fcitx-configtool fcitx-googlepinyin fcitx-cloudpinyin fcitx-gtk2 fcitx-gtk3 network-manager-applet gnome-keyring pavucontrol pavucontrol-qt pulseaudio-alsa | ||
enable and start lightdm: | enable and start lightdm: | ||
systemctl enable lightdm | systemctl enable lightdm | ||
= copy image to sdcard = | |||
umount image from /mnt/temp: | |||
./raspimg umount $(date +%F)-archlinux-aarch64.img | |||
insert sdcard to your computer and confirm which letter have: | |||
dmesg | |||
fdisk -l | |||
now with sdcard correctly identified, copy this image to sdcard using dd: | |||
dd if=$(date +%F)-archlinux-aarch64.img of=/dev/sdd status=progress | |||
= desktop auto-login = | = desktop auto-login = | ||
Line 82: | Line 118: | ||
nmcli device wifi list | nmcli device wifi list | ||
nmcli device wifi connect ssid-name --ask | nmcli device wifi connect ssid-name --ask | ||
= configure remote connection = | |||
installing yay: | |||
su - alarm | |||
git clone https://aur.archlinux.org/yay.git | |||
cd yay | |||
makepkg -si | |||
install nomachine: | |||
yay -S nomachine | |||
edit file "/usr/NX/etc/server.cfg", set "StartNXDaemon" to "Automatic": | |||
StartNXDaemon Automatic | |||
then restart nxserver service: | |||
systemctl restart nxserver | |||
from your desktop computer or another computer install nomachine client: | |||
* for windows: | |||
https://download.nomachine.com/download/8.11/Windows/nomachine_8.11.3_3_x86.exe | |||
* for mac: | |||
https://download.nomachine.com/download/8.11/MacOSX/nomachine_8.11.3_5.dmg | |||
* for linux .rpm: | |||
https://download.nomachine.com/download/8.11/Linux/nomachine_8.11.3_4_x86_64.rpm | |||
* for linux .deb: | |||
https://download.nomachine.com/download/8.11/Linux/nomachine_8.11.3_4_amd64.deb | |||
= troubleshooting = | = troubleshooting = | ||
if you have this error in /var/log/Xorg.0.log is: cannot run in framebuffer mode. please specify busids: | if you have this error in /var/log/Xorg.0.log is: cannot run in framebuffer mode. please specify busids: | ||
Line 94: | Line 152: | ||
if you have issues with lightdm not starting reinstall the following packages: | if you have issues with lightdm not starting reinstall the following packages: | ||
pacman -S shared-mime-info gdk-pixbuf2 | pacman -S shared-mime-info gdk-pixbuf2 | ||
= download image = | |||
torrent file for downloading our image: | |||
https://img.vidalinux.com/files/2024-07-08-archlinux-aarch64.img.xz.torrent | |||
= references = | = references = | ||
* https://github.com/mikkeloscar/binfmt-manager | * https://github.com/mikkeloscar/binfmt-manager |
Latest revision as of 17:04, 31 July 2024
requeriments
- raspberrypi 5
- sdcard 8gb or more
- mini hdmi female to micro hdmi male adapter or cable
- usb-c power adapter
- archlinux or debian system to the create image
download images
download raspios image:
wget https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2023-12-06/2023-12-05-raspios-bookworm-arm64.img.xz
download archlinux-arm-aarch64 image:
wget http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-aarch64-latest.tar.gz
decompress raspios image:
xz -d 2023-12-05-raspios-bookworm-arm64.img.xz
change raspios image name:
mv 2023-12-05-raspios-bookworm-arm64.img $(date +%F)-archlinux-aarch64.img
chroot with qemu
use qemu-user-static to interpret the arm instructions in the chroot:
pacman -Sy qemu-user-static --noconfirm
install multipath-tools in archlinux:
pacman -S multipath-tools --noconfirm
if you use debian you can install this packages:
apt install kpartx qemu-user-static
script to mount and umount raspberrypi image:
curl -ko ./raspimg https://raw.githubusercontent.com/vidalinux/raspi/main/raspimg chmod +x ./raspimg
mount image to /mnt/temp without binding directories:
./raspimg mount $(date +%F)-archlinux-aarch64.img do you want to bind /dev /proc /sys /pkg directories now : no
remove image contents from:
rm -rf /mnt/temp/*
decompress archlinux arm file to /mnt/temp:
tar xvf ArchLinuxARM-rpi-aarch64-latest.tar.gz -C /mnt/temp
copy the qemu-aarch64-static binary to the chroot:
cp /usr/bin/qemu-aarch64-static /mnt/temp/usr/bin/
register the qemu-aarch64-static as an arm interpreter in the kernel:
curl -ko /usr/local/bin/binfmt_manager https://raw.githubusercontent.com/mikkeloscar/binfmt-manager/master/binfmt_manager chmod +x /usr/local/bin/binfmt_manager binfmt_manager register aarch64
umount image:
./raspimg umount $(date +%F)-archlinux-aarch64.img
mount it again binding /dev /proc /sys and pkg directories:
./raspimg mount $(date +%F)-archlinux-aarch64.img do you want to bind /dev /proc /sys /pkg directories now : yes
enter chroot using arch-chroot:
chroot /mnt/temp
configure image
update /etc/fstab for the different sd block device:
sed -i 's/mmcblk0/mmcblk1/g' /etc/fstab
initialize pacman:
pacman-key --init pacman-key --populate archlinuxarm
remove /etc/resolv.conf file:
rm /etc/resolv.conf
configure dns:
cat > /etc/resolv.conf << EOF nameserver 4.2.2.1 nameserver 4.2.2.2 EOF
update all system:
pacman -Syuu --noconfirm
install the following packages:
pacman -Sy base-devel libnewt git wget rsync networkmanager parted multipath-tools lsof git sudo fakeroot screen inetutils --noconfirm
install expand-sd:
curl -ko /usr/local/bin/expand-sd https://raw.githubusercontent.com/vidalinux/raspi/main/expand-sd chmod +x /usr/local/bin/expand-sd
set password to alarm user:
passwd alarm echo "alarm ALL=(ALL:ALL) ALL" > /etc/sudoers.d/alarm
change root password:
passwd root
replace current kernel with aarch64:
pacman -Sy linux-rpi
make sure you have rpi5 support:
pacman -Ql linux-rpi | grep rpi-5
disable the following services:
systemctl disable systemd-networkd systemctl disable systemd-networkd.socket systemctl disable systemd-resolved
disable suspend, hibernate or sleep:
systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
start and enable networkmanager:
systemctl enable NetworkManager
desktop environment
install xorg:
pacman -Sy --noconfirm alsa-utils alsa-oss xorg xorg-server xf86-video-fbdev xorg-xrefresh adobe-source-han-sans-cn-fonts ttf-dejavu ttf-bitstream-vera wqy-zenhei ttf-arphic-ukai ttf-arphic-uming opendesktop-fonts ttf-inconsolata ttf-ubuntu-font-family adobe-source-code-pro-fonts xorg-xclock xterm xorg-twm libmd libbsd
install xfce4:
pacman -Sy --noconfirm xfce4 xfce4-goodies lightdm-gtk-greeter accountsservice gvfs gvfs-mtp ntfs-3g exfat-utils p7zip file-roller fcitx fcitx-configtool fcitx-googlepinyin fcitx-cloudpinyin fcitx-gtk2 fcitx-gtk3 network-manager-applet gnome-keyring pavucontrol pavucontrol-qt pulseaudio-alsa
enable and start lightdm:
systemctl enable lightdm
copy image to sdcard
umount image from /mnt/temp:
./raspimg umount $(date +%F)-archlinux-aarch64.img
insert sdcard to your computer and confirm which letter have:
dmesg fdisk -l
now with sdcard correctly identified, copy this image to sdcard using dd:
dd if=$(date +%F)-archlinux-aarch64.img of=/dev/sdd status=progress
desktop auto-login
if you want to set auto-login for user alarm add the following to /etc/lightdm/lightdm.conf:
cat >> /etc/lightdm/lightdm.conf << 'EOF' [Seat:*] user-session=xcfe4 autologin-user=alarm autologin-user-timeout=0 EOF
add group autologin and user to the group:
groupadd -r autologin gpasswd -a alarm autologin
configure network
configure wireless using nmcli:
nmcli device wifi rescan nmcli device wifi list nmcli device wifi connect ssid-name --ask
configure remote connection
installing yay:
su - alarm git clone https://aur.archlinux.org/yay.git cd yay makepkg -si
install nomachine:
yay -S nomachine
edit file "/usr/NX/etc/server.cfg", set "StartNXDaemon" to "Automatic":
StartNXDaemon Automatic
then restart nxserver service:
systemctl restart nxserver
from your desktop computer or another computer install nomachine client:
- for windows:
https://download.nomachine.com/download/8.11/Windows/nomachine_8.11.3_3_x86.exe
- for mac:
https://download.nomachine.com/download/8.11/MacOSX/nomachine_8.11.3_5.dmg
- for linux .rpm:
https://download.nomachine.com/download/8.11/Linux/nomachine_8.11.3_4_x86_64.rpm
- for linux .deb:
https://download.nomachine.com/download/8.11/Linux/nomachine_8.11.3_4_amd64.deb
troubleshooting
if you have this error in /var/log/Xorg.0.log is: cannot run in framebuffer mode. please specify busids:
cat > /etc/X11/xorg.conf.d/99-vc4.conf << EOF Section "OutputClass" Identifier "vc4" MatchDriver "vc4" Driver "modesetting" Option "PrimaryGPU" "true" EndSection EOF
if you have issues with lightdm not starting reinstall the following packages:
pacman -S shared-mime-info gdk-pixbuf2
download image
torrent file for downloading our image:
https://img.vidalinux.com/files/2024-07-08-archlinux-aarch64.img.xz.torrent