OESF | ELSI | pdaXrom | OpenZaurus | Zaurus Themes | Community Links | Ibiblio

IPB

Welcome Guest ( Log In | Register )

2 Pages V   1 2 >  
Reply to this topicStart new topic
> Gentoo On Zaurus, HOWTO in progress
gyver
post Aug 30 2006, 06:36 AM
Post #1





Group: Members
Posts: 16
Joined: 31-July 05
Member No.: 7,749



I'm currently trying to install Gentoo on my Zaurus C3K. The main reason for that if that I want to benefit from the huge Portage software repository.

I've managed to :
- set up a chroot based on the latest uclibc stage3 (on a 384M partition, 200M currently used),
- set up ccache and distcc to compile on my two x86 and x86_64 systems,
- set up a backup/restore system based on rsync to quickly revert a faulty chroot to the last known good version,
- bork the chroot several times :-)

The chroot is accessed through OpenZaurus GPE (in fact the bootstrap is plainly sufficient as I close X to free RAM...). The Zaurus connects to my local Wifi network in order to distribute compile tasks through distcc and download source packages on the local HD.

Currently I'm battling with gcc CFLAGS (gcc 3.4.6 -march=(or -mcpu=)iwmmxt doesn't work and it seems we must use some other flags, probably "-malignment-traps" I fetched from a wifi driver Makefile, or a freshly compiled distcc spit outs alignment traps in the kernel logs and sit up eating CPU doing nothing).

If all works well I'll have a base system up to date in the next few days for others to try if there's interest.

I'll reformat this post in a HOWTO as soon as I've enough experience to make it worth sharing with others.
Go to the top of the page
 
+Quote Post
vputz
post Aug 30 2006, 06:50 AM
Post #2





Group: Members
Posts: 163
Joined: 9-September 04
Member No.: 4,529



QUOTE(gyver @ Aug 30 2006, 02:36 PM)
I'll reformat this post in a HOWTO as soon as I've enough experience to make it worth sharing with others.
*


...you may want to package that with a distcc cross-compilation howto as well ... installing new Gentoo software takes long enough on my Athlon 3200+; I can't imagine the fun compiling something big on the poor li'l Z...

Having said that, this is a great project. Good luck with it!
Go to the top of the page
 
+Quote Post
gyver
post Aug 30 2006, 07:02 AM
Post #3





Group: Members
Posts: 16
Joined: 31-July 05
Member No.: 7,749



QUOTE(vputz @ Aug 30 2006, 04:50 PM)
...you may want to package that with a distcc cross-compilation howto as well ... installing new Gentoo software takes long enough on my Athlon 3200+; I can't imagine the fun compiling something big on the poor li'l Z...

Having said that, this is a great project.  Good luck with it!
*

Of course. The zaurus isn't so bad for compiling (I've done perl and python already and that was under one hour) but distcc rocks and I had to find out how to do cross compiling with distcc. Fortunately Gentoo is especially helpful for this the setup of the server and the client only imply simple setups (use "crossdev" to automate the cross-compilation env install on the servers and some symlinks on the client to a hand-written one liner script), I'll include them in the HOWTO for reference.
Go to the top of the page
 
+Quote Post
grog
post Aug 30 2006, 07:07 AM
Post #4





Group: Members
Posts: 692
Joined: 27-January 04
From: Canada
Member No.: 1,564



Sounds *really* cool. Should I assume this would only work on C3K's, not C860's or C1K's with external microdrives? I guess even if it *did* work, we'd lose the CF slot anyway (no wifi, nic's, etc).
Go to the top of the page
 
+Quote Post
gyver
post Aug 30 2006, 07:30 AM
Post #5





Group: Members
Posts: 16
Joined: 31-July 05
Member No.: 7,749



QUOTE(grog @ Aug 30 2006, 05:07 PM)
Sounds *really* cool. Should I assume this would only work on C3K's, not C860's or C1K's with external microdrives? I guess even if it *did* work, we'd lose the CF slot anyway (no wifi, nic's, etc).
*

For the C860, I'm not sure (I'm trying to use iwmmxt as gcc's cpu target), currently xscale is used instead of iwmmxt as at least bash can not compile with iwmmxt). For the C1K it will be OK as long as you can store the partition somewhere and chroot into it.

The ultimate goal is to bypass OpenZaurus and use altboot to load a Gentoo-compiled kernel and maybe (only maybe) automate the install without OpenZaurus but I probably won't need it myself as OpenZaurus is quite good in itself and probably will be used on my Zaurus as a rescue partition.
Go to the top of the page
 
+Quote Post
vputz
post Aug 30 2006, 09:57 AM
Post #6





Group: Members
Posts: 163
Joined: 9-September 04
Member No.: 4,529



QUOTE
Should I assume this would only work on C3K's, not C860's or C1K's with external microdrives?


NFS, my good man (grin). Obviously local storage would be better, and it would be dog slow doing everything with network-mounted storage, but it COULD be done. My desktop's portage repository lives on a Debian NSLU2, so obviously portage could live there, and with a good distcc setup, it could work.

QUOTE
The ultimate goal is to bypass OpenZaurus and use altboot to load a Gentoo-compiled kernel and maybe (only maybe) automate the install without OpenZaurus


Gyver, I'd think pretty seriously about using the OZ kernel and basically using Portage as a package manager, sorta like Gentoo on an NSLU2 uses OpenSlug as a basis.

(I'm now almost kicking myself for not putting Gentoo on the slug, but at the time I didn't want to deal with distcc... and since it's acting as a server, I wanted Debian stability. But I already miss portage on the wee thing, and I'm already having to learn to do distcc cross-compilation since my desktop runs AMD64 but I want it to help with compilation on my older 32-bit boxes).

Actually, Portage and BitBake (OE's package/build system) actually remind me a lot of each other. A whole lot.
Go to the top of the page
 
+Quote Post
koen
post Aug 30 2006, 10:12 AM
Post #7





Group: Members
Posts: 1,014
Joined: 4-January 05
From: Enschede, The Netherlands
Member No.: 6,107



QUOTE(vputz @ Aug 30 2006, 05:57 PM)
Actually, Portage and BitBake (OE's package/build system) actually remind me a lot of each other.  A whole lot.
*


That's because OE was based on portage 3 years ago, but we moved on since portage was too limited.
Go to the top of the page
 
+Quote Post
Javock
post Aug 30 2006, 10:17 AM
Post #8





Group: Members
Posts: 5
Joined: 10-August 06
Member No.: 10,731



QUOTE(gyver @ Aug 30 2006, 11:36 AM)
I'm currently trying to install Gentoo on my Zaurus C3K. The main reason for that if that I want to benefit from the huge Portage software repository.


Great, I have a 6K and I wanted to install gentoo... it would be a great learning experience if I don't brick the Z.
I would like to participate with this project, and mabe we could join efforts with the gentoo-embedded.

As soon as you post a HOWTO I will be trying it! wink.gif


Regards!
Go to the top of the page
 
+Quote Post
gyver
post Aug 30 2006, 01:25 PM
Post #9





Group: Members
Posts: 16
Joined: 31-July 05
Member No.: 7,749



Just hit a problem with linux-headers and distcc : the object files were compiled for an x86... I'll have to check how to workaround this (probably by patching an ebuild or eclass). Works without distcc though.
Go to the top of the page
 
+Quote Post
Javock
post Aug 31 2006, 07:00 AM
Post #10





Group: Members
Posts: 5
Joined: 10-August 06
Member No.: 10,731



QUOTE(gyver @ Aug 30 2006, 06:25 PM)
Just hit a problem with linux-headers and distcc : the object files were compiled for an x86... I'll have to check how to workaround this (probably by patching an ebuild or eclass). Works without distcc though.
*



Did you follow the corss-compile howto? and emerged sys-devel/crossdev et al?

I found this on the Gentoo forums (look at the post by Kumba), it is for cross-distcc on an intel for sparc but it could be used for a starting point, also it mentions what he did with the kernel headers, perhaps something similar could be done there...
Go to the top of the page
 
+Quote Post
Javock
post Aug 31 2006, 01:18 PM
Post #11





Group: Members
Posts: 5
Joined: 10-August 06
Member No.: 10,731



Also found the cross-distcc howto here! I hope it helps cool.gif

Regards
Go to the top of the page
 
+Quote Post
gyver
post Aug 31 2006, 02:48 PM
Post #12





Group: Members
Posts: 16
Joined: 31-July 05
Member No.: 7,749



QUOTE(Javock @ Aug 31 2006, 11:18 PM)
Also found the cross-distcc howto here! I hope it helps  cool.gif

Regards
*

This is the howto I followed smile.gif
I've managed to get past linux-headers, hit the same problem later with uclibc (I have a workaround involving disabling distcc). Now findutils doesn't want to build properly sad.gif
CODE
arm-softfloat-linux-uclibc-ar cru libfindtools.a finddata.o fstype.o parser.o pred.o tree.o util.o version.o
arm-softfloat-linux-uclibc-ranlib libfindtools.a
arm-softfloat-linux-uclibc-gcc  -Os -pipe -mcpu=xscale -mtune=iwmmxt -frename-registers -ffast-math -fno-strict-aliasing -msoft-float -malignment-traps -mlittle-endian -fno-common -mfp=3   -o oldfind  find.o ./libfindtools.a ../lib/libfind.a ../gnulib/lib/libgnulib.a
arm-softfloat-linux-uclibc-gcc  -Os -pipe -mcpu=xscale -mtune=iwmmxt -frename-registers -ffast-math -fno-strict-aliasing -msoft-float -malignment-traps -mlittle-endian -fno-common -mfp=3   -o find  ftsfind.o ./libfindtools.a ../lib/libfind.a ../gnulib/lib/libgnulib.a
./libfindtools.a(finddata.o):(.bss+0x54): multiple definition of `starting_desc'
find.o:(.bss+0x0): first defined here
./libfindtools.a(finddata.o):(.bss+0x58): multiple definition of `program_name'
find.o:(.bss+0x4): first defined here
./libfindtools.a(finddata.o):(.bss+0x5c): multiple definition of `predicates'
find.o:(.bss+0x8): first defined here
./libfindtools.a(finddata.o):(.bss+0x60): multiple definition of `last_pred'
find.o:(.bss+0xc): first defined here
../gnulib/lib/libgnulib.a(closeout.o): In function `close_stdout':
closeout.c:(.text+0x30): warning:
collect2: ld returned 1 exit status
distcc[31426] ERROR: compile (null) on localhost failed
make[3]: *** [oldfind] Error 1
make[3]: *** Waiting for unfinished jobs....
../gnulib/lib/libgnulib.a(closeout.o): In function `close_stdout':
closeout.c:(.text+0x30): warning:
make[3]: Leaving directory `/mnt/hdd/portage/tmp/portage/findutils-4.3.0/work/findutils-4.3.0/find'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/mnt/hdd/portage/tmp/portage/findutils-4.3.0/work/findutils-4.3.0/find'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/mnt/hdd/portage/tmp/portage/findutils-4.3.0/work/findutils-4.3.0'
make: *** [all] Error 2


I'll work on it tomorrow.
Go to the top of the page
 
+Quote Post
Ferret-Simpson
post Aug 31 2006, 02:50 PM
Post #13





Group: Members
Posts: 573
Joined: 8-June 05
Member No.: 7,295



Maybe I should do Zlackware?
Go to the top of the page
 
+Quote Post
Javock
post Sep 1 2006, 07:14 AM
Post #14





Group: Members
Posts: 5
Joined: 10-August 06
Member No.: 10,731



QUOTE(koen @ Aug 30 2006, 03:12 PM)
That's because OE was based on portage 3 years ago, but we moved on since portage was too limited.
*


Really? wow, I thought of portage as a great tool! blink.gif
what was it that made it limited? if I may ask, pleaseeee biggrin.gif
Go to the top of the page
 
+Quote Post
adf
post Sep 1 2006, 08:43 AM
Post #15





Group: Members
Posts: 2,821
Joined: 13-September 04
From: Wasilla Ak.
Member No.: 4,572



wait a second. You can "move on" from a "limited" portage, but you can't make a working package manager? Sadly, that sounds very par for the OE course...
Go to the top of the page
 
+Quote Post

2 Pages V   1 2 >
Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 28th December 2014 - 01:30 AM