The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.
Difference between revisions of "User:Pnoecker/Raspberry Pi 4"
(→Download the Necessary Files: link ffs stages) |
|||
(45 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
This guide draws heavily on [[Raspberry_Pi_2]] | This guide draws heavily on [[Raspberry_Pi_2]], [[Undead_USB_Install]], and [[Install]] | ||
== What you need == | == What you need == | ||
Line 5: | Line 5: | ||
# Raspberry PI 4 | # Raspberry PI 4 | ||
# An existing Linux install [[Undead_USB_Install]] built with fchroot is a solid choice if you do not have funtoo installed on a hard drive. | # An existing Linux install [[Undead_USB_Install]] built with fchroot is a solid choice if you do not have funtoo installed on a hard drive. | ||
# | # a 32GB or larger SD card, or [https://www.tomshardware.com/how-to/boot-raspberry-pi-4-usb USB if you have updated the firmware.] | ||
==Prepare your SD card== | ==Prepare your SD card== | ||
Target your drive as outlined in the official install. [[Install/Prepare_Disk]] | |||
{{console|body= | {{console|body= | ||
###i## | ###i## cgdisk /dev/funtoo}} | ||
}} | |||
*delete everything: | |||
{{console|body= | {{console|body= | ||
Command: ##i## | Command: ##i##new ↵ | ||
First sector: ##i## ↵ | |||
Size: ##i## +1M ↵ | |||
Hex Code: ##i##EF02 ↵ | |||
Name: ##i##BIOS Boot ↵ | |||
}} | }} | ||
*scroll down to the large chunk of free space: | |||
{{console|body= | {{console|body= | ||
Command: ##i## | Command: ##i##new ↵ | ||
First sector: ##i##↵ | First sector: ##i##↵ | ||
Last sector: ##i##+ | Last sector: ##i##+256M ↵ | ||
Hex Code: ##i##EF00 ↵ | Hex Code: ##i##EF00 ↵ | ||
Name: ##i##BOOT ↵ | |||
}} | }} | ||
*scroll down to the large chunk of free space: | |||
{{console|body= | {{console|body= | ||
Command: ##i## | Command: ##i##new ↵ | ||
First sector: ##i##↵ | First sector: ##i##↵ | ||
Last sector: ##i##↵ | Last sector: ##i##↵ | ||
Hex Code: ##i## 8305 ↵ | Hex Code: ##i## 8305 ↵ | ||
Name: ##i##FUNTOO ↵ | |||
}} | }} | ||
{{console|body= | {{console|body= | ||
Disk Drive: /dev/funtoo | |||
Size: 62333952, 29.7 GiB | |||
Part. # Size Partition Type Partition Name | |||
---------------------------------------------------------------- | |||
1007.0 KiB free space | 1007.0 KiB free space | ||
1 1024.0 KiB BIOS boot partition BIOS Boot | 1 1024.0 KiB BIOS boot partition BIOS Boot | ||
2 256.0 MiB EFI System BOOT | 2 256.0 MiB EFI System BOOT | ||
3 29.5 GiB Linux ARM64 root (/) FUNTOO | 3 29.5 GiB Linux ARM64 root (/) FUNTOO | ||
write | }} | ||
quit | |||
{{console|body= | |||
Command: ##i##write ↵ | |||
Do you want to proceed? (Y/N): ##i##yes ↵ | |||
Command: ##i##quit ↵ | |||
}} | |||
===Create File Systems=== | ===Create File Systems=== | ||
Line 72: | Line 65: | ||
{{console|body= | {{console|body= | ||
###i## mkfs.vfat -F 32 /dev/ | ###i## mkfs.vfat -F 32 /dev/funtoo2 | ||
###i## fatlabel /dev/ | ###i## fatlabel /dev/funtoo2 "BOOT" | ||
###i## mkfs.ext4 /dev/ | ###i## mkfs.ext4 /dev/funtoo3 | ||
###i## e2label /dev/ | ###i## e2label /dev/funtoo3 "FUNTOO" | ||
}} | }} | ||
Line 86: | Line 79: | ||
Mount your SD card: | Mount your SD card: | ||
{{console|body= | {{console|body= | ||
###i## mount /dev/ | ###i## mount /dev/funtoo3 /mnt/funtoo | ||
###i## mkdir /mnt/funtoo/boot | ###i## mkdir /mnt/funtoo/boot | ||
###i## mount /dev/ | ###i## mount /dev/funtoo2 /mnt/funtoo/boot | ||
}} | }} | ||
===Get the Funtoo Files Onto the SD Card=== | ===Get the Funtoo Files Onto the SD Card=== | ||
===Download the Necessary Files=== | ===Download the Necessary Files=== | ||
Grab the latest [[Arm64_generic]] stage 3 file: | |||
[[Subarches]] | |||
*or use a ffs stage 3 https://area31.host.funtoo.org/ffs/stages/arm-64bit/ | |||
{{console|body= | {{console|body= | ||
###i## cd /mnt/funtoo | ###i## cd /mnt/funtoo | ||
###i## wget https://build.funtoo.org/1.4-release-std/arm-64bit/arm64_generic/2020-09-07/stage3-arm64_generic-1.4-release-std-2020-09-07.tar.xz | ###i## wget https://build.funtoo.org/1.4-release-std/arm-64bit/arm64_generic/2020-09-07/stage3-arm64_generic-1.4-release-std-2020-09-07.tar.xz | ||
}} | }} | ||
Line 109: | Line 96: | ||
Extract the stage 3: | Extract the stage 3: | ||
{{console|body= | {{console|body= | ||
###i## tar --numeric-owner -xpf stage3* | ###i## tar --numeric-owner --xattrs --xattrs-include='*' -xpf stage3* | ||
}} | }} | ||
===Pre-boot Configuration=== | ===Pre-boot Configuration=== | ||
Edit your make.conf file to enable fchroot to compile: | *Edit your make.conf file to enable fchroot to compile: | ||
{{console|body= | |||
###i## nano /mnt/funtoo/etc/portage/make.conf | |||
}} | |||
{{file|name=/mnt/funtoo/etc/portage/make.conf|desk make.conf file|body= | {{file|name=/mnt/funtoo/etc/portage/make.conf|desk make.conf file|body= | ||
Line 119: | Line 110: | ||
}} | }} | ||
Edit your fstab file so everything mounts correctly on boot: | *Edit your fstab file so everything mounts correctly on boot: | ||
*Raspberry pi only supports partuuid and partlabel loading: | |||
{{console|body= | {{console|body= | ||
###i## nano /mnt/funtoo/etc/fstab | ###i## nano /mnt/funtoo/etc/fstab | ||
Line 126: | Line 118: | ||
{{file|name=/mnt/funtoo/etc/fstab|body= | {{file|name=/mnt/funtoo/etc/fstab|body= | ||
proc /proc proc defaults 0 0 | proc /proc proc defaults 0 0 | ||
PARTLABEL=BOOT /boot vfat noauto,noatime 1 2 | |||
PARTLABEL=FUNTOO / ext4 noatime 0 1 | |||
tmpfs /var/tmp/portage tmpfs uid=portage,gid=portage,mode=775,noatime 0 0 | |||
}} | }} | ||
==Chrooting into your new installation== | |||
===for a good time install [[Package:Fchroot]]=== | |||
*Fchroot in: | |||
{{console|body= | {{console|body= | ||
###i## | ###i## cd /mnt/funtoo | ||
###i## fchroot . | |||
###i## export PS1="FUNTOO $PS1" | |||
}} | }} | ||
{{ | ====set your pass==== | ||
*Set yo password | |||
{{console|body= | |||
###i## useradd -o -u 0 -g 0 funtoo && passwd funtoo && ego sync | |||
}} | }} | ||
*compile in ram | |||
{{console|body= | {{console|body= | ||
###i## | ###i## mkdir /var/tmp/portage | ||
###i## | ###i## chown portage:portage /var/tmp/portage | ||
###i## mount /var/tmp/portage | |||
}} | }} | ||
{{console|body= | {{console|body= | ||
###i## /etc/ | ###i## echo "media-libs/raspberrypi-userland-bin **" >> /etc/portage/package.accept_keywords | ||
###i## echo "sys-boot/raspberrypi-firmware **" >> /etc/portage/package.accept_keywords | |||
###i## echo "sys-kernel/raspberrypi-image **" >> /etc/portage/package.accept_keywords | |||
###i## emerge raspberrypi-userland-bin raspberrypi-firmware raspberrypi-image | |||
}} | }} | ||
{{console|body= | {{console|body= | ||
###i## | ###i## nano /boot/config.txt | ||
}} | }} | ||
{{file|name=/boot/config.txt|body= | |||
{{ | disable_overscan=1 | ||
dtparam=audio=on | |||
dtoverlay=vc4-fkms-v3d | |||
max_framebuffers=2 | |||
arm_64bit=1 | |||
}} | }} | ||
{{console|body= | {{console|body= | ||
###i## | ###i## nano /boot/cmdline.txt | ||
}} | }} | ||
== | {{file|name=/boot/cmdline.txt|desc=Stifler's Mom|body= | ||
console=tty1 root=PARTLABEL=FUNTOO rootfstype=ext4 elevator=noop fsck.repair=yes quiet rootwait | |||
}} | }} | ||
Set your timezone: | |||
{{console|body= | {{console|body= | ||
###i## ln -sf /usr/share/zoneinfo/ | ###i## ln -sf /usr/share/zoneinfo/America/Detroit /etc/localtime | ||
}} | }} | ||
*Set Services: | |||
{{console|body= | {{console|body= | ||
###i## rc-update add dhcpcd default | ###i## rc-update add dhcpcd default | ||
###i## rc-update add busybox-ntpd boot | |||
###i## rc-update add swclock boot | |||
###i## rc-update del hwclock boot | |||
###i## rc-update del swap boot | |||
###i## echo "funtoo ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers | |||
}} | }} | ||
{{note|you should probably test that your pi boots at this point BEFORE emerging everything.}} | |||
===Reboot and merge,or just merge=== | |||
*Set your profile: | |||
{{console|body= | {{console|body= | ||
###i## | ###i## epro list | ||
###i## epro flavor desktop | |||
###i## epro mix-in lxde | |||
###i## echo "media-plugins/alsa-plugins pulseaudio" >> /etc/portage/package.use | |||
###i## echo "net-print/cups -zeroconf" >> /etc/portage/package.use | |||
###i## echo "gnome-base/gvfs -http" >> /etc/portage/package.use | |||
###i## emerge xorg-x11 elogind pulseaudio networkmanager lightdm lxde-meta dillo | |||
}} | }} | ||
{{console|body= | {{console|body= | ||
###i## | ###i## emerge -avuND @world | ||
}} | }} | ||
[[Install/Stage3_Desktop]] | |||
==Clean unmount== | |||
Make sure all buffers have been flushed and unmount the temp directories: | |||
{{console|body= | {{console|body= | ||
###i## | ###i## exit | ||
###i## | ###i## cd .. && sync | ||
###i## | ###i## umount -lR funtoo | ||
}} | }} | ||
Now you can follow the [[Funtoo Linux Installation|Funtoo Install documentation]] to continue configuring your system. You'll definitely want to look into {{Package|sys-devel/distcc}} if you are going to be adding lots of software to your system. | Now you can follow the [[Funtoo Linux Installation|Funtoo Install documentation]] to continue configuring your system. You'll definitely want to look into {{Package|sys-devel/distcc}} if you are going to be adding lots of software to your system. |
Latest revision as of 21:52, January 9, 2023
This guide draws heavily on Raspberry_Pi_2, Undead_USB_Install, and Install
What you need
- Raspberry PI 4
- An existing Linux install Undead_USB_Install built with fchroot is a solid choice if you do not have funtoo installed on a hard drive.
- a 32GB or larger SD card, or USB if you have updated the firmware.
Prepare your SD card
Target your drive as outlined in the official install. Install/Prepare_Disk
root # cgdisk /dev/funtoo
- delete everything:
Command: new ↵ First sector: ↵ Size: +1M ↵ Hex Code: EF02 ↵ Name: BIOS Boot ↵
- scroll down to the large chunk of free space:
Command: new ↵ First sector: ↵ Last sector: +256M ↵ Hex Code: EF00 ↵ Name: BOOT ↵
- scroll down to the large chunk of free space:
Command: new ↵ First sector: ↵ Last sector: ↵ Hex Code: 8305 ↵ Name: FUNTOO ↵
Disk Drive: /dev/funtoo Size: 62333952, 29.7 GiB Part. # Size Partition Type Partition Name ---------------------------------------------------------------- 1007.0 KiB free space 1 1024.0 KiB BIOS boot partition BIOS Boot 2 256.0 MiB EFI System BOOT 3 29.5 GiB Linux ARM64 root (/) FUNTOO
Command: write ↵ Do you want to proceed? (Y/N): yes ↵ Command: quit ↵
Create File Systems
Next, we need to create file systems on the partitions:
root # mkfs.vfat -F 32 /dev/funtoo2 root # fatlabel /dev/funtoo2 "BOOT" root # mkfs.ext4 /dev/funtoo3 root # e2label /dev/funtoo3 "FUNTOO"
Prepare Your Boot Partition
Make mount points for your boot and root partitions on the SD card:
root # mkdir /mnt/funtoo
Mount your SD card:
root # mount /dev/funtoo3 /mnt/funtoo root # mkdir /mnt/funtoo/boot root # mount /dev/funtoo2 /mnt/funtoo/boot
Get the Funtoo Files Onto the SD Card
Download the Necessary Files
Grab the latest Arm64_generic stage 3 file: Subarches
- or use a ffs stage 3 https://area31.host.funtoo.org/ffs/stages/arm-64bit/
root # cd /mnt/funtoo root # wget https://build.funtoo.org/1.4-release-std/arm-64bit/arm64_generic/2020-09-07/stage3-arm64_generic-1.4-release-std-2020-09-07.tar.xz
Extract the stage 3:
root # tar --numeric-owner --xattrs --xattrs-include='*' -xpf stage3*
Pre-boot Configuration
- Edit your make.conf file to enable fchroot to compile:
root # nano /mnt/funtoo/etc/portage/make.conf
/mnt/funtoo/etc/portage/make.conf
FEATURES="-pid-sandbox"
- Edit your fstab file so everything mounts correctly on boot:
- Raspberry pi only supports partuuid and partlabel loading:
root # nano /mnt/funtoo/etc/fstab
/mnt/funtoo/etc/fstab
proc /proc proc defaults 0 0
PARTLABEL=BOOT /boot vfat noauto,noatime 1 2
PARTLABEL=FUNTOO / ext4 noatime 0 1
tmpfs /var/tmp/portage tmpfs uid=portage,gid=portage,mode=775,noatime 0 0
Chrooting into your new installation
for a good time install Package:Fchroot
- Fchroot in:
root # cd /mnt/funtoo root # fchroot . root # export PS1="FUNTOO $PS1"
set your pass
- Set yo password
root # useradd -o -u 0 -g 0 funtoo && passwd funtoo && ego sync
- compile in ram
root # mkdir /var/tmp/portage root # chown portage:portage /var/tmp/portage root # mount /var/tmp/portage
root # echo "media-libs/raspberrypi-userland-bin **" >> /etc/portage/package.accept_keywords root # echo "sys-boot/raspberrypi-firmware **" >> /etc/portage/package.accept_keywords root # echo "sys-kernel/raspberrypi-image **" >> /etc/portage/package.accept_keywords root # emerge raspberrypi-userland-bin raspberrypi-firmware raspberrypi-image
root # nano /boot/config.txt
/boot/config.txt
disable_overscan=1
dtparam=audio=on
dtoverlay=vc4-fkms-v3d
max_framebuffers=2
arm_64bit=1
root # nano /boot/cmdline.txt
/boot/cmdline.txt
- Stifler's Momconsole=tty1 root=PARTLABEL=FUNTOO rootfstype=ext4 elevator=noop fsck.repair=yes quiet rootwait
Set your timezone:
root # ln -sf /usr/share/zoneinfo/America/Detroit /etc/localtime
- Set Services:
root # rc-update add dhcpcd default root # rc-update add busybox-ntpd boot root # rc-update add swclock boot root # rc-update del hwclock boot root # rc-update del swap boot root # echo "funtoo ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
you should probably test that your pi boots at this point BEFORE emerging everything.
Reboot and merge,or just merge
- Set your profile:
root # epro list root # epro flavor desktop root # epro mix-in lxde root # echo "media-plugins/alsa-plugins pulseaudio" >> /etc/portage/package.use root # echo "net-print/cups -zeroconf" >> /etc/portage/package.use root # echo "gnome-base/gvfs -http" >> /etc/portage/package.use root # emerge xorg-x11 elogind pulseaudio networkmanager lightdm lxde-meta dillo
root # emerge -avuND @world
Clean unmount
Make sure all buffers have been flushed and unmount the temp directories:
root # exit root # cd .. && sync root # umount -lR funtoo
Now you can follow the Funtoo Install documentation to continue configuring your system. You'll definitely want to look into No results if you are going to be adding lots of software to your system.