zoukankan      html  css  js  c++  java
  • 在树莓派上运行 .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来保证程序处于一直运行的状态,否则程序已启动,就立马结束了。需要使用循环来实现。

     

    还有关于中文输入法的问题,下次再补充了

  • 相关阅读:
    关于Faster-RCNN训练细节
    tensorflow 使用tfrecords创建自己数据集
    深度学习(tensorflow) —— 自己数据集读取opencv
    Tensorflow常见函数case argmax equal
    pandas dataframe类型操作
    celery 启动命令
    pipenv 虚拟环境新玩法
    拉取远程分支
    odoo 开发 context 上下文的用法
    odoo 二次开发的方法
  • 原文地址:https://www.cnblogs.com/dathlin/p/10079033.html
Copyright © 2011-2022 走看看