1. Flash OS Raspbian ke SD-Card.
2. Flash OS Ubuntu Server ke SSD menggunakan aplikasi balenaEtcher.
3. Pasang SD-Card ke Raspberry Pi, lalu nyalakan.
4. Pada kasus ini saya mengakses Raspberry Pi melalui ssh menggunakan aplikasi putty.
5. Upgrade terlebih dahulu OS yang kita gunakan.
$ sudo apt update && sudo apt full-upgrade -y
Cara ini untuk meningkatkan sistem dan semua aplikasi yang sudah terinstall
6. Edit file rpi-eeprom-update dan ganti FIRMWARE_RELEASE_STATUS "default" menjadi "beta"
7. Install pembaruan beta bootloader terbaru dengan menjalankan perintah berikut:
$ cd /lib/firmware/raspberrypi/bootloader/beta/
$ ls
$ sudo rpi-eeprom-update -d -f pieeprom-2021-02-16.bin (adalah tanggal bootloader beta terbaru pada kasus saya. Disarankan pilih versi terbaru)
Setelah perintah rpi-eeprom-update selesai, reboot raspberry
8. Verifikasi eeprom. Pastikan bootloader adalah versi terbaru.
$ vcgencmd bootloader_version
Setelah melakukan perintah diatas, matikan Raspberry Pi.
9. Pasang SSD ke Raspberry melalui port USB 3.0
Cari nama partisi dengan perintah berikut :
$ lsblk
* / dev / sda1: partisi boot pada SSD.
* / dev / sda2: partisi utama di SSD.
Buat partisi di / mnt / boot (partisi boot) dan / mnt / principal (partisi utama)
$ sudo mkdir /mnt/boot && sudo mount /dev/sda1 /mnt/boot
$ sudo mkdir /mnt/principal && sudo mount /dev/sda2 /mnt/principal
10 . Copy konten file (*.dat & *.elf files) dari /boot partition ke /mnt/boot.
$ cd /mnt/boot
$ sudo cp /boot/*.elf /mnt/boot/
$ sudo sudo cp /boot/*.dat /mnt/boot/
11. Ekstrak file vmlinuz pada partisi boot
$ cd /mnt/boot
$ zcat vmlinuz > vmlinux
12. Edit file config.txt
# sudo nano /mnt/boot/config.txt
Tambahkan script dibawah kemudian simpan.
dtoverlay=vc4-fkms-v3d
boot_delay
kernel=vmlinux
initramfs initrd.img followkernel
13. Tambahkan script untuk dekompresi otomatis kernel di partisi boot (/mnt/boot/) dan beri nama auto_decompress_kernel.
$ sudo nano /mnt/boot/auto_decompress_kernel
Tambakan script dibawah kemudian simpan
#!/bin/bash -e
# auto_decompress_kernel script
#Set Variables
BTPATH=/boot/firmware
CKPATH=$BTPATH/vmlinuz
DKPATH=$BTPATH/vmlinux
#Check if compression needs to be done.
if [ -e $BTPATH/check.md5 ]; then
if md5sum --status --ignore-missing -c $BTPATH/check.md5; then
echo -e "\e[32mFiles have not changed, Decompression not needed\e[0m"
exit 0
else
echo -e "\e[31mHash failed, kernel will be compressed\e[0m"
fi
fi
#Backup the old decompressed kernel
mv $DKPATH $DKPATH.bak
if [ ! $? == 0 ]; then
echo -e "\e[31mDECOMPRESSED KERNEL BACKUP FAILED!\e[0m"
exit 1
else
echo -e "\e[32mDecompressed kernel backup was successful\e[0m"
fi
#Decompress the new kernel
echo "Decompressing kernel: "$CKPATH".............."
zcat $CKPATH > $DKPATH
if [ ! $? == 0 ]; then
echo -e "\e[31mKERNEL FAILED TO DECOMPRESS!\e[0m"
exit 1
else
echo -e "\e[32mKernel Decompressed Succesfully\e[0m"
fi
#Hash the new kernel for checking
md5sum $CKPATH $DKPATH > $BTPATH/check.md5
if [ ! $? == 0 ]; then
echo -e "\e[31mMD5 GENERATION FAILED!\e[0m"
else
echo -e "\e[32mMD5 generated Succesfully\e[0m"
fi
#Exit
exit 0
Beri akses pada file diatas agar bisa dieksekusi
$ sudo chmod +x auto_decompress_kernel
14 Tambahkan file pada folder /mnt/principal/etc/apt/apt.conf.d/ dengan nama 999_decompress_rpi_kernel
$ sudo nano /mnt/principal/etc/apt/apt.conf.d/999_decompress_rpi_kernel
Tambahkan script dibawah kemudian simpan.
DPkg::Post-Invoke {"/bin/bash /boot/firmware/auto_decompress_kernel"; };
Beri akses pada file diatas agar bisa dieksekusi
$ sudo chmod +x /mnt/principal/etc/apt/apt.conf.d/999_decompress_rpi_kernel
15 Matikan Raspberry Pi dan cabut SD-Card, kemudian nyalakan.
Cek kembali partisi dengan perintah :
$ lsblk
Raspberry pi sudah bisa boot dari SSD menggunakan OS ubuntu server 20.04.
0 comments:
Post a Comment