Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3791831
  • 博文数量: 880
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 6155
  • 用 户 组: 普通用户
  • 注册时间: 2016-11-11 09:12
个人简介

To be a better coder

文章分类

全部博文(880)

文章存档

2022年(5)

2021年(60)

2020年(175)

2019年(207)

2018年(210)

2017年(142)

2016年(81)

分类: LINUX

2019-12-26 18:16:32

https://blog.csdn.net/zjshui/article/details/47324747

在uboot里烧写系统




不是常见的iso镜像格式的,而且好像也不能在U盘上引导安装

烧录软件烧录到卡

arm架构服务器缺陷:性能,扩展能力,操作系统兼容性,软件开发的方便性及可使用工具的多样性,功耗

ARM系统几乎都采用Linux的操作系统,而且几乎所有的硬件系统都要单独构建自己的系统,与其他系统不能兼容,这也导致其应用软件不能方便移植,这一点一直严重制约了ARM系统的发展和应用。


https://blog.csdn.net/linsheng_111/article/details/82996347

ISO中提取出centos 7.5.1804文件系统的方法,方便使用uboot的用户可以使用centos7.5.1804。

下载centos7.51804的安装包CentOS-7-aarch64-Everything-1804.iso或CentOS-7-aarch64-Minimal-1804.iso均可,网址:,两者下一个即可,建议下载CentOS-7-aarch64-Minimal-1804.iso,体积更小下载更方便。

mount CentOS-7-aarch64-Minimal-1804.iso或CentOS-7-aarch64-Everything-1804.iso后提取镜像内部文件:LiveOS/squashfs.img,此文件实际上即是centos的rootfs文件,但是不能直接使用。继续将squashfs.img mount起来,然后进入mount的路径继续mount 文件LiveOS/rootfs.img,然后即可看到centos的整个内部文件系统了,如下图:

如果仅复制这些文件到根系统,通过uboot加载启动,你会发现系统根本无法启动,这是因为此rootfs默认启动方式为anaconda启动,uboot引导进入anaconda模式后会直接卡死。复制目录下的所有文件到根系统目录,删除

/etc/systemd/system/default.target

建立软连接

ln -s /usr/lib/systemd/system/multi-user.target etc/systemd/system/default.target

引导系统启动后进入multi-user模式。此时即可进入到centos系统,用户root,密码无,此时centos为纯净系统,除了基本命令外不带其他任何第三方命令,包括passwd、sudo、openssh、telnet、net-tools等等均没有,且yum命令报错找不到import yummain模块,无法使用。

复制CentOS-7-aarch64-Minimal-1804.iso或CentOS-7-aarch64-Everything-1804.iso中,Packages目录与yum相关的四个rmp包

yum-3.4.3-158.el7.centos.noarch.rpm、

yum-metadata-parser-1.1.4-10.el7.aarch64.rpm、

yum-plugin-fastestmirror-1.1.31-45.el7.noarch.rpm

centos-release-7-5.1804.el7.centos.a.aarch64.rpm

然后启动进入centos后执行:

rpm2cpio yum-3.4.3-158.el7.centos.noarch.rpm|cpio -idumv

rpm2cpio yum-metadata-parser-1.1.4-10.el7.aarch64.rpm|cpio -idumv

rpm2cpio yum-plugin-fastestmirror-1.1.31-45.el7.noarch.rpm|cpio -idumv

rpm2cpio centos-release-7-5.1804.el7.centos.a.aarch64.rpm|cpio -idumv

修改文件/etc/yum.repos.d/CentOS-Base.repo中所有$releasever为7.5.1804

(可在vim中输入:%s/$releaseve/7.5.1804/g来全局替换)

然后yum -help,yum命令已经可以使用,通过ip addr 配置ip后,即可用yum安装基本的命令和一些第三方常用库如:passwd、sudo、openssh、telnet、net-tools等。

在uboot里烧写系统

https://blog.csdn.net/zjshui/article/details/47324747

https://blog.csdn.net/u012007928/article/details/38834501

一个嵌入式系统从软件角度来看分为三个层次:
1.引导加载程序
包括固化在固化中的boot程序(可选),和BootLoader两大部分
2.linux内核
特定于嵌入式平台的定制内核
3.文件系统
包括了系统命令和应用程序

--------------------------------------------------------------------------------
 BootLoader-->Boot Parameters-->Kernel-->Root Filesystem 
--------------------------------------------------------------------------------

为什么需要进行bootloader移植?
答:1.因为每种不同的CPU体系结构都有不同的BootLoader

uboot刷新
只要确认, cpu flash 大小,硬件配置符合要求后,就能刷。
硬件方法是,直接用 编程器,焊下来flash 烧写进去。
软件方法是, 用 tftp 或 ttl 之类的,连接上去以后,用 u-boot 的命令刷。要看你的原机u-boot 是不是支持 tftp 或 wget 和 flash  擦写。


2 不同平台的引导加载程序


2.1 PC平台Grubbootmgr


??GNU GRUB(GRand Unified Bootloader简称“GRUB”)是一个来自GNU项目的多操作系统启动程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。可用来用来引导不同系统,如windows,linux,通常用于linux,毕竟是GNU的嘛。 


??Windows也有类似的工具NTLOADERBootmgr;比如我们在机器中安装了Windows 98后,我们再安装一个Windows XP ,在机器启动的会有一个菜单让我们选择进入是进入Windows 98 还是进入Windows XP。NTLOADER就是一个多系统启动引导管理器,NTLOADER 同样也能引导Linux,只是极为麻烦罢了。Bootmgr是Boot Manager的缩写,是在Windows Vista、Windows 7、windows 8/8.1和windows 10中使用的新的启动管理器,以代替Windows NT系列操作系统(Windows XP、Windows 2003)中的启动管理器——NTLOADER。


2.2 嵌入式平台u-boot


??U-Boot,全称为Universal Boot Loader,即通用Bootloader,是遵循GPL条款的开放源代码项目。其前身是由德国DENX软件工程中心的Wolfgang Denk基于8xxROM的源码创建的PPCBOOT工程。后来整理代码结构使得非常容易增加其他类型的开发板、其他架构的CPU(原来只支持 PowerPC);增加更多的功能,比如启动Linux、下载S-Record格式的文件、通过网络启动、通过PCMCIA/CompactFLash /ATA disk/SCSI等方式启动。增加ARM架构CPU及其他更多CPU的支持后,改名为U-Boot。

  • 支持多种嵌入式操作系统内核,如Linux、NetBSD、VxWorks、QNX、RTEMS、ARTOS、LynxOS;
  • 支持多个处理器系列,如PowerPC、ARM、x86、MIPS、XScale;







阅读(6384) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~