* Re: [poky] Question about apply eglibc configurability to create minimal image [not found] <4DF0A70C.7080501@windriver.com> @ 2011-06-09 10:59 ` Koen Kooi 2011-06-09 15:20 ` Mark Hatle 1 sibling, 0 replies; 10+ messages in thread From: Koen Kooi @ 2011-06-09 10:59 UTC (permalink / raw) To: Kang Kai Cc: poky@yoctoproject.org Project, Patches and discussions about the oe-core layer <broken record> These things need to get posted to the oe-core list, not the poky list </broken record> Op 9 jun 2011, om 12:57 heeft Kang Kai het volgende geschreven: > Hi Mark, > > I am focus on eglibc itself compilation with disabling all the configurable options, right now eglibc can be compiled with disable all the configurable options. > > But when I build core-image-minimal in a clear new directory, some packages build failed and they need eglibc supports, such as > > gcc-runtime depends on libc-libm > ncurse depends on libc-posix-wchar-io libc-posix-clang-wchar > openssl depends on libc-inet libc-nsswitch > gettext depends on libc-spawn libc-locale-code libc-getlogin libc-utmp > ... > > After enable those options, the image size only decrease from 9.6M to 9.4M(qemux86). And the dependencies on eglibc is hard to break, something like libcrypt getlogin(function) can't be breaken. > Could you give me some directions what should I do with eglibc configurability? > Thanks a lot! > > I made a mistake that try eglibc configurability in a directory which has build core-image-minimal, so the packages which depend on eglibc didn't rebuild, and I didn't find the dependency before. I am sorry! > > Regards, > Kai > _______________________________________________ > poky mailing list > poky@yoctoproject.org > https://lists.yoctoproject.org/listinfo/poky ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Question about apply eglibc configurability to create minimal image [not found] <4DF0A70C.7080501@windriver.com> 2011-06-09 10:59 ` [poky] Question about apply eglibc configurability to create minimal image Koen Kooi @ 2011-06-09 15:20 ` Mark Hatle 2011-06-09 15:34 ` Frans Meulenbroeks ` (2 more replies) 1 sibling, 3 replies; 10+ messages in thread From: Mark Hatle @ 2011-06-09 15:20 UTC (permalink / raw) To: Kang Kai; +Cc: poky@yoctoproject.org, Patches, about the oe-core layer On 6/9/11 5:57 AM, Kang Kai wrote: > Hi Mark, > > I am focus on eglibc itself compilation with disabling all the > configurable options, right now eglibc can be compiled with disable all > the configurable options. > > But when I build core-image-minimal in a clear new directory, some > packages build failed and they need eglibc supports, such as core-image-minimal is simply to large of an image to see some of the advantages of the eglibc configuration. Realistically the advantages come on single application or small (busybox + single application) systems. > gcc-runtime depends on libc-libm The above looks like a bug to me and should be investigated.. (a bug in gcc that is..) > ncurse depends on libc-posix-wchar-io libc-posix-clang-wchar ncurses can be configured WITHOUT wide character support, the needs to be done with any of the wchar options disabled in eglibc. > openssl depends on libc-inet libc-nsswitch I'm not sure why openssl needs either inet or nsswitch. inet perhaps if it tries to make certain socket calls, but libc-nsswitch should never be required outside of eglibc. This is likely a configuration issue in openssl -- or a bug in eglibc. > gettext depends on libc-spawn libc-locale-code > libc-getlogin libc-utmp > ... Once we introduce gettext (beyond simply it's m4 macros) we're no longer in "small" system territory. gettext and many others really want some of the larger system capabilities as they are designed for multilingual systems. > After enable those options, the image size only decrease from 9.6M to > 9.4M(qemux86). And the dependencies on eglibc is hard to break, > something like libcrypt getlogin(function) can't be breaken. > Could you give me some directions what should I do with eglibc > configurability? My suggest is to start with a new custom configuration. (ignore the gcc-runtime for right now and enable libm.) The goal of this configuration is a small, local system -- without network connectivity. Walk through the core-image-minimal, and you'll see: IMAGE_INSTALL = "task-core-boot ${ROOTFS_PKGMANAGE_BOOTSTRAP}" Looking at task-core-boot: RDEPENDS_task-core-boot = "\ base-files \ base-passwd \ busybox \ initscripts \ ${@base_contains("MACHINE_FEATURES", "keyboard", "keymaps", "", d)} \ modutils-initscripts \ netbase \ sysvinit \ tinylogin \ udev \ ${VIRTUAL-RUNTIME_update-alternatives} \ ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS}" RRECOMMENDS_task-core-boot = "\ ${MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS}" From the above, I'm pretty sure that "netbase" will require a lot of networking components, specifically adding things like libc-inet. So avoid netbase. It's possible that keyboard/keymaps may cause additional stuff to come in due to locale requirements.. so I'd dump those as well.. sysvinit may also introduce some additional items -- so if it causes problems, remove it and switch to the init located within busybox. update-alternatives is what included gettext -- so this might need some enhancement to avoid gettext as a requirement. So I'd suggest skipping it. (Note without it, it's likely busybox, tinylogin may not get setup properly...) udev is quite complex and drags in a number of components -- so drop that.. Leaving: base-files \ base-passwd \ busybox \ initscripts \ modutils-initscripts \ sysvinit \ tinylogin First see if you can compile the above with a minimal eglibc configuration. If not I can help you work through those issues.. If you can, you SHOULD see a fairly dramatic decrease in size. --Mark > Thanks a lot! > > I made a mistake that try eglibc configurability in a directory which > has build core-image-minimal, so the packages which depend on eglibc > didn't rebuild, and I didn't find the dependency before. I am sorry! > > Regards, > Kai ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Question about apply eglibc configurability to create minimal image 2011-06-09 15:20 ` Mark Hatle @ 2011-06-09 15:34 ` Frans Meulenbroeks 2011-06-09 15:38 ` Mark Hatle 2011-06-10 2:50 ` Kang Kai 2011-06-17 10:05 ` Kang Kai 2 siblings, 1 reply; 10+ messages in thread From: Frans Meulenbroeks @ 2011-06-09 15:34 UTC (permalink / raw) To: Patches and discussions about the oe-core layer Cc: Kang Kai, poky@yoctoproject.org [-- Attachment #1: Type: text/plain, Size: 770 bytes --] 2011/6/9 Mark Hatle <mark.hatle@windriver.com> > On 6/9/11 5:57 AM, Kang Kai wrote: > > Hi Mark, > > > > I am focus on eglibc itself compilation with disabling all the > > configurable options, right now eglibc can be compiled with disable all > > the configurable options. > > > > But when I build core-image-minimal in a clear new directory, some > > packages build failed and they need eglibc supports, such as > > core-image-minimal is simply to large of an image to see some of the > advantages > of the eglibc configuration. Realistically the advantages come on single > application or small (busybox + single application) systems. > Then again if you are in that usecase you're probably better off (spacewise) using static linking Frans [-- Attachment #2: Type: text/html, Size: 1084 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Question about apply eglibc configurability to create minimal image 2011-06-09 15:34 ` Frans Meulenbroeks @ 2011-06-09 15:38 ` Mark Hatle 0 siblings, 0 replies; 10+ messages in thread From: Mark Hatle @ 2011-06-09 15:38 UTC (permalink / raw) To: openembedded-core On 6/9/11 10:34 AM, Frans Meulenbroeks wrote: > > > 2011/6/9 Mark Hatle <mark.hatle@windriver.com <mailto:mark.hatle@windriver.com>> > > On 6/9/11 5:57 AM, Kang Kai wrote: > > Hi Mark, > > > > I am focus on eglibc itself compilation with disabling all the > > configurable options, right now eglibc can be compiled with disable all > > the configurable options. > > > > But when I build core-image-minimal in a clear new directory, some > > packages build failed and they need eglibc supports, such as > > core-image-minimal is simply to large of an image to see some of the advantages > of the eglibc configuration. Realistically the advantages come on single > application or small (busybox + single application) systems. > > > Then again if you are in that usecase you're probably better off (spacewise) > using static linking dynamical linking has the advantage of requiring less run-time memory. So multi-process, small systems are better in dynamic configurations then static. (Copy-On-Write) On-disk space is better static then dynamic. It's all trade-offs in the end. --Mark > Frans > > > > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Question about apply eglibc configurability to create minimal image 2011-06-09 15:20 ` Mark Hatle 2011-06-09 15:34 ` Frans Meulenbroeks @ 2011-06-10 2:50 ` Kang Kai 2011-06-17 10:05 ` Kang Kai 2 siblings, 0 replies; 10+ messages in thread From: Kang Kai @ 2011-06-10 2:50 UTC (permalink / raw) To: Mark Hatle; +Cc: poky@yoctoproject.org, Patches, about the oe-core layer Hi Mark, Thank you very much for your detailed comments. > > From the above, I'm pretty sure that "netbase" will require a lot of networking > components, specifically adding things like libc-inet. So avoid netbase. > > It's possible that keyboard/keymaps may cause additional stuff to come in due to > locale requirements.. so I'd dump those as well.. > > sysvinit may also introduce some additional items -- so if it causes problems, > remove it and switch to the init located within busybox. sysvinit and busybox, tinilogin require eglibc libc-crypt support. And busybox need libnsl, so I try to finger out how to break these depencies. > update-alternatives is what included gettext -- so this might need some > enhancement to avoid gettext as a requirement. So I'd suggest skipping it. > (Note without it, it's likely busybox, tinylogin may not get setup properly...) I will test it. > udev is quite complex and drags in a number of components -- so drop that.. RP suggested using mdev provided by busybox instead, I'll do it later. > Leaving: > > base-files \ > base-passwd \ > busybox \ > initscripts \ > modutils-initscripts \ > sysvinit \ > tinylogin > > First see if you can compile the above with a minimal eglibc configuration. If > not I can help you work through those issues.. If you can, you SHOULD see a > fairly dramatic decrease in size. First of all, I do the minimal with your direction and give you feedback. > --Mark Thank & Regards, Kai >> Thanks a lot! >> >> I made a mistake that try eglibc configurability in a directory which >> has build core-image-minimal, so the packages which depend on eglibc >> didn't rebuild, and I didn't find the dependency before. I am sorry! >> >> Regards, >> Kai ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Question about apply eglibc configurability to create minimal image 2011-06-09 15:20 ` Mark Hatle 2011-06-09 15:34 ` Frans Meulenbroeks 2011-06-10 2:50 ` Kang Kai @ 2011-06-17 10:05 ` Kang Kai 2011-06-17 15:46 ` Mark Hatle 2 siblings, 1 reply; 10+ messages in thread From: Kang Kai @ 2011-06-17 10:05 UTC (permalink / raw) To: Mark Hatle Cc: Robert, poky@yoctoproject.org, Patches, about the oe-core layer [-- Attachment #1.1: Type: text/plain, Size: 6218 bytes --] On 2011?06?09? 23:20, Mark Hatle wrote: > On 6/9/11 5:57 AM, Kang Kai wrote: >> Hi Mark, >> >> I am focus on eglibc itself compilation with disabling all the >> configurable options, right now eglibc can be compiled with disable all >> the configurable options. >> >> But when I build core-image-minimal in a clear new directory, some >> packages build failed and they need eglibc supports, such as > core-image-minimal is simply to large of an image to see some of the advantages > of the eglibc configuration. Realistically the advantages come on single > application or small (busybox + single application) systems. > >> gcc-runtime depends on libc-libm > The above looks like a bug to me and should be investigated.. (a bug in gcc that > is..) > >> ncurse depends on libc-posix-wchar-io libc-posix-clang-wchar > ncurses can be configured WITHOUT wide character support, the needs to be done > with any of the wchar options disabled in eglibc. > >> openssl depends on libc-inet libc-nsswitch > I'm not sure why openssl needs either inet or nsswitch. inet perhaps if it > tries to make certain socket calls, but libc-nsswitch should never be required > outside of eglibc. This is likely a configuration issue in openssl -- or a bug > in eglibc. > >> gettext depends on libc-spawn libc-locale-code >> libc-getlogin libc-utmp >> ... > Once we introduce gettext (beyond simply it's m4 macros) we're no longer in > "small" system territory. gettext and many others really want some of the > larger system capabilities as they are designed for multilingual systems. > >> After enable those options, the image size only decrease from 9.6M to >> 9.4M(qemux86). And the dependencies on eglibc is hard to break, >> something like libcrypt getlogin(function) can't be breaken. >> Could you give me some directions what should I do with eglibc >> configurability? > My suggest is to start with a new custom configuration. (ignore the gcc-runtime > for right now and enable libm.) The goal of this configuration is a small, > local system -- without network connectivity. > > Walk through the core-image-minimal, and you'll see: > IMAGE_INSTALL = "task-core-boot ${ROOTFS_PKGMANAGE_BOOTSTRAP}" > > Looking at task-core-boot: > > RDEPENDS_task-core-boot = "\ > base-files \ > base-passwd \ > busybox \ > initscripts \ > ${@base_contains("MACHINE_FEATURES", "keyboard", "keymaps", "", d)} \ > modutils-initscripts \ > netbase \ > sysvinit \ > tinylogin \ > udev \ > ${VIRTUAL-RUNTIME_update-alternatives} \ > ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS}" > > RRECOMMENDS_task-core-boot = "\ > ${MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS}" > > From the above, I'm pretty sure that "netbase" will require a lot of networking > components, specifically adding things like libc-inet. So avoid netbase. > > It's possible that keyboard/keymaps may cause additional stuff to come in due to > locale requirements.. so I'd dump those as well.. > > sysvinit may also introduce some additional items -- so if it causes problems, > remove it and switch to the init located within busybox. > > update-alternatives is what included gettext -- so this might need some > enhancement to avoid gettext as a requirement. So I'd suggest skipping it. > (Note without it, it's likely busybox, tinylogin may not get setup properly...) > > udev is quite complex and drags in a number of components -- so drop that.. > > Leaving: > > base-files \ > base-passwd \ > busybox \ > initscripts \ > modutils-initscripts \ > sysvinit \ > tinylogin Hi Mark, According this list, expand with their run time depency(show in the attachment minimal-image-runtime-dependies.png) , and the list is: base-files \ base-passwd \ busybox \ busybox-syslog \ busybox-udhcpc \ initscripts \ makedevs \ modutils-initscripts \ sysvinit \ sysvinit-pidof \ sysvinit-inittab \ tinylogin When only enable eglibc libm, busybox, sysvinit and tinylogin can't be compiled. busybox depends on * libc-crypt * libc-getlogin * libc-inet * libc-posix-regexp I wonder that maybe libc-crypt can NOT be disabled? Other 3 options can be disabled by closing some busybox feature and builtin commands. sysvinit depends on * libc-inet * libc-sunrpc * libc-crypt I don't how to resolve them, so as you said, remove it and use busybox init instead. tinylogin depends on * libc-crypt * libc-utmp * libc-getlogin I am trapped here, and could you give me some more help here, please? The picture named eglibc-options-deps-for-minimal-image.png in attachment is the packages depends on every eglibc option that required by other packages. There are some other dependencies cause problems. linux-yocto requires elfutils python and perl. elfutils requires gettext and gettext depends on: * libc-locale-code * libc-spawn * libc-getlogin python requires ncurses and openssl. * ncurses could be update bb file to choose support wchar or not. * openssl depends on: o libc-inet o libc-nsswitch perl depends on: * libc-crypt * libc-fcvt * libc-inet * libc-utmp How to remove these dependencies? One way is to remove the "elfutils python perl" from linux-yocto depencies, and the other is to disable related features of these packages, and I wonder this is too hard to finish. Thanks a lot. Regards, Kai > First see if you can compile the above with a minimal eglibc configuration. If > not I can help you work through those issues.. If you can, you SHOULD see a > fairly dramatic decrease in size. > > --Mark > >> Thanks a lot! >> >> I made a mistake that try eglibc configurability in a directory which >> has build core-image-minimal, so the packages which depend on eglibc >> didn't rebuild, and I didn't find the dependency before. I am sorry! >> >> Regards, >> Kai [-- Attachment #1.2: Type: text/html, Size: 8032 bytes --] [-- Attachment #2: eglibc-options-deps-for-minimal-image.png --] [-- Type: image/png, Size: 280448 bytes --] [-- Attachment #3: minimal-image-runtime-dependies.png --] [-- Type: image/png, Size: 117500 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Question about apply eglibc configurability to create minimal image 2011-06-17 10:05 ` Kang Kai @ 2011-06-17 15:46 ` Mark Hatle 2011-06-17 16:10 ` Koen Kooi 2011-06-21 7:35 ` Kang Kai 0 siblings, 2 replies; 10+ messages in thread From: Mark Hatle @ 2011-06-17 15:46 UTC (permalink / raw) To: Kang Kai; +Cc: Robert, poky@yoctoproject.org, Patches, about the oe-core layer On 6/17/11 5:05 AM, Kang Kai wrote: > On 2011年06月09日 23:20, Mark Hatle wrote: >> On 6/9/11 5:57 AM, Kang Kai wrote: >>> Hi Mark, >>> >>> I am focus on eglibc itself compilation with disabling all the >>> configurable options, right now eglibc can be compiled with disable all >>> the configurable options. >>> >>> But when I build core-image-minimal in a clear new directory, some >>> packages build failed and they need eglibc supports, such as >> core-image-minimal is simply to large of an image to see some of the advantages >> of the eglibc configuration. Realistically the advantages come on single >> application or small (busybox + single application) systems. >> >>> gcc-runtime depends on libc-libm >> The above looks like a bug to me and should be investigated.. (a bug in gcc that >> is..) >> >>> ncurse depends on libc-posix-wchar-io libc-posix-clang-wchar >> ncurses can be configured WITHOUT wide character support, the needs to be done >> with any of the wchar options disabled in eglibc. >> >>> openssl depends on libc-inet libc-nsswitch >> I'm not sure why openssl needs either inet or nsswitch. inet perhaps if it >> tries to make certain socket calls, but libc-nsswitch should never be required >> outside of eglibc. This is likely a configuration issue in openssl -- or a bug >> in eglibc. >> >>> gettext depends on libc-spawn libc-locale-code >>> libc-getlogin libc-utmp >>> ... >> Once we introduce gettext (beyond simply it's m4 macros) we're no longer in >> "small" system territory. gettext and many others really want some of the >> larger system capabilities as they are designed for multilingual systems. >> >>> After enable those options, the image size only decrease from 9.6M to >>> 9.4M(qemux86). And the dependencies on eglibc is hard to break, >>> something like libcrypt getlogin(function) can't be breaken. >>> Could you give me some directions what should I do with eglibc >>> configurability? >> My suggest is to start with a new custom configuration. (ignore the gcc-runtime >> for right now and enable libm.) The goal of this configuration is a small, >> local system -- without network connectivity. >> >> Walk through the core-image-minimal, and you'll see: >> IMAGE_INSTALL = "task-core-boot ${ROOTFS_PKGMANAGE_BOOTSTRAP}" >> >> Looking at task-core-boot: >> >> RDEPENDS_task-core-boot = "\ >> base-files \ >> base-passwd \ >> busybox \ >> initscripts \ >> ${@base_contains("MACHINE_FEATURES", "keyboard", "keymaps", "", d)} \ >> modutils-initscripts \ >> netbase \ >> sysvinit \ >> tinylogin \ >> udev \ >> ${VIRTUAL-RUNTIME_update-alternatives} \ >> ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS}" >> >> RRECOMMENDS_task-core-boot = "\ >> ${MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS}" >> >> From the above, I'm pretty sure that "netbase" will require a lot of networking >> components, specifically adding things like libc-inet. So avoid netbase. >> >> It's possible that keyboard/keymaps may cause additional stuff to come in due to >> locale requirements.. so I'd dump those as well.. >> >> sysvinit may also introduce some additional items -- so if it causes problems, >> remove it and switch to the init located within busybox. >> >> update-alternatives is what included gettext -- so this might need some >> enhancement to avoid gettext as a requirement. So I'd suggest skipping it. >> (Note without it, it's likely busybox, tinylogin may not get setup properly...) >> >> udev is quite complex and drags in a number of components -- so drop that.. >> >> Leaving: >> >> base-files \ >> base-passwd \ >> busybox \ >> initscripts \ >> modutils-initscripts \ >> sysvinit \ >> tinylogin > > Hi Mark, > > According this list, expand with their run time depency(show in the attachment > minimal-image-runtime-dependies.png) , and the list is: > > base-files \ > base-passwd \ > busybox \ > busybox-syslog \ > busybox-udhcpc \ > initscripts \ > makedevs \ > modutils-initscripts \ > sysvinit \ > sysvinit-pidof \ > sysvinit-inittab \ > tinylogin > > > When only enable eglibc libm, busybox, sysvinit and tinylogin can't be compiled. > > busybox depends on > > * libc-crypt > * libc-getlogin > * libc-inet > * libc-posix-regexp > > I wonder that maybe libc-crypt can NOT be disabled? Other 3 options can be > disabled by closing some busybox feature and builtin commands. I would guess that there are options within busybox that are enabled that make use of each of these. Do you get a failure in compilation, configuration, or? You will likely have to shrink busybox down to a shell and a few simple commands, instead of the normal config. > sysvinit depends on > > * libc-inet > * libc-sunrpc > * libc-crypt > > I don't how to resolve them, so as you said, remove it and use busybox init instead. Ya, busybox init should use fewer items. If busybox init can't be used, then simply using the busybox shell as the init will likely work for a truly minimal system. > tinylogin depends on > > * libc-crypt > * libc-utmp > * libc-getlogin > > I am trapped here, and could you give me some more help here, please? Ok, that makes sense. Guess you need to remove tinylogin as well. Since simply offering login services would require those three items. > The picture named eglibc-options-deps-for-minimal-image.png in attachment is the > packages depends on every eglibc option that required by other packages. > > There are some other dependencies cause problems. > linux-yocto requires elfutils python and perl. We need to figure out why linux-yocto requires these items. (I suspect it's for perf or similar. If thats the case, then this is likely a bug. Perf should have to be built for each kernel, if the required capabilities don't exist.) > elfutils requires gettext and gettext depends on: > > * libc-locale-code > * libc-spawn > * libc-getlogin I think we have to assume that elfutils is not needed. It's better to break that dependency instead of trying to fix it. > python requires ncurses and openssl. > > * ncurses could be update bb file to choose support wchar or not. > * openssl depends on: > o libc-inet > o libc-nsswitch I really wonder if there is something inside of openssl we can disable -- or if there is a switch to python that disables SSL support... It might be worth investigating changing the python configuration. > perl depends on: > > * libc-crypt > * libc-fcvt > * libc-inet > * libc-utmp Similarly it might be worth investigating in perl if we can disable the users of these functions in a similar way. > How to remove these dependencies? One way is to remove the "elfutils python > perl" from linux-yocto depencies, and the other is to disable related features > of these packages, and I wonder this is too hard to finish. I'd suggest, for now, simply to remove the elfutils, python and perl dependencies from the linux-yocto to continue. The goal of this exercise is simply to see how small of a eglibc system can be produced that will boot. Then figure out how to scale up from there. (I assume once we get beyond a few basic apps that we will need much of eglibc!) Based on your research above, I would suggest: * File a bug on the linux-yocto requiring elfutils, python and perl * Get rid of sysvinit and tinylogin. * Figure out if you can change the selections on busybox to still build something with a shell, but very little additional functionality with the minimal eglibc configuration. * Assuming that's possible... start adding in the additional functionality, crypt, inet, getlogin, utmp and get back to that standard busybox configuration and tinylogin. This should give us a good size comparison between. Non-internet connected, minimal system.. and something that could be connected to the internet. (Note, I don't think anyone will really build such a minimal system in the real-world. However the size and configuration information could be useful for someone trying to squeeze this into a small system. It might turn out that uClibc is still more practical for such systems.) --Mark > Thanks a lot. > > Regards, > Kai > > > > > >> First see if you can compile the above with a minimal eglibc configuration. If >> not I can help you work through those issues.. If you can, you SHOULD see a >> fairly dramatic decrease in size. >> >> --Mark >> >>> Thanks a lot! >>> >>> I made a mistake that try eglibc configurability in a directory which >>> has build core-image-minimal, so the packages which depend on eglibc >>> didn't rebuild, and I didn't find the dependency before. I am sorry! >>> >>> Regards, >>> Kai > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Question about apply eglibc configurability to create minimal image 2011-06-17 15:46 ` Mark Hatle @ 2011-06-17 16:10 ` Koen Kooi 2011-06-21 7:35 ` Kang Kai 1 sibling, 0 replies; 10+ messages in thread From: Koen Kooi @ 2011-06-17 16:10 UTC (permalink / raw) To: Patches and discussions about the oe-core layer Op 17 jun 2011, om 17:46 heeft Mark Hatle het volgende geschreven: > On 6/17/11 5:05 AM, Kang Kai wrote: >> On 2011年06月09日 23:20, Mark Hatle wrote: >>> On 6/9/11 5:57 AM, Kang Kai wrote: >>>> Hi Mark, >>>> >>>> I am focus on eglibc itself compilation with disabling all the >>>> configurable options, right now eglibc can be compiled with disable all >>>> the configurable options. >>>> >>>> But when I build core-image-minimal in a clear new directory, some >>>> packages build failed and they need eglibc supports, such as >>> core-image-minimal is simply to large of an image to see some of the advantages >>> of the eglibc configuration. Realistically the advantages come on single >>> application or small (busybox + single application) systems. >>> >>>> gcc-runtime depends on libc-libm >>> The above looks like a bug to me and should be investigated.. (a bug in gcc that >>> is..) >>> >>>> ncurse depends on libc-posix-wchar-io libc-posix-clang-wchar >>> ncurses can be configured WITHOUT wide character support, the needs to be done >>> with any of the wchar options disabled in eglibc. >>> >>>> openssl depends on libc-inet libc-nsswitch >>> I'm not sure why openssl needs either inet or nsswitch. inet perhaps if it >>> tries to make certain socket calls, but libc-nsswitch should never be required >>> outside of eglibc. This is likely a configuration issue in openssl -- or a bug >>> in eglibc. >>> >>>> gettext depends on libc-spawn libc-locale-code >>>> libc-getlogin libc-utmp >>>> ... >>> Once we introduce gettext (beyond simply it's m4 macros) we're no longer in >>> "small" system territory. gettext and many others really want some of the >>> larger system capabilities as they are designed for multilingual systems. >>> >>>> After enable those options, the image size only decrease from 9.6M to >>>> 9.4M(qemux86). And the dependencies on eglibc is hard to break, >>>> something like libcrypt getlogin(function) can't be breaken. >>>> Could you give me some directions what should I do with eglibc >>>> configurability? >>> My suggest is to start with a new custom configuration. (ignore the gcc-runtime >>> for right now and enable libm.) The goal of this configuration is a small, >>> local system -- without network connectivity. >>> >>> Walk through the core-image-minimal, and you'll see: >>> IMAGE_INSTALL = "task-core-boot ${ROOTFS_PKGMANAGE_BOOTSTRAP}" >>> >>> Looking at task-core-boot: >>> >>> RDEPENDS_task-core-boot = "\ >>> base-files \ >>> base-passwd \ >>> busybox \ >>> initscripts \ >>> ${@base_contains("MACHINE_FEATURES", "keyboard", "keymaps", "", d)} \ >>> modutils-initscripts \ >>> netbase \ >>> sysvinit \ >>> tinylogin \ >>> udev \ >>> ${VIRTUAL-RUNTIME_update-alternatives} \ >>> ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS}" >>> >>> RRECOMMENDS_task-core-boot = "\ >>> ${MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS}" >>> >>> From the above, I'm pretty sure that "netbase" will require a lot of networking >>> components, specifically adding things like libc-inet. So avoid netbase. >>> >>> It's possible that keyboard/keymaps may cause additional stuff to come in due to >>> locale requirements.. so I'd dump those as well.. >>> >>> sysvinit may also introduce some additional items -- so if it causes problems, >>> remove it and switch to the init located within busybox. >>> >>> update-alternatives is what included gettext -- so this might need some >>> enhancement to avoid gettext as a requirement. So I'd suggest skipping it. >>> (Note without it, it's likely busybox, tinylogin may not get setup properly...) >>> >>> udev is quite complex and drags in a number of components -- so drop that.. >>> >>> Leaving: >>> >>> base-files \ >>> base-passwd \ >>> busybox \ >>> initscripts \ >>> modutils-initscripts \ >>> sysvinit \ >>> tinylogin >> >> Hi Mark, >> >> According this list, expand with their run time depency(show in the attachment >> minimal-image-runtime-dependies.png) , and the list is: >> >> base-files \ >> base-passwd \ >> busybox \ >> busybox-syslog \ >> busybox-udhcpc \ >> initscripts \ >> makedevs \ >> modutils-initscripts \ >> sysvinit \ >> sysvinit-pidof \ >> sysvinit-inittab \ >> tinylogin >> >> >> When only enable eglibc libm, busybox, sysvinit and tinylogin can't be compiled. >> >> busybox depends on >> >> * libc-crypt >> * libc-getlogin >> * libc-inet >> * libc-posix-regexp >> >> I wonder that maybe libc-crypt can NOT be disabled? Other 3 options can be >> disabled by closing some busybox feature and builtin commands. > > I would guess that there are options within busybox that are enabled that make > use of each of these. Do you get a failure in compilation, configuration, or? > You will likely have to shrink busybox down to a shell and a few simple > commands, instead of the normal config. THat should be straightforward now that we have this one: http://cgit.openembedded.org/cgit.cgi/openembedded-core/commit/?id=383d94222e8cfc85d0885f60c88c064091866296 and please don't cross-post between poky and oe-core lists... ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Question about apply eglibc configurability to create minimal image 2011-06-17 15:46 ` Mark Hatle 2011-06-17 16:10 ` Koen Kooi @ 2011-06-21 7:35 ` Kang Kai 2011-06-27 2:09 ` Kang Kai 1 sibling, 1 reply; 10+ messages in thread From: Kang Kai @ 2011-06-21 7:35 UTC (permalink / raw) To: Mark Hatle Cc: Robert, poky@yoctoproject.org, Patches, about the oe-core layer [-- Attachment #1: Type: text/plain, Size: 7469 bytes --] >> Hi Mark, >> >> According this list, expand with their run time depency(show in the attachment >> minimal-image-runtime-dependies.png) , and the list is: >> >> base-files \ >> base-passwd \ >> busybox \ >> busybox-syslog \ >> busybox-udhcpc \ >> initscripts \ >> makedevs \ >> modutils-initscripts \ >> sysvinit \ >> sysvinit-pidof \ >> sysvinit-inittab \ >> tinylogin >> >> >> When only enable eglibc libm, busybox, sysvinit and tinylogin can't be compiled. >> >> busybox depends on >> >> * libc-crypt >> * libc-getlogin >> * libc-inet >> * libc-posix-regexp >> >> I wonder that maybe libc-crypt can NOT be disabled? Other 3 options can be >> disabled by closing some busybox feature and builtin commands. Hi Mark, > I would guess that there are options within busybox that are enabled that make > use of each of these. Do you get a failure in compilation, configuration, or? > You will likely have to shrink busybox down to a shell and a few simple > commands, instead of the normal config. libm and libcrypt are added to LDLIBS unconditionally in Makefile.flags in busybox source code. I am trying to figure out why add them unconditionally. With these 2 options enabled and patch for busybox's defconf in attachment, I make the busybox compile succeed. In the patch all the internet related features are disabled and some command such as awk, sed, grep(re support), mount( nfs feature), expr, logname, who, find, syslogd(remote log), rdate are removed or disabled . >> sysvinit depends on >> >> * libc-inet >> * libc-sunrpc >> * libc-crypt >> >> I don't how to resolve them, so as you said, remove it and use busybox init instead. > Ya, busybox init should use fewer items. If busybox init can't be used, then > simply using the busybox shell as the init will likely work for a truly minimal > system. busybox init could be used, and mdev is also used to replace udev. >> tinylogin depends on >> >> * libc-crypt >> * libc-utmp >> * libc-getlogin >> >> I am trapped here, and could you give me some more help here, please? > Ok, that makes sense. Guess you need to remove tinylogin as well. Since simply > offering login services would require those three items. tinylogin is removed. >> The picture named eglibc-options-deps-for-minimal-image.png in attachment is the >> packages depends on every eglibc option that required by other packages. >> >> There are some other dependencies cause problems. >> linux-yocto requires elfutils python and perl. > We need to figure out why linux-yocto requires these items. (I suspect it's for > perf or similar. If thats the case, then this is likely a bug. Perf should > have to be built for each kernel, if the required capabilities don't exist.) Yes, perf runtime depends on elfutils, python and perl, and perf also need elfutils to provide libelf for its compilation. I remove the perl and python in linux-tools.inc file, but keep the elfutils. After that remove elfutils' dependency gettext, and add EXTRA_OEMAKE = "-C libelf" to build libelf only(because other subdirectories requires libc-ftraverse). >> elfutils requires gettext and gettext depends on: >> >> * libc-locale-code >> * libc-spawn >> * libc-getlogin > I think we have to assume that elfutils is not needed. It's better to break > that dependency instead of trying to fix it. > >> python requires ncurses and openssl. >> >> * ncurses could be update bb file to choose support wchar or not. >> * openssl depends on: >> o libc-inet >> o libc-nsswitch > I really wonder if there is something inside of openssl we can disable -- or if > there is a switch to python that disables SSL support... It might be worth > investigating changing the python configuration. > >> perl depends on: >> >> * libc-crypt >> * libc-fcvt >> * libc-inet >> * libc-utmp > Similarly it might be worth investigating in perl if we can disable the users of > these functions in a similar way. > >> How to remove these dependencies? One way is to remove the "elfutils python >> perl" from linux-yocto depencies, and the other is to disable related features >> of these packages, and I wonder this is too hard to finish. > I'd suggest, for now, simply to remove the elfutils, python and perl > dependencies from the linux-yocto to continue. > > The goal of this exercise is simply to see how small of a eglibc system can be > produced that will boot. Then figure out how to scale up from there. (I assume > once we get beyond a few basic apps that we will need much of eglibc!) > > Based on your research above, I would suggest: > > * File a bug on the linux-yocto requiring elfutils, python and perl > > * Get rid of sysvinit and tinylogin. > > * Figure out if you can change the selections on busybox to still build > something with a shell, but very little additional functionality with the > minimal eglibc configuration. With sysvinit and tinylogin removed and busybox configured by patch in the attachment, and keep 3 eglibc options (libc-libm libc-crypt libc-posix-regexp), the size of image rootfs after extraction is *2.9M* for ppc. busybox is 432K after extraction and maybe remove libc-posix-regexp will decrease the size of it. I'll try to do that. libc-posix-regexp is required by perf. > * Assuming that's possible... start adding in the additional functionality, > crypt, inet, getlogin, utmp and get back to that standard busybox configuration > and tinylogin. After get "libc-sunrpc libc-utmp libc-inet libc-nsswitch libc-getlogin" back, after add tinylogin and standard busybox, I get the size after extraction is *3.5M*. > This should give us a good size comparison between. Non-internet connected, > minimal system.. and something that could be connected to the internet. > > (Note, I don't think anyone will really build such a minimal system in the > real-world. However the size and configuration information could be useful for > someone trying to squeeze this into a small system. It might turn out that > uClibc is still more practical for such systems.) I wonder how can I record my current work that other people can take advantage of it? For now I modify task-core-boot directly, but it seems unacceptable because other image also include task-core-boot. Should I add a new task-core-boot-minimal only include base-files \ base-passwd \ busybox \ initscripts \ modutils-initscripts and take the configure informations and the steps into a document file? Because we will begin yocto pam works next week, I hope I can finish the job in this week. Thanks for your great help! Regards, Kai > > > > >>> First see if you can compile the above with a minimal eglibc configuration. If >>> not I can help you work through those issues.. If you can, you SHOULD see a >>> fairly dramatic decrease in size. >>> >>> --Mark >>> >>>> Thanks a lot! >>>> >>>> I made a mistake that try eglibc configurability in a directory which >>>> has build core-image-minimal, so the packages which depend on eglibc >>>> didn't rebuild, and I didn't find the dependency before. I am sorry! >>>> >>>> Regards, >>>> Kai [-- Attachment #2: busybox-defconfig.patch --] [-- Type: text/x-patch, Size: 10810 bytes --] diff --git a/meta/recipes-core/busybox/busybox-1.18.4/defconfig b/meta/recipes-core/busybox/busybox-1.18.4/defconfig index 5327a64..46090fc 100644 --- a/meta/recipes-core/busybox/busybox-1.18.4/defconfig +++ b/meta/recipes-core/busybox/busybox-1.18.4/defconfig @@ -37,7 +37,7 @@ CONFIG_FEATURE_SUID_CONFIG_QUIET=y # CONFIG_FEATURE_PREFER_APPLETS is not set CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" CONFIG_FEATURE_SYSLOG=y -CONFIG_FEATURE_HAVE_RPC=y +# CONFIG_FEATURE_HAVE_RPC is not set # # Build Options @@ -178,7 +178,7 @@ CONFIG_ENV=y CONFIG_FEATURE_ENV_LONG_OPTIONS=y # CONFIG_EXPAND is not set # CONFIG_FEATURE_EXPAND_LONG_OPTIONS is not set -CONFIG_EXPR=y +# CONFIG_EXPR is not set # CONFIG_EXPR_MATH_SUPPORT_64 is not set CONFIG_FALSE=y # CONFIG_FOLD is not set @@ -191,7 +191,7 @@ CONFIG_ID=y # CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set # CONFIG_LENGTH is not set CONFIG_LN=y -CONFIG_LOGNAME=y +# CONFIG_LOGNAME is not set CONFIG_LS=y CONFIG_FEATURE_LS_FILETYPES=y CONFIG_FEATURE_LS_FOLLOWLINKS=y @@ -258,7 +258,7 @@ CONFIG_USLEEP=y # CONFIG_UUENCODE is not set CONFIG_WC=y # CONFIG_FEATURE_WC_LARGE is not set -CONFIG_WHO=y +# CONFIG_WHO is not set CONFIG_WHOAMI=y CONFIG_YES=y @@ -321,7 +321,7 @@ CONFIG_WHICH=y # # Editors # -CONFIG_AWK=y +# CONFIG_AWK is not set # CONFIG_FEATURE_AWK_LIBM is not set CONFIG_CMP=y CONFIG_DIFF=y @@ -329,7 +329,7 @@ CONFIG_DIFF=y CONFIG_FEATURE_DIFF_DIR=y # CONFIG_ED is not set CONFIG_PATCH=y -CONFIG_SED=y +# CONFIG_SED is not set CONFIG_VI=y CONFIG_FEATURE_VI_MAX_LEN=1024 CONFIG_FEATURE_VI_8BIT=y @@ -368,13 +368,13 @@ CONFIG_FEATURE_FIND_SIZE=y CONFIG_FEATURE_FIND_PRUNE=y # CONFIG_FEATURE_FIND_DELETE is not set CONFIG_FEATURE_FIND_PATH=y -CONFIG_FEATURE_FIND_REGEX=y +# CONFIG_FEATURE_FIND_REGEX is not set # CONFIG_FEATURE_FIND_CONTEXT is not set # CONFIG_FEATURE_FIND_LINKS is not set -CONFIG_GREP=y -CONFIG_FEATURE_GREP_EGREP_ALIAS=y -CONFIG_FEATURE_GREP_FGREP_ALIAS=y -CONFIG_FEATURE_GREP_CONTEXT=y +# CONFIG_GREP is not set +# CONFIG_FEATURE_GREP_EGREP_ALIAS is not set +# CONFIG_FEATURE_GREP_FGREP_ALIAS is not set +# CONFIG_FEATURE_GREP_CONTEXT is not set CONFIG_XARGS=y # CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set # CONFIG_FEATURE_XARGS_SUPPORT_QUOTES is not set @@ -384,15 +384,16 @@ CONFIG_XARGS=y # # Init Utilities # -# CONFIG_INIT is not set -# CONFIG_FEATURE_USE_INITTAB is not set +CONFIG_INIT=y +CONFIG_FEATURE_USE_INITTAB=y # CONFIG_FEATURE_KILL_REMOVED is not set CONFIG_FEATURE_KILL_DELAY=0 -# CONFIG_FEATURE_INIT_SCTTY is not set -# CONFIG_FEATURE_INIT_SYSLOG is not set -# CONFIG_FEATURE_EXTRA_QUIET is not set -# CONFIG_FEATURE_INIT_COREDUMPS is not set -# CONFIG_FEATURE_INITRD is not set +CONFIG_FEATURE_INIT_SCTTY=y +CONFIG_FEATURE_INIT_SYSLOG=y +CONFIG_FEATURE_EXTRA_QUIET=y +CONFIG_FEATURE_INIT_COREDUMPS=y +CONFIG_FEATURE_INITRD=y +CONFIG_INIT_TERMINAL_TYPE="linux" CONFIG_HALT=y # CONFIG_FEATURE_CALL_TELINIT is not set CONFIG_TELINIT_PATH="" @@ -418,7 +419,7 @@ CONFIG_FIRST_SYSTEM_ID=0 CONFIG_LAST_SYSTEM_ID=0 # CONFIG_DELUSER is not set # CONFIG_GETTY is not set -CONFIG_FEATURE_UTMP=y +# CONFIG_FEATURE_UTMP is not set # CONFIG_FEATURE_WTMP is not set # CONFIG_LOGIN is not set # CONFIG_PAM is not set @@ -518,12 +519,12 @@ CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y CONFIG_LOSETUP=y # CONFIG_LSPCI is not set # CONFIG_LSUSB is not set -# CONFIG_MDEV is not set +CONFIG_MDEV=y # CONFIG_FEATURE_MDEV_CONF is not set # CONFIG_FEATURE_MDEV_RENAME is not set # CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set # CONFIG_FEATURE_MDEV_EXEC is not set -# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set +CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y CONFIG_MKSWAP=y # CONFIG_FEATURE_MKSWAP_UUID is not set CONFIG_MORE=y @@ -551,12 +552,12 @@ CONFIG_MOUNT=y # CONFIG_FEATURE_MOUNT_VERBOSE is not set # CONFIG_FEATURE_MOUNT_HELPERS is not set # CONFIG_FEATURE_MOUNT_LABEL is not set -CONFIG_FEATURE_MOUNT_NFS=y +# CONFIG_FEATURE_MOUNT_NFS is not set # CONFIG_FEATURE_MOUNT_CIFS is not set CONFIG_FEATURE_MOUNT_FLAGS=y CONFIG_FEATURE_MOUNT_FSTAB=y CONFIG_PIVOT_ROOT=y -CONFIG_RDATE=y +# CONFIG_RDATE is not set # CONFIG_RDEV is not set # CONFIG_READPROFILE is not set # CONFIG_RTCWAKE is not set @@ -617,10 +618,10 @@ CONFIG_DC=y # CONFIG_LAST is not set # CONFIG_FEATURE_LAST_SMALL is not set # CONFIG_FEATURE_LAST_FANCY is not set -CONFIG_LESS=y -CONFIG_FEATURE_LESS_MAXLINES=9999999 -CONFIG_FEATURE_LESS_BRACKETS=y -CONFIG_FEATURE_LESS_FLAGS=y +# CONFIG_LESS is not set +CONFIG_FEATURE_LESS_MAXLINES=0 +# CONFIG_FEATURE_LESS_BRACKETS is not set +# CONFIG_FEATURE_LESS_FLAGS is not set # CONFIG_FEATURE_LESS_MARKS is not set # CONFIG_FEATURE_LESS_REGEXP is not set # CONFIG_FEATURE_LESS_WINCH is not set @@ -658,9 +659,9 @@ CONFIG_TIME=y # # Networking Utilities # -CONFIG_FEATURE_IPV6=y +# CONFIG_FEATURE_IPV6 is not set # CONFIG_FEATURE_UNIX_LOCAL is not set -CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y +# CONFIG_FEATURE_PREFER_IPV4_ADDRESS is not set # CONFIG_VERBOSE_RESOLUTION_ERRORS is not set # CONFIG_ARP is not set # CONFIG_ARPING is not set @@ -676,7 +677,7 @@ CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y # CONFIG_FTPGET is not set # CONFIG_FTPPUT is not set # CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set -CONFIG_HOSTNAME=y +# CONFIG_HOSTNAME is not set # CONFIG_HTTPD is not set # CONFIG_FEATURE_HTTPD_RANGES is not set # CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set @@ -689,22 +690,22 @@ CONFIG_HOSTNAME=y # CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set # CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set # CONFIG_FEATURE_HTTPD_PROXY is not set -CONFIG_IFCONFIG=y -CONFIG_FEATURE_IFCONFIG_STATUS=y +# CONFIG_IFCONFIG is not set +# CONFIG_FEATURE_IFCONFIG_STATUS is not set # CONFIG_FEATURE_IFCONFIG_SLIP is not set # CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set -CONFIG_FEATURE_IFCONFIG_HW=y +# CONFIG_FEATURE_IFCONFIG_HW is not set # CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set # CONFIG_IFENSLAVE is not set # CONFIG_IFPLUGD is not set -CONFIG_IFUPDOWN=y -CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" +# CONFIG_IFUPDOWN is not set +CONFIG_IFUPDOWN_IFSTATE_PATH="" # CONFIG_FEATURE_IFUPDOWN_IP is not set # CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set -CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN=y -CONFIG_FEATURE_IFUPDOWN_IPV4=y -CONFIG_FEATURE_IFUPDOWN_IPV6=y -CONFIG_FEATURE_IFUPDOWN_MAPPING=y +# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set +# CONFIG_FEATURE_IFUPDOWN_IPV4 is not set +# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set +# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set # CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set # CONFIG_INETD is not set # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set @@ -713,11 +714,11 @@ CONFIG_FEATURE_IFUPDOWN_MAPPING=y # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set # CONFIG_FEATURE_INETD_RPC is not set -CONFIG_IP=y -CONFIG_FEATURE_IP_ADDRESS=y -CONFIG_FEATURE_IP_LINK=y -CONFIG_FEATURE_IP_ROUTE=y -CONFIG_FEATURE_IP_TUNNEL=y +# CONFIG_IP is not set +# CONFIG_FEATURE_IP_ADDRESS is not set +# CONFIG_FEATURE_IP_LINK is not set +# CONFIG_FEATURE_IP_ROUTE is not set +# CONFIG_FEATURE_IP_TUNNEL is not set # CONFIG_FEATURE_IP_RULE is not set # CONFIG_FEATURE_IP_SHORT_FORMS is not set # CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set @@ -731,57 +732,59 @@ CONFIG_FEATURE_IP_TUNNEL=y # CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set # CONFIG_NAMEIF is not set # CONFIG_FEATURE_NAMEIF_EXTENDED is not set -CONFIG_NC=y +# CONFIG_NBDCLIENT is not set +# CONFIG_NC is not set # CONFIG_NC_SERVER is not set # CONFIG_NC_EXTRA is not set -CONFIG_NETSTAT=y +# CONFIG_NETSTAT is not set # CONFIG_FEATURE_NETSTAT_WIDE is not set # CONFIG_FEATURE_NETSTAT_PRG is not set -CONFIG_NSLOOKUP=y +# CONFIG_NSLOOKUP is not set # CONFIG_NTPD is not set # CONFIG_FEATURE_NTPD_SERVER is not set -CONFIG_PING=y -CONFIG_PING6=y -CONFIG_FEATURE_FANCY_PING=y +# CONFIG_PING is not set +# CONFIG_PING6 is not set +# CONFIG_FEATURE_FANCY_PING is not set # CONFIG_PSCAN is not set -CONFIG_ROUTE=y +# CONFIG_ROUTE is not set # CONFIG_SLATTACH is not set -CONFIG_TELNET=y +# CONFIG_TELNET is not set # CONFIG_FEATURE_TELNET_TTYPE is not set -CONFIG_FEATURE_TELNET_AUTOLOGIN=y +# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set # CONFIG_TELNETD is not set # CONFIG_FEATURE_TELNETD_STANDALONE is not set # CONFIG_FEATURE_TELNETD_INETD_WAIT is not set -CONFIG_TFTP=y +# CONFIG_TFTP is not set # CONFIG_TFTPD is not set -CONFIG_FEATURE_TFTP_GET=y -CONFIG_FEATURE_TFTP_PUT=y +# CONFIG_FEATURE_TFTP_GET is not set +# CONFIG_FEATURE_TFTP_PUT is not set # CONFIG_FEATURE_TFTP_BLOCKSIZE is not set # CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set # CONFIG_TFTP_DEBUG is not set -CONFIG_TRACEROUTE=y +# CONFIG_TRACEROUTE is not set # CONFIG_TRACEROUTE6 is not set # CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set # CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set # CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set -CONFIG_UDHCPD=y +# CONFIG_UDHCPD is not set # CONFIG_DHCPRELAY is not set -CONFIG_DUMPLEASES=y +# CONFIG_DUMPLEASES is not set # CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set -CONFIG_DHCPD_LEASES_FILE="/var/lib/misc/udhcpd.leases" -CONFIG_UDHCPC=y -CONFIG_FEATURE_UDHCPC_ARPING=y +CONFIG_DHCPD_LEASES_FILE="" +# CONFIG_UDHCPC is not set +# CONFIG_FEATURE_UDHCPC_ARPING is not set # CONFIG_FEATURE_UDHCP_PORT is not set CONFIG_UDHCP_DEBUG=0 # CONFIG_FEATURE_UDHCP_RFC3397 is not set -CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script" -CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80 -CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n" +CONFIG_UDHCPC_DEFAULT_SCRIPT="" +CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0 +CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="" # CONFIG_VCONFIG is not set -CONFIG_WGET=y -CONFIG_FEATURE_WGET_STATUSBAR=y -CONFIG_FEATURE_WGET_AUTHENTICATION=y -CONFIG_FEATURE_WGET_LONG_OPTIONS=y +# CONFIG_WGET is not set +# CONFIG_FEATURE_WGET_STATUSBAR is not set +# CONFIG_FEATURE_WGET_AUTHENTICATION is not set +# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set +# CONFIG_FEATURE_WGET_TIMEOUT is not set # CONFIG_ZCIP is not set # CONFIG_TCPSVD is not set # CONFIG_TUNCTL is not set @@ -914,7 +917,7 @@ CONFIG_FEATURE_SH_EXTRA_QUIET=y # CONFIG_SYSLOGD=y CONFIG_FEATURE_ROTATE_LOGFILE=y -CONFIG_FEATURE_REMOTE_LOG=y +# CONFIG_FEATURE_REMOTE_LOG is not set # CONFIG_FEATURE_SYSLOGD_DUP is not set CONFIG_FEATURE_IPC_SYSLOG=y CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: Question about apply eglibc configurability to create minimal image 2011-06-21 7:35 ` Kang Kai @ 2011-06-27 2:09 ` Kang Kai 0 siblings, 0 replies; 10+ messages in thread From: Kang Kai @ 2011-06-27 2:09 UTC (permalink / raw) To: Mark Hatle Cc: poky@yoctoproject.org, Patches and discussions about the oe-core layer Hi Mark, Thanks for your great help. I record the minimal eglibc configure options and the dependencies on them at https://wiki.yoctoproject.org/wiki/Minimal_Image People want make minimal image could follow the step and apply the patches in the page should get the same result with what I get. I will try to put the patches on the maillist and then check what other people thinking. Thanks and Regards, Kai ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2011-06-27 2:11 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <4DF0A70C.7080501@windriver.com>
2011-06-09 10:59 ` [poky] Question about apply eglibc configurability to create minimal image Koen Kooi
2011-06-09 15:20 ` Mark Hatle
2011-06-09 15:34 ` Frans Meulenbroeks
2011-06-09 15:38 ` Mark Hatle
2011-06-10 2:50 ` Kang Kai
2011-06-17 10:05 ` Kang Kai
2011-06-17 15:46 ` Mark Hatle
2011-06-17 16:10 ` Koen Kooi
2011-06-21 7:35 ` Kang Kai
2011-06-27 2:09 ` Kang Kai
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox