From Fedora Project Wiki

Fedora 20 per ARM

Il team di Fedora ARM ha il piacere di annunciare che Fedora 20 per le architetture ARM è ora disponibile per il download al link:

http://download.fedoraproject.org/pub/fedora/linux/releases/20/Images/armhfp/

Fedora 20 per ARM include due tipi di immagine - il primo per piattaforme che richiedono partizioni VFAT (come i processori basati su AM335x Beaglebone Black della Texas Instruments), altri per l'uso con dispositivi avviati su partizioni EXT3/4 (come quelli basati su Tegra2 TrimSlice della ComputerLab). Per ognuna di questi tipi di immagine, ce ne sono varie a scelta in base al tipo di desktop (includendo MATE, KDE, XFCE, LXDE, SOAS), così come immagini di sistemi minimali che invece non includono il desktop. Qualsiasi immagine di quelle proposte possono essere usate con QEMU su desktop x86_64 per emulare un ARM penamente funzionale.

I processi d'installazione basate su immagine prevede il download del file immagine (a seconda del tipo di destinazione desktop/non-desktop desiderata), l'inserimento di un supporto rimovibile nel sistema "host" (ad esempio un ARM o un PC x86_64, laptop, etc.) e dei semplici comandi per la masterizzazione sul supporto. Quest'ultimo verrà poi usato dal sistema "target" per avviare Fedora 20 Alpha.

Nota
Gli esempi forniti qui sono di una Fedora 19/20 e potrebbero servire degli aggiustamenti in base al proprio hardware.

BeagleBone Black

IMPORTANTE
Stavolta bisogna avere un cavo console seriale per BeagleBone Black. Per coloro che non ne hanno, vedi le FAQ nella parte inferiore di questa pagina

Il supporto per BeagleBone Black è stato aggiunto in Fedora 20. Il rilascio GA include il supporto base che verrà esteso per includere HDMI e USB con i rilasci dei kernel 3.12. E' in programma una nuova remix. Nel frattempo, si consiglia l'immagine minimal.

TYPE= # options include KDE, LXDE, XFCE, SoaS, Mate and Minimal
wget http://download.fedoraproject.org/pub/fedora/linux/releases/20/Images/armhfp/Fedora-$TYPE-VFAT-armhfp-20-1-sda.raw.xz

Copia l'immage nel supporto di destinazione:

xzcat Fedora-$TYPE-VFAT-armhfp-20-1-sda.raw.xz > /dev/<location-of-your-media>

Auto-mount il nuovo supporto e copia i file U-Boot dalla partizione root alla UBOOT (all'auto-montaggio su Fedora, le partizioni verranno visualizzate come segue):

USER= #your username
cp /run/media/$USER/__/usr/share/uboot-beaglebone/* /run/media/$USER/uboot/
cp /run/media/$USER/uboot/uEnv.txt.beaglebone /run/media/$USER/uboot/uEnv.txt

Inserirlo nel BeagleBone Black ed avviare. (NOTA - non premere alcun pulsante del Beaglebone Black per permettere l'avvio dell'U-Boot da eMMC. I LED rimarranno accesi e si spegneranno quando il kernel viene avviato)

Modificare una opzione nel seguente file(solo BeagleBone Black):

vi /run/media/$USER/uboot/uEnv.txt
abcboard=am335x-bone > abcboard=am335x-boneblack

TrimSlice della ComputerLab

IMPORTANTE
Bisogna utilizzare i recenti dispositivi abilitati U-Boot per avviare l'immagine di una Fedora 20 Trimslice, che può essere trovata qui. Le variabili ambientali sono descritte qui. In caso contrario il sistema non partirà.

Scaricare l'immagine scelta per TrimSlice:

TYPE= # options included KDE, LXDE, XFCE, SoaS, Mate and Minimal
wget http://download.fedoraproject.org/pub/fedora/linux/releases/20/Images/armhfp/Fedora-$TYPE-armhfp-20-1-sda.raw.xz

Copiare l'immagine:

 xzcat Fedora-$TYPE-armhfp-20-1-sda.raw.xz > /dev/<location-of-your-media> 

Inserirla in TrimSlice ed avviare. Fedora partirà con un setup iniziale che permette di creare il proprio utente, di impostare la password di root ed il fuso orario.

Problemi conosciuti in Trimslice

  • L'avvio con l'Initrd grafico abilitato da SD card fallisce con l'errore 'mmc_timeout'. E' un bug con la versione di U-Boot fornito da CompuLab. Initrd delle immagini è un disco ram generico che viene sostituito con una versione specifica host dopo il primo aggiornamento kernel. Per ovviare a questo problema su Fedora 20, è disponibile un initrd specifico host qui.

Wandboard (Freescale i.MX6)

Il kernel Fedora attualmente non supporta il display su Wandboard, per tale motivo è raccomandato il file immagine Minimal.

wget http://download.fedoraproject.org/pub/fedora/linux/releases/20/Images/armhfp/Fedora-Minimal-armhfp-20-1-sda.raw.xz
xzcat Fedora-Minimal-armhfp-20-1-sda.raw.xz > /dev/<location-of-your-media>
sync

Rimuovere e reinserire il supporto nel PC host per montare automaticamente l'immagine.

Wandboard include le configurazioni Solo, Dual e Quad core, determinare l'hardware ed utilizzare il alore appropriato. La configurazione Wandboard Quad è stata testata e ne è stato confermato il funzionamento, ma anche le configurazioni Solo e Dual core dovrebbero funzionare allo stesso modo.

USER= # your username
cd /run/media/$USER/__boot
sudo ln -sf dtb-3.11.10-301.fc20.armv7hl dtb

Creare il file extlinux.conf manualmente (dalla directory corrente, 'sudo vi extlinux/extlinux.conf:

  • NOTA - Può essere necessario modificare il file extlinux.conf aggiungendo l'UUID del filesystem della propria root. Per controllo, usare 'blkid /dev/<location-of-your-media>'. Prendere nota dell'UUID.
# extlinux.conf generated by anaconda

#ui menu.c32

menu autoboot Welcome to Fedora. Automatic boot in # second{,s}. Press a key for options.
#menu title Fedora Boot Options.
#menu hidden

timeout 60
#totaltimeout 9000

label Fedora (3.11.10-301.fc20.armv7hl) 20 (Heisenbug)
        kernel /vmlinuz-3.11.10-301.fc20.armv7hl
        append console=ttymxc0,115200 root=UUID=7ee85ed8-de4a-4779-8658-2daed0d35e97 ro rhgb quiet LANG=en_US.UTF-8
        fdt /dtb/imx6q-wandboard.dtb
        initrd /initramfs-3.11.10-301.fc20.armv7hl.img

Copiare l'U-boot per l'hardware in uso:

BOARD= # Choose 'solo', 'dl' or 'quad'
sudo cp /run/media/$USER/__/usr/share/uboot-imx6$BOARD/u-boot.imx /home/$USER/
sync

Smontare il supporto e copiare il file U-boot:

 
sudo umount /run/media/$USER/__boot
sudo umount /run/media/$USER/__
/home/$USER/
dd if=u-boot.imx of=/dev/<location-of-your-media> bs=1k seek=1 conv=fsync
sync

Rimuovere il supporto ed inserirlo nel Wandboard; avviare.

IMPORTANTE
Inserirlo nello slot MicroSD sotto il dissipatore.

Network Installation sul Wandboard

Indipendentemente dalla scelta, dovrai installare u-boot sulla scheda microsd prima.

Il metodo preferito è l'impostazione pxe tree; bisogna copiare tutto il contenuto del pxeboot tree inclusa la directory dtb directory che ha dtbs per tutte le schede.

Se per qualche motivo non è possibile utilizzare PXE è possibile caricare manualmente ciascuno dei bit da un server TFTP seguendo i seguenti passaggi.

Testato su Wandboard Quad, usare il 'dtb' appropriato per il proprio board ed aggiustare l'indirizzo IP nella rete. Ciò richiederà anche un server TFTP di lavoro e una MicroSD con U-Boot.

setenv ipaddr $WANDBOARDIP # opure usare 'dhcp get' per l'IP
setenv serverip $TFTPBOOTSEVER # Impostarlo per il proprio TFTP boot server
setenv bootargs console=ttymxc0,115200 ip=eth0:dhcp inst.repo=http://download.fedoraproject.org/pub/fedora/linux/releases/20/Fedora/armhfp/os/ rd.shell
tftpboot ${ramdisk_addr_r} ${serverip}:initrd.img
tftpboot ${kernel_addr_r} ${serverip}:vmlinuz
tftpboot ${fdt_addr} ${serverip}:imx6q-wandboard.dtb
bootz ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr}

Installazione MicroSD

E' disponibile un'immagine MicroSD pronta:

wget http://pwhalen.fedorapeople.org/Fedora/20/Fedora-20-Wandboard-Installer.raw.xz
xzcat Fedora-20-Wandboard-Installer.raw.xz > /dev/<location-of-your-media>
sync

Rimuovere e reinserire il supporot, smontare la MicroSD e copiare l'U-Boot:

wget http://pwhalen.fedorapeople.org/Fedora/20/u-boot.imx
dd if=u-boot.imx of=/dev/<location-of-your-media> bs=1k seek=1

Se hai riformattato '/ boot' durante l'installazione per la MicroSD, bisognerà di riscrivere l'U-Boot nella scheda MicroSD e creare il link simbolico DTB come indicato in precedenza.

Problemi conosciuti sul Wandboard

  • Quando si aggiorna il kernel sarà necessario aggiornare il link simbolico per il DTB in '/ boot'
  • USB Root not booting. SATA non testato.

Versatile Express Emulation con QEMU

Nessun hardware ARM ? No problem! Anche senza, è possibile avviare Fedora 20 per immagini ARM usando l'emulatore QEMU. E' possibile usare qualsiasi immagine e scegliere un metodo di script o un metodo manuale in base alle proprie preferenze.

Preparazione manuale

TYPE= # options include KDE, LXDE, XFCE, SoaS, Mate and Minimal
wget http://download.fedoraproject.org/pub/fedora/linux/releases/20/Images/armhfp/Fedora-$TYPE-armhfp-20-1-sda.raw.xz

Estrarre l'immagine:

unxz Fedora-$TYPE-armhfp-20-1-sda.raw.xz

Installare 'libguestfs-tools' per usare virt-copy

sudo yum install -y libguestfs-tools

Estrarre kernel ed initramfs per l'avvio.

virt-copy-out -a Fedora-$TYPE-armhfp-20-1-sda.raw /boot/vmlinuz-3.11.10-301.fc20.armv7hl .
virt-copy-out -a Fedora-$TYPE-armhfp-20-1-sda.raw /boot/initramfs-3.11.10-301.fc20.armv7hl.img .

Per avviare:

sudo qemu-system-arm -machine vexpress-a9 -m 1024 -nographic -net nic -net user \
 -append "console=ttyAMA0,115200n8 rw root=/dev/mmcblk0p3 rootwait physmap.enabled=0" \
 -kernel vmlinuz-3.11.10-301.fc20.armv7hl \
 -initrd initramfs-3.11.10-301.fc20.armv7hl.img \
 -sd Fedora-$TYPE-armhfp-20-1-sda.raw \

Per convenienza è possibile scaricare qui uno script per l'avvio del sistema. Per far partire lo script:

chmod 755 boot-vexpress
./boot-vexpress -h
Usage: ./boot-vexpress [--gui] --kernel=vmlinuz... --ramfs=initramfs --image=fsimage [--dtb=vexpress.dtb]

Per avviare l'immagine:

sudo ./boot-vexpress --kernel=vmlinuz-3.11.10-301.fc20.armv7hl --ramfs=initramfs-3.11.10-301.fc20.armv7hl.img --image=Fedora-$TYPE-armhfp-20-1-sda.raw

L'avvio con l'albero dei dispositivi è possibile, sebbene passare --gui per la grafica non funziona in questo momento (questo è dovuto alla riformulazione in corso della piattaforma all'interno del codice del kernel Versatile Express). Perciò l'avvio senza l'albero dei dispositivi è raccomandato per F-20, visto che funzionerà sia in modalità seriale che grafica, mentre passando un DTB funzionerà solo col seriale.

Espansione del Disk Image

Si può facilmente espandere la partizione root dell'immagine del disco con qemu-img.

Ad esempio, per aumentare le dimensioni dell'immagine di 10GB:

 qemu-img resize ./file.img +10G

Interactive Network Installation

Fedora 20 offre la possibilità di eseguire una installazione di rete utilizzando 'vexpress-a15' o 'vexpress-a9'. Con il primo vi permetterà di sfruttare più RAM utilizzando il kernel LPAE.

# vexpress-a15
# Crea l'immagine disco
qemu-img create Fedora-QEMU-A15-armhfp-20-1-sda.raw $SIZE #add a size EG 8G
# recupero DTB
wget http://download.fedoraproject.org/pub/fedora/linux/releases/20/Fedora/armhfp/os/images/pxeboot/dtb/vexpress-v2p-ca15-tc1.dtb
# Inizio installazione
sudo virt-install --name Fedora-QEMU-A15-armhfp-20-1-sda \
--ram 2048         \
--arch armv7l      \
--machine vexpress-a15 \
--location=http://download.fedoraproject.org/pub/fedora/linux/releases/20/Fedora/armhfp/os/ \
--disk Fedora-QEMU-A15-armhfp-20-1-sda.raw \
--extra-args="console=ttyAMA0 rw" \
--os-variant fedora20             \
--graphics none \
--boot dtb=`pwd`/vexpress-v2p-ca15-tc1.dtb

# vexpress-a9
# Crea l'immagine disco
sudo qemu-img create Fedora-QEMU-A9-armhfp-20-1-sda.raw $SIZE #add a size EG 8G
# recupero DTB
wget http://download.fedoraproject.org/pub/fedora/linux/releases/20/Fedora/armhfp/os/images/pxeboot/dtb/vexpress-v2p-ca9.dtb
# Inizio installazione
sudo virt-install \
--name Fedora-QEMU-A9-armhfp-20-1-sda \
--ram 1024 \
--arch armv7l      \
--machine vexpress-a9 \
--location=http://download.fedoraproject.org/pub/fedora/linux/releases/20/Fedora/armhfp/os/ \
--disk Fedora-QEMU-A9-armhfp-20-1-sda.raw \
--extra-args="console=ttyAMA0 rw" \
--os-variant fedora20             \
--graphics none \
--boot dtb=`pwd`/vexpress-v2p-ca9.dtb 

Completare l'installazione Text o VNC scegliendo un pacchetto software e uno schema di partionamento (nota che durante la scelta tra LVM o BTRFS sarà necessario modificare gli argomenti del kernel in modo appropriato). Il sistema tenterà di riavviarsi, ma non ci riuscirà finché il prossimo passo non sarà completato.

Estrazione file dall'immagine disco

Una volta completata, bisognerà copiare kernel, initramfs ed DTB dall'immagine disco per usarli con Virt-Manager o linea di comando.

# vexpress-a15
sudo virt-copy-out -a Fedora-QEMU-A15-armhfp-20-1-sda.raw /boot/{vmlinuz-3.11.10-301.fc20.armv7hl+lpae,initramfs-3.11.10-301.fc20.armv7hl+lpae.img} .
sudo virt-copy-out -a Fedora-QEMU-A15-armhfp-20-1-sda.raw /boot/dtb-3.11.10-301.fc20.armv7hl+lpae/dtb-3.11.10-301.fc20.armv7hl/vexpress-v2p-ca15-tc1.dtb .
# vexpress-a9
sudo virt-copy-out -a Fedora-QEMU-A9-armhfp-20-1-sda.raw /boot/{vmlinuz-3.11.10-301.fc20.armv7hl,initramfs-3.11.10-301.fc20.armv7hl.img} .
sudo virt-copy-out -a Fedora-QEMU-A9-armhfp-20-1-sda.raw /boot/dtb-3.11.10-301.fc20.armv7hl/vexpress-v2p-ca9.dtb .

Avviare il nuovo sistema

Una volta che i file sono stati estratti è possibile scegliere di utilizzare il sistema da linea di comando o con Virt-Manager. Virt-Manager offre maggiore flessibilità ed è consigliato per la maggior parte degli utenti.

Virt-Manager

  • Aprire Virt-Manager e selezionare l'immagine creata prima. Cliccare su "Edit-> Virtual Machine Details -> View -> Details"
  • Da "Boot Options", aggiungere kernel, initramfs e dtb estratti precedentemente (il DTB deve puntare al percorso corretto)
  • Come argomenti kernel, aggiungere (nota- se utilizzato un partizionamento personalizzato, servirà una rettifica con 'root='):
# Con il partizionamento standard
console=ttyAMA0,115200n8 rw root=/dev/vda3 rootwait
# Se selezionato un LVM
console=ttyAMA0,115200n8 rw root=/dev/mapper/fedora-root rootwait
  • Quando si utilizza il DTB e il kernel LPAE A15 è possibile utilizzare più RAM (12GB testati).

Known Issues when using QEMU

  • After updating the kernel you will need to extract the kernel, initramfs and dtb files and update the paths used in Virt-Manager as described above.

Ridimensionare il Filesystem Root

Solitamente, la partizione root dovrebbe essere ridimensionata per caricare il media in uso sul first boot. Per usare questo spazio aggiuntivo, avviare:

resize2fs /dev/sda3

Calxeda EnergyCore (HighBank)

Fedora 20 Alpha per ARM include il supporto a sistemi in grado di eseguire installazioni in rete usando un kickstart, includendo hardware enterprise come l'Highbank. Un kickstart funzionante si trova qui.

Per istruzioni maggiormente dettagliate, visitare questa pagina.

Primo avvio

Initial-setup

  • Durante il primo avvio, il sistema lancierà l'utility 'initial-setup'. Per le immagini grafiche questo avverrà sul display, per quelle minimali avverrà nella console. Il mancato completamento della configurazione iniziale, impedirà l'accesso al sistema. Per loggarsi con l'account root anche senza il completamento dell'initial-setup, servirà modificare il file '/etc/passwd' e rimuovere la 'x' dalla linea che inizia con 'root' (questo vi permetterà di accedere all'account di root senza password).

Problemi conosciuti

  • Il Beaglebone Black avvierà le immagini di Fedora 20 VFAT, tuttavia non vi è attualmente alcun USB. Si sta lavorando su quest'aspetto; nel frattempo se si desidera contribuire, visitare il canale #fedora-arm su Freenode.
  • Le immagini includono dracut-modules-growroot e cloud-utils-growpart ceh dovrebbero ridimensionare automaticamente la partizine root al primo avvio, a causa di un bug questo non dovrebbe accadere. La soluzione è ridimensionare la partizione root usando GParted o un equivalente.

FAQ

DOMANDA: Come faccio a usare Fedora ARM quando non ho cavo seriale o display?

RISPOSTA: Sebbene non sia consigliato, è possibile utilizzare Fedora ARM senza cavo seriale o visualizzazione. Nel farlo si consiglia di limitare gli aggiornamenti per ridurre la possibilità di non essere in grado di effettuare l'avvio. (Questo esempio è di un sistema Fedora 19, potrebbe essere necessario regolare i supporti utilizzati).

USER= # your user account
rm /run/media/$USER/__/etc/systemd/system/graphical.target.wants/initial-setup-graphical.service
rm /run/media/$USER/__/etc/systemd/system/multi-user.target.wants/initial-setup-text.service
mkdir /run/media/$USER/__/root/.ssh/
cat /home/$USER/.ssh/id_rsa.pub >> /run/media/$USER/__/root/.ssh/authorized_keys
chmod u=rwX,o=,g= -r /run/media/$USER/__/root/.ssh/

Dare al sistema un paio di minuti per l'avvio, quando si ottiene un IP si dovrebbe essere in grado di accedere via ssh all'account di root.