#109 Issue closed: PPC support is broken

Labels: bug

kolb opened issue at 2012-06-13 09:10:

The ppc code is broken. There are two problems:

  1. In /usr/share/rear/pack/Linux-ppc64/30_copy_kernel.sh the copy command is commented out (last line).
  2. The RPM spec file list syslinux as a requisite. There is no syslinux package for the ppc platform. The yaboot package is used instead. I suggest somethink like this:
    %ifarch ppc,ppc64
    Requires: yaboot
    %else
    Requires: syslinux >= 4.00
    %endif

dagwieers commented at 2012-06-13 09:26:

What version have you tested ? The master branch at this time reverted to a very simple SPEC file, which we intend to improve to support other distributions and also PPC... For testing Rear on PPC we might need your help as we don't have any test equipment.

dagwieers commented at 2012-06-13 09:26:

And depending on the timeframe, we might make the next v1.14 release, with your help.

gdha commented at 2012-06-13 09:40:

I would prefer to see in the rear.spec file:

%ifarch %ix86 x86_64
Requires: syslinux
%endif
%ifarch ppc ppc64
Requires: yaboot
%endif

dagwieers commented at 2012-06-13 10:18:

Yes, I have added it already. I was planning to merge some bits with the previous version it just did not happen yet.

kolb commented at 2012-06-14 08:27:

I made a rescue CD, but it failed to boot:
The problem is in /usr/share/rear/output/ISO/Linux-ppc64/30_create_yaboot.sh
The yaboot binary should be copied to /ppc/chrp directory. Instead it is copied to the file chrp in directory ppc. I modified the mkdir line in the file:
mkdir -p $v $TMP_DIR/ppc/chrp >&2

Now it creates the chrp directory and the yaboot file is copied into it.

The boot was successful, but the recovery system failed to start:
[ 3.070199] systemd[1]: No hostname configured.
[ 3.070270] systemd[1]: Initializing machine ID from random generator.
[ 3.150799] systemd[1]: Failed to load default target: No such file or directory
[ 3.150815] systemd[1]: Trying to load rescue target...
[ 3.150840] systemd[1]: Failed to load rescue target: No such file or directory

I'am using Fedora16 to test. Any idea what to check to make it work?

jhoekx commented at 2012-06-14 09:07:

It looks like a systemd problem.

You can learn more about it by adding systemd.log_level=debug to the kernel command line (press tab in syslinux).
We probably forget to copy some directories on ppc...

kolb commented at 2012-06-14 14:24:

I've found out that the /lib/systemd/system/default.target link points to rear-1.13.0/multi-user.target, but there is no rear-1.13.0 directory (there is no rear* directory). Can you tell me which script should create this directory and its contents?

jhoekx commented at 2012-06-14 15:53:

Good catch. That's tar in our makefile adding rear-1.13.0 also to targets of symlinks.

Those files are in usr/share/rear/skel/default/lib/systemd/system.

dagwieers commented at 2012-06-14 18:09:

So do we go back to using pax ? ;-)

http://dag.wieers.com/blog/pax-substitution-and-relative-symbolic-links

jhoekx commented at 2012-06-14 19:48:

No, we read the tar manual :-).

This problem should be fixed by 25f49cca00d86bc285b92c01e43206a3da49ec87 (and it is in my testing).

dagwieers commented at 2012-06-14 19:52:

Perfect ! :-D

kolb commented at 2012-06-15 08:40:

I ran another test with the new version:

The copy command in /usr/share/rear/pack/Linux-ppc64/30_copy_kernel.sh is still commanted out, so the kernel image were missing. Please fix it!

After correcting that I was able to boot the rescue image.
The recovery however failed with some TSM error. I will open a new issue about that.

jhoekx commented at 2012-06-15 10:22:

For x86, the copy kernel line is also commented out. We copy the kernel in output/ISO/Linux-i386/80_create_isofs.sh. We'll make it mirror that by copying it in output/ISO/Linux-ppc64/80_create_isofs.sh.


[Export of Github issue for rear/rear.]