树莓派安装ubuntu系统配置过程(踩三天的坑总结的一些小经验)

本文详细介绍了如何配置树莓派的Ubuntu系统,包括从阿里源下载镜像,使用软件烧录系统,设置登录密码和WiFi,解决SSH连接问题,配置DNS,以及更换软件源等步骤,旨在帮助遇到相同问题的用户顺利完成系统设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在初次配置过程中,本人总结了以下几点,做此文章方便下次回顾,顺便把资源进行整合,希望能帮到跟我存在一样问题的朋友。在此过程参考了一些博主的文章,对应的链接也引入进来了(十分感谢!!!)

镜像下载

 

树莓派的镜像下载直接去阿里源可以找到,想要什么版本都有,对应的链接如下:

树莓派上的Ubuntu系统阿里源

找到对应的版本下载即可,我下载的是server无桌面版本的

 

系统烧录

8ce6747987f7bb9b01063c232de7a7e4.png

我用的是这两个软件烧录系统的,具体的方法网上有很多都很详细,大家可以看一下

树莓派Ubuntu系统烧录

 

登录系统时两个·需要注意的地方:

1、更改密码之前需要再一次输入之前“ubuntu”这个密码;

2、如果一直没反应,等大概半分钟就好了这种情况是因为系统还在运行其他的东西。

 

wifi配置

执行以下两个命令:

sudo lshw
sudo nano /etc/netplan 50-cloud-init.yaml

执行完第一个命令会有wlan0字样

执行第二个命令时配置相应的wifi信息

62a368c88160ea71f2ae35c33eb34ff6.png

注意:

1、:后面要留一个空格。

2、wifi名称可以带引号也可以不带引号,如果带引号连接不上去可以把引号去掉试试

 

接下来执行以下命名即可

sudo netplan -debug try
sudo netplan -debug generate
sudo netplan -debug apply

此时可以通过ifconfig查看对应的ip地址,但是ifconfig还没有下载因此根据提示安装对应的包之后即可通过ifconfig查看自己树莓派的ip地址。

如果查看不到ip地址此时重启一下再执行ifconfig命名查看即可。

sudo reboot

以上步骤便是我成功的方法,再次我也附上我参考的链接,里面详细说明了配置wifi时可能遇到的问题以及安装完桌面之后wifi图标不显示的解决办法,链接如下:

树莓派wifi配置问题详解

 

ssh连接

因为换源等其他操作需要大量的复制粘贴操作,因此我们先建立ssh连接,然后通过远程控制树莓派系统。

  1. ssh安装

一般系统默认给我们安装了ssh,部分没装的可以用以下命令安装。

安装ssh-client命令:sudo apt-get install openssh-client

安装ssh-server命令:sudo apt-get install openssh-server

 

  1. 开启ssh服务

sudo /etc/init.d/ssh start

 

  1. 修改ssh配置

1) 将PermitRootLogin prohibit-password那一行修改为PermitRootLogin yes

2) port 22前面的#去掉

 

  1. 重启ssh

sudo service ssh restart

 

  1. 建立连接

可以通过putty或者虚拟机命令行进行连接

用putty连接只需要输入ip地址即可,如出现无法登陆,提示“key exchange fail”,建议升级远程工具

如果用虚拟机进行连接的话在虚拟机终端控制中执行以下命令

sudo ssh ubuntu@192.168.1.1

其中ubuntu是你树莓派的用户名,后面的192.168.1.1是对应的ip地址

 

在连接的过程中可能报错:sudo: unable to resolve host ubuntu: Name or service not known

此时执行下面这个命令查看一下是否有第二行这句话,如果没有加上即可。

sudo vim /etc/hosts
127.0.0.1 localhost
127.0.1.1 ubuntu

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

此时便可以通过电脑远程操作树莓派了。

 

root权限

在终端中输入

sudo passwd root

​Enter new UNIX password: (在这输入你的密码)

Retype new UNIX password: (确定你输入的密码)

passwd: password updated successfully

如果要再次禁用 root 帐号,那么可以执行

 sudo passwd -l root

转到root权限操作系统的命令,在终端输入

sudo su

点击回车会提示你输入密码,即可登录root用户,想要退出时,使用exit命令即可。

返回原来的用户权限执行以下命令(username即你想切换的用户名)

su -username

注意:切换用户身份的两种情况: su username 和 su - username.下面就来说说它们的区别

su - username 实现的效果与直接用此username登录此机的效果是一样的,会运行环境变量,会处在用户默认的账户目录等等。而su username只是把用户切换过去了此用户名而已,而环境变量和目录则没有任何变化。

 

配置DNS

DNS设置不全会导致报Temporary failure in name resolution等类似的错误,因此需要提前配置好DNS避免后期出问题。具体步骤如下:

很多文章说这个sudo vim /etc/resolv.conf命令是可以成功的,但是经过我的研究发现,这个命令是一次性的,reboot之后里面的内容还是跟之前没改一样,因此我们需要用到下面这种方法。

执行命令

 sudo vim /etc/systemd/resolved.conf

在其中添加dns信息如下:

DNS=8.8.8.8 114.114.114.114

保存后退出,可能有些小白还不知道vim的使用方法,可以把执行命令中的vim改为nano,不过还是建议学一下vim的使用方法,这里有一个对应vim使用命令的链接:vim指令大全

然后以root身份在ubuntu终端中依次执行如下命令:

systemctl restart systemd-resolved
systemctl enable systemd-resolved
mv /etc/resolv.conf  /etc/resolv.conf.bak
ln -s /run/systemd/resolve/resolv.conf /etc/

注意:在最后一个命名执行后可能会报错说权限不够,我当时因为这个问题困扰了很久,加上f改为强制写入,因此可以把最后一个命令给改为下面这个命令:

ln -sf /run/systemd/resolve/resolv.conf /etc/

再查看/etc/resolv.conf文件就可以看到新的DNS信息已经写入其中了。即使重启内容也写入其中。

显示内容如下:

nameserver 127.0.0.53
nameserver 8.8.8.8
nameserver 114.114.114.114
options edns0 trust-ad

换源

换源的资源网上有很多,大家可以参考一些写得比较好的,这里做一下简单的介绍

首先执行这条命令把原始文件备份,避免后期出问题找不到原始文件

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

接下来就是执行以下命令修改源文件了

sudo gedit /etc/apt/sources.list

把文件原来的内容都删除掉,这里我是在清华源找的镜像,对应的链接:清华源ubuntu-ports镜像,不建议随便找一个博主的复制粘贴,官网的还是更权威一些。大家打开链接选择版本自行复制到文件里。

35cdfa589e389fc982c8ecf472d03e7f.png

 

注意:有些人找的源可能是Ubuntu的源,发现换了源之后执行更新的时候一直报错,这是因为树莓派的架构跟Ubuntu是不一样的,树莓派上装的Ubuntu系统用的是Ubuntu—ports的源。用我这个链接的源是没问题的。

接下来就是更新源了

sudo apt-get update

如出现依赖问题,解决方式如下:

sudo apt-get -f install

更新软件

sudo apt-get upgrade

最后更新软件花费的时间会比较长,大家耐心等待即可,到此源是完全配好了,我们已经拥有了一个相对完美的系统。

如果有安装桌面或者ros配置等方面需求的话可以关注我,我后续会更进,希望这个文章能够帮到你,如果有疑问或者更好的建议欢迎在评论区指出。后续再见……

 

 

<think>好的,用户现在问的是“安装在电脑里可以控制小车的摄像头吗”。我需要先理解他的问题。用户之前询问了关于在小型车主板上安装RealSense驱动的问题,现在可能是在扩展这个场景,想知道是否可以通过电脑来控制小车的摄像头,特别是RealSense摄像头。 首先,我需要确定用户的具体情况。假设用户的小车上装有RealSense摄像头,而他们想知道是否可以将驱动安装在电脑(比如远程的PC或笔记本电脑)上,从而通过这台电脑来控制小车的摄像头。这可能涉及到远程控制或数据传输的问题。 接下来,我应该考虑可能的实现方式。例如,如果电脑和小车在同一个网络下,用户可能想通过Wi-Fi或局域网传输摄像头数据,或者在电脑上处理数据,而小车只负责采集。这时候,RealSense的驱动确实需要安装在电脑上,如果电脑直接连接摄像头的话。但如果是远程控制,可能涉及到网络通信和中间件,比如ROS(机器人操作系统)中的相关工具。 然后,我需要分情况讨论。比如,电脑直接连接摄像头的情况和电脑通过小车主板间接控制的情况。在直接连接的情况下,驱动必须安装在电脑上,并且用户可以使用SDK或其他软件来获取数据。而在间接控制的情况下,小车主板可能需要运行某些服务,将摄像头数据通过网络传输到电脑,这时候电脑上的驱动可能不需要,但需要相应的客户端软件。 还需要注意用户可能的误区。比如,用户可能以为只要在电脑上装驱动就能直接控制连接在小车上的摄像头,但实际上如果摄像头是物理连接到小车的,电脑需要通过网络通信来获取数据,这时候驱动安装在小车的主板上,而不是电脑上。电脑端需要的是接收和处理数据的软件,而不是驱动本身。 另外,用户可能关心的是实时控制和低延迟的问题,这时候需要建议稳定的网络连接和合适的通信协议,比如使用ROS的topic或者WebRTC等流媒体技术。同时,安全性和权限设置也可能需要注意,比如防火墙配置和用户权限。 最后,总结回答时需要明确两种情况,并给出步骤或工具建议,帮助用户根据他们的具体场景选择合适的方法。可能还需要提到常见的工具如SSH、RTSP流、ROS等,以及如何处理可能遇到的问题,比如延迟或连接不稳定。</think>--- ### **能否通过电脑控制小车的摄像头?** **可以**,但具体实现方式取决于 **摄像头硬件连接方式** 和 **控制架构设计**。以下是两种典型场景: --- ### **场景 1:摄像头直接连接电脑** #### **实现条件** - 摄像头(如 RealSense)通过 USB/网线 **直接连接电脑**(如笔记本电脑、台式机)。 - 小车与电脑之间通过 **无线通信**(Wi-Fi/蓝牙/ROS)传输控制指令。 #### **操作步骤** 1. **在电脑上安装驱动** 按照 RealSense 官方流程(如 `librealsense` SDK)在电脑系统中安装驱动和开发工具。 ```bash # 示例:Ubuntu 电脑安装 librealsense git clone https://github.com/IntelRealSense/librealsense cd librealsense && mkdir build && cd build cmake .. && make -j4 && sudo make install ``` 2. **通过 SDK 控制摄像头** 使用电脑上的程序直接读取摄像头数据(深度、RGB 等),例如 Python 代码: ```python import pyrealsense2 as rs pipeline = rs.pipeline() pipeline.start() # 启动摄像头 frames = pipeline.wait_for_frames() # 获取数据帧 ``` 3. **远程控制小车运动** - 电脑通过 **ROS 节点**、**Socket 通信** 或 **HTTP API** 向小车发送指令(如前进、转向)。 - 小车仅作为 **执行终端**(如通过树莓派接收指令并驱动电机)。 #### **优势** - **算力集中**:复杂计算(如 SLAM、目标检测)在电脑端完成,降低小车硬件需求。 - **调试便捷**:实时查看摄像头数据,无需依赖小车屏幕。 --- ### **场景 2:摄像头连接小车,电脑远程访问** #### **实现条件** - 摄像头 **固定安装在小车上**,并通过 USB/主板接口与小车主板(如 Jetson Nano)连接。 - 电脑与小车处于同一局域网,通过 **网络通信** 远程获取摄像头数据。 #### **操作步骤** 1. **在小车主板安装驱动** 在小车的操作系统(如 Ubuntu on Jetson)中安装 RealSense 驱动(方法同场景 1)。 2. **小车端部署数据服务** - **方案 1:视频流传输** 使用 `FFmpeg` 或 `GStreamer` 将摄像头数据编码为 RTSP/RTP 流: ```bash # 示例:通过 GStreamer 推送 RealSense 视频流 gst-launch-1.0 realsensesrc ! videoconvert ! x264enc ! rtspclientsink location=rtsp://<电脑IP>:8554/stream ``` - **方案 2:ROS 通信** 在小车运行 ROS Master,发布摄像头 Topic,电脑通过 `rosbridge` 订阅: ```bash # 小车端启动 ROS 节点 roslaunch realsense2_camera rs_camera.launch ``` 3. **电脑端接收数据** - 若使用视频流:通过 `VLC`、`OpenCV` 或网页播放器接收 RTSP 流: ```python # OpenCV 读取网络流示例 cap = cv2.VideoCapture("rtsp://<小车IP>:8554/stream") ``` - 若使用 ROS:在电脑安装 ROS 并配置为同一网络: ```bash export ROS_MASTER_URI=http://<小车IP>:11311 rostopic echo /camera/color/image_raw ``` #### **优势** - **硬件集成度高**:摄像头随小车移动,适合动态场景(如巡逻、避障)。 - **低带宽需求**:可通过压缩传输仅关键数据(如检测结果而非原始视频)。 --- ### **关键注意事项** 1. **实时性与延迟** - 直接连接电脑:延迟低(USB 直连通常 < 100ms),适合实时控制。 - 网络传输:依赖带宽,Wi-Fi 下延迟可能达 200ms~1s,需优化编解码设置。 2. **硬件兼容性** - 若电脑为 Windows 而小车为 Linux,需确保跨平台协议一致性(如 ROS 或自定义 TCP/UDP 协议)。 3. **安全性与稳定性** - 远程控制时建议使用加密通信(如 WebSocket over SSL)。 - 为小车配置看门狗(Watchdog)程序,防止网络中断导致失控。 --- ### **推荐方案选择** | **场景** | **适用方案** | **工具链** | |------------------------|----------------------------------|-------------------------------------| | 实验室静态环境 | 摄像头直连电脑 + ROS 控制小车 | librealize + ROS Melodic/Noetic | | 动态巡检/户外 | 摄像头装小车 + RTSP 流远程传输 | GStreamer + OpenCV/PyAV | | 低算力小车(如树莓派) | 小车仅传压缩数据,电脑处理 | MQTT + TensorFlow Lite 结果回传 | --- ### **总结** - **直接控制**:摄像头接电脑时,驱动必须安装在电脑端,并通过程序直接操作。 - **远程控制**:摄像头接小车时,驱动装在小车主板,电脑通过网络协议获取数据。 - **核心问题**:明确摄像头物理连接对象,并设计合理的通信架构(直连 vs. 网络传输)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入~狮

如果喜欢可以多多鼓励!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值