Linux驱动开发 | uboot、linux kernal编译

一、uboot编译

  1. 编译之前先安装 ncurses 库,否则编译会报错,
    sudo apt-get install libncurses5-dev
  2. 将uboot放在ubuntu的/home/zys/linux/uboot中,uboot在开发板光盘->1、例程源码->3、正点原子 Uboot 和 Linux 出厂源码-> uboot-imx-2016.03-2.1.0-g8b546e4.tar.bz2。
  3. 解压
    tar -vxjf uboot-imx-2016.03-2.1.0-g8b546e4.tar.bz2
  4. 编写脚本(编译uboot),mx6ull_alientek_nand.sh
#!/bin/bash
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- disclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_ddr256_nand_defconfig
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j8
  1. 使用 chmod 命令给予 mx6ull_alientek_nand.sh 文件可执行权限,然后就可以使用这个 shell脚本文件来重新编译 uboot,命令如下:
    ./mx6ull_alientek_nand.sh
  2. 编译好之后就可以进行烧写了,这里烧写到sd里,然后以sd启动。
    在这里插入图片描述
    可以看出 插上sd卡之后 sdb就是sd卡
    ./imxdownload u-boot.bin /dev/sdb

二、Linux内核编译

  1. ./im6ull-alientek-nand.sh
    生成zImage寿命说明编译成功在这里插入图片描述
  2. 编译完成得到zImage和imx6ull-14x14-evk.dtb,然后把这个两个文件拷贝到tftp里
    cp arch/arm/boot/zImage /home/zys/linux/tftpboot/ -f
    cp arch/arm/boot/dts/imx6ull-14x14-evk.dtb /home/zys/linux/tftpboot/ -f
  3. 从网络启动 Linux 系统
    这里我们使用 tftp 从 Ubuntu 中下载 zImage 和设备树文件
    在这里插入图片描述
setenv bootargs 'console=tty1 console=ttymxc0,115200 rw root=/dev/nfs nfsroot=192.168.2.136:/home/zys/linux/nfs/rootfs ip=192.168.2.157:192.168.2.136:192.168.2.1:255.255.255.0::eth0:off'
setenv bootcmd 'tftp 80800000 zImage;tftp 83000000 imx6ull-alientek-nand.dtb;bootz 80800000 - 83000000'
saveenv

如果出现内核崩溃,说明没有挂载成功网络文件系统。
因为我是新装的一台机器,直接把虚拟机里做好的rootfs文件夹拷贝到新机器里,所以出现了挂载失败的问题。这里需要在虚拟机rootfs文件夹中进行打包,将当前文件夹内所有内容打包
tar -vczf rootfs.tar.gz *
tar -vxzf rootfs.tar.gz -C rootfs
在这里插入图片描述

三、问题

  1. 内核编译出错
    在这里插入图片描述
    解决:
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值