after some time, I finally found the time and the guts to revert my inital idiot move of upgrading libc6...so, this is what I went through and how I got things to work (and compile) perfectly now:
Libc6 downgrade:
oh boy, what a mess. Finally got the idea why everybody who knows something about distros will tell you that this is a very, very bad idea. But got it back to wheezy-backports state, with the 3.16 kernel booting.
Update btrfs-tools to 4.3.1:
Before the kernel upgrade, I decided to recompile btrfs-tools myself. The steps listet in this thread (sh-script) were very very helpful. But I realized that the standard source is missing some important udev patches, which make volumes not mountable during boot or even manual intervention. What worked our perfect for me was:
- Install prerequisites as per shell script in this thread
- run:
dget -u http://http.debian.net/debian/pool/main/b/btrfs-tools/btrfs-tools_4.3-1.dsc
this will pull the necessairy stuff from the debian archives, extract it into a new directory in current dir
- cd into extracted btrfs dir
- run:
dpkg-buildpackage -us -uc
this will create a working package. DO NOT RUN ./autogen.sh. buildpackage will complain, because this alters the already patched and configured sources.
- cd ..
- dpkg -i with the created package
After that, i got a working btrfs-tools, with proper udev rules and all the goodness, including all pre- and post-install scripts in the package.
Kernel building:
Totally different approach now. Since I already got the .config, things were easy. I still went with 4.1 series, since it is lts, and 4.4 is still a bit new. But I will upgrade when it hits 4.4.1 or maybe 4.4.2.
apt-get install git fakeroot build-essential ncurses-dev xz-utils
- very important to get make-kpkg:
apt-get --no-install-recommends install kernel-package
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.1.15.tar.xz
tar xvf linux-4.1.15.tar.xz
-
- copy .config and run make menuconfig, just to be sure. You can get my config from github (see this thread)
- run the magic:
fakeroot make-kpkg -j5 --initrd --append-to-version=-amd64 --revision=1.0.YOURCUSTOMNAME kernel_image kernel_headers
- cd ..
- dpkg -i the header and image
Building with make-kpkg is so much easier, and from what I've read, preffered over deb-pkg (make-kpkg actually runs deb-pkg and A LOT of other stuff). With these, everything seems to be in place properly. I got rid of a lot of concerning dmesg entries from my previous compiles. I will work on the github repo some time soon to update the instructions and provide the packages there, since I'm back on stock libc6 now, which shouldn't break with all the other packages anymore.
Sorry for some redundant information for some of you, hope this helps, just wanted to give you guys an update. I'm going to upgrade my hardware in the future (C226 based MB with IPMI, ECC RAM, more drives), hence the need for some additional work here. Stay tuned for the updated packages on the repo...I will remove the source completely and only provide .configs and prebuild packages in the future...but this will have to wait until the next day or the upcoming weekend.