Freitag, 13. Oktober 2017

Installing Slackware on GPD Pocket

I tried installing Slackware on my GPD Pocket. I wasn't able to boot some of the regular install-iso's or live-cd. (they all stuck after the grubmenu)
So I finally tried the usbboot.img from usb-and-pxe-installers - section.

...and it booted without any problems. I connected the usbstick via a usb-hub with a usb-ethernet-adapter on another port of the hub. (be sure to connect power-supply to your pocket, if you use a passiv-hub).

I booted the usbboot.img and did a normal network-install with a current-mirror to get an actual kernel installed.

At the end of the installation I installed elilo, rebooted and the pocket won't boot into the new system.

So I took an ubuntu-live-system from https://apt.nexus511.net/index.html (great thanks to that guy!). I chrooted into the Slackware-System:

mount /dev/mmcblk0p2 /mnt
mount /dev/mmcblk0p1 /mnt/boot/efi

mount -o bind /dev /mnt/dev
mount -o bind /sys /mnt/sys
mount -o bind /proc /mnt/proc

cp /etc/resolv.conf /mnt/etc/

chroot /mnt /bin/bash

Instead of tinkering with the installed kernel, I decided to install Hans de Goedes - Kernel (https://github.com/jwrdegoede/linux-sunxi) with the .config-file from nexus.

cd /usr/src
git clone https://github.com/jwrdegoede/linux-sunxi.git
rm linux
ln -s linux-sunxi linux
cp .configold linux/.config
cd linux
make oldconfig
make bzImage modules
make modules_install
cp arch/x86_64/boot/bzImage /boot/vmlinuz-degoede-4.14.0-rc3+
cp System.map /boot/System.map-degoede-4.14.0-rc3+
cp .config /boot/config-degoede-4.14.0-rc3+
cd /boot/
rm System.map
ln -s System.map-degoede-4.14.0-rc3+ System.map

generated initrd:

/usr/share/mkinitrd/mkinitrd_command_generator.sh -k 4.14.0-rc3+

gives:

mkinitrd -c -k 4.14.0-rc3+ -f ext4 -r /dev/mmcblk0p2 -m usb-storage:sdhci:sdhci-acpi:xhci-pci:ohci-pci:ehci-pci:xhci-hcd:uhci-hcd:ehci-hcd:hid:usbhid:i2c-hid:hid_generic:hid-cherry:hid-logitech:hid-logitech-dj:hid-logitech-hidpp:hid-lenovo:hid-microsoft:hid_multitouch:ext4 -u -o /boot/initrd.gz

You have to add the mmc_block module to the modules. So

mkinitrd -c -k 4.14.0-rc3+ -f ext4 -r /dev/mmcblk0p2 -m usb-storage:sdhci:sdhci-acpi:xhci-pci:ohci-pci:ehci-pci:xhci-hcd:uhci-hcd:ehci-hcd:hid:usbhid:i2c-hid:hid_generic:hid-cherry:hid-logitech:hid-logitech-dj:hid-logitech-hidpp:hid-lenovo:hid-microsoft:hid_multitouch:ext4:mmc_block -u -o /boot/initrd.gz

gives you a proper initrd

copy the initrd and your kernel-file to

/boot/efi/EFI/Slackware/

and run

eliloconfig

now you can reboot and your pocket should start correct starting udevadm takes some time (I don't know why) but at the end there's the login-prompt and you can login as root and do all the post-installation-stuff (creating user account, tinker the xorg.conf, ...)


Dienstag, 3. Oktober 2017

uncompressing, editing and recompressing an initrd

  1. Create a directory and switch into it:

    # mkdir test
    # cd test
  2. Then uncompress and extract the initrd:

    # zcat /boot/initrd.img | cpio -idmv
  3. Edit the contents (if needed)
  4. Repack and compress the initrd image:

    # find . | cpio -o -c | gzip -9 > /boot/test.img
  5. For image compressed with xz format, use commands below to extract the initrd image.

    # mkdir /tmp/initrd
    # cd /tmp/initrd
    # xz -dc < initrd.img | cpio --quiet -i --make-directories
  6. Edit the contents (if needed)
  7. Repack and compress the initrd image:

    # cd /tmp/initrd
    # find . 2>/dev/null | cpio --quiet -c -o | xz -9 --format=lzma >"initrd.img"

found on: https://access.redhat.com/solutions/24029