树莓派3B+踩坑记录:一、安装Ubuntu Mate
2020-07-27 05:44:15 来源:互联网 分类:相关文章
树莓派3B+踩坑记录:一、安装Ubuntu Mate
树莓派,Ubuntu,ROS硬件准备软件准备系统烧录安装Ubuntu Mate更换国内源网络配置开启ssh远程其他彩虹屏解决方案XShell和Xftp下载写在最后
树莓派,Ubuntu,ROS
之前刚入手一块树莓派4B,捣鼓了几天之后想用下载个ROS和笔记本上Ubuntu连接玩玩,结果折腾了快一星期都死活装不上,然后就放弃了。现在树莓派官网里面Ubuntu仅支持到3B+,虽然ROS Wiki上面有教怎么在Raspbain上面安装ROS,但是试过之后发现对本小白来说还是不行啊,有兴趣的小伙伴可以看看这个官网的教程。
ROSWiki官网上在Raspbian安装教程
另外国外有大神已经在Pi4上面安装了Ubuntu19.10,大家也可以自己去找一下,不过听装完的人说效果不是很好。
所以身为穷人的我转手在闲鱼上出售了我的Pi4然后转头又入手了3B+,反正在安装Ubuntu和ROS的过程中基本上能踩的坑我都踩了,写这篇博文的目的一方面是给大家提供一些参考,这里记录了一些我折腾树莓派时的一些借鉴的博文、自己的心得等,另一方面也是给我以后的回顾用的。如果有写的不对的地方也希望大家及时指出,我可以进行修改。
硬件准备
在开始我们正式的安装之前,我们需要把材料都准备好,这里我列出了一些比较有必要购买的硬件:
树莓派3B+ ; SD卡及读卡器;16G以上即可,不过最好还是32G的 ; 无线键鼠 ;这个东西同时具备了鼠标和键盘的功能,而且只占用树莓派的一个接口就行了。虽然很多人说这个很好用,其实我个人觉得用起来还是有点麻烦的,其实还不如某宝买一个60多块的鼠标键盘套装,毕竟树莓派有4个USB接口,大部分情况下还是够用的; 显示屏和HDMI线 ;这个是重点要记下来!因为我之前用的都是Raspbian,而Raspbian基本就是卡插进去之后可以通过ssh远程登录,但是,Ubuntu开机的时候会有个系统的配置过程,因此无论是ssh还是VNC什么的都是不可以直接远程控制的!我当初弄了很久才反应过来,所以非常有必要弄个显示屏。当然其实不买也没事,也可以直接通过HDMI线连到家里的电视上面进行配置; 网线,可选;
软件准备
DiskGenius, Win32DiskImager
然后是树莓派官方的系统文件,这里我选择的是对应3B+版本的Ubuntu Mate18.04,对应的ROS版本为Melodic。
Ubuntu Mate官方下载地址
进入网页之后依次按如下选择
如果是安装16.04的同学,对应的ROS版本是Kinetic,安装操作类似,以下过程也可以作为参考。
系统烧录
将SD卡插进读卡器之后再插进电脑中,DiskGenius里面读出来的U盘里面应该是有2个分区的,移至这两个分区的蓝色图块上面右键选择“删除当前分区”,然后就会发现蓝色图块合并成1个灰色的区域,再次选中并且右键选择建立新的分区,直接确定,然后左上角提交操作并确认格式化。然后等U盘退出又重新加载回来之后就可以关闭DiskGenius了。
之后通过Win32DiskImager选择镜像文件进行烧录。选择蓝色文件夹的图标,选择镜像文件,然后点击写入,弹窗直接点击确认。
完成之后,关闭Win32DiskImager,需要再次打开U盘空间,新建一个txt文件然后改为“ssh”文件,来开启ssh服务。
安装Ubuntu Mate
终于来到了“正餐部分”。拔出读卡器后,将卡插进树莓派中,然后把该差的都插好。这边是我的接线:上面是键鼠的接头,左边红色的是HDMI线(用来接电视的),黑色的是电源线。
通过HDMI线连接显示器后树莓派上电之后就可以直接进入安装界面,安装的过程和PC上的Ubuntu安装过程相同,进入界面之后依次选择语言,时区,网络连接,设置用户名和密码,键盘布局等,然后就可以进入Ubuntu Mate18.04的界面啦~
更换国内源
安装完成之后我们需要将Ubuntu Mate的源更换为国内的镜像源,因为系统默认的apt源是位于国外的服务器上的,因此当使用apt-get下载应用包时会非常慢,所以需要进行替换,国内如清华,中科大和阿里的都可以用。
这里推荐一篇非常好的博文,关于替换Ubuntu Mate源的,博主不仅提供了方法,而且还给出了背后的理由,非常值得学习!
换用国内apt源解决树莓派安装ubuntu后apt-get速度慢的问题
我这里稍微总结一下:很多同学在换源以及进行其他操作的时候都是从网页上面直接照搬的,但实际上里面的一些信息是不符合自己系统的。拿Raspbian打个比方就是你拿着Buster的源去给Stretch版本的用,这怎么行嘛。
我们使用如下命令打开source.list可以查看到里面的源。
sudo vim /etc/apt/sources.list
以其中一条代码行为例
deb http://ports.ubuntu.com/ubuntu-ports bionic main restricted
我们在更换源的时候,实际上只需要把中间的url部分进行替换即可!其他部分完全可以不用动,因为在改动这些东西的时候往往在不经意之间会使得源不符合你的系统版本。这些部分的意思归纳如下:
名称 对应Ubuntu版本 bionic Ubuntu18.04 xenial Ubuntu16.04 wily Ubuntu15.10 vivid Ubuntu15.04 trusty Ubuntu14.04 precise Ubuntu12.04 名称 意思 main “基本组件”,只包含符合Ubuntu的协议要求并由Ubuntu团队维护支持的软件 restricted “受限”组件,其中包含了非常重要的,但并不具有合适的自由协议的软件,如显卡驱动,同样有 ubuntu团队维护支持 universe “社区维护”组件,其中包含的软件种类繁多,它们可能采用受限于协议,可能不是,但都不为ubuntu 团队维护 multiverse “非自由”组件,其中包括了不符合自由软体要求而且不被Ubuntu团队支援的软件,通常为商业公司编写的软件
因此,我们在更换源的时候,实际上只需要把对应的url网址进行更换就行了,举例来说,如果你用的是某科大的镜像源,那就是把内部代码里面的“http://ports.ubuntu.com/ubuntu-ports”替换为“http://mirrors.ustc.edu.cn/ubuntu-ports”就可以了,如果你用的是阿里的,那就是替换为"http://mirrors.aliyun.com/ubuntu-ports"。
如果遇到权限问题,使用以下命令修改权限即可
sudo chmod 777 /etc/apt/sources.list
然后进行源的更新
sudo apt-get update
网络配置
尽管在Ubuntu Mate系统初始化配置的时候会提示你连接wifi,但是还是需要配置一下我们的网络。因为我在配置完系统之后发现我只能连接到一开始选择的wifi网络,尽管存在其他wifi,但是我输入密码之后还是死活连不上,一开始还以为是系统问题,所以重新安装了好几遍(呜呜呜,浪费了我超级长的时间),后来仔细研究了一下发现还是需要对系统的网络进行配置(如果大家能直接连上别的wifi就直接跳过这步吧)。
关于网络配置的详细内容请移步这篇博文:树莓派3B+笔记(3)–ubuntu mate下配置wifi
这里仅列出了我配置时的方案,如果有其他问题直接移步上面的博文。执行以下命令:
sudo vim /etc/wpa_supplicant/wpa_supplicant.conf
打开之后输入以下内容:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev network={ //你需要连接的其中一个wifi ssid="ssid" //wifi名称 scan_ssid=1 //连接隐藏WiFi时需要指定该值为1 psk="密码" //wifi密码 priority=5 //优先级,值越大,优先级越高 } network={ //你需要连接的第二个wifi ssid="ssid" psk="密码" priority=1 }
这里我配置了自己家的wifi,以及手机和电脑的热点,大家可以根据自己的需要自行配置。
配置完成后执行
sudo systemctl restart networking
开启ssh远程
首先执行以下命令
sudo raspi-config
界面中选择 Interfacing Options,进入后选择ssh确定Enable开启(其实顺便也可以把camera、I2C什么的也一起开了)。
开启之后退回界面点击Finish并重启系统(这里插一句,如果是16.04在开启ssh后重启可能会进入彩虹屏,并且一直卡在那里。18.04的用户可能也会遇到,不过等一会就会马上进入系统,所以不用担心。关于16.04彩虹屏的解决方法我写在了最后)。
重启系统之后,我们不管原系统有没有ssh-server,直接进行重装。
sudo apt autoremove openssh-server //卸载ssh sudo apt update //更新源 sudo apt install openssh-server //安装ssh sudo service ssh start //开启ssh update-rc.d ssh enable //ssh开机自启动
如果在最后一步的时候显示权限不够,用"su root"进入root用户执行。
查看ssh server是否开启可用以下命令,看到sshd时即已经开启
ps -e | grep ssh
然后确保我们的电脑和树莓派处于同一个网段下面(就是说两者接了同一个wifi或同一个热点),树莓派处输入
ifconfig
这里的inet对应的ip就是我们ssh用来远程控制的树莓派ip地址
用XShell软件登陆连接(该软件可以免费下载的,具体拉到文章最后面)
初次登陆会让你输入用户名和密码,输入我们初始化Ubuntu Mate系统时配置的用户名和密码,点击记住选项即可,然后我们就登陆进了我们的树莓派。
其他
这边是关于树莓派彩虹屏的解决方案以及XShell和Xftp的下载方法
彩虹屏解决方案
如果是安装Ubuntu Mate16.04的通信,会在执行完“sudo raspi-config”配置开启ssh重启之后进入彩虹屏。这边给大家一份文件:
链接:https://pan.baidu.com/s/1-9UrpdEQh4nmSdDvH-Lw2A
提取码:ab3o
下载完之后将SD卡从树莓派中拔出,然后插入读卡器中重新在电脑里面打开,然后将boot文件解压,把里面的4个文件拷贝替换卡内的原文件。然后拔出重新插回树莓派里面,开机发现完美解决!
XShell和Xftp下载
首先,不要去下载网上的破解版(我之前下的破解版然后不知道为啥有一天认证过期了。。。)
如果你是学生,可以直接去外文官网申请下载免费版的(非商业用途),不要去中文官网,这里我直接给链接:XSHELL6官网下载
进去之后右下角选择免费授权页面
填好姓名和邮箱
这个邮件回复还是很快的,基本上会直接在回复的邮件里面给你免费下载的链接,不过链接的有效期只有1个月,过期之后需要重新申请。
写在最后
关于ROS的安装,由于这篇文章比我预期的写的多,因此就不放在这里了,另外再开一片专门讲树莓派ROS安装的,这个坑真的巨多。。。我把我踩过的坑以及解决方案都总结了一下,希望能对大家有所帮助。
Ubuntu Mate上ROS的安装及问题解决方案总结