I'm trying to compile a custom kernel with BTRFS support under Ubuntu 18.04. When I compile and install 4.20.70-generic everything's fine and the system starts without any problem. Btw, I can't use anything newer, because I also need a custom driver (later) that won't compile on anything newer than 4.x.
When I compile the same kernel source using a customized Kernel config file for 4.17.4 (make oldconfig) and answer all the questions, then the same system can't find the BTRFS root volume. Showing the following error:
Begin: Running /scripts/init-premount ... doneBegin: Mounting root file system ... Begin: Running /scripts/local-top ... doneBegin: Running /scripts/local-premount ... Btrfs loaded, crc32c=crc32c-genericScanning for Btrfs filesystemsdone.Begin: Waiting for root file system ... Begin: Running /scripts/local-block ... donedone.Gave up waiting for root file system deviceALERT! UUID=a7ff8aa1-5518-4cd3-992f-eab4ed909443 does not exist. Dropping to a shell!
The kernel cmdline is the same for both kernel and the UUID is valid and both .config files (make menuconfig -> make install) have the same BTRFS module included:
CONFIG_BTRFS_FS=mCONFIG_BTRFS_FS_POSIX_ACL=ylinux /@/boot/vmlinuz-4.18.0-15-generic root=UUID=a7ff8aa1-5518-4cd3-992f-eab4ed909443 ro rootflags=subvol=@linux /@/boot/vmlinuz-4.18.0-15-mykernel root=UUID=a7ff8aa1-5518-4cd3-992f-eab4ed909443 ro rootflags=subvol=@
So there must be something else that needs to be enabled when compiling the kernel. What am I missing?