clipped from cgit.openembedded.net
|
Ho di nuovo tentato di compilare l'ultimissimo kernel Linux per l'architettura OMAP (non è detto che sia il più stabile per la Beagleboard), preso dal git repository di www.kernel.org:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git linux-omap-2.6
Dopo qualche giorno non era più aggiornato per cui ho fatto:
cd linux-omap-2.6
git-fetch
Al che ho visto a video:
remote: Counting objects: 5443, done.
remote: Compressing objects: 100% (1363/1363), done.
remote: Total 3679 (delta 2860), reused 2964 (delta 2211)
Receiving objects: 100% (3679/3679), 832.69 KiB | 25 KiB/s, done.
Resolving deltas: 100% (2860/2860), completed with 718 local objects.
From git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6
833bb30..0882e8d for-next -> origin/for-next
1232332..8e58316 master -> origin/master
+ a48f410...30b7caa omap-fixes -> origin/omap-fixes (forced update)
+ 1e69a36...0932667 omap-pool -> origin/omap-pool (forced update)
833bb30..0882e8d omap-upstream -> origin/omap-upstream
833bb30..0882e8d omap1-upstream -> origin/omap1-upstream
833bb30..0882e8d omap2-upstream -> origin/omap2-upstream
833bb30..0882e8d omap3-boards -> origin/omap3-boards
833bb30..0882e8d omap3-upstream -> origin/omap3-upstream
66e8ab4..fba29fb pm -> origin/pm
* [new tag] v2.6.30-rc2 -> v2.6.30-rc2
Dopodiché, come al solito ho ripulito e riconfigurato, usando questi due comandi:
make distclean
make omap3_beagle_defconfig
Quest'ultimo si è inceppato per un paio di errori di sbaglio nel Kconfig relativo all'architettura ARM e piattaforma OMAP: ho modificato tale Kconfig eliminando tre righe ("HEAD:arch/arm/plat-omap/Kconfig", "origispgateway...", "===="), evidenti residuati bellici di qualche programmatore distratto e assonnato. Stessa operazione anche per l'altro Kconfig.
Finalmente rilancio e aggiorno:
make omap3_beagle_config
cp .config /tmp/puntoconfig-originale-2.6.30rc2-beagleboard
make uImage
(nota: stavolta non ho modificato la configurazione originale: voglio proprio vedere cosa succede).
Durante la compilazione, arriva un errore (oggi non me ne va bene una):
LD arch/arm/common/built-in.o
/home/arf/beagleboard/linux-omap-2.6/arch/arm/mach-omap2/Makefile:35: *** empty variable name. Stop.
make: *** [arch/arm/mach-omap2] Error 2
Anche qui si trattava di eliminare le linee HEAD e ORIGIN.
Comincio a sospettare che sia il caso di rifare tutto daccapo, poiché HEAD e ORIGIN e gli "=====" distinguono la parte vecchia di codice con la parte nuova. Per cui occorre eliminare da HEAD agli "====", e togliere la riga "origin:" finale.
Temo però che esistano parecchie altre modifiche del genere nel codice. Mi converrà rifare il "git clone" per recuperare tutti i sorgenti; sono solo alcune centinaia di megabyte di download, un processo lunghetto, ma pazienza, ci penserò domani...
Come non detto: dopo appena 25 minuti di compilazione (sul vecchio tablet) vedo che ha creato il kernel:
Image Name: Linux-2.6.30-rc1-omap1-05619-g12
Created: Sun Apr 19 12:22:32 2009
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1800752 Bytes = 1758.55 kB = 1.72 MB
Load Address: 80008000
Entry Point: 80008000
Image arch/arm/boot/uImage is ready
Tosto lo copio sulla memory card e accendo la Beagleboard (cioè vi inserisco il cavo USB). Niente da fare, si blocca proprio al boot.
Riprovo testardo:
make distclean
make omap3_beagle_defconfig
A questo punto modifico il file .config e ci metto la commandline di default utilizzata nella procedura di validazione:
CONFIG_CMDLINE="console=ttyS2,115200n8 console=tty0 root=/dev/ram0 rw ramdisk_size=32768 initrd=0x81600000,32M"
E poi:
cp .config /tmp/puntoconfig-modificato-2.6.30rc2-beagleboard
make uImage
Niente da fare, si blocca come prima (come se non avesse configurate le console seriali). Faccio ancora un tentativo:
make distclean
make omap3_beagle_defconfig
vi .config
e sostituisco il .config con quello presente qui:
http://cgit.openembedded.net/cgit.cgi?url=openembedded/blob/&id=ef5e35c99f6db29215845f6003b895d9dec40c91&path=recipes/linux/linux-omap-2.6.29/beagleboard/defconfig
Purtroppo è una configurazione valida per il 2.6.29 e cambiano diverse opzioni rispetto alla 2.6.30; su quello stesso sito web ancora non è presente un kernel 2.6.30. Anche rispondendo alle domande extra del "make uImage" la compilazione si blocca perché manca qualcosa della 2.6.30.
Domani prenderò la 2.6.29 dell'OpenEmbedded (dovrebbe bastare "git clone git://git.openembedded.net/openembedded") e la userò col defconfig sopra indicato: a naso direi che sono sulla buona strada; quelli di OpenEmbedded sono più smanettoni (per questo avevo scartato l'ipotesi), ma non mi dispiace usare un 2.6.29... purché funzioni!
git clone git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git linux-omap-2.6
Dopo qualche giorno non era più aggiornato per cui ho fatto:
cd linux-omap-2.6
git-fetch
Al che ho visto a video:
remote: Counting objects: 5443, done.
remote: Compressing objects: 100% (1363/1363), done.
remote: Total 3679 (delta 2860), reused 2964 (delta 2211)
Receiving objects: 100% (3679/3679), 832.69 KiB | 25 KiB/s, done.
Resolving deltas: 100% (2860/2860), completed with 718 local objects.
From git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6
833bb30..0882e8d for-next -> origin/for-next
1232332..8e58316 master -> origin/master
+ a48f410...30b7caa omap-fixes -> origin/omap-fixes (forced update)
+ 1e69a36...0932667 omap-pool -> origin/omap-pool (forced update)
833bb30..0882e8d omap-upstream -> origin/omap-upstream
833bb30..0882e8d omap1-upstream -> origin/omap1-upstream
833bb30..0882e8d omap2-upstream -> origin/omap2-upstream
833bb30..0882e8d omap3-boards -> origin/omap3-boards
833bb30..0882e8d omap3-upstream -> origin/omap3-upstream
66e8ab4..fba29fb pm -> origin/pm
* [new tag] v2.6.30-rc2 -> v2.6.30-rc2
Dopodiché, come al solito ho ripulito e riconfigurato, usando questi due comandi:
make distclean
make omap3_beagle_defconfig
Quest'ultimo si è inceppato per un paio di errori di sbaglio nel Kconfig relativo all'architettura ARM e piattaforma OMAP: ho modificato tale Kconfig eliminando tre righe ("HEAD:arch/arm/plat-omap/Kconfig", "origispgateway...", "===="), evidenti residuati bellici di qualche programmatore distratto e assonnato. Stessa operazione anche per l'altro Kconfig.
Finalmente rilancio e aggiorno:
make omap3_beagle_config
cp .config /tmp/puntoconfig-originale-2.6.30rc2-beagleboard
make uImage
(nota: stavolta non ho modificato la configurazione originale: voglio proprio vedere cosa succede).
Durante la compilazione, arriva un errore (oggi non me ne va bene una):
LD arch/arm/common/built-in.o
/home/arf/beagleboard/linux-omap-2.6/arch/arm/mach-omap2/Makefile:35: *** empty variable name. Stop.
make: *** [arch/arm/mach-omap2] Error 2
Anche qui si trattava di eliminare le linee HEAD e ORIGIN.
Comincio a sospettare che sia il caso di rifare tutto daccapo, poiché HEAD e ORIGIN e gli "=====" distinguono la parte vecchia di codice con la parte nuova. Per cui occorre eliminare da HEAD agli "====", e togliere la riga "origin:" finale.
Temo però che esistano parecchie altre modifiche del genere nel codice. Mi converrà rifare il "git clone" per recuperare tutti i sorgenti; sono solo alcune centinaia di megabyte di download, un processo lunghetto, ma pazienza, ci penserò domani...
Come non detto: dopo appena 25 minuti di compilazione (sul vecchio tablet) vedo che ha creato il kernel:
Image Name: Linux-2.6.30-rc1-omap1-05619-g12
Created: Sun Apr 19 12:22:32 2009
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1800752 Bytes = 1758.55 kB = 1.72 MB
Load Address: 80008000
Entry Point: 80008000
Image arch/arm/boot/uImage is ready
Tosto lo copio sulla memory card e accendo la Beagleboard (cioè vi inserisco il cavo USB). Niente da fare, si blocca proprio al boot.
Riprovo testardo:
make distclean
make omap3_beagle_defconfig
A questo punto modifico il file .config e ci metto la commandline di default utilizzata nella procedura di validazione:
CONFIG_CMDLINE="console=ttyS2,115200n8 console=tty0 root=/dev/ram0 rw ramdisk_size=32768 initrd=0x81600000,32M"
E poi:
cp .config /tmp/puntoconfig-modificato-2.6.30rc2-beagleboard
make uImage
Niente da fare, si blocca come prima (come se non avesse configurate le console seriali). Faccio ancora un tentativo:
make distclean
make omap3_beagle_defconfig
vi .config
e sostituisco il .config con quello presente qui:
http://cgit.openembedded.net/cgit.cgi?url=openembedded/blob/&id=ef5e35c99f6db29215845f6003b895d9dec40c91&path=recipes/linux/linux-omap-2.6.29/beagleboard/defconfig
Purtroppo è una configurazione valida per il 2.6.29 e cambiano diverse opzioni rispetto alla 2.6.30; su quello stesso sito web ancora non è presente un kernel 2.6.30. Anche rispondendo alle domande extra del "make uImage" la compilazione si blocca perché manca qualcosa della 2.6.30.
Domani prenderò la 2.6.29 dell'OpenEmbedded (dovrebbe bastare "git clone git://git.openembedded.net/openembedded") e la userò col defconfig sopra indicato: a naso direi che sono sulla buona strada; quelli di OpenEmbedded sono più smanettoni (per questo avevo scartato l'ipotesi), ma non mi dispiace usare un 2.6.29... purché funzioni!
Nessun commento:
Posta un commento