Skip to main content

15 posts tagged with "raspberrypi"

View All Tags

ubuntu替换arm国内源

· One min read

需求场景

树莓派装了ubuntu mate桌面系统,替换为国内ubuntu源报错。

报错原因

清华,阿里等镜像源中ubuntu不包含arm源,arm源在ubuntu-ports中。

解决方案

ubuntu替换为ubuntu-ports即可

# 清华源ubuntu20.04
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse

树莓派连接蓝牙音响没有声音?

· 3 min read

需求场景

树莓派连接小爱音箱,蓝牙已配对,音箱已连接,并且设置音频输出为音箱,然而却始终没有声音!折腾了好久,查了很多相关资料,终于能出声了。

系统环境

raspbian buster

相关参考

1.解决树莓派连接蓝牙不能听见声音
2.树莓派外接蓝牙音箱
3.树莓派3B+蓝牙音箱没有声音
4.解决树莓派HDMI接口没有声音输出的问题

解决过程(折腾啊)

首先根据参考1,更新了蓝牙相关的包,pi加入蓝牙用户组。并没有解决问题
然后根据参考2,设置音频输出为蓝牙音箱。并没有解决问题
然后根据参考3,修改/boot/config.txt的hdmi.force.hotplug。成功解决问题,开心啊,不过引入新的问题。vnc远程桌面用不了,连接黑屏。
然后根据参考4,还原参考3修改的配置。修改drive,成功解决问题,而且vnc远程桌面没有影响。

奇怪bug

虽然能播放音乐了,但还是有问题的。vnc下还是播放不了音乐的。vlc和mplayer都试过。root用户和pi用户都试过。ssh连接mplayer也无法播放,无论试root用户还是pi用户连接。然后奇怪的问题出现了。当我用root用户登录,然后su pi切换到pi用户,再用mplayer居然可以播放了。真神奇啊!!!

后续

现在重装了32位的系统,莫名其妙的好了。关于之前奇怪bug的原因,可能是我一直以root身份登录ssh,vnc,安装软件也都是root身份,但是树莓派的音频要求不能以root用户登录。所以就会出现root用户登录无法播放,su pi之后就能播放。而直接用pi用户登录会导致软件没有启动,所以也无法播放。重装系统之后一直以pi身份登录安装软件,就没有问题了。当然这个原因仅限猜测啦。

树莓派4b安装docker

· One min read

系统环境

raspbian buster

步骤一:卸载老版本

sudo apt-get remove docker docker-engine docker.io containerd runc

步骤二:shell安装

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh –mirror Aliyun

后续说明

树莓派4b安装docker,官方建议shell脚本安装方式,参考官方文档,由于是国内环境,默认安装方式比较慢,需要加上
mirror参数,使用Aliyun源下载。

基于frp快速搭建内网穿透工具

· 5 min read

需求场景

在家办公时,往往需要同事看到本地服务器的效果。当然可以选择上传服务器的方式解决,当没有服务器,或者希望对方能直接访问本机时(传到服务器太麻烦,可能需配置环境),就需要内网穿透工具啦。还有一种情况就是微信公众号开发需要填写可访问的回调域名,这也可以通过内网穿透工具实现本地测试。网上有很多内网穿透工具,不过不是需要收费,就是需要注册限流等,免费的持续好用的真心没几个。如果自己有一台备案过的服务器,当然是自己搭建最好不过。

可选方式

现在比较常用的是基于ngork和frp两种方式,看了看star数和更新维护状态,后来决定使用frp。

简单介绍

frp基于go语言开发,包括服务端和客户端,服务端配置文件frps.ini,客户端配置文件frpc.ini。服务器端和客户端版本都必须是同一版本,作者并没有做兼容处理,否则可能无法生效。

开始搭建(服务端)

已经有大神做了一键安装脚本,参考https://github.com/MvsCode/frps-onekey
建议选择阿里云方式

wget https://code.aliyun.com/MvsCode/frps-onekey/raw/master/install-frps.sh -O ./install-frps.sh
chmod 700 ./install-frps.sh
./install-frps.sh install

该脚本自动安装go和frp,按照提示来安装即可.配置文件地址/usr/local/frps/frps.ini
因为需要多http客户端,所以需要做泛域名解析*.proxy.urcloud.co,之后就可以通过test1.proxy.urcloud.co,test2.proxy.urcloud.co等域名访问,frps.ini配置修改subdomain_host参数

subdomain_host = proxy.urcloud.co

常用命令/etc/init.d/frps {start|stop|restart|status|config|version}

开始搭建(客户端)

比较遗憾的是并没有多少文章介绍客户端的下载,都只提到了使用方式。(可是github下载真心慢啊),没有梯子的同学可以用http://gitd.cc/ 网站提供的github代下载服务,只要把frp github release页面对应版本的地址复制进去,如https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_windows_amd64.zip,生成链接后下载即可。注意需要选择和服务端安装的版本一致。frpc.ini配置参考如下

[common]
server_addr = xxx.xxx.xxx.xxx #服务端ip地址
server_port = 5443
token = xxxxx #frps.ini中的token
admin_addr = 127.0.0.1
admin_port = 6443 #客户端dashboard端口
admin_user = admin #客户端dashboard用户名
admin_pwd = admin #客户端dashboard密码
[web1]
type = http
local_port = 8080 #客户端服务器端口
subdomain = test1 #(服务端域名,泛域名解析)

type = http local_port = 8080 #客户端服务器端口 subdomain = test1 #(服务端域名,泛域名解析)

[web2]
type = http
local_port = 8081 #客户端服务器端口
subdomain = test2 #(服务端域名,泛域名解析)

type = http local_port = 8081 #客户端服务器端口 subdomain = test2 #(服务端域名,泛域名解析)

启动客户端./frpc -c frpc.ini之后,就可以通过test1.proxy.urcloud.co:8000(frps.ini 设置的vhost_port)访问本地的8080端口啦

ssh远程登录

[ssh]
type = tcp
local_port = 22
remote_port = 7000

如果需要远程登录家里的电脑或者树莓派,就需要配置ssh啦
frpc.ini文件配置好并设置好frpc客户端开机启动,就可以通过ssh root@ip -p 7000命令随时实现ssh远程登录啦

树莓派设置开机启动frpc客户端

参考systemctl设置开机启动,管理service

后续探索

本文暂未涉及https的使用。后续使用到会再更新。