Yocto Linuxでサポートされている製品の開発とテスト方法は?EBOX-IMX8MMでの開発及びテストプロセスの記録

EB-IMX8MM-VESA EB-IMX8MM-DINRAIL1

NXP i.MX8M Mini ARM Cortex-A53 processorはIPCの開発プロジェクトで広く採用されています。 ICOPはi.MX8M Miniを中心にシステム全体を構築することもしておりPanel PCBox PCなどの優れた構成と高品質な製品を網羅しています。

EBOX-IMX8MM はICOPが提供するARMベースのEBOXであり広い製品にすぐに適用できます。EBOXはファンレス, 小フットプリント, プレミアムアルミニウムカバーなどの一連の機能を備えています。EBOXには標準VESA及びDINレール取り付けオプションもあり、-40〜80°Cの広い温度範囲をサポート(オプション拡張モデル)し産業用オプションを強化します。このARMCortex A-53プロセッサは豊富なI / Oを備え、GPUとVPUを搭載し低消費電力向けに最適化しながらオーディオとHDMIの高性能処理が可能です。 購入者は注文の際、Android 9 &Yocto Linuxのプリインストールを選択することもできます。


EBOX-IMX8MM:

システム仕様
Processor NXP i.MX8M Mini Quad-core 1.6 GHz ARM Cortex-A53 processor
Memory 1GB to 4GB LPDDR4 onboard
HDMI HDMI 1.3 (MAX.1920 x 1080 pixels)
Ethernet RJ45 x2 (Intel I1210 GbE x1/CPU GbE x1)
USB USB 2.0 x3 (Front x2 + Rear x1)
HD Audio Mic-in & Line-out (WM8960)
SD card slot SD Slot x1 (Internal slot Optional)
Extension I/F 8GB to 64GB eMMC MLC/SLC onboard
Extension I/F WiFi 802.11b/g/n & BT4.1 Combo 2.4G (Broadcom 43438)
RS-232 D-Sub 9-pin connector x2 or x4 ports
RS-485 D-Sub 9-pin connector x2 ports
Power requirement DC +12V~+36V
Dimensions 115 x 115 x 35mm/DIN Rail Support (Optional)
Net Weight 700g
Operation Temperature 0 ~ +60℃/-40 ~ +80℃
Certifications CE, FCC, VCCI
OS Support Android 9, Yocto, Mainline Linux Kernel Support


パッケージ寸法 240 x 220 x 170mm, 内容物:

  • EBOX-IMX8MM x 1pcs
  • 22.5W Power supply x 1pcs
  • Rubber pads sticker x 1pcs
  • VESA screw x 4pcs
  • Protection Paperboard box
EB-IMX8MM-Package1


EBOX-IMX8MM Diagram:

EB-IMX8MM-FrontView EB-IMX8MM-RearView.png EB-IMX8MM-SideView

*黒いアルミニウム・カバーはヒートシンクとなるようプロセッサに触れフィンとともに優れた熱伝導を提供します。


最高のユーザ満足度を満たすために、多くの検証とテストが行​​われてきました。

EB-IMX8MM-production


小さなデバイス、大きなアプリケーション

EB-IMX8MM-Industrial EB-IMX8MM-Automotive EB-IMX8MM-Technologies EB-IMX8MM-SmartHome EB-IMX8MM-SmartCity

(より詳細なアプリケーション情報は NXP applications reference linkをクリックしてください)



EBOX-IMX8MM-2G向けのYocto Linuxビルドのレシピ(Recipe)

このセクションでは、EBOX-IMX8MM-2G向けYocto Linuxをビルドするためのレシピについて説明します。
info@icop.com.twに問い合わせて、EBOX-IMX8MM-2G向けYocto Linuxをビルドするためのファイルとリソースを入手してください。

NXPのコンパイル方法も確認することができます: IMXLXYOCTOUG.pdf

推奨O/S: Ubuntu 18.04 またはそれ以降

SDLビルドの際のエラーを避けるために、local.confを参照してください。

#PACKAGECONFIG_append_pn-qemu-native = “sdl”
#PACKAGECONFIG_append_pn-nativesdk-qemu=”sdl”

ストレージ: ストレージデバイスの容量が300GBを超えていることを確認してください。

RAM: 物理メモリ+スワップ容量が16GBより大きいことを確認してください。


EBOX-IMX8MM-2G向けYocto Linux recipeのビルド手順:

  1. Host packagesのインストール:
    必須なYocto Project host packages:
    $ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \ build-essential chrpath socat libsdl1.2-dev

    Ubuntu 12.04、または14.04向けのi.MX layers host packagesのhost setupは:
    $ sudo apt-get install libsdl1.2-dev xterm sed cvs subversion coreutils texi2html \ docbook-utils python-pysqlite2 help2man make gcc g++ desktop-file-utils \ libgl1-mesa-dev libglu1-mesa-dev mercurial autoconf automake groff curl lzop \ asciidoc

  2. repo utilityのインストール:
    homeディレクトリにbin フォルダを作成します:
    $ mkdir ~/bin (this step may not be needed if the bin folder already exists)
    
        $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
    
        $ chmod a+x ~/bin/repo

  3. ~/bin フォルダに明確にPATHを通すため .bashrc fileに次のラインを追加してください。
    export PATH=~/bin:$PATH

  4. 以下のコマンドでgitが正しく設定されていることを確認してください:
    $ git config --global user.name "Your Name"
    
        $ git config --global user.email "Your Email"
    
        $ git config –list

  5. i.MX Yocto Project Community BSP recipe layersをダウンロードしてください:
    $ mkdir imx-yocto-bsp
      
    $ cd imx-yocto-bsp
    
        $ repo init -u https://source.codeaurora.org/external/imx/imx-manifest -b \ imx-linux-sumo -m imx-4.14.98-2.0.0_ga.xml
    
        $ repo sync

  6. Yocto Linuxビルド向けのRecipeを‘imx-yocto-bsp’に解凍してください。

  7. 以下のコマンドでセットアップ環境を作成します(ファイル名は可変です)
    $ DISTRO=fsl-imx-xwayland MACHINE=dm395b source fsl-setup-release.sh -b \ build-dmp
    EULAの確認が表示されたら、「y」を入力してください。

  8. conf / local.confファイルを編集し、以下のコンテンツを下部に追加します:
    CORE_IMAGE_EXTRA_INSTALL += “chromium-ozone-wayland”
    
        IMAGE_INSTALL_append += “\
    
        openssh-sftp-server \
    
            ppp \
    
            rng-tools \
    
            glibc-gconv-utf-16 \
    
            expand-rootfs \
    
        “

  9. conf / bblayers.confファイルを編集し、以下のコンテンツを下部に追加します:
    BBLAYERS += “${BSPDIR}/sources/meta-custom-dmp

  10. 以下コマンドを実行します。
    $ bitbake fsl-image-qt5-validation-imx


上記の手順を完了すると、システムはソースコードのダウンロードとインストール、ファイルへのパッチ適用、およびコンパイルを開始します。


UUUによるイメージのインストール

fsl-image-qt5-validation-imxbitbakeを実行した後、イメージファイルが生成され、build-dmp / tmp / deploy / images / dm395bの下に保存されます。

build-dmp / tmp / deploy / images / dm395b内のファイルで、イメージのリストアには以下のファイルが必要になります。

  1. fsl-image-qt5-validation-imx-dm395b.sdcard.bz2
  2. imx-boot-dm395b-sd.bin-flash_evk

イメージファイル fsl-image-qt5-validation-imx-dm395b.sdcardを取得するコマンドを入力します(このファイルには、パッケージ化されたカーネルとrootfsがあります)。

$ bzip2 -d fsl-mage-qt5-validation-imx-dm395b.sdcard.bz2

サンプルをダウンロードするためにinfo@icop.com.twに問い合わせください。

ファイル名を変更する必要がある場合は、以下の手順に従ってファイル名を変更してください(ファイル名の変更が不要な場合は変更の必要はありません)。

SDP: boot -f XXX.bin-flash_evk

SDPU: write -f XXX.bin-flash_evk -offset 0x57c00

SDPS: boot -f XXX.bin-flash_evk

SDPV write -f XXX.bin-flash_evk -skipspl

FB: flash bootloader XXX.bin-flash_evk

XXX.bin-flash_evk = imx-boot-dm395b-sd.bin-flash_evk



FB: flash -raw2sparse all XXX.image

XXX.image = fsl-mage-qt5-validation-imx-dm395b.sdcard

ファイル名を設定したら、以下のコマンドを入力してYoctoLinuxをインストールします。

uuu uuu.auto


インストールのテストと使用(Bluetooth A2DP, Ethernet, UART, WiFi, SPK-OUT)

Yocto LinuxをビルドしUUUからイメージをインストールした後、機能のテストを開始できます。

Contents


Bluetooth A2DP 機能テスト:

Bluetooth moduleの初期化

# hciattach /dev/ttymxc0 bcm43xx 3000000 flow -t 30

Bluetooth function controllerをオンにします

# bluetoothct1

Bluetoothをオン

[bluetooth] #power on

Bluetooth functionの状態をチェックします。

[bluetooth] # show

Bluetooth A2DPの再生をテストするには、Pulseオーディオコントロールモジュールをロードする必要があります。操作を簡単にするために、別のターミナル(terminal2)を立ち上げて、コントロールモジュールをロードします。

# pulseaudio –D

その間Bluetoothctlはより多くの制御モジュールをロードします。ターミナル1でBluetoothをスキャンします。

[bluetooth] # scan on

Bluetoothデバイスを見つけた後、スキャンを停止します。

[bluetooth] # scan off

Bluetoothデバイスを接続します. (Ex: Bluetooth ヘッドホン、またはスピーカー)

[bluetooth] # connect BT-addr

Bluetoothデバイスを接続した後、ターミナルをチェックしてA2DPがサポートされているかどうかを確認します。

# pactl info

テストのために音楽の再生を開始します。

# gat-launch-1.0 playbin uri=file:///path


Ethernet テスト:

PINGコマンドを使用してネットワーク接続をテストします。

# ping –c 10 www.google.com

iPerf3ネットワーク帯域幅テスト。通常iPerf3でネットワークをテストする場合、iPerf3を同時にテストするためにサーバー側とクライアント側を準備する必要があります。 まず、サーバー側でiPerf3を起動します。
First, start iPerf3 on the server-side.

# Server-side

# iperf3 –s

次にクライアント側でiPerf3を起動します。

# Client-side

# iperf3 –c SERVER IP

クライアント側のSERVER_IPは、サーバー側のIPまたはデバイス名に設定する必要があります。 iPerf3がテスト中の場合、サーバー側とクライアント側の両方にデータが表示されます(テスト結果を以下に示します):


UART 概略:

EBOX-IMX8MMには4つのUARTがあり、デフォルト設定は以下のとおりです:

UART1はWLAN / Bluetoothモジュールに接続

UART2はconsole functionに接続

UART3はボード上のJ19コネタクに接続

UART4はボード上のJ21コネタクに接続

EBOXにWLANまたはBluetoothがない場合、UART1はJ15コネクタに接続

Linux下でのUART名前付け:

UART 1: /dev/ttymxc0

UART 2: /dev/ttymxc1

UART 3: /dev/ttymxc2

UART 4: /dev/ttymxc3

LinuxのルートファイルにUARTテストツールファイルを配置します(テストツールについてはinfo@icop.com.twにお問い合わせください)

テスト UART3:

# ./linux-serial-test –p /dev/ttymxc2 –o 5 –i 6 –c

テスト UART4:

# ./linux-serial-test –p /dev/ttymxc3 –o 5 –i 6 –c


Wi-Fi 機能テスト:

SSIDを接続するために、以下のコマンドでwlan0をオフにします:

# ifconfig wlan0 down

SSIDに接続し、SSIDパスワードを入力します:

# iwconfig wlan0 essid “SSID” key “SSIDPASSWORD”

wlan0をオンにします:

# ifconfig wlan0 up

DHCPサーバーにIPアドレスを要求します:

# udhcpc –i wlan0

PINGコマンドを使用して、ネットワーク接続をテストします:

# ip=$(ifconfig wlan0 | grep “inet addr” | cut –f 1 –d B | sed ‘s/inet addr://g’);ping –c 5 S $ip www.google.com.tw


ヘッドホン/SPK-OUT テスト:

ケーブルを差し込み、以下のパスを使用します:

# gst-launch-1.0 playbin uri=file:///path audio-sink=alsasink

パスにはWAV、MP3、FLACなどがあります。 ファイルを入力するとヘッドホンまたはSPK-OUTから音声が再生されます。

PCMボリューム(オーディオデコーダーのメインボリューム)を設定する必要がある場合、範囲は0〜127の範囲で設定できます。

# amixer set Headphone 80


レコーディング・テスト:

MICをMIC-INコネクタに接続し、以下のコマンドを入力して録音を開始します。録音が終了するとtest.wavという名前のオーディオファイルが生成されます:

# arecord –D hw:0, 0 –r 48000 –c 2 –f S16_LE test.wav

以下のコマンドでtest.wavを再生します:

# aplay test.wav


YoctoLinuxをEBOX-IMX8MM-2G上のeMMCにリストアする

製品が起動できない場合は、次の手順を使用してYoctoLinuxをEBOX-IMX8MM-2GのeMMCにリストアしてください。

Contents


LinuxホストPCを介してのYoctoLinuxのEBOX-IMX8MM-2Gへのリストア

  • イメージをeMMCにレストアするために必要なツール:

    1. リカバリーイメージUUU書き込みソフトウエア (詳細はinfo@icop.com.twにお問い合わせください)
      • 1GB RAM 版
      • 2GB RAM 版
    2. 64-bit Linux host O/S PC (仮想マシンは推奨しません)
    3. ホストPCとEBOX-IMX8MM-2Gを接続するUSBケーブル
  • EBOX-IMX8MM-2G上のeMMCへのイメージの書き込み:

    1. SW1をEBOX-IMX8MM-2Gで見つけ、下の写真に従って設定をシリアルダウンロードモードに変更します:
      Find the SW1
    2. ホストPCの電源を入れ、イメージファイルを解凍してください。
    3. USBケーブルをホストPCに接続します。まだEBOX側には接続しないでください。
    4. ホストPCでターミナルを開きイメージファイルがある場所にアクセスして"sudo ./uuuuuu.auto"と入力すると“Wait for known USB Device to Appear”が表示されます。
      put the image file on terminal
    5. USBケーブル(Micro USB)をEBOX-IMX8MM-2Gに接続し、シリアルダウンロードモードをトリガーして、ホストPCからイメージをリストアします。
    6. リストアプロセスが完了すると、イメージがホストPCに表示されます:
      After the restore process
    7. EBOX-IMX8MM-2G(電源オフ)のUSB(Micro USB)を取り外し、以下に示すようにSW1を内部ブートに設定します:
      Remove the USB and set the SW1 to Internal boot
    8. EBOX-IMX8MM-2Gの電源を入れて、YoctoLinuxの起動を表示します。
      Yocto Linux booting
    9. 起動時に任意のキーを押すと、Uブートモードにアクセスします。
      access the U-boot mode


Win10ホストPCを介してのYoctoLinuxのEBOX-IMX8MM-2Gへのリストア

  • イメージをeMMCにリストアする前に必要なツール:

    1. リカバリーイメージUUU書き込みソフトウエア (詳細はinfo@icop.com.twにお問い合わせください)
      • 1GB RAM 版
      • 2GB RAM 版
    2. Windows 10 host OS PC (仮想マシンは推奨しません)
    3. ホストPCとEBOX-IMX8MM-2Gを接続するUSBケーブル
  • EBOX-IMX8MM-2G上のeMMCへのイメージの書き込み:

    1. SW1をEBOX-IMX8MM-2Gで見つけ、下の写真に従って設定をシリアルダウンロードモードに変更します:
      Find the SW1
    2. ホストPCの電源を入れ、イメージファイルを解凍してください。
    3. USBケーブルをホストPCに接続します。まだEBOX側には接続しないでください。
    4. ホストPCでターミナルを開きイメージファイルがある場所にアクセスして"sudo ./uuuuuu.auto"と入力すると“Wait for known USB Device to Appear”が表示されます。
      put the image file on terminal
    5. USBケーブル(Micro USB)をEBOX-IMX8MM-2Gに接続し、シリアルダウンロードモードをトリガーして、ホストPCからイメージをリストアします。
    6. リストアプロセスが完了すると、イメージがホストPCに表示されます:
      After the restore process
    7. EBOX-IMX8MM-2G(電源オフ)のUSB(Micro USB)を取り外し、以下に示すようにSW1を内部ブートに設定します:
      Remove the USB and set the SW1 to Internal boot
    8. EBOX-IMX8MM-2Gの電源を入れて、YoctoLinuxの起動を表示します。
      Yocto Linux booting
    9. 起動時に任意のキーを押すと、Uブートモードにアクセスします。
      access the U-boot mode


UBOOTモードでのeMMCへのYoctoLinuxのリカバリ

UBOOTモードでのeMMCへのYoctoLinuxのリカバリ

  • イメージをeMMCにリストアするために必要なツール:

    1. リカバリーイメージとUUU書き込みソフトウエア(詳細はinfo@icop.com.twにお問い合わせください)
      • 1GB RAM 版
      • 2GB RAM 版
    2. Windows 10 host OS PC (仮想マシンは推奨しません)
    3. ホストPCとEBOX-IMX8MM-2Gを接続するUSBケーブル
    4. ホストPCとEBOX-IMX8MM-2GをConsole 接続するケーブル (USB to RS-232)
  • Write the image to the eMMC on the EBOX-IMX8MM-2G:

    1. ホストPCの電源を入れ、イメージファイルを解凍してください。
    2. Console cabを介してホストPCとEBOX-IMX8MM-2Gを接続します。(ICOP機器のConsole 機能はCOM2です)
    3. USBケーブルをホストPCに接続します。まだEBOX側には接続しないでください。
    4. ホストPCでPUTTYを開き、Serial lineを正しい場所(正しいCOMポート)に設定します。場所はデバイスマネージャーで確認が出来ます:
      PUTTY on the host PC
    5. ホストPCでターミナルを開きイメージファイルがある場所にアクセスして"sudo ./uuuuuu.auto"と入力すると“Wait for known USB Device to Appear”が表示されます。
      put the image file and input
    6. PUTTYに戻り、USBケーブル(Micro USB)をEBOX-IMX8MM-2Gに接続して起動し、起動中に任意のキーを押してUBOOTモードにアクセスし、“fastboot usb0”と入力します。
      fastboot
    7. ホストPCのターミナルでイメージのリストアが開始されるのを確認できます。
      starts to restore the image
    8. リストアが完了したら、EBOX-IMX8MM-2Gを起動してYoctoLinuxが実行されていることを確認します。
      Yocto Linux booting


お疲れ様です。これまでのセクションのすべての手順が完了しましたでしょうか?

Yocto Projectでのご興味に応じて、下記もご参照いただけます: (参照リンクのsource: https://www.yoctoproject.org/docs/2.4.2/yocto-project-qs/yocto-project-qs.html)

  • Yocto ProjectのWebサイトにアクセスする:公式Yocto ProjectWebサイトには、プロジェクト全体に関する情報が含まれています。このサイトにアクセスすることはプロジェクト全体を理解するための良い方法です。
  • Yocto Project Development Tasks Manualに目を通す: このマニュアルにはセットアップ、レイヤーの操作、イメージのカスタマイズ、新しいレシピの作成、ライブラリの操作、QEMUの使用等のグループ化された手順情報が含まれています。情報はタスクベースであり、YoctoProjectの全体に及びます。
  • Board Support Packages (BSPs)について学ぶ: BSPについて知りたい場合はYocto Project Board Support Packages (BSP) Developer's Guideを参照してください。このマニュアルにはBSP作成ワークフローの例も記載されています。 "Developing a Board Support Package (BSP)" を参照してください。