在树莓派上运行 .net core 2.1 程序 并实现开机启动
本篇文章完整的说明如和在树莓派上运行 .net core2.1程序,当然也参考了其他的博客,此处结合我自己的经验,再写一篇完整的博客,方便大家,还有我自己进行查阅。
https://blog.csdn.net/weixin_39449466/article/details/80686835
https://blog.csdn.net/sD7O95O/article/details/79395766
https://blog.csdn.net/github_35160620/article/details/52134098
http://shumeipai.nxez.com/2013/10/06/windows-remote-desktop-connection-raspberry-pi.html
https://blog.csdn.net/guanmaoning/article/details/78760428
ok,接下来进入正题,先弄个树莓派,如果都没有,那还玩什么东西。。。。。

准备一个tf卡,准备读卡器,现在要往tf写入操作系统。
官方的地址:https://www.raspberrypi.org/downloads/raspbian/
推荐下载下面的:

下载好之后,准备格式化tf卡
需要下载一个软件(我看教程都是下载软件,系统默认格式化我也不知道行不行,可能格式有区别)
格式化工具:SD card formatter

将下载好的系统镜像写入tf卡
写入工具:win32diskimager

开启ssh连接
在tf卡当前的目录下创建一个文件,命名为 ssh 不带任何的后缀
设置无线网连接
country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1 network={
ssid="AMRHU"
psk="12345678"
key_mgmt=WPA-PSK
priority=1
}
这样开机后就能连接上网络。
显示设置
在boot目录下,找到config.txt文件,里面许多选项被注释掉了,我们需要在选择以下命令:
# For more options and information see
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details # uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1 # uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
disable_overscan=1#可以去掉开机屏幕周围的黑色边框 # uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16 # uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720 # uncomment if hdmi display is not detected and composite is being output
hdmi_force_hotplug=1# # uncomment to force a specific HDMI mode (this will force VGA)
hdmi_group=2#DMT模式
hdmi_mode=58 #分辨率为适应屏幕分辨率的选择 # uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
hdmi_drive=2 # uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
config_hdmi_boost=4 # uncomment for composite PAL
#sdtv_mode=2 #uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800 # Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on # Uncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi # Additional overlays and parameters are documented /boot/overlays/README # Enable audio (loads snd_bcm2835)
dtparam=audio=on
目前已经可以接显示器,然后进入系统了。然后修改系统的密码
sudo passwd pi

分别输入两次新的密码就可以设置成功了

远程连接
总共运行4条指令
sudo apt-get install xrdp
sudo apt-get purge tightvnc xrdp
sudo apt-get install tightvncserver xrdp
sudo /etc/init.d/xrdp restart
检查端口状态
通过命令:netstat -tnl
查看 3350 3389 5910 这三个端口处于LISTEN,一般就没问题了。
此时,将树莓派重启,然后使用windows自带的远程连接去请求数据

还需要在树莓派配置好ip地址

输入用户名和密码即可登录
文件传送
上述的远程桌面确实好用,但是不能传送文件,这个就比较尴尬了,所以使用下面的文件实现
https://filezilla-project.org/download.php 下载一个软件 FileZilla


输入ip地址,用户名,密码。及端口,端口一般为22
就可以把文件复制到指定的目录里面。
安装 .net core 环境
sudo apt-get update
sudo apt install curl libunwind8 gettext
curl -sSL -o dotnet.tar.gz https://download.microsoft.com/download/1/f/7/1f7755c5-934d-4638-b89f-1f4ffa5afe89/dotnet-runtime-2.1.2-linux-arm.tar.gz
sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet
sudo ln -s /opt/dotnet/dotnet /usr/local/bin
正常的话,显示如下:

在windows上生成你自己的应用程序,通过cmd来编译你的应用程序
dotnet publish -r linux-arm

然后把生成的文件拷贝到树莓派里面,具体的拷贝方式,可以把tf卡拔出来拷贝,也可以用上面的远程传输的东西拷贝

准备启动
cd ./Documents/HslCommunicationCoreDemo
chmod 777 ./HslCommunicationCoreDemo
./HslCommunicationCoreDemo
然后就正常的跑程序了

开机启动
首先要编写脚本,文件名为 testboot.sh
运行 nano testboot.sh
输入
chmod 777 /home/pi/Documents/HslCommunicationCoreDemo/HslCommunicationCoreDemo /home/pi/Documents/HslCommunicationCoreDemo/HslCommunicationCoreDemo
测试一下
./testboot.sh
向rc.local文件添加启动代码
修改rc.local文件,在终端输入并回车:
sudo nano /etc/rc.local
在打开的文本中找到exit 0,在此之前添加的代码在启动时都会被执行,在exit 0 之前添加一行代码
exec /home/pi/testboot.sh
如果存在权限的问题,那么使用下面的方法
su pi -c "exec /home/pi/testboot.sh"
ctrl+o保存,ctrl+x退出,然后在终端输入:sudo reboot ,重启系统测试。
如果运行失败,可以输入如下的指令查看状态
sudo systemctl status rc-local
正常情况如下

这里的文件替换了另一个,无需理会,这就代表基本成功了。
中间有个坑,主程序不能使用readLine来保证程序处于一直运行的状态,否则程序已启动,就立马结束了。需要使用循环来实现。

还有关于中文输入法的问题,下次再补充了
在树莓派上运行 .net core 2.1 程序 并实现开机启动的更多相关文章
- 树莓派上运行.net core 2.0程序
记录中 参考: https://www.cnblogs.com/songxingzhu/p/7399991.html https://www.cnblogs.com/goodfulcom/p/7624 ...
- [翻译]第三天- 在 Mac 上运行 .NET Core 应用程序
原文: http://michaelcrump.net/part3-aspnetcore/ *** 简介 该系列文章的完整列表如下: 第一天 - 在 Windows 下安装和运行 .NET Core ...
- 解惑:在Ubuntu18.04.2的idea上运行Scala支持的spark程序遇到的问题
解惑:在Ubuntu18.04.2的idea上运行Scala支持的spark程序遇到的问题 一.前言 最近在做一点小的实验,用到了Scala,spark这些东西,于是在Linux平台上来完成,结果一个 ...
- 树莓派3B+上运行.Net Core项目
最近买了个树莓派3B+,准备把自己写的一个.Net Core爬虫挂在上面跑 买之前没有想到树莓派因为是今年新出的,导致驱动以及系统啥的都不是很完善,导致走了很多弯路,早知道买树莓派3就不用那么多折腾了 ...
- 如何在树莓派上运行雷神之锤III
昨天在树莓派上尝试运行了一下雷神之锤III,流畅运行,效果不错~~~ RPI这个小身板的东东总是可以给你带来惊喜,这里记录一下步骤以备后续再用 先确保RPI的程序和固件都已经更新 sudo apt-g ...
- linux环境上运行.net core 初探
1.安装 .net core 环境 rpm --import https://packages.microsoft.com/keys/microsoft.ascsh -c 'echo -e " ...
- 【实操填坑】在树莓派上编译 EtherCAT IgH Master 主站程序
官网下载地址:https://etherlab.org/download/ethercat/ (可list查看文件列表)https://etherlab.org/download/ethercat/ ...
- 在Win2008上运行ASP.NET 1.1程序
在之前的文章<将Web站点由IIS6迁移至IIS7>中已经提到了关于在Win2008下运行ASP.NET 1.1程序的问题,但还不够完整,因此在这里重新整理一下. 1.要安装.net fr ...
- 在没装VS2010的机器上运行VS2010开发的C++程序
在VS2010下写了一个win32控制台应用程序,编译ok.exe,需要依赖osg相关动态库 第一次编译的是Debug版本的,直接将ok.exe和osg相关dll文件拷贝到没有安装VS2010机器上运 ...
随机推荐
- ThreadPool开启多线程时支持最大连接200个(默认为2个),不加则会超时
//ThreadPool System.Net.ServicePointManager.DefaultConnectionLimit = 200;
- Linux环境下的定时任务(转载)
今天做了个数据库的备份脚本,顺便系统得学习一下Linux下定时执行脚本的设置.Linux下的定时执行主要是使用crontab文件中加入定制计划来执行,设置比Windows稍微复杂一些(因为没有图形界面 ...
- shell 关系运算符
关系运算符 关系运算符只支持数字,不支持字符串,除非字符串的值是数字. 下表列出了常用的关系运算符,假定变量 a 为 10,变量 b 为 20: 运算符 说明 举例 -eq 检测两个数是否相等,相等返 ...
- MongoDB (课时1,2)
1.数据库之中支持的的SQL语句是由IBM开发出来的,使用并不麻烦,就是几个简单的单词:select, from, where, group by, having, order by.目前最流行的数 ...
- Android 上传大文件
最近工作需要实现使用 Android 手机上传图片的功能, 参考了网络上的很多资料, 不过网络上的代码都仅仅适合上传较小的文件, 当上传较大文件时(我在自己的测试机器上发现是 2M 左右), 就会因为 ...
- nginx常用命令汇总
nginx基础命令: sudo nginx // 开启nginx服务器 sudo nginx -s reload // 重启nginx服务器 sudo nginx -s stop // 关闭nginx ...
- Java选择结构和数组
Java选择结构和数组 一.Switch语句 二.if和switch区别 推荐使用if 三.函数 Java中的函数和方法是同一个词 四.数组 4.1.数组常见错误 五.内存机制 六.转换成十六进制 移 ...
- 1月10日 ruby基础教程,查漏补缺; 2月22日 Exception补充
https://ruby-doc.org/core-2.5.0/Exception.html 1月20日练习完1,2章. 第一章 初探 ‘’单引号不执行转义符. \t 制表符.\n 换行符. p me ...
- Largest Point (2015沈阳赛区网络赛水题)
Problem Description Given the sequence A with n integers t1,t2,⋯,tn. Given the integral coefficients ...
- SqlDataReader的用法
datareader对象提供只读单向数据的快速传递,单向:您只能依次读取下一条数据;只读:DataReader中的数据是只读的,不能修改;相对地,DataSet中的数据可以任意读取和修改 01.usi ...