系统移植 编译uboot和linux源码及驱动配置

news2024/11/27 14:32:44

写在前面:若是有些命令执行失败,前面添加sudo后再执行

目录

写在前面:若是有些命令执行失败,前面添加sudo后再执行

uboot源码获取和编译:

Linux源码获取和编译

关于驱动配置


uboot源码获取和编译:

获取网址:Index of /pub/u-boot/

》1.下载自己想用的源码放到linux目录下(自己随意决定目录)

》2.解压文件包

作者按照自己的压缩包进行解压

sudo tar -xvf u-boot-2014.07-netok.tar.bz2 解压安装包

解压后得到此文件

》3.确认Makefile文件

在u-boot-2014.07目录下执行

sudo vi Makefile

进入Makefile文件,找到下面位置修改成自己用的编译链工具

198 ifeq (arm,arm)
199 CROSS_COMPILE ?= arm-none-linux-gnueabi- 
200 endif

》4.进行uboot编译

-》1.开发板环境设置

make <board_name>_config

注1:<board_name>为当前使用的开发板的名字

注2:执行该命令的前提是uboot源码支持该开发板

注3:该命令必须在uboot源码的顶层目录下执行

作者选择的fs6818_config,所以执行:

make fs6818_config

-》2.执行编译

make /make all (编译的时间比较长)

注1:该命令必须在uboot源码的顶层目录下执行

注2:该命令执行后在uboot源码顶层目录下生成u-boot.bin

-》3.清除编译过程中产生文件(可选操作)

make clean

make distclean

完成上述操作就拿到了我们系统移植需要的u-boot.bin

Linux源码获取和编译

获取网址:The Linux Kernel Archives

》1.下载自己想用的源码放到linux目录下(自己随意决定目录)

》2.解压文件包

作者按照自己的压缩包进行解压

sudo tar -xvf kernel-3.4.39-ok.tar.xz 解压安装包

解压后得到此文件

》3.确认Makefile文件

在源码顶目录下执行

sudo vi Makefile 进入Makefile文件

将对应位置设置为如下图所示

195 ARCH        ?= arm
196 CROSS_COMPILE   ?= arm-none-linux-gnueabi- 

》4.进行内核编译

-》1.选择硬件平台

要想确认是否支持自己硬件平台可使用下面方法

方法1:

在源码顶目录下执行

make help

得到以下信息:

fs6818_defconfig - Build for fs6818

方法2:

进入arch/arm/configs/目录

发现以下文件fs6818_defconfig ,所以PLATFORM=fs6818

支持作者使用的硬件平台执行下面命令

make fs6818_defconfig

-》2.内核编译

在源码顶目录下执行

make uImage 编译源码

注:若是编译出现下面错误

解决方法:在第一个试验,uboot源码获取中,在uboot源码下有个mkimage文件

将此文件复制到 /usr/bin下

sudo cp ./tools/mkimage /usr/bin 不可直接复制,自己根据场景决定

-》3.内核位置

/home/hq/temp/kernel-3.4.39/arch/arm/boot这是作者内核位置

完成上述操作就拿到了我们系统移植需要的uImage

关于驱动配置

执行命令:make menuconfig

实际开发中随内核进行菜单选项的配置,都是使用make menuconfig命令

执行不成功原因:

问题1:

第一次使用make menuconfig 需要安装图形化界面的工具

配置之前需要安装图形图(make meuconfig):

sudo apt-get install libncurses5-dev

问题2:

出现以下错误:

cripts/kconfig/mconf Kconfig

Your display is too small to run Menuconfig!

It must be at least 19 lines by 80 columns.

make[1]: *** [menuconfig] Error 1

make: *** [menuconfig] Error 2

原因:终端的字体太大,缩小一点

基础操作

esc键是退出

enter键是进入

空格键是切换选项状态

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/650927.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

驾驶安全、便捷,尽在车载Notification开发的掌握

Notification 概述 通知&#xff08;Notification&#xff09;是移动应用中常用的一种交互方式&#xff0c;用于向用户展示重要的信息、提醒事件或提供即时反馈等。通知可以以弹出窗口、图标或声音等形式呈现给用户。 以下是关于通知的一些基本概念和要点&#xff1a; 通知栏…

React基础教程(三):JSX语法

React基础教程(三)&#xff1a;JSX语法 1、JSX简介 全称&#xff1a;JavaScript XMLreact定义的一种类似于XML的JS扩展语法&#xff1a;JSXML本质是React.createElement(component, props, ...children)方法的语法糖作用&#xff1a;用来简化创建虚拟DOM&#xff08;注意&…

【数据库三】MySQL事务

MySQL事务 1.事务的概念2.事务的ACID特点3.知识点总结 1.事务的概念 事务是一种机制、一个操作序列&#xff0c;包含了一组数据库操作命令&#xff0c;并且把所有的命令作为一个整体&#xff0c;一起向系统提交或撤销操作请求&#xff0c;即这一组数据库命令要么都执行&#x…

JAVA0615_2

04JDK的下载和安装 05常用dos命令

golang-gin-mysql转gorm-struct--gen-model

背景:python-django项目用go-gin重构&#xff0c;数据库已存在&#xff0c;gin中使用gorm 所以需要工具将mysql数据库中的表结构转到orm的model中。 前提&#xff1a;因为国内访问github需要稳定的代理 Goproxy.cn 推荐这个 1.在项目路径中下载gen-model模块 go get -u git…

测试员怎么克服职业惯性获得成功?

长期从事质量控制的测试员&#xff0c;容易患上职业病——挑毛病、谈风险&#xff0c;踩刹车&#xff0c;大部分时候说的和做的都对。正所谓“手里拿个锤子&#xff0c;看什么都是钉子”。但事情成功者往往是那些有想法&#xff0c;有冲劲的乐观主义者&#xff0c;正所谓“悲观…

使用docker快速搭建redis哨兵模式

说明 本文主要参考&#xff1a; https://www.cnblogs.com/coderaniu/p/15352323.html https://developer.aliyun.com/article/892805 但是这两篇博客均缺失部分关键性细节&#xff0c;所以重新撰文。读者可以结合本文和上述文章一起阅读。 安装步骤 安装docker和docker-co…

【机器学习】——深度学习与神经网络

目录 引入 一、神经网络及其主要算法 1、前馈神经网络 2、感知器 3、三层前馈网络&#xff08;多层感知器MLP&#xff09; 4、反向传播算法 二、深度学习 1、自编码算法AutorEncoder 2、自组织编码深度网络 ①栈式AutorEncoder自动编码器 ②Sparse Coding稀疏编码 …

【Java基础学习打卡10】JDK下载与安装

目录 前言一、JDK下载1.JDK官网2.版本说明3.JDK 11下载 二、JDK安装1.JDK安装2.JDK安装目录介绍 总结 前言 本文主要介绍JDK 11 如何从官网下载&#xff0c;及如何在 Windows 11 系统安装&#xff0c;下载与安装很简单&#xff0c;主要是有少许的细节需要说明。 一、JDK下载 …

AI实战营第二期 第九节 《底层视觉与MMEditing》——笔记10

文章目录 AI实战营第二期 第九节 《底层视觉与MMEditing》什么是超分辨率图像分辨率的目标应用方向超分的类型单图超分的解决思路 深度学习时代的超分辨率算法SRCNNFast SRCNNSRResNet 感知损失 VS. 均方误差均方误差感知损失 对抗生成网络GAN应用于超分辨率如何学习生成器网络…

flutter:数据持久化

简单的数据持久化 保存数据到本地磁盘是应用程序常用功能之一&#xff0c;比如保存用户登录信息、用户配置信息等。而保存这些信息通常使用 shared_preferences&#xff0c;它保存数据的形式为 Key-Value&#xff08;键值对&#xff09;&#xff0c;支持 Android 和 iOS。shar…

1. linux系统下在QT中配置OPenCV开发环境

1. 说明: 在Linux系统下配置OpenCV的开发环境,需要在官网上下载源码,并使用CMake工具对源码进行编译,与在Windows系统中配置相比复杂许多,本文linux系统为linux minit,opencv是最新版本4.7.0,不过对于linux和opencv的版本要求行不高。 效果展示: 2. 配置步骤: 2.1 …

深度学习(22)——YOLO系列

深度学习&#xff08;22&#xff09;——YOLO系列 文章目录 深度学习&#xff08;22&#xff09;——YOLO系列1. 物体检测方法的两种类型2. YOLO-v12.1 网络结构2.2 loss 函数2.3 NMS(非极大值抑制)2. 4 优缺点 3. YOLO v23. 1 相较于v1改进点3. 2 网络结构3.3 感受野3.4 特征融…

使用无代码工具开发一款问卷调查小程序

目录 1 创建项目2 创建页面3 创建后台4 前端调用后端5 预览总结 自2017年小程序概念提出以来&#xff0c;越来越多的场景已经可以在小程序上实现。比如我们在线预约、点餐、查询各类信息、购物等等。小程序的特点是不需要预先按照应用程序&#xff0c;使用时打开&#xff0c;不…

dpdk21.11 添加igb_uio模块

文章目录 前言igb_uio模块下载链接编译编译方式1&#xff1a;make编译方式2&#xff1a;mesonninja1. 解压&#xff0c;复制 dpdk-kmods/linux/igb_uio/ 到 dpdk-stable-21.11.4/kernel/linux/ 目录下2. vi dpdk-stable-21.11.4/kernel/linux/meson.build 4创建文件 meson.buil…

大模型入门(五)—— 基于peft微调ChatGLM模型

ChatGLM 是基于 General Language Model (GLM) 架构&#xff0c;针对中文问答和对话进行了优化。经过中英双语训练&#xff0c;辅以监督微调、反馈自助、人类反馈强化学习等技术&#xff0c;ChatGLM因为是中文大模型&#xff0c;在中文任务的表现要优于LLaMa&#xff0c;我在一…

ARP协议,带你了解ARP协议

目录 一、ARP协议概述 二、使用ARP的四种情况 三、ARP缓存 四、ARP的工作原理 1. 地址解析 2. 地址缓存 五、ARP报文格式 1. ARP请求报文格式 2. ARP响应报文格式 六、免费ARP 七、代理ARP 一、ARP协议概述 ARP&#xff08;Address Resolution Protocol&#xff09;地…

1、产品经理的宏观定义

什么是产品经理&#xff1f;为了引出来定义&#xff0c;我们来看一段对话&#xff0c;这个对话方式中的场景就是小明上了一年班&#xff0c;回家过年了&#xff0c;那亲戚可能就会会问小明在外面是做什么的&#xff1f; 亲戚&#xff1a;小明&#xff0c;你在外面是做什么的啊&…

# SIG Mesh协议学习

SIG Mesh协议学习 1. 简介 Bluetooth SIG组织在2017年7月17日发布了蓝牙Mesh标准. 蓝牙Mesh不同于传统Bluetooth Low Energy(BLE)协议的1对1, 1对多的通信方式, 它实现了多对多的通信. 这使得mesh网络中的各个节点之间可以相互通信. 蓝牙Mesh协议建立在BLE的物理层和链路层之…

Spark大数据处理学习笔记(3.8.2) Spark RDD典型案例-利用RDD统计每日新增用户

该文章主要为完成实训任务&#xff0c;详细实现过程及结果见【http://t.csdn.cn/Twpwe】 文章目录 一、任务目标二、准备工作2.1 在本地创建用户文件2.2 将用户文件上传到HDFS指定位置 三、完成任务3.1 在Spark Shell里完成任务3.1.1 读取文件&#xff0c;得到RDD3.1.2 倒排&am…