Kernel build: (updated 2018-05-09) Make sure you have ~40GB disk space available apt-get install dpkg-dev Go through /etc/sources.list and uncomment all the source URLs: sed -i -e 's/^# deb-src/deb-src/' /etc/apt/sources.list apt-get update apt-get source linux-image-$(uname -r) (as normal user in home dir) apt-get build-dep linux-image-$(uname -r) apt-get install libncurses5-dev qt4-qmake libqt4-dev aptitude cd into kernel dir chmod a+x debian/rules chmod a+x debian/scripts/* chmod a+x debian/scripts/misc/* fakeroot debian/rules clean fakeroot debian/rules editconfigs # you need to go through each (Y, Exit, Y, Exit..) or get a complaint about config later Old way: make menuconfig (changes as needed) Add something like "+test1" to the end of the first version number in the debian.master/changelog file fakeroot debian/rules binary When done, dpkg -i linux-{image,image-extra,headers}*version*.deb Comment out both GRUB_HIDDEN_TIMEOUT lines in /etc/default/grub Run update-grub as root reboot Device Drivers→ ATA/ATAPI/MFM/RLL support