原创 在 Windows 中使用 WSL 编译 Linux 和 U-Boot

2020-9-30 15:13 4676 34 10 分类: MCU/ 嵌入式

By Toradex 胡珊逢

1). 简介

通常当编译 LinuxU-Boot 相关源代码时,由于编译工具或者文件系统限制,这些任务需要在 Linux 发行版中完成,如常见的 UbuntuFedoraLinux MintArch Linux 等。在电脑安装双系统,或者虚拟机,是使用 Linux 发行版的主要方式。Windows 推出的 WSL Windows Subsystem for Linux)则提供了另外一种方式来使用 Linux 系统。本文接下来将介绍如何在 Windows 10 电脑上使用 WSL 来编译使用NXP iMX8 ARM平台的 LinuxU-Boot  Device tree overlays

 

本文所演示的ARM平台来自于Toradex 基于NXP iMX8QM ARM处理器的Apalis iMX8QM ARM嵌入式平台。

 

 

2). 编译流程

WSL 有两个版本,这里我们将使用 WSL 2。在开始安装 WSL之前,推荐先安装 Windows Terminal。这是微软新推出的终端工具,可以很好的兼容 WSL。并且还直接集成了一些 Linux 的命令工具,如  sshscp

WSL 具体的安装方法请参考微软官方的适用于 Linux  Windows 子系统安装指南 (Windows 10)。安装完毕后我们将使用 Ubuntu-20.04 为例进行编译演示。

打开 Windows Terminal 点击标签页旁边的 + ,可以看到刚才安装的 Ubuntu-20.04 WSL 已经自动出现在其中。点击后即可启动 Ubuntu 。目前的 WSL 还不支持图形,所以接下来的操作会在 Windows Terminal 以命令行的形式完成。

                                              image001.png

进入Ubuntu-20.04 WSL后,命令操作的形式和通常的 Ubuntu 没有区别。首先安装一些编译所需的软件。

sudo apt update
sudo apt install make bison flex
sudo apt install build-essential
sudo apt install libncurses-dev
sudo apt install libssl-dev

交叉编译工具 gcc 的安装可以通过两种形式。在 Ubuntu-20.04 WSL 中通过 wget 等命令直接下载。另外还可以在Windows  电脑上通过浏览器下载,然后使用 Windows 的文件浏览器直接访问  Ubuntu-20.04 WSL 的文件系统,将编译工具复制进去。交叉编译工具的选择可以参考这里

在文件浏览器中输入 \\wsl$\,其会显示电脑上可以用的 WSL 实例文件系统。例如将适用于 Apalis iMX8QM Linux BSP 5.0   gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz 复制到 Ubuntu-20.04/home/ben 目录下。

image002.png  

重新回到 Windows Terminal 命令行终端,解压该工具,并设置环境变量。

tar vxf gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz
export ARCH=arm64
export DTC_FLAGS="-@"
export PATH=/home/ben/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin/:$PATH
export CROSS_COMPILE=aarch64-none-linux-gnu-

使用 git 工具下载 LinuxU-Boot 源码。

git config --global user.name "XXX"
git config --global user.email your_email
git clone -b toradex_imx_v2020.04_5.4.24_2.1.0 git://git.toradex.cn/u-boot-toradex.git
git clone -b toradex_5.4-2.1.x-imx git://git.toradex.cn/linux-toradex.git
git clone -b toradex_5.4-2.1.x-imx git://git.toradex.cn/device-tree-overlays.git


详细的编译步骤和说明可以参考我们开发者中心的相关网页说明

例如编译 U-boot

make apalis-imx8_defconfig
make -j3 2>&1 | tee build.log

例如编译 Linux  device tree

make defconfig
make -j3 Image 2>&1 | tee build.log
make DTC_FLAGS="-@" freescale/fsl-imx8qm-apalis-ixora-v1.1.dtb


 编译 Device tree overlays

cpp -nostdinc -I ../../linux-toradex/arch/arm64/boot/dts/freescale -I ../../linux-toradex/include -undef -x assembler-with-cpp
apalis-imx8_atmel-mxt_overlay.dts apalis-imx8_atmel-mxt_overlay.dts.preprocessed
dtc -@ -Hepapr -I dts -O dtb -i ../../linux-toradex/arch/arm64/boot/dts/freescale -o apalis-imx8_atmel-mxt_overlay.dtbo
apalis-imx8_atmel-mxt_overlay.dts.preprocessed


 当这些都编译好以后,生成的文件都可以通过文件浏览器将其复制出来。

image003.png

image004.png

image005.png

在完成编译工作后,Windows Terminal 命令行终端输入 exit 命令即可退出 WSL,但其仍在后台运行。通过以下命令来查看仍在运行的 WSL 实例,并将其关闭。

PS C:\Users\Ben> wsl --list --running
适用于 Linux  Windows 子系统分发版:
Ubuntu-20.04 (默认)
PS C:\Users\Ben> wsl --terminate Ubuntu-20.04

 

 

3). 总结

借助 WSL运行 Linux 发行版,为 Linux 开发人员提供一种简便的方式,免去双系统的切换,或者安装庞大的虚拟机系统。WSL 是直接运行在 CPU 上,避免了虚拟化技术的开销。目前该技术也有限制,如WSL 还无法使用图形界面,从而使得一些需要借助图形化界面 IDE  Eclipse 完成的 C/C++ 应用开发还不是很适合。当然网络上也有关于如何在WSL 安装 X11 并通过远程桌面的方式来开启图形界面的说明,但这会影响到 WSL 的性能。WSL 的方式比较适合不需要借助图形界面的编译任务,如makecmake 编译,甚至是  Yocto 编译等。

作者: hai.qin_651820742, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-1864768.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

文章评论1条评论)

登录后参与讨论

yzw92 2020-10-3 09:13

感谢分享
相关推荐阅读
hai.qin_651820742 2024-11-29 15:29
基于 NXP iMX8QM 运行 QNX
By Toradex胡珊逢简介嵌入式领域的部分应用对安全、可靠、实时性有切实的需求,在诸多实现该需求的方案中,QNX 是经行业验证的选择。在 QNX SDP 8.0 上 BlackBerry 推出了 ...
hai.qin_651820742 2024-11-12 10:33
Yocto Linux BSP7 新版本介绍
By Toradex胡珊逢简介Toradex 已经发布了适用于 Verdin/Apalis/Colibri 模块系列的 Linux BSP 7 版本,Yocto Project 升级到 scarthg...
hai.qin_651820742 2024-10-30 10:56
基于 NXP iMX8MP 平台简单测试 PySide6 应用
By Toradex秦海1). 简介Python binding 的 Qt GUI 库一直以来有两种,最初是由 Riverbank Computing 公司在 2000 年初发布,基于 Qt4 版本推...
hai.qin_651820742 2024-10-11 15:15
Verdin AM62使用CODESYS
By Toradex胡珊逢简介CODESYS 是基于 IEC 61131-3 的 PLC 开发工具,在工业控制、交通等领域中有着广泛的应用。文章将介绍如何在 Toradex 采用 TI AM62 So...
hai.qin_651820742 2024-09-18 18:07
Verdin AM62 引脚复用配置
By Toradex胡珊逢简介Verdin AM62 是 Toradex 基于 TI AM623/AM625 SoC 的 Arm 计算机模块。它最多提供 4 个 A53 和 1 个 M4F 处理器。这...
hai.qin_651820742 2024-09-18 17:48
TI AM62X Secure Boot 流程简述
By Toradex秦海1). 简介嵌入式设备对于网络安全的要求越来越高,而 Secure boot就是其中重要的一部分。 TI AM62X 处理器基于行业标准 X.509&nbs...
我要评论
1
34
关闭 站长推荐上一条 /2 下一条