文章目录

  • 1.配置Ubuntu初始开发环境
  • 2.使用git工具下载源码
  • 3.使用repo工具获取内核以及工具链
    • 3.1 本地下载
    • 3.2 配置repo
    • 3.4 下载源码
    • 3.5 同步最新代码
  • 4.配置交叉编译工具链
    • 4.1 永久生效
    • 4.2 测试是否成功
  • 5.使用Buildroot构建根文件系统
    • 5.1 构建根文件系统(需要编译一整晚)
  • 6.单独编译更新Kernel dtb内核模块
    • 6.1 编译内核镜像
    • 6.2 编译安装内核模块
    • 6.3 安装内核模块到ubuntu某一个目录下备用
    • 6.4 安装内核和模块到开发板上
  • 7 单独编译更新u-boot
    • 7.1 Bootloader 介绍
    • 7.2 编译u-boot镜像

按照下面部分做完直接搭建好Ubuntu所有环境。

1.配置Ubuntu初始开发环境

确保Ubuntu能上网之后,使用下面命令一键配置/初始化开发环境(其实就是安装tftp,nfs,vim等软件,此脚本只支持Ubuntu-16.04 /Ubuntu-18.04)。
注意:为了方便大家复制,这些命令写成了多行,你要把它们复制到记事本,合并成一行,注意空格:

book@100ask: ~ $ wget --no-check-certificate -O Configuring_ubuntu.sh
https://weidongshan.coding.net/p/DevelopmentEnvConf/d/DevelopmentEnvConf/git/raw/master/Configuring_ubuntu.sh &&
sudo chmod +x Configuring_ubuntu.sh &&
sudo ./Configuring_ubuntu.sh

上述命令是下载脚本,给它添加可执行权限,运行它。
按提示输入book密码123456和选择对应的系统,如下图所示:

注意:如果Ubuntu无法上网,请参考前面《网络问题》进行设置。
如果执行该命令出现如下错误:

可以先执行“sudo apt-get update”,再重新执行前面的命令。

2.使用git工具下载源码

下载到Windows中,再用FileZilla上传到Ubuntu;也可以在Ubuntu下用GIT直接下载。在Windows下启动“Git bash”后执行以下命令:

$ git clone https://e.coding.net/weidongshan/01_all_series_quickstart.git

在Ubuntu下打开终端后,可以直接执行如下命令。

book@100ask:~$ git clone https://e.coding.net/weidongshan/01_all_series_quickstart.git

下载成功后,将会得到一个名为“01_all_series_quickstart”的目录,里面含有源码,操作示例如下图所示。

3.使用repo工具获取内核以及工具链

有两种方法,一种本地拷贝,一种在线下载。这里使用在线下载,需要前一种则你直接看开发手册。

3.1 本地下载

00ask_imx6ull开发板的所有代码都是保存在git站点上通过repo命令进行统一管理,可以通过如下命令进行下载或同步。

3.2 配置repo

下载repo工具前需要设置git的邮箱和用户名,git邮箱和用户名请根据个人情况进行配置。

book@100ask:~$ git config --global user.email "user@100ask.com"
book@100ask:~$ git config --global user.name "100ask"

注意: 请先配置git邮箱和用户名,否则会导致下载失败(如下为参考示例图)。

3.4 下载源码

通过repo管理多个git仓库中的源码,可以及时更新最新代码,以方便开发者学习使用。执行以下4条命令,为方便大家复制,第3条是很长的命令,使用了\来换行,需要一并拷贝:

book@100ask:~$  git clone https://e.coding.net/codebug8/repo.git
book@100ask:~$ mkdir -p 100ask_imx6ull_mini-sdk && cd 100ask_imx6ull_mini-sdk
book@100ask:~/100ask_imx6ull_mini-sdk$  ../repo/repo init \-u  https://gitee.com/weidongshan/manifests.git -b linux-sdk \-m imx6ull/100ask_imx6ull_mini_linux4.9.88_release.xml  --no-repo-verify
book@100ask:~/100ask_imx6ull_mini-sdk$  ../repo/repo sync -j4

注意:下载成功后,可以看到名为Linux-4.9.88的目录,可以在Ubuntu压缩它,再传回Windows。在Windows下解压后,用source insight建立工程,这样就可以很方便地阅读源码了。

注意:使用source insight阅读Linux源码的方法,请参考章节《使用Source Insight阅读Linux内核源码》。Ubuntu下压缩命令为(最好是下载之后马上压缩,不要编译内核后再压缩,否则文件太大了):

tar  cjf Linux-4.9.88.tar.bz2  Linux-4.9.88

压缩完会显示目录下源码的压缩包如下图:

3.5 同步最新代码

repo在线下载的代码和网盘配套资料中的代码是一致的,我们会每隔一段时间更新一次源码包,如使用在线方式获取源码 可以直接在 ~/100ask_imx6ull-sdk 目录下执行

 ../repo/repo sync -c

进行同步更新最新代码!
同步完结果如下图所示:

4.配置交叉编译工具链

注意:使用我们提供的Ubuntu映象文件时,请按照我们的目录结构,手动设置交叉编译工具链以及编译的架构环境变量配置,(建议配置为永久生效)。交叉编译工具链用来在Ubuntu主机上编译应用程序,而这些应用程序是在ARM等其他平台上运行。设置交叉编译工具主要是设置PATH, ARCH和CROSS_COMPILE三个环境变量,下面介绍具体设置方法。在本文档中,源码、交叉编译工具链都是存放于/home/book目录下;如果你的目录不一样,请自行修改本节所讲述的命令。设置这3个环境变量有多种方法,任意选择其中一种方法即可,建议使用“永久生效”的方法。录制视频时我会使用多种开发板,所以在视频里我总是使用“临时生效”的方法。

4.1 永久生效

如需永久修改,请修改用户配置文件。
执行:

vim  ~/.bashrc

在行尾添加或修改,加上下面几行(第3行第4行为一行命令):

export ARCH=arm
export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
export PATH=$PATH:/home/book/100ask_imx6ull_mini-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin

设置完毕后,要执行 source ~/.bashrc 命令使其生效,并通过arm-buildroot-linux-gnueabihf-gcc -v 命令来验证是否配置成功。

book@100ask:~$ source  ~/.bashrc
book@100ask:~$ arm-buildroot-linux-gnueabihf-gcc -v

4.2 测试是否成功

测试环境变量:

book@100ask:~$ echo $ARCH
arm
book@100ask:~$ echo $CROSS_COMPILE
arm-buildroot-linux-gnueabihf-

测试交叉编译工具链:

book@100ask:~$ arm-buildroot-linux-gnueabihf-gcc -v

效果如下图所示:

5.使用Buildroot构建根文件系统

5.1 构建根文件系统(需要编译一整晚)

使用以下命令编译出的文件,可以烧写到imx6ull mini emmc版的emmc上或者SD卡上,下面我们以开发板默认出厂系统镜像为例进行说明:

book@100ask:~/100ask_imx6ull_mini-sdk/Buildroot_2020.02.x$ make 100ask_imx6ull_mini_ddr512m_systemV_qt5_defconfig
book@100ask:~/100ask_imx6ull_mini-sdk/Buildroot_2020.02.x$ make all

注意:机器性能不同,编译时间不同。性能差的电脑,有可能需要等待5 ~ 6个小时。

编译成功后文件输出路径为 output/images

6.单独编译更新Kernel dtb内核模块

6.1 编译内核镜像

不同的开发板对应不同的配置文件,配置文件位于内核源码arch/arm/configs/目录。kernel的编译过程如下(编译内核前需要先配置好工具链等一些环境变量):

book@100ask:~/100ask_imx6ull_mini-sdk/Linux-4.9.88$ make mrproper
book@100ask:~/100ask_imx6ull_mini-sdk/Linux-4.9.88$ make 100ask_imx6ull_mini_defconfig
book@100ask:~/100ask_imx6ull_mini-sdk/Linux-4.9.88$ make zImage -jN //N表示根据CPU个数,来加速编译系统
book@100ask:~/100ask_imx6ull_mini-sdk/Linux-4.9.88$ make dtbs
book@100ask:~/100ask_imx6ull_mini-sdk/Linux-4.9.88$ cp arch/arm/boot/zImage ~/nfs_rootfs
book@100ask:~/100ask_imx6ull_mini-sdk/Linux-4.9.88$ cp arch/arm/boot/dts/100ask_myir_imx6ull_mini.dtb  ~/nfs_rootfs

编译成功后,可以得到这些文件:内核文件arch/arm/boot/zImage,设备树文件arch/arm/boot/100ask_imx6ull_mini.dtb。把这2个文件复制到
/home/book/nfs_rootfs目录下备用。

注意:
编译imx6uLL linux4.9.88的内核,执行步骤 make zImage 出错:

/bin/sh: 1: lzop: not foundarch/arm/boot/compressed/Makefile:186: recipe for target 'arch/arm/boot/compressed/piggy_data' failedmake[2]: * [arch/arm/boot/compressed/piggy_data] Error 1arch/arm/boot/Makefile:53: recipe for target 'arch/arm/boot/compressed/vmlinux' failedmake[1]: * [arch/arm/boot/compressed/vmlinux] Error 2arch/arm/Makefile:329: recipe for target 'zImage' failedmake: *** [zImage] Error 2

新到的开发板,搭建环境,编译内核出错,虽然搜到很多回答,要下载安装包,然后编译安装,但是配置过程又出错,无法进行下去,最终发现只要 执行这一步就解决了,如下

sudo apt-get install lzop

再次 make zImage 就可以了,亲测

6.2 编译安装内核模块

进入内核源码目录后,就可以编译内核模块了:

book@100ask:~$ cd  ~/100ask_imx6ull_mini-sdk/Linux-4.9.88/
book@100ask:~/100ask_imx6ull_mini-sdk/Linux-4.9.88$ make ARCH=arm CROSS_COMPILE=arm-buildroot-linux-gnueabihf- modules

6.3 安装内核模块到ubuntu某一个目录下备用

可以先把内核模块安装到nfs根文件系统(/home/book/nfs_rootfs为安装目录)。
注意:下面会执行tree命令,如果提示没有该命令,需要执行“sudo apt install tree”命令安装tree工具(前提是Ubuntu能上网)。
执行一下命令:

book@100ask:~$ cd ~/100ask_imx6ull_mini-sdk/Linux-4.9.88
book@100ask:~/100ask_imx6ull_mini-sdk/Linux-4.9.88$ sudo make  ARCH=arm INSTALL_MOD_PATH=/home/book/nfs_rootfs  modules_ins

6.4 安装内核和模块到开发板上

假设:执行上述命令后,在Ubuntu的/home/book/nfs_rootfs目录下已经有了zImage、dtb文件,并且有lib/modules子目录(里面含有各种模块)。
下面,要把这些文件复制到开发板上。

如果你使用的是VMware桥接方式,假设Ubuntu IP为192.168.1.100,在开发板上执行以下命令:

mount -t nfs -o nolock,vers=3 192.168.5.11:/home/book/nfs_rootfs /mnt
cp  /mnt/zImage  /boot
cp  /mnt/*.dtb   /boot
cp  /mnt/lib/modules  /lib  -rfd

7 单独编译更新u-boot

7.1 Bootloader 介绍

7.2 编译u-boot镜像

u-boot的编译过程如下(编译uboot前必须先配置好工具链等开发环境)其它步骤和IMX6ULL Pro版保持一样:

book@100ask: ~/100ask_imx6ull_mini-sdk/Uboot-2017.03$ make distclean
book@100ask: ~/100ask_imx6ull_mini-sdk/Uboot-2017.03$ make  mx6ull_14x14_evk_defconfig
book@100ask: ~/100ask_imx6ull_mini-sdk/Uboot-2017.03$ make

然后将编译出来的u-boot-dtb.imx,拷贝到开发板上

book@100ask: ~/100ask_imx6ull_mini-sdk/Uboot-2017.03$ cp u-boot-dtb.imx ~/nfs_rootfs/

再到开发板界面输入:

root@100ask: ~/100ask_imx6ull_mini-sdk/Uboot-2017.03$ cp /mnt/u-boot-dtb.imx

然后更新,仍然再开发板操作界面:

root@100ask:~]# echo 0 > /sys/block/mmcblk1boot0/force_ro
root@100ask:~]# dd if=u-boot-dtb.imx of=/dev/mmcblk1boot0 bs=512 seek=2
root@100ask:~]# echo 1 > /sys/block/mmcblk1boot0/force_ro

嵌入式linux/鸿蒙开发板(IMX6ULL)开发(七)Ubuntu开发环境配置相关推荐

  1. 海思芯片固件修改工具_地平线X3开发板开箱、固件刷写、环境配置

    经过一个多月,我终于抽出时间去写这个系列的文章.很开心可以参加这次地平线举办的开发板体验活动.最开始拿到的是1.1.6版本的工具链以及103版本的镜像,而官方在8月发布了0827的镜像以及1.1.12 ...

  2. 【致敬未来的攻城狮计划】--RA2E1 开发板测评(1)keil环境配置

    前言 (1)首先感谢 李肯前辈的活动,从而申请到了RA2L1开发板的测评. (2)本文将会简单介绍此开发的Renesas RA2L1 开发板的前期配置.需要注意的是,MDK版本要5.30 以上. MD ...

  3. 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(八)IMX6ULL开发板编译第一个程序以及驱动

    文章目录 1. IMX6ULL开发板初次操作 1.1 100ask_imx6ull开发板硬件资源简介 1.1.1 100ask imx6ull mini开发板 1.2 100ask_imx6ull开发 ...

  4. qt工程在linux系统里颜色显示错误_【飞凌嵌入式RK3399开发板试用体验】+QT开发环境搭建测试(二)...

    作者:飞扬的青春 在拿到开发板之后,已经体验了Android操作系统,接下来就是体验Linux下的开发,本次以QT的一个小案例来测试下. 首先是自己先搭建了一个Ubuntu18.04的虚拟机,使用真机 ...

  5. linux 开发板模拟u盘,S5P4418开发板Linux下实现模拟U盘教程飞凌嵌入式

    飞凌嵌入式ARMCortex-A9 S5P4418开发板上能否满足U盘的功能?其实可通过修改内核配置和文件系统相关内容,在OK4418开发板上实现模拟U盘功能,模拟U盘可以帮助我们实现开发板与Wind ...

  6. 开发板、Windows、Ubuntu三者互联——韦东山嵌入式Linux学习笔记08

    实验环境: 1. Windows7 2. VMware12.0+Ubuntu 3. JZ2440 按理说,在物理机上安装Ubuntu操作系统是比较推荐的方法.不过,因为windows上有很多好用的工具 ...

  7. Linux学习之ARM开发板连接ubuntu18.04LTS及NFS相关配置

    Linux学习之ARM开发板连接ubuntu18.04LTS及NFS相关配置 第一步:在PC机安装Ubuntu18.04LTS 具体安装步骤参见上一篇文章 第二步:安装arm-linux-gcc交叉编 ...

  8. imx6板载linux登录时间,大干货!迅为IMX6开发板丨Android丨Ubuntu丨Linux丨三大系统全开源.doc...

    大干货!迅为IMX6开发板丨Android丨Ubuntu丨Linux丨三大系统全开源.doc (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 ...

  9. imx6 linux 开发环境,大干货!迅为IMX6开发板丨Android丨Ubuntu丨Linux丨三大系统全开源...

    描述 迅为IMX6开发板丨Android丨Ubuntu丨Linux丨三大系统全开源 板载模块:WIFI蓝牙.4G.GPS.SATA.CAN/RS485.重力加速度计,电子罗盘等 资料丰富:原理图.底板 ...

  10. 选择的串口 _ 不存在或开发板没有连接_PC 和开发板之间传输文件

    8.1 传输文件的多种方法 在嵌入式开发中,涉及交叉编译:在 PC 上编译,在开发板上运行.所以就涉及 PC 和开发板之间的文件 传输,方法有多种:网络传输.串口传输.USB 传输,当然,还有最笨的方 ...

最新文章

  1. Python之旅.第十章.mysql
  2. adb 显示手机分辨率
  3. Forefront Client Security服务器配置
  4. 图标插件FusionChartsFree
  5. 线阵相机参数选择 照明方式
  6. 利用Python处理逐日气象数据集(.txt文件)
  7. 班级网站java,ssm班级网站
  8. Python:实现pollard rho大数分解算法(附完整源码)
  9. Android中BottomSheetDialog如何设置透明背景
  10. NLP-文本处理:词形归一(Lemma)【英文】【把各种类型的词的变形都归为一个形式】【went->go;are->be】
  11. Mysql客户端navicat的使用并连接远程数据库【重点】
  12. android 目录作用,Android中各级目录的作用说明
  13. mysql多表查询详解
  14. 是不是还在为毕业设计而发愁,看了这篇文章,相信你会感谢我的
  15. COM08 -如何基于Davinci工具配置CAN通信协议栈实战课程【配置方法总述】
  16. Nginx 源码分析
  17. 自然场景文本检测识别技术综述
  18. Widows Log Files (windows日志文件)
  19. 职场上没人教怎么办,离职吗?
  20. 云计算机ESc,云服务器esc是什么意思

热门文章

  1. 网络营销人员21条基本能力要求
  2. webpack源码解析
  3. Centos7安装MPICH3在配置安装目录时出现问题
  4. 回归(regression)
  5. 用Python爬取B站、腾讯视频、芒果TV和爱奇艺视频弹幕
  6. 《PHP程序员面试笔试宝典》——如何克服面试中紧张的情绪?
  7. python 把matplotlib绘制的图片显示到html中
  8. 二分查找算法学习总结
  9. Matlab轮廓线图的绘制
  10. js、jq实现答题上一题下一题