View previous topic :: View next topic |
Author |
Message |
tenspd137 Guru
Joined: 22 Aug 2006 Posts: 391
|
Posted: Mon Jan 28, 2013 11:59 pm Post subject: Raspberry Pi installation |
|
|
Hi all,
Not sure if this goes here or in "Other things Gentoo", so please feel free to move it. Anyway, I received my Pi a while ago and have just gotten around to trying to use it. What I wanted to do, since I heard compiling on the RPi was really slow, was create an image file on my desktop and use crossdev to compile all the packages I want and then dump the image to a SD card. So far, I have figured out how to create a file, make partitions in the file representing /boot and /, and format them. Also, setting up the cross compiler isn't a problem. What I can't seem to figure out how to do is the actual cross compiling. If I use armv6j-hardfloat-gnueabi-emerge, it will install everything to /usr/armv6j-hardfloat-gnueabi/..., but my runtime root is mounted from my image file. If I mount the partitions and use the --root=/my/mounted/image/file (a loop device mounted to a temp directory in my home directory) it seems to build the binary I request, but then all the dependencies are not installed, which would make it unusable on the Pi.
Any tips or suggestions to help clear this up for me. thanks!
Last edited by tenspd137 on Tue Jan 29, 2013 6:00 pm; edited 2 times in total |
|
Back to top |
|
|
chithanh Developer
Joined: 05 Aug 2006 Posts: 2158 Location: Berlin, Germany
|
Posted: Tue Jan 29, 2013 4:01 pm Post subject: |
|
|
The first and easiest option is to use cross-compiling distcc which will help somewhat but the link phase still happens on the Pi. Especially for the 256 MB model, linking can take very long if you hit swap. There is a linker switch to reduce memory usage though.
Another option is to mount the Pi's root directory on a fast computer (via NFS or so) and compile in qemu-user chroot. This is less efficient but should work for all packages. Be sure to have PORTAGE_TMPDIR mounted locally.
The final option where all building happens on a fast machine would be to cross-emerge binpkgs and setup PORTAGE_BINHOST on the Pi, but not all packages cross-compile correctly. Setting ROOT to the remotely mounted Pi's / directory for the cross-emerge (what you did) will achieve something similar.
All methods are described in the embedded handbook: http://www.gentoo.org/proj/en/base/embedded/handbook/ |
|
Back to top |
|
|
tenspd137 Guru
Joined: 22 Aug 2006 Posts: 391
|
Posted: Tue Jan 29, 2013 4:17 pm Post subject: |
|
|
Ahh - thanks - I'll reread the embedded handbook more closely - I think option 3 was the sort of thing I was looking for. It didn't occur to me to make binpkgs and then just install them over the network. I'll also experiment some more with setting ROOT - maybe I missed something.
Thanks! |
|
Back to top |
|
|
tenspd137 Guru
Joined: 22 Aug 2006 Posts: 391
|
Posted: Tue Jan 29, 2013 6:03 pm Post subject: |
|
|
Another question - after using the emerge-wrapper --init command and trying to emerge something, I get an error about the make.profile. For example:
Code: |
armv6j-hardfloat-linux-gnueabi-emerge -p --root=/mnt/PIROOT nano
|
gives
Code: |
!!! /usr/armv6j-hardfloat-linux-gnueabi/etc/make.profile is not a symlink and will probably prevent most merges.
!!! It should point into a profile within /usr/portage/profiles/
!!! (You can safely ignore this message when syncing. It's harmless.)
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild R ] app-editors/nano-2.3.1-r2 to /mnt/PIROOT/ USE="minimal* -ncurses* -nls* -unicode*"
* IMPORTANT: 6 news items need reading for repository 'gentoo'.
* Use eselect news to read news items.
|
even though the link is present:
Code: |
ls -l /usr/armv6j-hardfloat-linux-gnueabi/etc/make.profile
lrwxrwxrwx 1 root root 30 Nov 15 11:49 /usr/armv6j-hardfloat-linux-gnueabi/etc/make.profile -> /usr/portage/profiles/embedded
|
Otherwise, It looks like it wants to install a minimal version of nano to /mnt/PIROOT, which is where I have the Pi's directories mounted.
Should I just ignore this?
Thanks! |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|