My Raspberry PI 4 Configuration notes

Install imager on Ubuntu

sudo apt install rpi-imager

Write Ubuntu ARM64 on Micro-SD

Automatically connect to a wireless network configuration

Replace the network-config file content in system-boot partition with this:

# This file contains a netplan-compatible configuration which cloud-init
# will apply on first-boot. Please refer to the cloud-init documentation and
# the netplan reference for full details:
#
# https://cloudinit.readthedocs.io/
# https://netplan.io/reference
#
# Some additional examples are commented out below

version: 2
ethernets:
  eth0:
    dhcp4: true
    optional: true
wifis:
  wlan0:
    dhcp4: true
    optional: true
    access-points:
      "SSID_REPLACE_ME":
        password: "PASSWORD_REPLACE_ME"

Probably on the first boot the raspberry pi will not connect to Wifi network. Infact the first boot is the configuration boot. Reboot ubuntu and it will work.

Connect via SSH to your Raspberry PI

ssh ubuntu@192.168.8.100

The default password is “ubuntu”. In order to retrieve the IP address of raspberry, you should access to yours router admin page.

Update Ubuntu

sudo apt-get update;
sudo apt-get upgrade;

Disable automatic updates

sudo nano /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "1";

Open JDK Installation

sudo apt-get install openjdk-14-jdk

Install raspi-config

wget https://raw.githubusercontent.com/EmilGus/install_raspi-config/master/install.sh
sudo sh install.sh

https://github.com/EmilGus/install_raspi-config/blob/master/install.sh

Install ArgonOne

cd /tmp/
wget https://raw.githubusercontent.com/meuter/argon-one-case-ubuntu-20.04/master/argon1.sh
# inspect script if you're paranoid
chmod a+x argon1.sh
sudo ./argon1.sh

Install mysql-server

sudo apt-get install mysql-server
sudo mysql_secure_installation

sudo mysql

Create new user

CREATE USER 'user'@'%' IDENTIFIED BY 'your_password';

Create schema

CREATE SCHEMA db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

Grant privileges

GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' WITH GRANT OPTION;
flush privileges;

Allow remote connections

sudo nano /etc/mysql/my.cnf
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

[mysqld]
bind-address=0.0.0.0