提交 aab44b8e 编写于 作者: O openeuler-ci-bot 提交者: Gitee

!20 文档格式调整

Merge pull request !20 from woqidaideshi/master
documents/images/写入SD.png

31.6 KB | W: | H:

documents/images/写入SD.png

38.7 KB | W: | H:

documents/images/写入SD.png
documents/images/写入SD.png
documents/images/写入SD.png
documents/images/写入SD.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -13,8 +13,6 @@
- [创建编译内核模块目录](#创建编译内核模块目录)
- [编译内核模块](#编译内核模块)
- [收集编译结果](#收集编译结果)
- [内核](#内核)
- [设备树文件等](#设备树文件等)
- [验证内核可用性](#验证内核可用性)
- [将内核模块放进rootfs](#将内核模块放进rootfs)
- [将内核放进引导](#将内核放进引导)
......@@ -85,17 +83,17 @@
## 收集编译结果
### 内核
1. 内核
`cp ${WORKDIR}/raspberrypi-kernel/arch/arm64/boot/Image ${WORKDIR}/output/`
`cp ${WORKDIR}/raspberrypi-kernel/arch/arm64/boot/Image ${WORKDIR}/output/`
### 设备树文件等
2. 设备树文件等
`cp ${WORKDIR}/raspberrypi-kernel/arch/arm64/boot/dts/broadcom/*.dtb ${WORKDIR}/output/`
`cp ${WORKDIR}/raspberrypi-kernel/arch/arm64/boot/dts/broadcom/*.dtb ${WORKDIR}/output/`
`mkdir ${WORKDIR}/output/overlays`
`mkdir ${WORKDIR}/output/overlays`
`cp ${WORKDIR}/raspberrypi-kernel/arch/arm64/boot/dts/overlays/*.dtb* ${WORKDIR}/output/overlays/`
`cp ${WORKDIR}/raspberrypi-kernel/arch/arm64/boot/dts/overlays/*.dtb* ${WORKDIR}/output/overlays/`
至此,所有内核及内核模块相关内容都在 ${WORKDIR}/output 下了。
......
......@@ -22,13 +22,11 @@
- Windows10/Linux/Mac
- 树莓派 3B/3B+/4B
- 16G 以上的 Micro SD 卡
- 8G 及以上的 Micro SD 卡
# 获取树莓派 img 镜像
下载适配树莓派的最新 openEuler 镜像,下面以 `XXX.img` 表示该镜像。
注意!如果下载的是压缩后的镜像,需要先将压缩文件解压得到 img 格式的镜像文件。
下载适配树莓派的最新 openEuler 镜像,下面以获取 `openEuler-20.03-LTS-aarch64-raspi.img.xz` 镜像为例。
# 刷写 SD 卡
......@@ -38,85 +36,95 @@
### 格式化 SD 卡
下载应用:SDFormater,用于格式化 SD 卡。
请按照以下步骤格式化 SD 卡:
1. 下载并安装格式化 SD 卡工具,以下操作以 SD Card Formatter 格式化工具为例。
2. 打开 SD Card Formatter,在 `Select card` 中选择需要格式化的 SD 卡的盘符。
若 SD 卡之前未安装过镜像,盘符只有一个,SDFormater 应用中选择 SD 卡对应盘符,直接格式化即可;
若 SD 卡之前未安装过镜像,盘符只有一个。在 `Select card` 中选择需要格式化的 SD 卡对应盘符。
若 SD 卡之前安装过镜像,盘符会有多个,如下图所示,该 SD 卡对应三个盘符:E、G、H,SDFormater 应用中选择 SD 卡对应 boot 分区盘符 E,格式化即可
若 SD 卡之前安装过镜像,盘符会有一个或多个。如下图所示,该 SD 卡对应三个盘符:E、G、H。在 `Select card` 中选择需要格式化的 SD 卡对应 boot 分区盘符 E
![](images/盘符.jpg)
![](images/盘符.jpg)
![](images/格式化前.png)
3.`Formatting options` 中选择格式化方式。默认为 `Qick format`
4. 单击 `Format` 开始格式化。界面通过进度条显示格式化进度。
5. 格式化完成后会弹出 `Formatting was successfully completed` 的提示框,单击 `确定` 完成格式化。
![](images/格式化后.png)
如下图所示,格式化后 SD 卡的盘符只有一个。
![](images/格式化后盘.png)
![](images/格式化后盘.png)
### 写入 SD 卡
下载应用:Win32 Disk Imager。
>![](public_sys-resources/icon-notice.gif) **须知:**
>如果获取的是压缩后的镜像文件 `openEuler-20.03-LTS-aarch64-raspi.img.xz`,需要先将压缩文件解压得到 `openEuler-20.03-LTS-aarch64-raspi.img` 镜像文件。
请按照以下步骤将 img 格式的镜像文件写入 SD 卡:
右键选择“以管理员身份运行”,打开 Win32 Disk Imager,选择镜像 img 文件和待写入的 SD 卡,点击【写入/Write】。
1. 下载并安装刷写镜像的工具,以下操作以 Win32 Disk Imager 工具为例。
2. 右键选择“以管理员身份运行”,打开 Win32 Disk Imager。
3. 选择镜像 img 文件。
4. 选择待写入的 SD 卡盘符。
5. 单击“写入”。如下图所示,界面通过任务进度条显示写入 SD 卡的进度。
![](images/写入SD.png)
![](images/写入SD.png)
写入完成即可
6. 写入完成后会弹出 “写入成功” 的提示框,单击“OK”完成写入
写入成功后,SD 卡自动分区后的盘符为三个,如下图所示
如下图所示,写入成功后,SD 卡自动分区后的盘符为三个
![](images/盘符.jpg)
![](images/盘符.jpg)
## Linux 环境
### 查看磁盘分区信息
`fdisk -l`
获取 SD 卡磁盘信息,例如 SD 卡对应磁盘为 /dev/sdb。
执行 `fdisk -l` 获取 SD 卡磁盘信息,例如 SD 卡对应磁盘为 /dev/sdb。
### 卸载 SD 卡挂载点
查看当前已挂在的卷
`df -lh`
如果 SD 卡对应的分区未挂载,则该步骤跳过;如果 SD 卡对应分区已挂载,如 SD 卡对应的两个分区 /dev/sdb1 和 /dev/sdb3 已挂载,则需要卸载对应分区:
1. 执行 `df -lh` 命令查看当前已挂载的卷。
2. 如果 SD 卡对应的分区未挂载,则跳过该步骤;如果 SD 卡对应分区已挂载,如 SD 卡对应的两个分区 /dev/sdb1 和 /dev/sdb3 已挂载,则需要卸载对应分区,执行以下命令:
`umount /dev/sdb1`
`umount /dev/sdb1`
`umount /dev/sdb3`
`umount /dev/sdb3`
### 写入 SD 卡
将下载的镜像 `XXX.img` 刷入 SD 卡。
1. 如果获取的是压缩后的镜像,需要先执行 `xz -d openEuler-20.03-LTS-aarch64-raspi.img.xz` 命令将压缩文件解压得到 `openEuler-20.03-LTS-aarch64-raspi.img` 镜像文件;否则,跳过该步骤。
2. 将镜像 `openEuler-20.03-LTS-aarch64-raspi.img` 刷写入 SD 卡,执行以下命令:
`dd bs=4M if=XXX.img of=/dev/sdb`
`dd bs=4M if=openEuler-20.03-LTS-aarch64-raspi.img of=/dev/sdb`
>![](public_sys-resources/icon-note.gif) **说明:**
>一般情况下,将块大小设置为 4M。如果写入失败或者写入的镜像无法使用,可以尝试将块大小设置为 1M 重新写入,但是设置为 1M 比较耗时。
## Mac 环境
### 查看磁盘分区信息
`diskutil list`
获取 SD 卡磁盘信息,例如 SD 卡对应磁盘为 /dev/disk3。
执行 `diskutil list` 获取 SD 卡磁盘信息,例如 SD 卡对应磁盘为 /dev/disk3。
### 卸载 SD 卡挂载点
查看当前已挂在的卷
`df -lh`
1. 执行 `df -lh` 命令查看当前已挂载的卷。
2. 如果 SD 卡对应的分区未挂载,则跳过该步骤;如果 SD 卡对应分区已挂载,如 SD 卡对应的两个分区 /dev/disk3s1 和 /dev/disk3s3 已挂载,则需要卸载对应分区,执行以下命令:
如果 SD 卡对应的分区未挂载,则该步骤跳过;如果 SD 卡对应分区已挂载,如 SD 卡对应的两个分区 /dev/sdb1 和 /dev/sdb3 已挂载,则需要卸载对应分区:
`diskutil umount /dev/disk3s1`
`diskutil umount /dev/sdb1`
`diskutil umount /dev/sdb3`
`diskutil umount /dev/disk3s3`
### 写入 SD 卡
将下载的镜像 `XXX.img` 刷入 SD 卡。
1. 如果获取的是压缩后的镜像,需要先执行 `xz -d openEuler-20.03-LTS-aarch64-raspi.img.xz` 命令将压缩文件解压得到 `openEuler-20.03-LTS-aarch64-raspi.img` 镜像文件;否则,跳过该步骤。
2. 将镜像 `openEuler-20.03-LTS-aarch64-raspi.img` 刷入 SD 卡,执行以下命令:
`dd bs=4m if=openEuler-20.03-LTS-aarch64-raspi.img of=/dev/sdb`
`dd bs=4m if=XXX.img of=/dev/sdb`
>![](public_sys-resources/icon-note.gif) **说明:**
>一般情况下,将块大小设置为 4m。如果写入失败或者写入的镜像无法使用,可以尝试将块大小设置为 1m 重新写入,但是设置为 1m 比较耗时。
# 树莓派使用
......
......@@ -4,18 +4,9 @@
- [根目录分区扩展](#根目录分区扩展)
- [查看磁盘分区信息](#查看磁盘分区信息)
- [分区扩容](#分区扩容)
- [操作磁盘 /dev/mmcblk0](#操作磁盘-devmmcblk0)
- [查看当前分区情况](#查看当前分区情况)
- [删除分区 /dev/mmcblk0p3](#删除分区-devmmcblk0p3)
- [选择要删除的分区序号](#选择要删除的分区序号)
- [创建新的分区](#创建新的分区)
- [选择创建分区类型](#选择创建分区类型)
- [选择要创建的分区序号](#选择要创建的分区序号)
- [输入新分区的起始扇区号](#输入新分区的起始扇区号)
- [输入新分区的终止扇区号](#输入新分区的终止扇区号)
- [是否修改扇区标记](#是否修改扇区标记)
- [保存并退出](#保存并退出)
- [查看扩容后磁盘分区信息](#查看扩容后磁盘分区信息)
- [增大未加载的文件系统大小](#增大未加载的文件系统大小)
- [查看磁盘空间信息](#查看磁盘空间信息)
- [wifi 连接](#wifi-连接)
- [查看 IP 和网卡信息](#查看-ip-和网卡信息)
- [扫描可以连接的 wifi 信息](#扫描可以连接的-wifi-信息)
......@@ -33,20 +24,8 @@
- [开启蓝牙](#开启蓝牙)
- [查看蓝牙设备](#查看蓝牙设备)
- [连接蓝牙](#连接蓝牙)
- [进入交互命令](#进入交互命令)
- [开启控制器电源](#开启控制器电源)
- [启用代理](#启用代理)
- [设置代理为默认代理](#设置代理为默认代理)
- [扫描](#扫描)
- [配对](#配对)
- [添加信任](#添加信任)
- [连接](#连接)
- [播放音乐](#播放音乐)
- [文件传输](#文件传输)
- [下载软件 obexftp](#下载软件-obexftp)
- [安装 obexftp](#安装-obexftp)
- [查看文件传输的 channel](#查看文件传输的-channel)
- [传输文件](#传输文件)
- [GPIO](#gpio)
- [简介](#简介)
- [UART](#uart)
......@@ -54,20 +33,8 @@
- [串口通信](#串口通信)
- [蓝牙使用 PL011 UART,禁用串口](#蓝牙使用-pl011-uart禁用串口)
- [蓝牙使用 PL011 UART,串口使用 mini UART](#蓝牙使用-pl011-uart串口使用-mini-uart)
- [编辑配置文件](#编辑配置文件)
- [设置 hciuart 服务开机启动(默认已设置)](#设置-hciuart-服务开机启动默认已设置)
- [重启树莓派](#重启树莓派)
- [查看结果](#查看结果)
- [禁用蓝牙,串口使用 PL011 UART](#禁用蓝牙串口使用-pl011-uart)
- [编辑配置文件](#编辑配置文件-1)
- [取消 hciuart 服务开机启动](#取消-hciuart-服务开机启动)
- [重启树莓派](#重启树莓派-1)
- [查看结果](#查看结果-1)
- [蓝牙使用 mini UART,串口使用 PL011 UART](#蓝牙使用-mini-uart串口使用-pl011-uart)
- [编辑配置文件](#编辑配置文件-2)
- [设置 hciuart 服务开机启动(默认已设置)](#设置-hciuart-服务开机启动默认已设置-1)
- [重启树莓派](#重启树莓派-2)
- [查看结果](#查看结果-2)
- [WiringPi](#wiringpi)
- [下载 WiringPi](#下载-wiringpi)
- [安装 WiringPi](#安装-wiringpi)
......@@ -105,87 +72,86 @@
默认根目录分区空间比较小,在使用之前,需要对分区进行扩容。
## 查看磁盘分区信息
`fdisk -l`
获取 SD 卡磁盘信息,例如 SD 卡对应磁盘为 /dev/mmcblk0。openEuler 镜像包括 3 个分区,分别为
- 引导分区 /dev/mmcblk0p1
- 交换分区 /dev/mmcblk0p2
- 根目录分区 /dev/mmcblk0p3
这里我们需要将根目录分区进行扩容。
## 分区扩容
### 操作磁盘 /dev/mmcblk0
`fdisk /dev/mmcblk0`
### 查看当前分区情况
`p`
记录下分区 /dev/mmcblk0p3 的起始扇区号,这里记为 `xxx`,本例中实际为 `1593344`
### 删除分区 /dev/mmcblk0p3
执行 `fdisk -l` 命令查看磁盘分区信息。命令和回显如下:
`d`
### 选择要删除的分区序号
回车(默认为 3)或 输入 `3`
### 创建新的分区
`n`
### 选择创建分区类型
```
# fdisk -l
Disk /dev/mmcblk0: 14.86 GiB, 15931539456 bytes, 31116288 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf2dc3842
回车(默认为 p)或 输入 `p`
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 * 8192 593919 585728 286M c W95 FAT32 (LBA)
/dev/mmcblk0p2 593920 1593343 999424 488M 82 Linux swap / Solaris
/dev/mmcblk0p3 1593344 5044223 3450880 1.7G 83 Linux
```
### 选择要创建的分区序号
SD 卡对应盘符为 /dev/mmcblk0,包括 3 个分区,分别为
回车(默认为 3)或 输入 `3`
- /dev/mmcblk0p1:引导分区
- /dev/mmcblk0p2:交换分区
- /dev/mmcblk0p3:根目录分区
### 输入新分区的起始扇区号
这里我们需要将根目录分区 `/dev/mmcblk0p3` 进行扩容。
注意!!!不要直接输入回车或使用默认参数。这是需要输入删除分区 /dev/mmcblk0p3 之前查看到的的起始扇区号,上面记为 `xxx`,本例中实际为 `1593344`
## 分区扩容
`xxx`
执行 `fdisk /dev/mmcblk0` 命令进入到交互式命令行界面,按照以下步骤扩展分区,如下图所示。
1. 输入 `p`,查看分区信息。
### 输入新分区的终止扇区号
记录分区 `/dev/mmcblk0p3` 的起始扇区号,即 `/dev/mmcblk0p3` 分区信息中 `Start` 列的值,示例中为 `1593344`
回车
2. 输入 `d`,删除分区。
3. 输入 `3` 或直接按 `Enter`,删除序号为 `3` 的分区,即 `/dev/mmcblk0p3` 分区。
4. 输入 `n`,创建新的分区。
5. 输入 `p` 或直接按 `Enter`,创建 `Primary` 类型的分区。
6. 输入 `3` 或直接按 `Enter`,创建序号为 `3` 的分区,即 `/dev/mmcblk0p3` 分区。
7. 输入新分区的起始扇区号,即第 `1` 步中记录的起始扇区号,示例中为 `1593344`
取默认的最后一个扇区号。
>![](public_sys-resources/icon-notice.gif) **须知:**
>请勿直接按“Enter”或使用默认参数。
### 是否修改扇区标记
8.`Enter`,使用默认的最后一个扇区号作为新分区的终止扇区号。
9. 输入 `N`,不修改扇区标记。
10. 输入 `w`,保存分区设置并退出交互式命令行界面。
`N`
![](images/分区扩容.png)
不修改。
## 查看扩容后磁盘分区信息
### 保存并退出
执行 `fdisk -l` 命令查看磁盘分区信息,以确保磁盘分区正确。命令和回显如下:
`w`
```
# fdisk -l
Disk /dev/mmcblk0: 14.86 GiB, 15931539456 bytes, 31116288 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf2dc3842
该操作结束后,使用 `fdisk -l` 命令可以看到 /dev/mmcblk0p3 大小已经扩展。但是通过 `df -lh` 可以看到根目录大小没有变化。
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 * 8192 593919 585728 286M c W95 FAT32 (LBA)
/dev/mmcblk0p2 593920 1593343 999424 488M 82 Linux swap / Solaris
/dev/mmcblk0p3 1593344 31116287 29522944 14.1G 83 Linux
```
### 增大未加载的文件系统大小
## 增大未加载的文件系统大小
`resize2fs /dev/mmcblk0p3`
如果该命令失败,可通过命令 `reboot` 重启树莓派之后再执行 `resize2fs /dev/mmcblk0p3`
该操作结束后,通过 `df -lh` 可以看到根目录大小已经扩展。
## 查看磁盘空间信息
至此,根目录分区扩容结束。扩容过程见下图:
执行 `df -lh` 命令查看磁盘空间信息,以确保根目录分区已扩展。
![](images/分区扩容.png)
>![](public_sys-resources/icon-notice.gif) **须知:**
>如果根目录分区未扩展,可执行 `reboot` 命令重启树莓派之后再执行 `resize2fs /dev/mmcblk0p3`。
# wifi 连接
......@@ -323,50 +289,39 @@ hci0: Type: Primary Bus: UART
## 连接蓝牙
使用 `bluetoothctl` 交互命令连接蓝牙设备。
执行 `bluetoothctl` 命令进入到交互式命令行界面,按照以下步骤连接蓝牙设备。
### 进入交互命令
1. 输入 `power on` 开启控制器电源。
2. 输入 `agent on` 启用代理。
3. 输入 `default-agent` 设置默认代理连接。
4. 输入 `scan on` 搜索周边蓝牙设备。
`bluetoothctl`
这里看到要连接的目标蓝牙设备对应的 MAC 地址,记为 `target-MAC`
### 开启控制器电源
5. 输入 `pair target-MAC` 配对目标蓝牙设备。
`power on`
这里,可能会出现的问题:
### 启用代理
1. Failed to pair: org.bluez.Error.AuthenticationCanceled
`agent on`
解决:多次配对后仍然提示该错误,请重启 bluetooth 服务。
### 设置代理为默认代理
`default-agent`
### 扫描
`scan on`
这里看到要连接的蓝牙设备对应的 MAC 地址,记为 `target-MAC`
### 配对
`pair target-MAC`
### 添加信任
这一步可忽略。
```
systemctl restart bluetooth
```
`trust target-MAC`
6. 输入 `trust target-MAC` 信任目标蓝牙设备。
### 连接
这一步可忽略。
`connect target-MAC`
7. 输入 `connect target-MAC` 连接目标蓝牙设备。
连接成功,则会在该交互命令界面显示进入到目标蓝牙设备。
连接成功后,则会在该交互式命令行界面显示进入到目标蓝牙设备。
这里,可能会出现的问题:
这里,可能会出现的问题:
1. Attempting to connect to XX:XX:XX:XX:XX:XX
Failed to connect: org.bluez.Error.Failed
1. Attempting to connect to XX:XX:XX:XX:XX:XX
Failed to connect: org.bluez.Error.Failed
解决:重启 pluseaudio。
......@@ -378,74 +333,80 @@ Failed to connect: org.bluez.Error.Failed
## 播放音乐
`target-MAC` 对应的设备上`设置->蓝牙`会显示已经连接到树莓派的蓝牙设备。该设备播放音乐,就可以通过树莓派收听。注意,需要保证树莓派已经开启音频。
`target-MAC` 对应的设备上`设置->蓝牙`会显示已经连接到树莓派的蓝牙设备。该设备播放音乐,就可以通过树莓派收听。
>![](public_sys-resources/icon-notice.gif) **须知:**
>要保证树莓派已经开启音频。
## 文件传输
### 下载软件 obexftp
按照以下步骤通过蓝牙传输文件。
需要下载三个包:lib64obexftp、lib64openobex、obexftp,可在 [地址](https://rpmfind.net/linux/mageia/distrib/cauldron/aarch64/media/core/release/) 下载其最新版本。以我们下载时对应版本为例:
1. 下载软件 obexftp
```
wget https://rpmfind.net/linux/mageia/distrib/cauldron/aarch64/media/core/release/lib64obexftp0-0.24-17.mga8.aarch64.rpm
wget https://rpmfind.net/linux/mageia/distrib/cauldron/aarch64/media/core/release/lib64openobex1-1.7.2-3.mga8.aarch64.rpm
wget https://rpmfind.net/linux/mageia/distrib/cauldron/aarch64/media/core/release/obexftp-0.24-17.mga8.aarch64.rpm
```
### 安装 obexftp
需要下载三个包:lib64obexftp、lib64openobex、obexftp,可在 [地址](https://rpmfind.net/linux/mageia/distrib/cauldron/aarch64/media/core/release/) 下载其最新版本。以我们下载时对应版本为例,执行以下命令:
```
rpm -i lib64obexftp0-0.24-17.mga8.aarch64.rpm
rpm -i lib64openobex1-1.7.2-3.mga8.aarch64.rpm
rpm -i obexftp-0.24-17.mga8.aarch64.rpm
```
```
wget https://rpmfind.net/linux/mageia/distrib/cauldron/aarch64/media/core/release/lib64obexftp0-0.24-17.mga8.aarch64.rpm
wget https://rpmfind.net/linux/mageia/distrib/cauldron/aarch64/media/core/release/lib64openobex1-1.7.2-3.mga8.aarch64.rpm
wget https://rpmfind.net/linux/mageia/distrib/cauldron/aarch64/media/core/release/obexftp-0.24-17.mga8.aarch64.rpm
```
### 查看文件传输的 channel
2. 安装 obexftp,执行以下命令:
`sdptool browse target-MAC`
```
rpm -i lib64obexftp0-0.24-17.mga8.aarch64.rpm
rpm -i lib64openobex1-1.7.2-3.mga8.aarch64.rpm
rpm -i obexftp-0.24-17.mga8.aarch64.rpm
```
查看结果:
```
Browsing target-MAC ...
...
Browsing target-MAC ...
Service Search failed: Invalid argument
Service Name: OBEX Phonebook Access Server
Service RecHandle: 0x1000b
Service Class ID List:
3. 查看文件传输的 channel,执行下面的命令:
`sdptool browse target-MAC`
查看结果:
```
Browsing target-MAC ...
...
Browsing target-MAC ...
Service Search failed: Invalid argument
Service Name: OBEX Phonebook Access Server
Service RecHandle: 0x1000b
Service Class ID List:
"Phonebook Access - PSE" (0x112f)
Protocol Descriptor List:
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 19
"OBEX" (0x0008)
Profile Descriptor List:
Profile Descriptor List:
"Phonebook Access" (0x1130)
Version: 0x0101
Service Name: OBEX Object Push
Service RecHandle: 0x1000c
Service Class ID List:
Service Name: OBEX Object Push
Service RecHandle: 0x1000c
Service Class ID List:
"OBEX Object Push" (0x1105)
Protocol Descriptor List:
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 12
"OBEX" (0x0008)
Profile Descriptor List:
Profile Descriptor List:
"OBEX Object Push" (0x1105)
Version: 0x0102
...
```
...
```
看到其中 `Service Name: OBEX Object Push` 下的 ` Channel: 12`
看到其中 `Service Name: OBEX Object Push` 下的 ` Channel: 12`。
### 传输文件
4. 传输文件
文件路径记为 `file-path`
待传输的文件路径记为 `file-path`,执行以下命令:
`obexftp -b target-MAC -B 12 -U NONE -p file-path`
`obexftp -b target-MAC -B 12 -U NONE -p file-path`
之后就可以在`target-MAC` 对应的设备上选择接收文件,进行文件传输。
之后就可以在`target-MAC` 对应的设备上选择接收文件,进行文件传输。
# GPIO
......@@ -455,7 +416,7 @@ Profile Descriptor List:
![](images/GPIO针脚.png)
GPIO 是个比较重要的概念。用户可以通过 GPIO 口和硬件进行数据交互(如 UART),控制硬件工作(如 LED、蜂鸣器等),读取硬件的工作状态信号(如中断信号)等。GPIO 口的使用非常广泛。举例来说,40 个针脚中,有固定输出的 5V(2、4号PIN)、3.3V(1、17号PIN)和地线(Ground,6、9、14、20、25、30、34、39)。如果一个电路两端接在 5V 和地线之间,该电路就会获得 5V 的电压输入,相当于给树莓派通电,注意此时就不可以再通过树莓派提供的电源同时通电。有一些针脚除了 GPIO 功能外,还提供了高级端口功能。例如,GPIO14 和 GPIO15 就可以充当 UART 端口。下面,我们以使用 UART(GPIO14 和 GPIO15)进行串口通信为例介绍如何使用树莓派 GPIO。
GPIO 是个比较重要的概念。用户可以通过 GPIO 口和硬件进行数据交互(如 UART),控制硬件工作(如 LED、蜂鸣器等),读取硬件的工作状态信号(如中断信号)等。GPIO 口的使用非常广泛。举例来说,40 个针脚中,有固定输出的 5V(2、4号PIN)、3.3V(1、17号PIN)和地线(Ground,6、9、14、20、25、30、34、39)。如果一个电路两端接在 5V 和地线之间,该电路就会获得 5V 的电压输入,相当于给树莓派通电,注意此时就不可以再通过树莓派提供的电源同时通电。有一些针脚除了 GPIO 功能外,还提供了高级端口功能。例如,GPIO14 和 GPIO15 就可以充当 UART 端口。下面,我们以使用 UART(GPIO14 和 GPIO15)进行串口通信为例介绍如何使用树莓派 GPIO。
## UART
......@@ -481,7 +442,8 @@ UART 的端口至少有 RX、TX 和地线三个针脚。RX 负责读取,TX 负
![](images/UART连接PC.png)
注意!!!如果你连接树莓派 UART 针脚所使用的杜邦线不止有三个接口,不要连接树莓派的 5V 或 3.3V 的针脚。如果一个电路两端接在 5V 和地线之间,该电路就会获得 5V 的电压输入,相当于给树莓派通电。此时,如果同时接通树莓派电源设备,会烧坏树莓派!
>![](public_sys-resources/icon-notice.gif) **须知:**
>如果你连接树莓派 UART 针脚所使用的杜邦线不止有三个接口,不要连接树莓派的 5V 或 3.3V 的针脚。如果一个电路两端接在 5V 和地线之间,该电路就会获得 5V 的电压输入,相当于给树莓派通电。此时,如果同时接通树莓派电源设备,会烧坏树莓派!
连接好之后,就可以实现树莓派和 PC 通信。Windows 中可以利用串口通信的图形化软件来和树莓派进行串口通信。注意,根据树莓派配置文件 boot/config.txt 中形如 `console=serial0,115200` 的配置项,串口通信的图形化软件中选择对应串口的波特率应设置为 115200。
......@@ -489,7 +451,11 @@ UART 的端口至少有 RX、TX 和地线三个针脚。RX 负责读取,TX 负
由于树莓派 4B 中,默认情况下,PL011 UART 分配给了新增的板载蓝牙模块,mini UART 用于 Linux 控制台进行串口通信。为了实现串口通信,我们可以使用 mini UART,也可以占用 PL011 UART。如果串口通信占用 PL011 UART,板载蓝牙就需要禁用或者使用 mini UART。
注意树莓派的配置文件 /boot/config.txt 中 `enable_uart` 这个配置项。`enable_uart` 的默认值取决于 UART 的实际角色。如果将 ttyAMA0 分配给蓝牙模块(默认),则 `enable_uart` 默认为 0,即不启用 GPIO 串口;如果将 mini UART 分配给蓝牙模块(`dtoverlay=pi3-miniuart-bt`),则 `enable_uart` 默认值为 1,即启用 GPIO 串口(使用 PL011 UART);如果禁用蓝牙(`dtoverlay=pi3-disable-bt`),则默认将 ttyAMA0 分配给串口通信模块(使用 PL011 UART)。
>![](public_sys-resources/icon-note.gif) **说明:**
>注意树莓派的配置文件 /boot/config.txt 中 `enable_uart` 这个配置项,`enable_uart` 的默认值取决于 UART 的实际角色。
> - 如果将 ttyAMA0 分配给蓝牙模块(默认),则 `enable_uart` 默认为 0,即不启用 GPIO 串口;
> - 如果将 mini UART 分配给蓝牙模块(`dtoverlay=pi3-miniuart-bt`),则 `enable_uart` 默认值为 1,即启用 GPIO 串口(使用 PL011 UART);
> - 如果禁用蓝牙(`dtoverlay=pi3-disable-bt`),则默认将 ttyAMA0 分配给串口通信模块(使用 PL011 UART)。
下面我们总结一下不同情况下的配置。
......@@ -507,106 +473,89 @@ lrwxrwxrwx 1 root root 7 Sep 3 2019 /dev/serial1 -> ttyAMA0
PL011 UART 作为辅助 UART 分配给新增的板载蓝牙模块,在操作系统中对应文件 /dev/ttyAMA0(/dev/serial1);mini UART 作为主 UART 分配给 Linux 控制台进行串口通信,在操作系统中对应文件 /dev/ttyS0(/dev/serial0)。
##### 编辑配置文件
`vim /boot/config.txt`
添加:
按照以下步骤进行设置:
```
enable_uart=1
```
该配置项会同时将核心频率固定到 250MHz,无需设置 core_freq。
1. 执行 `vim /boot/config.txt` 命令编辑配置文件。
##### 设置 hciuart 服务开机启动(默认已设置)
添加:
`systemctl enable hciuart`
```
enable_uart=1
```
##### 重启树莓派
该配置项会同时将核心频率固定到 250MHz,无需设置 core_freq。
`reboot`
2. 执行命令 `systemctl enable hciuart` 设置 hciuart 服务开机启动(默认已设置)。如果已设置,则跳过该步骤。
3. 执行 `reboot` 命令重启树莓派。
4. 查看串口输出结果
##### 查看结果
执行 `ls -l /dev/serial*` 命令,可以看到如下信息:
命令 `ls -l /dev/serial*`,可以看到如下信息:
```
lrwxrwxrwx 1 root root 5 Sep 3 2019 /dev/serial0 -> ttyS0
lrwxrwxrwx 1 root root 7 Sep 3 2019 /dev/serial1 -> ttyAMA0
```
```
lrwxrwxrwx 1 root root 5 Sep 3 2019 /dev/serial0 -> ttyS0
lrwxrwxrwx 1 root root 7 Sep 3 2019 /dev/serial1 -> ttyAMA0
```
在 PC 的串口通信图形化软件上,可以看到树莓派的开机日志以及树莓派上通过命令 `echo "hello" > /dev/serial0` 向串口输出的信息。见下图:
在 PC 的串口通信图形化软件上,可以看到树莓派的开机日志以及树莓派上通过命令 `echo "hello" > /dev/serial0` 向串口输出的信息。见下图:
![](images/串口输出.jpg)
![](images/串口输出.png)
#### 禁用蓝牙,串口使用 PL011 UART
PL011 UART 作为主 UART 分配给 Linux 控制台用于串口通信,在操作系统中对应文件 /dev/ttyAMA0(/dev/serial0)。
##### 编辑配置文件
按照以下步骤进行设置:
`vim /boot/config.txt`
添加:
```
dtoverlay=pi3-disable-bt
```
1. 执行 `vim /boot/config.txt` 命令编辑配置文件。
##### 取消 hciuart 服务开机启动
添加:
`systemctl disable hciuart`
否则, hciuart 服务会默认开机启动,且启动失败。
##### 重启树莓派
`reboot`
```
dtoverlay=pi3-disable-bt
```
##### 查看结果
2. 执行 `systemctl disable hciuart` 命令取消 hciuart 服务开机启动。否则,hciuart 服务会默认开机启动,且启动失败。
3. 执行 `reboot` 命令重启树莓派。
4. 查看串口输出结果
命令 `ls -l /dev/serial*`,可以看到如下信息:
```
lrwxrwxrwx 1 root root 7 Sep 3 2019 /dev/serial0 -> ttyAMA0
lrwxrwxrwx 1 root root 5 Sep 3 2019 /dev/serial1 -> ttyS0
```
执行 `ls -l /dev/serial*` 命令,可以看到如下信息:
```
lrwxrwxrwx 1 root root 7 Sep 3 2019 /dev/serial0 -> ttyAMA0
lrwxrwxrwx 1 root root 5 Sep 3 2019 /dev/serial1 -> ttyS0
```
在 PC 的串口通信图形化软件上,可以看到树莓派的开机日志以及树莓派上通过命令 `echo "hello" > /dev/serial0` 向串口输出的信息。
在 PC 的串口通信图形化软件上,可以看到树莓派的开机日志以及树莓派上通过命令 `echo "hello" > /dev/serial0` 向串口输出的信息。
#### 蓝牙使用 mini UART,串口使用 PL011 UART
PL011 UART 作为主 UART 分配给 Linux 控制台用于串口通信,在操作系统中对应文件 /dev/ttyAMA0(/dev/serial0);mini UART 作为辅助 UART 分配给新增的板载蓝牙模块,在操作系统中对应文件 /dev/ttyS0(/dev/serial1)。
##### 编辑配置文件
`vim /boot/config.txt`
添加:
```
core_freq=250
dtoverlay=pi3-miniuart-bt
```
按照以下步骤进行设置:
注意,这里需要设置 core_freq=250
1. 执行 `vim /boot/config.txt` 命令编辑配置文件
##### 设置 hciuart 服务开机启动(默认已设置)
添加:
`systemctl enable hciuart`
```
core_freq=250
dtoverlay=pi3-miniuart-bt
```
##### 重启树莓派
>![](public_sys-resources/icon-notice.gif) **须知:**
>这里需要设置 core_freq=250。
`reboot`
2. 执行命令 `systemctl enable hciuart` 设置 hciuart 服务开机启动(默认已设置)。如果已设置,则跳过该步骤。
##### 查看结果
3. 执行 `reboot` 命令重启树莓派。
4. 查看串口输出结果
命令 `ls -l /dev/serial*`,可以看到如下信息:
```
lrwxrwxrwx 1 root root 7 Sep 3 2019 /dev/serial0 -> ttyAMA0
lrwxrwxrwx 1 root root 5 Sep 3 2019 /dev/serial1 -> ttyS0
```
执行 `ls -l /dev/serial*` 命令,可以看到如下信息:
```
lrwxrwxrwx 1 root root 7 Sep 3 2019 /dev/serial0 -> ttyAMA0
lrwxrwxrwx 1 root root 5 Sep 3 2019 /dev/serial1 -> ttyS0
```
在 PC 的串口通信图形化软件上,可以看到树莓派的开机日志以及树莓派上通过命令 `echo "hello" > /dev/serial0` 向串口输出的信息。
在 PC 的串口通信图形化软件上,可以看到树莓派的开机日志以及树莓派上通过命令 `echo "hello" > /dev/serial0` 向串口输出的信息。
## WiringPi
......@@ -624,7 +573,8 @@ WiringPi 是应用于树莓派平台的 GPIO 控制库函数,包括一套 GPIO
`sudo ./build`
注意,当前系统默认未安装 sudo、make、gcc等,使用命令 `dnf install -y sudo make gcc` 安装。
>![](public_sys-resources/icon-notice.gif) **须知:**
>当前系统默认未安装 sudo、make、gcc等,使用命令 `dnf install -y sudo make gcc` 安装。
### 使用 WiringPi
......@@ -640,7 +590,7 @@ WiringPi 是应用于树莓派平台的 GPIO 控制库函数,包括一套 GPIO
wiringPiSetup: mmap (GPIO) failed: Operation not permitted
```
解决方法,编辑 `/boot/cmdline.txt` 添加内容 `iomem=relaxed`,重启树莓派。
解决方法,编辑 `/boot/cmdline.txt` 添加内容 `iomem=relaxed`执行 `reboot` 命令重启树莓派。
当前,`/boot/cmdline.txt` 最终内容为:
......
[openEuler]
name=openEuler 20.03 LTS
baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/OS/aarch64/
#generic-repos is licensed under the Mulan PSL v2.
#You can use this software according to the terms and conditions of the Mulan PSL v2.
#You may obtain a copy of Mulan PSL v2 at:
# http://license.coscl.org.cn/MulanPSL2
#THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
#IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
#PURPOSE.
#See the Mulan PSL v2 for more details.
[OS]
name=OS
baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/OS/$basearch/
enabled=1
gpgcheck=0
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
[openEuler-source]
name=openEuler 20.03 LTS - Source
baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/source/
[everything]
name=everything
baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/everything/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS/everything/$basearch/RPM-GPG-KEY-openEuler
[EPOL]
name=EPOL
baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/EPOL/$basearch/
enabled=1
gpgcheck=0
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
[openEuler-everything]
name=openEuler 20.03 LTS - Everything
baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/everything/aarch64/
[debuginfo]
name=debuginfo
baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/debuginfo/$basearch/
enabled=1
gpgcheck=0
\ No newline at end of file
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS/debuginfo/$basearch/RPM-GPG-KEY-openEuler
[source]
name=source
baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/source/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS/source/RPM-GPG-KEY-openEuler
[update]
name=update
baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/update/$basearch/
enabled=0
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册