树莓派4Linux命令 树莓派4b装linux

如何利用树莓派学习Linux及Python

无论是Linux还是Python,其学习过程对于硬件都没什么要求,对于知识的掌握才是核心。

创新互联是一家专注于网站制作、成都网站设计与策划设计,金平网站建设哪家好?创新互联做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:金平等地区。金平做网站价格咨询:028-86922220

理论上用树莓派学习当然可以,但是鉴于你依然处于初学者水平,特别是Linux相关的不够熟练,还是不太建议你是用树莓派来进行学习。

如你所见,树莓派是一个很需要DIY能力的“玩具”,非常酷炫,但对于入门学习几乎没有什么帮助——特别是对于Python,即使Windows环境也完全不会影响你的学习。

请记住:在未入门之前,应该尽力去降低自己的学习难度,而不是为了好玩或者其他原因,来凭空给自己的学习道路增加许多麻烦。

树莓派-磁盘分区、格式化、挂载、卸载

之前笔记本换了一块SSD,原来的那块500GB的机械硬盘一直闲置没用,最近淘宝买了一个硬盘盒子,把它当作移动硬盘来使,顺便实际操作一下刚刚学的Linux的磁盘管理命令。

输入命令 cfdisk /dev/sda ,进入到cfdisk分区工具界面:

将/dev/sda1格式化为 Ext4格式 ,命令为 mkfs -t ext4 /dev/sda1 ,同样适用 Ext2格式 mkfs -t ext2 /dev/sda1 、 Ext3格式 mkfs -t ext3 /dev/sda1 。

使用命令 mkfs -t ntfs /dev/sda2 想将/dev/sda2格式化为 ntfs格式 ,但是会报错: mkfs: failed to execute mkfs.ntfs: No such file or directory 。解决方法为:需要安装 apt-get install ntfsprogs ,但是目前还是会报错 E: Package 'ntfsprogs' has no installation candidate

命令 mkfs -t vfat /dev/sda3 或者 mkfs -t fat /dev/sda3 或者 mkfs -t msdos /dev/sda3 。vfat 是 fat 的扩展,支持长文件名,mkfs.fat和mkfs.vfat 本质上是同个工具,生成的文件系统没区别是因为 vfat 和 fat-32 在实现上是没区别的,只是 vfat 通过 fat-32 中的一些隐藏路径表示长文件名,而在 fat-32 中这些隐藏路径会当成是空的。

使用命令 mount [options] source directory 即可。首先需要建立挂载点(即一个文件夹) mkdir /mnt/part1 ,然后将一个分区挂载在这个挂载点上 mount /dev/sda1 /mnt/part1 。使用 df -h 查看挂载情况

当设备关机前,系统会自动卸载挂载的分区,因此手动挂载在下一次开机的时候有需要重新挂载。要实现开机自动挂载磁盘,需要在/etc/fstab文件中添加挂载信息。

命令: umount [options] source | directory

在鸿蒙(OHOS3.0)编译框架中添加树莓派4B

之前在树莓派4b上点亮了OHOS3.0,不过内核是用tftp拉取的,根文件系统挂在了NFS上,拔了网线就无法启动。当然这么操作只是为了方便调试,而最终需要的是一个可以烧录到TF卡上的img镜像文件。这就需要将所有调试好的内容添加到OHOS3.0的编译框架,本以为是很简单的事情,好家伙,整了这么久,感觉添加编译框架比移植本身更复杂。于是我整理了添加树莓派单板到编译框架的内容,希望对各位有所帮助,为大家避坑。

主要参考 hisilicon build组件仓,添加一个products编译组件,这个组件是在产品配置文件中指定的。比如

productdefinecommonproductsRPI4B.json

其他部分参考Hi3516,但是其中2条,指定单板组件路径,并添加组件。如果删除这两条,将不能编译内核,只生成OHOS的文件系统。

接下来在device目录下,新建一个raspberrypi编译组件文件夹,并添加 ohos.build 文件。和前面产品配置文件中的设置对应起来了。

deviceraspberrypibuildohos.build

新建 deviceraspberrypibuildBUILD.gn 当然每个厂家不可能只有1个板子,如果有其他单板就在这里指定,比如树莓派2B、3B等

既然前面指定了rpi4b的编译配置组件,那么就在 deviceraspberrypi 新建一个 rpi4b 的目录,可以参考 hi3516dv300 build组件

deviceraspberrypirpi4bBUILD.gn

至此一个rpi4b build组件就添加到OHOS3.0的编译框架了,之后相关内容添加到这个文件夹下就可以了。

接下来分析下目前移植了树莓派4B的哪些内容,如何将这些内容编译进OHOS3.0。

关于补丁可以参考 Patch组件,可以得知内核编译由kernel.mk来执行

kernellinuxbuildkernel.mk

所以补丁文件需要放到正确的路径下,以正确的名字命名就可以patch到内核。

hdf.patch补丁文件,现在还没有移植HDF相关内容,所以可以先使用Hi3516的

rpi4b.patch补丁文件,使用树莓派的官方镜像,

kernellinuxconfiglinux-5.10archarmconfigsrpi4b_standard_defconfig

内核配置文件目前已知的需要开启下面内容,但是肯定不止这些,以后会继续更新

Pi4的GPU是VideoCore VI支持OpenGL ES 3.2,而Pi3的GPU是VideoCore IV支持OpenGL ES 2.0。VideoCore IV 驱动程序是 VC4,VideoCore VI 驱动程序的 V3D。内核已经提供驱动,参考rpi4b_standard_defconfig将驱动直接编入到内核。

同时需要在config.txt中开启设置

OHOS中修改weston的配置文件,指定显示驱动

systemetcweston.ini

具体思路就是先查找设备号,根据设备号找到驱动程序。

前面内核配置的时候rpi4b_standard_defconfig中已经将触摸驱动编入内核,所以后面不需要在init加载模块了,修改下eudev的配置文件即可。

third_partyeudevrules.d ouchscreen.rules

正常情况下内核是由uboot进行引导的,而且OHOS默认生成uImage。但是树莓派自带BootLoader,虽然可以先用树莓派自带的BootLoader启动uboot,再用uboot加载uImage,但是这样会比较麻烦,而且会增加启动时间。不过目前 zImage是写死在kernel.mk中的,没办法改下编译脚本把。

kernellinuxbuildkernel.mk 将 uImage 改为 zImage modules dtbs

kernellinuxbuildbuild_kernel.sh

kernellinuxbuildBUILD.gn

kernellinuxbuildkernel_module_build.sh

这里内核编译会依赖product_path="vendor/$product_company/$product_name"下的hdf.hcs文件,得先新建一个应付下,不然会报下面这个错误。

ninja: error: '../../vendor/raspberrypi/RPI4B/hdf_config/uhdf/hdf.hcs', needed by 'gen/drivers/adapter/uhdf2/hcs/hdf_default.hcb', missing and no known rule to make it

新建:vendor/raspberrypi/RPI4B/hdf_config/uhdf/hdf.hcs

对于镜像烧录,Hi3516会将uImage、system.img、vendor.img等镜像烧写到emmc,但是树莓派使用TF卡启动,所以需要对TF卡进行分区,然后复制对应的内容到各个分区。首先制作树莓派boot目录,这个用来目录存放树莓派设备树、config.txt、cmdline.txt、内核镜像等信息。写一个简单的mkboot.py脚本来实现这个功能,位置在码仓rpi4bdeviceraspberrypiimagesmkboot.py将会生成boot.img。

为了方便烧录,需要将boot.img、system.img、updater.img、vendor.img、userdata.img合并成一个rpi4b.img。还是写一个简单的脚本来处理这个步骤rpi4bdeviceraspberrypiimagesmkboot.py。

不过有个问题,主分区只支持4个,所以updater.img暂时先不合并了,这个问题等以后再来处理。

最后将会得到一个rpi4b.img的镜像文件,将这个文件烧录到SD卡就可以了。

Linux:可以使用dd命令

windows:使用Win32 Disk Imager工具烧录即可。

到这里总算是跑通了一个完整的添加新单板的流程,只不过目前只适配了显示和触摸。接下来打算尝试HDF或者distributed部分。

如何查看树莓派的linux版本

可以使用uname -a命令查看linux版本,也可使用lsb_release -a命令查看。

如果解决了您的问题,请采纳

树莓派Linux启动过程简介

昨天在写关于linux设置脚本开机启动的文章时,有个疑问就是开机时怎么确认运行级别,然后遍历执行/etc/rcN.d/目录下的所有服务程序。带着疑问, 在前人的基础上 学习总结一下linux系统初始化的工作的内容,现在树莓派4B上展示出来。

1、加载内核

当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。操作系统接管硬件以后,首先读入 /boot 目录下的内核文件。树莓派4B的内核是Raspbian GNU/Linux 10 (buster),基于Debian。

2、初始化进程init

内核文件加载以后,运行第一个程序init,它的作用是初始化系统环境。init位于目录/sbin,进程号PID为1,即1号进程,其他所有进程都由init衍生,是init的子进程。

同时还有个0号进程,idle进程,在系统初始化时由内核kernel自身从无到有创建,通过调用kernel_thread创建一个内核线程去执行init函数,0号进程创建1号进程。

3、运行级别

具体介绍请参考笔者的文章-Linux运行级别简介  ,但是开机时是怎么确定运行级别的呢?

init进程首先读取文件 /etc/inittab,它是运行级别的设置文件。但是各个发行版不太一样,init的配置文件也不一样,有可能使用/etc/event.d里面的配置文件,最新版的改用为/etc/init目录。

4、开机启动程序

具体详情请参考文章-linux中/etc/init.d设置开机启动 ,确定运行级别后,执行rcN.d目录下的文件,这些链接文件是连接到init.d目录下的程序。init进程逐一加载开机启动程序,其实就是运行这个目录里的启动脚本。

比如运行级别为5(图形化多用户)时启动的程序:

5、用户登录

开机启动程序加载完毕以后用户登录。用户的登录方式有三种:

命令行登录:init进程调用getty程序。

ssh登录:init进程调用sshd程序。

图形界面登录:init进程调用显示管理器,Gnome图形界面对应的显示管理器为gdm。

6 、login shell

默认shell时bash,命令行界面,让用户可以直接与操作系统对话。读取环境变量,具体请参考笔者文章-Linux环境变量的设置。

树莓派查看所有文件用的是什么命令

ome Linux上的我的文档,包含用户名命名的文件夹

/lib 各种应用需要的代码库

/lost+found 一般情况下是空的,当系统非法关机后,这里就存放了一些文件

/media 放置可移动存储驱动器,比如USB和CD

/mnt 用来手动挂在外部硬件驱动器或存储设备

/opt 可选软件文件夹,非系统部分的软件将会放置在这里

/sbin 放置超级用户使用的系统管理命令

/sys 放置操作系统文件

/tmp 放置临时文件

/usr 放置用户使用的程序

/var 虚拟文件,用于程序保存数据

2

树莓派常用命令:

网页名称:树莓派4Linux命令 树莓派4b装linux
文章URL:https://www.cdcxhl.com/article46/docpohg.html

成都网站建设公司_创新互联,为您提供建站公司微信小程序外贸建站动态网站企业建站移动网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站优化排名