“100ask imx6ull”的版本间的差异
来自百问网嵌入式Linux wiki
第213行: | 第213行: | ||
===手动编译u-boot=== | ===手动编译u-boot=== | ||
− | * | + | *编译100ask_imx6ull开发板uboot命令 |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | book@100ask:~$ | + | book@100ask:~$ cd ~/100ask_imx6ull-sdk/Uboot-2017.03 |
− | book@100ask: ~/100ask_imx6ull-sdk/ | + | book@100ask:~/100ask_imx6ull-sdk/Uboot-2017.03$ make mx6ull_14x14_evk_defconfig |
− | book@100ask: ~/100ask_imx6ull-sdk/ | + | book@100ask:~/100ask_imx6ull-sdk/Uboot-2017.03$ make |
− | |||
</syntaxhighlight> | </syntaxhighlight> | ||
*单独烧写uboot | *单独烧写uboot | ||
− | + | :*请先将SD卡插入电脑,并挂载到ubuntu系统上,使用<code>dmesg</code>命令查看设备节点名称。 | |
− | book@100ask:~/ | + | ::获取到设备名称后使用dd命令烧写img镜像文件到TF卡中,如下示例 假如插入ubuntu后设备节点为/dev/sdb。 |
+ | book@100ask:~/100ask_imx6ull-sdk/Uboot-2017.03$ dd if=u-boot-dtb.imx of=/dev/sdb bs=1k seek=1 conv=fsync | ||
* nfs启动系统 | * nfs启动系统 | ||
2020年1月11日 (六) 14:24的版本
|
|
开始使用
打开包装 连接开发板
启动开发板
执行基本命令
示例功能体验
应用编程
更新系统
更新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接口处。
- 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启动即可,(启动方式设置在开发板背面印有丝印说明)
进阶使用
配置开发环境
- 如果使用我们提供的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://dev.tencent.com/u/weidongshan/p/DevelopmentEnvConf/git/raw/master/Configuring_ubuntu.sh && sudo chmod +x Configuring_ubuntu.sh && sudo ./Configuring_ubuntu.sh
一键获取所有源码
- 以下操作在已经配置好开发环境得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://git.dev.tencent.com/codebug8/repo.git
book@100ask:~$ mkdir -p 100ask_imx6ull-sdk && cd 100ask_imx6ull-sdk
book@100ask:~/100ask_imx6ull-sdk$ ../repo/repo init -u https://dev.tencent.com/u/weidongshan/p/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
- 上面使用的repo管理文件xml为国内coding仓库 https://dev.tencent.com/u/weidongshan/p/manifests/git/tree/linux-sdk
- 如果使用Github仓库管理文件xml请查看 https://github.com/100askTeam/manifests/blob/linux-sdk/README.md
- git常用命令参考
使用busybox构建系统
设置工具链
交叉编译工具链主要是用于在ubuntu主机上编译并声称可以在其它平台上运行的系统。设置交叉编译工具主要是设置PATH
ARCH
和CROSS_COMPILE
三个环境变量,下面介绍具体设置方法。
- 永久生效
如需永久修改,请修改用户配置文件, 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
- 临时生效
执行完“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-
手动编译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系统上,使用
dmesg
命令查看设备节点名称。
- 获取到设备名称后使用dd命令烧写img镜像文件到TF卡中,如下示例 假如插入ubuntu后设备节点为/dev/sdb。
- 请先将SD卡插入电脑,并挂载到ubuntu系统上,使用
book@100ask:~/100ask_imx6ull-sdk/Uboot-2017.03$ dd if=u-boot-dtb.imx of=/dev/sdb bs=1k seek=1 conv=fsync
- nfs启动系统
手动编译Linux kernel
- 编译100ask_imx6ull 开发板内核
~/100ask_imx6ull-sdk/Linux-4.9.88
book@100ask:~/100ask_imx6ull-sdk$ cd Linux-4.9.88
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ make mrproper
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ make 100ask_imx6ull_defconfig
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ make zImage -jN //这里可以根据CPU个数,来加速编译系统。
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ make dtbs
- 编译内核模块
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules
- 安装内核模块到nfs根文件系统
book@100ask:~/100ask_fire-imx6ull/linux-4.9.88$ sudo make ARCH=arm INSTALL_MOD_PATH=</media/rootfs> modules_install
手动编译rootfs
制作系统镜像
- 参考 如何创建Ext4系统镜像
- 参考 如何创建UBI系统镜像
使用buildroot构建系统
获取源码
- 在线方式获取buildroot系统源码包:
- 本地拷贝
编译系统
- 配置文件说明
配置文件 | 含义 |
---|---|
100ask_imx6ull_nfs_defconfig | 专门用于nfs启动使用的文件系统 |
100ask_imx6ull_defconfig | 默认文件系统版本(包含除qt以外所有工具) |
100ask_imx6ull_QT_defconfig | 包含Qt文件系统版本 |
- 以编译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个小时。
- 编译后生成文件介绍
Buildroot_2019.02
├── output
├── images
├── idbloader.img <--u-boot镜像
├── nfs_rootfs <--打包并压缩的根文件系统,适用于NFSROOT启动
│ └── rootfs.tar.gz
├── rk3288-firefly.dtb <--设备树文件
├── rootfs.ext2
├── rootfs.ext4 -> rootfs.ext2 <--ext2格式根文件系统
├── rootfs.tar <--打包后的根文件系统
├── sdcard.img <--完整的SD卡系统镜像
├── trust.img <--u-boot镜像
├── u-boot.bin
├── u-boot-dtb.img
├── uboot.img <--u-boot镜像
└── zImage <--内核镜像
- buildroot下单独编译内核
book@100ask:~$ cd ~/100ask_imx6ull-sdk/Uboot2017.03
book@100ask: ~/100ask_imx6ull-sdk/Uboot2017.03 $ make distclean
book@100ask: ~/100ask_imx6ull-sdk/Uboot2017.03 $ make mx6ull_14x14_defconfig
book@100ask: ~/100ask_imx6ull-sdk/Uboot2017.03 $ make
buildroot linux-menuconfig
- buildroot下单独编译u-boot
:*buildroot下单独编译某个软件包
如何烧写
- 如何烧写SD卡系统
- 如何使用mfgtools烧写buildroot生成的系统镜像
使用yocto构建系统
在线获取源码
book@100ask:~$ git clone https://git.dev.tencent.com/codebug8/repo.git book@100ask:~$ mkdir -p Yocto-sdk && cd Yocto-sdk
编译完整系统镜像
book@100ask:~$ DISTRO=fsl-imx-fb MACHINE=imx6ullevk source fsl-setup-release.sh -b build-fb
book@100ask:~$ bitbake fsl-image-qt5-validation-imx
- 生成得系统镜像文件在
烧写生成系统镜像文件
- 如何烧写到SD卡中
- 如何使用mfgtools烧写到emmc中
yocto开发参考资料
- bitbake使用介绍
- 如何添加一个包到系统镜像中
- 如何定义自己的image系统镜像
- 如何定义自己的machine端
- 如何定义自己的DISTRO发行版系统