专栏中心

EEPW首页 > 专栏 > 在 Windows 中使用 WSL 编译 Linux 和 U-Boot

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

发布人:toradex 时间:2020-09-30 来源:工程师 发布文章

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 编译等。


专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

Microchip低成本dsPIC® DSC电机控制方案

12位AD转换器ADS7804与51单片机的接口及程序设计

LPC932单片机可靠性测试报告及解决方案二

Microchip mTouch™电容触摸解决方案

是德科技亮相DesignCon 2025,展示加速人工智能创新的解决方案

ASML将不再披露对华销售情况

EDA/PCB 2025-01-21

STM32:迎接汽车与AI时代MCU新挑战

汽车电子 2025-01-21

89c51单片机IO口模拟串行通信的实现方法

盘点CES 2025上基于Arm架构的AI创新和技术亮点

创新的FPGA技术实现低功耗、模块化、小尺寸USB解决方案

BOE(京东方)2024年度净利润预计52亿元-55亿元

光电显示 2025-01-21

600mA输出, 30V高压输入降压DC/DC转换器--MCP16301演示板

电感设计的原则

英飞凌推出用于智能有刷直流电机应用的新型MOTIX™全桥IC系列

Microchip dsPIC33 DSC数字电源

谷神星一号(遥十六)运载火箭成功发射5颗商业卫星

蔚来:1月第三周销量超4700台,同比增长145.7%

汽车电子 2025-01-21

自制快速干手器

Microchip超低功耗LCD单片机PIC18F87K90

清除51程序中的“泄密者-93H”

资源下载 2007-02-16
更多 培训课堂
更多 焦点
更多 视频

技术专区