![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
uboot
文章平均质量分 85
一口Linux
《从零开始学ARM》作者,长期分享嵌入式、linux、网络、arm知识。
展开
-
uboot什么意思(uboot fastboot)
U-Boot、全名通用引导加载器是遵循GPL条款的开源项目。U-Boot的作用是引导系统。U-Boot是从FADSROM、8xxROM、PPCBOOT逐渐演化而来的。其源目录、编译格式与Linux内核非常相似。事实上,许多U-Boot源代码都基于相应的Linux内核源程序进行了简化。特别是某些设备的驱动程序可以通过U-Boot源代码的注释来指示。原创 2022-09-28 22:53:52 · 4010 阅读 · 0 评论 -
uboot启动源码分析
初始化异常向量表设置 SVC 模式关中断配置cp15协处理器初始化 mmu、cache、tlb(cpu_init_cp15)板级初始化(cpu_init_crit)初始化异常向量表arch/arm/cpu/armv7/start.S 32 #include <asm-offsets.h> 33 #include <config.h> 34 #include <version.h> 35 #include <asm..原创 2021-05-23 20:57:12 · 840 阅读 · 0 评论 -
NFS主配置文件exports参数详解
NFS服务的主配置文件:/etc/exports: 格式:[共享的目录] [主机名或IP(参数,参数)]当将同一目录共享给多个客户机,但对每个客户机提供的权限不同时,可以这样: [共享的目录] [主机名1或IP1(参数1,参数2)] [主机名2或IP2(参数3,参数4)]第一列:欲共享出去的目录, 也就是想共享到网络中的文件系统;第二列:可访问主机192.168.152.13 指定IP地址的主机nfsclient.test.com 指定域名的主机...原创 2021-05-14 22:52:16 · 5643 阅读 · 4 评论 -
GNU风格 汇编语法总结
汇编源程序一般用于系统最基本的初始化:初始化堆栈指针、设置页表、操作 ARM的协处理器等。这些初始化工作完成后就可以跳转到C代码main函数中执行。1、 GNU汇编语言语句格式任何Linux汇编行都是如下结构:[:][} @commentinstruction:指令directive:伪操作pseudo-instruction:伪指令:标号, GNU汇编中,任何以冒号结尾的标识符都被认为是一个标号,而不一定非要在一行的开始。comment:语句的注释下面定义一个"add"的函数,最原创 2021-04-19 20:57:42 · 2276 阅读 · 0 评论 -
使用busybox制作rootfs
Build Busybox as a static binary(no shared libs),如果选择上,则busybox将以静态形式进行编译,否则将以动态方式编译。此外,还需要对交叉编译环境进行配置,选择其中的Cross Compiler Perfix,输入交叉编译器的前缀,我们的嵌入式平台上使用的是arm-uclinux-linuTAG:busyboxrootfs 1获取源码解压 从busybox的官方主页http://www.busybox.net,下载bu...原创 2021-04-04 21:07:23 · 800 阅读 · 1 评论 -
linux rootfs制作
作一个嵌入式Linuxrootfs,并且实现web服务1.文件系统简介•理论上说一个嵌入式设备如果内核能够运行起来,且不需要运行用户进程的话,是不需要文件系统的,文件系统简单的说就是一种目录结构,由于linux操作系统的设备在系统中是以文件的形式存在,将这些文件进行分类管理以及提供和内核交互的接口,就形成一定的目录结构也就是文件系统,文件系统是为用户反映系统的一种形式,为用户提供一个检测控制系统的接口。•根文件系统,我认为根文件系统就是一种特殊的文件系统,那么根文件系统和普通的文件系统...原创 2021-04-04 20:02:19 · 475 阅读 · 0 评论 -
uboot的常用命令及用法
uboot是bootloader的一种,主要是用于引导内核启动.uboot除此功能外, 还带有很多其它功能. 功能是通过命令来调用.uboot的命令: help //列出当前uboot所有支持的命令 help 命令 //查看指定命令的帮助 reset //重启uboot bootm //用于启动内核 用法: bootm 0x42000000 //从内存地址0x42000000启动内核, 启动前需把内核镜像uImage存...原创 2021-03-17 18:38:30 · 3046 阅读 · 0 评论 -
Uboot启动参数说明
29.Uboot 启动参数说明:bootcmd=cp.b 0xc4200000 0x7fc0 0x200000 ; bootm// 倒计时到 0 以后,自动执行的指令bootdelay=2baudrate=38400// 串口波特率,一般使用 38400ethaddr=08:00:3e:26:0a:5cbootfile="uImage"ethact=lan911xserverip=10.117.192.3// 指定 linux 服务器的 ip 地址,在进行 tft..原创 2021-03-16 23:14:18 · 3062 阅读 · 0 评论 -
紫枫术河 imx6 uboot的mtd分区总结(rootfs为ubi文件系统) imx6 uboot的mtd分区总结(rootfs为ubi文件系统)
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_29729577/article/details/51130209此文章基于U-Boot 2014.04版本,烧写工具为mfgtool,开发环境为yocto前言:JFFS2、YAFFS2等专用文件系统存在着一些技术瓶颈,如:内存消耗大,对FLASH容量、文件系统大小、内容、访问模式等的线性依赖,损益均衡能力差或过渡损益 等。在此背景下内核加入了UBI文件系统的支持与JFFS2一样...原创 2021-03-16 11:28:56 · 854 阅读 · 0 评论 -
虚拟文件系统
VFS的层次文件系统实现与用户进程(或C库)之间。文件系统分类基于磁盘的文件系统(ext2/3 fat iso9660…)、虚拟文件系统(proc)、网络文件系统(nfs)通用文件模型VFS提供一种结构模型,包含了一个强大的文件系统所应具备的所有组件。所有的文件系统实现,都必须提供与VFS定义的结构配合的例程,以弥补两种试图之间的差异。文件描述符一个整数,在用户层所有有关文件的操作中用于标识一个文件,在打开文件时由内核创建,特定于进程。...原创 2021-03-16 11:27:03 · 343 阅读 · 0 评论 -
linux文件系统初始化过程(6)---执行init程序
一、目的 内核加载完initrd文件后,为挂载磁盘文件系统做好了必要的准备工作,包括挂载了sysfs、proc文件系统,加载了磁盘驱动程序驱动程序等。接下来,内核跳转到用户空间的init程序,由init完成创建磁盘设备文件、加载磁盘文件系统、从rootfs切换到磁盘根文件系统等工作。 由于在不同的linux发行版中,init的实现方式差异很大,不能将所有的发行版都分析一遍,因此本文选取ubuntu12.04发行版来描述如何从rootfs切换到磁盘根文件系统。二、创建磁盘设备文件...原创 2021-03-16 11:26:31 · 550 阅读 · 0 评论 -
linux文件系统初始化过程(4)---加载initrd(中)
一、目的 上文详细介绍了CPIO格式的initrd文件,本文从源代码角度分析加载并解析initrd文件的过程。 initrd文件和linux内核一般存储在磁盘空间中,在系统启动阶段由bootload负责把磁盘上的内核和initrd加载到指定的内存空间中;然后,再由内核读取和解析initrd文件,在VFS(目前只有rootfs的根目录)中新建目录、常规文件、符号链接文件以及特殊文件;这样VFS就从根目录"/"成长为一棵枝繁叶茂的大树了。二、函数调用过程 initr...原创 2021-03-16 11:26:01 · 659 阅读 · 0 评论 -
linux文件系统初始化过程(3)---加载initrd(上)
一、目的 本文主要讲述linux3.10文件系统初始化过程的第二阶段:加载initrd。 initrd是一个临时文件系统,由bootload负责加载到内存中,里面包含了基本的可执行程序和驱动程序。在linux初始化的初级阶段,它提供了一个基本的运行环境。当成功加载磁盘文件系统后,系统将切换到磁盘文件系统并卸载initrd。 如果是嵌入式设备,那么最终的文件系统就是initrd。二、cpio文件格式 initrd常用的的文件格式是cpio,c...原创 2021-03-16 11:25:23 · 730 阅读 · 0 评论 -
linux文件系统初始化过程(2)---挂载rootfs文件系统
一、目的 本文主要讲述linux3.10文件系统初始化过程的第一阶段:挂载rootfs文件系统。 rootfs是基于内存的文件系统,所有操作都在内存中完成;也没有实际的存储设备,所以不需要设备驱动程序的参与。基于以上原因,linux在启动阶段使用rootfs文件系统,当磁盘驱动程序和磁盘文件系统成功加载后,linux系统会将系统根目录从rootfs切换到磁盘文件系统。二、主要函数调用过程 图1描述了挂载rootfs的函数调用关系(图中红色部分),便于后面的分析。...原创 2021-03-16 11:24:37 · 564 阅读 · 0 评论 -
linux文件系统初始化过程(1)---概述
术语表:struct task:进程struct mnt_namespace:命名空间struct mount:挂载点struct vfsmount:挂载项struct file:文件struct super_block:超级块struct dentry:目录struct inode:索引节点一、目的 linux文件系统主要分为三个部分:文件系统调用;虚拟文件系统(VFS);挂载到VFS的实际文件系统。 其中,VFS是核心,linux文件系统的本...原创 2021-03-16 11:23:35 · 692 阅读 · 0 评论 -
将uboot,kernel,rootfs下载到开发板上
1、为什么要下载所谓下载,也称烧录,部署。1.1、什么是u-bootHi3518EV200 单板的 Bootloader 采用 U-boot。u-boot是一种普遍用于嵌入式系统中的Bootloader,Bootloader是在操作系统运行之前执行的一小段程序,通过它,我们可以初始化硬件设备、建立内存空间的映射表,从而建立适当的软硬件环境,为最终调用操作系统内核做好准备。Boot Loader的主要运行任务就是将内核映象从硬盘上读到RAM中,然后跳转到内核的入口点去运行,即开始启动操作系统。系原创 2021-03-16 11:22:42 · 1274 阅读 · 0 评论 -
ramdisk配置、解压、创建rootfs、启动简单分析
1.如何打开ramdisk功能?如果要使用ramdisk功能,需要做两步工作:一是修改Kernel的bootargs,增加rdinit选项;二是在编译uImage的时候将rootfs.cpio嵌入。下面是使用ramdisk启动和使用eMMC作为启动介质的两种配置,ramdisk需要制定rdinit选项,并且root设备变成了/dev/ram0。bootargs = "console=ttyS0,115200 rdinit=/sbin/init root=/dev/ram0 quiet";bo原创 2021-03-16 11:20:35 · 3644 阅读 · 0 评论 -
ramdisk配置、解压、创建rootfs、启动简单分析
1.如何打开ramdisk功能?如果要使用ramdisk功能,需要做两步工作:一是修改Kernel的bootargs,增加rdinit选项;二是在编译uImage的时候将rootfs.cpio嵌入。下面是使用ramdisk启动和使用eMMC作为启动介质的两种配置,ramdisk需要制定rdinit选项,并且root设备变成了/dev/ram0。bootargs = "console=ttyS0,115200 rdinit=/sbin/init root=/dev/ram0 quiet";bo原创 2021-03-15 18:42:33 · 1887 阅读 · 0 评论 -
linux的进程1:rootfs与linuxrc
在内核启动的最后阶段启动了三个进程进程0:进程0其实就是刚才讲过的idle进程,叫空闲进程,也就是死循环。进程1:kernel_init函数就是进程1,这个进程被称为init进程。进程2:kthreadd函数就是进程2,这个进程是linux内核的守护进程。这个进程是用来保证linux内核自己本身能正常工作的。在嵌入式操作系统中一般会指定/linuxrc为init进程。1、/linuxrc是一个可执行的应用程序(1)/linuxrc是应用层的,和内核源码一点关系都没有(2)/linuxrc在开原创 2021-03-15 18:35:03 · 366 阅读 · 0 评论 -
buildroot管理uboot+kernel+rootfs
鉴于自己制作根文件系统太麻烦了,所以想用buildroot管理uboot,kernel,另外还可以自动生产rootfs,于是花了两天研究了下buildroot的框架和使用,在自己的2440开发板上也跑起来了,故整理成文档,以便自己将来忘记的时候能参考下:源码下载,我下载的是2018.02.3版本,官方下载地址:http://buildroot.org/downloads/由于我是玩的JZ2440的板子,故我就以这个板子作为蓝本说明:1.cd到buildroot根目录下。2.首先查看当前bui原创 2021-03-15 18:34:32 · 1247 阅读 · 0 评论 -
linux rootfs.img的制作
cramfs是只读压缩的文件系统,文件系统类型可以是ext2,ext3,什么的,cramfs和romfs只是一个文件系统类型,ramdisk相当于一块硬盘空间,可以理解为在内存中虚拟出一块硬盘来,所以它上面就可以有你linux支持的各种文件系统什么的。所以你问的,它和romfs和cramfs确实不是一个层次的概念。 ^-^恭喜你,你答对了的根文件系统的目录是 rootfs (你将来要用到的所有的文件就在这里)like this : mkcramfs rootfs rootfs.cramfs 就搞定了。如原创 2021-03-15 18:34:01 · 1785 阅读 · 0 评论 -
使用busybox制作rootfs
1获取源码解压从busybox的官方主页http://www.busybox.net,下载busybox的源码,目前最新的版本为busybox-1.13.3.tar.bz2#tar –jvxf busybox-1.13.3.tar.bz2进入解压后的busybox源码目录#cd busybox-1.13.32配置busybox步骤跟编译linux内核时很像#make menuconfig出现一个图形界面,选择Busybox Settings,这里可以对编译、安...原创 2021-03-15 18:33:30 · 549 阅读 · 0 评论 -
linux之rootfs (UBIFS)
大大小小事情一堆,好久不更新了,这次记录下移植ubifs文件系统步骤。虽然通常是先kernel后rootfs,但是kernel要不停改,rootfs却必须得先存在,所以先搞定rootfs,rootfs采用据说是nand flash上最先进的ubifs。上http://www.busybox.net/下载busybox源代码,目前最新的稳定版本为1.18.1,解压至Workspaces。以下切换到root用户进行操作(在其他用户模式下编译出来的rootfs登录时不是以root登录,好像..原创 2021-03-15 18:32:48 · 2133 阅读 · 0 评论 -
超详细分析Bootloader到内核的启动流程
作者:嵌入式与Linux那些事https://www.toutiao.com/i6907025640118092291/Bootloader启动流程分析 Bootloader的启动过程可以分为单阶段、多阶段两种。通常多阶段的 Bootloader能提供更为复杂的功能以及更好的可移植性。从固态存储设备上启动的 Bootloader大多都是两阶段的启动过程。第一阶段使用汇编来实现,它完成一些依赖于CPU体系结构的初始化,并调用第二阶段的代码;第二阶段则通常使用C语言来实现,这样可以实现更复杂的功能转载 2021-03-01 21:49:31 · 1220 阅读 · 0 评论 -
uboot各种目录下的文件作用
uboot各种目录下的文件作用uboot下载地址:http://ftp.denx.de/pub/u-boot/1、目录分布2、目录结构变化:u-boot-2010.03及以前版本├── api 存放uboot提供的接口函数├── board 根据不同开发板定制的代码,代码也不少├── common 通用的代码,涵盖各个方面,已命令行处理为主├── cpu 与体系结构相关的代码,ub原创 2021-02-28 19:43:04 · 450 阅读 · 0 评论 -
bootloader 详细介绍
Bootloader对于计算机系统来说,从开机上电到操作系统启动需要一个引导过程。嵌入式Linux系统同样离不开引导程序,这个引导程序就叫作Bootloader。6.1.1 Bootloader介绍Bootloader是在操作系统运行之前执行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射表,从而建立适当的系统软硬件环境,为最终调用操作系统内核做好准备。对于嵌入式系统,Bootloader是基于特定硬件平台来实现的。因此,几乎不可能为所有的嵌入式系统建立一个通用的B.原创 2021-02-27 11:11:58 · 5300 阅读 · 0 评论