一、软硬件平台
1、开发板:创龙AM3359核心板,网口采用RMII形式。
2、UBOOT版本:U-Boot-2016.05,采用FDT和DM。
3、交换芯片MARVELL的88E6321.
二、问题背景
已经基于创龙的3359核心板资料以及UBOOT-2016.05完成了UBOOT的二次开发,实现了网口驱动,在UBOOT命令行中已经能够PING PC,在UBOOT中网口功能正常。
因为Linux下需重点修改调试网口驱动。所以网口暂时不可用,现在准备使SD卡启动UBOOT,加载设备树文件,内核,文件系统。这样做必须多次插拔SD卡,效率低。
想使用SD卡启动后,在命令行中设置通过TFTP启动内核和设备树文件,但还是通过SD卡挂载文件系统(因为NFS不可用),研究具体操作如下
三、准备工作
1、在Linux虚拟机上安装好TFTP环境;
2、开发板可以PING通虚拟机。
四、具体步骤
1、 启动开发板
2、 在UBOOT命令行中停住
3、 测试PING通虚拟机
4、 设置如下环境变量
setenv ipaddr 192.168.1.30
setenv serverip 192.168.1.50(Linux虚拟机地址)
setenv loadimage tftp 0x82000000 zImage
saveenv
reset
五、分析
使用以上步骤就可以实现从SD卡启动UBOOT,从TFTP加载内核,从SD卡相应分区加载设备树文件,从SD卡相应分区挂接文件系统。启动内核。
具体看下以下启动参数及环境变量:
/*SD卡启动时,先扫描SD卡是否插入,若检测到SD卡已经插入,则加载SD卡boot分区中的u-boot.img以及zImage内核镜像。加载完成后,运行run args_mmc,加载rootfs分区文件系统,以及设置控制台参数,加载完成后,运行bootz进行从SD卡启动。*/
mmcboot=mmc dev ${mmcdev}; if mmc rescan; then echo SD/MMC found on device ${mmcdev};run envboot; if run loadimage; then run mmcloados;fi;fi;
可以看到我们修改了loadimage环境变量,即使用了TFTP方式加载了内核。
同理。可以修改设备树文件的加载方式(loadfdt环境变量)。
若要恢复为默认的环境变量,在命令行下输入:
U-Boot> env default -a
U-Boot> saveenv
基于TFTP方式加载启动Linux内核的更多相关文章
- Spring基于XML方式加载Bean定义信息(又名:Spring IOC源码时序图)-图解
-
内核加载与linux的grub
计算机系统的启动是一个复杂的过程,启动过程大致可以分为以下几个阶段: +------计算机系统启动流程----------------------------- ------------------- ...
-
Qemu搭建ARM vexpress开发环境(二)----通过u-boot启动Linux内核
Qemu搭建ARM vexpress开发环境(二)----通过u-boot启动Linux内核 标签(空格分隔): Qemu ARM Linux 在上文<Qemu搭建ARM vexpress开发环 ...
-
uboot学习之五-----uboot如何启动Linux内核
uboot和内核到底是什么?uboot实质就是一个复杂的裸机程序:uboot可以被配置也可以做移植: 操作系统内核本身就是一个裸机程序,和我们学的uboot和其他裸机程序没有本质的区别:区别就是我们操 ...
-
动态链接库知识点总结之三(如何以显示的方式加载DLL)
总结一下如何显示加载方式加载DLL, 首先,我们新建一个win32项目,选择dll,空项目,再添加一个源文件,一个模块定义文件(.def),具体如下图.(详细方法已经在前两篇文章中讲述,如有不懂,打开 ...
-
ant design pro(一)安装、目录结构、项目加载启动【原始、以及idea开发】
一.概述 1.1.脚手架概念 编程领域中的“脚手架(Scaffolding)”指的是能够快速搭建项目“骨架”的一类工具.例如大多数的React项目都有src,public,webpack配置文件等等, ...
-
001-ant design pro安装、目录结构、项目加载启动【原始、以及idea开发】
一.概述 1.1.脚手架概念 编程领域中的“脚手架(Scaffolding)”指的是能够快速搭建项目“骨架”的一类工具.例如大多数的React项目都有src,public,webpack配置文件等等, ...
-
重新想象 Windows 8 Store Apps (54) - 绑定: 增量方式加载数据
[源码下载] 重新想象 Windows 8 Store Apps (54) - 绑定: 增量方式加载数据 作者:webabcd 介绍重新想象 Windows 8 Store Apps 之 绑定 通过实 ...
-
三、js提交请求加载启动动画、请求完成成功回调、注销加载动画
1.通过Query post方式进行异步请求方法 jQuery.post(url, [data], [callback], [type]) 参数说明: url:发送请求地址 data:待发送 Key ...
随机推荐
-
ES6入门系列四(测试题分析)
0.导言 ES6中新增了不少的新特性,来点测试题热热身.具体题目来源请看:http://perfectionkills.com/javascript-quiz-es6/. 以下将一题一题来解析what ...
-
JavaScript基础插曲---apply,call和URL编码等方法
Js基础学习 Js的压缩: 就是利用js的语法格式通过缩短变量名,去掉空格等来进行压缩. Apply和call的使用 1:apply方法:应用某一对象的方法,用于一个对象替换当前对象.主要是改变thi ...
-
mac 10.9开启有道词典取词功能
取词时候,有道词典给出提示,说要去开启辅助功能,但提示的是在mac 10.8上面怎么操作,在10.9的话,就是以下位置去改了. 补充以下: 在mac机器上,实际上大多数的单词都能从自带的词典中查找到. ...
-
java数组元素的输出
java数组元素的输出 利用Arrays.toString(数组名即可) String[] name = {"Tom", "John", "Nike& ...
-
25个让人无法抗拒的HTML5网站设计实例
原文地址:http://www.goodfav.com/html5-website-designs-8272.html HTML5在其功能方面给网络市场带来了惊人的改进. HTML5是万维网联盟,在起 ...
-
[jobdu]矩形覆盖
推导一下,就是斐波那契数列那样的.但是要注意的是,int存不下,算一下需要long long才行,因为是指数级上升的. #include <cstdio> #define LEN 75 # ...
-
codeforces 546E. Soldier and Traveling 网络流
题目链接 给出n个城市, 以及初始时每个城市的人数以及目标人数.初始时有些城市是相连的. 每个城市的人只可以待在自己的城市或走到与他相邻的城市, 相邻, 相当于只能走一条路. 如果目标状态不可达, 输 ...
-
c# ProxyServer 代理服务器 不是很稳定
/**C# Programming Tips & Techniquesby Charles Wright, Kris Jamsa Publisher: Osborne/McGraw-Hill ...
-
使用 ASP.NET Core MVC 创建 Web API(一)
从今天开始来学习如何在 ASP.NET Core 中构建 Web API 以及每项功能的最佳适用场景.关于此次示例的数据库创建请参考<学习ASP.NET Core Razor 编程系列一> ...
-
Python OS模块中的fork方法实现多进程
import os '''使用OS模块中的fork方式实现多进程''' '''fork方法返回两次,分别在父进程和子进程中返回,子进程中永远返回0,父进程返回的是子进程的is''' if __name ...