Am Tue, 30 May 2017 09:26:03 +0100 schrieb Peter Humphrey <pe...@prh.myzen.co.uk>:
> On Monday 29 May 2017 21:42:28 Kai Krakow wrote: > > Am Mon, 29 May 2017 19:16:11 +0100 > > > > schrieb Neil Bothwick <n...@digimed.co.uk>: > > > On Mon, 29 May 2017 15:07:48 -0300, Raphael MD wrote: > [...] > [...] > > > > > > You said you were using rEFInd, why have you got GRUB as well. > > > rEFInd can work without a config, GRUB cannot. > > > > This puzzles me, too... Maybe rEFInd was installed to sda and grub > > installed to sda1, so rEFInd would chain-boot through grub. > > > > Grub, however, won't work without a config file. I'd also suggest to > > skip grub completely and use just one loader. > > Not only that, but for some reason I couldn't get grub to work at all > on my Asus UEFI system. I use systemd-boot only, with a separate > config file for each kernel I might want to boot. (I do not have the > rest of systemd in this openrc system; just its boot program.) > > It might not help the OP but this is my script for compiling a kernel: > > # cat /usr/local/bin/kmake > #!/bin/bash > mount /boot > cd /usr/src/linux > time (make -j12 && make modules_install && make install &&\ > /bin/ls -lh --color=auto /boot &&\ > echo &&\ > cp -v ./arch/x86/boot/bzImage /boot/EFI/Boot/bootX64.efi > ) &&\ > echo; echo "Rebuilding modules..."; echo &&\ > emerge --jobs --load-average=48 @module-rebuild @x11-module-rebuild > > He may be missing the copying step; that would explain his inability > either to boot or to supply the info you asked him for. I hooked into the install hook infrastructure of the kernel instead: $ cat /etc/kernel/postinst.d/70_rebuild-modules #!/bin/bash exec env -i PATH=$PATH /usr/bin/emerge -1v --usepkg=n @module-rebuild $ cat /etc/kernel/postinst.d/90_systemd #!/bin/bash /usr/bin/kernel-install remove $1 $2 /usr/bin/kernel-install add $1 $2 This takes care of everything and the kernel-install script from systemd also rebuilds the dracut initrd (because it installed hooks to /usr/lib/kernel/install.d). eclean-kernel can then be used to properly clean up obsolete kernel versions. I'm running it through cron to keep only the most recent 5 kernels at weekly intervals. For the hooks to properly execute at the right time, it is important to give the "make install" target last: $ cd /usr/src/linux $ make oldconfig # make -j9 # make modules_install firmware_install install The "install" target triggers the hooks, so modules have to be already installed at that time. Additionally I have a script to rebuild dracut easily on demand (e.g., when early boot components were updated or changed): $ cat /usr/local/sbin/rebuild-dracut.sh #!/bin/bash set -e if [ "$1" == "-a" ]; then versions=$(cd /boot && ls vmlinuz-* | fgrep -v .old | sed 's/vmlinuz-//') else versions="$@" fi versions=${versions:=$(uname -r)} for hook in $(ls /etc/kernel/postinst.d/*_{dracut,grub,systemd} 2>/dev/null); do for version in $versions; do ${hook} ${version%.old} /boot/vmlinuz-${version} done done -- Regards, Kai Replies to list-only preferred.