Introduction to the Yocto Project / Openembedded-Core
Total Page:16
File Type:pdf, Size:1020Kb
Embedded Recipes Conference - 2017 Introduction to the Yocto Project / OpenEmbedded-core Mylène Josserand Bootlin [email protected] embedded Linux and kernel engineering - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 1/1 Mylène Josserand I Embedded Linux engineer at Bootlin since 2016 I Embedded Linux expertise I Development, consulting and training around the Yocto Project I One of the authors of Bootlin’ Yocto Project / OpenEmbedded training materials. I Kernel contributor: audio driver, touchscreen, RTC and more to come! embedded Linux and kernel engineering - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 2/1 I Understand why we should use a build system I How the Yocto Project / OpenEmbedded core are structured I How we can use it I How we can update it to fit our needs I Give some good practices to start using the Yocto Project correctly I Allows to customize many things: it is easy to do things the wrong way I When you see a X, it means it is a good practice! Introduction I In this talk, we will: - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 3/1 I How the Yocto Project / OpenEmbedded core are structured I How we can use it I How we can update it to fit our needs I Give some good practices to start using the Yocto Project correctly I Allows to customize many things: it is easy to do things the wrong way I When you see a X, it means it is a good practice! Introduction I In this talk, we will: I Understand why we should use a build system - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 3/1 I How we can use it I How we can update it to fit our needs I Give some good practices to start using the Yocto Project correctly I Allows to customize many things: it is easy to do things the wrong way I When you see a X, it means it is a good practice! Introduction I In this talk, we will: I Understand why we should use a build system I How the Yocto Project / OpenEmbedded core are structured - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 3/1 I How we can update it to fit our needs I Give some good practices to start using the Yocto Project correctly I Allows to customize many things: it is easy to do things the wrong way I When you see a X, it means it is a good practice! Introduction I In this talk, we will: I Understand why we should use a build system I How the Yocto Project / OpenEmbedded core are structured I How we can use it - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 3/1 I Give some good practices to start using the Yocto Project correctly I Allows to customize many things: it is easy to do things the wrong way I When you see a X, it means it is a good practice! Introduction I In this talk, we will: I Understand why we should use a build system I How the Yocto Project / OpenEmbedded core are structured I How we can use it I How we can update it to fit our needs - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 3/1 I Allows to customize many things: it is easy to do things the wrong way I When you see a X, it means it is a good practice! Introduction I In this talk, we will: I Understand why we should use a build system I How the Yocto Project / OpenEmbedded core are structured I How we can use it I How we can update it to fit our needs I Give some good practices to start using the Yocto Project correctly - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 3/1 I When you see a X, it means it is a good practice! Introduction I In this talk, we will: I Understand why we should use a build system I How the Yocto Project / OpenEmbedded core are structured I How we can use it I How we can update it to fit our needs I Give some good practices to start using the Yocto Project correctly I Allows to customize many things: it is easy to do things the wrong way - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 3/1 Introduction I In this talk, we will: I Understand why we should use a build system I How the Yocto Project / OpenEmbedded core are structured I How we can use it I How we can update it to fit our needs I Give some good practices to start using the Yocto Project correctly I Allows to customize many things: it is easy to do things the wrong way I When you see a X, it means it is a good practice! - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 3/1 I In the Embedded world, we have many constraints I Nice to reduce the system to a minimal one + add our custom application I A build system will automate the creation of the system in a reproducible way I Integration means packaging applications to create a final image Why use a build system? - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 4/1 I Nice to reduce the system to a minimal one + add our custom application I A build system will automate the creation of the system in a reproducible way I Integration means packaging applications to create a final image Why use a build system? I In the Embedded world, we have many constraints - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 4/1 I A build system will automate the creation of the system in a reproducible way I Integration means packaging applications to create a final image Why use a build system? I In the Embedded world, we have many constraints I Nice to reduce the system to a minimal one + add our custom application - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 4/1 I Integration means packaging applications to create a final image Why use a build system? I In the Embedded world, we have many constraints I Nice to reduce the system to a minimal one + add our custom application I A build system will automate the creation of the system in a reproducible way - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 4/1 Why use a build system? I In the Embedded world, we have many constraints I Nice to reduce the system to a minimal one + add our custom application I A build system will automate the creation of the system in a reproducible way I Integration means packaging applications to create a final image - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 4/1 L N Easy to create and extend N Hard to customize and optimize (boot time, size) N Hard to rebuild from source N Native-compilation Not available for all architectures N L Not as easy as a binary distribution L Nearly full flexibility L Built from source: customization and optimization are easy L Fully reproducible Cross-compilation L N Full flexibility N Dependency hell Lack of reproducibility I Binary distribution (Debian, Ubuntu, Fedora, etc): I Build systems (Buildroot, the Yocto Project, etc): System integration: several possibilities I Building everything manually: - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 5/1 L N Easy to create and extend N Hard to customize and optimize (boot time, size) N Hard to rebuild from source N Native-compilation Not available for all architectures N L Not as easy as a binary distribution L Nearly full flexibility L Built from source: customization and optimization are easy L Fully reproducible Cross-compilation N N Dependency hell Lack of reproducibility I Binary distribution (Debian, Ubuntu, Fedora, etc): I Build systems (Buildroot, the Yocto Project, etc): System integration: several possibilities I BuildingL everything manually: Full flexibility - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 5/1 L N Easy to create and extend N Hard to customize and optimize (boot time, size) N Hard to rebuild from source N Native-compilation Not available for all architectures N L Not as easy as a binary distribution L Nearly full flexibility L Built from source: customization and optimization are easy L Fully reproducible Cross-compilation N Lack of reproducibility I Binary distribution (Debian, Ubuntu, Fedora, etc): I Build systems (Buildroot, the Yocto Project, etc): System integration: several possibilities I BuildingL everything manually: N Full flexibility Dependency hell - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 5/1 L N Easy to create and extend N Hard to customize and optimize (boot time, size) N Hard to rebuild from source N Native-compilation Not available for all architectures N L Not as easy as a binary distribution L Nearly full flexibility L Built from source: customization and optimization are easy L Fully reproducible Cross-compilation I Binary distribution (Debian, Ubuntu, Fedora, etc): I Build systems (Buildroot, the Yocto Project, etc): System integration: several possibilities I BuildingL everything manually: N Full flexibility N Dependency hell Lack of reproducibility - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 5/1 N L Not