【嵌入式Linux环境搭建-10】tftp服务安装、双网卡并行

嵌入式Linux_字符设备驱动开发实战_LED控制_从TFTP+NFS环境搭建到驱动加载测试全流程解析 本文详细解析了嵌入式Linux字符设备驱动开发全流程,重点介绍了LED控制驱动的编写与测试。通过TFTP+NFS环境搭建,实现高效开发调试,涵盖驱动代码编写、硬件地址映射、编译加载及常见问题解决,为嵌入式开发者提供实战指南。 阅读详情

10.tftp服务安装

板子有有线网卡,需有线连接到电脑

主机安装TFTP服务

$ sudo apt-get install xinetd tftpd tftp	
$ sudo vim /etc/xinetd.d/tftp /*添加下面内容, 
service tftp
{
protocol        = udp
port            = 69
socket_type     = dgram
wait            = yes
user            = nobody
server          = /usr/sbin/in.tftpd
server_args     = /tftpboot
disable         = no
}
 
注意: win10下内容拷贝不过来 需要去掉.vimrc " 启用鼠标 部分内容如 if has('mouse') set mouse=a endif

 */

$ sudo mkdir /tftpboot    
$ sudo chmod -R 777 /tftpboot   //改变文件权限
$ sudo chown -R nobody /tftpboot   //递归改变文件权限
$ vim /tftpboot/test   //创建测试文件
$ sudo service xinetd restart  //新系统的重启服务
$ sudo /etc/init.d/xinetd restart  	//老系统的重启服务

$ tftp localhost  //自环测试
tftp> get  test
Received 7 bytes in 0.0 seconds  //有下载到文件,表示tftp服务安装成功
tftp> q //退出

板子与虚拟机能ping通

用网线连接板子和电脑  //需买网线,笔记本电脑还需买 usb转网卡 设备

//win10设置:
  右下脚无线网图标上右键 -> 打开网络和internet设置 -> 以太网 -> 网络和共享中心
  -> 点以太网(有线网卡) -> 属性 -> TCP/ipv4-> 选使用下面的ip地址
  -> IP地址    192.168.9.120   -> 确定
     子网掩码  255.255.255.0
     网关      192.168.9.1
 
  关闭防火墙 // 右下角向上箭头 -> 点盾牌的图标 -> 把域网络 专有网络 公有网络 防火墙全部关闭(否则是ping不通的)
命令行输入  > ipconfig      //能看到以太网适配器里右ip  192.168.9.120表示设置成功
//==================板子IP192.168.9.110=============
//==================板子设置====================:putty串口进入应用层
//板子先在U-boot阶段激活网卡才行,最下面有写
$ sudo ifconfig eth0 192.168.9.110 up  //设置有线网卡的ip地址(默认eth0是有线网卡)
$ ifconifg   //看到 eth0 设为 192.168.9.110 表示设置成功
$ ping 192.168.9.120 /*如果有回下面信息表示板子与电脑网络连接成功
    PING 192.168.9.120 (192.168.9.120) 56(84) bytes of data.
    64 bytes from 192.168.9.120: icmp_seq=1 ttl=128 time=1.67 ms
    64 bytes from 192.168.9.120: icmp_seq=2 ttl=128 time=1.90 ms
   	*/
//==================电脑IP192.168.9.120=============
//==================主机关联有线网卡设定静态ip================

//==================虚拟机IP192.168.9.119===========
//不太行,按下面的双网卡并行来设置
WorkStation -> 编辑 -> 虚拟网络编辑器 -> 更改设置 -> 桥接模式 -> 选usb有线网卡 -> 确定退出
WorkStation -> 虚拟机 -> 设置 -> 自定义 -> 选Vnet0 //需和前一个一致
ubuntu -> 右键右上角的网络图标 -> 设置 -> 点+ 号新加网卡 -> 身份 名称设为 board -> 
选ipv4 -> 手动 -> 地址 设为192.168.9.119  子网掩码 255.255.255.255.0  网关:192.168.9.1 -> 确定退出
$ ifconfig //如果看到有 192.168.9.119 的网卡,表示设置成功

板子有线网口IP设置

  • 第一种,上电启动板子到文件系统
$ sudo ifconfig eth0 192.168.9.110 up  //设置有限网卡的ip地址(默认eth0是有些网卡)
$ ifconifg   //看到 eth0 设为 192.168.9.110 表示设置成功

image-20220422155205676

  • 第二种,停在uboot阶段的设置
# pci enum;pci  /* 激活pci设备(否则ping时报:No ethernet found.)
Scanning PCI devices on bus 0
BusDevFun  VendorId   DeviceId   Device Class       Sub-Class
_____________________________________________________________
00.01.00   0x10de     0x0fae     Bridge device           0x04
00.02.00   0x10de     0x0faf     Bridge device           0x04	
  */	
# setenv serverip  192.168.9.119 
# setenv ipaddr 192.168.9.9
# ping 192.168.9.120 /*先ping通win10
  Using eth_rtl8169 device
  host 192.168.9.120 is alive
	*/
# ping  192.168.9.119   /*再ping通虚拟机(如果不通,看一下前面 主机关联有线网卡设定静态ip)
   Using eth_rtl8169 device
   host 192.168.9.119 is alive
    */
# saveeenv
# tftp Image  /*内核33M下载要3分钟(太慢了,为什么)
	Using eth_rtl8169 device
	TFTP from server 192.168.9.119; our IP address is 192.168.9.9
	Filename 'Image'.
	Load address: 0x84000000
	Loading: ##########....

         ####################################################
         308.6 KiB/s
	done
	Bytes transferred = 34484232 (20e3008 hex)
	
	占用地址范围  0x84000000 ~ 0x84000000+20e3008
   */	
# tftp 0x88000000 tegra210-p3448-0002-p3449-0000-b00.dtb  

Windows有线网口配置

网线连接电脑和板子

打开控制面板

image-20220422154318966

点网络和Internet

image-20220422154438280

点网络和共享中心

image-20220422154544292

点以太网

image-20220422154612062

点属性

image-20220422154643264

双击IPv4

image-20220422154723704

改成如图-然后一路确定到关闭

到此Windows有线网口配置完成(记得关所有防火墙)

板子和Windows ping通

image-20220422155335188

image-20220422155409193

虚拟机TFTP双网卡并行

虚拟机设置
编辑 ->虚拟网络编辑器	-> 更改设置 -> 选VMnet1 -> 桥接选择 usb网卡 (如 TP-Link的)-> 确定
    


虚拟机里 右上角,设置一个网卡 连接wifi上外网, 一个网卡,连接usb网卡,连接板子。

image-20220422162422807

VMnet0接无线网口

image-20220422162541788

VMnet1接有线网口

两个设置好后,点应用-点确定

虚拟机 -> 设置 -> 添加 -> 网路适配器 -> 自定义 -> 选VMnet1 -> 确定 

image-20220422163016044

image-20220422163133005

无线网卡的

image-20220422163215464

有线网卡的

两个设置完-点确定

image-20220422163658481

有线设置

image-20220422163919411

点ens33右边设置符号,改个名字就行

或者右上角+号

image-20220422164006934

image-20220422164044463

接下来设置有线的

ens37右边点设置符号,改名字,改IPv4

image-20220422164908931

image-20220422164938661

设置完了,看看对不

测试

image-20220422165028971

image-20220422165307482

image-20220422165438495

image-20220422165906250

右上角两个已连接

ifconfig能看到信息

windows和板子能有线ping通

image-20220422165634006

image-20220422165732791

无线也都能ping通

板子联通虚拟机

imx6ull

setenv serverip 192.168.9.119     //服务器的 IP 地址(Ubuntu) 
setenv gatewayip 192.168.9.1      //网关 
setenv ipaddr 192.168.9.110       //开发板的 ip 地址 
setenv netmask 255.255.255.0      //子网掩码 
setenv ethaddr 42:03:07:3B:15:5F  //设置物理地址
saveenv                           //保存环境变量 
reset                             //重启

jeston nano

板子重启 停在u-boot处
# pci enum;pci
# setenv serverip  192.168.9.119 
# setenv ipaddr 192.168.9.1
# ping  192.168.9.119   /*再ping通虚拟机
		Using eth_rtl8169 device
		host 192.168.9.119 is alive
    */
# saveeenv
# tftp u-boot.bin //能tftp下载,表示tftp服务ok

TFTP下载文件到板子上

# pci enum;pci  /* 激活pci设备(否则ping时报:No ethernet found.)
Scanning PCI devices on bus 0
BusDevFun  VendorId   DeviceId   Device Class       Sub-Class
_____________________________________________________________
00.01.00   0x10de     0x0fae     Bridge device           0x04
00.02.00   0x10de     0x0faf     Bridge device           0x04	
  */	
# setenv serverip  192.168.9.119 
# setenv ipaddr 192.168.9.9
# ping 192.168.9.120 /*先ping通win10
  Using eth_rtl8169 device
  host 192.168.9.120 is alive
	*/
# ping  192.168.9.119   /*再ping通虚拟机(如果不通,看一下前面 主机关联有线网卡设定静态ip)
   Using eth_rtl8169 device
   host 192.168.9.119 is alive
    */
# saveenv
# tftp Image  /*内核33M下载要3分钟(太慢了,为什么)
	Using eth_rtl8169 device
	TFTP from server 192.168.9.119; our IP address is 192.168.9.9
	Filename 'Image'.
	Load address: 0x84000000
	Loading: ##########....

         ####################################################
         308.6 KiB/s
	done
	Bytes transferred = 34484232 (20e3008 hex)
	
	占用地址范围  0x84000000 ~ 0x84000000+20e3008
   */	
# tftp 0x88000000 tegra210-p3448-0002-p3449-0000-b00.dtb  

运行裸机程序
$ make
$ cp led.bin  /tftpboot

//板子重启 停在u-boot处
# pci enum;pci
# tftp led.bin
# go 84000000  //运行程序
               //如果是异常重启,可能是顺序执行到非法区域,或某指令写非法地址
Linux虚拟机双网卡配置:实现内网开发板与外网Internet的并行访问 本文详细介绍了在Linux虚拟机中配置双网卡,以实现同时访问内网开发板与外网Internet的实用方法。通过分析桥接与NAT两种虚拟机网络模式的特点,提供了在VMware中配置虚拟网络、在Ubuntu中设置静态IP与路由的完整步骤,并给出了关键的排错指南,帮助嵌入式开发者搭建高效、稳定的并行网络开发环境。 阅读详情

相关推荐

Linux系统编程:基于TFTP的嵌入式文件传输服务器与开发板间的实现

我们将详细解释TFTP的工作原理,并提供相应的源代码示例,以便读者能够实际运行和测试。在TFTP服务器的源代码中,我们需要实现读取和写入文件的逻辑。对于写请求,服务器需要接收客户端发送的文件内容,并将其写入到服务器指定的文件中。TFTP的服务器端通常用于提供文件的读取和写入功能,而客户端则负责请求文件和将文件传输到服务器。通过按照步骤设置TFTP服务器和开发板端代码,并进行测试和验证,您将能够实现可靠的文件传输和交换。在运行TFTP服务器和开发板端代码后,我们可以进行文件传输的测试和验证。

CodeSageX的博客 535

Linux学习笔记七:下载文件到开发板--搭建TFTP服务器

1 测试 疑问

u014448875的博客 3290

基于IC动态加权的机器学习多因子选股策略:从模型融合到实战回测

在量化投资领域,多因子选股模型通过挖掘市场数据中的有效信号来预测股票收益。其核心原理在于利用统计学与机器学习算法,从海量因子中识别出与未来收益具有稳定相关性的特征。这一技术的核心价值在于将主观投资决策转化为系统化、可重复的客观过程,从而在控制风险的前提下追求超额收益。其典型应用场景包括股票阿尔法策略构建、Smart Beta产品设计以及资产配置中的股票筛选环节。本文聚焦于如何通过信息系数(IC)这一关键指标,动态融合Ridge回归、MLP神经网络和随机森林等多个预测模型,构建一个能够自适应市场风格轮动的选股

weixin_34216614的博客 450

Linux系统安装tftp服务器详细步骤

Linux系统安装tftp服务器详细步骤。

weixin_47924039的博客 1678

Zemax热分析实战:5分钟搞定双胶合透镜温度漂移优化(附操作数详解)

本文详细解析了使用Zemax进行光学系统热分析的全流程,以双胶合透镜为例,重点阐述了如何通过多重结构编辑器模拟温度变化,并利用关键操作数优化系统以抵抗温度漂移。文章提供了从基础设置到高级优化的实战技巧,帮助工程师快速掌握无热化设计方法,确保系统在宽温范围内保持稳定成像性能。

n4o5p6q7r的博客 396

CTF命令执行绕过实战:从空格过滤到无回显外带的7种核心姿势

命令执行漏洞是Web安全中的常见高危漏洞,其核心原理在于应用程序未对用户输入进行充分过滤,导致攻击者能够注入并执行系统命令。在真实环境中,安全防护措施(如WAF、输入过滤函数)普遍存在,因此漏洞利用的关键技术在于“绕过”这些过滤机制。理解过滤器的运作逻辑(如黑名单、白名单、转义、长度限制)是成功绕过的前提。通过系统学习**空格绕过**、**命令黑名单绕过**、**编码混淆**等基础技巧,并结合**无回显外带**、**反弹Shell**等高级利用链,安全研究人员能够有效应对复杂防护场景。本文以CTFshow

weixin_29315091的博客 368

ARM-系统移植(开发环境搭建)

安装tftp服务器、安装nfs服务器(磁盘分区操作)、烧写uboot镜像文件、组网步骤

weixin_57039874的博客 1424

本地Qwen + ComfyUI 制作AI漫剧完整保姆级教程(2026年3月最新版)

本文介绍了一个零成本、本地化AI漫剧制作方案,整合Qwen大模型和ComfyUI工作流。Qwen负责剧本创作、分镜设计和提示词生成,ComfyUI处理图像生成、角色一致性保持和动态视频制作。该方案支持8GB显存设备运行(推荐12GB),包含详细安装指南和完整制作流程:从Ollama安装Qwen模型,到ComfyUI配置及必备节点安装,再到分镜生成、角色固定、批量出图和视频合成。文章还提供了常见问题解决方案和优化技巧,全流程1-2小时即可完成3分钟竖屏漫剧制作,适合新手和日更创作者。

posstos的博客 5536

嵌入式linux与windows之间的tftp文件传输(保姆级)

在我们接触嵌入式Linux之前,你一定接触过ubantu或者centos或者其它Linux发行版吧,很好,目前我们都是使用在虚拟机上面的。而我们所说的嵌入式Linux,是运行在开发板里面的(裁剪后Linux)。

qq_62815119的博客 7645

大语言模型无代码构建知识图谱概述

由示例可以看出,大语言模型的泛化能力能够非常精准的抽取文本中的实体、关系等知识信息。其能够大大提升知识提取的效率与准确性。HuggingFists低代码平台的出现进一步促进了知识图谱构建的效率。它大幅降低了知识图谱构建人员的技术要求,使得从事该工作的人员有了更大的选择范围。不断下降的构建成本,意味着可以有更多的客户享受到知识图谱带来的业务价值。

colorknight的专栏 1817

AD9026芯片开发实战指南:从硬件配置到射频校准

本文为AD9026芯片开发实战指南,详细解析了从硬件设计、电源时钟配置、SPI初始化到多芯片同步与JESD204高速链路建立的完整流程。重点探讨了射频校准技术,包括初始化校准与跟踪校准,以保障5G、MIMO等现代通信系统所需的射频性能。旨在帮助开发者系统掌握这颗高性能射频收发器的应用,规避常见设计陷阱。

tomato的博客 851

【Linux-驱动】1-环境搭建

操作系统可以被看做是一种软件,它控制计算机硬件资源,提供程序运行环境。我们通常将这种软件称 为内核。内核的接口被称为系统调用。公用的函数库构建在系统调用接口之上,应用程序可以使用公用 函数库,也可以使用系统调用。shell是一种特殊的应用程序,为运行其他应用提供了一个接口。

qq_47417910的博客 2086

【系统架构设计师】二十三、通信系统架构设计理论与实践①

通信网络主要形式:局域网、广域网、移动通信网。 局域网网络架构有 4 种类型:单核心架构、双核心架构、环型架构、层次型架构。 广域网属于多级网络,通常由骨干网、分布网、接入网组成。在网络规模较小时,可仅由骨干网和接入网组成。通常,在大型网络构建中,通过广域网将分布在各地域的局域网互连起来,形成一个大的网络。 移动通信网为移动互联网提供了强有力的支持,尤其是5G 网络为个人用户、垂直行业等 提供了多样化的服务。

帅次的博客 3761

vm配置双网卡,Ubuntu安装tftp服务,实现imx6ull通过tftp实现从网络启动linux

本文详细介绍了通过USB网卡桥接方式实现开发板网络启动的完整教程。首先需要准备USB转以太网转换器和网线,在Ubuntu中安装驱动并设置网络共享。接着配置桥接模式,修改IP地址确保开发板(192.168.240.15)与Ubuntu(192.168.240.10)同网段互通。然后搭建TFTP服务器,配置相关参数和文件路径。最后在U-Boot中设置bootargs和bootcmd参数,指定从网络加载zImage镜像和设备树文件完成启动。

qq_69545450的博客 575

【超详细】MIT 液态神经网络(LNNs)——深度学习新动向

输入可以是任何形式的时间序列数据,其中表示时间。例如传感器读数、金融市场数据、语音信号等。

allein_STR的博客 2611

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

环境搭建、bootloader、内核编译、nfs文件服务

编译过程包括了预处理、编译、汇编、链接等功能。既然有不同的子功能,那每个子功能都是一个单独的工具来实现,它们合在一起形成了一个完整的工具集。同时编译过程又是一个有先后顺序的流程,它必然牵涉到工具的使用顺序,每个工具按照先后关系串联在一起,这就形成了一个。

qq_47258284的博客 1125

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ubuntu下嵌入式环境搭建

一、安装vmwaretools 二、更新源 三、虚拟机双网卡设置 四、安装samba服务 五、安装交叉编译器 六、安装tftp服务 七、安装nfs服务 八、安装 ssh服务 九、安装VIM 一、安装vmwaretools tar -zxvf *.tar.gz -C /tmp/ cd /tmp/vmware-tools-distrib ./vmware-...

qq_29532253的博客 865

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

arm linux嵌入式开发环境搭建简要

宿主机(host) :虚拟机  Ubuntu18 64位系统 虚拟机配置: 1.添加两个磁盘是为了将系统和代码分开,这样的好处在于可以将代码盘挂载到其它虚拟机上使用 2.安装两个网卡是因为目标机的网口是直接接到电脑的网口,电脑上网则是通过无线wifi,之前使用老版VMare8时,可以通过开启windows路由服务来解决网络互通的问题,但是安装了新版VMware后windows的路由服务无...

u013845608的博客 1671

嵌入式系统开发-麦子学院(13)-linux底层系统开发(1)

1. 嵌入式系统移植: (1)交叉编译链: 不同平台的对指令集的编码译码不同。 将交叉编译器增加到环境变量中: ① PATH=$PATH:目录 ② vi /etc/environmet 文件中添加 交叉编译的工具集: readelf -h 读取文件的ELF头信息 size 读取文件ELF头的大小 nm 查看可执行程序的符号表 strip 剔除符号表 strings 查看可执行程序中的字符串 ob...

QiHsMing的博客 1065

嵌入式硬件学习(七)——linux启动程序

本质上BootLoader是一个裸机程序,是系统上电之后所执行的第一个程序,目的是为了能够正确地启动linux操作系统,在系统初上电时对系统做的一些硬件上的初始化操作。初始化异常向量表初始化工作模式初始化栈指针寄存器初始化时钟初始化串口等必要的外设关闭MMU、关闭DCache、初始化SDRAM、初始化nand flash初始化网卡并集成一些必要的协议,如tcp、tftp提供一个类似于linux那样的终端,方便与操作人员互动。

qq_51405411的博客 2128

Qemu搭建ARM Vexpress开发环境

QEMU是一套由法布里斯·贝拉(Fabrice Bellard)所编写的以GPL许可证分发源码的模拟处理器软件,在GNU/Linux平台上使用广泛。可以在没有硬件开发板的情况下调试验证问题。最初搭建Qemu时遇到一些问题,新版Qemu的教程网上少之又少,向大佬请教时得到的答复是用别人验证过的东西靠谱,Qemu很少有人源码级debug。这回答有点颠覆三观,一个开源认可度很高的软件怎么可能会因为编译安装而需要源码级debug,于是便有了后续……

jia_weihui的博客 1927

011 Linux环境熟悉——IMX6ULL嵌入式开发环境配置

本文基于韦东山老师配套教程,用于记录学习过程及遇到的一些问题

2302_81678505的博客 895

IMX6ULL Linux 驱动开发流程:从环境搭建到系统启动与内核编译

嵌入式 Linux 驱动开发的核心,是建立「硬件平台 - 引导程序 - 内核 - 根文件系统 - 用户程序」的完整链路认知,本文覆盖的环境搭建、系统启动流程、内核编译、根文件系统制作,是所有外设驱动开发的基础。

senijusene的博客 894

Ubuntu 虚拟机双网卡配置:连接外网与嵌入式开发板IMX6ULL

在嵌入式 Linux 开发中,最理想的网络环境是:用于 Ubuntu 上网(下载软件、源码),以及与 Windows 主机进行 SSH/VSCode 通信。:专线连接开发板,模拟真实的物理局域网,用于 TFTP/NFS 挂载调试。

weixin_60192263的博客 806

Linux 设备驱动开发环境构建与系统启动机制剖析

本文系统阐述了基于I.MX6ULL平台的嵌入式Linux开发环境构建方法。首先剖析了Linux内核架构及"一切皆文件"设计理念,重点介绍了双网卡组合配置策略(NAT+桥接模式)的实现方案,包括TFTP和NFS服务的详细配置流程。针对开发阶段的高效调试需求,提出了SD卡+TFTP+NFS的联合启动模式,详细解析了U-Boot环境变量配置和完整启动流程。该方案实现了内核与文件系统的实时更新调试,为嵌入式开发提供了可复现的环境配置参考。

m0_53299663的博客 679

U-Boot 2020.10 网络启动调试:TFTP/NFS 从服务器加载内核与设备树的 3 种命令组合

本文详细解析了U-Boot 2020.10网络启动调试的三种命令组合,包括TFTP/NFS从服务器加载内核与设备树的方法。通过配置Ubuntu服务器环境和U-Boot网络参数,开发者可以高效实现嵌入式Linux系统移植与启动引导,显著提升开发效率并延长硬件寿命。

anqiu4023的博客 317
上一篇: 【嵌入式Linux环境搭建-09】最简根文件系统制作
下一篇: Nvidia jetson nano硬件架构
赛博二哈
博客等级 码龄8年 5768粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值