匿名
未登录
登录
百问网嵌入式Linux wiki
搜索
查看“100ask myir imx6ull mini”的源代码
来自百问网嵌入式Linux wiki
名字空间
页面
讨论
更多
更多
页面选项
Read
查看源代码
历史
←
100ask myir imx6ull mini
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
=开始使用= ==启动开发板== ==功能测试== ==应用编程== ==更新系统== ===更新SD卡系统=== ===更新nandflash系统=== ==配置开发环境== :wamware ubuntu系统镜像如何安装请参考 资料光盘 '''00_UserManual/嵌入式Linux应用开发完全手册第2版_韦东山全系列视频文档全集Vxxx.pdf''' :如果使用我们提供的vmware ubuntu 虚拟机镜像配置开发环境,只需在在ubuntu联网状态下在终端下执行如下命令即可完成一键配置开发环境 请参考页面[[Configuring_ubuntu | 配置ubuntu开发环境]]。 :如何您使用的是自行安装的ubuntu 开发环境,我们的脚本会自动新建book用户及相关环境配置。 *一键配置开发环境脚本,在Ubuntu终端下直接执行,即可配置好Linux开发环境依赖(包含tftpp nfs samba 不包含交叉编译工具链 ARCH CROSS_COMPILE设置)。 GIthub地址 <syntaxhighlight lang="Bash"> 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 </syntaxhighlight> 国内coding地址({{Redtext |推荐使用此地址}}) <syntaxhighlight lang="Bash"> 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 </syntaxhighlight> ==获取开发板sdk== ===在线获取=== *以下操作在已经配置好开发环境得ubuntu系统终端下执行(注意:如下操作需要ubuntu可以上网) :*git邮箱账号和用户名配置 <syntaxhighlight lang="bash"> book@100ask:~$ git config --global user.email "you@example.com" book@100ask:~$ git config --global user.name "Your Name" </syntaxhighlight> :初次使用,需要配置用户名和邮箱才可以进行代码同步,用户名和邮箱根据自己情况设定,也可以随意设定 :*考虑到代码仓库过多,特使用repo工具管理代码, <br> ::repo工具配置 <syntaxhighlight lang="bash"> book@100ask:~$ git clone https://e.coding.net/codebug8/repo.git book@100ask:~$ mkdir -p 100ask_myir_mini_imx6ull-sdk && cd 100ask_myir_mini_imx6ull-sdk book@100ask:~/100ask_myir_mini_imx6ull-sdk$ ../repo/repo init -u https://gitee.com/weidongshan/manifests.git -b linux-sdk -m imx6ull/100ask_myir-imx6ull_mini_linux4.9.88_release.xml --no-repo-verify book@100ask:~/100ask_myir_mini_imx6ull-sdk$ ../repo/repo sync -j4 </syntaxhighlight> ::{{redtext|代码会不定时的进行更新同步,用户可以在100ask_myir_mini_imx6ull-sdk目录下使用<code> ../repo/repo sync -c </code>命令来获取最新源码}} :*上面使用的repo管理文件xml为国内coding仓库 https://e.coding.net/weidongshan/manifests.git :*如果使用Github仓库管理文件xml请查看 https://github.com/100askTeam/manifests/blob/linux-sdk/README.md :*所有Git仓库地址链接获取页面:[[ Get_all_Git_repository_address_links | 获取所有Git仓库地址链接]] *git常用命令参考(可以在相应的源码目录使用如下git命令查看所有的提交记录,用于学习研究) :*[[How to use the git log command]] :*[[How to use the git branch command]] :*[[How to use the git reset command]] :*[[How to install the git]] :*[[How to config the git]] :*[[How to submit a git pull request]] ==使用busybox构建系统== ===设置工具链=== 交叉编译工具链主要是用于在ubuntu主机上编译并生成可以在其它平台上运行的系统。设置交叉编译工具主要是设置<code>PATH</code> <code>ARCH</code>和<code>CROSS_COMPILE</code>三个环境变量,下面介绍具体设置方法(3种方法任选一种)。 * 永久生效 如需永久修改,请修改用户配置文件, Ubuntu系统下,修改如下: vim ~/.bashrc 在行尾添加或修改: export ARCH=arm export CROSS_COMPILE=arm-linux-gnueabihf- export PATH=$PATH:/home/book/100ask_myir_mini_imx6ull-sdk/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin 执行完成后使用如下命令使其生效 book@100ask:~$ source ~/.bashrc * 临时生效 执行完“export”命令后,该设置只对当前终端有效 <syntaxhighlight lang="bash"> book@100ask:~$ export PATH=$PATH:/home/book/100ask_myir_mini_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- </syntaxhighlight> * 手动指定 Make编译时指定ARCH架构 CROSS_COMPILE交叉编译工具链 <syntaxhighlight lang="bash"> book@100ask:~$ export PATH=$PATH:/home/book/100ask_myir_mini_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- </syntaxhighlight> * 验证 <syntaxhighlight lang="bash"> book@100ask:~$ arm-linux-gnueabihf-gcc -v Using built-in specs. COLLECT_GCC=arm-linux-gnueabihf-gcc COLLECT_LTO_WRAPPER=/home/book/100ask_myir_mini_imx6ull-sdk/ToolChain/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:~$ </syntaxhighlight> ===手动编译u-boot=== *编译100ask_imx6ull开发板uboot命令 <syntaxhighlight lang="bash"> book@100ask:~$ cd ~/100ask_myir_mini_imx6ull-sdk/Uboot-2018.03 book@100ask:~/100ask_myir_mini_imx6ull-sdk/Uboot-2018.03$ make 100ask_myir_imx6ull_mini_nand_defconfig book@100ask:~/100ask_myir_mini_imx6ull-sdk/Uboot-2018.03$ make </syntaxhighlight> *单独烧写uboot到SD卡 :*请先将SD卡插入电脑,并挂载到ubuntu系统上,如何挂载请参考页面[[How to use vmware usb connection device| 如何使用VMware连接usb设备]],使用<code>dmesg</code>命令查看设备节点名称。 ::获取到设备名称后使用dd命令烧写img镜像文件到TF卡中,如下示例 假如插入ubuntu后设备节点为/dev/sdb。 book@100ask:~/100ask_myir_mini_imx6ull-sdk/Uboot-2018.03$ dd if=u-boot-dtb.imx of=/dev/sdb bs=1k seek=1 conv=fsync ::烧写成功后,需要将SD卡插入开发板内,并设置为SD卡启动方式(启动方式请参考开发板背面) *单独烧写uboot到nandflash *nand flash下设置nfs启动系统命令 *SD卡下设置nfs启动系统命令 *参考/扩展学习 :*[[UBoot|uboot用户手册]] :*[[UBootCmdFDT | uboot下fdt设备树操作命令使用详解]] :*[[UBootCmdGroupDownload | uboot下下载命令使用详解]] :*[[UBootCmdGroupEnvironment | uboot下环境变量命令使用详解]] :*[[UBootCmdGroupExec | uboot下执行控制命令使用详解]] :*[[UBootCmdGroupFlash | uboot下Flash内存命令使用详解]] :*[[UBootCmdGroupInfo | uboot下info命令使用详解]] :*[[UBootCmdGroupMemory | uboot下内存命令使用详解]] :*[[UBootCmdGroupMisc | uboot下混杂设备命令使用详解]] :*[[UBootCmdGroupSpecial | uboot下特殊命令使用详解]] :*[[UBootStorageDevices | uboot下存储设备操作命令使用详解]] :*[[How_to_boot_the_kernel_via_TFTP_from_U-Boot | 如何从U-Boot通过TFTP引导内核]] :*[[How_to_update_U-Boot_on_an_SD_card | 如何在SD卡上更新U-Boot]] :*[[How_to_use_USB_mass_storage_in_U-Boot |如何在U-Boot中使用USB大容量存储]] ===手动编译Linux kernel=== *编译100ask_imx6ull 开发板内核 <syntaxhighlight lang="bash"> book@100ask:~/100ask_myir_mini_imx6ull-sdk$ cd Linux-4.9.88 book@100ask:~/100ask_myir_mini_imx6ull-sdk/Linux-4.9.88$ make mrproper book@100ask:~/100ask_myir_mini_imx6ull-sdk/Linux-4.9.88$ make 100ask_myir_imx6ull_mini_defconfig book@100ask:~/100ask_myir_mini_imx6ull-sdk/Linux-4.9.88$ make zImage -jN //这里可以根据CPU个数,来加速编译系统。 book@100ask:~/100ask_myir_mini_imx6ull-sdk/Linux-4.9.88$ make dtbs </syntaxhighlight> *最后生成的内核镜像和设备树文件在如下目录 :*内核文件'''zImage'''所在目录:<code>arch/arm/boot/ </code> :*设备树文件'''100ask_myir_imx6ull_mini.dtb'''所在目录:<code>arch/arm/boot/</code> *拷贝内核镜像到开发板系统 *:ssh登陆开发板拷贝镜像 *:nfs挂载文件系统拷贝内核镜像 *:tftp下载内核镜像 *:通过wmware挂载u盘拷贝文件 *编译内核模块 book@100ask:~/100ask_myir_mini_imx6ull-sdk/Linux-4.9.88$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules *安装内核模块到nfs根文件系统 book@100ask:~/100ask_myir_mini_imx6ull-sdk/linux-4.9.88$ sudo make ARCH=arm INSTALL_MOD_PATH=</media/rootfs> modules_install ===手动编译rootfs=== *配置busybox配置文件 book@100ask:~/100ask_myir_mini_imx6ull-sdk/Busybox_1.30.0$ cp ../DevelopmentEnvConf/100ask_imx6ull_busybox_config .config *编译busybox并安装 book@100ask:~/100ask_myir_mini_imx6ull-sdk/Busybox_1.30.0$ make book@100ask:~/100ask_myir_mini_imx6ull-sdk/Busybox_1.30.0$ make install *创建相应得目录及文件并打包压缩成tar.gz book@100ask:~/100ask_myir_mini_imx6ull-sdk/DevelopmentEnvConf$ sudo ./busybox_build_config.sh *安装其它必须库 :如蓝牙固件 系统模块等。 ===制作系统镜像=== *参考[[How_to_create_EXT4_images | 如何创建Ext4系统镜像 ]] *参考[[How_to_create_ubi_images | 如何创建UBI系统镜像]] ===安装文件系统到目标开发板=== *安装到Sd卡系统内 *安装到emmc系统内 *nfs网络挂载启动 ==使用buildroot构建系统== ===获取源码=== :参考页面[[100ask_imx6ull#.E8.8E.B7.E5.8F.96.E5.BC.80.E5.8F.91.E6.9D.BFsdk | 获取开发板sdk]] *配置文件说明 {| class="wikitable" |- ! 配置文件名称 !! 作用简介 |- |100ask_myir_imx6ull_mini_defconfig || 专门用于myir imx6ull 256MB NAND flash SD卡启动的文件系统,使用busybox init进程文件系统。 |- |100ask_myir_imx6ull_mini_nandflash_defconfig || 专门用于myir imx6ull 256MB NAND flash ubi文件系统,使用busybox init进程文件系统。 |- |100ask_myir_imx6ull_mini_systemV_defconfig || 用于SD卡启动的文件系统,使用systemV守护服务。 |- |100ask_myir_imx6ull_systemD_defconfig || 用于SD卡启动的文件系统,使用systemD守护服务。 |} *扩展阅读 **什么是ubi文件系统? **什么是init进程? **什么是systemV守护服务? **什么是systemD守护服务? ===编译nandflash文件系统=== *以编译100ask_myir_imx6ull_mini_nandflash_defconfig系统镜像为例,如下为编译步骤 <syntaxhighlight lang="bash"> book@100ask:~/100ask_myir_mini_imx6ull-sdk$ cd Buildroot_2019.02 book@100ask:~/100ask_myir_mini_imx6ull-sdk/Buildroot_2019.02$ make clean book@100ask:~/100ask_myir_mini_imx6ull-sdk/Buildroot_2019.02$ make 100ask_myir_imx6ull_mini_nandflash_defconfig book@100ask:~/100ask_myir_mini_imx6ull-sdk/Buildroot_2019.02$ make all </syntaxhighlight> '''注意:机器性能不同,编译时间不同。性能差的电脑,有可能需要等待数小时。''' :*编译后生成文件介绍 <syntaxhighlight lang="bash" > buildroot2019.02 ├── output ├── images ├── 100ask_myir_imx6ull_mini.dtb <--设备树文件 ├── rootfs.tar ├── rootfs.tar.bz2 <--打包并压缩的根文件系统,用于NFSROOT启动 ├── rootfs.ubi <--nandflash文件系统ubi格式镜像 ├── rootfs.ubifs ├── u-boot-dtb.imx <--u-boot镜像 └── zImage <--linux内核镜像 </syntaxhighlight> ===编译SystenV服务系统=== *100ask_myir_imx6ull_mini_systemV_defconfig,如下为编译步骤 <syntaxhighlight lang="bash"> book@100ask:~/100ask_myir_mini_imx6ull-sdk$ cd Buildroot_2019.02 book@100ask:~/100ask_myir_mini_imx6ull-sdk/Buildroot_2019.02$ make clean book@100ask:~/100ask_myir_mini_imx6ull-sdk/Buildroot_2019.02$ make 100ask_myir_imx6ull_mini_systemV_defconfig book@100ask:~/100ask_myir_mini_imx6ull-sdk/Buildroot_2019.02$ make all </syntaxhighlight> '''注意:机器性能不同,编译时间不同。性能差的电脑,有可能需要等待1 ~ 2个小时。''' :*编译后生成文件介绍 <syntaxhighlight lang="bash" > 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 <--内核镜像 </syntaxhighlight> ===编译SystenD服务系统=== *100ask_myir_imx6ull_systemD_defconfig,如下为编译步骤 <syntaxhighlight lang="bash"> book@100ask:~/100ask_myir_mini_imx6ull-sdk$ cd Buildroot_2019.02 book@100ask:~/100ask_myir_mini_imx6ull-sdk/Buildroot_2019.02$ make clean book@100ask:~/100ask_myir_mini_imx6ull-sdk/Buildroot_2019.02$ make 100ask_myir_imx6ull_systemD_defconfig book@100ask:~/100ask_myir_mini_imx6ull-sdk/Buildroot_2019.02$ make all </syntaxhighlight> '''注意:机器性能不同,编译时间不同。性能差的电脑,有可能需要等待1 ~ 2个小时。''' :*编译后生成文件介绍 <syntaxhighlight lang="bash" > 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 <--内核镜像 </syntaxhighlight> ===buildroot常用编译命令=== *buildroot对于Linux内核的常用命令 :*buildroot下单独编译内核 make linux-rebuild :*运行内核make menuconfig配置选项界面 make linux-menuconfig :*保存内核最新的配置文件 make linux-savedefconfig :*更新内核配置文件到 100ask_imx6ull_defconfig make linux-update-defconfig *buildroot下其它常用操作 :*buildroot下编译时显示详细信息 make V=1 <pkg> :*buildroot下单独编译u-boot make uboot-rebuild :*buildroot下单独编译某个软件包 make <pkg>-rebuild ===更新系统到开发板=== ===如何烧写=== *如何烧写SD卡系统 :请将编译后的 '''output/images/sdcard.img'''文件使用FileZilla等工具拷贝到widows目录,让后参考如上页面[[100ask_imx6ull#.E6.9B.B4.E6.96.B0SD.E5.8D.A1.E7.B3.BB.E7.BB.9F | 更新SD卡系统]]来烧写最新编译的sd卡系统。 *如何使用10ask_imx6ull烧写工具烧写nand flash系统 ===参考/扩展阅读=== *[[Buildroot | Buildroot简介]] *[[How to add a new package to buildroot | 如何添加一个自己的包到buildroot]] *[[Buildroot_TargetOptions | 如何配置TargetOptions(目标架构选择) ]] *[[Buildroot_BuildOptions| 如何配置buildroot构建选项]] *[[Buildroot_Toolchain | 如何为目标单板配置工具链]] *[[Buildroot_SystemConfiguration | 如何为目标单板配置系统配置参数]] *[[Buildroot_Kernel |如何为目标单板安装内核镜像]] *[[Buildroot_TargetPackages | 如何安装相应的软件包到目标单板内]] *[[Buildroot_Bootloaders | 如何为目标单板安装uboot]] *[[Buildroot_FilesystemImages | 如何为目标单板生成指定的文件系统镜像]]
该页面使用的模板:
模板:Redtext
(
查看源代码
)
返回至
100ask myir imx6ull mini
。
导航
导航
WIKI首页
官方店铺
资料下载
交流社区
所有页面
所有产品
MPU-Linux开发板
MCU-单片机开发板
Linux开发系列视频
单片机开发系列视频
所有模块配件
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志