“100ask imx6ull”的版本间的差异
来自百问网嵌入式Linux wiki
Weidongshan(讨论 | 贡献) (→设置工具链) |
|||
第300行: | 第300行: | ||
export ARCH=arm | export ARCH=arm | ||
export CROSS_COMPILE=arm-linux-gnueabihf- | export CROSS_COMPILE=arm-linux-gnueabihf- | ||
− | export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain | + | export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin |
执行完成后使用如下命令使其生效 | 执行完成后使用如下命令使其生效 | ||
book@100ask:~$ source ~/.bashrc | book@100ask:~$ source ~/.bashrc | ||
第306行: | 第306行: | ||
执行完“export”命令后,该设置只对当前终端有效 | 执行完“export”命令后,该设置只对当前终端有效 | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | book@100ask:~$ export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain | + | book@100ask:~$ export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin |
book@100ask:~$ export ARCH=arm | book@100ask:~$ export ARCH=arm | ||
book@100ask:~$ export CROSS_COMPILE=arm-linux-gnueabihf- | book@100ask:~$ export CROSS_COMPILE=arm-linux-gnueabihf- | ||
第313行: | 第313行: | ||
Make编译时指定ARCH架构 CROSS_COMPILE交叉编译工具链 | Make编译时指定ARCH架构 CROSS_COMPILE交叉编译工具链 | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | book@100ask:~$ export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain | + | book@100ask:~$ export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin |
book@100ask:~$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- | book@100ask:~$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- | ||
</syntaxhighlight> | </syntaxhighlight> |
2021年1月15日 (五) 11:19的版本
若初次接触我们产品,请先阅读 开始使用
|
目录
开始使用
-
1.资料说明
- 100ASK_IMX6ULL资料分为三部分:
- ① 开发板BSP包(开发板的所有资料,不包括视频):
- 100ASK_IMX6ULL资料分为三部分:
- 包括虚拟机Ubuntu、开发板原理图、手册等等。
- 这部分资料容量大,改动小,放在百度网盘中。
- 里面00_UserManual 有《嵌入式Linux应用开发完全手册第2版_韦东山全系列视频文档全集Vxxx.pdf》,这是开发板学习手册,必读,很重要。
- 网盘链接:https://eyun.baidu.com/s/3smDzFAH 密码:LDCn
- ② 视频教程:
- a)基本上每周都更新,它会放在百度网盘中:
- 网盘链接:https://eyun.baidu.com/s/3c2XmIVA 密码:askNEWCourseA
- a)基本上每周都更新,它会放在百度网盘中:
- b)也可以在线观看:
- 哔哩哔哩(B站):http://www.bilibili.com/video/av65976587 (或在B站首页搜“韦东山”)
- c)官网在线观看:http://www.100ask.net
- b)也可以在线观看:
- ③ 视频配套的文档和源码:
- 这部分内容会经常更新,使用GIT来下载。
- 观看视频,就可以知道里面的源码怎么使用。
- 每一节视频都有对应的文档,这些文档集合成一个PDF文件:
- 《嵌入式Linux应用开发完全手册第2版_韦东山全系列视频文档全集Vxx.pdf》
-
2.怎么下载资料
- ① 根据第一步的资料说明:下载开发板BSP包(开发板的所有资料,不包括视频教程):
- 请先转存到自己的百度网盘,再使用百度网盘的PC客户端来下载。
- 如果下载速度太慢,可以适当充值百度短期会员。
- 不要在浏览器上直接下载,这很容易失败、出错。
- ② 根据第一步的资料说明:下载视频教程配套的文档和源码:
- 下载安装Git Bash工具 : https://gitforwindows.org/
- 打开Git Bash,执行命令:
- git clone https://e.coding.net/weidongshan/01_all_series_quickstart.git
- 下载安装Git Bash工具 : https://gitforwindows.org/
- 下载成功后,你会在 C:\Users 目录下,你自己的用户目录里,看到一个“01_all_series_quickstart”目录。
- 更详细的 Git 使用教程见:
-
文档更新
- 学习手册我们会不断更新,临时版本放在 QQ 群文件中
- 100ask_imx6ull售后群1,QQ群号码718867902(进群需提供购买记录)
- 文档验证后再统一上传至百度网盘
打开包装 连接开发板
启动开发板
执行基本命令
示例功能体验
- 如何设置wifi连接网络
- 如何设置蓝牙模块连接蓝牙音箱播放音乐
- 如何使用aplayer播放音频文件
- 如何使用arecord录音
- 如何使用fb-test测试显示器颜色
- 如何使用tslib校准触摸屏坐标
- 如何使用bluez工具扫描蓝牙设备并连接
- 如何使用V4l2-ctl获取摄像头参数
- 如何使用pppd对配套4G模块拨号上网
- 如何使用can-utils工具发送接收数据
- 如何使用ethtool工具获取网卡详细信息
- 如何使用mii-diag工具获取MDIO设备信息
- 如何使用iperf3对网卡进行压力测试
- 何使用iw工具扫描wifi设备
- 如何使用wpa_supplicant工具链接wifi网络
- 更多功能体验示例
应用编程
更新系统
更新SD卡系统
- 1.安装资料光盘下
01_tools\SD Card Formatter 5.0.1 Setup.exe
软件,安装完成后打开!
- 2.使用SdCardFormatter格式化SD卡,格式化步骤如下如所示!
(1)选择要格式化的SD卡,选中Quick format,点击Format | (2)在弹出的对话框中点击是(Y) | (3)等待格式化完成,在弹出的对话框中点击确定 |
- 3.安装资料光盘下
01_tools/ win32diskimager-1.0.0-install.exe
软件,安装完成后打开!
- 4.使用wind32diskimage烧写存放在
02_Images\Sdcard
目录下的sdcard.img
系统镜像文件,烧写步骤如下所示!
(1)选中需要烧写的SD卡设备,点击文件图标选择系统镜像文件,最后点击写入按钮开始烧写 | (2)此时弹出烧写对话框,点击Yes按钮,继续烧写, 等待任务进度执行到100%) | 烧写成功后,弹出写入成功,此时点击OK |
更新emmc系统
- 使用mfgtools烧写emmc系统
- 1.设置开发板启动方式为usb启动。
- 2.使用包装盒配套的micro usb线一端连接到开发板usb otg口另一端连接至电脑usb接口处(接口位置请参考右上图
5:USB OTG
所示位置)。 - 3.解压缩资料光盘目录下
02_Images\Emmc\100ask_imx6ull-mfgtools.zip
到任意文件夹。 - 4.进入解压缩后的
100ask_imx6ull-mfgtools
文件夹下,双击buildroot-image-100ask_100ask-ddr512m-emmc4g.vbs
打开烧写程序,烧写过程中保持usb连接。
(1)usb otg链接成功示意图,连接成功后点击start按钮开始烧写 | (2)系统烧写中示意图 | (3)烧写完成示意图(点击Stop,再点击Exit即可退出) |
- 5.设置开发板启动方式为Emmc启动即可,(启动方式设置在开发板背面印有丝印说明)
进阶使用
配置开发环境
- wamware ubuntu系统镜像如何安装请参考 资料光盘 00_UserManual/嵌入式Linux应用开发完全手册第2版_韦东山全系列视频文档全集Vxxx.pdf
- 如果使用我们提供的vmware ubuntu 虚拟机镜像配置开发环境,只需在在ubuntu联网状态下在终端下执行如下命令即可完成一键配置开发环境 请参考页面 配置ubuntu开发环境。
- 如何您使用的是自行安装的ubuntu 开发环境,我们的脚本会自动新建book用户及相关环境配置。
- 一键配置开发环境脚本,在Ubuntu终端下直接执行,即可配置好Linux开发环境依赖(包含tftpp nfs samba 不包含交叉编译工具链 ARCH CROSS_COMPILE设置)。
GIthub地址
wget --no-check-certificate -O Configuring_ubuntu.sh https://raw.githubusercontent.com/100askTeam/DevelopmentEnvConf/master/Configuring_ubuntu.sh && sudo chmod +x Configuring_ubuntu.sh && sudo ./Configuring_ubuntu.sh
国内coding地址(推荐使用此地址)
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
获取开发板sdk
本地拷贝上传
- 通过FileZilla等工具上传资料光盘中的 07_bsp_sdk(BSP包)/100ask_imx6ull-sdk 整个压缩包文件到ubuntu系统/home/book目录下。
- 执行
7z x 100ask_imx6ull-sdk.7z.001
进行解压缩,等待解压缩完成。 - 注意: 资料光盘的sdk是定期更新,不是实时更新,解压缩后可以使用如下命令同步获取最新sdk(如下操作需要ubuntu可以联网)。
book@100ask:~$ git clone https://e.coding.net/codebug8/repo.git
book@100ask:~$ cd 100ask_imx6ull-sdk
book@100ask:~/100ask_imx6ull-sdk$ ../repo/repo sync -c
在线获取
- 以下操作在已经配置好开发环境得ubuntu系统终端下执行(注意:如下操作需要ubuntu可以上网)
- git邮箱账号和用户名配置
book@100ask:~$ git config --global user.email "you@example.com"
book@100ask:~$ git config --global user.name "Your Name"
- 初次使用,需要配置用户名和邮箱才可以进行代码同步,用户名和邮箱根据自己情况设定,也可以随意设定
-
- 考虑到代码仓库过多,特使用repo工具管理代码,
- repo工具配置
- 考虑到代码仓库过多,特使用repo工具管理代码,
book@100ask:~$ git clone https://e.coding.net/codebug8/repo.git
book@100ask:~$ mkdir -p 100ask_imx6ull-sdk && cd 100ask_imx6ull-sdk
book@100ask:~/100ask_imx6ull-sdk$ ../repo/repo init -u https://gitee.com/weidongshan/manifests.git -b linux-sdk -m imx6ull/100ask_imx6ull_linux4.9.88_release.xml --no-repo-verify
book@100ask:~/100ask_imx6ull-sdk$ ../repo/repo sync -j4
-
- 代码会不定时的进行更新同步,用户可以在100ask_imx6ull-sdk目录下使用
../repo/repo sync -c
命令来获取最新源码
- 上面使用的repo管理文件xml为国内coding仓库 https://e.coding.net/weidongshan/manifests.git
- 如果使用Github仓库管理文件xml请查看 https://github.com/100askTeam/manifests/blob/linux-sdk/README.md
- 所有Git仓库地址链接获取页面: 获取所有Git仓库地址链接
- 代码会不定时的进行更新同步,用户可以在100ask_imx6ull-sdk目录下使用
- git常用命令参考(可以在相应的源码目录使用如下git命令查看所有的提交记录,用于学习研究)
设置默认工具链
注意:此工具链是buildroot构建出来的工具链,可以用来编译uboot kernel busybox,里面含有默认系统镜像的第三方应用库 头文件等.
交叉编译工具链主要是用于在ubuntu主机上编译并生成可以在其它平台上运行的系统。设置交叉编译工具主要是设置PATH
ARCH
和CROSS_COMPILE
三个环境变量,下面介绍具体设置方法(3种方法任选一种)。
- 永久生效
如需永久修改,请修改用户配置文件, Ubuntu系统下,修改如下:
vim ~/.bashrc
在行尾添加或修改:
export ARCH=arm
export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin
执行完成后使用如下命令使其生效
book@100ask:~$ source ~/.bashrc
- 临时生效
执行完“export”命令后,该设置只对当前终端有效
book@100ask:~$ export ARCH=arm
book@100ask:~$ export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
book@100ask:~$ export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin
- 手动指定
Make编译时指定ARCH架构 CROSS_COMPILE交叉编译工具链
book@100ask:~$ export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin
book@100ask:~$ make ARCH=arm CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
- 验证
book@100ask:~$ arm-buildroot-linux-gnueabihf-gcc -v
Using built-in specs.
COLLECT_GCC=/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin/arm-buildroot-linux-gnueabihf-gcc.br_real
COLLECT_LTO_WRAPPER=/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin/../libexec/gcc/arm-buildroot-linux-gnueabihf/7.5.0/lto-wrapper
Target: arm-buildroot-linux-gnueabihf
Configured with: ./configure --prefix=/home/book/100ask_imx6ull-sdk/Buildroot_2020.02.x/output/host --sysconfdir=/home/book/100ask_imx6ull-sdk/Buildroot_2020.02.x/output/host/etc --enable-static --target=arm-buildroot-linux-gnueabihf --with-sysroot=/home/book/100ask_imx6ull-sdk/Buildroot_2020.02.x/output/host/arm-buildroot-linux-gnueabihf/sysroot --enable-__cxa_atexit --with-gnu-ld --disable-libssp --disable-multilib --disable-decimal-float --with-gmp=/home/book/100ask_imx6ull-sdk/Buildroot_2020.02.x/output/host --with-mpc=/home/book/100ask_imx6ull-sdk/Buildroot_2020.02.x/output/host --with-mpfr=/home/book/100ask_imx6ull-sdk/Buildroot_2020.02.x/output/host --with-pkgversion='Buildroot 2020.02-gee85cab' --with-bugurl=http://bugs.buildroot.net/ --disable-libquadmath --enable-tls --enable-plugins --enable-lto --enable-threads --with-isl=/home/book/100ask_imx6ull-sdk/Buildroot_2020.02.x/output/host --with-abi=aapcs-linux --with-cpu=cortex-a7 --with-fpu=neon-vfpv4 --with-float=hard --with-mode=arm --enable-languages=c,c++,fortran --with-build-time-tools=/home/book/100ask_imx6ull-sdk/Buildroot_2020.02.x/output/host/arm-buildroot-linux-gnueabihf/bin --enable-shared --enable-libgomp
Thread model: posix
gcc version 7.5.0 (Buildroot 2020.02-gee85cab)
book@100ask:~$
使用busybox构建系统
设置工具链
注意:此工具链是linaro精简版工具链,只能用来编译uboot kernel busybox,里面没有含有第三方应用库头文件等.
交叉编译工具链主要是用于在ubuntu主机上编译并生成可以在其它平台上运行的系统。设置交叉编译工具主要是设置PATH
ARCH
和CROSS_COMPILE
三个环境变量,下面介绍具体设置方法(3种方法任选一种)。
- 永久生效
如需永久修改,请修改用户配置文件, Ubuntu系统下,修改如下:
vim ~/.bashrc
在行尾添加或修改:
export ARCH=arm export CROSS_COMPILE=arm-linux-gnueabihf- export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin
执行完成后使用如下命令使其生效
book@100ask:~$ source ~/.bashrc
- 临时生效
执行完“export”命令后,该设置只对当前终端有效
book@100ask:~$ export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin
book@100ask:~$ export ARCH=arm
book@100ask:~$ export CROSS_COMPILE=arm-linux-gnueabihf-
- 手动指定
Make编译时指定ARCH架构 CROSS_COMPILE交叉编译工具链
book@100ask:~$ export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin
book@100ask:~$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
- 验证
book@100ask:~$ arm-linux-gnueabihf-gcc -v
Using built-in specs.
COLLECT_GCC=arm-linux-gnueabihf-gcc
COLLECT_LTO_WRAPPER=/home/book/100ask_imx6ull-sdk/ToolChain/ToolChain-6.2.1/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/../libexec/gcc/arm-linux-gnueabihf/6.2.1/lto-wrapper
Target: arm-linux-gnueabihf
Configured with: /home/tcwg-buildslave/workspace/tcwg-make-release/label/docker-trusty-amd64-tcwg-build/target/arm-linux-gnueabihf/snapshots/gcc-linaro-6.2-2016.11/configure SHELL=/bin/bash --with-mpc=/home/tcwg-buildslave/workspace/tcwg-make-release/label/docker-trusty-amd64-tcwg-build/target/arm-linux-gnueabihf/_build/builds/destdir/x86_64-unknown-linux-gnu --with-mpfr=/home/tcwg-buildslave/workspace/tcwg-make-release/label/docker-trusty-amd64-tcwg-build/target/arm-linux-gnueabihf/_build/builds/destdir/x86_64-unknown-linux-gnu --with-gmp=/home/tcwg-buildslave/workspace/tcwg-make-release/label/docker-trusty-amd64-tcwg-build/target/arm-linux-gnueabihf/_build/builds/destdir/x86_64-unknown-linux-gnu --with-gnu-as --with-gnu-ld --disable-libstdcxx-pch --disable-libmudflap --with-cloog=no --with-ppl=no --with-isl=no --disable-nls --enable-c99 --enable-gnu-indirect-function --disable-multilib --with-tune=cortex-a9 --with-arch=armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-mode=thumb --enable-multiarch --with-build-sysroot=/home/tcwg-buildslave/workspace/tcwg-make-release/label/docker-trusty-amd64-tcwg-build/target/arm-linux-gnueabihf/_build/sysroots/arm-linux-gnueabihf --enable-lto --enable-linker-build-id --enable-long-long --enable-shared --with-sysroot=/home/tcwg-buildslave/workspace/tcwg-make-release/label/docker-trusty-amd64-tcwg-build/target/arm-linux-gnueabihf/_build/builds/destdir/x86_64-unknown-linux-gnu/arm-linux-gnueabihf/libc --enable-languages=c,c++,fortran,lto --enable-checking=release --disable-bootstrap --build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu --target=arm-linux-gnueabihf --prefix=/home/tcwg-buildslave/workspace/tcwg-make-release/label/docker-trusty-amd64-tcwg-build/target/arm-linux-gnueabihf/_build/builds/destdir/x86_64-unknown-linux-gnu
Thread model: posix
gcc version 6.2.1 20161016 (Linaro GCC 6.2-2016.11)
book@100ask:~$
手动编译u-boot
- 编译100ask_imx6ull开发板uboot命令
book@100ask:~$ cd ~/100ask_imx6ull-sdk/Uboot-2017.03
book@100ask:~/100ask_imx6ull-sdk/Uboot-2017.03$ make mx6ull_14x14_evk_defconfig
book@100ask:~/100ask_imx6ull-sdk/Uboot-2017.03$ make
- 单独烧写uboot
-
- 请先将SD卡插入电脑,并挂载到ubuntu系统上,如何挂载请参考页面 如何使用VMware连接usb设备,使用
dmesg
命令查看设备节点名称。
- 获取到设备名称后使用dd命令烧写img镜像文件到TF卡中,如下示例 假如插入ubuntu后设备节点为/dev/sdb。
- 请先将SD卡插入电脑,并挂载到ubuntu系统上,如何挂载请参考页面 如何使用VMware连接usb设备,使用
book@100ask:~/100ask_imx6ull-sdk/Uboot-2017.03$ dd if=u-boot-dtb.imx of=/dev/sdb bs=1k seek=1 conv=fsync
- 烧写成功后,需要将SD卡插入开发板内,并设置为SD卡启动方式(启动方式请参考开发板背面)
- nfs启动系统
- 参考/扩展学习
手动编译Linux kernel
- 编译100ask_imx6ull 开发板内核
book@100ask:~/100ask_imx6ull-sdk$ cd Linux-4.9.88
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ make mrproper #这里可能需要加sudo error trying to exec 'cc1': execvp:
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ make 100ask_imx6ull_defconfig #这里不要加sudo
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ make zImage -jN //这里可以根据CPU个数,来加速编译系统。
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ make dtbs
- 拷贝内核镜像到开发板系统
- ssh登陆开发板拷贝镜像
- nfs挂载文件系统拷贝内核镜像
- tftp下载内核镜像
- 通过wmware挂载u盘拷贝文件
- 编译内核模块
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules
- 安装内核模块到nfs根文件系统
book@100ask:~/100ask_imx6ull-sdk/linux-4.9.88$ sudo make ARCH=arm INSTALL_MOD_PATH=</media/rootfs> modules_install
手动编译rootfs
- 配置busybox配置文件
book@100ask:~/100ask_imx6ull-sdk/Busybox_1.30.0$ cp ../DevelopmentEnvConf/100ask_imx6ull_busybox_config .config
- 编译busybox并安装
book@100ask:~/100ask_imx6ull-sdk/Busybox_1.30.0$ make book@100ask:~/100ask_imx6ull-sdk/Busybox_1.30.0$ make install
- 创建相应得目录及文件并打包压缩成tar.gz
book@100ask:~/100ask_imx6ull-sdk/DevelopmentEnvConf$ sudo ./busybox_build_config.sh
- 安装其它必须库
- 如蓝牙固件 系统模块等。
制作系统镜像
- 参考 如何创建Ext4系统镜像
- 参考 如何创建UBI系统镜像
安装文件系统到目标开发板
- 安装到Sd卡系统内
- 安装到emmc系统内
- nfs网络挂载启动
使用buildroot构建系统
获取源码
- 参考页面 获取开发板sdk
编译系统
- 配置文件说明
配置文件 | 含义 |
---|---|
100ask_imx6ull-nfs_defconfig | 专门用于nfs启动使用的文件系统 |
100ask_imx6ull_defconfig | 默认文件系统版本(包含除qt以外所有工具) |
100ask_imx6ull-qt_defconfig | 包含Qt5.11文件系统版本 |
- 以编译100ask_imx6ull_defconfig系统镜像为例,如下为编译步骤
book@100ask:~/100ask_imx6ull-sdk$ cd Buildroot_2019.02
book@100ask:~/100ask_imx6ull-sdk/Buildroot_2019.02$ make clean
book@100ask:~/100ask_imx6ull-sdk/Buildroot_2019.02$ make 100ask_imx6ull_defconfig
book@100ask:~/100ask_imx6ull-sdk/Buildroot_2019.02$ make all
注意:机器性能不同,编译时间不同。性能差的电脑,有可能需要等待1 ~ 2个小时。
- 编译后生成文件介绍
buildroot2019.02
├── output
├── images
├── 100ask_imx6ull-14x14.dtb <--设备树文件
├── rootfs.ext2 <--ext2格式根文件系统
├── rootfs.ext4 -> rootfs.ext2 <--ext2格式根文件系统
├── rootfs.tar <--打包并压缩的根文件系统,用于NFSROOT启动
├── rootfs.tar.gz
├── sdcard.img <--完整的SD卡系统镜像
├── u-boot-dtb.imx <--u-boot镜像
└── zImage <--内核镜像
- buildroot对于Linux内核的常用命令
- buildroot下单独编译内核
book@100ask:~/100ask_imx6ull-sdk/Buildroot_2019.02$ make linux-rebuild
- 运行内核make menuconfig配置选项界面
book@100ask:~/100ask_imx6ull-sdk/Buildroot_2019.02$ make linux-menuconfig
- 保存内核最新的配置文件
book@100ask:~/100ask_imx6ull-sdk/Buildroot_2019.02$ make linux-savedefconfig
- 更新内核配置文件到 100ask_imx6ull_defconfig
book@100ask:~/100ask_imx6ull-sdk/Buildroot_2019.02$ make linux-update-defconfig
- buildroot下其它常用操作
- buildroot下编译时显示详细信息
book@100ask:~/100ask_imx6ull-sdk/Buildroot_2019.02$make V=1 <pkg>
- buildroot下单独编译u-boot
book@100ask:~/100ask_imx6ull-sdk/Buildroot_2019.02$ make uboot-rebuild
- buildroot下单独编译某个软件包
book@100ask:~/100ask_imx6ull-sdk/Buildroot_2019.02$ make <pkg>-rebuild
如何烧写
- 如何烧写SD卡系统
- 请将编译后的 output/images/sdcard.img文件使用FileZilla等工具拷贝到widows目录,让后参考如上页面 更新SD卡系统来烧写最新编译的sd卡系统。
- 如何使用mfgtools烧写buildroot生成的系统镜像
- 使用mfgtools 烧写buildroot编译好的系统请先将output/images/目录下 u-boot-dtb.imx zImage 100ask_imx6ull-14x14.dtb rootfs.tar.bz2 这4个文件使用FileZilla等工具拷贝到资料光盘 02_Images\Emmc\100ask_imx6ull-mfgtools\Profiles\Linux\OS Firmware\files目录下,替换原有的文件,让后参考 更新emmc系统来更新emmc系统。
使用yocto构建系统
在线获取源码
- 如下使用repo命令获取编译ycoto系统所用源码。
book@100ask:~$ git clone https://git.dev.tencent.com/codebug8/repo.git book@100ask:~$ mkdir -p Yocto_imx-4.9.88 && cd Yocto_imx-4.9.88 book@100ask:~/Yocto_imx-4.9.88$ ~/repo/repo init -u https://e.coding.net/weidongshan/manifests.git -b yocto -m 100ask_imx-4.9.88-2.0.0_ga.xml --no-repo-verify book@100ask:~/Yocto_imx-4.9.88$ ~/repo/repo sync -j4
- 同步源码后,需要将资料光盘 07_Bsp_sdk/Yocto_downloads.tar.gzycoto编译所需的所有软件包文件解压到
book@100ask:~/Yocto_imx-4.9.88/Yocto$
目录下,解压后即可执行如下编译命令。
编译完整系统镜像
book@100ask:~/Yocto_imx-4.9.88/Yocto$ DISTRO=100ask-imx-fb MACHINE=imx6ull_100ask source fsl-setup-release.sh -b build-linux-fb book@100ask:~/Yocto_imx-4.9.88/Yocto$ bitbake 100ask-image-qt5-validation-imx
- 生成的系统镜像文件所在目录
~/Yocto_imx-4.9.88/Yocto/build-linux-fb/tmp/deploy/images/
book@100ask:~/Yocto_imx-4.9.88/Yocto/build-linux-fb/tmp/deploy/images/imx6ull_100ask$ ls 100ask-image-qt5-validation-imx-imx6ull_100ask-20200303105647.rootfs.ext4 100ask-image-qt5-validation-imx-imx6ull_100ask.tar.bz2 u-boot.imx-sd 100ask-image-qt5-validation-imx-imx6ull_100ask-20200303105647.rootfs.manifest 100ask-image-qt5-validation-imx-imx6ull_100ask.testdata.json u-boot-sd-2017.03-r0.imx 100ask-image-qt5-validation-imx-imx6ull_100ask-20200303105647.rootfs.sdcard.bz2 100ask_imx6ull-14x14.dtb zImage 100ask-image-qt5-validation-imx-imx6ull_100ask-20200303105647.rootfs.tar.bz2 modules--4.9.88-r0-imx6ull_100ask-20200303105647.tgz zImage-100ask_imx6ull-14x14.dtb 100ask-image-qt5-validation-imx-imx6ull_100ask-20200303105647.testdata.json modules-imx6ull_100ask.tgz zImage--4.9.88-r0-100ask_imx6ull- 14x14-20200303105647.dtb 100ask-image-qt5-validation-imx-imx6ull_100ask.ext4 u-boot.imx zImage--4.9.88-r0-imx6ull_100ask- 20200303105647.bin 100ask-image-qt5-validation-imx-imx6ull_100ask.manifest u-boot-imx6ull_100ask.imx zImage-imx6ull_100ask.bin 100ask-image-qt5-validation-imx-imx6ull_100ask.sdcard.bz2 u-boot-imx6ull_100ask.imx-sd
烧写生成系统镜像文件
- 如何烧写镜像到SD卡或emmc中
- 请先解压镜像后缀为sdcard.bz2的系统镜像文件到任意目录,让后使用我们的 100ask_imx6ull_flashing_tool_v2.0.exe 烧写工具专业版,选择此镜像文件进行烧录即可,工具使用方法请参考
嵌入式Linux应用开发完全手册第2版_韦东山全系列视频文档全集Vxxx.pdf
。
yocto开发参考资料
- bitbake使用介绍
- 如何添加一个包到系统镜像中
- 如何定义自己的image系统镜像
- 如何定义自己的machine端
- 如何定义自己的DISTRO发行版系统