Difference between revisions of "User:Coffnix/Raspberry Pi 4"

From Funtoo
Jump to navigation Jump to search
Line 100: Line 100:
###i## mkfs.vfat -F 32 /dev/funtoo1
###i## mkfs.vfat -F 32 /dev/funtoo1
###i## fatlabel /dev/funtoo1 "BOOT"
###i## fatlabel /dev/funtoo1 "BOOT"
###i## mswap /dev/funtoo2
###i## mkswap -L SWAP /dev/funtoo2
###i## mkfs.ext4 /dev/funtoo3
###i## mkfs.ext4 /dev/funtoo3
###i## e2label /dev/funtoo3 "FUNTOO"
###i## e2label /dev/funtoo3 "FUNTOO"
Line 151: Line 151:
{{file|name=/mnt/funtoo/etc/fstab|body=
{{file|name=/mnt/funtoo/etc/fstab|body=
LABEL=BOOT    /boot          vfat    defaults          0      2
LABEL=BOOT    /boot          vfat    defaults          0      2
LABEL=SWAP  none            swap    sw                0      0
LABEL=FUNTOO    /              ext4    defaults,noatime  0      1
LABEL=FUNTOO    /              ext4    defaults,noatime  0      1
dev/mmcblk0p2  none            swap    sw                0      0
dev/mmcblk0p2  none            swap    sw                0      0
tmpfs /var/tmp/portage tmpfs uid=portage,gid=portage,mode=775,noatime 0 0
tmpfs /var/tmp/portage tmpfs uid=portage,gid=portage,mode=775,noatime 0 0

Revision as of 08:04, May 26, 2022

What you need

  1. Raspberry PI 4
  2. An existing Funtoo Linux install or Livecd (Livecd is a solid choice if you do not have funtoo installed on a hard drive)
  3. a 32GB or larger SD card

Prepare your SD card

Target your drive as outlined in the official install. Install/Prepare_Disk


  • delete everything:
root # wipefs -a/dev/funtoo

Make a new MS-DOS disklabel. Add a new partition - this will be 128Mb for /boot

root # fdisk /dev/funtoo
Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-15523839, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-15523839, default 15523839): +128M


Has created a new partition 1 of type 'Linux' and of size 128 MiB. Add a 2G partition 2 for swap. Put the remaining space in partition 3 for root.

Check with

Command (m for help): p

Using an 8G microSD card it should show

Device     Boot   Start      End  Sectors  Size Id Type
/dev/funtoo1          2048   264191   262144  128M 83 Linux
/dev/funtoo2        264192  4458495  4194304    2G 83 Linux
/dev/funtoo3       4458496 15523839 11065344  5.3G 83 Linux

Set flags and partition types Toggle the bootable flag on partition 1

ommand (m for help): a
Partition number (1-3, default 3): 1


The bootable flag on partition 1 is enabled now. Mark partition 1 as FAT

Command (m for help): t
Partition number (1-3, default 3): 1
Partition type (type L to list all types): c

Changed type of partition 'Linux' to 'W95 FAT32 (LBA)'.
   Note

The Pi checks the type of partition 1 in the partition table and will not boot if its 82

Mark partition 2 as swap

Command (m for help): t
Partition number (1-3, default 3): 2
Partition type (type L to list all types): 82

Changed type of partition 'Linux swap / Solaris' to 'Linux swap / Solaris'.

Check again.

Device     Boot   Start      End  Sectors  Size Id Type
/dev/sdk1  *       2048   264191   262144  128M  c W95 FAT32 (LBA)
/dev/sdk2        264192  4458495  4194304    2G 82 Linux swap / Solaris
/dev/sdk3       4458496 15523839 11065344  5.3G 83 Linux

Save the new partition table. Exit fdisk with either w or q

w   write table to disk and exit
  q   quit without saving changes



Create File Systems

Next, we need to create file systems on the partitions:

root # mkfs.vfat -F 32 /dev/funtoo1
root # fatlabel /dev/funtoo1 "BOOT"
root # mkswap -L SWAP /dev/funtoo2
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/funtoo1 /mnt/funtoo/boot

Get the Funtoo Files Onto the SD Card

Download the Necessary Files

Grab the latest Arm64_generic stage 3 file: Subarches

root # cd /mnt/funtoo
root # wget https://area31.host.funtoo.org/stage3-raspi4-1.4-release-std-2022-05-19.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
LABEL=BOOT    /boot           vfat    defaults          0       2
LABEL=SWAP   none            swap    sw                0       0
LABEL=FUNTOO    /               ext4    defaults,noatime  0       1

dev/mmcblk0p2  none            swap    sw                0       0
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 --cpu cortex-a72 . su --login
root # export PS1="FUNTOO $PS1"

set your pass

  • Create new user and set password:
root # echo -e "root\nroot" | passwd root
root # useradd funtoo && echo -e "funtoo\nfuntoo" | passwd  funtoo
root # usermod -a -G wheel funtoo
root # echo "funtoo ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers


Sync tree

root # ego sync

compile in ram

root # mkdir /var/tmp/portage
root # chown portage:portage /var/tmp/portage
root # mount /var/tmp/portage


Emerge necessary ebuilds

root # emerge raspberrypi-userland raspberrypi-firmware raspberrypi-image sys-firmware/raspberrypi-wifi-ucode


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
dwc_otg.lpm_enable=0 root=/dev/mmcblk0p3 rootfstype=ext4 fsck.repair=yes usbhid.mousepoll=0 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


Exit from fchroot and boot your raspberry pi

Make sure all buffers have been flushed and unmount the temp directories:

root # exit
root # sync
root # cd /mnt ; umount -lR funtoo


   Note

you should probably test that your pi boots at this point BEFORE emerging everything.

Update all system

root # emerge -avuND @world


Wifi

Power saving mode was an issue years ago on older versions of the raspberry pi. Some people report wifi stability issues if power saving mode is active, even in newer versions. To permanently disable power saving mode:

root # echo -e '#!/bin/sh\niwconfig wlan0 power off' > /etc/local.d/wifi-power.start
root # chmod +x /etc/local.d/wifi-power.start