Skip to content

Instantly share code, notes, and snippets.

@pjf
Last active February 23, 2021 04:56
Show Gist options
  • Save pjf/19415f61a602afbc592517250df52839 to your computer and use it in GitHub Desktop.
Save pjf/19415f61a602afbc592517250df52839 to your computer and use it in GitHub Desktop.
My personal notes on building my kernel. These are rough and unedited, and I jchange the version numbers for whatever kernel I'm building. These notes come with absolutely no warranty, and you don't want to be turning on all the debug stuff unless you've got a very good reason. Especially for ACPI_EC_DEBUGFS. Why would you do that?

Booting with a mainline kernel on Ubuntu with 4.7.5 or above.

Some machines die with "cannot find root" unless CONFIG_UEVENT_HELPER is set. This is the case with Ubuntu kernels 4.6.x and earlier, but not in 4.7.5. I have no idea why.

Here's how I built my own:

  • git clone --branch v4.7.5 --depth=1 git://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack
  • Later: git fetch --depth=1 origin v4.8.8; git checkout FETCH_HEAD; git checkout -b v4.8.8-pjf
  • rm -rf debian.master debian
  • Apply all the patches from mainline with -p1 ( http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.7.5/ )
  • Copy your config from your already installed mainline kernel /boot/whatever to .config
  • Edit to enable CONFIG_UEVENT_HELPER=y, and CONFIG_UEVENT_HELPER_PATH=""
  • Edit to enable CONFIG_DEBUG_MUTEXES=y
  • Edit to enable CONFIG_ACPI_DEBUG=y
  • Edit to enable CONFIG_ACPI_EC_DEBUGFS=m
  • I've enabled FORTIFY_SOURCE. I assume this is safe?
  • Cherry-pick redacted (secret fixes)
  • No longer cherry-pick 9e81c7d1a (P57 trackpad fixes), as now upstream
  • touch REPORTING-BUGS (otherwise make-kpkg fails)
  • make olddefconfig (use old settings for old things, and default for new)
  • fakeroot make-kpkg --initrd --revision=4.7.5.pjf kernel_image kernel_headers -j8
  • *.deb files are created in directory above this one.

Things to remember:

  • dpkg-reconfigure linux-kernel-whatever linux-image-whatever is your friend if you need to rebuild dkms/grub/etc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment