3将uboot,kernel,rootfs下载到开发板上

Ocean&Star Ocean&Star     2022-11-20     628

关键词:

将uboot,kernel,rootfs下载到开发板上

1、为什么要下载

所谓下载,也称烧录,部署。

1.1、什么是u-boot

Hi3518EV200 单板的 Bootloader 采用 U-boot。
u-boot是一种普遍用于嵌入式系统中的Bootloader,Bootloader是在操作系统运行之前执行的一小段程序,通过它,我们可以初始化硬件设备、建立内存空间的映射表,从而建立适当的软硬件环境,为最终调用操作系统内核做好准备。Boot Loader的主要运行任务就是将内核映象从硬盘上读到RAM中,然后跳转到内核的入口点去运行,即开始启动操作系统。系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的Boot Loader程序。

1.2、什么是kernel

烧录完uboot之后,开始烧录kernel。Kerne是指大多数操作系统的核心部分。它由操作系统中用于管理存储器、文件、外设和系统资源的那些部分组成。操作系统内核通常运行进程,并提供进程间的通信。操作系统必须要以内核为基础运行,内核提供最基本的对计算机的操作,并且让计算机底层尽量安全和容易管理。

1.3、 什么是rootfs

根文件系统是内核启动时所mount的第一个文件系统,内核代码映像文件保存在根文件系统中,而系统引导启动程序会在根文件系统挂载之后从中把一些基本的初始化脚本和服务等加载到内存中去运行。由于init=/linuxrc,因此,在文件系统挂载后,运行的第一个程序就是根目录下的linuxrc,而这是一个指向/bin/busybox 的链接,也就是说,系统起来后运行的第一个程序就是busybox。 busybox首先将试图解析/etc/inittab来获取进一步的初始化配置信息(参考busybox源代码init/init.c中的parse_inittab()函数)。而事实上,root_qtopia中并没有/etc/inittab这个配置文件,根据busybox的裸机,它将生成默认的配置。其中最重要的一个,就是new_init_action(SYSINIT,INIT_SCRIPT,""),也就决定了接下来初始化的脚本是INIT_SCRIPT所定义的值,这个宏的默认值是"etc/init.d/rcS"。

2、通过Hitool工具烧录uboot

注意:Hitool是基于JaveEE开发的,因此运行前必须安装jre-6u45-windows-i586。注意必须是这个版本,否则不能运行。

  • [ ] (1),打开Hitool,选择对应芯片,点击HiBure

  • [ ] (2),将软件按如下图所设置

    注意:在HI3518ESDK里面的\\package\\image_uclibc_hi3518ev200里面提供了u-boot镜像,也可以是自己编译的。

  • [] (3),选中,烧写

  • [] (4),关闭Hitool,将开发板的串口连接到SecurtCRT,重启开发板,打断3s启动进入uboot模式

  • [] (5),print打印默认环境变量

3、通过tftp网络烧录

此时开发板进入uboot模式

3.1 tftp烧录之前的准备条件

  • [ ] (1),开发板要用串口线,网线连接到PC机上,并用SecurtCRT连接串口。

  • [ ] (2),重启开发板进入u-boot的命令行下

  • [ ] (3),开发板和uboot之间能tftp网络能ping通

  • [ ] (4),准备镜像

    • 步骤1,镜像在osdrv/pub/image_uclibc中,先进入此目录
    • 步骤2,将相关镜像复制到tftpboot目录下
    • cp u-boot-hi3518ev200.bin uImage_hi3518ev200 rootfs_hi3518ev200_64k.jffs2 /tftpboot/ -f
    • cd /tftpboot/
    • ls
    • ls -l
    • cd ..
    • sudo chmod -R 777 tftpboot/
    • cd /tftpboot/
    • ls
    • ls -l
  • [ ] (5),开发板和ubuntu的设置:

    • ubutun:设置桥接到有线网卡,静态分配ip
    • HI3518E进入hisilicon模式[uboot],执行以下命令设置环境变量
        • set bootcmd \'bootm 0x82000000\'
        • set bootargs mem=96M console=ttyAMA0,115200
        • set serveip 192.168.1.141
        • set ip 192.168.1.10
        • save
    • ping 192.168.1.141
  • [ ] (6),print

2.2、下载kernel

  • mw.b 0x82000000 ff 0x300000
  • tftp 0x82000000 uImage_hi3518ev200
  • sf probe 0
  • sf erase 0x100000 0x300000
  • sf write 0x82000000 0x100000 0x300000

2.3、下载rootfs

  • mw.b 0x82000000 ff 0xc00000
  • tftp 0x82000000 rootfs_hi3518ev200_64k.jffs2
  • sf probe 0
  • sf erase 0x400000 0xc00000
  • sf write 0x82000000 0x400000 0xc00000

2.4、设置bootcmd和bootargs以正确启动【此后每次tftpboot目录镜像更新,开发板都会同步跟新镜像】

  • set bootcmd \'sf probe 0;sf read 0x82000000 0x100000 0x300000;bootm 0x82000000\'
  • set bootargs mem=32M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1024K(boot),3072K(kernel),12288K(rootfs)
  • save
  • reset 【即可重启系统】

全志linux系统启动优化启动优化速度方式优化启动流程优化uboot优化kernel等(代码片段)

....2.3提高CPU以及flash读取频率2.3.2.4关闭串口输出.2.3.2.5修改kernel加载位置2.3.2.6修改kernel加载大小2.3.2.7关闭kernel校验2.3.2.8uboot重定位2.3.2.9裁剪uboot.2.3.2.10开启logo及音乐.2.3.3kernel启动优化.2.3.3.1kernel压缩方式.2.3.3.2加载位置2.3.3.3内核... 查看详情

全志linux系统启动优化启动优化速度方式优化启动流程优化uboot优化kernel等(代码片段)

....2.3提高CPU以及flash读取频率2.3.2.4关闭串口输出.2.3.2.5修改kernel加载位置2.3.2.6修改kernel加载大小2.3.2.7关闭kernel校验2.3.2.8uboot重定位2.3.2.9裁剪uboot.2.3.2.10开启logo及音乐.2.3.3kernel启动优化.2.3.3.1kernel压缩方式.2.3.3.2加载位置2.3.3.3内核... 查看详情

如何将uboot里面的参数传给recovery或kernel

参考技术A直接把文件系统也列举了吧。烧写uboot、内核及文件系统的方法:1、uboot的烧写下载Uboot分为两个步骤,第一步将uboot下载到系统的扩展RAM并运行,第二步通过内存中运行的uboot把整个uboot下载到内存再烧写到nandflash第一... 查看详情

tina_linux_启动优化_开发指南(代码片段)

....2.3提高CPU以及flash读取频率2.3.2.4关闭串口输出.2.3.2.5修改kernel加载位置2.3.2.6修改kernel加载大小2.3.2.7关闭kernel校验2.3.2.8uboot重定位2.3.2.9裁剪uboot.2.3.2.10开启logo及音乐.2.3.3kernel启动优化.2.3.3.1kernel压缩方式.2.3.3.2加载位置2.3.3.3内核... 查看详情

linux基于busybox移植rootfs根文件系统(代码片段)

....前言我们所熟悉的Linux主要由三部分组成:uboot、LinuxKernel、rootfs(根文件系统)。uboot启动后会加载LinuxKernel,然后Kernel再来 查看详情

全志h3系统移植|移植主线最新uboot2023.04和kernel6.1.11到nanopineo开发板(代码片段)

文章目录环境说明uboot移植kernel移植rootfs移植测试环境说明OS:Ubuntu20.04.5LTSGCC:arm-none-linux-gnueabihf-gcc10.3.0编译器下载地址:Downloads|GNU-ADownloads–ArmDeveloperuboot移植当前最新版本v2023.04-rc2下载地址:https://github.com/u-boot/u-boot/archive/re... 查看详情

linux基于busybox移植rootfs根文件系统(代码片段)

....前言我们所熟悉的Linux主要由三部分组成:uboot、LinuxKernel、rootfs(根文件系统)。uboot启动后会加载LinuxKernel,然后Kernel再来挂载rootfs文件系统,进入文件系统后,我们才可以运行我们的应用程序,对不同的设备... 查看详情

全志tinalinux系统裁剪boot0裁剪uboot裁剪内核裁剪文件系统裁剪c库裁剪文件系统压缩(代码片段)

...核源代码2.3.3.1size工具.2.3.3.2ksize.py脚本2.3.3.3nm命令2.3.3.4kernel压缩方式.2.4文件系统裁剪.2.4.1应用程序及冗余文件裁剪2.4.2库的裁剪2.4.2.1C库的选择.2.4.2.2删除没用到的库2.4.3应用程序与库strip2.4.4文件系统压缩.3参考资料1概述编写目... 查看详情

全志tinalinux系统裁剪boot0裁剪uboot裁剪内核裁剪文件系统裁剪c库裁剪文件系统压缩(代码片段)

...核源代码2.3.3.1size工具.2.3.3.2ksize.py脚本2.3.3.3nm命令2.3.3.4kernel压缩方式.2.4文件系统裁剪.2.4.1应用程序及冗余文件裁剪2.4.2库的裁剪2.4.2.1C库的选择.2.4.2.2删除没用到的库2.4.3应用程序与库strip2.4.4文件系统压缩.3参考资料1概述编写目... 查看详情

正点原子i.mx6u-mini系统固化(烧录ubootlinuxkernel.dtb(设备树)和rootfs)(代码片段)

摘要:任何一个linux开发板都需要将uboot、linuxkernel、.dtb(设备树)和rootfs这四个文件烧写到板子上的EMMC、NAND或QSPIFlash等其他存储设备上。也就是系统烧写之后才能进行后学的编程操作。注:其实完全可以不用编译uboot,... 查看详情

嵌入式emmc中安装烧录内核kernel,设备树devicetree,根文件系统rootfs

  一般调试嵌入式开发板喜欢选择 利用TFTP传送 内核与设备树, 利用nfs加载根文件系统。uboot环境变量设置如下:  bootargs=root=/dev/nfsrwnfsroot=192.168.1.4:/exports/rfsip=192.168.1.200video=HDMI-A-2:1280x800  Bootcmd tftp0x480800 查看详情

基于ubuntubase制作rootfs(代码片段)

前言BananaPi的wiki上只提供了uboot和kernel的制作方法(包含在BSP中),没有提供rootfs的制作方法。我从RK3399制作rootfs的方法中借鉴经验,制作了BananaPi的rootfs(基于Ubuntu16.04)。UbuntuBase介绍wikiUbuntuBaseisaminimalro... 查看详情

0.视频监控系统架构设计

...上网(3)搭建局域网(4)搭建nfs服务器、tftp服务器(5)将uboot、kernel、rootfs镜像文件下载到开发板中(6)移植MPP,ORTP库和WiFi库(7)编写应用程序实现RTP/RTCP传输视频流,实现有线传输和无线传输0.2、架构搭建该系统中主控CPU采用HI3518EV200作 查看详情

最新qt4.8+kernel_3.2.5+uboot_2010.06+tslib移植成功-问题小结

2012-02-1921:34:13都是从源码下载然后自己修改,使用与TQ2440,之前uboot其实已经完成了。但是yaffs2没带起来。现在回头看来是很简单的了。bootargs参数中我设置成了ramdisk但是无法挂载yaffs2啦。修改了下就可以了。安装配置QT4.8到是... 查看详情

[uboot]uboot启动kernel篇——bootm跳转到kernel的流程

一、bootm说明bootm这个命令用于启动一个操作系统映像。它会从映像文件的头部取得一些信息,这些信息包括:映像文件的基于的cpu架构、其操作系统类型、映像的类型、压缩方式、映像文件在内存中的加载地址、映像文件运行... 查看详情

从零开始在海思芯片上部署ubootkernelrootfsmpp

...片的开发板和海思的SDK开发包,在裸机上部署uboot、kernel、rootfs、mpp的过程,其中不涉及uboot、kernel、rootfs、mpp的细节,主要是介绍如何使用开发包快速的将海思芯片跑起来。(这里的裸机是指海思芯片就是出厂的状态&... 查看详情

嵌入式uboot引导kernel,kernel引导fs

...自:http://www.cnblogs.com/lidabo/p/5383934.html#36396331、uboot引导kernel:u-boot中有个bootm命令,它可以引导内存中的应用程序映像(Kernel),bootm命令对应common/cmd_bootm.c中的do_bootm()函数,此函数实现下面几个功能:1)读flash中的内核映像... 查看详情

如何通过uboot烧写rootfs.img到nand

...bin在你电脑的D盘根目录下。  1.speed12000//设置TCK为12M,下载程序时会很快  2.loadbind:\u-boot.bin0x30000000  注意:0x30000000是你想要下载u-boot.bin到开发板的内存地址,内存地址根据不同的开发板设定不同,因为本文中使用的... 查看详情