[Resultado do Desafio] Gerando distribuições Linux com o Yocto Project
- por Sergio Prado
O objetivo do desafio deste mês foi customizar uma distribuição Linux gerada com o Yocto Project, de forma que o tamanho final do rootfs gerado fosse o menor possível.
Todos que participaram me enviaram o local.conf, que utilizei para gerar a distro com os comandos abaixo:
$ git clone git://git.yoctoproject.org/poky -b krogoth $ source poky/oe-init-build-env $ cp <local.conf> conf/local.conf # copiando o local.conf do participante $ bitbake core-image-minimal |
E o vencedor foi o Cleiton Bueno, com um rootfs de 689373 bytes, mais de 70% menor que o rootfs original!
$ ls -Hl tmp/deploy/images/qemux86/core-image-minimal-qemux86.tar.bz2 -rw-r--r-- 1 sprado sprado 689373 Mai 15 21:15 tmp/deploy/images/qemux86/core-image-minimal-qemux86.tar.bz2 |
Este foi o local.conf utilizado por ele (comentários removidos):
MACHINE ??= "qemux86" DL_DIR ?= "${TOPDIR}/../downloads" SSTATE_DIR ?= "${TOPDIR}/sstate-cache" TMPDIR = "${TOPDIR}/tmp" DISTRO ?= "poky-tiny" IMAGE_INSTALL_remove = " kernel-modules" BUILD_OPTIMIZATION = "-O2 -pipe" MACHINE_FEATURES_remove = "alsa bluetooth usbgadget screen x86 rtc qemu-usermode" MACHINE_FEATURES_BACKFILL_remove = " rtc qemu-usermode" DEBUG_FLAGS = "" IMAGE_FSTYPES_append = " tar.bz2" DISTRO_FEATURES_DEFAULT = "ext2" DISTRO_FEATURES_LIBC_DEFAULT = "libc-libm" DISTRO_FEATURES_TINY_remove = " pci" DISTRO_FEATURES_LIBC = "libc-libm" DISTRO_FEATURES_USB_remove = " usbhost" DISTRO_FEATURES_NET_remove = " ipv4 ipv6" DISTRO_FEATURES_BACKFILL_remove = " pulseaudio sysvinit bluez5 gobject-introspection-data" DISTRO_FEATURES_remove = " pci usbhost \${DISTRO_FEATURES_USBGADGET} \${DISTRO_FEATURES_WIFI} pulseaudio sysvinit bluez5" VIRTUAL-RUNTIME_dev_manager = "" VIRTUAL-RUNTIME_wireless-tools="" VIRTUAL-RUNTIME_update-alternatives="" VIRTUAL-RUNTIME_alsa-state="" MACHINE_ESSENTIAL_EXTRA_RDEPENDS_qemux86 = "" RM_OLD_IMAGE="1" PACKAGE_CLASSES ?= "package_ipk" EXTRA_IMAGE_FEATURES = "" USER_CLASSES = " image-mklibs image-prelink" PATCHRESOLVE = "noop" BB_DISKMON_DIRS = "\ STOPTASKS,${TMPDIR},1G,100K \ STOPTASKS,${DL_DIR},1G,100K \ STOPTASKS,${SSTATE_DIR},1G,100K \ STOPTASKS,/tmp,100M,100K \ ABORT,${TMPDIR},100M,1K \ ABORT,${DL_DIR},100M,1K \ ABORT,${SSTATE_DIR},100M,1K \ ABORT,/tmp,10M,1K" CONF_VERSION = "1" |
Espero que todos que participaram tenham se interessado a aprender mais sobre o Yocto Project.
Este é o ranking atualizado dos desafios do blog:
1. George Tavares 30 pontos 2. Phillipe Magalhães 20 pontos 3. Cleiton Bueno 15 pontos 4. Daniel Junho 10 pontos 5. Gabriel Almeida 10 pontos 6. Marcelo Centenaro 10 pontos 7. Bruno Rogerio Fernandes 5 pontos 8. Daniel Silva 5 pontos 9. Fábio Pereira 5 pontos 10. Fernando Mendonça 5 pontos 11. João Marcelo 5 pontos 12. José Inácio Serafini 5 pontos 13. Julião 5 pontos 14. Luis Antônio 5 pontos 15. Rhobison Alves Pereira 5 pontos |
Um abraço e até a próxima!
Sergio Prado