Raspberry Pi
Raspberry Pi Foundation, GitHub, Magazine
Quick start
Operating system setup
Installing operating system images
Validated configurations
Type
CPU
RAM
OS
Pi Model B Rev 2
BCM2835 ARMv6 1176JZF-S 700 MHz
512 Mo
Raspberry Pi OS Lite (32-bit)
Pi Model 2 B
BCM2836 ARMv7 Cortex-A7 Quad Core 900MHz
1 Go
Ubuntu Server 18.04 (32-bit), Ubuntu Server 20.04 LTS (32-bit)
BCM2711 ARMv8 Quad core Cortex-A72 64-bit 1.5GHz
4 Go LPDDR4-3200
Ubuntu Server 18.04 (64-bit), Ubuntu Server 20.04 LTS (64-bit)
Known issues
WIFI issues with Pi 4: tom'sHARDWARE, Raspberry Pi 4 WiFi stops working at 2560x1440 screen resolution
Display stops working after a change in the config file: try holding the SHIFT key during startup (using this key will make the Raspberry Pi ignore the boot configuration file and load up with the default settings)
Key elements
SD card preparation
(Optional) Download a specific version from ubuntu.com (for instance the previous before the LTS if it's too new for a specific hardware) WARNING links have to be modified manually (typo in pi version number...)
(Optional) Look at available systems
Install Raspberry Pi Imager from the Downloads page
Insert the SD card and run the Raspberry Pi Imager
(Optional) Eject and insert again the SD card
Edit
network-config
at the root of the drive (with new eth0 and wlan0 parameters)
Initial boot
Insert the SD card in the board, plug a keyboard (USB), a monitor (HDMI) then plug the power cable
Hardware check
Note: @since Kernel 4.9, BCM2835 will be displayed for the processor, even for BCM2836, BCM2837 and BCM2711. You should look instead at the revision code, which is unique.
cat /proc/cpuinfo
Shared steps
Wifi setup
# list interfaces (make sure wlan0 is displayed)
ls /sys/class/net
# edit or create a netplan yaml file and apply the change
sudo nano /etc/netplan/50-cloud-init.yaml
sudo netplan -d apply
systemctl daemon-reload
sudo reboot
# make sure it's connected (with an IP)
ip a
ping google.com
# enable an interface
sudo ip link set wlan0 up
# see the wireless interface
iwconfig
# if it doesn't show up, run
sudo ifconfig wlan0 up
# scan available networks
sudo iwlist wlan0 scan
# look at services
sudo systemctl status systemd-networkd.service
sudo systemctl status netplan-wpa-wlan0.service
# some Wifi USB adaptors may be incompatible with networkd, in this case fallback to NetworkManager
# - just in case make sure the value is correct (2 letter iso country code)
sudo nano /etc/default/crda
# - make sure NetworkManager service is started (start it if needed)
sudo systemctl status NetworkManager.service
# - edit netplan file to use NetworkManager instead of networkd (and comment the existing config)
sudo nano /etc/netplan/50-cloud-init.yaml
sudo netplan apply
systemctl daemon-reload
# - install additional package to have additional tools to configure wifi network
sudo apt install network-manager
# - run the configuration wizard
nmtui
# - set static ip
nmcli con mod mywifiname ipv4.addresses "192.168.86.144" ipv4.gateway "192.168.86.1" ipv4.dns "8.8.8.8,4.4.4.4" ipv4.method "manual"
# - look at the configuration file
sudo more /etc/NetworkManager/system-connections/mywifiname
# - restart the service to take this new configuration into account
sudo systemctl restart NetworkManager.service
System update
# review the operating system information
lsb_release -a
# use package manager to run updates
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
sudo reboot
Troubleshoot
# make sure all services are up
systemctl --failed
# look at recent entries in the journal
journalctl -xe
Keyboard layout configuration
sudo dpkg-reconfigure keyboard-configuration
sudo setupcon
more /etc/default/keyboard
sudo reboot
Raspberry Pi OS (aka Raspbian, Debian 10 = Buster)
Login with
pi
/raspberry
Change keyboard layout
Configure the easy way: set Wifi parameters, update hostname, enable SSH, change password, (optional) change keyboard configuration
raspi-config
(Optional] Configure a static ip by editing
/etc/dhcpcd.conf
(do asudo reboot
afterwards)
interface wlan0
static ip_address=192.168.86.145/24
static routers=192.168.86.1
static domain_name_servers=192.168.86.1 8.8.8.8 4.4.4.4
Run updates
Ubuntu Server (18.04)
Login with
ubuntu
/ubuntu
(you'll be asked to provide a new password)Change keyboard layout
(Optional) Review boot log
dmesg
If there is an issue starting systemd-modules, look at the journal and investigate the issue
sudo systemctl status systemd-modules-load.service
# manual step needed on Raspberry Pi 2: comment is_iser (see https://askubuntu.com/questions/877245/systemd-modules-load-failed-to-start)
sudo nano /lib/modules-load.d/open-iscsi.conf
sudo systemctl start systemd-modules-load.service
Configure Wifi
Run system updates
Ubuntu Server (20.04 LTS)
Login with
ubuntu
/ubuntu
(you'll be asked to provide a new password)Change keyboard layout
Configure Wifi
Run system updates
Recipes
.NET applications
Turning your training bike into a Speed remake by Kevin Gosse - Apr 15, 2020
Install .NET Core on ARMv6 32-bit
.NET Core is not compatible with ARMv6 (even with ARM32 versions: see .NET Runtime issue #7764
Install .NET Core on ARMv7 32-bit
The official procedure and workaround don't work.
# link taken by following download link from https://dotnet.microsoft.com/download/dotnet-core/3.1
wget https://download.visualstudio.microsoft.com/download/pr/56691c4c-341a-4bca-9869-409803d23cf8/d872d7a0c27a6c5e9b812e889de89956/dotnet-sdk-3.1.302-linux-arm.tar.gz
mkdir -p $HOME/dotnet
tar -xvf dotnet-sdk-3.1.302-linux-arm.tar.gz -C $HOME/dotnet
export DOTNET_ROOT=$HOME/dotnet
export PATH=$PATH:$HOME/dotnet
dotnet --version
# add the two export lines in .bashrc so it will be permanent
nano .bashrc
cat << \EOF >> ~/.profile
# add .NET Core SDK
export DOTNET_ROOT=$HOME/dotnet
export PATH=$PATH:$HOME/dotnet
# add .NET Core SDK tools
export PATH="$PATH:$HOME/.dotnet/tools"
EOF
logout
Install .NET Core on ARMv8 64-bit
Retro gaming
retropie
Home: retropie.org.uk, GitHub
Configuration:
Usability
SSH
Enable SSH in raspi-config: interfacing options > SSH > Enable > reboot your pi
Make sure you have a keyboard and a mouse :)
/boot/config.txt
fileValues
Key
value
Detail
Comment
hdmi_group
1
CEA (Consumer Electronics Association) is the display standard that is typically used on a TV
hdmi_group
2
DMT (Display Monitor Timings) is the standard that is typically used by monitors
hdmi_mode
16
CEA 1920×1080 16:9 60hz
hdmi_mode
97
CEA 3840×2160 16:9 60hz
Raspberry Pi 4 Only. To use this hdmi_enable_4kp60=1 must be set in /boot/config.txt.
hdmi_mode
82
DMT 1920×1080 16:9 60hz
To review: hdmi_force_hotplug=1, hdmi_drive=2
Known issues:
Latest update lvl0: VolumeControl::init() - Failed to find mixer elements!
/opt/retropie/configs/all/emulationstation/es_settings.cfg
: AudioDevice=HDMI/Headphone
Screen resolution
/boot/config.txt
: hdmi_group/hdmi_mode
Messed up configuration situation
SSH in (https://github.com/retropie/retropie-setup/wiki/ssh), run sudo ~/RetroPie-Setup/retropie_setup.sh and go to Emulation Station configuration via Manage Packages -> Core Packages -> emulationstation -> Configuration or Configuration / Tools -> emulationstation and choose the option to Clear/Reset Emulation Station input configuration (All packages with configuration appear in Configuration / Tools when installed)
Amibian
Seems dead
Installing Amiga Workbench on Raspberry Pi with Amibian - July 24, 2018
How to Emulate the Commodore Amiga on a Raspberry Pi Using Amibian - August 15, 2018
Turn your Pi into an Amiga - 2017
Last updated
Was this helpful?