嵌入式Linux(树莓派)环境设置


一、下载

1. 树莓派镜像

https://www.raspberrypi.org/downloads/raspbian/

在这里插入图片描述

在这里插入图片描述

2. 格式化工具

使用SDCardFormatterv5

3. 镜像烧录工具

使用Raspberry Pi

4. VNC Viewer

https://www.realvnc.com/en/connect/download/viewer/

5. 远程工具

putty: https://www.chiark.greenend.org.uk/~sgtatham/putty/

6. SD卡格式化

①将SD插入到读卡器中,接着将读卡器插到电脑上。
②打开格式化工具SDCardFormatterv5。
③选择你需要格式化的SD卡。
④对弹出的对话框进行选择,选择“是”。
⑤接着会弹出,格式化完成的提示,选择确定,就完成了SD卡的格式化。

7. 烧录镜像

①打开烧录的工具raspberry pi。
②点击“CHOOSE OS”,选择到刚才下载的镜像文件,然后点击“CHOOSE SD CARD” 选择刚才格式化的SD卡,接着就点击WRITE。
③接着会弹出一个对话框,选择“Continue/OK”,然后,就开始进行烧录了。

7. 配置网络

使用手机热点
①在电脑上,打开刚才烧录镜像的SD卡。
②在boot目录下,建立一个ssh的空文件。
③在boot目录下,先建立一个文本文件。
④打开文本文件,将下面的内容复制到文本中。

country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    
    
	ssid="你的无线网名称"
	psk="你的无线网密码"
	key_mgmt=WPA-PSK
	priority=1
}

其中,将ssid的内容改成手机热点的名称,psk的内容改成手机热点的密码。
⑤将刚才的文本保存,并将名称修改为wpa_supplicant.conf。
⑥取出SD卡,将SD卡插入树莓派中,同时打开手机热点和给树莓派接上电源。
⑦可以在手机上查看得到树莓派的ip地址。

8. putty远程连接

①打开putty,在Host Name处,输入刚才查看得到的IP地址,接着选择“open”。
②对弹出的对话框进行选择,选择“否”。
③输入用户和密码(默认的用户:pi默认的密码:raspberry)。
④开启树莓派VNC服务,输入指令(sudo raspi-config),进行树莓派配置。
⑤通过上下键选择“Interfacing Options”,接着左右键选择“Select”。
⑥接着上下键选择“VNC”,左右键选择“Select”。
⑦“would you like the vNc server to be enabled?”–>选择“Yes”。
⑧“The VNC server is enabled”–>回车选择“OK”。
⑨上下键选择“Advanced Options”,左右键选择“Select”。
⑩上下键选择“Resolution”,左右键选择“Select”。
⑪接着是分辨率选择,选择“DMT Mode 16”,接着选择“OK”。
⑫“The resolution is set to DMT mode 16”–>回车选择“OK”。
⑬回到开始,选择“Finish”,完成。

9. VNC Viewer远程界面显示

①VNC Viewer的安装过程略。
②VNC Viewer的使用。
安装后打开VNC Viewer界面,首先在最上面输入树莓派的IP地址,接着在弹出的界面中输入Username,Password,点击“OK”。出现了树莓派的界面,搞定。



二、WSL安装

1. 安装

1. 启用 WSL

无论接下来要安装哪个版本的 WSL,都要先启用它。以管理员身份运行 Windows PowerShell ,然后输入如下命令启用WSL。

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

输入命令后回车,等待功能启用完成即可。

2.Windows 功能设置

在控制面板——>程序中依次按下图序号打开,勾选“适用于Linux的Windows子系统”。

在这里插入图片描述

3.检查电脑版本号

在设置——>系统——>关于中查看自己电脑的版本号.

4.安装 Linux 发行版

在Microsoft Store中搜索Ubuntu,选择自己想要安装的版本安装即可。

在安装界面下面有Windows的系统要求,在上一步中查看了自己的电脑版本号,如果低于这里的版本,就要先更新自己的电脑系统,然后再安装。

Ubuntu 20.04 LTS 安装完成后启动它,等待其安装一些配置,完成后便可以键入新的用户名和密码.

同时也将根目录密码一并设置了,方便以后操作。

2. WSL 的运行

1.cmd 运行

以管理员身份运行cmd,然后输入“bash”即可进入到Ubuntu系统下。

2.Windows PowerShell 运行

以管理员身份运行Windows PowerShell,然后输入“bash”即可进入到Ubuntu系统下

3、Ubuntu中的文件在Windows下的存放位置

打开C盘——>用户——>Administrator,注意一定要在查看栏里把“隐藏的项目”打钩,否则是看不到这里隐藏的文件夹AppData的。
然后找到该位置

AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04LTS_79rhkp1fndgsc\LocalState\rootfs

三、练习

1.带断言assert功能的c程序的编译

C 标准库 - <assert.h>
C 标准库的 assert.h头文件提供了一个名为 assert 的宏,它可用于验证程序做出的假设,并在假设为假时输出诊断消息。
已定义的宏 assert 指向另一个宏 NDEBUG,宏 NDEBUG 不是 <assert.h> 的一部分。如果已在引用 <assert.h> 的源文件中定义 NDEBUG 为宏名称,则 assert 宏的定义如下:

#define assert(ignore) ((void)0)

库宏
下面列出了头文件 assert.h 中定义的唯一的函数:
void assert(int expression) 这实际上是一个宏,不是一个函数,可用于在 C 程序中添加诊断。

C 库宏 - assert()
描述

C 库宏 void assert(int expression) 允许诊断信息被写入到标准错误文件中。换句话说,它可用于在 C 程序中添加诊断。

声明
下面是 assert() 宏的声明。
void assert(int expression);

参数
expression – 这可以是一个变量或任何 C 表达式。如果 expression 为 TRUE,assert() 不执行任何动作。如果 expression 为 FALSE,assert() 会在标准错误 stderr 上显示错误消息,并中止程序执行。

返回值
这个宏不返回任何值。

用新分配的账号密码使用putty连接树莓派
使用ROOT权限

sudo su

新建一个helloworld.c文件:

nano helloworld.c

写入以下代码:

在这里插入图片描述

一步编译到位:

gcc helloworld.c -o helloworld

运行:

./helloworld

满足要求的正常情况:
在这里插入图片描述

输入a<10:
在这里插入图片描述

2.用scp 命令练习在不同Linux系统之间进行文件复制传输

scp 命令(secure copy)将文件或者目录从一个Linux系统下复制到另一个Linux系统下,传输数据用的SSH协议,保证了数据的安全。
将 Ubuntu 中的文件拷贝到 树莓派 中:

本地发到远程:

scp 本地Linux系统文件路径 远程用户名@IP地址:远程系统文件绝对路径名

接收成功则会多出一个svt.txt文件。


在Ubuntu上使用命令:

scp 远程用户名@IP地址:文件的绝对路径本地Linux系统路径

3.在Ubuntu系统上创建ARM Linux程序的交叉编译环境

在主机上下载好安装包后,将安装包直接拖进Ubuntu,前提是已经安装好VMwareTools。
安装步骤:
1.在桌面打开Terminal (快捷键 ctrl+alt+t)

2.输入 ls, 并输入 cd 桌面/

3.在 桌面 目录下输入ls后,选中安装包右键,选择复制

4.输入 sudo chmod 777 arm-linux-gcc-4.6.4-arm-x86_64.tar.bz2 ,其中包名为右键->粘贴,赋予其全部权限。

5.输入 tar -jxvf arm-linux-gcc-4.6.4-arm-x86_64.tar.bz2 ,等待解压完成

6.解压之后,重新打开终端,再进行如下命令,创建新目录 arm

sudo mkdir /usr/local/arm

创建成功后,赋予其全部权限,输入以下命令:

sudo chmod 777 /usr/local/arm

7.然后重新打开命令窗口,进入到解压缩文件,直至找到 gcc-4.6.4

8.将 gcc-4.6.4 复制到 /usr/local/arm目录下

sudo cp -r gcc-4.6.4 /usr/local/arm

9.设置 PATH环境变量:

sudo gedit /etc/profile

在文件最后添加两行,输入以下代码:

export PATH=$PATH:/usr/local/arm/gcc-4.6.4/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/arm/gcc-4.6.4/lib

第一行是添加执行程序环境变量,第二行是库文件的路径。保存退出。

10.使用source命令重新加载生效配置文件:

source /etc/profile

11.查看当前arm-linux-gcc版本(检查是否安装成功)

arm-none-linux-gnueabi-gcc   -v

程序编译以及下载
重新打开终端

1.创建/mnt/nfs目录,回车后需要输入管理员密码

sudo  mkdir /mnt/nfs

2.修改/mnt/nfs的访问权限:

sudo  chmod -R 777 /mnt/nfs

3.进入/mnt/nfs目录,创建hello文件夹并进入hello文件:

cd /mnt/nfs
mkdir hello
cd hello

4.使用Gedit软件编辑hello.c程序

gedit  hello.c

5.输入源代码:

#include<stdio.h>
int main()
{
    
    
printf("hello!\n");
return 0;
}

6.在ubuntu shell终端先进入hello程序目录:

cd   /mnt/nfs/hello

7.输入编译链接命令:

gcc  hello.c  -o  hello

此时可能会有提示命令安装gcc编译器,按照提示输入命令sudo apt install gcc
,等待下载安装完成即可。

8.运行执行文件:

./hello


参考

VNC Viewer方式的远程连接树莓派

嵌入式Linux(树莓派)环境设置和交叉编译

WSL的安装与运行

树莓派小练习以及嵌入式Linux(树莓派)环境设置和交叉编译

猜你喜欢

转载自blog.csdn.net/weixin_46628481/article/details/125361642