BINGO!
After one week and a lot of time I have finally boot a Linux ppc64 distro.
The distro is Debian 12/13 Sid/Trixie (in the
iso appear the 12, but cat /etc/debian_version report Trixie)
This is how I did for install (you need some little skills: how create fs, know how to create a chroot, known qemu..)
I decline any responsibility in case of damage, of course. Proceed at your own risk
a)Install directly from DVD or Network is useless, go directly to a kernel panic
b)I have installed first the system (on a qemu-ppc-64 Virtual Machine, then I boot it to check if works..)
and works.
c)Now we have to create a custom kernel for the problematic 9111-285 Ibm Workstation
so I boot the vm + a USB empty disk in a X86 pc
Code:
#!/bin/bash
CDROM=/dev/sr0
DISCO=linux.qcow2
RAM=4096
BOOT=d
qemu-system-ppc64 -m $RAM \
-boot $BOOT \
-drive file=$DISCO,if=none,id=drive-virtio-disk0 \
-device virtio-scsi-pci,id=scsi \
-device scsi-hd,drive=drive-virtio-disk0 -drive file=/dev/sdd,if=virtio \
-netdev tap,id=n1,ifname=tap1,script=no,downscript=no -device virtio-net,netdev=n1 -smp 4 -cdrom $CDROM -accel tcg -nographic
d)after the system boot, we want to create a new system with a custom kernel on empty disk, so we partition the disk in this way (the system see it as /dev/vda)
Code:
fdisk -l /dev/vda
Device Boot Start End Sectors Size Id Type
/dev/vda1 * 2048 16383 14336 7M 41 PPC PReP Boot
/dev/vda2 16384 558817279 558800896 266,5G 8e Linux LVM
sfdisk -d /dev/vda
label: dos
label-id: 0xc9c164f5
device: /dev/vda
unit: sectors
sector-size: 512
/dev/vda1 : start= 2048, size= 14336, type=41, bootable
/dev/vda2 : start= 16384, size= 558800896, type=8e
e)we can format the vda2 partition in the way we want, personally I use lvm+ext4 because is safe and tested
there is no need to separate boot partition, we mount the lvm root on /mnt
Code:
pvcreate /dev/vda2
vgcreate myvg /dev/vda2
lvcreate -n root -L 50G myvg
lvcreate -n home -L 50G myvg
lvcreate -n swap -L 16G myvg
mount /dev/myvg/root /mnt
mount /dev/myvg/home /mnt/home
f)we can use debootstrap program but..
it fail
g)so I have follow this strange way I have download all this stuff (ignore missing packages) for ppc64 (site debian-packages)
Code:
adduser
apt
apt-transport-https
apt-utils
base-files
base-passwd
bash
bash-completion
bsdmainutils
bsdutils
ca-certificates
coreutils
cpio
cron
dash
debconf
debconf-i18n
debian-archive-keyring
debian-ports-archive-keyring
debianutils
diffutils
dmidecode
dmsetup
dpkg
e2fslibs
e2fsprogs
findutils
gcc-6-base
gnupg
gnupg-agent
gpgv
grep
gzip
hostname
ifupdown
init
init-system-helpers
iproute2
iptables
iputils-ping
isc-dhcp-client
isc-dhcp-common
kmod
libacl1
libapparmor1
libapt-inst2.0
libapt-pkg
libapt-pkg6.0
libassuan0
libattr1
libaudit-common
libaudit1
libblkid1
libbsd0
libbz2-1.0
libc-bin
libc6
libcap-ng0
libcap2
libcomerr2
libcrypt1
libcryptsetup4
libcurl3-gnutls
libdb5.3
libdebconfclient0
libdevmapper1.02.1
libdns-export162
libelf1
libestr0
libfastjson4
libfdisk1
libffi6
libgcc-s1
libgcc1
libgcrypt20
libgdbm3
libgmp10
libgnutls30
libgpg-error0
libgssapi-krb5-2
libhogweed4
libhogweed6
libidn11
libidn2-0
libip4tc0
libip6tc0
libiptc0
libisc-export160
libk5crypto3
libkeyutils1
libkmod2
libkrb5-3
libkrb5support0
libksba8
libldap-2.4-2
libldap-common
liblocale-gettext-perl
liblogging-stdlog0
liblognorm5
liblz4-1
liblzma5
libmd0
libmnl0
libmount1
libncurses5
libncursesw5
libnetfilter-conntrack3
libnettle6
libnettle8
libnewt0.52
libnfnetlink0
libnghttp2-14
libnpth0
libp11-kit0
libpam-modules
libpam-modules-bin
libpam-runtime
libpam0g
libpcre2-16-0
libpcre2-8-0
libpcre3
libpipeline1
libpopt0
libprocps6
libpsl5
libreadline7
librtmp1
libsasl2-2
libsasl2-modules-db
libseccomp2
libselinux1
libsemanage-common
libsemanage1
libsepol1
libslang2
libsmartcols1
libsqlite3-0
libss2
libssh2-1
libssl1.0.2
libssl1.1
libstdc++6
libsystemd0
libtasn1-6
libtext-charwidth-perl
libtext-iconv-perl
libtext-wrapi18n-perl
libtinfo5
libtinfo6
libudev1
libunistring0
libunistring5
libustr-1.0-1
libuuid1
libxapian30
libxtables12
libxxhash0
libzstd1
login
logrotate
lsb-base
mawk
mount
multiarch-support
nano
ncurses-base
ncurses-bin
netbase
openssl
passwd
perl-base
pinentry-curses
procps
readline-common
rsyslog
sed
sensible-utils
systemd
systemd-sysv
sysvinit-utils
tar
tasksel
tasksel-data
tzdata
udev
util-linux
vim-common
vim-tiny
wget
whiptail
xxd
zlib1g
zstd
and I decompress it in the "newroot" /mnt
how to do? use a script like this
Code:
vim script.sh
#!/bin/bash
set -x
ar x $1 && tar -xvf data.tar.?z && rm *z
and exec it for all .deb files downloaded (I put those in the directory /mnt/paccgh)
Code:
cd /mnt
find paccgh/ -type f -name *deb -exec ./script.sh {} \;
we do chroot /mnt..and works!
Code:
for i in dev proc sys; do mount -o bind -v /$i/ /mnt/$i;done
chroot /mnt
now in the chroot go to the directory where the list of
packages with .deb extension were and reinstall it with dpkg
Code:
cd /paccgh
dpkg -i --force-all *deb
we have now a pseudo-ready system, fix the broken packages
with this command
or reinstall again with dpkg this time without force
you are ready when dpkg -l return no packages with incomplete or broken flag
h)proceed with those steps
° install main packages: apparmor, systemd, login, openssh-server, iputils, cron, at, acl, passwd, fstools (lvm, mdadm, btrfs-progs, ext2utils, etc..)
Code:
apt -y install lvm mdadm ext2utils openssh-server...
° configure fstab (don't use /dev/vda* or /dev/sda use LABEL or UUID, or on reboot don't boot because the disk which now is vda, on a real machine became sda)
Code:
UUID=1234..... swap swap defaults 0 0
UUID=2345..... / ext4 defaults,acl 1 1
UUID=4585..... /home ext4 defaults,acl 1 2
you can obtain uuid using blkid
° configure users and set a password for root
Code:
adduser youruser
echo -e 'yourpassword\nyourpassword\n'|passwd root
echo -e 'yourpassword\nyourpassword\n'|passwd youruser
i)now the most important thing, the custom kernel, personally I follow this way, I have downloaded the latest
LTS from kernel.org, I decompress it in /usr/src and I create the Debian packages using this way
Code:
apt -y install build-essential linux-source bc kmod cpio flex libncurses5-dev libelf-dev libssl-dev dwarves bison
Code:
cd /usr/src/linux-4.14.328
for the .config I copied the old config for Debian 8 kernel (the latest system which install on 9111-285 without panic) and I did "make old config", for the new "answers" I have copied from the Gentoo kernel some messages above and
from my Slackware kernel configuration, this is the finally
.config ready for use.
After did this do
Code:
nice make -j`nproc` bindeb-pkg
after 6-9 hours the kernel is ready..but I don't know why it create a powerpc package instead of ppc64, we can install it with force-all
Code:
dpkg -i --force-all /usr/src/linux*deb
l)now we miss only the grub package
Code:
apt -y install grub-ieee1275
install it on disk
Code:
grub-install /dev/vda1
update initramfs
Code:
update-initramfs -cv -k all
update grub
l)we are ready, exit from chroot, umount it and poweroff the vm
Code:
exit
umount /mnt/dev/pts
umount /mnt/proc
umount /mnt/sys
shutdown -h now
m)Now the big problem...our disk is SATA, and the 9111-285 use scsi or ide disks
we can solve using a docking station like
this one (usb2!) insert the disk and boot the workstation to SMS menu (you need a serial connection), do not use usb key/flash/pen because don't work.
n)the system cannot boot from the "usb" disk, you have to boot from Debian 8 dvd ppc64, use rescue, then select console and copy with dd from usb-sata disk to scsi disk the two partitions: prep boot and lvm