Command explanations make mrproper: This will ensure that the kernel tree is absolutely clean. We do this because the kernel team recommend that this is done prior to each kernel compilation, and that we shouldn't rely on the source tree being automatically clean after untarring. yes "" | make config: This runs make config and answers with the default answer to every question the config script asks the user (it does this by simply doing the equivalent of hitting the Enter key, thus accepting the default Y and N answers to the questions). We're not configuring the real kernel here, we just need to have some sort of configure file created so that we can run make dep next that will create a few header files in include/linux, like version.h, among others, that we will need to compile Glibc and other packages later in chroot. make dep: make dep checks dependencies and sets up the dependencies file. We don't really care about the dependency checks, but what we do care about is that make dep creates those aforementioned files in include/linux we will be needing later on. mkdir $LFS/usr/include/asm and cp include/asm/* $LFS/usr/include/asm: This copies the platform-specific assembler kernel header files to $LFS/usr/include/asm. cp -R include/linux $LFS/usr/include: This command copies the cross-platform kernel header files to $LFS/usr/include.