Jump to content
Forums in Read-Only Mode - Please use Reddit ×
  • 0

Installing Funtoo on the BeagleBone Black


kindofblue

Question

Has anyone been able to run Funtoo on the BeagleBone Black? I remember finding documentation before on how to do this but I can't find it anymore. There is a document for Gentoo though (http://dev.gentoo.org/~armin76/arm/beagleboneblack/install.xml) which should apply pretty much as is for Funtoo. It is a bit outdated, but it's not too hard to see what has changed.

 

I have one question related to building the kernel. After cloning the kernel repository at http://github.com/beagleboard/linux.git, I cannot find a .config file for the kernel. The Gentoo documentation mentions a file configs/beaglebone that should be copied to .config, but I see no such file. Would somenone know if there is default .config file that can be used?

 

Thanks in advance.

Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

I don't have a beaglebone black, but this doc should cover your questions: http://www.funtoo.org/Funtoo_Linux_Installation_on_ARM

Regarding the kernel config, you might consider seeing how archarmlinux does theirs, I've stopped bothering compiling my arm kernels and just grab theirs, it actually works better for my device than the ones I do  :wacko: .

https://github.com/archlinuxarm/PKGBUILDs/tree/master/core

I don't see the beaglebone there, but I know they support it, maybe some other Cortex-A8?  I know one of the devs has one, have seen him talk about it on IRC.

I also don't see a Funtoo stage3 seed for your device so you may have the opportunity to learn about making one with Metro and posting it for those that follow you.   B)

I hope I have helped you with all these I dunno's.

Link to comment
Share on other sites

  • 0

Thanks for the replies. I'm hitting a snag before I can start building the kernel: the cross-compiler won't build. Looking at the log of the build, it's a file collision conflict between the existing gcc and the new one built for ARM.

 

Any suggestion for a workaround?

>>> Installing (1 of 1) cross-armv7a-hardfloat-linux-gnueabi/gcc-4.8.2-r2
 * This package will overwrite one or more files that may belong to other
 * packages (see list below). You can use a command such as `portageq
 * owners / <filename>` to identify the installed package that owns a
 * file. If portageq reports that only one package owns a file then do
 * NOT file a bug report. A bug report is only useful if it identifies at
 * least two or more packages that are known to install the same file(s).
 * If a collision occurs and you can not explain where the file came from
 * then you should simply ignore the collision since there is not enough
 * information to determine if a real problem exists. Please do NOT file
 * a bug report at http://bugs.gentoo.org unless you report exactly which
 * two packages install the same file(s). Once again, please do NOT file
 * a bug report unless you have completely understood the above message.
 * 
 * Detected file collision(s):
 * 
 *      /etc/env.d/gcc/x86_64-pc-linux-gnu-4.8.2
 *      /usr/share/gcc-data/x86_64-pc-linux-gnu/4.8.2/c89
 *      /usr/share/gcc-data/x86_64-pc-linux-gnu/4.8.2/c99

...

 * Searching all installed packages for file collisions...
 * 
 * Press Ctrl-C to Stop
 * 
 * sys-devel/gcc-4.8.2-r2:4.8::gentoo
 *      /etc/env.d/gcc/x86_64-pc-linux-gnu-4.8.2
 *      /usr/share/gcc-data/x86_64-pc-linux-gnu/4.8.2/c89
 *      /usr/share/gcc-data/x86_64-pc-linux-gnu/4.8.2/c99

...

 * 
 * Package 'cross-armv7a-hardfloat-linux-gnueabi/gcc-4.8.2-r2' NOT merged
 * due to file collisions. If necessary, refer to your elog messages for
 * the whole content of the above message.
Link to comment
Share on other sites

  • 0

I think you missed the  '-t' or '--target' flag,  and that is the part that interprets 'armv7a-hardfloat-linux-gnueabi', and maybe crossdev just was trying to build another compiler for your local target, that's why so many conflicts regarding 'x86_64-pc-linux-gnu', and the strange message 'Package 'cross-armv7a-hardfloat-linux-gnueabi/gcc-4.8.2-r2' NOT merged' Is it even supposed to be a package?

Also I don't know if it would give some kind trouble to use the '-S' flag if you are running 'current', seems a contradiction, is that your case?

 

crossdev is tricky and not really well documented, If that isn't the problem, I can't help you further, I haven't played around with arm stuff that much, and currently I don't have a decent device for that. So I would look for help in irc, from people who uses it every day(Or even its developers)

Link to comment
Share on other sites

  • 0

Sorry for the late posting, but I wanted to correct something for posterity.

The link I gave for archlinuxarm kernels, while correct if you want to build them, is not the best.  You can always get the latest here:

http://os.archlinuxarm.org/arm/core

The rollback machine is handy also for older kernels:

http://rollback.archlinuxarm.org/packages/l/

 

@kindofblue (if you haven't found your answer yet)
1st of all, you cannot choose the same minor version of gcc that you are running on the host machine, you will always get the collision errors.  You have to step down to 4.8.1.  It's close enough for distcc.
Secondly, as per the Funtoo devs, crossdev does not work in Funtoo.  However, it works great for me as long as I use gentoo gcc ebuilds.  You can find them here: http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/?hid

I use them only for cross-compile environments, I only use official Funtoo ebuilds for everything else.

Link to comment
Share on other sites

  • 0

Latest crossdev command line I have used here is this:

crossdev --b 2.23.1 --g 4.8.1-r1 --k 3.13 --l 2.13-r5 -t armv5tel-softfloat-linux-gnueabi -P -v

Binutils and glibc are at that version in the Funtoo tree for my armv5 device, perhaps different for you.

You'll have to change the tuple for your device, probably at the very least you'll need to change the 1st and 2nd portions - yours is a hardfloat I think.

I prefer to add the -P -v so that portage will show me what it's up to, rather than waiting until the very end.  Crossdev isn't very verbose otherwise.

To use the gentoo gcc ebuilds, download one with a different minor version from the link I gave above, try to pick one that isn't in the Funtoo tree.  Then set it up in your local repository (usually /usr/local/portage).   Run the above crossdev command (revised for your device) for a few seconds, then ctl-c, cancel it.  Go to where crossdev has set up the portage links (again, usually /usr/local/portage), look for the cross-arm*-*float-linux-gnueabi directory.  In there it simply links to the normal portage tree ebuilds for binutils, gcc, etc.  Check to make sure the sys-devel/gcc link points to your local gentoo gcc ebuild, if not, delete the link and replace it pointing to the gentoo ebuild in your local repository.  

/usr/local/portage/cross-armv5tel-softfloat-linux-gnueabi $ ls -l
total 0
lrwxrwxrwx 1 root root 47 Jan 29  2014 binutils -> /usr/portage/sys-devel/binutils
lrwxrwxrwx 1 root root 32 Aug 25 16:26 gcc -> /usr/local/portage/sys-devel/gcc
lrwxrwxrwx 1 root root 42 Jan 29  2014 gdb -> /usr/portage/sys-devel/gdb
lrwxrwxrwx 1 root root 43 Jan 29  2014 glibc -> /usr/portage/sys-libs/glibc
lrwxrwxrwx 1 root root 53 Jan 29  2014 linux-headers -> /usr/portage/sys-kernel/linux-headers

Now run the crossdev command again without stopping it this time.  That's it.

Link to comment
Share on other sites

×
×
  • Create New...