我的第一个树莓派 Happy Children’s Day – My First Raspberry Pie

Posted on 2021-05-17  541 Views


P为了庆祝即将到来的六一儿童节,买了个树莓派(3B+)来玩,实现了好久以来的夙愿:)。
To celebrate the coming Children's day, I brought a raspberry pie to play, realizing an idea I have always thinked of, so to speak.

· 简单介绍
能轻松找到的我就不说了,放点儿干货,以后看到有意思的可能再更新:
1、SD 卡为什么只剩 50 几 M 的原因:在 SD 卡安装了 Linux 系统之后,放到 Windows 系统下查看,似乎都只剩下几十M,因为 linux 下的分区 Windows 系统下是看不到的!装了 Linux 系统之后,SD 卡会分成三种格式的分区,分别是:FAT32、EXT3、SWAP2,Ext3 区属于 linux 的文件系统,就和 Windows 系统的系统 C 盘一样 Swap 区为 linux 的虚拟内存区,主要在物理内存不够用的时候,做缓存用的。以上两个,是 Linux 系统的分区。FAT32 就是新手看到的那“几十M”了,所以不必质疑,这是正常情况,可以使用资料包里的【清空还原 SD 卡教程】就可以恢复原来的大小。就能重装系统了!

· 烧录系统
首先登陆官方网站,在software一栏中下载Raspberry Pi Imager工具,将树莓派的SD卡通过读卡器连接到电脑上,打开软件,在第一栏operating system选择操作系统,如果内存足够大,可以选择第二栏raspberry pi os(other)中的Full版本,这个版本中含有完整版的操作系统和一些必要的软件。

· 启动系统
由于没有购买树莓派的显示屏(穷),所以要通过ssh远程连接来操作。首先要获取树莓派的IP地址。这里通过连接手机wifi热点的方式获取。首先在烧录好的SD卡里面添加两个文件:一个是无后缀的ssh文件,不用内容;另一个是wpa_supplicant.conf文件,文件中需要写以下内容:

country=GB  
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev  
update_config=1  
network={  
ssid="此处填手机热点的名称,注意手机热点不能有中文字符"  
psk="手机热点密码"  
priority=99  
#priority是优先级,数字越大,说明优先级越高  
#注意填ssid和psk时不要把""删掉  
}  

这里参考的教程是:树莓派没有路由器,连接手机热点使用

接下来给树莓派通上电源,打开手机热点,可以看到树莓派已经连接上了手机的wifi,通过手机热点中的设置可以看到树莓派的IP地址。

接下来就可以用电脑远程连接树莓派了。这里注意要让电脑和树莓派连接到同一个wifi热点,因为这样才能使两个设备在同一个局域网里,才能够用IP互相识别。如果电脑用的是移动网络,需要用服务器的公网IP才能通过ssh连接过去。

远程连接的软件我用的是Putty,连接上后需要输入用户名和密码,默认的用户名是pi,密码是raspberry.之后就能够进入命令行进行一些初始化设置了。我重置了密码,并拓展了内存,但实际上还有更多可选操作。

这里的设置参考的教程是:树莓派开机配置(无屏幕)

连接上ssh后可以设置远程桌面,并通过图形界面来控制树莓派。

这里参考的教程是:树莓派无屏上手指南
首先在树莓派上安装xrdp服务:
sudo apt-get install xrdp
接着在windows电脑端的开始搜索栏里面输入mstsc打开远程桌面连接软件,通过IP地址连接到树莓派。输入用户名和密码后可以开机看到远程桌面。

可能有用的note:
这篇文章里面谈到了更改树莓派的频率问题:树莓派4+无屏幕安装系统+ssh远程+远程桌面;
这篇里面讲到换源问题:树莓派开机配置(无屏幕)

你也可以通过网线将电脑的网络供应给树莓派使用,其中需要将WLAN中的设置改为共享,再找到树莓派的IP地址。可以参考教程:树莓派网线直连PC端这个我在树莓派的系统里面成功了,在picroft(就是下面讲到的这个mycroft AI的系统里面却一直ssh连不上,提示错误connection timed out,不知道咋回事。)


【WARNING! 警告!】花式踩坑而且并没有成功,接下来的内容大可以不看了。

接下来是打算在树莓派上安装一个叫做Mycroft的AI(Because I am a fan of Mycroft Holmes recetently~)

发现要重新烧录系统……
首先在官网上下载系统的img文件,这玩意居然有3个G,chrome下载的速度不可忍受,于是下载了一个迅雷并且忍痛充了一个会员,钞能力还是香的,半小时搞定。

重复上述步骤,用putty远程登陆时发现不能直接输入IP地址,需要输入pi@IPADDRESS.

然后就是一路按照setup guide的设置下来就行了,用这个命令mycroft-setup-wizard可以重新来一遍。

不过我还遇到一个问题,就是它说会重启然后报一个注册码,但是我没有看到。而且报告:"Please update dependencies by running ./dev_setup.sh again."

官网找到一份trouble shooting的文件,里面表示可能是虚拟环境的问题:
"If your CLI won't run, it is highly likely to be an issue with the Mycroft virtual environment. The easiest solution we've found has been to remove and reinstall the virtual environment."

解决方法如下:
First, delete the existing virtual environment:
sudo rm -r ~/mycroft-core/.venv/
Next, we run the setup script again:
mycroft-core$ ./dev_setup.sh
This will rebuild your virtual environment.

然后我试了一下,出现rm: cannot remove '/home/pi/mycroft-core/.venv/': No such file or directory,爷要生气了。

然后我再次尝试,就一直提示我"no module named inflection",在GitHub的issue里面找到一个方法,大概是说要install 这个inflection。

原文如下:
penrods commented on Aug 31, 2018
I'm almost certain that the problem is that 'inflection' didn't get into the venv. You should be able to do the following:

cd ~/mycroft-core
source venv-activate.sh
pip3 list
I'll bet 'inflection' isn't in that listing, which is within the mycroft venv. If not, you are in that environment, and can go ahead and run:

pip3 install inflection==0.3.1
Let's see if that works for you, and if so then we can figure out why dev_setup.sh didn't do this for you.

我试了一下也没成功,但是我cd到了mycroft-core这个文件夹下面,于是我试着./dev_setup.sh,跑出来一些东西。但是在一个pynacl的文件处卡住了,或者说运行缓慢。鉴于这时候已经很晚了,我让程序跑着就去睡大觉了,不知道跑了多久。

搞了一下,发现mycroft-cli-client的时候经常连接不到messagebus websocket这样一个网站,似乎是mycroft的服务支持的网站什么的?总而言之对于我的input就一直显示大概是waiting for mycroft rebooting这意思的错误,反正是用不了。

后来重新烧录了几次系统,树莓派的官方系统一切正常,但是切换到picroft的时候就各种不OK。怀疑可能是不能科学上网连接不到官网,或者是宿舍网速过慢造成的连接timed out。折腾了一天以后宣告暂缓安装计划。

作为一个mycroft粉丝,尝试失败实在是有点upset.不过看到官网还有找翻译者的,没准哪天得了闲可以帮个忙呢,感觉也还是有趣兮兮的(来自第二天的更新:发现他们并不需要中文翻译者,尴了个大尬)。下次有空继续折腾。( •̀ .̫ •́ )✧