当前位置: 首页 > news >正文

基于正点原子alpha开发板的第三篇系统移植

系统移植的三大步骤如下:

  1. =系统uboot移植====
  2. =系统linux移植====
  3. =系统rootfs制作====

一言难尽,踩了不少坑,当时只是想学习驱动开发,发现必须要将第三篇系统移植弄好才可以学习后面驱动,现将移植好的文件分享出来:
仓库:https://gitee.com/wangyoujie11/imx6u-ll-uboot-kernel-rootfs.git
在这里插入图片描述

使用如下

如果直接使用我移植好的四大组件,只需要完成以下配置

  1. 将usb线连接开发板的OTG串口,另一端连接电脑;然后另一根连接USB_TTL串口,另一端连接电脑;
  2. 检测自己的sd卡是否取下(sd卡槽不能插卡)
  3. 红色拨码开关打到USB启动
  4. 给板子上电,双击打开mfgtool2-alientek-alpha-emmc.vbs文件,提示“符合标准就可以点击start,等待烧入,可以打开串口助手查看下载信息。提示信息如下所示,说明以及将系统烧写到板子上的emmc了。

在这里插入图片描述

从emmc启动将红色拨码开关打到emmc启动,然后复位板子就可以正常进入了boot命令,先输入ls mmc 1:1查看是否是图中的信息,没问题就输入环境变量:


=>setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw=>setenv bootcmd 'mmc dev 1;fatload mmc 1:1 80800000 zImage;fatload mmc 1:1 83000000 imx6ull-alientek-emmc.dtb;bootz 80800000-83000000;'boot

在这里插入图片描述
在这里插入图片描述
从SD启动将红色拨码开关打到SD启动。首先准备工作alientek-linux和alientek-uboot和alientek-rootfs下载到本地ubuntu下解压如下:
链接:https://pan.baidu.com/s/18e-UhGz_HCEF9-Z2ADEjlg
提取码:wjwj

在这里插入图片描述

  1. 进入alientek-uboot文件下,打开终端使用./imxdownload u-boot.bin /dev/sdb(自己的sd)中
  2. 然后将SD卡插入到板子卡槽内,使用SD卡启动模式
  3. 在tftp文件下面添加如下内容(可以在alientek-linux文件中找到)
    在这里插入图片描述
  4. 将rootfs文件解压到nfs文件夹下面
    在这里插入图片描述
  5. 使用chmod 777 -R nfs 和chmod 777 -R tftpboot。给这俩个文件夹权限
  6. 开发板直连电脑搭建NFS&TFTP环境配置:https://blog.csdn.net/zzssdd2/article/details/110455413。注意:路径一定要改为自己的路径
  7. 板子从SD卡启动,然后就可以使用驱动例程来做了,在编译驱动例程的时候,需要替换官方的路径
    在这里插入图片描述
    在这里插入图片描述
  8. 确定板子的信息是
    在这里插入图片描述
 # 设置启动参数bootargs
#	nfsroot后的参数为Ubuntu的nfs文件夹路径;格式为:nfsroot=NFS服务器IP:文件系统的绝对路径.
#	ip后的参数为开发板网络信息:ip=开发板IP:服务器IP:网关,子网掩码::eth0:off. 
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.104.88:/home/wj/linux/nfs/rootfs ip=192.168.104.90:192.168.104.88:192.168.104.1:255.255.255.0::eth0:off’
# 保存
=> saveenv
Saving Environment to MMC... Writing to MMC(0)... OK
# 复位重启
=> reset

重启板子之后就会出现:
在这里插入图片描述
然后在自己的ubuntu下找到一个编译好的驱动例程,使用如下命令就可以将程序拷贝到开发板的/lib/modules/4.1.15/路径下

sudo cp chrdevbase.ko chrdevbaseApp /home/wj/linux/nfs/rootfs/lib/modules/4.1.15/ -f

至此,所有的移植就完成了,可以愉快的驱动开发了

使用02_led驱动例程测试:
在这里插入图片描述
挂载之后就行点灯操作:
在这里插入图片描述请添加图片描述

相关文章:

基于正点原子alpha开发板的第三篇系统移植

系统移植的三大步骤如下: 系统uboot移植系统linux移植系统rootfs制作 一言难尽,踩了不少坑,当时只是想学习驱动开发,发现必须要将第三篇系统移植弄好才可以学习后面驱动,现将移植好的文件分享出来: 仓库&…...

数据结构与算法设计分析——贪心算法的应用

目录 一、贪心算法的定义二、贪心算法的基本步骤三、贪心算法的性质(一)最优子结构性质(二)贪心选择性质 四、贪心算法的应用(一)哈夫曼树——哈夫曼编码(二)图的应用——求最小生成…...

Leetcode 2895. Minimum Processing Time

Leetcode 2895. Minimum Processing Time 1. 解题思路2. 代码实现 题目链接:2895. Minimum Processing Time 1. 解题思路 这一题整体上来说其实没啥难度,就是一个greedy算法,只需要想明白耗时长的任务一定要优先执行,不存在某个…...

学信息系统项目管理师第4版系列21_范围管理

1. 产品范围 1.1. 某项产品、服务或成果所具有的特征和功能 1.2. 产品范围的完成情况是根据产品需求来衡量的 1.3. “需求”是指根据特定协议或其他强制性规范,产品、服务或成果必须具备的条件或能力 2. 项目范围 2.1. 包括产品范围,是为交付具有规…...

threejs 透明贴图,模型透明,白边

问题 使用Threejs加载模型时,模型出现了上面的问题。模型边缘部分白边,或者模型出现透明问题。 原因 出现这种问题是模型制作时使用了透明贴图。threejs无法直接处理贴图。 解决 场景一 模型有多个贴图时(一个透贴和其他贴图&#xff0…...

CCF CSP认证 历年题目自练Day21

题目一 试题编号: 201909-1 试题名称: 小明种苹果 时间限制: 2.0s 内存限制: 512.0MB 题目分析(个人理解) 先看输入,第一行输入苹果的棵树n和每一次掉的苹果数m还是先如何存的问题&#xf…...

【Python_PySide2学习笔记(十六)】多行文本框QPlainTextEdit类的的基本用法

多行文本框QPlainTextEdit类的的基本用法 前言正文1、创建多行文本框2、多行文本框获取文本3、多行文本框获取选中文本4、多行文本框设置提示5、多行文本框设置文本6、多行文本框在末尾添加文本7、多行文本框在光标处插入文本8、多行文本框清空文本9、多行文本框拷贝文本到剪贴…...

linux上negix部署静态页面

1.看配置文件 进入cndf.d 这里的是配置部署项目中的文件 进入一个查看下 上面的是服务的域名,服务是http://test.fun-med.cn/#/,后面加服务名(你的前端) 2.看下页面位置 和上面的路径要匹配...

41.说说Promise自身的静态方法

41.说说Promise自身的静态方法 Promise.all (有一个失败就失败,所有的都成功就成功)Promise.race (有一个成功就成功,有一个失败就失败)Promise.allSettled (所有的异步操作执行完毕之后&#…...

通讯网关软件019——利用CommGate X2OPCUA实现OPC UA访问Oracle服务器

本文介绍利用CommGate X2OPCUA实现OPC UA访问ORACLE数据库。CommGate X2OPCUA是宁波科安网信开发的网关软件,软件可以登录到网信智汇(http://wangxinzhihui.com)下载。 【案例】如下图所示,实现上位机通过OPC UA来获取ORACLE数据库的数据。 【解决方案】…...

【机器学习】svm

参考 sklearn中SVC中的参数说明与常用函数_sklearn svc参数-CSDN博客https://blog.csdn.net/transformed/article/details/90437821 参考PYthon 教你怎么选择SVM的核函数kernel及案例分析_clfsvm.svc(kernel)-CSDN博客https://blog.csdn.net/c1z2w3456789/article/details/10…...

基于SSM+Vue的学习交流论坛的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用Vue技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…...

开发与运营:“开发”和“运营”角色有何不同和重叠?

开发和运营是促进软件系统交付的两种角色。大多数大规模构建软件的组织都会雇用这两个学科的人员。不过,开发和运维并不是完全孤立的。团队重叠并实现更高的吞吐量是很常见的。 在本文中,您将学习区分开发人员和操作人员之间的主要区别,以及它们重叠的方式。尽管有将两者结合…...

关于GD32引脚PA13、PA15、PB3、PB4配置为普通引脚的问题

关于GD32引脚PA13、PA15、PB3、PB4配置为普通引脚的问题 在实际开发中,经常会遇到引脚资源受限需要将一些具有特定功能的引脚配置为普通引脚或其他引脚功能使用的情况。 博主之前遇到过类似的情况,都正常解决了。但偶尔也会出现在配置引脚时少了一些配…...

JS-Dom转为图片,并放入pdf中进行下载

1、将dom转换为图片 这里我们使用html2canvas工具插件先将dom转为canvas元素然后canvas拥有一个方法可以将绘制出来的图形转为url然后下载即可注意:如果元素使用了渐变背景并透明的话,生成的图片可能会有点问题。我下面这个案例使用了渐变背景实现元素对…...

Python 无废话-办公自动化Excel格式美化

设置字体 在使用openpyxl 处理excel 设置格式,需要导入Font类,设置Font初始化参数,常见参数如下: 关键字参数 数据类型 描述 name 字符串 字体名称,如Calibri或Times New Roman size 整型 大小点数 bold …...

Python视频剪辑-Moviepy音频效果afx方法

随着多媒体内容在日常生活和工作中的广泛应用,音频处理成为了一个越来越重要的技能。无论是在游戏开发、音乐制作,还是在各种应用和网站中,高质量的音频处理都能极大地提升用户体验。然而音频处理看似复杂,实则不必如此。其实只需要掌握一些基础的概念和技巧,就能够完成大…...

让LLM模型输入token无限长

背景 增加LLM的输入token已经有很多的研究,但是思路无外乎:模型抽取局部特征通过上层通过模型融合预测最终解,以及这个思路的一些变种。然而这些思路其实都没能很彻底的解决无限长token问题,根据《EFFICIENT STREAMING LANGUAGE …...

RabbitMQ 介绍与 SpringBootAMQP使用

一、MQ概述 异步通信的优点: 耦合度低吞吐量提升故障隔离流量削峰 异步通信的缺点: 依赖于Broker的可靠性、安全性、吞吐能力架构复杂,业务么有明显的流程线,不方便追踪管理 什么是的MQ MQ(Message Queue&#xf…...

企业门户的必备选择,WorkPlus的定制化解决方案

在当今数字化时代,企业门户成为了企业内外沟通与协作的重要基础设施。WorkPlus作为领先的品牌,为企业提供了一站式的企业门户解决方案,旨在提升企业形象、改善内外部沟通与协作效率。本文将深入探讨WorkPlus如何通过定制化的设计,…...

后进先出(LIFO)详解

LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子&#xff08…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则&#xf…...

C++:多态机制详解

目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...

AI语音助手的Python实现

引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...