|
主机平台: UBUNTU14.04
硬件平台:明远智睿MY-IMX6-EK200-6Q-1G
内核版本 :linux-4.1.15
交叉编译链:arm-poky-linux-gnueabi
下载busybox: https://busybox.net/downloads/busybox-1.31.1.tar.bz2
配置交叉编译工具:
$ source /home/myzr/my-work/03_toolchain/fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0/environment-setup-cortexa9hf-neon-poky-linux-gnueabi
解压:
$ tar xf busybox-1.31.1.tar.bz2
$ cd busybox-1.31.1
配置:
$ make menuconfig
Settings --->
build options --->
Cross compiler prefix (添加交叉编译工具链绝对路径):
/home/myzr/my-work/03_toolchain/fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-
Path to sysroot(添加sysroot路径):
/home/myzr/my-work/03_toolchain/fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi
Additional CFLAGS(配置环境参数):
-march=armv7-a -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a9
Additional LDFLAGS(配置环境参数):
--sysroot=/home/myzr/my-work/03_toolchain/fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi
环境参数可以打印$CC查看
$ echo $CC
开始编译busybox:
$ make
$ make install
进入到安装的目录,创建目录:
$ cd _install
$ mkdir root dev etc boot tmp var sys proc lib mnt home usr
$ mkdir etc/init.d etc/rc.d etc/sysconfig
$ mkdir usr/sbin usr/bin usr/lib usr/modules
$ sudo mknod -m 600 dev/console c 5 1
$ sudo mknod -m 600 dev/null c 1 3
$ mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/temp
$ mkdir var/lib var/lock var/run var/tmp
$ chmod 777 tmp
$ chmod 777 var/tmp
将交叉编译工具中的库复制到文件系统:
$ cp /home/myzr/my-work/03_toolchain/fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi/usr/lib/ -rd
$ cp /home/myzr/my-work/03_toolchain/fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi/usr/lib/* usr/lib/ -rd
由于这个工具链中是包含了QT库的,所以最后打包得到的文件系统会比较大(188M左右)
也可以选择复制工具链5.3中的库(只有一些基础库),得到的文件系统会比较小(44M左右),命令如下:
$ cp ~/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/lib/* lib -rd
$ cp ~/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/lib/* lib -rd
$ cp ~/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/lib/* lib -rd
$ cp ~/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/lib/* usr/lib -rd
$ cd etc
$ vi inittab
复制以下内容:
::sysinit:/etc/init.d/rcS
console::askfirst:-/bin/sh
::restart:/sbin/init
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
::shutdown:/sbin/swapoff -a
$ chmod a+x inittab
$ cd init.d
$ vi rcS
复制以下内容:
mount -a
echo "Starting..."
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
/bin/hostname -F /etc/sysconfig/HOSTNAME
$ chmod a+x rcS
$ cd ..
$ vi profile
复制以下内容:
PATH=/bin:/sbin:/usr/bin:/usr/sbin
export PATH
#set hostname
HOSTNAME='/bin/hostname'
export HOSTNAME
# Set PS1
PS1='[\u@\h \W]\$'
export PS1
拷贝主机/etc目录下的passwd和group文件到etc目录下:
$ cp /etc/passwd ./
$ cp /etc/group ./
$ cd sysconfig
$ vi HOSTNAME
在文件中写入主机名,我这里写的是:myzr
打包文件系统 $ cd ../..
$ tar -cjvf rootfs.tar.bz2 *
rootfs.tar.bz2 即为打包好的文件系统,放入烧录工具中进行烧录,烧录成功后启动:
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|