Alcuni prodotti richiedono tempi di avvio molto rapidi. Se si sta sviluppando un prodotto di questo tipo, si consiglia di leggere i suggerimenti che seguono per ridurre i tempi di avvio.
I suggerimenti contenuti in questo post del blog descrivono delle tipiche azioni di ottimizzazione che possono essere eseguite sul System on Modules di Variscite per ridurre i tempi di avvio.
Ottimizzazione U-Boot
- Rimuovere la schermata iniziale di U-Boot sui SOM che la supportano.
È possibile disabilitare la schermata iniziale utilizzando la riga di comando U-Boot, come in questo esempio.
Per eliminare completamente il supporto della schermata iniziale su U-Boot, è possibile anche disabilitare CONFIG_VIDEO nel codice sorgente di U-Boot. - Impostare CONFIG_BOOTDELAY su 0 in U-Boot per risparmiare il secondo di ritardo prima dell’avvio automatico.
- Se l’applicazione richiede un avvio estremamente veloce, valutare l’impostazione della modalità Falcon per un’ulteriore riduzione dei tempi, saltando completamente U-Boot e caricando il kernel da SPL.
Nota: assicurarsi di non saltare stringhe importanti di codice del board file U-Boot. Se necessario, spostare tali stringhe da U-Boot a SPL.
Si legga questa guida per saperne di più su come far sì che la modalità Falcon sia supportata. - Aggiungere «quiet» alla riga di comando del kernel: in tal modo, si interromperanno le stampe durante l’avvio, facendo risparmiare tempo.
Ottimizzazione Linux
- Rimuovere i driver non necessari dalla configurazione predefinita del kernel per ottenere un’immagine del kernel più leggera e pulita, più veloce da caricare.
- Rimuovere o disabilitare i nodi non necessari dell’albero dei dispositivi.
- Integrare come moduli i driver necessari che possono essere caricati alla fine dell’avvio.
Ottimizzazione Rootfs
- Rimuovere dal file di sistema i pacchetti non necessari che vengono eseguiti all’avvio. Usando Yocto, si consiglia di iniziare con core-image-minimal o core-image-base come immagine minimale a cui aggiungere solo i pacchetti di cui si ha bisogno.
- Se è opportuno per l’applicazione, si può valutare l’esecuzione del file di sistema da disco RAM: a volte si usa questa opzione per file di sistema di sola lettura di piccole dimensioni.