# Gentoo auf IBM ppc64

## tazinblack

Hallo zusammen,

ich hab vor Jahren mal ein gentoo auf zwei uralten ppc64 Workstations (IBM 7043-150 IBM RS/6000) gebaut, da die zwar schon alt waren, aber mein Chef die nicht rauswerfen wollte.

Das waren ganz füher mal CAD Workstations. Hier mal ein bild von so nem Ding:

http://store.flagshiptech.com/product_images/k/424/7043-150a__84614_zoom.jpg

Laufen tut da was recht wichtiges drauf. Deswegen hab ich ne Backupmaschine. 

Und die Dinger laufen beide ohne Ausfall immer noch.

Die Hardware gibts seit irgendwann in den frühen 2000ern nicht mehr zu kaufen (2002/3 oder so):

http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?infotype=dd&subtype=sm&appname=pseries&htmlfid=897/ENUS7043-150

Virtualisierung ist ja nichts neues, kommt ja vom Mainfraim und ist bei uns auch auf den Unixbüchsen verfügbar.

Deshalb möchte ich jetzt einen Versuch starten ein aktuelles gentoo als lpar (virtuelle Maschine auf Unix) laufen zu lassen.

Hat da zufällig jemand Erfahrung mit?

Gibts da Interesse an ner Anleitung? Dann würde ich halt alle Schritte mitschreiben und hier veröffentlichen.

----------

## bbgermany

Hi, 

ich hab das schonmal am laufen gehabt, aber ich weis nicht ob das mit der Maschine überhaupt geht. IIRC braucht man für LPAR eine HMC oder wenn man wirklich virtualisieren möchte dann braucht man ViOS + AIX5L/AIX6.x.

Ich fürchte das wird nichts auf der Maschine  :Sad: 

MfG. Stefan

----------

## tazinblack

Nicht falsch verstehen, die Maschine auf dem Bild, ist die Machine auf der das bisher lief ohne Virtualisierung.

Die wird mir aber langsam zu unsicher.

Jetzt soll es auf ner Maschine laufen, die bereits virtualisiert ist, also mit VIOS. HMC kommt für diese Maschine nicht zum Einsatz, da ich hier drauf den IVM verwende.

Also quasi ne abgespreckte HMC auf der Maschine, die per Browser administriert wird.

----------

## bbgermany

Dann habe ich das wirklich falsch verstanden. Also wir haben hier im Hause LPAR und auch ViOS Linux Installationen. Leider sind alle das Nürnberger Windows  :Wink: .

Aber wenn SuSE läuft, warum sollte dann Gentoo nicht auch laufen  :Very Happy: 

MfG. Stefan

----------

## tazinblack

Momentan scheints daran zu scheitern, dass ich kein reinrassiges ppc 64Bit Profil finde.

-> https://forums.gentoo.org/viewtopic-t-910562.html

Und 32Bit userland unter ner 64Bit Hardware wäre traurig!

----------

## bbgermany

Hi,

dann setze es doch per Hand wie früher:

```

tswdf004 64bit-userland # pwd

/usr/portage/profiles/default/linux/powerpc/ppc64/10.0/64bit-userland

tswdf004 64bit-userland # ls -la /etc/make.profile

lrwxrwxrwx 1 root root 48 23. Dez 14:09 /etc/make.profile -> ../usr/portage/profiles/default/linux/amd64/10.0

tswdf004 64bit-userland #

```

MfG. Stefan

EDITH: ich konnte unseren AIX/ViOS Admin dazu überreden mir in den nächsten Tagen eine kleine LPAR auf einer 570 zur Verfügung zu stellen. Ich werde dann mal testen und mich nochmal melden  :Wink: 

----------

## tazinblack

Hey das klingt ja super.

Dann sind wir ja schon zu zweit!

Da siehst Du mal, durch die neuen Werkzeuge bin ich gar nicht auf die Idee gekommen, man händisch im entsprechenden Ordner nachzuschauen, obs doch ein 64Bit Profile gibt.

----------

## bbgermany

So, ich hab nun eine LiveCD am laufen. Basesystem ist auch schon entpackt, und meine Ausgabe von eselect profile list sie folgendermaßen aus:

```

livecd / # eselect profile list

Available profile symlink targets:

  [1]   default/linux/powerpc/ppc64/10.0/64bit-userland 

  [2]   default/linux/powerpc/ppc64/10.0/64bit-userland/desktop

  [3]   default/linux/powerpc/ppc64/10.0/64bit-userland/desktop/gnome

  [4]   default/linux/powerpc/ppc64/10.0/64bit-userland/desktop/kde

  [5]   default/linux/powerpc/ppc64/10.0/64bit-userland/developer

  [6]   default/linux/powerpc/ppc64/10.0/64bit-userland/server *

  [7]   hardened/linux/powerpc/ppc64/64bit-userland

livecd / #

```

Ich hab das schonmal geändert  :Wink: 

```

livecd / # cat /proc/cpuinfo

processor       : 0

cpu             : POWER6 (architected)

clock           : 4208.000000MHz

revision        : 4.0 (pvr 003e 0400)

processor       : 1

cpu             : POWER6 (architected)

clock           : 4208.000000MHz

revision        : 4.0 (pvr 003e 0400)

timebase        : 512000000

platform        : pSeries

model           : IBM,9117-MMA

machine         : CHRP IBM,9117-MMA

livecd / #

```

MfG. Stefan

EDIT: das ist das Stage3 Archiv, das ich verwendet habe:

ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo/releases/ppc/autobuilds/20111102/stage3-ppc64-64ul-20111102.tar.bz2

----------

## tazinblack

Hey super, 

ein 64Bit-Userland Stage3 Archiv.

Sorry, aber ich komm die nächsten zwei Wochen nicht dazu.

Wir haben am Donnerstag Nachwuchs bekommen  :Smile: 

Deshalb hab ich die nächsten zwei Wochen frei.

Also wenns Dir nichts ausmacht können wir dann weitermachen.

----------

## cryptosteve

 *tazinblack wrote:*   

> Wir haben am Donnerstag Nachwuchs bekommen 

 

Da sag ich mal herzlichen Glückwunsch. Ich hoffe, alle Beteiligten sind wohlauf!  :Smile: 

----------

## tazinblack

Danke für die Glückwünsche!

Ja, alle Beteiligten sind wohl auf!

----------

## bbgermany

Hi,

auch von mir herzlichen Glückwunsch. 

Ich bin sowieso noch nicht ganz so weit. Am Mo möchte ich erst mal sehen ob das System überhaupt bootet.

MfG. Stefan

----------

## bbgermany

So, ich hab mal das System gebootet:

Das Profil hab ich wieder umgestellt auf Standard, da emerge immer was zu meckern hatte an dem Serverprofil:

```

Available profile symlink targets:

  [1]   default/linux/powerpc/ppc64/10.0/64bit-userland *

  [2]   default/linux/powerpc/ppc64/10.0/64bit-userland/desktop

  [3]   default/linux/powerpc/ppc64/10.0/64bit-userland/desktop/gnome

  [4]   default/linux/powerpc/ppc64/10.0/64bit-userland/desktop/kde

  [5]   default/linux/powerpc/ppc64/10.0/64bit-userland/developer

  [6]   default/linux/powerpc/ppc64/10.0/64bit-userland/server

  [7]   hardened/linux/powerpc/ppc64/64bit-userland

```

Ausgabe von "emerge --info":

```

emerge --info

Portage 2.1.10.45 (default/linux/powerpc/ppc64/10.0/64bit-userland, gcc-4.5.3, glibc-2.13-r4, 3.2.1-gentoo-r2 ppc64)

=================================================================

System uname: Linux-3.2.1-gentoo-r2-ppc64-POWER6_-architected-,_altivec_supported-with-gentoo-2.0.3

Timestamp of tree: Mon, 06 Feb 2012 00:45:01 +0000

distcc 3.1 powerpc64-unknown-linux-gnu [enabled]

app-shells/bash:          4.1_p9

dev-lang/python:          2.7.1-r1, 3.1.3-r1

dev-util/pkgconfig:       0.26

sys-apps/baselayout:      2.0.3

sys-apps/openrc:          0.9.8.4

sys-apps/sandbox:         2.5

sys-devel/autoconf:       2.68

sys-devel/automake:       1.11.1

sys-devel/binutils:       2.21.1-r1

sys-devel/gcc:            4.5.3-r1

sys-devel/gcc-config:     1.4.1-r1

sys-devel/libtool:        2.4-r1

sys-devel/make:           3.82-r1

sys-kernel/linux-headers: 2.6.39 (virtual/os-headers)

sys-libs/glibc:           2.13-r4

Repositories: gentoo

ACCEPT_KEYWORDS="ppc64"

ACCEPT_LICENSE="* -@EULA"

CBUILD="powerpc64-unknown-linux-gnu"

CFLAGS="-O2 -pipe"

CHOST="powerpc64-unknown-linux-gnu"

CONFIG_PROTECT="/etc"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/sandbox.d /etc/terminfo"

CXXFLAGS="-O2 -pipe"

DISTDIR="/usr/portage/distfiles"

FEATURES="assume-digests binpkg-logs distcc distlocks ebuild-locks fixlafiles news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"

FFLAGS=""

GENTOO_MIRRORS="http://distfiles.gentoo.org"

LDFLAGS="-Wl,-O1 -Wl,--as-needed"

MAKEOPTS="-j9"

PKGDIR="/usr/portage/packages"

PORTAGE_CONFIGROOT="/"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY=""

SYNC="rsync://rsync.gentoo.org/gentoo-portage"

USE="acl berkdb bzip2 cli cracklib crypt cups cxx dri fortran gdbm gpm ibm iconv ipv6 modules mudflap ncurses nls nptl nptlonly openmp pam pcre ppc64 pppd readline session ssl sysfs tcpd unicode xorg zlib" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="fbdev mach64 mga nv r128 radeon dummy v4l" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"

Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

```

Da es sich um eine ViOS Partition handelt ist im Kernel wichtig:

```

CONFIG_IBMVIO=y

CONFIG_SCSI_IBMVSCSI=y

CONFIG_NET_VENDOR_IBM=y

CONFIG_IBMVETH=m

```

Und in der /etc/inittab sollte folgender Eintrag nicht fehlen, da sonst die HMC keine lokale "Masterconsole" hat:

```

hvc0:2345:respawn:/sbin/agetty -L 9600 hvc0

```

Meine yaboot.conf sieht folgendermaßen aus in Kombination mit fdisk -l:

```

tswdf419 ~ # cat /etc/yaboot.conf

## yaboot.conf generated by yabootconfig 1.0.8

##

## run: "man yaboot.conf" for details. Do not make changes until you have!!

##

## For a dual-boot menu, add one or more of:

## bsd=/dev/hdaX, macos=/dev/hdaY, macosx=/dev/hdaZ

boot=/dev/sda1

partition=3

root=/dev/sda3

timeout=30

install=/usr/lib/yaboot/yaboot

image=/boot/kernel-3.2.1-gentoo-r2

        label=Linux

        read-only

tswdf419 ~ # fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes

64 heads, 32 sectors/track, 20480 cylinders, total 41943040 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x8e2c0400

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1              32        4095        2032   41  PPC PReP Boot

/dev/sda2            4096     4200447     2098176   82  Linux swap / Solaris

/dev/sda3         4200448    41943039    18871296   83  Linux

tswdf419 ~ #

```

Erstellt hab ich das mit yabootconfig aus yaboot-static.

Da ich nur eine "halbe" CPU habe musste ich mit distcc + crosscompiling arbeiten. Hier nochmal meine make.conf und /proc/cpuinfo:

```

tswdf419 ~ # cat /etc/make.conf

# These settings were set by the catalyst build script that automatically

# built this stage.

# Please consult /usr/share/portage/config/make.conf.example for a more

# detailed example.

CFLAGS="-O2 -pipe"

CXXFLAGS="${CFLAGS}"

# WARNING: Changing your CHOST is not something that should be done lightly.

# Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.

CHOST="powerpc64-unknown-linux-gnu"

FEATURES="distcc"

MAKEOPTS="-j9"

tswdf419 ~ # cat /proc/cpuinfo

processor       : 0

cpu             : POWER6 (architected), altivec supported

clock           : 4208.000000MHz

revision        : 4.0 (pvr 003e 0400)

processor       : 1

cpu             : POWER6 (architected), altivec supported

clock           : 4208.000000MHz

revision        : 4.0 (pvr 003e 0400)

timebase        : 512000000

platform        : pSeries

model           : IBM,9117-MMA

machine         : CHRP IBM,9117-MMA

tswdf419 ~ #

```

MfG. Stefan

----------

## tazinblack

Hey Du bist schon fertig!

Ich fang heute mittag mal an! Storage habe ich schon konfiguriert die im IVM (vios) auch schon eingerichtet.

----------

## bbgermany

Fertig ist gut....

Mein Admin hat versehentlich das System überschrieben, weil er sich in der Systembeschreibung geirrt hat. Nun darf ich nochmal von vorn beginnen... Naja, macht nix. So lernt man noch was  :Wink: 

MfG. Stefan

----------

## tazinblack

Tja, 

man sollte nie das Gefahrenpotential eines Admin unterschätzen   :Laughing: 

----------

## bbgermany

So, Basisystem ist schon wieder am laufen  :Wink: 

MfG. Stefan

----------

## tazinblack

Sorry, hat jetzt doch etwas gedauert.

Kam wieder mal was dazwischen.  :Sad: 

Hattest Du die Platte nur von einem Vios oder redundant über zwei?

Ich hab mich gefragt wie das dann mit dem multipathing funktioniert.

Ich denke das sollte irgendwie mit dem device-mapper funktionieren.

----------

## bbgermany

Hi,

 *tazinblack wrote:*   

> Sorry, hat jetzt doch etwas gedauert.
> 
> Kam wieder mal was dazwischen. 
> 
> 

 

Kein Problem. Ich kenne das  :Wink: 

 *tanzinblack wrote:*   

> 
> 
> Hattest Du die Platte nur von einem Vios oder redundant über zwei?
> 
> Ich hab mich gefragt wie das dann mit dem multipathing funktioniert.
> ...

 

Also ich bekomme die Platte als Virtuelles SCSI Device vom ViOS zugewiesen. Die "Platte" an sich hängt dabei in einer DS8700, die über diverse FC-Adapter/-Switche angebunden ist.

Ich denke device-mapper und multipathd sollte funktionieren, wenn du die Platten direkt anschließt an den ViOS Gast.

MfG. Stefan

----------

## tazinblack

 *bbgermany wrote:*   

> 
> 
> Also ich bekomme die Platte als Virtuelles SCSI Device vom ViOS zugewiesen. Die "Platte" an sich hängt dabei in einer DS8700, die über diverse FC-Adapter/-Switche angebunden ist.
> 
> Ich denke device-mapper und multipathd sollte funktionieren, wenn du die Platten direkt anschließt an den ViOS Gast.
> ...

 

Du bekommst die Platte also nur von einem VIOS? 

Ich denke für die Installation mach ich das auch erst mal so, aber ich will doch versuchen, ob ich das nachher von zwei VIOS mappen kann.

Wenns geht möchte ich auch mal nen VIOS booten können ohne das mein Linux auf die Nase fällt.

EDIT: Was hast Du denn für ein filesystem verwendet? Ich hab irgendwo gelesen, dass der Kernel in einem ext2 liegen muss für yaboot.

Sollte wohl auch ein ext3 gehen aber ext4?

----------

## bbgermany

 *tazinblack wrote:*   

> 
> 
> Du bekommst die Platte also nur von einem VIOS? 
> 
> Ich denke für die Installation mach ich das auch erst mal so, aber ich will doch versuchen, ob ich das nachher von zwei VIOS mappen kann.
> ...

 

Ja nur von einem, aber ich mecker ja nur dann, wenn mein Linux nicht mehr geht  :Wink:  Und da dort noch mehr dranhängt außer meinem Linux wird der ViOS Admin da auch nicht so schnell booten  :Very Happy: 

 *tazinblack wrote:*   

> 
> 
> EDIT: Was hast Du denn für ein filesystem verwendet? Ich hab irgendwo gelesen, dass der Kernel in einem ext2 liegen muss für yaboot.
> 
> Sollte wohl auch ein ext3 gehen aber ext4?

 

Also ich hab ext3. Ich konnte die Platte nicht mit ext4 formatieren, da die LiveCD das irgendwie nicht dabei hatte, iirc.

```

tswdf419 ~ # fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes

64 Köpfe, 32 Sektoren/Spur, 20480 Zylinder, zusammen 41943040 Sektoren

Einheiten = Sektoren von 1 × 512 = 512 Bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x8e2c0400

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System

/dev/sda1   *     4209030     4209808         389+  41  PPC PReP Boot

/dev/sda2            4096     4200447     2098176   82  Linux Swap / Solaris

/dev/sda3         4257225    41929649    18836212+  83  Linux

Partitionstabelleneinträge sind nicht in Platten-Reihenfolge

tswdf419 ~ # mount

rootfs on / type rootfs (rw)

/dev/root on / type ext3 (rw,noatime,errors=continue,barrier=1,data=writeback)

proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)

rc-svcdir on /lib64/rc/init.d type tmpfs (rw,nosuid,nodev,noexec,relatime,size=1024k,mode=755)

sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)

udev on /dev type tmpfs (rw,nosuid,relatime,size=10240k,mode=755)

devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620)

shm on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime)

usbfs on /proc/bus/usb type usbfs (rw,noexec,nosuid,devmode=0664,devgid=85)

tswdf419 ~ #

```

Bei mir liegt also alles auf einem ext3. Geht auch  :Wink: 

MfG. Stefan

----------

## tazinblack

Bei mir macht yabootconfig Probleme:

```
yabootconfig 

yaboot is the Linux Loader for PowerPC.  yabootconfig sets up your system to boot directly

from your hard disk, without the need for a boot CD, floppy or a network boot.

Install yaboot bootstrap on /dev/sda1 to boot Linux from /dev/sda3? [Yes] 

Creating a simple /etc/yaboot.conf...

yabootconfig: Cannot find a kernel, please provide one

Enter path to a kernel image: /boot/kernel-3.2.1-gentoo-r2

Enter path to an initrd image (hit Enter for none): 

yabootconfig: Could not determine necessary information, aborting...

yabootconfig: Are you using chroot yabootconfig instead of yabootconfig --chroot ?

livecd etc # yabootconfig -h

Usage: yabootconfig [OPTION]...

Generate a working /etc/yaboot.conf.

  -t, --chroot               set root directory yabootconfig should work from

  -r, --root                 set root partition, Example: /dev/hda3

                default: determined from {chroot}/etc/fstab

  -b, --boot                 set bootstrap partition, Example: /dev/hda2

                default: first type: Apple_Bootstrap partition

      --kernel-args          add an append= line with specified arguments

  -q, --quiet                don't ask any questions/confirmation

      --noinstall            don't automatically run mkofboot

  -h, --help                 display this help and exit

  -V, --version              output version information and exit
```

Kannst du mir da den Aufruf noch sagen?

In der Doku steht was, dass yabootconfig auf IBM Hardware gar nicht funktionieren soll?!?

----------

## bbgermany

Doch das funktioniert, du musst nur das chroot verlassen und dann folgendermaßen aufrufen:

```

yabootconfig --chroot /mnt/gentoo

```

Wie sieht denn deine Partitionstabelle aus?

MfG. Stefan

----------

## tazinblack

ok, habs verstanden: Ich muss das außerhalb des chroot machen, also direkt von der livecd.

Außerdem war bei mir noch ein 

```
append="rootfstype=ext3"
```

in /etc/yaboot.conf gefehlt, da ich auch ext4 direkt im Kernel eingebaut hab.

Super, damit läuft was bei mir jetzt auch!

Vielen Dank für die Tipps!

----------

## bbgermany

Hi,

herzlichen Glückwunsch. Eventuell läuft es aber auch so:

```

< > Second extended fs support

< > Ext3 journalling file system support 

<*> The Extended 4 (ext4) filesystem

[*]   Use ext4 for ext2/ext3 file systems (NEW)

[*]   Ext4 extended attributes (NEW)

[ ]     Ext4 POSIX Access Control Lists (NEW)

[ ]     Ext4 Security Labels (NEW)

[ ]   EXT4 debugging support (NEW)

```

MfG. Stefan

----------

## tazinblack

Hmm, die Geschichte mit dem multipathing über zwei VIOS ist wohl nicht ganz so einfach.

Ich hab dazu dass hier gefunden 

http://www.gentoo.org/doc/en/multipath.xml

Das sieht doch recht einfach aus.

Aber dann das hier:

http://www.ibm.com/developerworks/wikis/display/LinuxP/SLES10+-+Root+on+dm-multipath+device

Ich bastel mal ein bischen rum...

----------

## bbgermany

Ich wünsch dir Glück. Ich würde da ja auch testen, wenn ich könnte, aber leider fehlt mir hier die nötige Hardware  :Sad: 

MfG. Stefan

----------

