树莓派 Zero C# 开发环境搭架

在不使用屏幕和键盘的情况下为树莓派安装系统、配置 wifi 和开启 ssh,安装 ftp 服务、mono 环境……

原创 小刀 2020年8月5日 14:40

以下是要准备的必须材料

一台 PC、wifi 路由器、树莓派主板 Zero (W)、TF 卡和读卡器、电源

树莓派的套餐购买传送地址 官方授权淘宝销售 目前价格 ¥200 内

下载 Raspberry 操作系统镜像

https://www.raspberrypi.org/downloads/raspberry-pi-os/

带推荐软件的镜像

包含了chromium 浏览器、Python 开发工具、播放器等

Raspberry Pi OS (32-bit) with desktop and recommended software

带基本桌面界面

Raspberry Pi OS (32-bit) with desktop

轻量版不包含桌面

系统资源占用低,推荐安装

Raspberry Pi OS (32-bit) Lite

下载烧录工具

使用烧录工具将操作系统镜像 img 文件烧录到 TF 卡

balenaEtcher

官方也提供了烧录工具,可以自动下载操作系统镜像

Raspberry Pi Imager

开启 ssh 和 wifi 自动连接

将烧录好的 TF 卡重新拔插后,打开 TF boot 磁盘,在磁盘上根目录新建一个名为 ssh 的空文件 注意不带扩展名

接着在相同目录新建一个 wpa_supplicant.conf 文件,其中的文本内容如下

country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
 
network={
ssid="wifi名称"
psk="wifi密码"
key_mgmt=WPA-PSK
priority=1
}

弹出 TF 卡后插到树莓派卡槽,开启树莓派电源,等待片刻让它连接到 wifi 网络

配置树莓派

首先需要下载一个 ssh 连接工具进行连接

https://www.chiark.greenend.org.uk/~sgtatham/putty/

用户名:pi

密 码:raspberry

如果不知道树莓派的 ip 可以到 wifi 路由器上查看设备名为 raspberrypi 的 ip 地址

打开配置

sudo raspi-config

打开后有多个选项,我们主要使用其中两项

  1. 包含 Change password for then 'pi' user 字样的选项是修改用户 pi 的密码 建议修改一个新密码

  2. 包含 Localisation Options 字样的选项是设置语言,进入后选择 Change Locale

    • en_GB.UTF-8 UTF-8
    • en_US.UTF-8 UTF-8
    • zh_CN.UTF-8 UTF-8
    • zh_CN.GBK GBK

回车进入下一屏选择 zh_CN.UTF-8 确定后需要等待片刻

修改 ssh 端口

默认是 22 端口,可能会被电信运营商关闭,编辑 ssh 的配置文件

sudo nano /etc/ssh/sshd_config

找到这一行

#Port 22

去掉第一个 # 号字母,然后改成你想要得端口号,例如:

Port 12345

修改后下次将使用该端口连接

ctrl + o 保存后 ctrl + x 退出

重启系统

sudo reboot

更新系统

sudo apt-get update

安装 FTP 服务

vsftpd 是开源的轻量级的常用 ftp 服务

sudo apt-get install vsftpd

安装后的默认目录是

/home/pi

编辑 vsftdp 的配置

sudo nano /etc/vsftpd.conf

找到以下行,定义一下:

访问端口,默认是 21 如果需要可以添加

listen_port=21

不允许匿名访问

anonymous_enable=NO

设定本地用户可以访问,比如用户 pi 即可登录

local_enable=YES

可以进行写操作

write_enable=YES

安装 mono 环境支持

安装依赖

sudo apt install apt-transport-https dirmngr gnupg ca-certificates

安装运行库

sudo apt-get install mono-complete

重启系统

sudo reboot

运行你的第一个程序

用 C# 编写一个控制台程序

using System;

namespace IMOONSTAR
{
    class Program
    {
        static void Main()
        {
            Console.WriteLine("Hello World");
        }
    }
}

将编译好的程序用 ftp 上传到树莓派后用终端执行

sudo mono 'exe 程序路径'

如果是 .NET Core 程序 exe 改为 dll

其他参考资料