“100ask imx6ull”的版本间的差异

来自百问网嵌入式Linux wiki
第109行: 第109行:
 
book@100ask:~$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
 
book@100ask:~$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
 
</syntaxhighlight>
 
</syntaxhighlight>
 
  
 
===手动编译u-boot===
 
===手动编译u-boot===
第122行: 第121行:
 
使用dd命令烧写img镜像文件到TF卡中。
 
使用dd命令烧写img镜像文件到TF卡中。
 
  book@100ask:~/100ask_fire-imx6ull/uboot2017.03 $  dd if=u-boot-dtb.imx of=/dev/sdb bs=1k seek=1 conv=fsync
 
  book@100ask:~/100ask_fire-imx6ull/uboot2017.03 $  dd if=u-boot-dtb.imx of=/dev/sdb bs=1k seek=1 conv=fsync
 
 
* nfs启动系统
 
* nfs启动系统
  
第139行: 第137行:
 
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules
 
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules
 
</syntaxhighlight>
 
</syntaxhighlight>
安装内核模块到nfs根文件系统
+
*安装内核模块到nfs根文件系统
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
book@100ask:~/100ask_fire-imx6ull/linux-4.9.88$ sudo make ARCH=arm INSTALL_MOD_PATH=/media/rootfs  modules_install
+
book@100ask:~/100ask_fire-imx6ull/linux-4.9.88$ sudo make ARCH=arm INSTALL_MOD_PATH=</media/rootfs> modules_install
 
</syntaxhighlight>
 
</syntaxhighlight>
  

2020年1月8日 (三) 14:32的版本

开发板简介

开始使用

打开包装 连接开发板

启动开发板

执行基本命令

  • 如何使用ssh登陆开发板
  • 如何使用samba传输文件
  • 如何使用udhcpc自动获取ip地址
  • 如何使用http搭建网站
  • 如何使用fdisk进行分区
  • 如何使用mtd-tools进行分区
  • 如何使用rz命令实现串口传输文件
  • 如何使用wget下载文件
  • 如何使用htop工具检测系统资源

示例功能体验

  • 如何使用aplayer播放音频文件
  • 如何使用arecord录音
  • 如何使用wpa链接wifi网络并上网
  • 如何使用fb-test测试显示器颜色
  • 如何使用tslib校准触摸屏坐标
  • 如何使用bluez工具扫描蓝牙设备并连接
  • 如何使用V4l2-ctl获取摄像头参数
  • 如何使用pppd对配套4G模块拨号上网
  • 如何使用can-utils工具测试can接口
  • 如何使用ethtool工具获取网卡详细信息
  • 如何使用mii-diag工具获取MDIO设备信息
  • 如何使用iperf3对网卡进行压力测试
  • 何使用iw工具扫描wifi设备
  • 如何使用wpa_supplicant工具链接wifi网络

应用编程

更新系统

更新SD卡系统

  • 使用

更新emmc系统

  • 使用mfgtools烧写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工具配置
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

使用busybox构建系统

设置工具链

交叉编译工具链主要是用于在ubuntu主机上编译并声称可以在其它平台上运行的系统。设置交叉编译工具主要是设置PATH ARCHCROSS_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

  • 编译野火imx6ull_mini开发板uboot命令
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
  • 单独烧写uboot

使用dd命令烧写img镜像文件到TF卡中。

book@100ask:~/100ask_fire-imx6ull/uboot2017.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

使用buildroot构建系统

获取源码

  • 在线方式获取buildroot系统源码包
  • 本地拷贝

编译完整系统

  • buildroot下单独编译内核
  • 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发行版系统

使用发行版系统

  • 使用制作好的镜像烧录至开发板
  • 自己手动构建适合imx6ull发行版文件系统

高阶使用

调试u-boot

调试kernel驱动

系统监视

应用调试

内核调试

常见问题

参考