使用树莓派

阿里云腾讯云薅羊毛的廉价主机,性能有点烂,我有时在服务器上多部署了一些平时用的工具,就卡的不行。为了和朋友联机,我在阿里云1G2M的云服务器上部署了一个泰拉瑞亚的服务器,结果卡的大家都动不了。云服务商提供的高性能主机价格太高,薅羊毛也只有一次,因此我就想搞一台性能尚可的微型主机,同时还有一定可玩性就更好了。树莓派就是最好的选择了。

系统选择

我的树莓派型号是4B4GB,淘宝购买,不注明的话商家会给你预装系统,建议安装,减少麻烦。基于linux debian的官方系统Raspbian一般有三种版本lite(无图形化界面),桌面版,桌面版含常用软件。不建议第三个,里面包含了太多无用的东西,如果你用的是16g sb卡空间会捉襟见肘。而一般店家都会默认装第三个系统,建议提前沟通安装版本。当然为树莓派定制的系统镜像还有很多,Ubuntu、Arch Linux ARM等等。还有一些为硬件用途定制的系统,我并不太了解。

连接wifi

通常购买树莓派不会购买屏幕,通过SSH或者VNC连接主机。那第一次上网该如何连接?

  1. 条件:有线网络,拥有路由器管理权限。 最简单的方式,直接插上就好了,在路由器管理上面找到 Raspberrypi 查看ip即可,默认账号密码与系统镜像有关,官方系统Raspbian 默认帐号:Username: pi Password: raspberry
  2. 无上述条件,在电脑上编辑烧录系统的SD卡。编辑其中的 /boot/wpa_supplicant.conf 文件。详细请看 https://shumeipai.nxez.com/2017/09/13/raspberry-pi-network-configuration-before-boot.html

登录系统后编辑wifi账号密码的方式

sudo raspi-config

选择 network options->wireless LAN 然后依次输入账号密码完成

一些问题

使用的Raspbian镜像自带的一些软件功能有问题。

vim 键盘功能异常

vim中键盘上部分按键无法使用(好像是树莓派键盘和标准键盘不同,所特别修改的)。可以卸载重装vim

sudo apt-get remove vim-common
sudo apt-get install vim

然而
apt-get报错:

dpkg: 无法恢复的致命错误,中止:
 软件包 libssh-gcrypt-4:armhf 的文件名列表文件缺少最后结尾的换行符

解决方法:

cd /var/lib/dpkg/info
ls libssh-gcrypt* 
ls libssh-gcrypt* 
#删除报错文件 并重装该模块
sudo rm libssh-gcrypt*
sudo apt-get reinstall libssh-gcrypt-4

SD卡容量异常

df -h

发现16G SD卡可用空间只有7G,不是无良商家的假冒伪劣产品,是树莓派默认隐藏了一部分空间(我不懂为啥要这么做)

解决方法:

sudo raspi-config

依次选择 ->Advanced Options ->Expand Filesystem

卸载不必要的软件

系统中可能有一些不需要的软件,尤其是安装了图形化界面版本系统的。

# 搜索已安装软件 
dpkg -l| grep Xxx
# 根据搜索到的软件,选择删除
sudo apt remove xxx
sudo apt-get autoremove --purge

自启动服务

通常我们使用树莓派这类主机,都会要跑一些常年在线的服务:web服务器,游戏服务器等等。

# 新建一个文件
touch my.service

编辑文件

[Unit]
Description=My service # 服务介绍
After=network.target

[Service]
ExecStart=/usr/bin/java -jar /home/pi/services/my-server-0.0.1.jar --server.port=9000 # 要运行的程序,注意使用绝对路径
# 服务要使用的目录,注意如果程序内配置使用的目录和不再这个路境内,会无法编辑。如服务器配置日志输出路径为/log,那按下方设置/data/my-server将无法输出日志
WorkingDirectory=/data/my-server

[Install]
WantedBy=multi-user.target
# 把配置好的脚本复制到systemctl的目录
sudo cp my.service /etc/systemd/system/my.service
# 重新加载
sudo systemctl daemon-reload 
sudo systemctl start myscript.service # 尝试启动
sudo systemctl status myscript.service  # 查看服务状态,可以看到服务输出的日志,方便排查问题

sudo systemctl enable myscript.service  # 开机时自动运行

注意,有时候后台运行的程序使用会使用nohup xxxx &的方式启动,千万不要自systemctl的ExecStart脚本汇总使用nohup,会导致启动失败。本来每个service就维护着一个独立的进程,nohup没有意义了。

samba共享文件

使用samba服务局域网共享文件

sudo apt-get install samba samba-client

配置smb.conf文件 /etc/samba/smb.conf ,尾部添加

[pi]
workgroup = pi #名字随意起
security = pi
netbios name = pi
comment = pi home
path = /media/pi/mnt # 我的外接移动硬盘的挂载位置
browsable = yes
writeable = yes
read only = no

samba读写速度慢

在局域网传输速率文档在2m左右,且响应速度慢如,直接打开samba共享的电影,跳转到指定位置可能会卡顿。

解决方法(不完善,待研究)

编辑 /etc/samba/smb.conf ,[global] 下添加参数:

min receivefile size = 16384
write cache size = 262144

重启服务,响应速度已经完全正常了,看电影不卡了,速度提升到 5-6mb/s+,仍旧不理想,也许和路由器性能、网络环境、树莓派本身性能、操作系统、usb接口的带宽等等因素有关,未能进一步找到原因。

外部网络访问树莓派

请看这一篇-> 将树莓派连接到公网