Linux学习笔记8-Uboot移植-网络设置和其他坑的解决

news2025/1/21 2:52:27

Linux之所以被称为操作系统,肯定是需要有引导程序来启动各个关键外设的运行,这里可以和个人电脑PC做个类比。我们在开机的时候是不是先要进入BIOS,BIOS在初始化硬盘、内存、USB接口、网口等之后,才可以进入Windows系统对吧?当然现在的电脑BIOS的引导是感受不到的。这里的BIOS就相当于一个bootloader引导程序,所以Linux也需要这样的bootloader。实际上,一个完整的Linux操作系统就是由Bootloader+Linux内核(Linux Kernel)+根文件系统(rootfs)这三大部分组成的。

关于Uboot移植,我是完全按照正点原子的教程来一步步学习和实际练习的,但是碰到了几个坑花了很长时间才搞明白并解决,所以这一篇笔记想重点记录这几个坑的解决过程,也可以让其他碰到类似问题的伙伴能多个参考。

第一个坑也是最大的坑,就是网络配置。我开发板和PC是用网线直连的,PC通过无线网卡上互联网,这个方式估计是很多初学者的标配吧,但就是这个方式给我造成了很长时间的困扰。最容易出现的问题就是无法ping通开发板和Ubuntu虚拟机,Ubuntu和PC机也无法互相ping通,甚至出现了刚设置好可以ping通了,一重启虚拟机又不行了的奇妙现象,这就使得NFS服务和TFTP服务无法正常使用,也就没办法实际练习内核的启动。在网络上找了很多所谓的教程,发现都无法彻底解决此问题(深深觉得CSDN就是一个你抄我的、我抄你的抄袭论坛)。最后还是自己研究了虚拟机和PC机的网络设置,还算成功的搞定了。但是我的这种方法在虚拟机、PC机和开发板都互相ping通的情况下,虚拟机是无法联互联网的。

首先要确保PC和虚拟机可以互相ping通,只要这两个能互通,开发板再设置在同一网段就没问题了。

  1. 在PC的以太网属性中,必须不要勾选Microsoft LLDP协议驱动程序
    在这里插入图片描述

  2. 在以太网属性的IPv4中指定IP地址,例如192.168.0.xx

  3. 进入Ubuntu主机的虚拟网络编辑器,点击更改设置
    在这里插入图片描述

  4. 红线位置选择你PC的有线网卡,注意是有线网卡。正是这一步设置使得虚拟机无法连上互联网,而且网络连接的图标上会有个问号。所以如果有需要利用虚拟机上网的,在这里选择已桥接至自动即可。
    在这里插入图片描述
    在这里插入图片描述

  5. 在虚拟机设置的网络适配器中选择桥接模式
    在这里插入图片描述

  6. 在虚拟机的设置-网络-有线连接中,IPv4选择手动,并输入和PC同网段的IP地址
    在这里插入图片描述

  7. 这时候应该就差不多了,先在终端打一下ifconfig -a,看看网卡有没有设置地址成功。
    在这里插入图片描述
    继续在终端里ping PC主机:ping 192.168.0.xx,其中xx是自己设置的PC机以太网的IP地址。
    也可以在PC主机里ping虚拟机。
    注意:主机和虚拟机互相ping的时候一定要把网线插到开发板,开发板必须打开电源!

  8. 利用boot阶段设置开发板的IP地址等环境变量,使用setenv命令和saveenv命令,就按照正点原子的教程操作即可,当然也要用192.168.0网段。到这里基本就没问题了。

还有个坑也是困扰我了几天,但原因其实很弱智,就是使用NFS挂载根文件系统时,IP地址后面和绝对路径之间不能有空格,否则NFS挂载不了根文件系统,Linux系统启动不起来,就是下面这句指令。

setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs nfsroot=192.168.0.12:/home/xxx/linux/nfs/rootfs,proto=tcp,nfsvers=3 rw ip=192.168.0.13:192.168.0.12:192.168.0.1:255.255.255.0::eth0:off' 

192.168.0.12:/home/xxx…冒号和/之间不能有空格~~

正点原子其实提供了适配他们开发板的U-boot,Kernel和根文件系统,也基于NXP提供的原版文件进行了适应开发板的修改,建议按照教程一步步的基于原版文件进行修改,会有不一样的收获。

接着会进入到Linux驱动开发的学习,这也是最重要的部分了。

(未完待续)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1330695.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

limma:单通道数据和RNA-seq数据差异性分析标准方法

前言 单通道数据极为流行,三大公司:Affymetrix、Illumina和Agilent的微阵列(microarray)技术产生的很多都是单通道数据。现在的主力的高通量测序机所产生的也是单通道数据,所以只要是被voom标准化(包括了l…

Unity中Shader观察空间推导

文章目录 前言一、本地空间怎么转化到观察空间二、怎么得到观察空间的基向量1、Z轴向量2、假设 观察空间的 Y~假设~ (0,1,0)3、X Y 与 Z 的叉积4、Y X 与 Z 的叉积 三、求 [V~world~]^T^1、求V~world~2、求[V~world~]^T^ 四、求出最后在Unity中使用的公式1、偏移坐标轴2、把…

Redis可视化工具Redis Desktop Manager mac功能特色

Redis Desktop Manager mac是一款非常实用的Redis可视化工具。RDM支持SSL / TLS加密,SSH隧道,基于SSH隧道的TLS,为您提供了一个易于使用的GUI,可以访问您的Redis数据库并执行一些基本操作:将键视为树,CRUD键…

vcruntime140_1.dll文件下载安装方法分享,如何安全修复vcruntime140_1.dll

遇到vcruntime140_1.dll文件遗失是用户在使用Windows操作系统时较为普遍遭遇到的一个问题,它归类于动态链接库(DLL)文件缺失的常见情形。在今天的内容里,我们将深入探讨如何正确地下载和安装vcruntime140_1.dll文件,以…

《操作系统A》期末考试复习题——大题51-62(手写笔记)

51、如果限制为两道的多道程序系统中,有4个作业进入系统,其进入系统时刻、估计运行时间为下图所示。系统采用SJF作业调度算法,采用SRTF进程调度算法。作业进入系统时刻、估计运行时间如下: 作业 进入系统时刻 估计运行时间/min …

php反序列化漏洞原理、利用方法、危害

文章目录 PHP反序列化漏洞1. 什么是PHP反序列化漏洞?2. PHP反序列化如何工作?3. PHP反序列化漏洞是如何利用的?4. PHP反序列化漏洞的危害是什么?5. 如何防止PHP反序列化漏洞?6. PHP反序列化漏洞示例常见例子利用方法PH…

关于pygame无法打开对应文件解决办法 pyame.error unable to open file

问题描述: 问题原因: 由于pygame版本过低导致无法进行声音播放,升级对应版本即可完成! 解决办法: 升级pygame包版本到2.1.2,即可解决该问题! pip install --upgrade pygame2.1.2

html旋转相册

一、实验题目 做一个旋转的3d相册 二、实验代码 <!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport&qu…

Linux Shell 001-Bash简介

Linux Shell 001-Bash简介 本节关键字&#xff1a;Linux、Bash Shell、shell分类 相关指令&#xff1a;bash、sh、cat Shell的介绍 计算机只能认识&#xff08;识别&#xff09;机器语言(0和1)&#xff0c;如&#xff08;11000000 这种&#xff09;。但是&#xff0c;我们的…

幺模矩阵-线性规划的整数解特性

百度百科:幺模矩阵 在线性规划问题中&#xff0c;如果A为幺模矩阵&#xff0c;那么该问题具有最优整数解特性。也就是说使用单纯形法进行求解&#xff0c;得到的解即为整数解。无需再特定使用整数规划方法。 m i n c T x s . t . { A x ≥ b x ≥ 0 \begin{align*} min \quad…

商家如何进行商业模式开发,助力产品更好的销售模式?

商家如何进行商业模式开发&#xff0c;助力产品更好的销售模式&#xff1f; 随着各类电商平台的疯狂崛起&#xff0c;越来越多的商家对其中带来的高额回报率产生心动&#xff0c;毕竟对于线上的场景来说&#xff0c;即省去了房租、水电、仓储以及其他各种费用&#xff0c;用电商…

使用Java语言中的算法输出杨辉三角形

一、算法思想 创建一个名为YanghuiTest的类,然后创建二维数组&#xff0c;然后遍历二维数组的第一层&#xff0c;然后初始化第二层数组的大小&#xff0c;然后遍历第二层数组&#xff0c;然后将两侧的数组元素赋为1&#xff0c;然后其它数值通过公式计算&#xff0c;最后可以输…

高级算法设计与分析(四) -- 贪心算法

系列文章目录 高级算法设计与分析&#xff08;一&#xff09; -- 算法引论 高级算法设计与分析&#xff08;二&#xff09; -- 递归与分治策略 高级算法设计与分析&#xff08;三&#xff09; -- 动态规划 高级算法设计与分析&#xff08;四&#xff09; -- 贪心算法 高级…

20231222给NanoPC-T4(RK3399)开发板的适配原厂Android10的挖掘机方案并跑通AP6398SV

20231222给NanoPC-T4(RK3399)开发板的适配原厂Android10的挖掘机方案并跑通AP6398SV 1、简略步骤&#xff1a;rootrootrootroot-X99-Turbo:~/3TB/3399-android10$ cat Rockchip_Android10.0_SDK_Release.tar.gz0* > Rockchip_Android10.0_SDK_Release.tar.gz rootrootrootro…

PIL/Pillow

Abstract PIL(Python Imaging Library)是一个用于图像处理的 Python 库。它提供了广泛的功能&#xff0c;包括图像加载、保存、调整大小、裁剪、旋转、滤镜应用等。 由于 PIL 的开发停止在 2009 年&#xff0c;因此推荐使用其后续的维护版本 Pillow。Pillow 是一个兼容 PIL 接…

安全认证【八】

文章目录 8. 安全认证8.1 访问控制概述8.2 认证管理8.3 授权管理8.4 准入控制 8. 安全认证 8.1 访问控制概述 Kubernetes作为一个分布式集群的管理工具&#xff0c;保证集群的安全性是其一个重要的任务。所谓的安全性其实就是保证对Kubernetes的各种客户端进行认证和鉴权操作…

Android wifi基础知识点

1、什么是 CSMA/CA &#xff1f; 以太网用 CSMA/CD 进行传输控制&#xff0c;而 IEEE 802.11 的 WLAN 采用的是 CSMA/CA 。 CSMA/CD &#xff0c;全称 Carrier Sense Multiple Access with Collision Detection &#xff0c;即 载波侦听多路访问/冲突检测协议。 载波侦听(Ca…

Qt中字符串转换为JS的函数执行

简介 在 QML 中&#xff0c;将 JavaScript 字符串转换为函数通常涉及使用 Function 构造函数或 eval() 函数。但是&#xff0c;QML 的环境对 JavaScript 的支持有一定的限制&#xff0c;因此不是所有的 JavaScript 功能都可以在 QML 中直接使用。 以下介绍都是在Qt5.12.1…

MATLAB - 使用 YOLO 和基于 PCA 的目标检测,对 UR5e 的半结构化智能垃圾箱拣选进行 Gazebo 仿真

系列文章目录 前言 本示例展示了在 Gazebo 中使用 Universal Robots UR5e cobot 模拟智能垃圾桶拣选的详细工作流程。本示例提供的 MATLAB 项目包括初始化、数据生成、感知、运动规划和积分器模块&#xff08;项目文件夹&#xff09;&#xff0c;可创建完整的垃圾桶拣选工作流…

5. 结构型模式 - 外观模式

亦称&#xff1a; Facade 意图 外观模式是一种结构型设计模式&#xff0c; 能为程序库、 框架或其他复杂类提供一个简单的接口 问题 假设你必须在代码中使用某个复杂的库或框架中的众多对象。 正常情况下&#xff0c; 你需要负责所有对象的初始化工作、 管理其依赖关系并按正确…