Escolar Documentos
Profissional Documentos
Cultura Documentos
Sysmic - J. Pouiller Formation au Noyau Linux 2 / 182 Sysmic - J. Pouiller Formation au Noyau Linux 3 / 182
Prsentation de la cible Quest-ce que Linux ? Prsentation de la cible Quest-ce que Linux ? Prsentation de la cible Quest-ce que Linux ?
App App
Architecture trs classique dans le milieu de Linux embarqu :
Il y a trois lments important de GNU/Linux :
Microcontrolleur Atmel AT91SAM9260 App Bash GNU App App
Core ARM926EJ-S 180MHz Le noyau : Linux
64Mo de RAM GNU lib Lib Le projet GNU et plus particulirement la glibc, bash et les
256Mo de flash coreutils
64Ko dEEPROM GNU libc Les normes : SystemV, Posix, etc...
Matriel
Sysmic - J. Pouiller Formation au Noyau Linux 4 / 182 Sysmic - J. Pouiller Formation au Noyau Linux 5 / 182 Sysmic - J. Pouiller Formation au Noyau Linux 6 / 182
Prsentation de la cible Quest-ce que Linux ? Prsentation de la cible Quest-ce que Linux ? Prsentation de la cible Quest-ce que Linux ?
Sysmic - J. Pouiller Formation au Noyau Linux 7 / 182 Sysmic - J. Pouiller Formation au Noyau Linux 8 / 182 Sysmic - J. Pouiller Formation au Noyau Linux 9 / 182
Prsentation de la cible Quest-ce que Linux ? Les BSP Obtenir le noyau Organisation des sources Compiler le noyau Options principales Les drivers Le boot tftp/nfs Options de dmarrage Fabrication dun
Les
BSP
BSP Obtenir le noyau Organisation des sources Compiler le noyau Options principales Les drivers Le boot tftp/nfs Options de dmarrage Fabrication dun BSP
3 Les BSP
Le noyau Linux 4 Obtenir le noyau
Quelques chiffres
Tlcharger les sources
Comprendre le versionning
15 millions de lignes de code dans 30000 fichiers (+15%/an)
Utiliser Git
Environ 1200 dveloppeurs dans 600 entreprises (+35%/an)
Environ 5000 contributeurs depuis la premire version de Linux
Deuxime partie II 5 Organisation des sources
Les sous-rpertoires de la racine
Environ 650 mainteneurs (cest--dire responsables dune partie
Le rpertoire arch/
du noyau)
Compiler le noyau
26 architecures (= jeux dinstructions) Compiler 6
Configuration globale
Les BSP Obtenir le noyau Organisation des sources Compiler le noyau Options principales Les drivers Le boot tftp/nfs Options de dmarrage Fabrication dun
Les
BSP
BSP Obtenir le noyau Organisation des sources Compiler le noyau Options principales Les drivers Le boot tftp/nfs Options de dmarrage Fabrication dun
Les
BSP Fonctionnalits du noyau
BSP Obtenir le noyau Organisation des sources Compiler le noyau Options principales Les drivers Le boot tftp/nfs Options de dmarrage Fabrication dun BSP
Les BSP Obtenir le noyau Organisation des sources Compiler le noyau Options principales Les drivers Le boot tftp/nfs Options de dmarrage Fabrication dun
Les
BSP
BSP Obtenir le noyau Organisation des sources Compiler le noyau Options principales Les drivers Le boot tftp/nfs Options de dmarrage Fabrication dun
Les
BSP
BSP Obtenir le noyau Organisation des sources Compiler le noyau Options principales Les drivers Le boot tftp/nfs Options de dmarrage Fabrication dun BSP
Sysmic - J. Pouiller Formation au Noyau Linux 19 / 182 Sysmic - J. Pouiller Formation au Noyau Linux 20 / 182 Sysmic - J. Pouiller Formation au Noyau Linux 21 / 182
Les BSP Obtenir le noyau Organisation des sources Compiler le noyau Options principales Les drivers Le boot tftp/nfs Options de dmarrage Fabrication dun
Les
BSP
BSP Obtenir le noyau Organisation des sources Compiler le noyau Options principales Les drivers Le boot tftp/nfs Options de dmarrage Fabrication dun
Les
BSP
BSP Obtenir le noyau Organisation des sources Compiler le noyau Options principales Les drivers Le boot tftp/nfs Options de dmarrage Fabrication dun BSP
Sysmic - J. Pouiller Formation au Noyau Linux 22 / 182 Sysmic - J. Pouiller Formation au Noyau Linux 23 / 182 Sysmic - J. Pouiller Formation au Noyau Linux 24 / 182
Les BSP Obtenir le noyau Organisation des sources Compiler le noyau Options principales Les drivers Le boot tftp/nfs Options de dmarrage Fabrication dun
Les
BSP
BSP Obtenir le noyau Organisation des sources Compiler le noyau Options principales Les drivers Le boot tftp/nfs Options de dmarrage Fabrication dun
Les
BSP
BSP Obtenir le noyau Organisation des sources Compiler le noyau Options principales Les drivers Le boot tftp/nfs Options de dmarrage Fabrication dun BSP
Le systme de compilation Travailler avec les configurations Travailler avec les configurations
Lorsque votre fichier .config nest parfaitement compatible
Pour obtenir de laide sur les diffrentes cibles : avec vos sources (import, mise jours des sources, dition
make help propose des configurations prtablies. Il est manuelle, ...), il recommand (ncessaire ?) de lancer
host$ make help possible dimporter une de ces configuration :
host$ make oldconfig
La variable ARCH= spcifie larchitecture cible utiliser. Elle host$ make ARCH=arm usb-a9260_defconfig
oldconfig vous indique dventuelles incompatibilit entre
impacte les options du noyau. Comparez make help avec votre configuration et vos sources et vous demande votre avis
make ARCH=arm help. Kconfig sauvegarde la configuration dans .config.
sur les nouvelles options
Si ARCH nest pas spcifie, Kconfig utilise larchitecture host. Le fichier .config sera ensuite : Pour rpondre systmatiquement avec la rponse par dfaut :
Sourc dans les systmes de Makefile
Lorsque vous avez commenc spcifier ARCH, vous devez Transform en include/generated/autoconf.h et inclut host$ yes "" | make oldconfig
toujours la spcifier. dans les headers de compilations
Obtenir la liste des nouvelles options par rapport votre
Il est toutefois possible de placer cette variable dans le Makefile Certains constructeur vous fournirons un patch ajoutant une configuration :
racine ou dans lenvironnement pour viter de loublier. cible _defconfig
host$ make listnewconfig
host$ export ARCH=arm ... dautres vous fournirons un .config
Vous pouvez normalement trouver la configuration du noyau de
votre host dans /boot/config-uname -r
Sauver votre configuration en effectuant un sanity check
Sysmic - J. Pouiller Formation au Noyau Linux 28 / 182 Sysmic - J. Pouiller Formation au Noyau Linux 29 / 182 Sysmic - J. Pouiller Formation au Noyau Linux 30 / 182
host$ make savedefconfig
Les BSP Obtenir le noyau Organisation des sources Compiler le noyau Options principales Les drivers Le boot tftp/nfs Options de dmarrage Fabrication dun
Les
BSP
BSP Obtenir le noyau Organisation des sources Compiler le noyau Options principales Les drivers Le boot tftp/nfs Options de dmarrage Fabrication dun
Les
BSP
Rfrence : Documentation/kbuild/kconfig.txt
BSP Obtenir le noyau Organisation des sources Compiler le noyau
Options principales Les drivers Le boot tftp/nfs Options de dmarrage Fabrication dun BSP
host$ make config En Gtk Le systme choisi les cible approprie en fonction de votre
architecture (principalement, une image et les modules)
En ncurses host% apt-get install libglade2-dev Il est souvent prfrable (ncessaire ?) de spcifier le type
host$ make gconfig dimage voulue avec
host% apt-get install libncurses5-dev
host$ make menuconfig Dans toutes les interfaces, il est possible dobtenir de la host$ make XXImage
description sur llment slectionn (<h> ou <?>)
Avec la nouvelle version de ncurses Il est possible de rechercher dans les descriptions des lments XX fait rfrence au format de la binaire produite :
(</>) Le code commence=t=il au premier octet ?
host% apt-get install libncurses5-dev Respecte-t-il le format ELF ?
host$ make nconfig Dans la recherche et dans laide, vous trouverez des
Y a-t-il un format particulier dentte respecter ?
informations sur les dpendances entre les options
Les script scripts/config permet de changer les Dans le doute, il faut consulter la documentation de votre
configuration la main bootloader
Sysmic - J. Pouiller Formation au Noyau Linux 31 / 182 Sysmic - J. Pouiller Formation au Noyau Linux 32 / 182 Sysmic - J. Pouiller Formation au Noyau Linux 33 / 182
Les BSP Obtenir le noyau Organisation des sources Compiler le noyau Options principales Les drivers Le boot tftp/nfs Options de dmarrage Fabrication dun
Les
BSP
BSP Obtenir le noyau Organisation des sources Compiler le noyau Options principales Les drivers Le boot tftp/nfs Options de dmarrage Fabrication dun
Les
BSP
BSP Obtenir le noyau Organisation des sources Compiler le noyau Options principales Les drivers Le boot tftp/nfs Options de dmarrage Fabrication dun BSP
Documentation/make/headers_install.txt
Les BSP Obtenir le noyau Organisation des sources Compiler le noyau Options principales Les drivers Le boot tftp/nfs Options de dmarrage Fabrication dun
Les
BSP
BSP Obtenir le noyau Organisation des sources Compiler le noyau Options principales Les drivers Le boot tftp/nfs Options de dmarrage Fabrication dun
Les
BSP
BSP Obtenir le noyau Organisation des sources Compiler le noyau Options principales Les drivers Le boot tftp/nfs Options de dmarrage Fabrication dun BSP
Les BSP Obtenir le noyau Organisation des sources Compiler le noyau Options principales Les drivers Le boot tftp/nfs Options de dmarrage Fabrication dun
Les
BSP
BSP Obtenir le noyau Organisation des sources Compiler le noyau Options principales Les drivers Le boot tftp/nfs Options de dmarrage Fabrication dun
Les
BSP
BSP Obtenir le noyau Organisation des sources Compiler le noyau Options principales Les drivers Le boot tftp/nfs Options de dmarrage Fabrication dun BSP
Sysmic - J. Pouiller Formation au Noyau Linux 43 / 182 Sysmic - J. Pouiller Formation au Noyau Linux 44 / 182 Sysmic - J. Pouiller Formation au Noyau Linux 45 / 182