在树莓派上运行 .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机器上运 ...
随机推荐
- shell 脚本中所有循环语法
写出 shell 脚本中所有循环语法 for 循环 : for i in $(ls);do echo item:$i done while 循环 : #!/bin/bash COUNTER=0 whi ...
- Mac OS下 selenium 驱动safari日志
/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home/bin/java "-javaagent:/Applicat ...
- Django内置模版过滤器
Django内置过滤器总览 可以查询下表来总览Django的内置过滤器: 过滤器 说明 add 加法 addslashes 添加斜杠 capfirst 首字母大写 center 文本居中 cut 切除 ...
- 使用uWSGI和nginx来设置Django和你的web服务器
本教程针对那些想要设置一个生产web服务器的Django用户.它介绍了设置Django以使得其与uWSGI和nginx工作良好的必要步骤.它涵盖了所有三个组成部分,提供了一个web应用和服务器软件的完 ...
- STL_函数对象01
1.自定义函数对象 1.1.简单例子: //函数对象 struct StuFunctor { bool operator() (const CStudent &stu1, const CStu ...
- jq 便捷api jq 常用 api jq 快捷 api
jq 选择器 1.相对值用法 width("+=250px") $("input").width("+=250px"); 2.使用函数来 ...
- 554C - Kyoya and Colored Balls
554C - Kyoya and Colored Balls 思路:组合数,用乘法逆元求. 代码: #include<bits/stdc++.h> using namespace std; ...
- 机器学习 Numpy库入门
2017-06-28 13:56:25 Numpy 提供了一个强大的N维数组对象ndarray,提供了线性代数,傅里叶变换和随机数生成等的基本功能,可以说Numpy是Scipy,Pandas等科学计算 ...
- ViewPager 如何得到当前的Fragment (使用FragmentPagerAdapter)
使用FragmentPagerAdapter时,难免要在MainActivity 和 当前显示的Fragment间传递数据.但是FragmentPagerAdapter并没有给我们提供类似getCur ...
- Linux下搜索文件
使用linux系统难免会忘记文件所在的位置,可以使用以下命令对系统中的文件进行搜索.搜索文件的命令为"find":"locate":"whereis& ...