WSL2中安装的ubuntu搭建tftp服务器uboot通过tftp下载

server/2025/2/7 16:25:38/

Windows中安装wsl2wsl2里安装ubuntu

1. Wsl启动后

1)Windows下ip

ipconfig
以太网适配器 vEthernet (WSL (Hyper-V firewall)):

连接特定的 DNS 后缀 . . . . . . . :
IPv4 地址 . . . . . . . . . . . . : 172.19.32.1
子网掩码 . . . . . . . . . . . . : 255.255.240.0
默认网关. . . . . . . . . . . . . :
该虚拟网卡在网络邻居里是看不到的。
ping 172.19.32.1

正在 Ping 172.19.32.1 具有 32 字节的数据:
来自 172.19.32.1 的回复: 字节=32 时间<1ms TTL=128
来自 172.19.32.1 的回复: 字节=32 时间<1ms TTL=128
来自 172.19.32.1 的回复: 字节=32 时间<1ms TTL=128
来自 172.19.32.1 的回复: 字节=32 时间<1ms TTL=128

2)Ubuntu下ip

ip addr show eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.19.37.221 netmask 255.255.240.0 broadcast 172.19.47.255
RX packets 56 bytes 10337 (10.3 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 18 bytes 1256 (1.2 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

ping 172.19.32.1
PING 172.19.32.1 (172.19.32.1) 56(84) bytes of data.
64 bytes from 172.19.32.1: icmp_seq=1 ttl=128 time=0.330 ms
64 bytes from 172.19.32.1: icmp_seq=2 ttl=128 time=0.298 ms
64 bytes from 172.19.32.1: icmp_seq=3 ttl=128 time=0.383 ms
64 bytes from 172.19.32.1: icmp_seq=4 ttl=128 time=0.351 ms
64 bytes from 172.19.32.1: icmp_seq=5 ttl=128 time=0.286 ms

2. 分析

1)把WSL的虚拟交换机桥接到物理网卡上

WSL的虚拟交换机连接到物理网卡
在windows搜索框中搜索“Hyper-V 管理器 ”,点击虚拟交换机,把内部网络改为外部网络。
在这里插入图片描述

在这里插入图片描述

ubuntuIP_47">2)ubuntu设置静态IP
#!/bin/bash
# 清空现有 IP 配置
sudo ip addr flush dev eth0
# 设置静态 IP 和子网掩码
sudo ip addr add 192.168.32.100/24 dev eth0
# 设置默认网关(通常为路由器 IP)
sudo ip route add default via 192.168.32.1

保存并退出(Ctrl+OEnterCtrl+X)。

步骤 2:赋予脚本执行权限
sudo chmod +x /usr/local/bin/set_static_ip.sh
步骤 3:设置脚本开机自动运行

编辑 ~/.bashrc 或全局配置文件 /etc/profile

echo "/usr/local/bin/set_static_ip.sh" >> ~/.bashrc
步骤 4:立即执行脚本
source ~/.bashrc
4. 验证静态 IP
ip addr show eth0 | grep "inet "
# 应输出类似:inet 192.168.32.100/24 scope global eth0

以下脚本待测试

# 创建脚本
sudo tee /usr/local/bin/set_static_ip.sh << 'EOF'
#!/bin/bash
sudo ip addr flush dev eth0
sudo ip addr add 192.168.32.100/24 dev eth0
sudo ip route add default via 192.168.32.1
EOF# 设置权限并添加到启动项
sudo chmod +x /usr/local/bin/set_static_ip.sh
echo "/usr/local/bin/set_static_ip.sh" >> ~/.bashrc# 立即生效
source ~/.bashrc

3. Ubuntu搭建tftp服务器

tftp 命令的作用和 nfs 命令一样,都是用于通过网络下载东西到 DRAM 中,只是 tftp 命令使用的 TFTP 协议, Ubuntu 主机作为 TFTP 服务器。因此需要在 Ubuntu 上搭建 TFTP 服务器,需要安装 tftp-hpa 和 tftpd-hpa,命令如下

sudo apt-get install tftp-hpa tftpd-hpa 
sudo apt-get install xinetd 

和 NFS 一样, TFTP 也需要一个文件夹来存放文件,在用户目录下新建一个目录,/home/xxx/tftp ,xxx为用户名,命令如下

mkdir tftp 
chmod 777 tftp 

新建文件夹/etc/xinetd.d,

sudo mkdir /etc/xinetd.d

新建文件/etc/xinetd.d/tftp

sudo vi /etc/xinetd.d/tftp
server tftp
{
socket_type = dgram                                                                                                     
protocol = udp
wait = yes                                                                                                              
user = root                                                                                                             
server = /usr/sbin/in.tftpd
server_args = -s /home/xxx/tftp/
disable = no
per_source = 11
cps = 100 2                                                                                                             
flags = IPv4                                                                                                            
} 

:wq保存退出,:q仅退出
完了以后启动 tftp 服务,命令如下:

sudo service tftpd-hpa start 

打开/etc/default/tftpd-hpa 文件 ,修改

sudo vi /etc/default/tftpd-hpa
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/xxx/tftp"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="-l -c -s"

TFTP_DIRECTORY 就是我们上面创建的 tftp 文件夹目录,以后我们就将所有需要通过TFTP 传输的文件都放到这个文件夹里面,并且要给予这些文件相应的权限。
最后输入如下命令, 重启 tftp 服务器:

sudo service tftpd-hpa restart 

tftp 服务器已经搭建好了,接下来就是使用了。将 zImage 镜像文件拷贝到 tftp文件夹中,并且给予 zImage 相应的权限,命令如下:

cp zImage /home/xxx/tftp/
cd /home/xxx/tftp/
chmod 777 zImage 

4. uboot设置ip

修改环境变量

setenv ipaddr 192.168.32.50 
setenv ethaddr 00:04:9f:04:d2:35 
setenv gatewayip 192.168.32.1 
setenv netmask 255.255.255.0 
setenv serverip 192.168.32.100 
saveenv 

查看环境变量

print

只能在 uboot 中 ping 其他的机器,其他机器不能 ping uboot,因为 uboot 没有对 ping命令做处理,如果用其他的机器 ping uboot 的话会失败!

=> ping 192.168.32.100
Using FEC1 device
host 192.168.32.100 is alive

5. Uboot中通过tftp下载镜像

tftp 命令不需要输入文件在 Ubuntu 中的完整路径,只需要输入文件名即可。比如我们现在将 tftp文件夹里面的 zImage 文件下载到开发板 DRAM 的 0X80800000 地址处,命令如下

tftp 80800000 zImage 

在这里插入图片描述


http://www.ppmy.cn/server/165706.html

相关文章

如何在 Typecho 中实现 Joe 编辑器标签自动填充

如何在 Typecho 中实现 Joe 编辑器标签自动填充 在 Typecho 的文章编辑过程中&#xff0c;如果你使用 Joe 编辑器&#xff0c;可能会希望输入#标签后能自动提取并填充到文章的标签输入框中&#xff0c;以提高工作效率。接下来&#xff0c;我们将详细介绍如何通过开发一个 Type…

Windows图形界面(GUI)-QT-C/C++ - Qt QSpinBox

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 一、控件概述 1.1 核心特性 1.2 常用场景 二、核心属性详解 2.1 基本属性配置 2.2 进阶属性说明 三、信号机制与事件处理 3.1 核心信号 3.2 信号对比 四、样式定制与功能扩展 …

记录 | WPF基础学习自定义按钮

目录 前言一、解析Button.TemplateBorder和TemplateBinding 二、代码提供更新时间 前言 参考文章&#xff1a; 参考视频&#xff1a;【WPF入门教程 Visual Studio 2022】WPF界面开发入门 自己的感想 这里涉及到Template模板和事件。主要干两件事&#xff1a;1、template中的重写…

如何安装PHP依赖库 更新2025.2.3

要在PHP项目中安装依赖&#xff0c;首先需要确保你的系统已经安装了Composer。Composer是PHP的依赖管理工具&#xff0c;它允许你声明项目所需的库&#xff0c;并管理它们。以下是如何安装Composer和在PHP项目中安装依赖的步骤&#xff1a; 一. 安装Composer 对于Windows用户…

支持 APQP (先期产品质量策划) 的软件系统-汽车电子行业专用研发管理信息化平台

支持 APQP (先期产品质量策划) 的软件系统 在制造业竞争白热化的当下&#xff0c;产品质量已然成为企业立足市场的核心竞争力。APQP&#xff08;先期产品质量策划&#xff09;作为保障产品质量的关键流程&#xff0c;贯穿于产品从概念萌生到最终交付的整个生命周期&#xff0c…

SQL入门到精通 理论+实战 -- 在 MySQL 中学习SQL语言

目录 一、环境准备 1、MySQL 8.0 和 Navicat 下载安装 2、准备好的表和数据文件&#xff1a; 二、SQL语言简述 1、数据库基础概念 2、什么是SQL 3、SQL的分类 4、SQL通用语法 三、DDL&#xff08;Data Definition Language&#xff09;&#xff1a;数据定义语言 1、操…

android状态栏样式修改(1)

设置状态栏背景效果 package com.cy.translucentparent; import android.app.Activity; import android.os.Build; import android.view.View; import android.view.Window; import android.view.WindowManager; /** Created by lenovo on 2017/4/25. */ public clas…

MySQL----case的用法

在 MySQL 中&#xff0c;CASE 表达式是一个用于条件判断的功能&#xff0c;可以根据不同的条件返回不同的结果。CASE 表达式通常用于 SELECT 查询语句中&#xff0c;可以在 SQL 中灵活地进行条件判断和数据转换。CASE 有两种基本的语法形式&#xff1a; 简单 CASE 表达式&…