008_pi使用记录 - llj2kh/studynote GitHub Wiki

树莓派使用指南


[TOC]

  • 本文为本人使用raspberrypi的简单记录。

1. 系统安装

  • 从raspberrypi官网下载相应操作系统,在其他电脑上用dd命令将系统写入TF卡,插入pi中,连接线缆,即可开机使用。

2. 系统设置

  • 连接显示器的情况下,打开首选项,进行设置,启用ssh,vnc等。

  • 在ssh登录的情况下,可以运行rasp-config进行设置。

3. 连接WiFi

  • 在有显示器的情况下,直接设置;

  • 在ssh连接的情况下,编辑/etc/wpa_supplicant/wpa_supplicant.conf文件,添加相应SSID即可。

  • 该文件样式如下:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev  
update_config=1  
country=CN  
  
network={  
	ssid="I love love love"  
	psk="kkbbqwert12345"  
	key_mgmt=WPA-PSK  
}  
  
network={  
	ssid="V8"  
	psk="12369876"  
	key_mgmt=WPA-PSK  
	disabled=1  
}  
  • 具体详情后续研究。

4. 更换更新源

  • 由于原有的源都是国外的,更新速度慢,需更换成国内的。

  • 软件源:编辑/etc/apt/sources.list,注释掉原有的,添加国内的即可。

deb https://mirrors.aliyun.com/raspbian/raspbian/ buster main contrib non-free rpi  
deb-src https://mirrors.aliyun.com/raspbian/raspbian/ buster main contrib non-free rpi  
  
  
#deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi  
#deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi  
  
  
# xxx  deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi  
# Uncomment line below then 'apt-get update' to enable 'apt-get source'  
#deb-src http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi  
  • 更换系统源,编辑/etc/apt/sources.list.d/raspi.list即可。

deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main  
  
#deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ buster main  
  
  
# xxx-----deb http://archive.raspberrypi.org/debian/ buster main  
# Uncomment line below then 'apt-get update' to enable 'apt-get source'  
#deb-src http://archive.raspberrypi.org/debian/ buster main  

5. 安装samba

5.1 硬盘自动挂载

  • 将硬盘分区、格式化、挂载后,用blkid命令查看,指定分区的UUID。

  • 编辑/etc/fstab文件,使硬盘能够开机自动挂载。

proc            /proc           proc    defaults          0       0  
PARTUUID=42dfbc9b-01  /boot           vfat    defaults          0       2  
PARTUUID=42dfbc9b-02  /               ext4    defaults,noatime  0       1  
  
# UUID=566394ee-f8da-4beb-b17d-51dca22fb8f5	/samba	ext4	defaults	0	0  
#PARTUUID=542eb411-01	/samba	ext4		defaults	0	3  
UUID=7fbd8c33-97dc-4600-a710-532e298b09dc /samba ext4 defaults 0	0  
  
# a swapfile is not a swap partition, no line here  
#   use  dphys-swapfile swap[on|off]  for that  

5.2 安装samba

  • apt update

  • apt install samba

  • 编辑/etc/samba/smb.conf文件,在文件末尾添加指定共享目录,如下:

[xxxdata]  
	path=/samba  
#	valid users= pi  
	browseable =yes  
	public=yes  
	writable=yes  
	available=yes  
	security=share  
	guest ok=yes  
	usershare allow guests=yes  
	read only = no  
	create mask =0777  
	directory mask=0777  
  • **valid users=?**字段设置有效的登录用户,如果设置,则只有设定的用户可以登录,用户之间用空格隔开。且samba的登录密码是单独的,非系统密码。只有用Samba密码才能登录。

  • 利用smbpasswd -a pi来设置pi用户的登录密码。第一次设置密码,需-a选项,后续更改密码不需要该选项。

  • service smbd status命令,可以启动、查看Samba的运行状态。

  • 另一个命令:/etc/init.d/smbd status也可以实现同样功能。

  • 设置开机自动运行,

编辑/etc/rc.local在文件末尾添加:
/etc/init.d/smbd start即可。

6. ssh远程登录后,显示定制信息

  • 编辑/etc/profile文件,在末尾添加特定命令即可。

# xxx............  
df -h /samba  
echo -e "\ncpu temperature:  `cputemp`"  
# xxx............  

7. 安装minidlna实现流媒体服务器

7.1 安装minidlna

apt update  
apt install minidlna  

7.2 设置配置文件

  • 编辑/etc/minidlna.conf文件,在文件末尾添加内容。如:

media_dir=A,/samba/DLNA/Music  
media_dir=P,/samba/DLNA/Picture  
media_dir=V,/samba/DLNA/Video  
media_dir=V,/samba/DLNA/Film  
db_dir=/samba/DLNA/db  
log_dir=/samba/DLNA/log  
  • services minidlna status等命令,可以启动、查看状态等。

  • 另一个命令:/etc/init.d/minidlna status也可以实现同样功能。

  • 实现开机自动运行:

编辑/etc/rc.local在文件末尾添加:
/etc/init.d/minidlna start即可。

8. 安装aria2实现下载机功能

8.1 安装aria2

apt update  
apt install aria2  

8.2 创建配置文件

  • /etc目录下创建aria2目录用来存放配置文件:

mkdir /etc/aria2  
touch /etc/aria2/aria2.session  
touch /etc/aria2/aria2.conf  
  • aria2配置文件内容如下:

#=========文件保存目录自行修改  
dir=/samba/DLNA/Film  
  
disable-ipv6=true  
  
enable-rpc = true  
#打开rpc的目的是为了给web管理端用  
  
rpc-allow-origin-all=true  
  
rpc-listen-all=true  
  
#rpc-listen-port=6800  
  
allow-overwrite=true  
continue=true  
  
input-file=/etc/aria2/aria2.session  
  
save-session=/etc/aria2/aria2.session  
  
max-concurrent-downloads=3  
  • /etc/rc.local文件末尾添加如下语句,以实现开机自动运行,且指定运行的用户为nobody,以方便删改下载的软件。

# .........xxx  
sudo -u nobody aria2c --conf-path=/etc/aria2/aria2.conf  
# .............  

9. 安装apache

  • 为了能web管理aria2进行下载,需要安装yaaw和apache环境。raspi应该已经自带apache了。

  • 安装方法:

apt install apache2  
chmod 777 /var/www  

10. 安装yaaw

  • https://github.com/binux/yaaw下载yaaw,zip文件

  • 下载后将解压后的文件内容拷贝到/var/www/文件夹下,最终路径为:/var/www/html/index.html。此时输入树莓派的IP地址出现页面即正常。

yaaw

11. 定制bash

  • 编辑/etc/bash.bashrc,在其中添加alias内容即可永久化alias。如:

# xxx ........................  
alias ll="ls -l --color"  
alias la="ls -a --color"  
bind Space:magic-space  
alias cputemp="cat /sys/class/thermal/thermal_zone0/temp"  
alias film="cd /samba/DLNA/Film"  
# xxx ........................  
  • 添加如下代码,实现命令快速替换

# xxx...................  
bind Space:magic-space  
# xxx..................  
  • 修改家目录下 的.bashrc可以修改PS1改变提示的样式。

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w \$\[\033[00m\] '  

12. Kodi 安装

经典参考资料:
在树莓派中安装与配置kodi(XBMC)
[Guide] Kodi on Raspbian Buster 该文章是树莓派官方关于kodi安装的指导,里面有重要的设置指引。

写在前面

  • 树莓派安装kodi后,必须要连接显示器才能正常打开该软件,通过VNC等打开,显示画面不变,鼠标变忙。
  • 树莓派通过raspi-config设置启动成命令行状态的话,连接的显示器不显示登录界面,可以通过ssh登录,而后启动kodi,或者开机自动启动,屏幕即可显示kodi画面。(运行kodi不必须在桌面状态)。
  • 没验证通过设置不连接hdmi设备,通过VNC打开kodi能否成功,反正没有设置是不行的 。
-Kodi on the Raspberry Pi 4 will only function if you are using the Open Source drivers! This is the "GL (Fake KMS) OpenGL desktop driver with fake KMS" on raspi-config, which is currently the default on the Raspbian images for the RPi 4. If you select the Broadcom/Legacy driver, it won't work!  
  • 要安装kodi 树莓派设置里GL driver必须要设置成GL (Fake KMS) OpenGL desktop driver with fake KMS才可以,否则不行。
-Kodi on Raspbian requires a minimum of 160 MB of RAM dedicated to the GPU to function properly! This can be done by running "raspi-config" -> "Advanced Options" -> "Memory Split" -> 160.  
  • 在设置里需要分配内存给GPU,最少160M,可以适当增加。

引用别人的文章

在树莓派中安装与配置kodi(XBMC)

kodi 是一个免费开源的媒体播放软件,原生支持 DLNA 和Airplay,可以很方便地管理的电影和电视剧。同时 Kodi 拥有大量插件,极大地丰富了他的功能。本文将介绍 在树莓派中安装与配置kodi(XBMC) ,包括设置系统语言、开启手机投屏等。

安装kodi
设置语言
解决HDMI传输音频有噪声
开启DLAN(手机投屏)
使用手机遥控器
自启动
代理设置
空闲时关闭显示器
强制启用 HDMI 输出
参考
2020.01.11 增加了强制启用 HDMI 输出
2019.10.27 更新了声音噪声修复方法
2019.09.15 更新了代理设置和空闲时关闭显示器部分
1 安装kodi
安装 kodi 软件和插件 iptvsimple。

sudo apt-get install kodi kodi-pvr-iptvsimple
iptvsimple 插件可以使 kodi 收看网络电视。在网络山可以下载到扒好的IPTV直播源,在插件设置中打开直播源,就可以在 kodi 的主界面的电视中观看网络电视了。

2 设置语言
kodi原生支持中文,但是在修改语言前需要先更改主题字体。否则改完语言后,所有中文都将显示为方框。打开 Settings / Interface / Skin / Fonts 设置为 Arial based

接下来就可以设置语言了。打开 Settings / Interface / Regional / Language 设置为中文。如果Regional中只有English,关闭kodi并重启树莓派,再次进入kodi即可。

3 解决HDMI传输音频有噪声
我是将视频和音频都通过HDMI传输,再分离成vga视频接口信号和3.5mm的音频接口信号,分别接到显示器和音箱上。在使用过程中遇到了一个奇怪的问题,投屏部分视频(优酷和部分 bilibili 视频)时声音播放严重的噪声,但是大部分视频播放正常。而且如果设置音频通过树莓派板载的 3.5mm 的音频接口传输,则没有问题。结果发现应该是视频、音频信号分离过程导致了kodi的兼容性问题。通过改变音频输出设置就可解决。

修改文件 /boot/config.txt ,在文件最后添加行

hdmi_ignore_edid_audio=1
4 开启DLAN(手机投屏)
对我来说,手机投屏是一个电视盒的核心功能,也是我安装 kodi 的主要目的。

打开 设置 / 服务 / UPnP/DLNA 将其中的 允许通过UpnP远程控制 选项设置为 打开。

经测试 bilibili 、优酷、腾讯视频、虎牙直播、火猫直播都可以完美兼容,只有斗鱼直播无法使用投屏,会出现闪退问题。

5 使用手机遥控器
kodi 在安卓和 ios 系统中都有 app 可以当作遥控器使用,完全替代鼠标键盘(甚至更好的 使用体验)。 设置 / 服务 / 控制,打开允许通过 HTTP 远程控制 选项。端口默认就好,设置下用户名和密码。然后在手机与 kodi 置于同一局域网环境中时,遥控器app就可以自动搜索到 kodi ,输入用户名和密码即可使用了。

6 自启动
kodi 自启动也是非常必要的,不然每次开机都要使用鼠标或者键盘打开软件。我开始尝试了 参考2 中的方案,但是会提示错误。

ERROR: Unable to create GUI. Exiting
所以使用了一个另一个方案。

mkdir ~/.config/autostart
cp /usr/share/applications/kodi.desktop ~/.config/autostart/kodi.desktop
7 代理设置
kodi中一些插件(例如 TVDB等)必须使用代理服务器才能访问。kodi中自带了代理设置,在 设置 / 系统 / 互联网设置 中 ,但是我配置后没有反应,所以我找到了软件 proxychains 帮助 kodi 使用代理服务器进行联网。

proxychains的安装非常简单,使用 apt-get 工具可以直接安装。

sudo apt-get install proxychains
编辑 proxychains 的配置文件 /etc/proxychains.conf ,修改最后的代理服务器地址与端口。

socks5 127.0.0.1 1080
之后如果想让某个软件或者命令通过代理服务器访问互联网的话,只需要在程序的启动命令前加上 proxychains 即可。例如此时使用

proxychains kodi
就可以让我们的 kodi 通过代理服务器联网了。

对于图形界面下的快捷方式,可以直接编辑 kodi.desktop 文件,修改 [Desktop Entry] 中的 Exec 项为

Exec=proxychains kodi
8 空闲时关闭显示器
默认情况下,kodi 在空闲时的时候只会黑屏, 并不会关闭显示器(也就是停止 HDMI 输出)。先不说功耗问题,白天基本看不出来,但是到了晚上,显示器背光就会很明显了。 空闲时关闭显示器,可以通过配置屏幕保护实现。

打开 设置 / 界面 / 屏幕保护 / 屏幕保护模式 ,点击 获取更多 ,在弹出的窗口中找到 Turn Off,点击安装。大部分设备这时就可以实现空闲时关闭显示器了,但是树莓派还需要再配置下。 进入 屏幕保护模式 下的 设置, 更改 Display Method 为 No Signal on Raspberry Pi (using vcgencmd) ,这样就可以了。

树莓派4由于更新了硬件,之前的驱动不支持使用 vcgencmd 关闭 HDMI 输出,在最近的固件更新中进行了支持。所以如果配置后 HDMI 输出没有关闭,而是黑屏,则需要进行固件更新。

sudo apt-get update
sudo apt-get dist-upgrade
如果仍然不行,可以尝试使用 rpi-update 进行更新(最后的选择)。

9 强制启用 HDMI 输出
如果在没有连接 HDMI 的情况下启动树莓派,默认不会有 HDMI 输出,也不会启动图形界面。可以通过修改 /boot/config.txt 文件,令树莓派强制启动 HDMI 输出。首先在其中加入

hdmi_force_hotplug=1
此外还需要设定分辨率。在 Video options in config.txt 中找到显示器分辨所在的 hdmi_group 和 hdmi_mode,添加到 /boot/config.txt 中

hdmi_group=2
hdmi_mode=58
10 参考
Kodi 15/16/17 Packages for Raspbian
使用树莓派安装Kodi打造家庭影院
树莓派程序开机自启动方法总结
linux 终端下最简单的代理方式(proxychains)

13. 设置静态IP

参考资料:
树莓派手动指定静态IP和DNS 终极解决大法

按照参考资料进行设置即可,以下为参考资料内容

以下为引用内容

在把玩树莓派的过程中,往往需要手动给它设定一个静态的IP地址,一来可以防范DHCP自动分配的IP来回变动,导致远程SSH时常无法连接;二来还可以提高树莓派的网络连接速度。

对此菲菲君在网上查了很多资料,大多数方法都是修改 /etc/network/interfaces 配置文件,增加静态IP的设定。的确对于 Debian 系的 Linux 系统来说,不都是这样修改滴嘛?

不过马上就发现了一个问题,那就是通过修改 interfaces 设置静态IP的方法,并不完美,即便取得了静态IP,DHCP 服务依然会自动为树莓派分配动态 IP 和 DNS 地址,导致路由表默认网关出现冲突,以及手动给定的默认 DNS 不生效的情况。

解决树莓派静态IP和DNS难题的终极方法

其实解决起来特别简单,人家已经在 interfaces 文件的开头注释里告诉我们了要修改静态IP地址,需要修改的是 /etc/dhcpcd.conf 也就是 DHCP 的配置文件。

查看官方文档 man dhcpcd.conf 可知,需要配置 static IP 的话,只需修改以下参数:

vi /etc/dhcpcd.conf  
# 使用 vi 编辑文件,增加下列配置项  
  
# 指定接口 eth0  
interface eth0  
# 指定静态IP,/24表示子网掩码为 255.255.255.0  
static ip_address=192.168.1.20/24  
# 路由器/网关IP地址  
static routers=192.168.1.1  
# 手动自定义DNS服务器  
static domain_name_servers=114.114.114.114  
  
# 修改完成后,按esc键后输入 :wq 保存。重启树莓派就生效了  
sudo reboot  

另外注意配置时,你的静态IP一定要和你的路由器网段一致,比如:假设你的路由器的IP为 192.168.0.x 网段,则上面的 static ip_address 就要对应的修改为 192.168.0.x/24 。还有一点就是你的手动静态IP要注意不能跟路由器 DHCP 所自动分配的 IP 冲突,否则树莓派就有可能无法正常联网。

14. frp 配置

资料:
官网介绍
使用frp进行内网穿透
相关实现工具,比如n2n、softether、frp、ZeroTier等。

配置比较简单,照猫画虎即可

实现远程通过YAAW控制aria2完成下载

  • 建立aria2配置项
    [aria]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 6800
    remote_port = 16800
    用于配置YAAW访问aria2的接口,否则可以访问yaaw页面,但是不能正常操作。

  • 建立YAAW配置项
    [yaaw]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 80
    remote_port = 10080
    如此即可访问页面,要实现控制还必须在页面内设置 JSON-RPC path,设置为:
    http://x.x.x.x:16800/jsonrpc 即可远程控制。

配置开机启动

  • 将安装文件 systemd 目录下的 frpc.service 拷贝至:
    /lib/systemd/system/frpc.service ,适当修改目录路径。
  • 启动
    sudo systemctl start frpc
  • 设置开机启动
    sudo systemctl enable frpc
  • 重启
    sudo systemctl restart frpc
  • 停止
    sudo systemctl stop frpc
  • 查看应用状态
    sudo systemctl status frpc

frpc.ini 配置案例

[common]  
server_addr = x.x.x.x  
server_port = 7000  
  
[ssh]  
type = tcp  
local_ip = 127.0.0.1  
local_port = 22  
remote_port = 2200  
  
[http]  
type = tcp  
local_ip = 127.0.0.1  
local_port = 80  
remote_port = 8000  
  
[aria]  
type = tcp  
local_ip = 127.0.0.1  
local_port = 6800  
remote_port = 16800  

具体配置项含义请看参考资料

15. 蓝牙设置

具体请参考 通过蓝牙音箱播放音乐