WSL2中安装的ubuntu搭建tftp服务器uboot通过tftp下载
Windows中安装wsl2,wsl2里安装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 管理器 ”,点击虚拟交换机,把内部网络改为外部网络。
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+O
→ Enter
→ Ctrl+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
相关文章:

WSL2中安装的ubuntu搭建tftp服务器uboot通过tftp下载
Windows中安装wsl2,wsl2里安装ubuntu。 1. Wsl启动后 1)Windows下ip ipconfig 以太网适配器 vEthernet (WSL (Hyper-V firewall)): 连接特定的 DNS 后缀 . . . . . . . : IPv4 地址 . . . . . . . . . . . . : 172.19.32.1 子网掩码 . . . . . . . .…...

机器学习优化算法:从梯度下降到Adam及其变种
机器学习优化算法:从梯度下降到Adam及其变种 引言 最近deepseek的爆火已然说明,在机器学习领域,优化算法是模型训练的核心驱动力。无论是简单的线性回归还是复杂的深度神经网络,优化算法的选择直接影响模型的收敛速度、泛化性能…...

[SAP ABAP] 静态断点的使用
在 ABAP 编程环境中,静态断点通过关键字BREAK-POINT实现,当程序执行到这一语句时,会触发调试器中断程序的运行,允许开发人员检查当前状态并逐步跟踪后续代码逻辑 通常情况下,在代码的关键位置插入静态断点可以帮助开发…...

129.求根节点到叶节点数字之和(遍历思想)
Problem: 129.求根节点到叶节点数字之和 文章目录 题目描述思路复杂度Code 题目描述 思路 遍历思想(利用二叉树的先序遍历) 直接利用二叉树的先序遍历,将遍历过程中的节点值先利用字符串拼接起来遇到根节点时再转为数字并累加起来,在归的过程中…...

NCCL、HCCL、通信、优化
文章目录 从硬件PCIE、NVLINK、RDMA原理到通信NCCL、MPI原理!通信实现方式:机器内通信、机器间通信通信实现方式:通讯协调通信实现方式:机器内通信:PCIe通信实现方式:机器内通信:NVLink通信实现…...

unity学习21:Application类与文件存储的位置
目录 1 unity是一个跨平台的引擎 1.1 使用 Application类,去读写文件 1.2 路径特点 1.2.1 相对位置/相对路径: 1.2.2 固定位置/绝对路径: 1.3 测试方法,仍然挂一个C#脚本在gb上 2 游戏数据文件夹路径(只读&…...

17 一个高并发的系统架构如何设计
高并发系统的理解 第一:我们设计高并发系统的前提是该系统要高可用,起码整体上的高可用。 第二:高并发系统需要面对很大的流量冲击,包括瞬时的流量和黑客攻击等 第三:高并发系统常见的需要考虑的问题,如内存不足的问题,服务抖动的…...

Spring Boot 实例解析:配置文件
SpringBoot 的热部署: Spring 为开发者提供了一个名为 spring-boot-devtools 的模块来使用 SpringBoot 应用支持热部署,提高开发者的效率,无需手动重启 SpringBoot 应用引入依赖: <dependency> <groupId>org.springfr…...

pytorch图神经网络处理图结构数据
人工智能例子汇总:AI常见的算法和例子-CSDN博客 图神经网络(Graph Neural Networks,GNNs)是一类能够处理图结构数据的深度学习模型。图结构数据由节点(vertices)和边(edges)组成&a…...

计算机网络一点事(23)
传输层 端口作用:标识主机特定进程,TCP,UDP协议 端口号分类:服务器:0-1023,熟知 1024-49151 登记 客户端:49152-65535 功能:实现端到端,进程到进程的通信,…...

(9)下:学习与验证 linux 里的 epoll 对象里的 EPOLLIN、 EPOLLHUP 与 EPOLLRDHUP 的不同。小例子的实验
(4)本实验代码的蓝本,是伊圣雨老师里的课本里的代码,略加改动而来的。 以下是 服务器端的代码: 每当收到客户端的报文时,就测试一下对应的 epoll 事件里的事件标志,不读取报文内容,…...

DeepSeek-R1模型1.5b、7b、8b、14b、32b、70b和671b有啥区别?
deepseek-r1的1.5b、7b、8b、14b、32b、70b和671b有啥区别?码笔记mabiji.com分享:1.5B、7B、8B、14B、32B、70B是蒸馏后的小模型,671B是基础大模型,它们的区别主要体现在参数规模、模型容量、性能表现、准确性、训练成本、推理成本…...

一、html笔记
(一)前端概述 1、定义 前端是Web应用程序的前台部分,运行在PC端、移动端等浏览器上,展现给用户浏览的网页。通过HTML、CSS、JavaScript等技术实现,是用户能够直接看到和操作的界面部分。上网就是下载html文档,浏览器是一个解释器,运行从服务器下载的html文件,解析html、…...

AI大模型开发原理篇-2:语言模型雏形之词袋模型
基本概念 词袋模型(Bag of Words,简称 BOW)是自然语言处理和信息检索等领域中一种简单而常用的文本表示方法,它将文本看作是一组单词的集合,并忽略文本中的语法、词序等信息,仅关注每个词的出现频率。 文本…...

基于微信小程序的实习记录系统设计与实现(LW+源码+讲解)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...

【LLM】DeepSeek-R1-Distill-Qwen-7B部署和open webui
note DeepSeek-R1-Distill-Qwen-7B 的测试效果很惊艳,CoT 过程可圈可点,25 年应该值得探索更多端侧的硬件机会。 文章目录 note一、下载 Ollama二、下载 Docker三、下载模型四、部署 open webui 一、下载 Ollama 访问 Ollama 的官方网站 https://ollam…...

【Elasticsearch】 Intervals Query
Elasticsearch Intervals Query 返回基于匹配术语的顺序和接近度的文档。 intervals 查询使用 匹配规则,这些规则由一小组定义构建而成。这些规则然后应用于指定 field 中的术语。 这些定义生成覆盖文本中术语的最小间隔序列。这些间隔可以进一步由父源组合和过滤…...

DeepSeek技术深度解析:从不同技术角度的全面探讨
DeepSeek技术深度解析:从不同技术角度的全面探讨 引言 DeepSeek是一个集成了多种先进技术的平台,旨在通过深度学习和其他前沿技术来解决复杂的问题。本文将从算法、架构、数据处理以及应用等不同技术角度对DeepSeek进行详细分析。 一、算法层面 深度学…...

Docker 部署 Starrocks 教程
Docker 部署 Starrocks 教程 StarRocks 是一款高性能的分布式分析型数据库,主要用于 OLAP(在线分析处理)场景。它最初是由百度的开源团队开发的,旨在为大数据分析提供一个高效、低延迟的解决方案。StarRocks 支持实时数据分析&am…...

【LLM-agent】(task6)构建教程编写智能体
note 构建教程编写智能体 文章目录 note一、功能需求二、相关代码(1)定义生成教程的目录 Action 类(2)定义生成教程内容的 Action 类(3)定义教程编写智能体(4)交互式操作调用教程编…...

29.Word:公司本财年的年度报告【13】
目录 NO1.2.3.4 NO5.6.7 NO8.9.10 NO1.2.3.4 另存为F12:考生文件夹:Word.docx选中绿色标记的标题文本→样式对话框→单击右键→点击样式对话框→单击右键→修改→所有脚本→颜色/字体/名称→边框:0.5磅、黑色、单线条:点…...

14 2D矩形模块( rect.rs)
一、 rect.rs源码 // Copyright 2013 The Servo Project Developers. See the COPYRIGHT // file at the top-level directory of this distribution. // // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or // http://www.apache.org/licenses/LICENS…...

【Unity3D】实现2D角色/怪物死亡消散粒子效果
核心:这是一个Unity粒子系统自带的一种功能,可将粒子生成控制在一个Texture图片网格范围内,并且粒子颜色会自动采样图片的像素点颜色,之后则是粒子编辑出消散效果。 Particle System1物体(爆发式随机速度扩散10000个粒…...

Linux - 进程间通信(3)
目录 3、解决遗留BUG -- 边关闭信道边回收进程 1)解决方案 2)两种方法相比较 4、命名管道 1)理解命名管道 2)创建命名管道 a. 命令行指令 b. 系统调用方法 3)代码实现命名管道 构建类进行封装命名管道&#…...

3、C#基于.net framework的应用开发实战编程 - 实现(三、三) - 编程手把手系列文章...
三、 实现; 三.三、编写应用程序; 此文主要是实现应用的主要编码工作。 1、 分层; 此例子主要分为UI、Helper、DAL等层。UI负责便签的界面显示;Helper主要是链接UI和数据库操作的中间层;DAL为对数据库的操…...

C++编程语言:抽象机制:泛型编程(Bjarne Stroustrup)
泛型编程(Generic Programming) 目录 24.1 引言(Introduction) 24.2 算法和(通用性的)提升(Algorithms and Lifting) 24.3 概念(此指模板参数的插件)(Concepts) 24.3.1 发现插件集(Discovering a Concept) 24.3.2 概念与约束(Concepts and Constraints) 24.4 具体化…...

Python面试宝典13 | Python 变量作用域,从入门到精通
今天,我们来深入探讨一下 Python 中一个非常重要的概念——变量作用域。理解变量作用域对于编写清晰、可维护、无 bug 的代码至关重要。 什么是变量作用域? 简单来说,变量作用域就是指一个变量在程序中可以被访问的范围。Python 中有四种作…...

基于最近邻数据进行分类
人工智能例子汇总:AI常见的算法和例子-CSDN博客 完整代码: import torch import numpy as np from sklearn.neighbors import KNeighborsClassifier from sklearn.metrics import accuracy_score import matplotlib.pyplot as plt# 生成一个简单的数据…...

DeepSeek V3 vs R1:大模型技术路径的“瑞士军刀“与“手术刀“进化
DeepSeek V3 vs R1:——大模型技术路径的"瑞士军刀"与"手术刀"进化 大模型分水岭:从通用智能到垂直突破 2023年,GPT-4 Turbo的发布标志着通用大模型进入性能瓶颈期。当模型参数量突破万亿级门槛后,研究者们开…...

一、TensorFlow的建模流程
1. 数据准备与预处理: 加载数据:使用内置数据集或自定义数据。 预处理:归一化、调整维度、数据增强。 划分数据集:训练集、验证集、测试集。 转换为Dataset对象:利用tf.data优化数据流水线。 import tensorflow a…...