Detailed Operations For Standalone On Linux BSP of I.MX Processors

本文档详细介绍了使用Freescale Yocto BSP在i.MX系列嵌入式设备上编译核心镜像、u-boot及Linux内核源码的方法,包括工具链的导出、独立编译u-boot和Linux内核、编译OS固件等关键步骤。

由 Wigros Sun 员工 于 2019-4-24 创建的文档•最后由 Wigros Sun 员工 于 2019-4-25 修改                                                        版本 2

Host Environment: ubuntu 16.04 LTS

Linux BSP For i.MX : version 4.9.88

 

The document has 5 main contents:

1. Compiling core-image-base in Yocto BSP

--Copy u-boot source code to a new directory

--Copy linux kernel source code to a new directory

2. Exporting 4.9.88 toolchain from Freescale Yocto BSP

(1) Using MACHINE=imx7dsabresd to export the toolchain

(2) Using MACHINE=imx6qsabresd to export the toolchain.

Actually above 2 are the same toolchain after exporting. Here , only show any one of boards(not ARM64) can be used for MACHINE. So users only need to export it for one time, select (1) or (2) to export toolchain.

(3) Using MACHINE=imx8mqevk to export ARM64 toolchain

3. Compling u-boot & linux kernel under Stanalone

  • iMX7DSabreSD

--Compiling  u-boot for imx7dsabresd

--Compiling kernel and dtb for imx7dsabresd

  • iMX8MQEVK

--Compiling u-boot for imx8mqevk

--Compiling kernel and dtb for imx8mqevk

4. Compiling OS Firmware for i.MX7DSabreSD board

--u-boot for mfg tools

--kernel and dtb for mfg tools

5. Copy OS Firmware to the related path of MFG tools

---------------------------------------------------------------------------------------------------------------------------

[Content of Document]

1. Compiling core-image-base in Yocto BSP

         After repo syn is done according to “i.MX_Yocto_Project_User's_Guide.pdf”, Use the command to compile linux BSP, u-boot & kernel source code will be released.

# DISTRO=fsl-imx-fb MACHINE=imx7dsabresd source fsl-setup-release.sh -b build-fb

# bitbake core-image-base

         After compiling is done, u-boot & linux kernel source code is in the path below:

u-boot: ~/imx-yocto-bsp/build-fb/tmp/work/imx7dsabresd-poky-linux-gnueabi/u-boot-imx/2017.03-r0/git

linux: ~/imx-yocto-bsp/build-fb/tmp/work/imx7dsabresd-poky-linux-gnueabi/linux-imx/4.9.88-r0/git

         We can create a new directory for uboot and linux kernel source code. Here I created a directory named disk2.

# cd ~/

# mkdir disk2

# cd disk2

# mkdir u-boot-2017-03

# mkdir linux-imx-4.9.88

--Copy u-boot source code to a new directory

# cd ~/imx-yocto-bsp/build-fb/tmp/work/imx7dsabresd-poky-linux-gnueabi/u-boot-imx/2017.03-r0/git

# cp –r ./* ~/disk2/u-boot-2017-03

--Copy linux kernel source code to a new directory

# cd ~/imx-yocto-bsp/build-fb/tmp/work/imx7dsabresd-poky-linux-gnueabi/linux-imx/4.9.88-r0/git

# cp –r ./* ~/disk2/ linux-imx-4.9.88

 

2. Exporting 4.9.88 toolchain from Freescale Yocto BSP

(1) Using MACHINE=imx7dsabresd to export the toolchain

Step1:

# cd ~/imx-yocto-bsp/

# DISTRO=fsl-imx-fb MACHINE=imx7dsabresd source fsl-setup-release.sh -b build-minimal

 

… …

Do you accept the EULA you just read? (y/n)  y

EULA has been accepted.

Welcome to Freescale Community BSP

The Yocto Project has extensive documentation about OE including a

reference manual which can be found at:

    http://yoctoproject.org/documentation

For more information about OpenEmbedded see their website:

    http://www.openembedded.org/

You can now run 'bitbake <target>'

Common targets are:

    core-image-minimal

    meta-toolchain

    meta-toolchain-sdk

    adt-installer

    meta-ide-support

Your build environment has been configured with:

    MACHINE=imx7dsabresd

    SDKMACHINE=i686

    DISTRO=fsl-imx-fb

    EULA=

BSPDIR=

BUILD_DIR=.

meta-freescale directory found

Here “build-minimal” is a directory for compiling source code, users can also set it other name.

In ~/imx-yocto-bsp/build-minimal, Begin to export toolchain with the command.

Step2:

# DISTRO=fsl-imx-fb MACHINE=imx7dsabresd bitbake core-image-minimal -c populate_sdk

[Comment-1] About DISTRO and MACHINE on above 2 commands

  • MACHINE can be set the values below.
  • imx6qpsabreauto
  • imx6qpsabresd
  • imx6ulevk
  • imx6ull14x14evk
  • imx6ull9x9evk
  • imx6dlsabreauto
  • imx6dlsabresd
  • imx6qsabreauto
  • imx6qsabresd
  • imx6slevk
  • imx6solosabreauto
  • imx6solosabresd
  • imx6sxsabresd
  • imx6sxsabreauto
  • imx6sllevk
  • imx7dsabresd
  • imx7ulpevk
  • imx8mqevk

 

So MACHINE’s value is the name each Evaluation Borad.

DISTRO can be set the values below:

  • fsl-imx-x11 - X11 graphics are not supported on i.MX 8.
  • fsl-imx-wayland - Wayland weston graphics.
  • fsl-imx-xwayland - Wayland graphics and X11. X11 applications using EGL are not supported.
  • fsl-imx-fb - Frame Buffer graphics - no X11 or Wayland. Frame Buffer is not supported on i.MX 8

bitbake rootfs type

  •       core-image-minimal
  •       core-image-base
  •       core-image-sato
  •       fsl-image-machine-test
  •       fsl-image-validation-imx
  •       fsl-image-qt5-validation-imx

Below is the detailed description for above rootfs type:

[Comment-2] Descriptions on difference of toolchain between i.MX6/7 and i.MX8MQ

         i.MX6 and i.MX7 are both 32bit ARM processor, they use the same toolchain.

         i.MX8MQ is 64bit ARM processor, so it’s toolchain is different from that of i.MX6/7.

Setp 3:

         After above compiling is done, enter into ~/imx-yocto-bsp/build-minimal/tmp/deploy/sdk

# cd ~/imx-yocto-bsp/build-minimal/tmp/deploy/sdk

# ls

Run .sh file:

Then continue operations according to guidance:

Done:

OK, Let us check /opt/fsl-imx-fb/ directory:

# ls /opt/fsl-imx-fb/4.9.88-2.0.0/

         Because we used MACHINE=imx7dsabresd, environment was named “cortex-A7”, compiler’s version is still 4.9.88.

(2) Using MACHINE=imx6qsabresd to export the toolchain.

         We can change “MACHINE=imx6qsabresd” and repeat above 3 steps, environment will be named “cortex-A9”.

         Close the current terminal, and open a new one.

# cd ~/ imx-yocto-bsp

# DISTRO=fsl-imx-fb MACHINE=imx6qsabresd source fsl-setup-release.sh -b build-A9-min

 

         Then automatically enter “~/imx-yocto-bsp/build-A9-min”, run command below.

# DISTRO=fsl-imx-fb MACHINE=imx6qsabresd bitbake core-image-minimal -c populate_sdk

# ~/imx-yocto-bsp/build-A9-min/tmp/deploy/sdk

# ls

# ./ fsl-imx-fb-glibc-x86_64-core-image-minimal-cortexa9hf-neon-toolchain-4.9.88-2.0.0.sh

  Set it up in another directory: /opt/fsl-imx-fb/4.9.88

(3) Using MACHINE=imx8mqevk to export ARM64 toolchain

         Export Toolchain for i.MX8MQ, create a new terminal, then run these 2 commands below.

# ~/imx-yocto-bsp

# DISTRO=fsl-imx-xwayland MACHINE=imx8mqevk source fsl-setup-release.sh -b build-xwayland

# DISTRO=fsl-imx-fb MACHINE=imx8mqevk bitbake core-image-minimal -c populate_sdk

Done.

         Copy the toolchain to /opt/fsl-imx-fb directory

# cd ~/imx-yocto-bsp/build-xwayland/tmp/deploy/sdk

# ls

#./fsl-imx-fb-glibc-x86_64-core-image-minimal-aarch64-toolchain-4.9.88-2.0.0.sh

         I installed it to a new directory: /opt/fsl-imx-fb/4.9.88-arm64

#ls ls /opt/fsl-imx-fb/4.9.88-arm64/

 OK, 64bit toolchain for i.MX8MQ has been exported to the directory.

 

3. Compling u-boot & linux kernel under Stanalone

  • iMX7DSabreSD

--Compiling  u-boot for imx7dsabresd

# cd ~/disk2/u-boot-2017-03

# source /opt/fsl-imx-fb/4.9.88-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

# export ARCH=arm

# make clean

# make mx7dsabresd_defconfig

# make u-boot.imx

Done.

--Compiling kernel and dtb for imx7dsabresd

# cd ~/disk2/linux-imx-4.9.88/

[comment] If environment has been configured, that is, these 2 commands have been run on the current terminal, don’t need to run them again.

“source /opt/fsl-imx-fb/4.9.88-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi”

and

“export ARCH=arm”

# make clean

# make imx_v7_defconfig

# make

 

         zImage is in “~/disk2/linux-imx-4.9.88/arch/arm/boot”

         dtb is in “~/disk2/linux-imx-4.9.88/arch/arm/boot/dts”

 

         Probably users want to run “make menuconfig”, and meet the errors like below.

# sudo apt-get install libncurses*  (To solve the problem below)

# make menuconfig

[Comment-3]  Users can also use "environment-setup-cortexa9hf-neon-poky-linux-gnueabi" to compile u-boot and kernel.

 

  • iMX8MQEVK

--Compiling u-boot for imx8mqevk

# cd ~/disk2/u-boot-2017-03

# source /opt/fsl-imx-fb/4.9.88-arm64/environment-setup-aarch64-poky-linux

# export ARCH=arm64

# make clean

# make imx8mq_evk_defconfig

# make u-boot.imx

Done.

--Compiling kernel and dtb for imx8mqevk

# cd ~/disk2/linux-imx-4.9.88/

[comment] If environment has been configured, that is, these 2 commands have been run on the current terminal, don’t need to run them again.

“source /opt/fsl-imx-fb/4.9.88-arm64/environment-setup-aarch64-poky-linux”

and

“export ARCH=arm64”

# make clean

# make defconfig

# make

         Run the command to unset LDFLAGS:

unset LDFLAGS

# make

Done.

 

4. Compiling OS Firmware for i.MX7DSabreSD board

--u-boot for mfg tools

# make mx7dsabresd_config

# make u-boot.imx

         Then rename u-boot.imx to be “u-boot-mx7dsabresd-mfg.imx”.

--kernel and dtb for mfg tools

         Copy imx_v7_mfg_defconfig file to “arch/arm/configs”, then run commands below.

# make imx_v7_mfg_defconfig

# make

         zImage will be generated at path arch/arm/boot.

         dtb file will be generated at path arch/arm/boot/dts

 

         Then rename zImage to be zImage-mx7dsabre-mfg,

         Rename imx7d-sdb.dtb to be zImage-imx7d-sdb-mfg.dtb

 

5. Copy OS Firmware to the related path of MFG tools

         Up to now, 3 files for OS Firmware has been generated, then copy these 3 files to mfgtools\Profiles\Linux\OS Firmware\firmware

 

         When MFG Tools begins to run, these 3 files and ramdisk will be downloaded to SDRAM on board, then run them, and download images(u-boot\kernel\rootfs\)  which have been ready in  “mfgtools\Profiles\Linux\OS Firmware\files”.

 

         Above steps and commands will be performed according to list in ucl2.xml. So customer will add a new list for her downloading or change an existing list according to image’s name.

 

NXP TIC team

Weidong Sun

04-25-2019

Milvus 是一个开源的向量数据库,支持大规模向量相似性搜索。用户在尝试下载 Milvus v2.3.9 的 standalone 版本时遇到 404 错误,这通常意味着请求的资源不存在或链接已失效。 在 Milvus 的官方 GitHub Releases 页面中,通常会为每个版本提供对应的二进制包和配置文件。然而,某些版本可能由于未正式发布或被移除而无法访问。具体到 v2.3.9,该版本可能并未发布 standalone 的预编译包,或者下载链接格式有变化[^1]。 Milvus 的 standalone 版本通常有两种分发方式: 1. **Docker Compose 文件**:适用于使用 Docker 快速部署 standalone 模式。 2. **二进制包**:适用于没有 Docker 支持的环境,提供 Linux 和其他平台的可执行文件。 如果 v2.3.9 的 standalone 包无法下载,建议采取以下措施: - 检查 [Milvus GitHub Releases 页面](https://github.com/milvus-io/milvus/releases) 是否存在该版本的 standalone 资源。 - 确认下载链接格式是否正确。例如,v2.3.3 的二进制包链接格式为: ``` wget https://github.com/milvus-io/milvus/releases/download/v2.3.3/milvus-standalone-linux-amd64.tar.gz ``` 如果 v2.3.9 遵循相同格式,但仍然返回 404,则可能该版本并未发布 standalone 的二进制包[^2]。 - 考虑使用其他版本(如 v2.5.4)的 standalone 模式进行部署,确保环境兼容性。例如,使用 Docker Compose 安装: ```bash wget https://github.com/milvus-io/milvus/releases/download/v2.5.4/milvus-standalone-docker-compose.yml -O docker-compose.yml docker compose up -d ``` - 如果需要特定版本的功能,可以尝试从源码构建 standalone 版本,确保获取最新的代码并进行自定义编译。 ### 解决方案建议 如果确认 v2.3.9 的 standalone 包不可用,推荐使用以下替代方案: 1. **使用较新版本(如 v2.5.4)的 standalone**: - 该版本已经提供完整的 standalone 支持。 - 可通过 Docker 或二进制方式部署。 2. **使用源码构建**: - 如果必须使用 v2.3.9,且该版本未发布 standalone 二进制包,可以通过克隆 Milvus 源码并切换到 v2.3.9 分支进行本地构建。 3. **联系社区支持**: - 如果问题持续存在,可以在 Milvus 的 [GitHub Issues](https://github.com/milvus-io/milvus/issues) 页面提交问题,确认该版本是否存在问题或是否有替代方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值