View previous topic :: View next topic |
Author |
Message |
GummyGum173 n00b
Joined: 09 Apr 2014 Posts: 50
|
Posted: Sat Nov 22, 2014 8:57 pm Post subject: I fail to distcc, also need help with X11 ABI |
|
|
Hi!
So, I have this ARMv7a device which I installed Gentoo on (to be precise, Asus TF201).
I also have my desktop (amd64) which rubs Gentoo as well.
I have installed distcc on both of them, on my desktop I have:
--allow 193.168.1.22 --listen 192.168.1.22
And on my Asus:
/etc/distcc/hosts
In my make.conf on the Asus I have set FEATURES="distcc" and MAKEOPTS="j17 l4".
When I run
Code: | /etc/init.d/distccd start |
I get a permission error on opening /var/log/distccd.log, but distccd still starts.
Now, all this being said, when I emerge on my Asus, portage would simply compile on the local host, instead trying to compile it on 192.168.1.4.
I also have disttmon-gui on my Desktop which reports nothing.
I can't access logs on neither of the devices as the log is never created.
Why is this happening?
Also, on a side note:
Latest NVIDIA Tegra drivers support up to ABI 14, while my x11 install is ABI 15.
1. How can I and to which version should I downgrade X11 to?
2. Will an older ABI require and older KDE install? If so, what version?
thank you so much! |
|
Back to top |
|
|
NeddySeagoon Administrator
Joined: 05 Jul 2003 Posts: 54237 Location: 56N 3W
|
Posted: Sat Nov 22, 2014 9:50 pm Post subject: |
|
|
GummyGum173,
You run Code: | /etc/init.d/distccd start | on your helpers.
The distcc monitor needs to run on your ARM system.
You don't mention crossdev and building a cross toolchain on the amd64.
Thats key, so you have a compiler that can emit ARM code.
Lastly, what do you have in CFLAGS on the ARM box?
I don't think -march=native works on arm anyway, but distcc is smart enough to spot that and not distribute if its in use.
You would really hate to get amd64 code back from your helper.
Oh, once you have cross distcc working, use pump mode.
pump emerge ...
More work is distributed that way. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
|
GummyGum173 n00b
Joined: 09 Apr 2014 Posts: 50
|
Posted: Sun Nov 23, 2014 5:32 pm Post subject: |
|
|
NeddySeagoon wrote: | GummyGum173,
You run Code: | /etc/init.d/distccd start | on your helpers.
The distcc monitor needs to run on your ARM system.
You don't mention crossdev and building a cross toolchain on the amd64.
Thats key, so you have a compiler that can emit ARM code.
Lastly, what do you have in CFLAGS on the ARM box?
I don't think -march=native works on arm anyway, but distcc is smart enough to spot that and not distribute if its in use.
You would really hate to get amd64 code back from your helper.
Oh, once you have cross distcc working, use pump mode.
pump emerge ...
More work is distributed that way. |
Hi, thanks a lot for the tip!
I now installed crossdev on my main machine and set the arm toolchain, but still, distccmon (on my arm machine) shows nothing and once again I compile localy.
At first, using pump threw me an error about failing to connect to the host, which means that it at least tries to (I fixed that error by setting FEATURES="distcc-pump").
But again, it won't send the compile to my main machine.
Code: |
CFLAGS="-O2 -pipe -march=armv7a -mfpu=vfpv3-d16 -mfloat-abi=hard"
|
|
|
Back to top |
|
|
NeddySeagoon Administrator
Joined: 05 Jul 2003 Posts: 54237 Location: 56N 3W
|
Posted: Sun Nov 23, 2014 5:53 pm Post subject: |
|
|
GummyGum173,
Can you cross compile locally on your amd64?
That will at least test your ARM toolchain. You can't run the binaries on the amd64 but builds should still work.
Lots of stuff will not cross build cleanly.
should show two compilers selected.
Your native amd64 and the arm compiler too. Maybe you need to select the arm compiler.
What does GummyGum173 wrote: | distccmon (on my arm machine) shows nothing | mean?
It should show all the jobs being run and where they are being run. If you just get a blank screen, distccmon is looking in the wrong place or does not have perminnions to read the data. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
|
GummyGum173 n00b
Joined: 09 Apr 2014 Posts: 50
|
Posted: Sun Nov 23, 2014 6:25 pm Post subject: |
|
|
NeddySeagoon wrote: | GummyGum173,
Can you cross compile locally on your amd64?
That will at least test your ARM toolchain. You can't run the binaries on the amd64 but builds should still work.
Lots of stuff will not cross build cleanly.
should show two compilers selected.
Your native amd64 and the arm compiler too. Maybe you need to select the arm compiler.
What does GummyGum173 wrote: | distccmon (on my arm machine) shows nothing | mean?
It should show all the jobs being run and where they are being run. If you just get a blank screen, distccmon is looking in the wrong place or does not have perminnions to read the data. |
Hi again,
gcc-config -l
Code: | [1] armv7a-hardfloat-linux-gnueabi-4.8.3 *
[2] x86_64-pc-linux-gnu-4.8.3 * |
and when I run distccmon-text (as my ARM device has no x11 installed) I simply get no output, just a blank space. |
|
Back to top |
|
|
NeddySeagoon Administrator
Joined: 05 Jul 2003 Posts: 54237 Location: 56N 3W
|
Posted: Sun Nov 23, 2014 7:19 pm Post subject: |
|
|
GummyGum173,
As root, I have to run Code: | DISTCC_DIR=/var/tmp/portage/portage/.distcc distccmon-text 5 | to see what distcc is doing on my Raspberry Pi
This install on my amd64 does not have crossdev installed, so the output on the Pi looks like.
Code: | 13908 Compile paxelf.c localhost[0]
13908 Compile paxelf.c localhost[0]
13925 Compile xfuncs.c localhost[0]
13930 Compile scanelf.c localhost[0]
13930 Compile scanelf.c localhost[0]
13930 Compile scanelf.c localhost[0]
13930 Compile scanelf.c localhost[0]
13930 Compile scanelf.c localhost[0]
13930 Compile scanelf.c localhost[0] | its only allowed to run one job.
On the ARM bok what do you have in /etc/distcc/hosts?
The IP ordering is the order in which helpers are assigned jobs. Its a really bad idea to have localhost first in that list.
In fact, localhost need not appear at all, as its the fallback if distribution fails.
-- edit --
Nothing is fine when there is a process that cannot be distributed goinh on, like unpacking sources, patching, linking? installing, compressing man pages. etc. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
|
GummyGum173 n00b
Joined: 09 Apr 2014 Posts: 50
|
Posted: Sun Nov 23, 2014 8:29 pm Post subject: |
|
|
NeddySeagoon wrote: | GummyGum173,
As root, I have to run Code: | DISTCC_DIR=/var/tmp/portage/portage/.distcc distccmon-text 5 | to see what distcc is doing on my Raspberry Pi
This install on my amd64 does not have crossdev installed, so the output on the Pi looks like.
Code: | 13908 Compile paxelf.c localhost[0]
13908 Compile paxelf.c localhost[0]
13925 Compile xfuncs.c localhost[0]
13930 Compile scanelf.c localhost[0]
13930 Compile scanelf.c localhost[0]
13930 Compile scanelf.c localhost[0]
13930 Compile scanelf.c localhost[0]
13930 Compile scanelf.c localhost[0]
13930 Compile scanelf.c localhost[0] | its only allowed to run one job.
On the ARM bok what do you have in /etc/distcc/hosts?
The IP ordering is the order in which helpers are assigned jobs. Its a really bad idea to have localhost first in that list.
In fact, localhost need not appear at all, as its the fallback if distribution fails.
-- edit --
Nothing is fine when there is a process that cannot be distributed goinh on, like unpacking sources, patching, linking? installing, compressing man pages. etc. |
Yes, setting DISTCC_DIR did the trick!
I am now able to start figuring things out.
distccmon says:
Code: |
6707 Blocked [0]
6716 Blocked [0]
6736 Blocked [0]
6825 Blocked [0]
6477 Blocked [0]
6476 Blocked [0]
6494 Blocked [0]
6499 Blocked [0]
6507 Blocked [0]
6515 Blocked [0]
6841 Blocked [0]
6840 Blocked [0]
6630 Send io-gif.c 192.168.1.4[0]
6515 Blocked [0]
6477 Preprocess gdk-pixbuf-enum-types.c 192.168.1.4[0]
6928 Compile io-xpm.c 192.168.1.4[1]
6499 Preprocess gdk-pixbuf-scaled-anim.c 192.168.1.4[1]
6507 Preprocess io-png.c 192.168.1.4[2]
|
And then it starts compiling locally.
So, is that a problem? Or does gdk-pixbuf request things to compile locally? And why did it spam with "Blocked " at the beginning?
The only host in my /etc/distcc/hosts file is 192.168.1.4 - my main (amd64) machine. |
|
Back to top |
|
|
NeddySeagoon Administrator
Joined: 05 Jul 2003 Posts: 54237 Location: 56N 3W
|
Posted: Sun Nov 23, 2014 9:02 pm Post subject: |
|
|
[GummyGum173,
Quote: | The only host in my /etc/distcc/hosts file is 192.168.1.4 - my main (amd64) machine |
Code: | 6477 Preprocess gdk-pixbuf-enum-types.c 192.168.1.4[0]
6928 Compile io-xpm.c 192.168.1.4[1]
6499 Preprocess gdk-pixbuf-scaled-anim.c 192.168.1.4[1]
6507 Preprocess io-png.c 192.168.1.4[2] |
All that is going on on 192.168.1.4, so its working.
It shows 3 jobs 192.168.1.4[0..2]
I think 3 is the default unless you allow more in /etc/distcc/hosts.
You need to match the MAKEOPTS on the arm box to the 192.168.1.4/<jobs> in /etc/distcc/hosts or when it has distributed <jobs>, any excess permitted by MAKEOPTS on the ARM will be run locally.
On my Pi I have Code: | 192.168.100.20/8,lzo,cpp | in /etc/distcc/hosts, so its allowed to send 8 jobs to my amd64.
The Pi has MAKEOPTS="-j8" too, so it should never build locally.
One nasty package is gcc. The bootstrap cannot be distributed. Watching a Pi with MAKEOPTS="-j8" building gcc will bring tears to your eyes. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
|
GummyGum173 n00b
Joined: 09 Apr 2014 Posts: 50
|
Posted: Mon Nov 24, 2014 12:42 pm Post subject: |
|
|
NeddySeagoon wrote: | [GummyGum173,
Quote: | The only host in my /etc/distcc/hosts file is 192.168.1.4 - my main (amd64) machine |
Code: | 6477 Preprocess gdk-pixbuf-enum-types.c 192.168.1.4[0]
6928 Compile io-xpm.c 192.168.1.4[1]
6499 Preprocess gdk-pixbuf-scaled-anim.c 192.168.1.4[1]
6507 Preprocess io-png.c 192.168.1.4[2] |
All that is going on on 192.168.1.4, so its working.
It shows 3 jobs 192.168.1.4[0..2]
I think 3 is the default unless you allow more in /etc/distcc/hosts.
You need to match the MAKEOPTS on the arm box to the 192.168.1.4/<jobs> in /etc/distcc/hosts or when it has distributed <jobs>, any excess permitted by MAKEOPTS on the ARM will be run locally.
On my Pi I have Code: | 192.168.100.20/8,lzo,cpp | in /etc/distcc/hosts, so its allowed to send 8 jobs to my amd64.
The Pi has MAKEOPTS="-j8" too, so it should never build locally.
One nasty package is gcc. The bootstrap cannot be distributed. Watching a Pi with MAKEOPTS="-j8" building gcc will bring tears to your eyes. |
Hi again,
I edited hosts to
Code: | 192.168.1.4/17,cpp,lzo |
But I get the exact same output, 3 jobs show that they are sent to the helper host, then it continues to compile localy: :\
Is it possible, that like GCC, gdk-pixbuf requires to be compiled locally?
Edit: reading through gdk-pixbuf logs, I find that it fails to compile on the host, so it compiles locally.
Thats a shame, as I fail to compile that package locally, too :\ |
|
Back to top |
|
|
NeddySeagoon Administrator
Joined: 05 Jul 2003 Posts: 54237 Location: 56N 3W
|
Posted: Mon Nov 24, 2014 6:30 pm Post subject: |
|
|
GummyGum173,
Pastebin the build log for the failed package please. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
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
|
|