Ho usato Yocto per creare una piccola immagine di Linux per Beaglebone Black. Penso di avere tutto ciò che funziona come lo voglio, tranne che ho bisogno di accedere agli UART 2 e 4. Quando usavo l'immagine standard di Debian, l'ho fatto con gli overlay dell'albero dei dispositivi e capemgr. Tuttavia, ho trovato che il kernel creato con Yocto non ha capemgr.Modifica dell'albero dei dispositivi per Beaglebone Black
mie opzioni sembrano essere:
- ottenere il kernel di costruire con capemgr, o
- modificano il file albero dei dispositivi con le modifiche necessarie.
L'opzione 2 sembra molto più semplice.
Le sovrapposizioni dell'albero del dispositivo per le UART sono here e here. Ho cercato di includerli in un paio di modi.
- Ho scomposto il blob dell'albero del dispositivo che stavo usando e provato a includere questi file da lì.
- Ho scaricato the full set of dts files e ho provato a includere gli overlay dell'albero del dispositivo UART in am335x-boneblack.dts.
Entrambi gli approcci producono un qualcosa di errore come questo:
Error: am335x-boneblack.dts:1.1-2 syntax error
FATAL ERROR: Unable to parse input tree
Tuttavia, ho notato che ho un errore simile quando si cerca di compilare AM335x-boneblack.dts anche senza modificarlo, quindi sono probabilmente nemmeno farlo bene. (Utilizzando il comando dtc -I dts -O dtb -o result.dtb am335x-boneblack.dts)
Ovviamente non so cosa sto facendo. Sospetto che le sovrapposizioni dell'albero del dispositivo debbano essere modificate in qualche modo per essere usate nel modo in cui sto cercando di usarle. O forse non sto facendo l'inclusione giusta (basta aggiungere un #include all'inizio del file).
Qualcuno ha qualche idea su cosa potrei fare male? Quello che sto cercando di fare è anche possibile?
Probabilmente si desidera includere il file "overlay" alla fine * * del file **. Dts **, ovvero dopo che è stato dichiarato tutto il resto. Ordinaria **. ** file DTSI non usano 'frammento @ 0 { \t \t target = <&x>; \t \t __overlay__ {...}}', in modo da quelli devono essere modificati fuori. – sawdust
Per compilare DTB su Yocto: 'bitbake -f -c distribuisci your_kernel_recipe', ad es. 'bitbake -f -c distribuisce linux-imx' – LPs