最近在用unity模仿做出一个12年的Flash游戏,我用Git做数据备份,但是随着不断的新资源加进来以后,Git目录开始变得越来越大,推到Github上已经满足不了我的要求,正好家里有个正在吃灰中的树莓派,还有一个闲置的硬盘,便心血来潮准备搭建一个Git服务器,顺便记录一些过程
原材料
- 吃灰中的树莓派ZeroW x 1
- 8GB SD卡 x 1
- 320GB 笔记本硬盘 x 1
- SATA to USB3.0 硬盘盒 x 1
- Putty软件
- 蓝牙串口模块 x 1
- 一堆杜邦线
- 笨拙的双手 x 1
之所以要用到蓝牙串口模块,是因为树莓派没有屏幕(外接不方便),有时候ssh怎么都连不上,也不知道发生什么了,更不敢贸然断电重启,庆幸的是树莓派上有一组串口接口,通过它可以很方便地在无网络环境下登录shell
物理连线
首先开始连线,将硬盘通过usb连接到树莓派的OTG接口上(我的硬盘盒只剩下一个电路板了,hiahiahia)
因为手上没有microusb线,就只好用typec线加转接头了
把蓝牙串口模块连接到树莓派的串口上
模块的vcc
连接到树莓派物理引脚1号(3.3v
)上
模块的gnd
连接到树莓派物理引脚6号(gnd
)上
模块的tx
连接到树莓派物理引脚10号(RXD
)上
模块的rx
连接到树莓派物理引脚1号(TXD
)上
注意模块的tx
、rx
和树莓派的tx
、rx
是相互反接的,一方的发送,当然就是另一方的接收了
上电开机
线接好后就可以开机啦,直接插上电源就会启动
启动完毕后看一下功率,PiZeroW相当省电,平时待机大约5v * 0.1a = 0.5w
的样子,满载时是0.2a
,差不多1w
的功耗(我拍照时硬盘已经休眠了,当然硬盘唤醒时大概有0.2a
的额外电流)
打开串口Shell登录
第一次使用需要先打开树莓派串口登录功能,先从ssh远程登录,输入sudo raspi-config
打开配置界面,找到5 Interfacing Options
(接口设置)按Enter
确定
再切换到P6 Serial
(串口),按Enter
键
这时,它会问你是否开启通过串口登录Shell的功能,我们选择是yes,按Enter
键,然后重启树莓派,配置完成
如果你确实不想用官方提供的raspi-config
来配置,也可以这样操作
- 编辑
/boot/cmdline.txt
,在文件开头添加console=serial0,115200 console=tty1
和一个额外的空格,注意整个文件都只有一行,请不要多打回车 - 编辑
/boot/config.txt
,找到[all]
,在[all]
下方添加一行enable_uart=1
- 保存重启
从蓝牙串口登录
现在已经打开串口登录功能了,等待系统重启完毕
可以看到蓝牙模块上的灯已经在闪烁了,我们就通过蓝牙登录树莓派吧。
打开系统设置,添加蓝牙设备,找到蓝牙串口模块的名字,连接,输入PIN,一气呵成
打开设备管理器,找到对应的串口号,不知道为啥会有2个,但是以我的经验来说选数字小的那一个就对了,就是COM6
找到了串口号后,打开putty,将ConnectionType
从SSH
切到Serial
(串口)上,会发现SerialLine
会变成COM1
我们将COM1
修改为设备管理器里的COM6
,并将Speed
设置为115200
,这个Speed
代表串口波特率,只有双方都使用同样的波特率才能够正常传输数据,树莓派默认的波特率是115200
(可以通过编辑/boot/cmdline.txt
修改)
输入好串口号和Speed后,点击下方的Open
按钮,等待3-5秒就会出现登录的界面啦
我们输入用户名pi
和自己的密码,看到这个光标就代表登录成功啦,就可以执行任何命令了
由于串口不依赖网络,我们可以用这个特性配置wifi,或者出现故障时进行救援连接,非常方便
搭建Git服务端
接下来开始搭建Git服务端,考虑到ZeroW的性能(bcm2835单核处理器),直接放弃Gitlab了,也许树莓派4的配置勉强一战。
由于是在局域网里,不会对外开放,我就选择最最最简单的搭建方式了,具体可以参考廖雪峰大佬的这篇文章,我这里讲一下大致流程
首先要给树莓派设置秘钥登录,设置好后开始安装Git,执行sudo apt install git
等待安装/升级完毕就好了
接着在树莓派上创建一个目录用来存放Git仓库,其实远程仓库和本地仓库并没有什么不同,纯粹为了7x24小时开机并交换大家的修改。
我这里就创建在mkdir /home/pi/git-repositories
这里了
如果是新项目,就在/home/pi/git-repositories
下执行命令,git init --bare example
加上参数--bare
后就会创建一个裸仓库(所谓裸仓库就是指没有工作区的git仓库,因为共享仓库不需要工作区),这样服务端就搭建好了
如果是已经存在的项目,先在/home/pi/git-repositories
中创建一个空目录example2
,然后将本地项目的.git
目录复制到example2
中就搭建好了(只需要复制.git
目录就好了)
接着是配置git客户端,我们首先Clone仓库,比如我的什么树莓派ip是192.168.1.100
,使用pi用户进行登录,那么就执行命令git clone pi@192.168.1.100:/home/pi/git-repositories/example
就可以克隆到本地了
后续也可以把这个Git地址添加到仓库中,用于后续的推代码步骤
最后要说一下,蓝牙串口不用时一定要使用exit
命令退出登录,并且一定要修改默认的pi
用户和root
用户的密码,尤其是root
用户,不然你的邻居可能无意间连接上来,直接黑掉你的树莓派
为了保险起见,可以给蓝牙模块设置一个PIN,再配对时需要输入正确的密码才能连接
后话
Git服务器虽然搭建起来了,但由于受到CPU性能的限制,Git上传速度只有可怜的500kb/s,下载只有700kb/s,这还是外置硬盘的读写速度,不过好歹能用,等明年有钱了就上咸鱼淘一个树莓派3b去,先将就着用一下吧,反正也是备份数据,对速度要求并不高
(可以看到Clone时CPU已经接近100%了,而Push时的网速更慢)