Outils pour utilisateurs

Outils du site


tutoriel:oliv:arm64-rp64-openbsd-install

ARM64 : Installer OpenBSD sur RP64

(Rockchip - RK3399 - RockPro64)

RP64 Kezako ?

Le RockPro64 ou RP64 est un nano / micro ordinateur monocarte, proche d'une carte de crédit. Le RP64 est sous architecture ARM 64 bits.

Objectif

L'objectif de ce document est de couvrir le processus d'installation d'OpenBSD sur RP64 suivante :

  • OpenBSD Current 6.7(-beta) :
    • Media d'installation : clé usb
    • Cible carte emmc 64 Go

Ce document, ne couvre pas le processus classique de l'installation d'OpenBSD en lui même.

Sur RP64, le processus d'installation est simple :

  1. Ordre de démarrage (fonction des matériels insérés) :
    • SPI NOR flash memory en 1
    • emmc en 2
    • sd en 3
  2. Effacer la mémoire flash SPI
  3. Permettre au RP64 de démarrer via u-boot et depuis le média USB
  4. Lancer le processus d'installation classique

Choix, pourquoi le RP64 :

  • Faible consommation électrique
  • Prix faible vs un ordinateur
  • Encombrement
  • Ludique
  • Moins sensibles aux menaces due à l'empreinte architecture et quantitative sur le marché
  • 1 port PCIe x4 (gen 2.0 ?)
    • Carte SATA –> pour un NAS
    • Carte ethernet
    • Carte USB
    • (…)

Pour en savoir plus : RP64

Matériel nécessaire

Achat du matériel :

  • RP64 - 4gb (domotique & nas) : ici
  • Adaptateur usb / emmc : ici
  • 1 carte emmc 54 Gb : ici
  • 1 joli Boitier NAS : ici
  • 1 ventlateur haut : ici
  • 1 ventilateur boitier : ici
  • 1 adaptateur 12v / 5A : ici
  • 1 adaptateur USB UART / TTL : ici

Le bus PCI pose encore quelques soucis sur sa gestion.

Voici, ci-dessous, une liste de matériel testé par Kurt, source :

Cartes / Chipsets OK :

  • StarTech.com PEXSAT32 2 Port SATA Controller
    • ahci0 at pci1 dev 0 function 0 “Marvell 88SE9128 AHCI” rev 0x20: msi, AHCI 1.2
  • QNINE NVME PCIe Adapter M.2 2280 w/Samsung 970 EVO
    • nvme0 at pci1 dev 0 function 0 “Samsung SM981/PM981 NVMe” rev 0x00: msix, NVMe 1.3

Fonctionne mais déconseillée

  • ROCKPro64 PCI-E to Dual SATA-II Interface Card
    • ahci0 at pci1 dev 0 function 0 “ASMedia ASM1061 AHCI” rev 0x01: msi, AHCI 1.2

Ne fonctionne pas :

  • HighPoint Rocket 640L
    • ahci0 at pci1 dev 0 function 0 “Marvell 88SE9230 AHCI” rev 0x11: msi, AHCI 1.2
  • Dell PERC 6/ir
    • mpi0 at pci9 dev 0 function 0 “Symbios Logic SAS1068E” rev 0x08: msi

Le pilote actuel ne supporte pas les cartes basées sur pci-bridge

Installation

  • Au premier démarrage, désactiver le boot sur SPI via un jumper sur les PIN 23 & 25, à retirer après 2 secondes et avant l'allumage de la LED blanche
  • Le “2-pin jumper” (16) permet de désactiver la carte emmc. À retirer 2 secondes après le démarrage et avant l'allumage de la LED blanche, pour permettre à la carte emmc d'être reconnue post démarrage.

Préparation

Sur votre ordinateur fixe / portable (quelque soit l'architecture) :

Vérifier via dmesg la configuration des disques de votre système

Step 1 : aller chercher les ressources

1. Image de démarrage OpenBSD : miniroot67.fs

# ftp -o miniroot67.fs https://cdn.openbsd.org/pub/OpenBSD/snapshots/arm64/miniroot67.fs

2. Installer les packets suivants :

  • u-boot-aarch64-2020.01p3.tgz : lanceur de démarrage, mais pas que ça !
  • dtb-4.20p0.tgz : fournir un firmware à u-boot
Step 2 : Préparer la clé USB

1. Installer l'image OpenBSD sur la clé USB (Si clé = sd1)

# dd if=miniroot67.fs of=/dev/rsd1c bs=1m

2. Installer le dtb sur la clé USB

Monter le USB stick (Si clé = sd1)

# mount /dev/sd1i /mnt
# mkdir /mnt/rockchip
# cp /usr/local/share/dtb/arm64/rockchip/rk3399-rockpro64.dtb /mnt/rockchip/
# umount /mnt

Sans l'installation du dtb sur la clé USB, vous ne pourrez pas écrire sur la carte emmc.

Step 3: Préparer la carte eMMC (Si emmc = sd2)
  1. Installer l'emmc sur la clé USB
  2. Installer U-Boot & le firmware sur emmc
# dd if=/usr/local/share/u-boot/rockpro64-rk3399/idbloader.img of=/dev/sd2c seek=64
# dd if=/usr/local/share/u-boot/rockpro64-rk3399/u-boot.itb of=/dev/sd2c seek=16384

Préparation du RP64

  1. Installer la carte emmc sur son emplacement
  2. Insérer la clé sur un port USB 2.0 du RP64

Premier démarrage

Actions qui seront effectuées :

  1. Positionner un cable sur les pin GPIO 23 et 25 pour désactiver le boot sur flash SPI
  2. Démarrer
  3. Avant 2 secondes retirer le jumper
  4. Entrer dans u-boot
  5. Effacer le flash SPI (ou laisser le jumper éternellement)
  6. Prendre en compte la clé USB ; Faire reconnaitre la clé USB
  7. Sortir de u-boot
  8. Amorcer l'installation de OpenBSD
Output : U-BOOT

Pour entrer dans u-boot, Il faut appuyer sur une touche à la ligne :

Hit any key to stop autoboot:

U-Boot TPL 2020.01 (Mar 31 2020 - 18:19:43)
Channel 0: LPDDR4, 50MHz
BW=32 Col=10 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=2048MB
Channel 1: LPDDR4, 50MHz
BW=32 Col=10 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=2048MB
256B stride
256B stride
lpddr4_set_rate: change freq to 400000000 mhz 0, 1
lpddr4_set_rate: change freq to 800000000 mhz 1, 0
Trying to boot from BOOTROM
Returning to boot ROM...

U-Boot SPL 2020.01 (Mar 31 2020 - 18:19:43 -0600)
Trying to boot from MMC2
NOTICE:  BL31: v2.2(debug):2.2
NOTICE:  BL31: Built : 16:21:22, Mar 31 2020
INFO:    GICv3 with legacy support detected. ARM GICv3 driver initialized in EL3
INFO:    plat_rockchip_pmu_init(1624): pd status 3e
INFO:    BL31: Initializing runtime services
INFO:    BL31: cortex_a53: CPU workaround for 855873 was applied
INFO:    BL31: Preparing for EL3 exit to normal world
INFO:    Entry point address = 0x200000
INFO:    SPSR = 0x3c9


U-Boot 2020.01 (Mar 31 2020 - 18:19:43 -0600)

Model: Pine64 RockPro64
DRAM:  3.9 GiB
PMIC:  RK808 
MMC:   dwmmc@fe320000: 1, sdhci@fe330000: 0
Loading Environment from MMC... *** Warning - bad CRC, using default environment

In:    serial@ff1a0000
Out:   serial@ff1a0000
Err:   serial@ff1a0000
Model: Pine64 RockPro64
rockchip_dnl_key_pressed: adc_channel_single_shot fail!
Net:   eth0: ethernet@fe300000
Hit any key to stop autoboot:  0
À venir : u-boot - effacer la flash USB

Insérer les commandes pour effacer le flash SPI

u-boot reconnaissance de la clé USB

Dans u-boot :

=> usb start
starting USB...
Bus usb@fe380000: USB EHCI 1.00
Bus usb@fe3c0000: USB EHCI 1.00
Bus dwc3: Register 2000140 NbrPorts 2
Starting the controller
USB XHCI 1.10
Bus dwc3: Register 2000140 NbrPorts 2
Starting the controller
USB XHCI 1.10
scanning bus usb@fe380000 for devices... 1 USB Device(s) found
scanning bus usb@fe3c0000 for devices... 2 USB Device(s) found
scanning bus dwc3 for devices... 1 USB Device(s) found
scanning bus dwc3 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found

Remarques : Ici, il sera nécessaire d'appuyer sur une touche pour interrompre la boucle du scan

=>  boot
switch to partitions #0, OK
mmc0(part 0) is current device
Scanning mmc 0:1...
Found EFI removable media binary efi/boot/bootaa64.efi
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
Card did not respond to voltage select!
Scanning disk dwmmc@fe320000.blk...
Disk dwmmc@fe320000.blk not ready
Scanning disk sdhci@fe330000.blk...
** Unrecognized filesystem type **
Scanning disk usb_mass_storage.lun0...
** Unrecognized filesystem type **
Found 6 disks
BootOrder not defined
EFI boot manager: Cannot load any image
168758 bytes read in 55 ms (2.9 MiB/s)
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
disks: sd0* sd1
Booter sur l'image OpenBSD (sd1)
>> OpenBSD/arm64 BOOTAA64 0.21
boot> boot sd1a:/bsd
(...)
bootfile: sd1a:/bsd
boot device: sd1
root on rd0a swap on rd0b dump on rd0b
erase ^?, werase ^W, kill ^U, intr ^C, status ^T

Welcome to the OpenBSD/arm64 6.7 installation program.
(I)nstall, (U)pgrade, (A)utoinstall or (S)hell?

Voilà, vous pouvez installer OpenBSD selon la procédure classique ! ICI

  • Le processus de gestion de disk créera une partition MSDOS de 16 MO, à ne pas effacer

Contribut(rice|eur)s :

oliv pengouinpdt
tutoriel/oliv/arm64-rp64-openbsd-install.txt · Dernière modification: 2020/04/12 07:03 de pengouinpdt