在编译linux、busybox、grub等的过程中经常会报各种错误,大多数都是由于库文件或头文件找不到引起的,因为使用诸如make menuconfig等命令需要使用到相关的库,下面就列举出几种库。
apt-get install build-essential kernel-package libncurses5-dev libqt3-headers
build-essential (基本的编程库(gcc, make等)
kernel-package (Debian 系统里生成 kernel-image 的一些配置文件和工具)
libncurses5-dev (meke menuconfig要调用的)
libqt3-headers (make xconfig要调用的)
libssl-dev(linux4.x需要安装)
安装上面的库可能会因为路径资源的原因而获取失败,执行apt-get update可解决此问题。
编译内核
就一个命令:make(可以带-jN选项,使N个进程并行编译),在虚拟机下做奇慢无比,可以考虑晚上挂机编译。第二次编译就快很多了(Makefile的精髓)。如果需要清除所有旧的配置和旧的编译目标等文件,用make mrproper命令。
Busybox的作用:
busybox是一个集成了一百多个最常用linux命令和工具的软件,他甚至还集成了一个http服务器和一个telnet服务器,而所有这一切功能却只有区区1M左右的大小.我们平时用的那些linux命令就好比是分立式的电子元件,而busybox就好比是一个集成电路,把常用的工具和命令集成压缩在一个可执行文件里,功能基本不变,而大小却小很多倍,在嵌入式linux应用中,busybox有非常广的应用,另外,大多数linux发行版的安装程序中都有busybox的身影,安装linux的时候案ctrl+alt+F2就能得到一个控制台,而这个控制台中的所有命令都是指向busybox的链接.
如果您正在构建一个具有特殊需求的嵌入式设备,那就可以手工使用
menuconfig
make
目标来配置 BusyBox 的内容。如果您熟悉 Linux 内核的编译过程,就会注意到 menuconfig
与配置
Linux 内核的内容所使用的目标相同。实际上,它们都采用了相同的基于 ncurses 的应用程序。