树莓派4 嵌入式Linux开发过程详解 1.概述 2.开发环境概述 2.1 安装虚拟机环境 2.2 树莓派开发环境搭建 3.交叉编译工具的安装与uboot的编译 3.1 安装arm 64位交叉编译环境...5.1 uboot中设置启动项 5.2 插入SD卡挂在到虚拟机上 5.3 修改文件脚本 6.小结 1.概述 在这篇文章中,将会通过树莓派4的Linux的启动过程,描述如何进行嵌入式Linux系统开发的思路...通过树莓派4B的启动流程,看到一个Linux启动过程,同时,通过一步一步搭建一个完整的树莓派嵌入式Linux开发环境,来指导分析各部分的开发过程。...nfs 安装nfs目的是一旦开发Linux上的应用程序时,不希望频繁的传输文件,每次在宿主机上编译好应用程序后,直接拷贝到本地目录,嵌入式平台上的Linux可以通过nfs文件系统访问到宿主机上刚编译好的程序...整个嵌入式Linux开发和环境搭建过程都可以在树莓派4b上很好的进行测试,万变不离其宗,掌握了嵌入式开发的流程和工具,做应用和做驱动开发都十分的方便和高效。
文章目录 Linux嵌入式开发——文件系统结构 一、根目录“/” 二、Ubuntu文件系统结构 三、绝对路径和相对路径 Linux嵌入式开发——文件系统结构 一、根目录“/” Linux下“/”就是根目录...gurb是一个来自GNU项目的多操作系统启动程序。 /cdrom 关于光盘的一些信息。 /dev 设备驱动文件 /etc 存放一些系统配置文件,比如用户账号和密码文件,各种服务的起始地址。.../home 系统默认的用户主文件夹,一般创建用户账户的时候,默认的用户主文件夹都会放到此目录下。.../proc 虚拟文件系统,数据放置到内存中,存放系统运行信息。 /root root用户目录,也就是系统管理员目录。 /run 跟运行有关的一些信息。...sbin下面的一般是系统开机过程中所需要的命令。 /snap 引入的一种包管理工具。 /srv 服务相关目录。比如网络服务。 /sys 记录内核信息,虚拟文件系统。
嵌入式Linux开发主要有四种方式:裸机开发、SDK开发、驱动开发和应用开发。 1、裸机开发 裸机开发通常指在没有操作系统支持的环境中直接在硬件上运行程序的开发。...在嵌入式Linux SDK开发中,开发者可以利用Linux系统的强大功能和灵活性,同时针对特定的硬件平台进行优化和调整,以满足嵌入式设备的特定需求。...3、驱动开发 驱动开发是指为嵌入式Linux系统编写设备驱动程序的过程。在这个过程中,开发者需要深入理解Linux内核架构,学会如何在Linux内核环境下编写、调试和维护设备驱动程序。...这3类驱动程序共同构成了Linux系统与各类硬件设备交互的基础,确保了系统的多功能性和高效性。它们的实现通常涉及到深入的操作系统内核知识,硬件通信协议,以及驱动程序开发的技巧。...4、应用开发 Linux 应用开发是指在 Linux 操作系统上开发应用程序的过程。这包括创建、编写、调试和优化应用程序,以在 Linux 环境中运行。
分区,文件系统格式化、文件系统解压拷贝过程,在LCD屏上还有执行的进度条。...下面分别介绍两种挂载方式的执行过程。 2....根文件系统映像制作需要用到make_ext4fs命令,这个工具在光盘里也有,是一个压缩包,解压到PC机Linux系统下就可以使用。...,设置uboot从刚才解压文件系统的分区启动,重启开发板,最后完成挂载。...以下命令是挂载NFS文件系统之后,进入到Linux命令行执行。
前言 如果大家做过linux系统移植、或者Linux相关开发,对根文件系统这个名词应该很熟悉,在搭建嵌入式开发环境过程中,移植bootloader,移植kernel制作根文件系统是必须要做3件事情。...Linux启动时,第一个必须挂载的是根文件系统;若系统不能从指定设备上挂载根文件系统,则系统会出错而退出启动。成功之后可以自动或手动挂载其他的文件系统。因此,一个系统中可以同时存在不同的文件系统。...根文件系统制作 制作根文件系统,需要用到Busybox工具包。 BusyBox 是一个集成了三百多个最常用Linux命令和工具的软件。...有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令,也包含了 Linux 系统的自带的shell。...我这里用到的版本是1.23.2,下载之后,解压busybox-1.23.2.tar.bz2 到Linux系统指定目录下。
前言 根文件系统是Linux内核启动之后挂载的第一个文件系统,上篇文章里已经介绍过,如何使用busybox来制作根文件系统。...根文件系统支持从网络挂载和本地挂载两种方式: (1)如果是采用网络挂载就将路径设置为/dev/nfs,NFS是Linux下常用的网络文件系统,这种方式挂载一般是在系统开发阶段,方便修改调试代码,也就是将根文件系统放在...PC机上,嵌入式开发板通过网络到PC机进行访问。...要进行NFS网络挂载,需要先把PC机的网络与开发板的网络设置好,保证在同一个局域网内。当前的redhat6.3系统是跑在VM虚拟机里,接下来就对网络进行配置。...Linux命令行:
在Linux系统中,系统文件和目录按照一定的约定被组织和分配到不同的位置。这些文件和目录通常用于存储系统配置、程序文件、库文件等。.../dev:包含设备文件,Linux中一切皆文件,这里存放了与设备通信的特殊文件,如硬盘分区(/dev/sda1)、键盘(/dev/input/eventX)等。...但是我们在使用SoC开发时,看到的系统文件目录和桌面系统(以Ubuntu为例)中并不一样,这取决于嵌入式系统的特定需求和设计。...以下是导致SoC中文件系统目录结构与Ubuntu系统不同的一些可能原因: 定制化需求 SoC通常用于嵌入式设备,这些设备可能有自己的定制需求,例如嵌入式系统可能只需要支持特定的功能或服务,因此文件系统的结构可能会根据这些需求进行定制...引导和启动过程 嵌入式系统的引导和启动过程可能与桌面系统不同,可能会使用不同的引导加载程序(Bootloader)和启动方式,因此文件系统的布局可能会根据这些差异进行调整。
📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷
文章目录 Linux嵌入式开发——文件权限 文件权限 文件权限管理 修改文件权限 修改文件所属用户 拥有者 拥有者组 Linux嵌入式开发——文件权限 文件权限 文件权限是指不同的用户或用户组对某个文件拥有的权限
文章目录 Linux嵌入式开发——连接文件 ln命令 硬连接 符号连接(软连接) Linux嵌入式开发——连接文件 Linux有两种连接文件:第一种叫符号连接也称为软连接,第二种就是硬链接。...而硬链接则通过文件系统的 inode 连接来产生新文件名,而不是产生新文件,就相当于文件的分身,共用同一个ID。或者说,是共用一块内存区域的对象。...但不接受任何参数 -d, -F, --directory # 允许超级用户尝试创建指向目录的硬链接 # (注意:此操作可能因系统限制而失败...硬连接不能跨文件系统。 硬连接不能连接到目录。 因为以上这些限制,所以硬链接其实不常用。我们先来看一下每一条知识点的具体含义吧!...可以跨文件系统。 删除源文件以后,软连接文件也就“打不开了”。 符号连接文件通过->来指示具体的连接文件。 符号连接要使用绝对路径,否则连接会出问题。
有时程序对系统时间有要求,这时需要设置系统的时区以及时间了。 1....新闻联播一般说北京时间,但是linux系统里面时区信息存储的是Shanghai,这里面没有北京地区。 3. 时间配置文件 /etc/localtime ,该文件表示系统当前使用的时间信息。 4....修改系统时区时间 ①rm -f /etc/localtime ②ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 注:我使用的嵌入式系统中没有...③推测:可将ubuntu桌面系统中的 /usr/share/zoneinfo/Asia/Shanghai文件重命名为localtime 放置到嵌入式系统/etc目录下,未实际测试。...ln -sf 是文件的软连接,还可以再了解linux 共享库的软连接。 注:嵌入式系统中不支持该指令tzselect ④reboot 后生效 ? 5. 修改后效果 多了8个小时。 ? 6.
文章目录 Linux嵌入式开发——shell脚本 一、shell脚本基本原则 二、shell脚本语法 2.1、编写shell脚本 2.2、交互式shell脚本 2.3、shell脚本的数值计算 2.4、...判断符 2.6、默认变量 三、shell脚本条件判断 if then if then else case 四、shell脚本函数 不带参数 带参数 五、shell循环 while until for Linux...嵌入式开发——shell脚本 经过我们前面的学习,我们已经能够在终端中输入命令来完成一些常用的操作,但是都是一条一条地输入命令,如果需要执行的命令一旦多起来,就会很麻烦。...shell脚本提供数组、循环、条件判断的等功能,一般是Linux运维或者系统管理员要掌握的,但作为嵌入式开发人员,我们只需要掌握shell脚本最基础的部分即可。
文章目录 Linux嵌入式开发——C编程 一、编写C程序 1.1、设置vim编辑器 1.2、编写C程序 二、编译C程序 三、make工具和Makefile文件 3.1、编写C程序 C文件 H文件 3.2...、不使用make工具 3.3、使用make工具和Makefile文件编译 Linux嵌入式开发——C编程 一、编写C程序 我们目前就是使用VIM编辑器编写程序,当然,也可以使用vscode,但是vscode...-O2:比-O 更幅度更大的优化,生成的可执行效率更高,但是整个编译过程会很慢。...\r\n); | ^ 三、make工具和Makefile文件 我们在编程过程中,经常出现许多的.C文件和.H文件,如果还是像上面一样
2.2.4 配置网络 重点来了,以前我们在VMware中使用桥接,这需要保证Windows、Ubuntu、开发板三者互通,而很多人的电脑有多个网卡,这涉及的网络设置太复杂了。...2.2.4.2 设置NAT网络的端口映射 在NAT网络下,外面的设备无法看到Ubuntu,要想开发板能访问到Ubuntu,需要进行端口映射。 先关闭Ubuntu,再关闭VMware,才能设置。...这样,开发板访问Windows的这些端口时,才可以访问到Ubuntu。 先使用管理员身份运行“虚拟网络编辑器”,如下图所示: ?...2.2.4.3 修改Ubuntu的mountd端口 在NAT网络下,要想开发板能通过NFS挂载Ubuntu,需要修改mountd端口为9999 如果你还不会用vi命令,可以在Ubuntu桌面启动终端,
文章目录 Shell命令 目录信息查看——ls 目录切换——cd 当前路径显示——pwd 系统信息查看——uname 清理屏幕——clear 显示文件内容——cat 切换用户身份——sudo 切换用户—...当前路径显示——pwd 就是简单的查看当前路径 # 根目录 cd / # 返回上一级 cd ../ 系统信息查看——uname 就是查看我们目前是哪个系统。...poweroff 系统帮助——man 这个用来查看帮助,可以用来看一些详细信息。...gedit a.c 当前的系统进程查看——ps 这个用来查看系统进程,在嵌入式开发比较常用。...top 文件类型查看——file 就是用来查看文件类型,在嵌入式用的蛮多。 file a.c
搭建开发环境的主要工作是:安装虚拟机、安装Windows开发工具。 学习嵌入式Linux时,各种程序比如Linux内核、你编写的驱动、应用,都需要在Linux机器下编译。...即使你的Windows 10是专业版的,在使用Docker的过程中也可能碰到HyperV服务不能启动的问题,这时候就需要升级Windows,这耗时1、2小时。...无论是VMware还是Docker,都可以满足嵌入式Linux的学习与工作。...2.1.2 安装Windows软件 选择、安装好虚拟机后,就要在Windows安装各种开发软件了。...注意:本文所用系统是Windows 10。
📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 📷 ...
建立交叉开发环境 配置开发主机 移植bootloader linux内核移植 建立并烧写根文件系统到目标板 开发嵌入式应用程序 部署与配置系统 (1)建立交叉开发环境...开发主机的操作系统一般选用某一个发行版本号的linux系统,如RedHatlinux等。...(2)配置开发主机 配置开发主机包含在开发主机上安装linux系统,配置交叉连接工具,如串口和网络接口。...(4)移植嵌入式linux操作系统 我们做的是嵌入式应用。那么这些应用须要跑在一定的操作系统上(嵌入式操作系统)。比較经常使用的有uclinux。arm-linux,ppc-linux等。...最好的情况是,已经有针对所选择的cpu平台的嵌入式linux系统。下载后再加入自己的特定取得调试。
安装好Ubuntu系统环境后,开发前需要简单配置Ubuntu系统环境以及安装一些必备的开发工具。...它解决了 Linux 平台下安装软件的一个缺陷,即软件之间相互依赖。...1.2、更新语言 打开系统设置,打开“语言支持”设置,将系统语言选择为中文。 默认是没有中文的,选择添加下载中文语言,下载完成后,应用到整个系统。 ...”的文件夹,以后所有的东西都放到这个“linux”文件夹里面,在“linux”文件夹里面新建一个名为“nfs”的文件夹(可以自行设定,这里只是我的使用方式)。...2、安装开发工具 2.1、Ubuntu安装VSCode 新装的Ubuntu系统没有代码编辑工具,可以安装VS Code。可以直接在Ubuntu软件中进行安装。
文章目录 嵌入式系统开发基本流程 嵌入式软件开发 嵌入式软件开发的特点和技术挑战 嵌入式软件开发环境 交叉开发环境 软件模拟环境 目标板与评估板 嵌入式软件开发的可移植性和可重用性 嵌入式系统开发基本流程...面向具体应用的嵌入式开发决定了嵌入式开发的方法、流程各有不同,这里仅给出一般的嵌入式开发的具体过程: 系统定义与需求分析阶段 方案设计阶段 详细设计阶段 软硬件集成测试阶段 系统功能性能测试及可靠性测试阶段...嵌入式软硬件必须协同设计 需要新的任务设计方法 需要转变观念,熟悉新的开发模式 开发过程完成后,系统应用程序代码需要固化到系统中进行功能、性能和可靠性测试 技术挑战:技术门槛提高,需要学习全新的RTOS...技术;软件的要求更高,开发工作量和难度更大 嵌入式软件开发环境 嵌入式开发环境组成 交叉开发环境 软件模拟环境 目标板与评估板 交叉开发环境 嵌入式系统应用软件的开发属于跨平台开发,因此需要一个交叉开发环境...嵌入式软件开发的可移植性和可重用性 在嵌入式软件的开发过程中,在确保软件的正确性、实时性的前提下,必须关注软件的可移植性和可重用性。 可移植性和可重用性的程度应该根据实际的应用情况来考虑。
领取专属 10元无门槛券
手把手带您无忧上云