* [Buildroot] inittab for Busybox @ 2011-03-15 16:37 Heyendal, Carl 2011-03-15 17:07 ` Thomas Petazzoni 0 siblings, 1 reply; 28+ messages in thread From: Heyendal, Carl @ 2011-03-15 16:37 UTC (permalink / raw) To: buildroot I have not enabled support for sysvinit in my project. Could someone tell me why Buildroot adds an inittab file that's incompatible with BusyBox? I looked at the mail archives but no one seems to have asked that question before. Also in the mail archives, some reference is made to documentation about creating your own inittab file. Does that documentation still exist somewhere? I've looked but can't find it. thanx /carl h. ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Buildroot] inittab for Busybox 2011-03-15 16:37 [Buildroot] inittab for Busybox Heyendal, Carl @ 2011-03-15 17:07 ` Thomas Petazzoni 2011-03-15 17:28 ` Charles Krinke 2011-03-15 18:14 ` Heyendal, Carl 0 siblings, 2 replies; 28+ messages in thread From: Thomas Petazzoni @ 2011-03-15 17:07 UTC (permalink / raw) To: buildroot Hello, On Tue, 15 Mar 2011 12:37:01 -0400 "Heyendal, Carl" <CHeyendal@stanleyworks.com> wrote: > I have not enabled support for sysvinit in my project. Could someone > tell me why Buildroot adds an inittab file that's incompatible with > BusyBox? I looked at the mail archives but no one seems to have asked > that question before. How do you see that the inittab is incompatible with Busybox ? Many of us use it every day without problem. When sysvinit is not selected, fs/skeleton/etc/inittab is the inittab that is used, and it is compatible with Busybox init. When sysvinit is selected, package/sysvinit/inittab is used instead. > Also in the mail archives, some reference is made to documentation > about creating your own inittab file. Does that documentation still > exist somewhere? I've looked but can't find it. You should refer to the Busybox documentation, as this is not something related to Buildroot directly. See examples/inittab in Busybox sources. Regards, Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Buildroot] inittab for Busybox 2011-03-15 17:07 ` Thomas Petazzoni @ 2011-03-15 17:28 ` Charles Krinke 2011-03-15 18:14 ` Heyendal, Carl 1 sibling, 0 replies; 28+ messages in thread From: Charles Krinke @ 2011-03-15 17:28 UTC (permalink / raw) To: buildroot I want to second what Thomas said. I have been through both the sysvinit inittab and the busybox inittab and the busybox one works fine. As I recall, it also has a tiny variation in the location of the RC directory, so you might look at those differences which I think also depens on the skeleton base files. On Mar 15, 2011 10:07 AM, "Thomas Petazzoni" < thomas.petazzoni@free-electrons.com> wrote: > Hello, > > On Tue, 15 Mar 2011 12:37:01 -0400 > "Heyendal, Carl" <CHeyendal@stanleyworks.com> wrote: > >> I have not enabled support for sysvinit in my project. Could someone >> tell me why Buildroot adds an inittab file that's incompatible with >> BusyBox? I looked at the mail archives but no one seems to have asked >> that question before. > > How do you see that the inittab is incompatible with Busybox ? Many of > us use it every day without problem. > > When sysvinit is not selected, fs/skeleton/etc/inittab is the inittab > that is used, and it is compatible with Busybox init. > > When sysvinit is selected, package/sysvinit/inittab is used instead. > >> Also in the mail archives, some reference is made to documentation >> about creating your own inittab file. Does that documentation still >> exist somewhere? I've looked but can't find it. > > You should refer to the Busybox documentation, as this is not something > related to Buildroot directly. See examples/inittab in Busybox sources. > > Regards, > > Thomas > -- > Thomas Petazzoni, Free Electrons > Kernel, drivers, real-time and embedded Linux > development, consulting, training and support. > http://free-electrons.com > _______________________________________________ > buildroot mailing list > buildroot at busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20110315/ff3c1830/attachment.html> ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Buildroot] inittab for Busybox 2011-03-15 17:07 ` Thomas Petazzoni 2011-03-15 17:28 ` Charles Krinke @ 2011-03-15 18:14 ` Heyendal, Carl 2011-03-15 18:22 ` Thomas Petazzoni 1 sibling, 1 reply; 28+ messages in thread From: Heyendal, Carl @ 2011-03-15 18:14 UTC (permalink / raw) To: buildroot Comments below..... /carl h. > -----Original Message----- > From: buildroot-bounces at busybox.net [mailto:buildroot- > bounces at busybox.net] On Behalf Of Thomas Petazzoni > Sent: March 15, 2011 1:08 PM > To: buildroot at busybox.net > Subject: Re: [Buildroot] inittab for Busybox > > Hello, > > On Tue, 15 Mar 2011 12:37:01 -0400 > "Heyendal, Carl" <CHeyendal@stanleyworks.com> wrote: > > > I have not enabled support for sysvinit in my project. Could someone > > tell me why Buildroot adds an inittab file that's incompatible with > > BusyBox? I looked at the mail archives but no one seems to have asked > > that question before. > > How do you see that the inittab is incompatible with Busybox ? Many of > us use it every day without problem. [Heyendal, Carl] Hmmmm....I unselected the sysvinit option in busybox and recompiled from Buildroot. But there was still an incompatible inittab file being used. I know Buildroot picked up my changes in Busybox because I also added support for klogd which got reflected in the newer inittab file. Here's my inittab file that Buildroot added to /etc: # /etc/inittab # # This inittab is a basic inittab sample for sysvinit, which mimics # Buildroot's default inittab for Busybox. id:1:initdefault: proc::sysinit:/bin/mount -t proc proc /proc rwmo::sysinit:/bin/mount -o remount,rw / dpts::sysinit:/bin/mkdir -p /dev/pts moun::sysinit:/bin/mount -a host::sysinit:/bin/hostname -F /etc/hostname init::sysinit:/etc/init.d/rcS 1:1:respawn:/sbin/getty 38400 tty1 2:1:respawn:/sbin/getty 38400 tty2 ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100 # GENERIC_SERIAL # Logging junk mess::sysinit:/bin/touch /var/log/messages sysl:1:respawn:/sbin/syslogd -n -m 0 klog:1:respawn:/sbin/klogd -n # Stuff to do for the 3-finger salute rebo::ctrlaltdel:/sbin/reboot # Stuff to do before rebooting sklo:6:wait:/usr/bin/killall klogd ssys:6:wait:/usr/bin/killall syslogd umou:6:wait:/bin/umount -a -r swap:6:wait:/sbin/swapoff -a Here's some debug output from running this inittab file: Bad inittab entry at line 5 can't open /dev/proc: No such file or directory can't open /dev/rwmo: No such file or directory can't open /dev/dpts: No such file or directory can't open /dev/moun: No such file or directory can't open /dev/host: No such file or directory can't open /dev/init: No such file or directory can't open /dev/mess: No such file or directory can't open /dev/sklo: No such file or directory can't open /dev/ssys: No such file or directory can't open /dev/umou: No such file or directory can't open /dev/swap: No such file or directory can't open /dev/1: No such file or directory can't open /dev/2: No such file or directory can't open /dev/S0: No such file or directory can't open /dev/sysl: No such file or directory can't open /dev/klog: No such file or directory Clearly it's not compatible. Note the above file comment: "This inittab is a basic inittab sample for sysvinit" > > When sysvinit is not selected, fs/skeleton/etc/inittab is the inittab > that is used, and it is compatible with Busybox init. > > When sysvinit is selected, package/sysvinit/inittab is used instead. > [Heyendal, Carl] Do I have to change the inittab file manually? Or should I go a global recompile? Or delete the filesystem and recompile? > > Also in the mail archives, some reference is made to documentation > > about creating your own inittab file. Does that documentation still > > exist somewhere? I've looked but can't find it. > > You should refer to the Busybox documentation, as this is not something > related to Buildroot directly. See examples/inittab in Busybox sources. > [Heyendal, Carl] Good to know. > Regards, > > Thomas > -- > Thomas Petazzoni, Free Electrons > Kernel, drivers, real-time and embedded Linux > development, consulting, training and support. > http://free-electrons.com > _______________________________________________ > buildroot mailing list > buildroot at busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Buildroot] inittab for Busybox 2011-03-15 18:14 ` Heyendal, Carl @ 2011-03-15 18:22 ` Thomas Petazzoni 2011-03-15 18:32 ` Heyendal, Carl 0 siblings, 1 reply; 28+ messages in thread From: Thomas Petazzoni @ 2011-03-15 18:22 UTC (permalink / raw) To: buildroot Hello, On Tue, 15 Mar 2011 14:14:09 -0400 "Heyendal, Carl" <CHeyendal@stanleyworks.com> wrote: > Hmmmm....I unselected the sysvinit option in busybox and recompiled > from Buildroot. Yes, but you didn't do "make clean; make", so the etc/inittab in the target is still the one from sysvinit. Regards, Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Buildroot] inittab for Busybox 2011-03-15 18:22 ` Thomas Petazzoni @ 2011-03-15 18:32 ` Heyendal, Carl 2011-03-15 20:05 ` Thomas Petazzoni 0 siblings, 1 reply; 28+ messages in thread From: Heyendal, Carl @ 2011-03-15 18:32 UTC (permalink / raw) To: buildroot Really!! 'make clean' from Buildroot directory? That's a complete rebuild!! How come then it picked up my other Busybox change without having to do a global re-build? thanx /carl h. > -----Original Message----- > From: Thomas Petazzoni [mailto:thomas.petazzoni at free-electrons.com] > Sent: March 15, 2011 2:22 PM > To: Heyendal, Carl > Cc: buildroot at busybox.net > Subject: Re: [Buildroot] inittab for Busybox > > Hello, > > On Tue, 15 Mar 2011 14:14:09 -0400 > "Heyendal, Carl" <CHeyendal@stanleyworks.com> wrote: > > > Hmmmm....I unselected the sysvinit option in busybox and recompiled > > from Buildroot. > > Yes, but you didn't do "make clean; make", so the etc/inittab in the > target is still the one from sysvinit. > > Regards, > > Thomas > -- > Thomas Petazzoni, Free Electrons > Kernel, drivers, real-time and embedded Linux > development, consulting, training and support. > http://free-electrons.com ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Buildroot] inittab for Busybox 2011-03-15 18:32 ` Heyendal, Carl @ 2011-03-15 20:05 ` Thomas Petazzoni 2011-03-15 20:10 ` Heyendal, Carl 2011-03-16 16:44 ` [Buildroot] Buildroot in use Steve Calfee 0 siblings, 2 replies; 28+ messages in thread From: Thomas Petazzoni @ 2011-03-15 20:05 UTC (permalink / raw) To: buildroot Hello, On Tue, 15 Mar 2011 14:32:07 -0400 "Heyendal, Carl" <CHeyendal@stanleyworks.com> wrote: > Really!! 'make clean' from Buildroot directory? That's a complete > rebuild!! Yes, it is. For now, Buildroot is "nothing" more but a tool that automates the process of building an embedded Linux system. It is not very smart, so it cannot remove packages that have been installed, or revert changes that have been made to the target filesystem. My view on this: Buildroot has been more or less abandonned until late 2008/early 2009, when Peter took over the maintainership of the project. Since that time, our main goal was to clean up the existing code base, keeping the existing feature set (in fact, we added a bunch of features as well, but we didn't fundamentaly changed how Buildroot works). Now that this cleanup process is mostly over, I'd say that solving the issue you're facing here is now on the top priorities of the project. At least it's where it is on my own Buildroot TODO list. But there a fairly huge and complex amount of work to do here, so it isn't going to happen overnight. > How come then it picked up my other Busybox change without having to > do a global re-build? Because when you change the Busybox configuration, we have a make dependency that makes sure that Busybox gets rebuilt/reinstalled. But that does not happen when you unselect sysvinit. Regards, Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Buildroot] inittab for Busybox 2011-03-15 20:05 ` Thomas Petazzoni @ 2011-03-15 20:10 ` Heyendal, Carl 2011-03-16 16:44 ` [Buildroot] Buildroot in use Steve Calfee 1 sibling, 0 replies; 28+ messages in thread From: Heyendal, Carl @ 2011-03-15 20:10 UTC (permalink / raw) To: buildroot Thanks Thomas. Good explanation. Please don't interpret my thoughts as complaints. It is a useful and helpful tool. thanx /carl > -----Original Message----- > From: buildroot-bounces at busybox.net [mailto:buildroot- > bounces at busybox.net] On Behalf Of Thomas Petazzoni > Sent: March 15, 2011 4:06 PM > To: buildroot at busybox.net > Subject: Re: [Buildroot] inittab for Busybox > > Hello, > > On Tue, 15 Mar 2011 14:32:07 -0400 > "Heyendal, Carl" <CHeyendal@stanleyworks.com> wrote: > > > Really!! 'make clean' from Buildroot directory? That's a complete > > rebuild!! > > Yes, it is. For now, Buildroot is "nothing" more but a tool that > automates the process of building an embedded Linux system. It is not > very smart, so it cannot remove packages that have been installed, or > revert changes that have been made to the target filesystem. > > My view on this: Buildroot has been more or less abandonned until late > 2008/early 2009, when Peter took over the maintainership of the > project. Since that time, our main goal was to clean up the existing > code base, keeping the existing feature set (in fact, we added a bunch > of features as well, but we didn't fundamentaly changed how Buildroot > works). Now that this cleanup process is mostly over, I'd say that > solving the issue you're facing here is now on the top priorities of > the project. At least it's where it is on my own Buildroot TODO list. > But there a fairly huge and complex amount of work to do here, so it > isn't going to happen overnight. > > > How come then it picked up my other Busybox change without having to > > do a global re-build? > > Because when you change the Busybox configuration, we have a make > dependency that makes sure that Busybox gets rebuilt/reinstalled. > > But that does not happen when you unselect sysvinit. > > Regards, > > Thomas > -- > Thomas Petazzoni, Free Electrons > Kernel, drivers, real-time and embedded Linux > development, consulting, training and support. > http://free-electrons.com > _______________________________________________ > buildroot mailing list > buildroot at busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Buildroot] Buildroot in use 2011-03-15 20:05 ` Thomas Petazzoni 2011-03-15 20:10 ` Heyendal, Carl @ 2011-03-16 16:44 ` Steve Calfee 2011-03-16 20:08 ` Heyendal, Carl ` (2 more replies) 1 sibling, 3 replies; 28+ messages in thread From: Steve Calfee @ 2011-03-16 16:44 UTC (permalink / raw) To: buildroot ----- Original Message ---- > From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > > Hello, > > On Tue, 15 Mar 2011 14:32:07 -0400 > "Heyendal, Carl" <CHeyendal@stanleyworks.com> wrote: > > > Really!! 'make clean' from Buildroot directory? That's a complete > > rebuild!! > > Yes, it is. For now, Buildroot is "nothing" more but a tool that > automates the process of building an embedded Linux system. It is not > very smart, so it cannot remove packages that have been installed, or > revert changes that have been made to the target filesystem. > > My view on this: Buildroot has been more or less abandonned until late > 2008/early 2009, when Peter took over the maintainership of the > project. Since that time, our main goal was to clean up the existing > code base, keeping the existing feature set (in fact, we added a bunch > of features as well, but we didn't fundamentaly changed how Buildroot > works). Now that this cleanup process is mostly over, I'd say that > solving the issue you're facing here is now on the top priorities of > the project. At least it's where it is on my own Buildroot TODO list. > But there a fairly huge and complex amount of work to do here, so it > isn't going to happen overnight. > I think a general discussion of how we use buildroot and what we would like to see is in order. It seems the framework is stabilizing and useful (thanks guys). It seems in my use that I am either working on the kernel or configuring a system with packages (rootfs). make clean is unbearable where it removes the toolchain etc. So what I do is I git pull one tree just for my toolchain and compiler. I configure and build it without bootstraps, busybox, kernel etc. If I need to change a toolchain option I go back to this tree and fix it. This build becomes my "external toolchain". I then git pull another tree which uses that external toolchain. Make clean is now much less painful. During development it is common to want to change stuff in the "skeleton" filesystem - add scripts, configure things etc. This is kind of painful from within the buildroot framework, with no clear way to force an update to the rootfs image etc. So what I do is I create a skeleton directory for my board. In the post build script I copy my skeleton on top of the existing buildroot constructed skeleton. In this way I only have the files I care about in my board skeleton, they are updated every build etc. I have not moved my bsp to the new board/company/bsp file system yet, but here is my post install script: #!/bin/bash # # script which runs before creating rootfs # # MAINDIR=${1}/../../ SRCDIR=${MAINDIR}"target/device/beagleboard/skeleton/*" DESTDIR=${1} echo "***************patching some stuff in " ${DESTDIR} from ${SRCDIR} #echo "DESTDIR " ${DESTDIR} #echo "SRCDIR " ${SRCDIR} #ls -l ${SRCDIR} ${SRCDIR}"/etc" cp -rv ${SRCDIR} ${DESTDIR} echo "end of userdefined script before packing rootfs" I am curious how people do development with cutting edge kernels like linux-next? Do you do it completely removed from buildroot and just use the external tools? Do you use some kind of sym-link to point to the other kernel git tree? Regards, Steve ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Buildroot] Buildroot in use 2011-03-16 16:44 ` [Buildroot] Buildroot in use Steve Calfee @ 2011-03-16 20:08 ` Heyendal, Carl 2011-03-17 12:14 ` William Wagner 2011-03-27 19:19 ` [Buildroot] Buildroot in use Michael J. Hammel 2 siblings, 0 replies; 28+ messages in thread From: Heyendal, Carl @ 2011-03-16 20:08 UTC (permalink / raw) To: buildroot ...at least for the kernel anyways. Maybe not for busybox. > -----Original Message----- > From: Heyendal, Carl > Sent: March 16, 2011 3:22 PM > To: 'Steve Calfee' > Subject: RE: [Buildroot] Buildroot in use > > Good advice Steve. Thanks for the tip. > > Another thing I've noticed when I do 'make clean' from Buildroot home > directory is that the configuration changes back to its defaults for > both the kernel and busybox. Any changes I made are gone after a make > clean. Should I need to copy my .config's before a rebuild? > > /carl h. > > > > > -----Original Message----- > > From: buildroot-bounces at busybox.net [mailto:buildroot- > > bounces at busybox.net] On Behalf Of Steve Calfee > > Sent: March 16, 2011 12:44 PM > > To: Thomas Petazzoni; buildroot at busybox.net > > Subject: [Buildroot] Buildroot in use > > > > ----- Original Message ---- > > > > > From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > > > > > > Hello, > > > > > > On Tue, 15 Mar 2011 14:32:07 -0400 > > > "Heyendal, Carl" <CHeyendal@stanleyworks.com> wrote: > > > > > > > Really!! 'make clean' from Buildroot directory? That's a > complete > > > > rebuild!! > > > > > > Yes, it is. For now, Buildroot is "nothing" more but a tool that > > > automates the process of building an embedded Linux system. It is > > not > > > very smart, so it cannot remove packages that have been installed, > > or > > > revert changes that have been made to the target filesystem. > > > > > > My view on this: Buildroot has been more or less abandonned until > > late > > > 2008/early 2009, when Peter took over the maintainership of the > > > project. Since that time, our main goal was to clean up the > existing > > > code base, keeping the existing feature set (in fact, we added a > > bunch > > > of features as well, but we didn't fundamentaly changed how > > Buildroot > > > works). Now that this cleanup process is mostly over, I'd say that > > > solving the issue you're facing here is now on the top priorities > of > > > the project. At least it's where it is on my own Buildroot TODO > > list. > > > But there a fairly huge and complex amount of work to do here, so > it > > > isn't going to happen overnight. > > > > > > > I think a general discussion of how we use buildroot and what we > would > > like to > > see is in order. It seems the framework is stabilizing and useful > > (thanks guys). > > > > It seems in my use that I am either working on the kernel or > > configuring a > > system with packages (rootfs). make clean is unbearable where it > > removes the > > toolchain etc. > > > > > > So what I do is I git pull one tree just for my toolchain and > compiler. > > I > > configure and build it without bootstraps, busybox, kernel etc. If I > > need to > > change a toolchain option I go back to this tree and fix it. This > build > > becomes > > my "external toolchain". > > > > I then git pull another tree which uses that external toolchain. Make > > clean is > > now much less painful. > > > > During development it is common to want to change stuff in the > > "skeleton" > > filesystem - add scripts, configure things etc. This is kind of > painful > > from > > within the buildroot framework, with no clear way to force an update > to > > the > > rootfs image etc. So what I do is I create a skeleton directory for > my > > board. In > > the post build script I copy my skeleton on top of the existing > > buildroot > > constructed skeleton. In this way I only have the files I care about > in > > my board > > skeleton, they are updated every build etc. > > > > I have not moved my bsp to the new board/company/bsp file system yet, > > but here > > is my post install script: > > #!/bin/bash > > # > > # script which runs before creating rootfs > > # > > # > > MAINDIR=${1}/../../ > > SRCDIR=${MAINDIR}"target/device/beagleboard/skeleton/*" > > DESTDIR=${1} > > echo "***************patching some stuff in " ${DESTDIR} from > ${SRCDIR} > > #echo "DESTDIR " ${DESTDIR} > > #echo "SRCDIR " ${SRCDIR} > > #ls -l ${SRCDIR} ${SRCDIR}"/etc" > > cp -rv ${SRCDIR} ${DESTDIR} > > echo "end of userdefined script before packing rootfs" > > > > > > I am curious how people do development with cutting edge kernels like > > linux-next? Do you do it completely removed from buildroot and just > use > > the > > external tools? Do you use some kind of sym-link to point to the > other > > kernel > > git tree? > > > > Regards, Steve > > > > > > > > > > _______________________________________________ > > buildroot mailing list > > buildroot at busybox.net > > http://lists.busybox.net/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Buildroot] Buildroot in use 2011-03-16 16:44 ` [Buildroot] Buildroot in use Steve Calfee 2011-03-16 20:08 ` Heyendal, Carl @ 2011-03-17 12:14 ` William Wagner 2011-03-17 13:53 ` Heyendal, Carl 2011-03-18 15:59 ` [Buildroot] Xtensa support Thomas Petazzoni 2011-03-27 19:19 ` [Buildroot] Buildroot in use Michael J. Hammel 2 siblings, 2 replies; 28+ messages in thread From: William Wagner @ 2011-03-17 12:14 UTC (permalink / raw) To: buildroot On 16/03/2011 16:44, Steve Calfee wrote: > ----- Original Message ---- > >> From: Thomas Petazzoni<thomas.petazzoni@free-electrons.com> >> >> Hello, >> >> On Tue, 15 Mar 2011 14:32:07 -0400 >> "Heyendal, Carl"<CHeyendal@stanleyworks.com> wrote: >> >>> Really!! 'make clean' from Buildroot directory? That's a complete >>> rebuild!! >> Yes, it is. For now, Buildroot is "nothing" more but a tool that >> automates the process of building an embedded Linux system. It is not >> very smart, so it cannot remove packages that have been installed, or >> revert changes that have been made to the target filesystem. >> >> My view on this: Buildroot has been more or less abandonned until late >> 2008/early 2009, when Peter took over the maintainership of the >> project. Since that time, our main goal was to clean up the existing >> code base, keeping the existing feature set (in fact, we added a bunch >> of features as well, but we didn't fundamentaly changed how Buildroot >> works). Now that this cleanup process is mostly over, I'd say that >> solving the issue you're facing here is now on the top priorities of >> the project. At least it's where it is on my own Buildroot TODO list. >> But there a fairly huge and complex amount of work to do here, so it >> isn't going to happen overnight. >> > I think a general discussion of how we use buildroot and what we would like to > see is in order. It seems the framework is stabilizing and useful (thanks guys). > > It seems in my use that I am either working on the kernel or configuring a > system with packages (rootfs). make clean is unbearable where it removes the > toolchain etc. I agree, this is the only part of the build that takes any time. It would be great if there was a way of cleaning back to only the toolchain built. I am getting round this at the moment by using an external crosstools-NG toolchain in most projects, which gives much the same functionality, just would be easier for a beginner to understand if buildroot could do this itself. Given how we support external toolchains would it not be possible to be able to clean everything but toolchain (Which I think only gets produced if you have an internal toolchain) and then when you build again it does the same as for an external toolchain and copies the files into staging etc? > > So what I do is I git pull one tree just for my toolchain and compiler. I > configure and build it without bootstraps, busybox, kernel etc. If I need to > change a toolchain option I go back to this tree and fix it. This build becomes > my "external toolchain". > > I then git pull another tree which uses that external toolchain. Make clean is > now much less painful. > > During development it is common to want to change stuff in the "skeleton" > filesystem - add scripts, configure things etc. This is kind of painful from > within the buildroot framework, with no clear way to force an update to the > rootfs image etc. So what I do is I create a skeleton directory for my board. In > the post build script I copy my skeleton on top of the existing buildroot > constructed skeleton. In this way I only have the files I care about in my board > skeleton, they are updated every build etc. I do something very similar. The default skeleton is fine for most things, there are just a couple of customisations I want. Recent work in this area is already adding config options for some of what I want. A custom board script can then make any further modifications. Would be great to have an example of recommended practice checked in for people to see/copy. Also would be great to remove the xtensa bits as they are just confusing. Perhaps we should convert that over to the new scheme? Will -- ------------------------------------------------------------------------ Will Wagner will_wagner at carallon.com Development Manager Office Tel: +44 (0)20 7371 2032 Carallon Ltd, Studio G20, Shepherds Building, Rockley Rd, London W14 0DA ------------------------------------------------------------------------ ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Buildroot] Buildroot in use 2011-03-17 12:14 ` William Wagner @ 2011-03-17 13:53 ` Heyendal, Carl 2011-03-17 17:17 ` Steve Calfee 2011-03-17 20:21 ` Grant Edwards 2011-03-18 15:59 ` [Buildroot] Xtensa support Thomas Petazzoni 1 sibling, 2 replies; 28+ messages in thread From: Heyendal, Carl @ 2011-03-17 13:53 UTC (permalink / raw) To: buildroot If starting from scratch, downloading and building 2 Buildroots (one for the toolchain, and the other for the rest of the stuff) sounds reasonable. But refining the notion a bit more, if you have already built the entire Buildroot tree like I have done already, is it possible to break off the toolchain leg of the tree and move it somewhere else. Then of course configure the external toolchain option after that. /carl > -----Original Message----- > From: buildroot-bounces at busybox.net [mailto:buildroot- > bounces at busybox.net] On Behalf Of William Wagner > Sent: March 17, 2011 8:15 AM > To: Steve Calfee > Cc: Thomas Petazzoni; buildroot at busybox.net > Subject: Re: [Buildroot] Buildroot in use > > On 16/03/2011 16:44, Steve Calfee wrote: > > ----- Original Message ---- > > > >> From: Thomas Petazzoni<thomas.petazzoni@free-electrons.com> > >> > >> Hello, > >> > >> On Tue, 15 Mar 2011 14:32:07 -0400 > >> "Heyendal, Carl"<CHeyendal@stanleyworks.com> wrote: > >> > >>> Really!! 'make clean' from Buildroot directory? That's a complete > >>> rebuild!! > >> Yes, it is. For now, Buildroot is "nothing" more but a tool that > >> automates the process of building an embedded Linux system. It is > not > >> very smart, so it cannot remove packages that have been installed, > or > >> revert changes that have been made to the target filesystem. > >> > >> My view on this: Buildroot has been more or less abandonned until > late > >> 2008/early 2009, when Peter took over the maintainership of the > >> project. Since that time, our main goal was to clean up the > existing > >> code base, keeping the existing feature set (in fact, we added a > bunch > >> of features as well, but we didn't fundamentaly changed how > Buildroot > >> works). Now that this cleanup process is mostly over, I'd say that > >> solving the issue you're facing here is now on the top priorities > of > >> the project. At least it's where it is on my own Buildroot TODO > list. > >> But there a fairly huge and complex amount of work to do here, so > it > >> isn't going to happen overnight. > >> > > I think a general discussion of how we use buildroot and what we > would like to > > see is in order. It seems the framework is stabilizing and useful > (thanks guys). > > > > It seems in my use that I am either working on the kernel or > configuring a > > system with packages (rootfs). make clean is unbearable where it > removes the > > toolchain etc. > > I agree, this is the only part of the build that takes any time. It > would be great if there was a way of cleaning back to only the > toolchain > built. I am getting round this at the moment by using an external > crosstools-NG toolchain in most projects, which gives much the same > functionality, just would be easier for a beginner to understand if > buildroot could do this itself. > > Given how we support external toolchains would it not be possible to be > able to clean everything but toolchain (Which I think only gets > produced > if you have an internal toolchain) and then when you build again it > does > the same as for an external toolchain and copies the files into staging > etc? > > > > > So what I do is I git pull one tree just for my toolchain and > compiler. I > > configure and build it without bootstraps, busybox, kernel etc. If I > need to > > change a toolchain option I go back to this tree and fix it. This > build becomes > > my "external toolchain". > > > > I then git pull another tree which uses that external toolchain. Make > clean is > > now much less painful. > > > > During development it is common to want to change stuff in the > "skeleton" > > filesystem - add scripts, configure things etc. This is kind of > painful from > > within the buildroot framework, with no clear way to force an update > to the > > rootfs image etc. So what I do is I create a skeleton directory for > my board. In > > the post build script I copy my skeleton on top of the existing > buildroot > > constructed skeleton. In this way I only have the files I care about > in my board > > skeleton, they are updated every build etc. > > I do something very similar. The default skeleton is fine for most > things, there are just a couple of customisations I want. Recent work > in > this area is already adding config options for some of what I want. A > custom board script can then make any further modifications. > > Would be great to have an example of recommended practice checked in > for > people to see/copy. Also would be great to remove the xtensa bits as > they are just confusing. Perhaps we should convert that over to the new > scheme? > > > Will > > -- > ----------------------------------------------------------------------- > - > Will Wagner > will_wagner at carallon.com > Development Manager Office Tel: +44 (0)20 7371 > 2032 > Carallon Ltd, Studio G20, Shepherds Building, Rockley Rd, London W14 > 0DA > ----------------------------------------------------------------------- > - > > > _______________________________________________ > buildroot mailing list > buildroot at busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Buildroot] Buildroot in use 2011-03-17 13:53 ` Heyendal, Carl @ 2011-03-17 17:17 ` Steve Calfee 2011-03-17 19:42 ` Heyendal, Carl 2011-03-18 16:01 ` Thomas Petazzoni 2011-03-17 20:21 ` Grant Edwards 1 sibling, 2 replies; 28+ messages in thread From: Steve Calfee @ 2011-03-17 17:17 UTC (permalink / raw) To: buildroot On 03/17/11 06:53, Heyendal, Carl wrote: > If starting from scratch, downloading and building 2 Buildroots (one for the toolchain, and the other for the rest of the stuff) sounds reasonable. But refining the notion a bit more, if you have already built the entire Buildroot tree like I have done already, is it possible to break off the toolchain leg of the tree and move it somewhere else. Then of course configure the external toolchain option after that. > > /carl > I believe that the gcc that you have built has a few built-in paths, so you cannot just move the compiler stuff to another file tree. What you can do is the second part of my suggestion, just create another buildroot tree and point its external toolchain to the one you now have built. It will leave some garbage in the original tree, but disk space is pretty cheap. In the new tree you will have faster make clean; make.... cycles since the external toolchain will not be deleted. Regards, Steve ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Buildroot] Buildroot in use 2011-03-17 17:17 ` Steve Calfee @ 2011-03-17 19:42 ` Heyendal, Carl 2011-03-17 21:50 ` Steve Calfee 2011-03-18 16:02 ` Thomas Petazzoni 2011-03-18 16:01 ` Thomas Petazzoni 1 sibling, 2 replies; 28+ messages in thread From: Heyendal, Carl @ 2011-03-17 19:42 UTC (permalink / raw) To: buildroot Makes sense. Another thing I have noticed that is frustrating is that a 'make clean' acts more like 'make distclean' and therefore you lose any configuration changes you have previously made. As a work around, can I copy the relevant .configs before the 'make clean' and add them back once the rebuild is complete (assumed that I need to delete the .stamp_compiled files as well)? /carl h. > -----Original Message----- > From: buildroot-bounces at busybox.net [mailto:buildroot- > bounces at busybox.net] On Behalf Of Steve Calfee > Sent: March 17, 2011 1:17 PM > To: buildroot at busybox.net > Subject: Re: [Buildroot] Buildroot in use > > On 03/17/11 06:53, Heyendal, Carl wrote: > > If starting from scratch, downloading and building 2 Buildroots (one > for the toolchain, and the other for the rest of the stuff) sounds > reasonable. But refining the notion a bit more, if you have already > built the entire Buildroot tree like I have done already, is it > possible to break off the toolchain leg of the tree and move it > somewhere else. Then of course configure the external toolchain option > after that. > > > > /carl > > > > I believe that the gcc that you have built has a few built-in paths, so > you cannot just move the compiler stuff to another file tree. > > What you can do is the second part of my suggestion, just create > another > buildroot tree and point its external toolchain to the one you now have > built. It will leave some garbage in the original tree, but disk space > is pretty cheap. In the new tree you will have faster make clean; > make.... cycles since the external toolchain will not be deleted. > > Regards, Steve > > _______________________________________________ > buildroot mailing list > buildroot at busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Buildroot] Buildroot in use 2011-03-17 19:42 ` Heyendal, Carl @ 2011-03-17 21:50 ` Steve Calfee 2011-03-18 16:03 ` Thomas Petazzoni 2011-03-18 16:02 ` Thomas Petazzoni 1 sibling, 1 reply; 28+ messages in thread From: Steve Calfee @ 2011-03-17 21:50 UTC (permalink / raw) To: buildroot On 03/17/11 12:42, Heyendal, Carl wrote: > Makes sense. > > Another thing I have noticed that is frustrating is that a 'make clean' acts more like 'make distclean' and therefore you lose any configuration changes you have previously made. > > As a work around, can I copy the relevant .configs before the 'make clean' and add them back once the rebuild is complete (assumed that I need to delete the .stamp_compiled files as well)? > > /carl h. > Hi Carl, Please don't top post and trim stuff after your message. Yes, "make clean" destroys buildroot's .config. I have a "bsp" type directory with stuff specifically for the project I am working on. I do a sym-link from configs/beagleboard_defconfig to my bsp config. Then after a make clean I do a "make beagleboard_defconfig" to copy in my saved configuration. I also put the linux and u-boot and whatever configs in my bsp and point to the appropriate config in the buildroot .config. Dont forget to update your bsp config whenever you change buildroot with a make menuconfig. Regards, Steve ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Buildroot] Buildroot in use 2011-03-17 21:50 ` Steve Calfee @ 2011-03-18 16:03 ` Thomas Petazzoni 0 siblings, 0 replies; 28+ messages in thread From: Thomas Petazzoni @ 2011-03-18 16:03 UTC (permalink / raw) To: buildroot On Thu, 17 Mar 2011 14:50:03 -0700 Steve Calfee <stevecalfee@gmail.com> wrote: > Yes, "make clean" destroys buildroot's .config. No, it doesn't. Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Buildroot] Buildroot in use 2011-03-17 19:42 ` Heyendal, Carl 2011-03-17 21:50 ` Steve Calfee @ 2011-03-18 16:02 ` Thomas Petazzoni 1 sibling, 0 replies; 28+ messages in thread From: Thomas Petazzoni @ 2011-03-18 16:02 UTC (permalink / raw) To: buildroot Hello, On Thu, 17 Mar 2011 15:42:58 -0400 "Heyendal, Carl" <CHeyendal@stanleyworks.com> wrote: > Another thing I have noticed that is frustrating is that a 'make > clean' acts more like 'make distclean' and therefore you lose any > configuration changes you have previously made. Not really correct: "make clean" keeps the Buildroot configuration. But it's true it removes the kernel, Busybox and uClibc configuration files from their respective build directories. There has been some proposal to add some sort of "saveconfigs" target, but the semantic wasn't that all clear. Regards, Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Buildroot] Buildroot in use 2011-03-17 17:17 ` Steve Calfee 2011-03-17 19:42 ` Heyendal, Carl @ 2011-03-18 16:01 ` Thomas Petazzoni 1 sibling, 0 replies; 28+ messages in thread From: Thomas Petazzoni @ 2011-03-18 16:01 UTC (permalink / raw) To: buildroot On Thu, 17 Mar 2011 10:17:16 -0700 Steve Calfee <stevecalfee@gmail.com> wrote: > I believe that the gcc that you have built has a few built-in paths, > so you cannot just move the compiler stuff to another file tree. As long as the sysroot remains at the same relative location compared to the compiler, you're fine with a toolchain based on gcc 4.x : you can move it around if you wish. If think Yann E. Morin could give a few more details here. Regards, Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Buildroot] Buildroot in use 2011-03-17 13:53 ` Heyendal, Carl 2011-03-17 17:17 ` Steve Calfee @ 2011-03-17 20:21 ` Grant Edwards 1 sibling, 0 replies; 28+ messages in thread From: Grant Edwards @ 2011-03-17 20:21 UTC (permalink / raw) To: buildroot On 2011-03-17, Heyendal, Carl <CHeyendal@stanleyworks.com> wrote: > If starting from scratch, downloading and building 2 Buildroots (one > for the toolchain, and the other for the rest of the stuff) sounds > reasonable. But refining the notion a bit more, if you have already > built the entire Buildroot tree like I have done already, is it > possible to break off the toolchain leg of the tree and move it > somewhere else. Then of course configure the external toolchain > option after that. I used to try to do that with a complicated shell script that had one option to use buildroot to build the toolchain, move it somewhere else and fix it up. Another option would use buildroot to build the kernel and a third would build the rootfs using that external toolchain. After fighting with that for a month or two, I finally gave up. Now I use crosstool-ng to build the external toolchain; I build the kernel separately; and I use buildroot to build only the rootfs. It takes a little extra time to set up the three seperate build scripts, but those three scripts are dead-simple and way easier to maintain and use. -- Grant Edwards grant.b.edwards Yow! I know things about at TROY DONAHUE that can't gmail.com even be PRINTED!! ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Buildroot] Xtensa support 2011-03-17 12:14 ` William Wagner 2011-03-17 13:53 ` Heyendal, Carl @ 2011-03-18 15:59 ` Thomas Petazzoni 2011-03-21 21:18 ` Piet Delaney 1 sibling, 1 reply; 28+ messages in thread From: Thomas Petazzoni @ 2011-03-18 15:59 UTC (permalink / raw) To: buildroot Hello, On Thu, 17 Mar 2011 12:14:54 +0000 William Wagner <will_wagner@carallon.com> wrote: > Would be great to have an example of recommended practice checked in > for people to see/copy. Yeah, I could document how I build the latest system I've done. > Also would be great to remove the xtensa bits as they are just > confusing. Perhaps we should convert that over to the new scheme? Well, the Xtensa bits are a bit complicated, because Xtensa supports configurable CPU cores, so they have some strange Perl scripts that are needed when building the toolchain. But this Xtensa support has never been updated since it has been merged quite some time ago, and no active contributor has any Xtensa hardware platform to test the changes on, so maybe we could drop the support for Xtensa altogether. Regards, Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Buildroot] Xtensa support 2011-03-18 15:59 ` [Buildroot] Xtensa support Thomas Petazzoni @ 2011-03-21 21:18 ` Piet Delaney 2011-09-20 18:35 ` Thomas Petazzoni 0 siblings, 1 reply; 28+ messages in thread From: Piet Delaney @ 2011-03-21 21:18 UTC (permalink / raw) To: buildroot Thomas Petazzoni wrote: > Hello, > > On Thu, 17 Mar 2011 12:14:54 +0000 > William Wagner <will_wagner@carallon.com> wrote: > >> Would be great to have an example of recommended practice checked in >> for people to see/copy. > > Yeah, I could document how I build the latest system I've done. > >> Also would be great to remove the xtensa bits as they are just >> confusing. Perhaps we should convert that over to the new scheme? > > Well, the Xtensa bits are a bit complicated, because Xtensa supports > configurable CPU cores, so they have some strange Perl scripts that are > needed when building the toolchain. But this Xtensa support has never > been updated since it has been merged quite some time ago, and no > active contributor has any Xtensa hardware platform to test the changes > on, so maybe we could drop the support for Xtensa altogether. Hi Thomas: We appeared to have had some git import problems during our last merge and I had to revert back to an older snapshot until we re-syncing with the central git repo again. I've been maintain bug fixes for binutils and gcc there until we have a chance to try a new merge. http://git.linux-xtensa.org/cgi-bin/git.cgi?p=buildroot/buildroot-xtensa-HiFi2-Snapshot.git;a=shortlog;h=snapshot_2%2BSMP While maintaining our 2nd buildroot snapshot I kept wiki notes on issues I was having with buildroot: http://wiki.linux-xtensa.org/index.php/HiFi-2_snapshot_2_SMP_Snapshot_menuconfig http://wiki.linux-xtensa.org/index.php/HiFi-2_snapshot_2_SMP_uclibc-menuconfig as part of a support blog for building a kernel and root file system that supported target development of Codec's for our Audio cores. http://wiki.linux-xtensa.org/index.php/SMP_HiFi_2_Development_Board I tried to get our last buildroot merge to work but had bizarre problems when trying to get the new X code and the development environment building together. We use the Buildroot development environment (compiler, debugger, ...) to sort out kernel bugs. Chris Zankel, Marc Gauthier, and I have recently been discussing cleaning up some the the Xtensa eccentricity's needed for extensibility. We have quite a few buildroot git tress and branches and we would also love to get back in sync with the buildroot central repository. We have a similar story with the kernel git repo, we are horribly behind in getting in sync with kernel.org. Christian Zankel recently proposed a few changes in the 'xtensa' branch: http://git.linux-xtensa.org/cgi-bin/git.cgi?p=buildroot/buildroot-next.git;a=shortlog;h=xtensa to address the 'strange' stuff being done to support extensibility. I've been working about 60 hours a week on a new kernel feature and it's finally working great on our FPGA board. I expect to have more cycles available in the not to distant future to look more closely at Christian's change and try merging and/or cherry picking patches from our other git repos to establish a Buildroot with a working development environment that's in sync with the current buildroot source code. Perhaps in the next week or two I can start to put some time into getting our buildroot up-to-date. We would like to upgrade our Pthreads implementation to support NPT and take advantage of the TLS work that Bob Wilson did here a couple years ago. The current signal based approach is bit crazy and likely killing performance for our customers heavily using pthreads. In the mean time perhaps you could provide some guidance on how you would like us to clean up the approach we are taking. I would appreciate it greatly, while we sort out the problems bringing up a complete set of packages necessary for development, if the community could provide their two cents on issues that come up when we discuss them. Marc, Christian, and I agreed a few weeks ago to upgrade buildroot in a git repo at linux-xtensa.org. We will be adjusting it with our Xtensa tools and testing it in local a local git repo as a staging ground for submission upstream. Reading over this thread it wasn't clear how Xtensa came up. I also didn't know what Steve was referring to when he ask Carl not to 'top post'; hope I'm not doing that now. Hopefully we can minimize the problems with the 'strange' perl scripts by documenting it well and keeping it as simple as possible. Any suggestions you have would be greatly appreciated. In summary, we are just getting back to getting buildroot up-to-date and would appropriate your support when trying to pull this off. Sorry for the last posting, our IT department changed my outgoing email addresses and messed up my mailman access. -piet > > Regards, > > Thomas ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Buildroot] Xtensa support 2011-03-21 21:18 ` Piet Delaney @ 2011-09-20 18:35 ` Thomas Petazzoni 2011-09-21 4:01 ` Marc Gauthier 0 siblings, 1 reply; 28+ messages in thread From: Thomas Petazzoni @ 2011-09-20 18:35 UTC (permalink / raw) To: buildroot Hello Piet, Le Mon, 21 Mar 2011 14:18:45 -0700, Piet Delaney <pdelaney@tensilica.com> a ?crit : > In summary, we are just getting back to getting buildroot up-to-date > and would appropriate your support when trying to pull this off. Do you have any news about the Xtensa support in Buildroot ? Are you still interested in having this support in the mainline Buildroot ? I am remain concerned by the fact that we carry some special stuff to support Xtensa, but he Xtensa architecture support has never been updated since it was merged in Buildroot. Of course, it is our goal to support configurable architectures such as Xtensa, but the support for those architectures needs to be actively maintained in Buildroot upstream. Unfortunately, none of the main Buildroot developers have Xtensa-capable hardware, so it's a bit hard to contribute to this effort. Best regards, Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Buildroot] Xtensa support 2011-09-20 18:35 ` Thomas Petazzoni @ 2011-09-21 4:01 ` Marc Gauthier 2011-09-21 6:52 ` Thomas Petazzoni 0 siblings, 1 reply; 28+ messages in thread From: Marc Gauthier @ 2011-09-21 4:01 UTC (permalink / raw) To: buildroot Hi Thomas, Thomas Petazzoni wrote: > Hello Piet, > > Le Mon, 21 Mar 2011 14:18:45 -0700, > Piet Delaney <pdelaney@tensilica.com> a ?crit : > >> In summary, we are just getting back to getting buildroot up-to-date >> and would appropriate your support when trying to pull this off. > > Do you have any news about the Xtensa support in Buildroot ? Are you > still interested in having this support in the mainline Buildroot ? We're certainly still interested. And have been maintaining buildroot in our own trees. However, we're temporarily short on people in that area at the moment, so although we and our customers have been more active lately on buildroot for Xtensa, submitting patches back has been embarassingly slow. (Btw, if you have expertise and interest in toolchains or OS, we have openings in California ;-) If you're curious, some of it is here, but far from cleaned up!!: http://git.linux-xtensa.org/cgi-bin/git.cgi?p=buildroot/buildroot-new.git;a=shortlog;h=Xtensa-Patches and an earlier version in buildroot-next. > I am remain concerned by the fact that we carry some special stuff to > support Xtensa, but he Xtensa architecture support has never been > updated since it was merged in Buildroot. Of course, it is our goal to > support configurable architectures such as Xtensa, but the support for > those architectures needs to be actively maintained in Buildroot > upstream. Yes. For example, some of the xtensa files under /target/ need to be moved and/or refactored. And a defconfig added in /configs/. (Hopefully you now take pull requests? easier than patches) > Unfortunately, none of the main Buildroot developers have > Xtensa-capable hardware, so it's a bit hard to contribute to this > effort. Do I hear volunteers? :-) We've discussed sending out boards in the past, but that turned out to be a bit more sideline effort than hoped. Looks like an easier approach is to use an instruction set simulator. It can boot Linux, so should be fine. If you're interested I'll be very happy to share the details. Helping hands are most appreciated. Merci! -Marc > Best regards, > > Thomas ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Buildroot] Xtensa support 2011-09-21 4:01 ` Marc Gauthier @ 2011-09-21 6:52 ` Thomas Petazzoni 2011-09-21 8:08 ` Piet Delaney 0 siblings, 1 reply; 28+ messages in thread From: Thomas Petazzoni @ 2011-09-21 6:52 UTC (permalink / raw) To: buildroot Hello Marc, Le Tue, 20 Sep 2011 21:01:35 -0700, Marc Gauthier <marc@tensilica.com> a ?crit : > If you're curious, some of it is here, but far from cleaned up!!: > > http://git.linux-xtensa.org/cgi-bin/git.cgi?p=buildroot/buildroot-new.git;a=shortlog;h=Xtensa-Patches Sounds like most of those patches are patches against uClibc, binutils or gdb. It'd be better to have those patches merged in their respective upstreams rather than integrating those patches into Buildroot. > > I am remain concerned by the fact that we carry some special stuff > > to support Xtensa, but he Xtensa architecture support has never been > > updated since it was merged in Buildroot. Of course, it is our goal > > to support configurable architectures such as Xtensa, but the > > support for those architectures needs to be actively maintained in > > Buildroot upstream. > > Yes. For example, some of the xtensa files under /target/ need to be > moved and/or refactored. And a defconfig added in /configs/. > (Hopefully you now take pull requests? easier than patches) We do take pull requests, but we like when patches are posted on the mailing list as well. This is easy to do with a combination of git pull-request + git send-email. I can share my little script to do that if you're interested. > > Unfortunately, none of the main Buildroot developers have > > Xtensa-capable hardware, so it's a bit hard to contribute to this > > effort. > > Do I hear volunteers? :-) We've discussed sending out boards in the > past, but that turned out to be a bit more sideline effort than hoped. > Looks like an easier approach is to use an instruction set simulator. > It can boot Linux, so should be fine. If you're interested I'll be > very happy to share the details. Helping hands are most appreciated. Having a working emulator setup would definitely be nice. However, to get volunteers working on something freely, one needs to put some incentive on the table. And usually, in the embedded space, this incentive is a nice hardware platform, that the open-source developer is so happy to receive that he will be interested in contributing. The charm of having a real hardware platform is a lot higher than the charm of the emulator, as is the incentive to contribute things :-) Of course, regardless of whether boards are made available or not, we will gladly take patches, review them, comment them, and help you merging as much as possible of the Xtensa support into the mainline Buildroot. Regards, Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Buildroot] Xtensa support 2011-09-21 6:52 ` Thomas Petazzoni @ 2011-09-21 8:08 ` Piet Delaney 0 siblings, 0 replies; 28+ messages in thread From: Piet Delaney @ 2011-09-21 8:08 UTC (permalink / raw) To: buildroot Thomas Petazzoni wrote: Hi Thomas: > Hello Marc, > > Le Tue, 20 Sep 2011 21:01:35 -0700, > Marc Gauthier <marc@tensilica.com> a ?crit : > > >> If you're curious, some of it is here, but far from cleaned up!!: >> >> http://git.linux-xtensa.org/cgi-bin/git.cgi?p=buildroot/buildroot-new.git;a=shortlog;h=Xtensa-Patches >> > > Sounds like most of those patches are patches against uClibc, binutils > or gdb. It'd be better to have those patches merged in their respective > upstreams rather than integrating those patches into Buildroot. > > >>> I am remain concerned by the fact that we carry some special stuff >>> to support Xtensa, but he Xtensa architecture support has never been >>> updated since it was merged in Buildroot. Of course, it is our goal >>> to support configurable architectures such as Xtensa, but the >>> support for those architectures needs to be actively maintained in >>> Buildroot upstream. >>> >> Yes. For example, some of the xtensa files under /target/ need to be >> moved and/or refactored. And a defconfig added in /configs/. >> (Hopefully you now take pull requests? easier than patches) >> > > We do take pull requests, but we like when patches are posted on the > mailing list as well. This is easy to do with a combination of git > pull-request + git send-email. I can share my little script to do that > if you're interested. > > >>> Unfortunately, none of the main Buildroot developers have >>> Xtensa-capable hardware, so it's a bit hard to contribute to this >>> effort. >>> >> Do I hear volunteers? :-) We've discussed sending out boards in the >> past, but that turned out to be a bit more sideline effort than hoped. >> Looks like an easier approach is to use an instruction set simulator. >> It can boot Linux, so should be fine. If you're interested I'll be >> very happy to share the details. Helping hands are most appreciated. >> > > Having a working emulator setup would definitely be nice. However, to > get volunteers working on something freely, one needs to put some > incentive on the table. And usually, in the embedded space, this > incentive is a nice hardware platform, that the open-source developer > is so happy to receive that he will be interested in contributing. The > charm of having a real hardware platform is a lot higher than the charm > of the emulator, as is the incentive to contribute things :-) > *I also thought having access to "a nice hardware platform' was helpful for open Buildroot development. My thoughts were that you would be best off with a ML605 that we are currently preparing. They cost about $2,000.00 and can be configured "concurrently" with multiple VARIANTS. A small set of bit streams for various VARIANT can be stored in the 2GB Flash. We have designed an add on daughter card that has a JTAG connector as well as a high speed FT2232H and support in our Xtensa Tools environment in the next release. * * http://www.xilinx.com/products/boards/ml605/reference_designs.htm This board has an FPGA which I believe is a bit larger that our older LX200 board which supports up to three cores running SMP linux. There boards cost $8,000 and are is very short supply. I'll send you a jpeg of the ML605 at my desk which I've just set up for FT2232 JTAG development. I'm getting download speeds of 17MBytes/sec and hope to be at 40Mbytes/sec shortly. I suspect unlike our linux-xtensa.org mailing list that the buildroot mailer will reject attachments. * *We also have some older development boards that aren't as sexy but might be of interest. The oldest is a XT2000 which we are discarding but my last attempt at installing a bit stream on wasn't successful. We also have LX60 and LX110 boards that are a bit cheaper than the ML605. My preference is to beef up the ML605 to support 1Gb of memory for customer Linux development and it also makes it an attractive board for Open Source development. * > Of course, regardless of whether boards are made available or not, we > will gladly take patches, review them, comment them, and help you > merging as much as possible of the Xtensa support into the mainline > Buildroot. > * We are having gdb problems that we are currently trying to sort out; particularly with pthreads. I currently suspect changes introduce between binutils-2.20 and binutils-2.21. I'll make a uClibc git repo available on linux-xtensa.org with details on what's being done on that front. We need to fix an unresolved symbol that has surfaced recently and perhaps a bit more. I've recently updated the strace patch but haven't tried it. Your current Buildroot uses a new strace release and needed heavy patching. Once I've got it tested I'll try to get the changes upstream to the strace maintainers and interim patches to your buildroot git repo. The newer buildroot environment isn't as good for debugging with gdb yet and is a bit less stable. It's a bit rough and needs work. However it's much better that our snapshot from two years ago, that the C development environment is now compatible with X11 and large software packages like DDD are easily built for the target. We need to resolve if the current VARIANT patching mechanism is acceptable for the Buildroot community. It's still in place in the uClibc and gdb sub-systems but was removed from the binutils subsystem when it was moved from the toolchain to package directories. It seems fine to me, do you have any objection to our updating the binutils package makefiles to support Variant patching like we currently to for uClibc and gdb? I suppose I should keep this relatively short and stop here. I'll send you the jpeg of the ML605 I'm working on at my desk. I'll Cc the buildroot mailing list but don't expect it to get through. If any developers are interested in a copy write to me or Thomas for a copy. -piet * > Regards, > > Thomas > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20110921/ed6f5c2c/attachment-0001.html> ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Buildroot] Buildroot in use 2011-03-16 16:44 ` [Buildroot] Buildroot in use Steve Calfee 2011-03-16 20:08 ` Heyendal, Carl 2011-03-17 12:14 ` William Wagner @ 2011-03-27 19:19 ` Michael J. Hammel 2011-03-27 23:58 ` Steve Calfee 2 siblings, 1 reply; 28+ messages in thread From: Michael J. Hammel @ 2011-03-27 19:19 UTC (permalink / raw) To: buildroot On Wed, 2011-03-16 at 09:44 -0700, Steve Calfee wrote: > I think a general discussion of how we use buildroot and what we would like to > see is in order. It seems the framework is stabilizing and useful (thanks guys). This thread got me thinking about how and why I created BeagleBox, which is a metabuild that wraps other metabuilds like Buildroot and Crosstool-NG. The structure is based on experience from a number of previous projects I did at work and heavily on what I learned trying to track down the bits and pieces that work for BeagleBoard. So I thought it might be of some value to write up a paper on the how's and why's of it all for metabuilds. I've placed the paper online for critique. http://www.graphics-muse.org/wiki/pmwiki.php?n=Papers.MetabuildsForEmbeddedDevelopment I'm open to updates, clarifications, omissions, extensions, etc. I expect some to disagree with my analysis and welcome corrections. I'd like this to be useful for those new to the field. I'm also open to moving this to a more useful site such as elinux.org or Buildroot's web site if anyone thinks it would be appropriate. Some of it is very basic if you've been doing this for very long. The interesting stuff for the more experienced is in "The Build Workflow" section and below. -- Michael J. Hammel <buildroot@graphics-muse.org> ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Buildroot] Buildroot in use 2011-03-27 19:19 ` [Buildroot] Buildroot in use Michael J. Hammel @ 2011-03-27 23:58 ` Steve Calfee 2011-03-31 17:13 ` Steve Calfee 0 siblings, 1 reply; 28+ messages in thread From: Steve Calfee @ 2011-03-27 23:58 UTC (permalink / raw) To: buildroot On 03/27/11 12:19, Michael J. Hammel wrote: > On Wed, 2011-03-16 at 09:44 -0700, Steve Calfee wrote: >> I think a general discussion of how we use buildroot and what we would like to >> see is in order. It seems the framework is stabilizing and useful (thanks guys). > > This thread got me thinking about how and why I created BeagleBox, which > is a metabuild that wraps other metabuilds like Buildroot and > Crosstool-NG. The structure is based on experience from a number of > previous projects I did at work and heavily on what I learned trying to > track down the bits and pieces that work for BeagleBoard. > > So I thought it might be of some value to write up a paper on the how's > and why's of it all for metabuilds. I've placed the paper online for > critique. > > http://www.graphics-muse.org/wiki/pmwiki.php?n=Papers.MetabuildsForEmbeddedDevelopment > Interesting and well formatted document. I do kernel driver work and find using small, but powerful platforms very convenient. Buildroot has evolved to the point where it is "good enough". I have seen (and appreciate) all the pain people have gone through to get the make system working and easily extended. I personally don't like the concept of a one-button build scheme for actual development. Magic stuff hidden in python scripts just slows understanding. However it is very desirable to have a stable platform where known things work and I can start customizing from there. I did a modification for the Dockstar hardware BSP someone else submitted and did a half-hearted submittal to the buildroot maintainers. I have switched to gmail so I can more easily submit using git-send-mail. Someday I will get back to the Dockstar and try again. I am working on a beagleboardxm right now, and I finally have a decent environment for kernel hacking. I will eventually package that up and submit it too. Currently, there are a few sample _defconfigs for actual hardware. They are understandably very bare configurations that demonstrate building a minimal system. This is good and I wish there were more platforms. However, most platforms like the Dockstar and beagleboardxm have H/W quirks that really require customization and patches to even begin reliably/efficiently using them. BBXM has H/W that has really out-run the u-boot capabilities - it is getting very bloated supporting things like usb, but it needs more, for usbnet support and using mmc instead of nand for stuff like saveenv. Then the BBXM has what seems to be a recent kernel wide problem where kexec is broken. So supporting fast nfs and kernel updates is possible, but tricky. I would like to ask Peter and Thomas what they think of changing the way board support packages are handled. I think that buildroot also needs to support more complete BSP packages which have common desires (booting for USB or booting from NFS) available as options. But this is not great for buildroot because it adds more downloads in a default git pull, it adds bit-rotting code for BSPs, and puts a bigger burden on the core buildroot maintainers. What I propose is that BSPs be added just like any other package. A few changes to the buildroot config would allow linking in the new_defconfig for selected packages. The current buildroot config supports selecting toolchain, kernel, u-boot, busybox etc, configs, locations of patches for each, location of external placement of each, etc. As well as handy skeleton updates or additions. It would be nice if there was a way to add some BSP configuration options - I think the config.in was removed when the bsps were moved from target/device/* to board/manu/*. Handling BSPs as packages would enable someone like me to have a github git tree for a bsp, or put in the buildroot download a tar file which can be selected, etc just like any other package. This way when a developer pulls a new version of buildroot he is not also pulling in lots of uninteresting (and possibly quite large) BSPs. But he can select one that is very close to what he wants to use and get a more functional initial package. Since a complete set of configurations would be part of the package, bit rot could be slowed. The package would select the latest version of each major component that it was tested and built against. In the future if someone wants to use an unsupported package, he may be able to build it with old configurations and have a stable platform to bring the BSP up to date. Regards, Steve ^ permalink raw reply [flat|nested] 28+ messages in thread
* [Buildroot] Buildroot in use 2011-03-27 23:58 ` Steve Calfee @ 2011-03-31 17:13 ` Steve Calfee 0 siblings, 0 replies; 28+ messages in thread From: Steve Calfee @ 2011-03-31 17:13 UTC (permalink / raw) To: buildroot Hi Thomas and Peter, I would like to know if you will accept a patch to implement the following. On 03/27/11 16:58, Steve Calfee wrote: > > I would like to ask Peter and Thomas what they think of changing the way > board support packages are handled. I think that buildroot also needs to > support more complete BSP packages which have common desires (booting > for USB or booting from NFS) available as options. But this is not great > for buildroot because it adds more downloads in a default git pull, it > adds bit-rotting code for BSPs, and puts a bigger burden on the core > buildroot maintainers. > > What I propose is that BSPs be added just like any other package. A few > changes to the buildroot config would allow linking in the new_defconfig > for selected packages. The current buildroot config supports selecting > toolchain, kernel, u-boot, busybox etc, configs, locations of patches > for each, location of external placement of each, etc. As well as handy > skeleton updates or additions. It would be nice if there was a way to > add some BSP configuration options - I think the config.in was removed > when the bsps were moved from target/device/* to board/manu/*. > > Handling BSPs as packages would enable someone like me to have a github > git tree for a bsp, or put in the buildroot download a tar file which > can be selected, etc just like any other package. This way when a > developer pulls a new version of buildroot he is not also pulling in > lots of uninteresting (and possibly quite large) BSPs. But he can select > one that is very close to what he wants to use and get a more functional > initial package. > > Since a complete set of configurations would be part of the package, bit > rot could be slowed. The package would select the latest version of each > major component that it was tested and built against. In the future if > someone wants to use an unsupported package, he may be able to build it > with old configurations and have a stable platform to bring the BSP up > to date. > Regards, Steve ^ permalink raw reply [flat|nested] 28+ messages in thread
end of thread, other threads:[~2011-09-21 8:08 UTC | newest] Thread overview: 28+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-03-15 16:37 [Buildroot] inittab for Busybox Heyendal, Carl 2011-03-15 17:07 ` Thomas Petazzoni 2011-03-15 17:28 ` Charles Krinke 2011-03-15 18:14 ` Heyendal, Carl 2011-03-15 18:22 ` Thomas Petazzoni 2011-03-15 18:32 ` Heyendal, Carl 2011-03-15 20:05 ` Thomas Petazzoni 2011-03-15 20:10 ` Heyendal, Carl 2011-03-16 16:44 ` [Buildroot] Buildroot in use Steve Calfee 2011-03-16 20:08 ` Heyendal, Carl 2011-03-17 12:14 ` William Wagner 2011-03-17 13:53 ` Heyendal, Carl 2011-03-17 17:17 ` Steve Calfee 2011-03-17 19:42 ` Heyendal, Carl 2011-03-17 21:50 ` Steve Calfee 2011-03-18 16:03 ` Thomas Petazzoni 2011-03-18 16:02 ` Thomas Petazzoni 2011-03-18 16:01 ` Thomas Petazzoni 2011-03-17 20:21 ` Grant Edwards 2011-03-18 15:59 ` [Buildroot] Xtensa support Thomas Petazzoni 2011-03-21 21:18 ` Piet Delaney 2011-09-20 18:35 ` Thomas Petazzoni 2011-09-21 4:01 ` Marc Gauthier 2011-09-21 6:52 ` Thomas Petazzoni 2011-09-21 8:08 ` Piet Delaney 2011-03-27 19:19 ` [Buildroot] Buildroot in use Michael J. Hammel 2011-03-27 23:58 ` Steve Calfee 2011-03-31 17:13 ` Steve Calfee
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox