百问网Imx6ull开发板

從 百问网嵌入式Linux wiki
於 2020年2月26日 (三) 00:44 由 Weidongshan (對話 | 貢獻) 所做的修訂
跳到: 導覽搜尋
  • 所有資料下載方法
  • 單項下載
  • 視頻
  • 視頻對應的源碼和文檔
  • 開發板資料
  • 原理圖開源資料
  • 配套模塊
  • rtc時鐘模塊
  • 4G模塊
  • usb攝像頭模塊
  • cmos攝像頭模塊
  • 7寸 RGBlcd顯示模塊
  • HDMI顯示模塊
  • imx6ull擴展版

開發板簡介

1:4G LED燈
2:用戶LED燈
3:電源指示燈
4:nano SIM卡插座
5:USB OTG
6: USB 轉串口
7: 2路USB HOST
8: KEY 1
9: KEY2
10: RS485
11: CAN接口
12: 以太網接口1(RJ45) 10M/100M
13: 以太網接口2(RJ45) 10M/100M
14: 板載HDMI接口(可以接電視顯示器)
15: RGB TFT LCD接口
16: BOOT選擇撥碼開關
17: AP3216 三合一整合型光感測器
18: micro SD接口
19: Camera & 擴展GPIO
20: 復位按鍵 KEY4
21: 開/關機 KEY3
22: DC 6~12V電源輸入
23: Power Switch
24: 喇叭輸出
25: 4線耳麥接口
26: 512MB DDR3L內存晶片
27: 4GB eMMC flash
28: 高性能音頻編解碼晶片WM8960
29: NXP IMX6ULL主控晶片(主頻528MHz ,具體型號請以實物為準)
30: MIC1(咪頭)
31: 六軸傳感器(晶片型號IC268G)
32: LAN PHY晶片
33: 板載WIFI/BT晶片RTL8723
34: RTC後備電池接口
35: mini PCIE 4G模塊接口



開始使用

  • 下載資料
  • 體驗開發板
    • 參考:BSP包100ask_imx6ull_2020.02.10_v1.1中, 00_UserManual/100ask_imx6ull開發板用戶手冊-入門篇_v2.0.pdf
    • 這個手冊按需觀看,初學者需要看:
      • 《第2章 搭建開發環境》
      • 《第6章 啟動開發板》
      • 《9.1 獲取源碼》、《9.2 配置交叉編譯工具鏈》
      • 《第10章 燒寫整個系統或更新部分系統》
      • 《第11章 PC和開發板之間傳輸文件》
  • 開始學習
  • 就是想從裸機開始學習
    • 請參考GIT下載的目錄: 01_all_series_quickstart\05_臨時文件_裸機文檔程序眾包
  • 其他參考資料
    • BSP包100ask_imx6ull_2020.02.10_v1.1中, 00_UserManual/參考資料 ,裏面有:
      • Arm架構參考資料.zip
      • Gcc學習參考資料.zip
      • Git參考資料.zip
      • LinuxC編程參考資料.zip
      • linux基礎知識學習參考資料.zip
      • Makefile學習參考資料.zip
      • ubuntu學習參考資料.zip
  • 文檔更新
    • 學習手冊我們會不斷更新,臨時版本放在QQ群文件中
    • 100ask_imx6ull售後群1,QQ群號碼718867902(進群需提供購買記錄)
    • 文檔驗證後再統一上傳至百度網盤
  • 強烈建議


打開包裝 連接開發板

啟動開發板

執行基本命令

示例功能體驗

應用編程

更新系統

更新SD卡系統

  • 1.安裝資料光盤下01_tools\SD Card Formatter 5.0.1 Setup.exe軟件,安裝完成後打開!
  • 2.使用SdCardFormatter格式化SD卡,格式化步驟如下如所示!
100ask am335x SD P 004.png 100ask am335x SD P 005.png 100ask am335x SD P 006.png
(1)選擇要格式化的SD卡,選中Quick format,點擊Format (2)在彈出的對話框中點擊是(Y) (3)等待格式化完成,在彈出的對話框中點擊確定
  • 3.安裝資料光盤下01_tools/ win32diskimager-1.0.0-install.exe軟件,安裝完成後打開!
  • 4.使用wind32diskimage燒寫存放在02_Images\Sdcard 目錄下的 sdcard.img 系統鏡像文件,燒寫步驟如下所示!
100ask am335x SD p 001.png 100ask am335x SD p 002.png 100ask am335x SD p 003.png
(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連接。
100ask imx6ul 006 new.png 100ask imx6ul 007.png 100ask imx6ul 008.png
(1)usb otg連結成功示意圖,連接成功後點擊start按鈕開始燒寫 (2)系統燒寫中示意圖 (3)燒寫完成示意圖(點擊Stop,再點擊Exit即可退出)
5.設置開發板啟動方式為Emmc啟動即可,(啟動方式設置在開發板背面印有絲印說明)

進階使用

配置開發環境

wamware ubuntu系統鏡像如何安裝請參考 資料光盤 00_UserManual/100ask_imx6ull開發板高級用戶使用手冊_v1.0.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://dev.tencent.com/u/weidongshan/p/DevelopmentEnvConf/git/raw/master/Configuring_ubuntu.sh && sudo chmod +x Configuring_ubuntu.sh && sudo ./Configuring_ubuntu.sh

獲取開發板sdk

本地拷貝上傳

通過FileZilla等工具上傳資料光盤中的 07_bsp_sdk/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工具配置
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://e.coding.net/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 命令來獲取最新源碼
  • git常用命令參考(可以在相應的源碼目錄使用如下git命令查看所有的提交記錄,用於學習研究)

使用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

執行完成後使用如下命令使其生效

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-

手動編譯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
獲取到設備名稱後使用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
燒寫成功後,需要將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
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
  • 拷貝內核鏡像到開發板系統
    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
  • 安裝其它必須庫
如藍牙固件 系統模塊等。



製作系統鏡像

安裝文件系統到目標開發板

  • 安裝到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構建系統

在線獲取源碼

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驅動

系統監視

應用調試

內核調試

常見問題

參考