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地址出现页面即正常。
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. 蓝牙设置
具体请参考 通过蓝牙音箱播放音乐