开发环境:ubuntu 16 64位
使用外部工具链编译错误:Incorrect selection of the C library 解决方法安装32位支持: sudo
apt-get install libc6:i386 libstdc++6:i386 libncurses5:i386
zlib1g:i386
内核版本计算
使用的Linux系统为MANJARO,内核版本号为4.4.45,对应的LINUX_VERRSION_CODE 为263213,计算方法如下:
首先将4.4.45 转为16进制为 0x04.0x04.0x2D 然后宏
KERNEL_VERSION(0x04,0x04,0x2D)展开之后得到04042D 这个16进制的数字 最后将0x040423
转化为十进制就得到了十进制的263213 即为 LINUX_VERSION_CODE的值263213
根文件系统buildroot
1.下载安装
安装一些依赖
apt-get install linux-headers-$(uname -r)
然后下载根文件系统,下载完后解压
wget https://buildroot.org/downloads/buildroot-2017.08.tar.gz
tar xvf buildroot-2017.08.tar.gz
2.配置根文件系统
进入到刚下载的根文件系统文件夹里make menuconfig
cd buildroot-2017.08/
make menuconfig
Target options
Target Architecture (ARM (little endian))
Target Architecture Variant (cortex-A7)
Toolchain
选择外部工具链
Toolchain Path:
/opt/gcc-linaro-7.1.1-2017.08-x86_64_arm-linux-gnueabihf
Toolchain prefix :
arm-linux-gnueabihf
External toolchain gcc version (7.x)
External toolchain kernel headers series (4.10.x)
External toolchain C library (glibc/eglibc)
System configuration
System configuration里面可以设置主机名,root密码等。
Target packages
Target packages 里面可以选择一下软件包等等。
其他的选项可以自行学习一下。
3.编译
执行make命令进行编译。
编译完成后,在output/images/文件夹下的rootfs.tar就是根文件系统。