xavier交叉编译环境搭建_WLS1+vscode版本

xavier交叉编译环境搭建 WSL1+VScode版本


我写下这份文档主要是为了记录下我搭建该平台的整个过程,可能有错误,可能有遗漏。樱花散落的道路写于 2021/6/3

1.使用平台说明

首先说明下我当前使用的平台,是工作用的 Thinkpad T14 Windows10 20H2(19042.985),其实在纯Ubuntu18.04LTS系统上是最理想的选择,也是官方推荐的平台,但为了工作需要,我需要频繁切换系统,非常麻烦,故萌生了搭建WSL1+VScode的开发环境的想法。

2.WSL1配置

该段落可以参考官方文档 注意由于我使用的是WSL1请不要参照WSL2的部分

1)启用适用于 Linux 的 Windows 子系统

需要先启用“适用于 Linux 的 Windows 子系统”可选功能,然后才能在 Windows 上安装 Linux 分发。

方法1:使用PowerShell

以管理员身份打开 PowerShell 并运行:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
方法2:在Windows功能中启用

如下图所示:

在这里插入图片描述

2)打开开发人员模式

如下图所示

在这里插入图片描述

2)安装Ubuntu18.04LTS的Linux分发

安装时有两种方案,方案1较为简单,但是安装位置无法更改,只能安装在系统所在的盘区,如果你有足够的系统分区空间可以选择,否则请选择方案2

方法1:使用MIcrosoft store 进行安装

在这里插入图片描述

方法2:手动下载适用于 Linux 的 Windows 子系统发行版包

在这里插入图片描述

直接下载链接: https://aka.ms/wsl-ubuntu-1804

下载完成后将该文件后缀改为zip格式,在合适的位置解压(建议在全英文目录下),双击ubuntu1804.exe进行安装并设置好 用户名 和 密码 即可,可参考文档

tips:忘记密码,可参考文档

如果忘记了 Linux 分发版的密码:

  1. 请打开 PowerShell,并使用以下命令进入默认 WSL 分发版的根目录:wsl -u root

    如果需要在非默认分发版中更新忘记的密码,请使用命令:wsl -d Debian -u root,并将 Debian 替换为目标分发版的名称。

  2. 在 PowerShell 内的根级别打开 WSL 发行版后,可使用此命令更新密码:passwd <WSLUsername>,其中 <WSLUsername> 是 DISTRO 中帐户的用户名,而你忘记了它的密码。

  3. 系统将提示你输入新的 UNIX 密码,然后确认该密码。 在被告知密码已成功更新后,请使用以下命令在 PowerShell 内关闭 WSL:exit

2.在WSL中配置交叉编译环境

该段落可以参照文档及相关博客资料:

1.WSL Ubuntu更换为清华源

2.Jetson Linux Driver Package Toolchain

3.Jetson 下载中心

4.玩转NVIDIA Jetson AGX Xavier(10)— L4T内核kernel编译之Linaro 交叉编译环境搭建

5.玩转NVIDIA Jetson AGX Xavier(13)— L4T内核kernel编译之在x86 PC上交叉编译jetson kernel

1)修改WSL Ubuntu源为清华源,参考

# 修改WSL Ubuntu源为清华源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
sudo sed -i 's/security.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list

# 更新源和软件
sudo apt update 
sudo apt dist-upgrade

或者修改WSL Ubuntu源为阿里源,参考

# 修改WSL Ubuntu源为阿里源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo sed -i 's/security.ubuntu/mirrors.aliyun/g' /etc/apt/sources.list
sudo sed -i 's/archive.ubuntu/mirrors.aliyun/g' /etc/apt/sources.list

# 更新源和软件
sudo apt update 
sudo apt dist-upgrade

2)安装常用软件

sudo apt install vim screen git tree -y

3)安装gcc编译环境

sudo apt install build-essential bc -y

4)安装 libpython2.7 缺失文件(由经验得出),参考

sudo apt install libpython2.7 libatlas3-base -y

5)下载编译工具链

#创建工具链安装的目录
mkdir l4t-gcc
cd l4t-gcc

#下载编译工具链
wget http://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz
 
#解压工具链
tar xf gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz

6)下面设置交叉编译工具链环境变量

export CROSS_COMPILE=$HOME/l4t-gcc/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-

到目前为止,交叉编译工具链已经配置完成

3.(可选)安装Windows Terminal

在这里插入图片描述

tips:windows terminal 启动目录修改
希望启动后在家目录可将启动目录修改为://wsl$/Ubuntu-18.04/home/用户名

4.安装并配置VScode

该部分可参考如下博客:

1.嵌入式VSCode+gdbserver图形化调试环境搭建与使用

1)官方网站下载VScode,并安装(注意,不要使用管理员权限运行)

直接下载链接:https://code.visualstudio.com/sha/download?build=stable&os=win32-x64-user

2)安装三个插件:

① Chinese (Simplified) Language Pack for Visual Studio Code

② Remote - WSL

③ C/C++

④ Remote Development

3)修改launch.json文件,如下所示为我现在的配置,仅供参考

点击**“调试 ”->“打开配置”,然后选择“ C++(GDB/LLDB)”选项,然后会在 .vscode文件夹下生成launch.json**文件

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "gcc - 生成和调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": true,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            //"preLaunchTask": "make 生成项目",
            "miDebuggerPath": "/home/lrp/l4t-gcc/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gdb",
            "miDebuggerServerAddress": "192.168.1.40:2345"
        }
    ]
}

①、name:调试的项目名
②、program:需要调试的应用程序可执行文件路径。
③、cwd:需要调试的应用程序源码路径。
④、miDebuggerPath:此项需要手动添加,用于指定所使用的交叉编译器 gdb路径。
⑤、miDebuggerServerAddress:此项需要手动添加,远程 gdbserver服务器地址,也就是开发板地址

4)在开发板中,启动gdbserver并执行要调试的执行文件

gdbserver 192.168.1.22:2345 gdbtest //启动开发板上的 gdbserver

192.168.1.22 为指定的ubuntu主机ip
2345为要开启调试的端口
gdbtest为调试的可执行文件,一定要带上gdbtest的路径!!

注意:生成时要带上 -g

5.自动化发送调试文件并打开调试的脚本

需要先安装 expect:

sudo apt install expect

脚本(示例):

#!/bin/bash

# 用scp命令发送文件到目标开发板
expect -c"
spawn scp -r test nvidia@192.168.1.40:/home/nvidia/linshi/
expect {
    \"assword\" {set timeout 20; send \"nvidia\r\";}
    \"yes/no\" {set \"yes\r\"; exp_continue;}
}
expect eof"

# 用ssh登录目标开发板并执行gdbserver供远程调试
expect -c"
spawn ssh nvidia@192.168.1.40 \"cd ~/linshi;gdbserver 192.168.1.22:2345 test \"
expect {
    \"assword\" {set timeout 20; send \"nvidia\r\";}
    \"yes/no\" {set \"yes\r\"; exp_continue;}
}
expect eof"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值