linux开发板添加解压命令,【Linux系统移植】NXP 官方开发板 kernel内核 编译与烧录...

sudo apt-get install lzop

(2)uboot或Linux内核可以通过输入“make menuconfig”来打开图形化配置界面,menuconfig 是一套图形化的配置工具,需要 ncurses 库支持,使用以下命令安装ncurses库:

sudo apt-get install build-essential

sudo apt-get install libncurses5-dev

5、编译kernel

(1)新建mx6ull_iot_emmc.sh 的 shell 脚本文件

vim mx6ull_iot_emmc.sh

(2)写入以下内容。shell 脚本要求第一行必须是“#!/bin/bash”或者“#!/bin/sh”。

#!/bin/sh

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx_v7_mfg_defconfig

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all -j12

(2)给脚本文件可执行权限

chmod 777 mx6ull_iot_emmc.sh

(3)执行脚本文件

./mx6ull_iot_emmc.sh

(4)编译过程中弹出图形配置界面,按两下 ESC 键可退出

d83149834ccc749935fc976192052de7.png

(5)编译成功

1> arch/arm/boot

目录下生成

zImage

文件,即 Linux 镜像文件。

2> arch/arm/boo/dts 下生成很多.dtb 文件,

即设备树文件

7524f73042c0012b9e8268511da0950a.png

(6)可以修改顶层Makefile,使用以下命令编译:

“make distclean”:清理工程

“make imx_v7_defconfig”:配置工程

“make menuconfig”:配置图形界面

“make -j12”:编译

如图:

538c1782badb08aaf4ce862a4c6f97c1.png

6、烧录并启动kernel

(1)开发板终端设置uboot中环境变量bootargs

setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw'

saveenv

86687bb7029df9c3fd66d6bf66a242c6.png

(2)将zImage和imx6ull-14x14-evk.dtb复制到Ubuntu中的tftp目录下

cp arch/arm/boot/zImage /home/pjw/linux/tftpboot/

cp arch/arm/boot/dts/imx6ull-14x14-evk.dtb /home/pjw/linux/tftpboot/

(3)开发板终端使用以下命令下载启动内核

tftp 80800000 zImage

tftp 83000000 imx6ull-14x14-evk.dtb

bootz 80800000 – 83000000

(4)如图,内核启动成功:

17fdd88541c63366fa923d6252784f82.png

32147dfd1f4007e62e1341343b5407d0.png

(5)如果没有烧录文件系统,会提示以下错误:

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

即提示内核崩溃,因为 VFS(虚拟文件系统)不能挂载根文件系统,因为根文件系统目录不存在。即使根文件系统目录存在,如果根文件系统目录里面是空的依旧会提示内核崩溃。这个就是根文件系统缺失导致的内核崩溃,但是内核是启动了的,只是根文件系统不存在而已。

之前boot环境变量设置   console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw

console设置linux 终端,串口1 的设备文件是/dev/ttymxc0

115200设置串口的波特率

root=/dev/mmcblk1p2根文件系统存放在 mmcblk1 设备的分区2 ,即EMMC 的分区 2 。

rootwait 表示等待mmc设备初始化完成以后再挂载,否则的话 mmc 设备还没初始化完成就挂载根文件系统会出错的。

rw表示根文件系统是可以读写的,不加 rw 的话可能无法在根文件系统中进行写操作,只能进行读操作。

编译过程遇到的错误问题解决:

错误一:

gcc: error: unrecognized argument in option ‘-mabi=aapcs-linux’

gcc: note: valid arguments to ‘-mabi=’ are: ms sysv

gcc: error: unrecognized command line option ‘-mlittle-endian’

gcc: error: unrecognized command line option ‘-mno-thumb-interwork’

gcc: error: unrecognized command line option ‘-mfpu=vfp’

scripts/Makefile.build:258: recipe for target 'scripts/mod/empty.o' failed

make[2]: *** [scripts/mod/empty.o] Error 1

make[2]: *** 正在等待未完成的任务....

72d1711a4056cbc38b8d699c8fea9e49.png

***

*** Can't find default configuration "arch/x86/configs/imx_v7_mfg_defconfig"!

***

scripts/kconfig/Makefile:105: recipe for target 'imx_v7_mfg_defconfig' failed

make[1]: *** [imx_v7_mfg_defconfig] Error 1

Makefile:541: recipe for target 'imx_v7_mfg_defconfig' failed

make: *** [imx_v7_mfg_defconfig] Error 2

bfc94d80b6228f59f7bd232d292442eb.png

解决:

33042ee38e76a36f7aa5bfacfac9751a.png

使用了默认的 ubuntu自带的gcc编译 ,或者是修改Makefile时没有保存成功。

错误二:

HOSTCC  scripts/kconfig/mconf.o

In file included from scripts/kconfig/mconf.c:23:0:

scripts/kconfig/lxdialog/dialog.h:38:20: fatal error: curses.h: 没有那个文件或目录

compilation terminated.

scripts/Makefile.host:108: recipe for target 'scripts/kconfig/mconf.o' failed

make[1]: *** [scripts/kconfig/mconf.o] Error 1

Makefile:541: recipe for target 'menuconfig' failed

make: *** [menuconfig] Error 2

scripts/kconfig/conf  --silentoldconfig Kconfig

e1dd708ba5aa7e930f850e2e699f1251.png

解决:

uboot

Linux

内核可以通过输入“

make menuconfig

”来打开图形化配置界面,

menuconfig 是一套图形化的配置工具,需要 ncurses 库支持,使用以下命令安装

ncurses

库:

sudo apt-get install libncurses5-dev

错误三:

recipe for target ‘arch/arm/boot/compressed/piggy.lzo’ failed

1ab5a2c95a3dbf37985aa9b0478dae07.png

解决:

使用以下命令安装

lzop

库。

sudo apt-get install lzop

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值