Buildroot: What’S New?
Total Page:16
File Type:pdf, Size:1020Kb
Embedded Linux Conference 2018 Buildroot: what's new? Thomas Petazzoni [email protected] c Copyright 2004-2018, Bootlin. Creative Commons BY-SA 3.0 license. Formerly Free Electrons Corrections, suggestions, contributions and translations are welcome! - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 1/31 Thomas Petazzoni I CTO and Embedded Linux engineer at Free Electrons ! Bootlin I Embedded Linux specialists. I Development, consulting and training. I https://bootlin.com I Contributions I Kernel support for the Marvell Armada ARM SoCs from Marvell I Major contributor to Buildroot, an open-source, simple and fast embedded Linux build system I Toulouse, south west of France I Windsurfing, snowboarding - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 2/31 I Who is already using Buildroot ? I Who is using OpenEmbedded / Yocto Project ? I Who is using OpenWRT / LEDE ? I Who is using another build system ? Poll time I Who already knows about Buildroot ? - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 3/31 I Who is using OpenEmbedded / Yocto Project ? I Who is using OpenWRT / LEDE ? I Who is using another build system ? Poll time I Who already knows about Buildroot ? I Who is already using Buildroot ? - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 3/31 I Who is using OpenWRT / LEDE ? I Who is using another build system ? Poll time I Who already knows about Buildroot ? I Who is already using Buildroot ? I Who is using OpenEmbedded / Yocto Project ? - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 3/31 I Who is using another build system ? Poll time I Who already knows about Buildroot ? I Who is already using Buildroot ? I Who is using OpenEmbedded / Yocto Project ? I Who is using OpenWRT / LEDE ? - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 3/31 Poll time I Who already knows about Buildroot ? I Who is already using Buildroot ? I Who is using OpenEmbedded / Yocto Project ? I Who is using OpenWRT / LEDE ? I Who is using another build system ? - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 3/31 Buildroot at a glance I Is an embedded Linux build system, builds from source: I cross-compilation toolchain I root filesystem with many libraries/applications, cross-built I kernel and bootloader images I Fast, simple root filesystem in minutes I Easy to use and understand: kconfig and make I Small root filesystem, default 2 MB I More than 2300 packages available I Generates filesystem images, not a distribution I Vendor neutral I Active community, stable releases every 3 months I Started in 2001, oldest still maintained build system I http://buildroot.org - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 4/31 What's new? I Last What's new talk at the Embedded Linux Conference 2014, i.e 4 years ago I Lots of things have changed and improved in Buildroot since then, time for a new What's new talk! I Main topics discussed I Project activity I Release schedule and LTS I Architecture support I Toolchain support I Infrastructure improvements I Testing improvements I Misc - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 5/31 Project activity: per commits 2 ;000 1 ;500 1 ;000 Number of commits500 per release - Kernel, drivers and embedded Linux - Development, consulting,0 training and support - 2012.05 2012.08 2012.11 2013.02 2013.05 2013.08 2013.11 2014.02 2014.05 2014.08 2014.11 2015.02 2015.05 2015.08 2015.11 https://bootlin.com 2016.02 2016.05 2016.08 2016.11 2017.02 2017.05 2017.08 2017.11 2018.02 6/31 Project activity: contributors 100 50 Number of contributors per release - Kernel, drivers and embedded Linux - Development, consulting,0 training and support - 2012.05 2012.08 2012.11 2013.02 2013.05 2013.08 2013.11 2014.02 2014.05 2014.08 2014.11 2015.02 2015.05 2015.08 https://bootlin.com 2015.11 2016.02 2016.05 2016.08 2016.11 2017.02 2017.05 2017.08 2017.11 2018.02 7/31 Project activity: mailing list activity 4;000 3;000 2;000 1;000 E-mails per month 0 2012.January 2013.January 2014.January 2015.January 2016.January 2017.January 2018.January - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 8/31 Project activity: packages 2 ;000 1 Number of packages;000 - Kernel, drivers and embedded Linux - Development, consulting,0 training and support - 2012.05 2012.08 2012.11 2013.02 2013.05 2013.08 2013.11 2014.02 2014.05 2014.08 2014.11 2015.02 2015.05 2015.08 2015.11 https://bootlin.com 2016.02 2016.05 2016.08 2016.11 2017.02 2017.05 2017.08 2017.11 2018.02 9/31 I Until 2017.02 I Point releases for the latest stable, but only until the next stable release I Only option to get updates is to migrate to the next release I Since 2017.02, one LTS release per year I Every YYYY.02 release will be maintained for one year, with security, build and bug fixes I 2017.02 had 10 point releases, from 2017.02.1 to 2017.02.10, 778 commits I 2018.02 published on March 4th 2018, new LTS release Release schedule and LTS I Since 2009, releases every three months: YYYY.02, YYYY.05, YYYY.08, YYYY.11 I Never skipped a release or missed a release date! - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 10/31 I Since 2017.02, one LTS release per year I Every YYYY.02 release will be maintained for one year, with security, build and bug fixes I 2017.02 had 10 point releases, from 2017.02.1 to 2017.02.10, 778 commits I 2018.02 published on March 4th 2018, new LTS release Release schedule and LTS I Since 2009, releases every three months: YYYY.02, YYYY.05, YYYY.08, YYYY.11 I Never skipped a release or missed a release date! I Until 2017.02 I Point releases for the latest stable, but only until the next stable release I Only option to get updates is to migrate to the next release - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 10/31 Release schedule and LTS I Since 2009, releases every three months: YYYY.02, YYYY.05, YYYY.08, YYYY.11 I Never skipped a release or missed a release date! I Until 2017.02 I Point releases for the latest stable, but only until the next stable release I Only option to get updates is to migrate to the next release I Since 2017.02, one LTS release per year I Every YYYY.02 release will be maintained for one year, with security, build and bug fixes I 2017.02 had 10 point releases, from 2017.02.1 to 2017.02.10, 778 commits I 2018.02 published on March 4th 2018, new LTS release - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 10/31 Maintenance and physical meetings I Used to have a single committer/project maintainer: Peter Korsgaard I Two additional committers have been appointed in recent years: I Thomas Petazzoni (i.e, me) I Arnout Vandecappelle I Physical meetings I One meeting before ELCE, I One meeting after FOSDEM, Brussels I One more private hackaton for the core team in the summer - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 11/31 I ARC, ARM(eb,nommu), ARM64(eb), Blackfin, C-Sky, m68k, Microblaze(el), mips(64)(el), nios2, OpenRISC, PowerPC(64)(le), SuperH, Sparc(64), x86( 64), Xtensa I ARM Cortex M3/M4 noMMU support I Merge of ARM/ARM64 options, to select ARM64 cores I PowerPC64 little endian and big endian support, contributions from IBM I MIPS improvements: MIPS32r6 and MIPS64r6 support, MIPS core selection, NaN/FP32 selection, contributions from Imagination Technologies I OpenRISC, C-Sky, Sparc64 support I Re-enabling of m68k both Coldfire (noMMU) and 68k (MMU) I Blackfin and Microblaze improved with uClibc-ng support I SH64 and AVR32 support removed Architectures I Probably the build system with the largest number of architectures supported - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 12/31 I ARM Cortex M3/M4 noMMU support I Merge of ARM/ARM64 options, to select ARM64 cores I PowerPC64 little endian and big endian support, contributions from IBM I MIPS improvements: MIPS32r6 and MIPS64r6 support, MIPS core selection, NaN/FP32 selection, contributions from Imagination Technologies I OpenRISC, C-Sky, Sparc64 support I Re-enabling of m68k both Coldfire (noMMU) and 68k (MMU) I Blackfin and Microblaze improved with uClibc-ng support I SH64 and AVR32 support removed Architectures I Probably the build system with the largest number of architectures supported I ARC, ARM(eb,nommu), ARM64(eb), Blackfin, C-Sky, m68k, Microblaze(el), mips(64)(el), nios2, OpenRISC, PowerPC(64)(le), SuperH, Sparc(64), x86( 64), Xtensa - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 12/31 Architectures I Probably the build system with the largest number of architectures supported I ARC, ARM(eb,nommu), ARM64(eb), Blackfin, C-Sky, m68k, Microblaze(el), mips(64)(el), nios2, OpenRISC, PowerPC(64)(le), SuperH, Sparc(64), x86( 64), Xtensa I ARM Cortex M3/M4 noMMU support I Merge of ARM/ARM64 options, to select ARM64 cores I PowerPC64 little endian and big endian support, contributions from IBM I MIPS improvements: MIPS32r6 and MIPS64r6 support, MIPS core selection, NaN/FP32 selection, contributions from Imagination Technologies I OpenRISC, C-Sky, Sparc64 support I Re-enabling of m68k both Coldfire (noMMU) and 68k (MMU) I Blackfin and Microblaze improved with uClibc-ng support I SH64 and AVR32 support removed - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 12/31 I Internal toolchain improvements I Support for musl C library added I Moved from uClibc to uClibc-ng I Regular updates: gcc up to 7.x (default is 6.x), binutils 2.29 (default 2.28), gdb 8.0 (default 7.12), glibc 2.27, uClibc-ng 1.0.28, musl 1.1.19.