ARM:系统移植2

2023-05-16

【1】u-boot启动程序
1、获取uboot源码渠道
1)u-boot官方:https://ftp.denx.de/pub/u-boot/
2)开发板厂家
3)芯片厂家
4)主管领导(推荐)
官网的源码基本不支持此处理器

【2】uboot版本选择
*1. 芯片厂家提供哪个版本就直接用哪个版本
2. 不选最新 --》 不稳定,资料较少
3. 不选太旧 --》 不支持硬件平台
4. 不选择测试版(后缀为rc),选择稳定版

【3】移植uboot源码
1、拷贝源码到ubuntu中,并解压缩
2、进入uboot源码目录
3、修改Makefile配置交叉编译工具链
1)打开Makefile,找到:

198 ifeq ($(HOSTARCH),$(ARCH))
199 CROSS_COMPILE ?=                
200 endif
# 修改为:
198 ifeq (arm,arm)
199 CROSS_COMPILE ?= arm-none-linux-gnueabi-
200 endif

4、执行:make distclean # 只在第一次编译时执行一次
5、make fs6818_config
打印以下信息表示配置成功:
Configuring for fs6818 board…
6、执行:make
打印以下信息表示编译成功:
NSIH : 188 line processed.
NSIH : 512 bytes generated.
Generate destination file: ubootpak.bin

【4】1. 开发阶段系统部署方式 (驱动开发)
uboot :在 EMMC/SD卡中
uImage :使用tftp下载到内存中
rootfs :使用nfs网络文件系统的方式进行挂载
2. 产品阶段系统部署方式(项目完成)
uboot :在EMMC/SD卡中
uImage :在EMMC/SD卡中
ramdisk.img :在EMMC/SD卡中

【5】开发阶段系统部署方式
1、启动uboot进入uboot的交互界面
2、先将uImage镜像文件拷贝到tftpboot目录下
3、下载内核镜像uImage到内存中
tftp 0x48000000 uImage
4、设置自启动参数bootargs
uboot环境变量中的bootargs变量是一个自启动参数,
linux内核启动时,会uboot环境变量的分区读取bootargs变量的值。
(只需要设置一次)

ubuntu系统是32位:
setenv bootargs root=/dev/nfs nfsroot=192.168.1.250:/home/linux/nfs/rootfs rw console=/dev/ttySAC0,115200 init=/linuxrc ip=192.168.2.222
saveenv 
ubuntu系统是16.04 64位:
setenv bootargs root=/dev/nfs nfsroot=192.168.1.250:/home/linux/nfs/rootfs v4,tcp rw console=/dev/ttySAC0,115200 init=/linuxrc ip=192.168.2.222
ubuntu系统是18.04以上 64位:
setenv bootargs root=/dev/nfs nfsroot=192.168.1.250:/home/linux/nfs/rootfs v4,tcp rw console=/dev/ttySAC0,115200 init=/linuxrc ip=192.168.2.222
ubuntu系统是18.04以上版本需要修改ubuntu中的配置文件:
参考文档:https://www.jianshu.com/p/10e3245f15f3?tdsourcetag=s_pctim_aiomsg

root=/dev/nfs:根文件系统的类型是nfs
nfsroot=192.168.2.250:/home/linux/nfs/rootfs: 根文件系统的路径,改成自己的ubuntuIP地址和根文件系统的路径
rw:对根文件系统具有可读可写的权限
console=/dev/ttySAC0,115200:开发板使用的是串口0,波特率是115200
init=/linuxrc:内核启动之后执行的1号进程
ip=192.168.2.222:开发板的IP地址
bootargs:告诉内核从哪里挂载根文件系统的

5、启动linux内核
bootm 0x48000000
bootm:用于启动linux内核的命令
6、总结:根文件系统挂载不成功的原因
1)检查nfs安装和配置是否正确
2)重启nfs服务
sudo service nfs-kernel-server restart
3)检查bootargs参数设置是否正确

7、设置uboot自启动的方式启动linux系统

setenv bootcmd tftp 0x48000000 uImage\;bootm 0x48000000
saveenv
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ARM:系统移植2 的相关文章

  • 【deepin】安装x11vnc和xrdp,使用windows远程deepin

    一 环境准备 1 已安装deepin xff08 虚拟机或物理机 xff0c 安装教程自行查询 xff0c 很简单 xff09 xff0c 此处用的社区版deepin20 1做测试 xff08 目前已更新到20 2 xff09 2 启用ro
  • 【Python】使用nexus搭建使用pip仓库

    搭建环境 1 安装nexus3 参考 xff1a Maven 使用nexus搭建maven私有仓库 2 创建Blob Stores Name xff1a pypi Path xff1a 选择存储路径 3 创建Repositories代理 点
  • 【前端】使用nexus搭建本地npm仓库

    搭建环境 1 创建Blob Stores Name xff1a npm 2 创建Repository 创建npm hosted xff0c 填写Blob store xff1a npm 创建npm proxy xff0c 填写Blob st
  • 【Docker】docker指定mac地址启动

    1 使用命令 mac address 61 ae ac ae 71 1c 2c 2 启动示例 docker run d restart 61 always mac address 61 ae ac ae 71 1c 2c name redi
  • 【ICE学习】IceBox管理服务(C#)

    前提条件 xff1a 已安装VS2012和ICE3 5 1 xff0c ICE安装包 xff1a https download csdn net download xmzmqx 12928570 安装搭建环境比较简单 xff0c 请自行百度
  • 1.4编程基础之逻辑表达式与条件分支

    01 判断数正负 总时间限制 1000ms 内存限制 65536kB 描述 给定一个整数N xff0c 判断其正负 输入 一个整数N 109 lt 61 N lt 61 109 输出 如果N gt 0 输出positive 如果N 61 0
  • ubuntu kylin 14.04 中文切换到英文

    1 修改 etc default locale文件 LANG 61 34 en US UTF 8 34 LANGUAGE 61 34 en US en 34 2 修改 etc environment文件 LANG 61 34 en US U
  • 结构体嵌套与结构体指针

    struct和typedef struct 首先是结构体的定义格式 分三块来讲述 xff1a 1 首先 xff1a 注意在C和C 43 43 里不同 在C中定义一个结构体类型要用typedef typedef struct Student
  • python源设置及查看

    记录一下 python 设置源及查看方法 xff1a span class token comment 查看设置 span python m pip config list span class token comment 设置源 span
  • linux环境C++执行bash脚本

    所需头文件 xff1a include lt stdio h gt 例如 xff0c 希望执行脚本 mkdir testDir C 43 43 Code xff1a FILE fp 61 popen 34 mkdir testDir 34
  • Visual Studio 远程调试设置

    VisualStudio远程调试很方便 xff0c 设置也非常简单 远程调试器安装 安装VisualStudio时默认就会安装远程调试器 xff0c 所以一般无需单独安装 被连接方设置 被连接方需要打开远程调试器 xff0c 它位于目录Re
  • 【windows11系统进行ubuntu系统安装详细步骤】

    windows11系统进行ubuntu系统安装详细步骤 2022年新购入一台win11台式电脑 xff0c 进行python的学习经历 xff0c 教程里边要求安装linux系统 xff0c 所以从网上搜索如何安装ubuntu系统 xff0
  • Win7远程控制fedora ——通过xrdp

    原文地址 http blog sohu com s MTU5MTY3OTE1 302888160 html 最近要分析RDP协议的相关东西 xff0c 然后需要抓包 xff0c 实验室空着的电脑只有Fedora系统了 xff0c 就找了一下
  • 解决Win10/11 WSL 子系统 WslRegisterDistribution failed with error: 0x800701bc 错误

    原因 xff1a wsl1升级到wsl2之后 xff0c 内核却没有升级 xff0c 所以会出现这种错误提示 xff01 解决方法 xff1a 1 下载最新的wsl安装包 2 安装包下载后 xff0c 直接运行安装即可 xff01 3 下载
  • 分布式事务之Seata AT 事务

    1 Seata介绍 Seata 是一款开源的分布式事务解决方案 xff0c 致力于提供高性能和简单易用的分布式事务服务 Seata 将为用户提供了 AT TCC SAGA 和 XA 事务模式 xff0c 为用户打造一站式的分布式解决方案 1
  • Vue引用Element-UI时,组件无效果解决方案

    问题 xff1a Vue在使用Element UI组件的时候 xff0c 已经安装好依赖 span class token operator gt span npm install element span class token oper
  • C语言:编译成可执行程序的步骤

    1 预处理 xff08 头文件的展开 xff0c 宏的替换 ifdef else endif xff09 gcc E test c o test i 2 编译 xff08 生成汇编文件 xff0c 对词法和语法进行检查 xff09 gcc
  • 服务器蓝屏的原因及解决办法

    硬件故障 xff1a 1 散热问题 2 内存主板问题 3 电源问题 4 显卡问题 解决办法 xff1a 1 清理下灰尘 xff0c 风扇 xff0c 温度高会蓝屏 2 检查内存 xff0c 新机器后加的内存是不是不兼容 xff0c 拔插下内
  • 在 CentOS 8 中使用 KVM 安装 Windows 10

    在 CentOS 8 中使用 KVM 安装 Windows 10 本文地址 xff1a blog lucien ink archives 514 使用 esxi 的话总觉得有些别扭 xff1f 故尝试 KVM xff0c 本文使用 Cent
  • 树莓派初始化备忘

    树莓派初始化备忘 本文地址 xff1a blog lucien ink archives 515 最近又开始折腾树莓派了 xff0c 记录一下初始化一个树莓派需要做的一些操作 本次操作以 64 位 Raspberry Pi OS xff08

随机推荐

  • 树莓派禁用 Wi-Fi 和蓝牙

    树莓派禁用 Wi Fi 和蓝牙 本文地址 xff1a blog lucien ink archives 516 因为我的树莓派是直接通过网线连接的 xff0c 并没有启用 Wi Fi xff0c 所以在每次 SSH 连进去之后 Raspbi
  • 树莓派安装 OMV

    树莓派安装 OMV 本文地址 xff1a blog lucien ink archives 517 终究还是忍住了 xff0c 没有出手买 x86 的 NAS xff0c 选择自己折腾树莓派 xff08 因为实在是太穷了 xff09 1 初
  • 树莓派安装 docker 和 docker-compose

    树莓派安装 docker 和 docker compose 本文地址 xff1a blog lucien ink archives 518 因为总是频繁地初始化树莓派 xff0c 所以把安装 docker 的过程也记录下来 1 安装 doc
  • 打印 Go Test 的代码覆盖

    打印 Go Test 的代码覆盖 本文地址 xff1a blog lucien ink archives 520 使用方法 将这段代码复制进 zshrc 或者是 bashrc 等文件中 xff08 取决于你的命令行 xff09 xff0c
  • Typecho HTTPS 无法登陆后台

    Typecho HTTPS 无法登陆后台 本文地址 xff1a blog lucien ink archives 523 背景 因为百度云加速的 HTTPS 证书各种难用 xff0c 最近将博客的 CDN 解决方案整体迁移至 Cloud F
  • git 显示中文

    git 显示中文 本文地址 xff1a blog lucien ink archives 524 默认情况下 xff0c git 会对中文进行转译 xff0c 具体表现如下 xff1a span class token function g
  • 在 PVE 中安装 OpenWrt

    在 PVE 中安装 OpenWrt 本文地址 xff1a blog lucien ink archives 525 最近在捣腾 x86 软路由 xff0c 入门方案一般是底层采用 ESXi 或 PVE xff0c 虚拟层使用 iKuai 4
  • ARM:系统移植1

    一 系统移植的概述 1 目的 xff1a 1 软硬件可裁剪 xff1a 硬件发生变化 xff0c 软件要进行裁剪 xff0c 适配硬件 2 学习linux驱动的开发 xff0c 前提开发板上需要运行linux系统 移植linux内核系统到开
  • hdu 3700 cat

    Cat Time Limit 2000 1000 MS Java Others Memory Limit 32768 32768 K Java Others Total Submission s 181 Accepted Submissio
  • OpenWrt 安装中文语言包

    OpenWrt 安装中文语言包 本文地址 xff1a blog lucien ink archives 527 安装 luci i18n base zh cn 即可 xff08 这不是一篇水文 xff09
  • OpenWrt 安装 OpenClash

    OpenWrt 安装 OpenClash 本文地址 xff1a blog lucien ink archives 528 截止 2022 年 5 月 5 日 xff0c OpenWrt 的最新版本为 21 02 3 xff0c OpenCl
  • OpenWrt 添加自定义 Service

    OpenWrt 添加自定义 Service 本文地址 xff1a blog lucien ink archives 530 span class token shebang important bin sh etc rc common sp
  • PVE 虚拟机心跳检测并重启

    PVE 虚拟机心跳检测并重启 本文地址 xff1a blog lucien ink archives 531 不知为何 xff0c PVE 中的 OpenWrt 时不时会宕机 xff0c 这是背景 秉承着能用就行的思想 xff0c 写了一个
  • WSL2 安装、配置 Cuda、pytorch 记录

    WSL2 安装 配置 Cuda pytorch 记录 本文地址 xff1a blog lucien ink archives 532 最近整了张矿卡 xff0c 为了这盘醋 xff0c 包了盘饺子 虽然我已经预料到买前深度学习 xff0c
  • Windows 删除恢复分区

    Windows 删除恢复分区 本文地址 xff1a blog lucien ink archives 533 目前不论是 Windows 10 还是 Windows 11 xff0c 在安装完成后在 C 盘的后面都会有一个恢复分区 xff0
  • Debian 下 CUDA 生产环境配置笔记

    最近整了张 Tesla P4 xff0c 由于是半高卡 xff0c 索性就直接将其塞进了我的 NAS 里 xff0c 试图将原来用 onnx 跑在 CPU 上的模型迁移至 GPU 上 xff0c 遇到了些许问题 xff0c 在此记录下 本文
  • OpenWRT 扩容

    本文地址 xff1a blog lucien ink archives 535 官网原生的 overlay 只有 100M xff0c 不够用 本文只讨论新安装的情形 xff0c 已安装扩容的场景在本文不涉及 步骤 假设从官网下载的文件名为
  • PVE 下解决 iKuai 断流、重启问题

    本文地址 xff1a blog lucien ink archives 536 0 前言 懒得看过程可直接移步第 2 部分 之前入手了 N5105 43 i225 V xff0c 收到后装了 PVE 7 2 作为底层系统 xff0c 虚拟化
  • OpenWRT 安装 PassWall

    本文地址 xff1a blog lucien ink archives 537 访问 OpenWRT Download Server packges xff0c 找到自己的架构 xff0c 以 x86 64 为例 xff1a 在 etc o
  • ARM:系统移植2

    1 u boot启动程序 1 获取uboot源码渠道 1 xff09 u boot官方 xff1a https ftp denx de pub u boot 2 xff09 开发板厂家 3 xff09 芯片厂家 4 xff09 主管领导 x