找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2142

积分

0

好友

282

主题
发表于 3 小时前 | 查看: 5| 回复: 0

很多学习Linux驱动或ARM汇编的同学,常常在第一步——环境搭建上就遇到了困难。一个完整的嵌入式开发环境通常需要三部分:虚拟机软件、Linux操作系统以及交叉编译工具链。本文将手把手教你如何在Windows系统上,逐步搭建起这套用于Linux驱动和ARM学习的环境。

0. 环境组件说明

在开始动手之前,我们先明确需要安装的三大组件及其作用:

  1. VMware Workstation:一款功能强大的虚拟机软件。我们将在它内部安装和运行Linux系统,实现Windows与Linux的并存与隔离。
  2. Ubuntu 16.04/20.04 LTS:一个流行的Linux发行版。我们绝大多数的编译、开发和测试工作都将在这个系统内完成。
  3. 交叉编译工具链 (arm-none-linux-gnueabi-gcc):用于编译生成能在ARM架构开发板上运行的代码。这是连接x86主机与ARM目标板的关键桥梁。

1. 安装 VMware Workstation

首先,我们需要安装虚拟机平台。

  1. 下载安装程序:访问VMware官网下载Windows版本的VMware Workstation安装包。

  2. 运行安装向导:双击下载好的 VMware-workstation-full.exe 文件启动安装程序。

    VMware Workstation Pro 15.5 安装向导欢迎界面

  3. 接受许可协议:在出现的许可协议窗口中,勾选“我接受许可协议中的条款”,然后点击“下一步”。

    VMware最终用户许可协议确认界面

  4. 选择安装位置:你可以使用默认安装路径,或点击“更改...”按钮选择其他目录,然后点击“下一步”。

    VMware自定义安装路径选择界面

  5. 用户体验设置:根据个人喜好,可以选择是否勾选“启动时检查产品更新”和“加入VMware客户体验提升计划”,然后点击“下一步”。

    VMware用户体验设置选项界面

  6. 创建快捷方式:确保“桌面”和“开始菜单程序文件夹”两个选项已勾选,以便后续快速启动,点击“下一步”。

    VMware快捷方式创建选项界面

  7. 开始安装:点击“下一步”后,安装程序将开始复制文件。此过程会安装必要的虚拟网络驱动等组件。

    VMware正在安装虚拟网络驱动程序界面

  8. 完成安装:安装完成后,点击“完成”按钮退出向导。首次启动时,软件会提示输入许可证密钥,你可以选择“我希望试用 VMware Workstation 15 30 天”以体验完整功能。

    VMware Workstation Pro安装向导完成界面
    VMware Workstation 15许可证激活窗口

安装完成后,你将在桌面看到VMware的快捷方式。

2. 在VMware中安装Ubuntu

虚拟机平台就绪后,我们开始安装Linux操作系统

  1. 下载Ubuntu镜像:从Ubuntu官方或其镜像站(如阿里云镜像)下载所需的ISO文件,例如 ubuntu-20.04.2.0-desktop-amd64.iso

  2. 创建新虚拟机:打开VMware Workstation,点击“创建新的虚拟机”。

    VMware Workstation 15.5 PRO主界面

  3. 选择配置类型:在新建虚拟机向导中,选择“典型(推荐)”配置,点击“下一步”。

    新建虚拟机向导-配置类型选择

  4. 选择安装来源:选择“安装程序光盘映像文件(iso)”,并通过“浏览”按钮找到你下载的Ubuntu ISO文件,系统会自动检测到版本,点击“下一步”。

    新建虚拟机向导-选择Ubuntu ISO安装文件

  5. 填写简易安装信息:设置你的全名、用户名和密码。为了后续操作方便,可以将密码设为简单的“1”(仅用于学习环境)。点击“下一步”。

    新建虚拟机向导-填写Ubuntu用户信息

  6. 命名虚拟机并选择位置:为虚拟机起一个名字,并指定其文件在主机磁盘上的存储位置。建议选择一个剩余空间较大的磁盘分区。

    新建虚拟机向导-命名虚拟机及选择位置

  7. 指定磁盘容量:设置虚拟机的最大磁盘大小。对于开发环境,建议设置大一些,例如100GB或以上。选择“将虚拟磁盘拆分成多个文件”便于管理,点击“下一步”。

    新建虚拟机向导-指定虚拟机磁盘容量

  8. 完成创建:在确认配置页面,可以点击“自定义硬件”调整内存(建议至少2GB)、处理器核心数等。最后点击“完成”。

    新建虚拟机向导-准备创建虚拟机配置摘要

  9. 自动安装:VMware会启动虚拟机并自动开始安装Ubuntu。为了加速安装过程,建议在安装前断开宿主机的网络连接。

    Ubuntu在VMware中开始自动安装

  10. 登录系统:安装完成后,虚拟机会自动重启。在登录界面输入你之前设置的密码(例如“1”),即可进入Ubuntu桌面环境。

    Ubuntu 16.04 LTS 登录界面

3. 安装VMware Tools以增强体验

为了更方便地在主机和虚拟机之间复制粘贴文件、共享剪贴板,我们需要安装VMware Tools的开源替代品 open-vm-tools-desktop

  1. 在Ubuntu桌面,按下 Ctrl+Alt+T 组合键打开终端。
  2. 依次执行以下命令:
    sudo apt-get autoremove open-vm-tools
    sudo apt-get install open-vm-tools-desktop
  3. 执行命令时会提示输入当前用户密码(即你之前设置的密码,如“1”),输入后回车继续安装。

安装完成后,建议重启虚拟机。之后你就可以自由地从Windows窗口拖动文件到Ubuntu桌面,或直接复制粘贴文本了。

4. 安装与配置交叉编译工具链

这是搭建ARM开发环境的核心步骤。我们将安装一个特定的ARM GCC编译器

  1. 准备目录:首先,在用户主目录下创建一个专用文件夹并赋予权限。

    mkdir ~/toolchain
    chmod 777 ~/toolchain

    在Ubuntu文件管理器中创建toolchain目录

  2. 放入工具链:将准备好的交叉编译工具链压缩包(例如 gcc-4.6.4.tar.xz)通过拖拽或复制的方式,放入刚创建的 ~/toolchain 目录中。
    将gcc压缩包放入toolchain目录

  3. 解压工具链:打开终端,进入该目录并解压。

    cd ~/toolchain
    tar xvf gcc-4.6.4.tar.xz
  4. 配置环境变量:编辑系统级的bash配置文件,将工具链的bin目录添加到 PATH 中。使用 sudo 和文本编辑器(如 vimnano)打开 /etc/bash.bashrc 文件,在文件末尾添加:

    export PATH=$PATH:/home/你的用户名/toolchain/gcc-4.6.4/bin

    请将“你的用户名”替换为你实际的用户名(例如“peng”)

  5. 使配置生效:保存文件后,在终端执行以下命令使环境变量立即生效,或直接重新打开一个终端。

    source /etc/bash.bashrc
  6. 安装依赖库:有些工具链需要额外的系统库支持,安装一个基础包通常能解决多数问题。

    sudo apt-get install lsb-core
  7. 验证安装:最后,也是最关键的一步,验证交叉编译器是否可用。

    arm-none-linux-gnueabi-gcc -v

    如果终端打印出类似以下的编译器版本和配置信息,则说明交叉编译环境已成功搭建!

    Using built-in specs.
    COLLECT_GCC=arm-none-linux-gnueabi-gcc
    COLLECT_LTO_WRAPPER=/home/peng/toolchain/gcc-4.6.4/bin/../libexec/gcc/arm-arm1176jzfssf-linux-gnueabi/4.6.4/lto-wrapper
    Target: arm-arm1176jzfssf-linux-gnueabi
    Configured with: /work/builddir/src/gcc-4.6.4/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=arm-arm1176jzfssf-linux-gnueabi --prefix=/opt/TuxamitoSoftToolchains/arm-arm1176jzfssf-linux-gnueabi/gcc-4.6.4 --with-sysroot=/opt/TuxamitoSoftToolchains/arm-arm1176jzfssf-linux-gnueabi/gcc-4.6.4/arm-arm1176jzfssf-linux-gnueabi/sysroot --enable-languages=c,c++ --with-arch=armv6zk --with-cpu=arm1176jzf-s --with-tune=arm1176jzf-s --with-fpu=vfp --with-float=softfp --with-pkgversion='crosstool-NG hg+default-2685dfa9de14 - tc0002' --disable-sjlj-exceptions --enable-__cxa_atexit --disable-libmudflap --disable-libgomp --disable-libssp --disable-libquadmath --disable-libquadmath-support --with-gmp=/work/builddir/arm-arm1176jzfssf-linux-gnueabi/buildtools --with-mpfr=/work/builddir/arm-arm1176jzfssf-linux-gnueabi/buildtools --with-mpc=/work/builddir/arm-arm1176jzfssf-linux-gnueabi/buildtools --with-ppl=/work/builddir/arm-arm1176jzfssf-linux-gnueabi/buildtools --with-cloog=/work/builddir/arm-arm1176jzfssf-linux-gnueabi/buildtools --with-libelf=/work/builddir/arm-arm1176jzfssf-linux-gnueabi/buildtools --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --enable-threads=posix --enable-target-optspace --without-long-double-128 --disable-nls --disable-multilib --with-local-prefix=/opt/TuxamitoSoftToolchains/arm-arm1176jzfssf-linux-gnueabi/gcc-4.6.4/arm-arm1176jzfssf-linux-gnueabi/sysroot --enable-c99 --enable-long-long
    Thread model: posix
    gcc version 4.6.4 (crosstool-NG hg+default-2685dfa9de14 - tc0002)

至此,一个完整的Linux驱动及ARM汇编学习环境已经搭建完毕。你现在可以在Ubuntu中编写代码,并使用 arm-none-linux-gnueabi-gcc 编译出运行在ARM板上的程序了。工欲善其事,必先利其器,接下来就可以专注于内核模块、设备驱动或ARM汇编指令的学习与实践了。

如果你在搭建过程中遇到其他问题,或者想与更多开发者交流嵌入式开发经验,欢迎到 云栈社区 的相关板块提问和分享。




上一篇:手把手编写Cortex-A9 Exynos 4412的LED裸机程序:从汇编到C语言
下一篇:探索Linux C程序启动:从`_start`到`main`的幕后旅程
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-3-17 09:32 , Processed in 0.480402 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表