Ho intenzione di configurare l'ambiente di compilazione per creare il mio sistema linux embedded per la scheda AT91SAM9X25. Sto usando buildroot per fare questo. Il comando make crea tutti i bersagli, il primo costruisce toolchain, quindi pacchetti e quindi rootfs e immagini di rootfs (tar, cpio ...). Per ricostruire rootfs di solito uso make clean e quindi make. Il comando make clean rimuove tutto e include la toolchain.come ricostruire rootfs in buildroot
Quindi la prima domanda è: esiste un modo per rifare rootfs senza creare toolchain? Ci vuole molto tempo.
Inoltre sto costruendo il kernel linux all'interno di buildroot. Ho attivato BR2_LINUX_KERNEL [= y] in buildroot. Il linux configurato per usare il filesystem RAM iniziale, quindi per costruire il kernel ha richiesto l'immagine di rootfs (che dovrebbe essere creata da buildroot). Quando eseguo make sotto root di buildroot l'edificio fallisce con l'errore Impossibile aprire 'buildroot-2013.05/output/images/rootfs.cpio'. Perché (se ho capito bene) la sequenza di costruzione è toolchain - pakages - rootfs - linux kernel - immagini di rootfs. Quando tenta di compilare il kernel di Linux, l'immagine rootfs.cpio non viene creata.
Quindi la seconda domanda è: come creare linux all'interno di buildroot se si desidera utilizzare il filesystem RAM iniziale?
Forse ci sono alternative più efficienti di buildroot?
Grazie in anticipo.
Lasciatemi riformulare la mia domanda riguardante la costruzione del kernel di linux all'interno di buildroot (potrebbe essere spiegato non abbastanza chiaro). Buildroot rende: 1.Toolchain -> 2.packages -> 3.Linux kernel -> 4.rootfs images. Ma, al passaggio 3 (kernel Linux) sono richieste le immagini rootfs, perché linux configurato come utilizza il filesystem RAM iniziale, ma lo abbiamo ottenuto solo sul passo 4. Che il problema - Vedo messaggio di errore al passo 3: non c'è rootfs.cpio – Yuri
* "linux configurato come utilizza il filesystem RAM iniziale" * - ** Buildroot è configurato anche per initramfs **? L'errore nel passaggio # 3 implica che non hai configurato correttamente Buildroot. Le tue preoccupazioni su come Buildroot gestisce ciò che sembra essere un problema di pollo contro uovo sono affrontate in [descrizione commit per "aggiungi supporto per initramfs"] (http://git.uclibc.org/buildroot/commit/?id=f507921d391bb2578261a9e45c003e72302dc67a) . In sostanza Buildroot esegue il passaggio 3 con un file initramfs * vuoto *, quindi esegue un ulteriore passaggio # 5 per produrre un kernel con initramfs effettivo. – sawdust
La risposta (ovvero la rimozione dei file .stamp_xxx) è stata molto utile per forzare la ricostruzione di rootfs. Tuttavia, ho aggiunto cose extra al rootfs con una sovrapposizione. Quando cambio una (leggermente) diversa configurazione senza l'overlay di rootfs, il file dal vecchio overlay NON viene rimosso dalla struttura sotto "target /", o dall'immagine finale. Ho provato a cancellare il contenuto di "target", ma questo ha causato un errore di compilazione (non è un semplice output di build). C'è un modo per ripulire le cose che sono state rimosse da rootfs senza fare una distflean/ricostruzione completa? – Jeremy