#!/bin/bash ## # Add xhci-pci.ko and ohci-pci.ko into initrd # Need sys-fs/squashfs-tools, app-arch/xz-utils, app-arch/cpio, app-cdr/cdrtools and sys-boot/syslinux IMAGE=install-amd64-minimal-20150924 ## mount iso image, copy contents do disk and umount it mount -o loop ${IMAGE}.iso /mnt/cdrom/ mkdir install_img_dir cp -a /mnt/cdrom/* install_img_dir/ umount /mnt/cdrom/ ## extract xhci-pci.ko and ohci-pci.ko from image.squashfs mkdir workdir cd workdir unsquashfs ../install_img_dir/image.squashfs lib64/modules/4.0.5-gentoo/kernel/drivers/usb/host/xhci-pci.ko lib64/modules/4.0.5-gentoo/kernel/drivers/usb/host/ohci-pci.ko ## unpack initrd xz -d -c < ../install_img_dir/isolinux/gentoo.igz > gentoo mkdir initrd cd initrd cpio -i < ../gentoo ## add missing xhci-pci.ko and ohci-pci.ko to unpacked initrd cp ../squashfs-root/lib64/modules/4.0.5-gentoo/kernel/drivers/usb/host/?hci-pci.ko lib64/modules/4.0.5-gentoo/kernel/drivers/usb/host/ ## and registrate it sed -ie '1ixhci-pci\nohci-pci' etc/modules/usb ## pack initrd back find . -print0 | cpio -o -0 -H newc > ../gentoo cd .. xz -e --check=none -z -f -9 gentoo ## copy it to contents if iso image cp gentoo.xz ../install_img_dir/isolinux/gentoo.igz ## make hybrid iso image cd .. mkisofs -o ${IMAGE}-Xhci-pci.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R install_img_dir isohybrid ${IMAGE}-Xhci-pci.iso