Command explanations ln -s /static/bin/pwd /bin/pwd: In the kernel source, the path to the pwd program is hard-wired as /bin/pwd, so we create a temporary symlink to account for that. At the end we remove it again. make mrproper: This ensures that the kernel tree is absolutely clean. The kernel team recommends that this command be issued prior to each kernel compilation and that you shouldn't rely on the source tree being clean after untarring. make include/linux/version.h and make symlinks: This creates the include/linux/version.h file and the platform-specific include/asm symlink. cp -HR include/asm /usr/include and cp -R include/asm-generic /usr/include: These commands copy the platform-specific assembler kernel header files to /usr/include/asm and /usr/include/asm-generic. cp -R include/linux /usr/include: This command copies the cross-platform kernel header files to /usr/include. touch /usr/include/linux/autoconf.h: This creates an empty autoconf.h file. As we do not yet configure the kernel, we have to create this file ourselves for those few kernel header files that make use of it, to avoid compilation failures.