如何搭建樹莓派的Net與NodeJS運行環境

来源:http://www.cnblogs.com/BruceWan/archive/2016/12/08/6144692.html
-Advertisement-
Play Games

樹莓派是當前最火的嵌入計算平臺沒有之一,樹莓派可以給我們無數的想象,樹莓派的高性能、低功耗、低成本、可擴展性(最新的樹莓派原生支持WIFI和藍牙,這功能太贊了)深受大家的喜愛。雖然樹莓派到目前為止已經很好安裝系統了。但是要想方便的使用和部署開發的軟體還是比較麻煩的。 安裝環境的話,你的有樹莓派硬體( ...


  樹莓派是當前最火的嵌入計算平臺沒有之一,樹莓派可以給我們無數的想象,樹莓派的高性能、低功耗、低成本、可擴展性(最新的樹莓派原生支持WIFI和藍牙,這功能太贊了)深受大家的喜愛。雖然樹莓派到目前為止已經很好安裝系統了。但是要想方便的使用和部署開發的軟體還是比較麻煩的。

  安裝環境的話,你的有樹莓派硬體(此圖為:樹莓派3 Model B),你還得需要一個支持HDMI顯示器(電視機也可以)、HDMI線、MicroSD卡(8G+,Class10+級別)、電源適配器(5V、2A+、MicroUSB介面)、讀卡器(支持MicroSD卡),至於還有鍵盤、滑鼠、散熱片、風扇、保護殼等。

  有了這些東西就可以開始搭建環境,下麵的例子以樹莓派3 Model B為硬體搭建。

  1.安裝系統

  在官網下載NOOBS,NOOBS相當PC的BIOS,手機的Recovery。用於引導和配置系統硬體環境,這裡我下載的是NOOBS帶Raspbian桌面環境的版本(快速下載-移入查看密碼)。

  準備MicroSD,並用工具格式化SDFormatter,選擇待格式化的盤符,點擊進行格式化(快速下載-移入查看密碼)。

  解壓NOOBS,拷貝NOOBS_XXX解壓文件夾下麵的文件與文件夾到MicroSD的根目錄。

將MicroSD插入樹莓派,接上顯示器與電源、滑鼠、鍵盤。(樹莓派電路自身是裸露的,千萬不要直接與金屬錶面接觸,註意釋放手上靜電)。

  開機出現彩色封面表示正常啟動,系統即將出現引導界面,點擊“Shift”鍵指導進入安裝界面。

  進入一下界面,表示大功告成,選擇Raspbian,點擊Install,進行安裝系統。

  如何進行解析度適配?在NOOBS的管理界面中找到“EditConfig”,進入編輯框,找到hdmi_group和hdmi_mode的值對應想要調整的解析度,其他解析度可自行谷歌、百度。

以下是電腦顯示器使用的解析度。這些解析度的hdmi_group=2
hdmi_mode=1    640x350   85Hz
hdmi_mode=2    640x400   85Hz
hdmi_mode=3    720x400   85Hz
hdmi_mode=4    640x480   60Hz
hdmi_mode=5    640x480   72Hz
hdmi_mode=6    640x480   75Hz
hdmi_mode=7    640x480   85Hz
hdmi_mode=8    800x600   56Hz
hdmi_mode=9    800x600   60Hz
hdmi_mode=10   800x600   72Hz
hdmi_mode=11   800x600   75Hz
hdmi_mode=12   800x600   85Hz
hdmi_mode=13   800x600   120Hz
hdmi_mode=14   848x480   60Hz
hdmi_mode=15   1024x768  43Hz  DO NOT USE
hdmi_mode=16   1024x768  60Hz
hdmi_mode=17   1024x768  70Hz
hdmi_mode=18   1024x768  75Hz
hdmi_mode=19   1024x768  85Hz
hdmi_mode=20   1024x768  120Hz
hdmi_mode=21   1152x864  75Hz
hdmi_mode=22   1280x768        reduced blanking
hdmi_mode=23   1280x768  60Hz
hdmi_mode=24   1280x768  75Hz
hdmi_mode=25   1280x768  85Hz
hdmi_mode=26   1280x768  120Hz reduced blanking
hdmi_mode=27   1280x800        reduced blanking
hdmi_mode=28   1280x800  60Hz
hdmi_mode=29   1280x800  75Hz
hdmi_mode=30   1280x800  85Hz
hdmi_mode=31   1280x800  120Hz reduced blanking
hdmi_mode=32   1280x960  60Hz
hdmi_mode=33   1280x960  85Hz
hdmi_mode=34   1280x960  120Hz reduced blanking
hdmi_mode=35   1280x1024 60Hz
hdmi_mode=36   1280x1024 75Hz
hdmi_mode=37   1280x1024 85Hz
hdmi_mode=38   1280x1024 120Hz reduced blanking
hdmi_mode=39   1360x768  60Hz
hdmi_mode=40   1360x768  120Hz reduced blanking
hdmi_mode=41   1400x1050       reduced blanking
hdmi_mode=42   1400x1050 60Hz
hdmi_mode=43   1400x1050 75Hz
hdmi_mode=44   1400x1050 85Hz
hdmi_mode=45   1400x1050 120Hz reduced blanking
hdmi_mode=46   1440x900        reduced blanking
hdmi_mode=47   1440x900  60Hz
hdmi_mode=48   1440x900  75Hz
hdmi_mode=49   1440x900  85Hz
hdmi_mode=50   1440x900  120Hz reduced blanking
hdmi_mode=51   1600x1200 60Hz
hdmi_mode=52   1600x1200 65Hz
hdmi_mode=53   1600x1200 70Hz
hdmi_mode=54   1600x1200 75Hz
hdmi_mode=55   1600x1200 85Hz
hdmi_mode=56   1600x1200 120Hz reduced blanking
hdmi_mode=57   1680x1050       reduced blanking
hdmi_mode=58   1680x1050 60Hz
hdmi_mode=59   1680x1050 75Hz
hdmi_mode=60   1680x1050 85Hz
hdmi_mode=61   1680x1050 120Hz reduced blanking
hdmi_mode=62   1792x1344 60Hz
hdmi_mode=63   1792x1344 75Hz
hdmi_mode=64   1792x1344 120Hz reduced blanking
hdmi_mode=65   1856x1392 60Hz
hdmi_mode=66   1856x1392 75Hz
hdmi_mode=67   1856x1392 120Hz reduced blanking
hdmi_mode=68   1920x1200       reduced blanking
hdmi_mode=69   1920x1200 60Hz
hdmi_mode=70   1920x1200 75Hz
hdmi_mode=71   1920x1200 85Hz
hdmi_mode=72   1920x1200 120Hz reduced blanking
hdmi_mode=73   1920x1440 60Hz
hdmi_mode=74   1920x1440 75Hz
hdmi_mode=75   1920x1440 120Hz reduced blanking
hdmi_mode=76   2560x1600       reduced blanking
hdmi_mode=77   2560x1600 60Hz
hdmi_mode=78   2560x1600 75Hz
hdmi_mode=79   2560x1600 85Hz
hdmi_mode=80   2560x1600 120Hz reduced blanking
hdmi_mode=81   1366x768  60Hz
hdmi_mode=82   1080p     60Hz
hdmi_mode=83   1600x900        reduced blanking
hdmi_mode=84   2048x1152       reduced blanking
hdmi_mode=85   720p      60Hz
hdmi_mode=86   1366x768        reduced blanking

  修改系統預設密碼、位置、時區、鍵盤、WiFi地區。

  開啟VNC,SSH方面遠程無屏管理。

  修改系統用戶密碼。

  獲取ROOT許可權打開命令終端(Ctrl + Alt + T),輸入以下內容(“sudo” 是臨時使用最高許可權執行命令的意思)。

sudo passwd root
執行此命令後系統會提示輸入兩遍的root密碼,輸入你想設的密碼即可,然後在執行
sudo passwd --unlock root

   修改軟體中心鏡像地址提高下載速度,鏡像地址可以自行谷歌、百度。

su #(如果已經是root賬戶登錄,即可跳過此步驟)
cd /etc/apt/&&mv sources.list sources.list.bak #(備份現有的源文件)
sudo nano /etc/apt/sources.list #(添加新配置文件)
=================
deb http://mirrors.cqu.edu.cn/Raspbian/raspbian/ wheezy main contrib non-free rpi #(添加重慶大學的鏡像)
#Ctrl + O、Enter、Ctrl + X #保存退出
=================
sudo apt-get update && apt-get upgrade #(測試更新)

  文件授權,註意不要濫用。

sudo chmod 777 /xxx  #目錄為Everyone
sudo chmod -R 777 /xxx  #目錄以及子文件全部為Everyone

  輸入法管理器與輸入法安裝,我這裡選擇iBus(因為符合國人的操作習慣,設置也比較人性化點點,同時內置拼音。但是不能和PC的國產輸入法比較。其實還有fcitx輸入法管理器)

sudo apt-get install ibus ibus-pinyin

配置開機自動啟動方面使用,預設下每次開機需要手動啟動。

#添加自啟動腳本
cd /home/pi
cd .config
mkdir autostart
cd autostart
#添加腳本文件(可以寫入多個腳本文件,用於配置不同解析度連接)
nano input.desktop
#添加腳本
[Desktop Entry]
Type=Application
Name=InputManger
Exec=ibus-daemon --xim
StartupNotify=false
#Ctrl + O、Enter、Ctrl + X #保存退出

  設置桌面樣式

  永久掛載新分區

  

df -h #查看未使用的分區
sudo umount /dev/xxxx #對應分區卸載,記住你的這個分區路徑
sudo mkdir /xxx #創建自定義的掛載位置,將卸載的分區掛載到自己的目錄

#臨時掛載
sudo mount /dev/xxx /xxx #將分區掛載到自己創建的目錄

#永久掛載
sudo nano /etc/fstab #進入系統的磁碟分區的配置表,系統開機會進行分區映射
#添加一行,將分區掛載到自定義的位置
======================================================
/dev/xxx  /xxx    auto    defaults          0       0
======================================================
#Ctrl + O、Enter、Ctrl + X #保存退出

  製作系統鏡像

  鏡像是個非常方便的東西,可以將系統打包。如果運行的系統損壞或不想要了,可以用備份的鏡像文件將其恢復。通過Win32DiskImager進行備份和還原,平時備份可以將鏡像壓縮,可以節約空間。(快速下載-移入查看密碼

  第一次如何恢復根分區容量

#運行命令終端
sudo raspi-config #進入系統配置

  2.遠程桌面的安裝

  最新的Raspbian內置VNCServer工具,所以就不需要在單獨安裝VNCServer工具了,上一步已經啟動的VNC功能,同時需要註意的是用戶名,密碼。VNC可以添加多個不同名稱的埠

 

#添加自啟動腳本
cd /home/pi
cd .config
mkdir autostart
cd autostart
#添加腳本文件(可以寫入多個腳本文件,用於配置不同解析度連接)
nano vnc.desktop #腳本名稱
#添加腳本
[Desktop Entry]
Type=Application
Name=VNC #名稱
Exec=vncserver -geometry 1920x1080 :1 #設置解析度1920x1080,以及VNC埠為1
StartupNotify=false
#Ctrl + O、Enter、Ctrl + X #保存退出

使用VNCViewer進行遠程連接,VNCViewer支持多平臺版本可以到官網下載。(快速下載-移入查看密碼

3.安裝NodeJS

  在NodeJS官網下載安裝包或線上安裝,註意安裝ARM版本。(快速下載-移入查看密碼

#命令終端
cd /home/pi

#離線安裝
#拷入node-v6.9.1-linux-armv7l.tar.gz 到 /home/pi

#線上安裝
wget https://nodejs.org/dist/v6.9.1/node-v6.9.1-linux-armv7l.tar.gz

#命令終端
tar zxvf node-v6.9.1-linux-armv7l.tar.gz   
sudo mv node-v6.9.1-linux-armv7l  /usr/local/bin
sudo ln /usr/local/bin/node-v6.9.1-linux-armv7l/bin/node /usr/local/bin/node
sudo ln -s /usr/local/bin/node-v6.9.1-linux-armv7l/lib/node_modules/npm/bin/npm /usr/local/bin/npm

NodeJSARM版NPM存在路徑問題,需要以下方式解決

嘗試npm -v發現出錯了,原因是路徑問題,修改相對路徑(註意查看腳本中的相對路徑),跳轉到/usr/local/bin目錄。
打開文本npm
貼上修改後的文件內容:
#!/bin/sh
(set -o igncr) 2>/dev/null && set -o igncr; # cygwin encoding fix

basedir=$(dirname `readlink -f $0`)
cd $basedir

case `uname` in
    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
esac

NODE_EXE="$basedir/node.exe"
if ! [ -x "$NODE_EXE" ]; then
  NODE_EXE=node
fi

NPM_CLI_JS="$basedir/node-v6.9.1-linux-armv7l/lib/node_modules/npm/bin/npm-cli.js"
if ! [ -x "$NPM_CLI_JS" ]; then
  NPM_CLI_JS=npm-cli.js
fi

case `uname` in
  *CYGWIN*)
    NPM_PREFIX=`"$NODE_EXE" "$NPM_CLI_JS" prefix -g`
    NPM_PREFIX_NPM_CLI_JS="$NPM_PREFIX/node-v6.9.1-linux-armv7l/lib/node_modules/npm/bin/npm-cli.js"
    if [ -f "$NPM_PREFIX_NPM_CLI_JS" ]; then
      NPM_CLI_JS="$NPM_PREFIX_NPM_CLI_JS"
    fi
    ;;
esac

"$NODE_EXE" "$NPM_CLI_JS" "$@"

4.安裝Net環境

  這裡使用的是Mono,而非Net Core,因為Net Core坑太多了,不適合跨平臺移植軟體。還有做跨平臺軟體需要註意外部文件路徑問題,通過 Path.DirectorySeparatorChar 獲取平臺路徑特征與通過 AppDomain.CurrentDomain.BaseDirectory 獲取運行程式的絕對根目錄,同時,win32的類庫目前是不能被Mono運行的。Net的類庫是完全可運行,需要註意的是Windows下有些原生類庫在Mono裡面沒有集成,需要設置生成時複製到輸出目錄。(快速下載-移入查看密碼

  首先下載Mono官方的源代碼,然後在樹莓派上進行編譯,編譯時間過長,清耐心等待數小時。安裝過程中會出現依賴的軟體未安裝,導致安裝停止,需要一步一步的進行安裝依賴通過“sudo apt-get xxx”或“sudo apt-get xxx=xxx.xxx.xxx”來解決。

#這裡是案例,可以下載最新版進行編譯,安裝
#下載官方源碼包
wget http://download.mono-project.com/sources/mono/mono-4.0.1.44.tar.bz2
#解壓
tar -xvf mono-4.0.1.44.tar.bz2
#切換路徑
cd mono-4.0.1
#配置編譯安裝路徑
./configure --prefix=/usr/local
#編譯
make
#安裝
make install

#註意安裝libgdiplus類庫,方便圖像程式的運行,如:WinForm等圖像庫相關的軟體的使用

耐心等待數小時後,安裝完成,可以用C#寫個HelloWorld試試還有WinForm等,看看驚喜。如果還需要AspNet程式的運行,則需要安裝 Jexus Web伺服器,用於支持AspNet程式的運行。以下是Jexus安裝。(快速下載-移入查看密碼

#安裝
cd /tmp
wget linuxdot.net/down/jexus-5.6.5.tar.gz
tar -zxvf jexus-5.6.5.tar.gz 
cd jexus-5.6.5
sudo ./install 

#更新
cd /tmp
sudo /usr/jexus/jws stop
wget http://linuxdot.net/down/jws-v5.6.4-arm.zip
tar -zxvf jws-v5.6.4-arm.zip
cd jws-v5.6.4-arm
sudo ./upgrade
sudo /usr/jexus/jws regsvr
sudo /usr/jexus/jws restart

===測試/var/www/default/index.aspx=======
<%@Page Language="C#"%>
<%=DateTime.Now.ToString()%> 
==============================

#添加自啟動腳本
cd /home/pi
cd .config
mkdir autostart
cd autostart
#添加腳本文件(可以寫入多個腳本文件,用於配置不同解析度連接)
nano webserver.desktop
#添加腳本
[Desktop Entry]
Type=Application
Name=WebServer
Exec=sudo /usr/jexus/jws start
StartupNotify=false
#Ctrl + O、Enter、Ctrl + X #保存退出

以上是基本安裝方式,隨著版本更新,可能存在出入。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Socket,又稱“套接字”, 在應用層和傳輸層之間的一個抽象層,用於描述 IP 地址和埠,是一個通信連的句柄, ...
  • LoopViewPagerLayout無限輪播 項目地址:https://github.com/why168/LoopViewPagerLayout " " 支持三種動畫; 支持修改輪播的速度; 支持修改滑動速率; 支持點擊事件回調監聽; 支持自定義圖片載入方式; 支持自定義ImageView圖片; ...
  • 1 圖解 android學習手冊地址android學習手冊包含9個章節,108個例子,源碼文檔隨便看,例子都是可交互,可運行,源碼採用android studio目錄結構,高亮顯示代碼,文檔都採用文檔結構圖顯示,可以快速定位。360手機助手中下載,圖標上有貝殼 2概念介紹 有一個已經有序的數據序列, ...
  • 一、添加開機自啟服務 在centos7中添加開機自啟服務非常方便,只需要兩條命令(以Jenkins為例): 二、添加開機自啟腳本 在centos7中增加腳本有兩種常用的方法,以腳本autostart.sh為例: 方法一 1、賦予腳本可執行許可權(/opt/script/autostart.sh是你的腳 ...
  • 1.準備工具 我當時下載的是VMware9.0.2,之後升級即可。 2.安裝VMware9.0.2,按照步驟安裝即可,安裝成功並運行 選擇創建新的虛擬機,出現下圖,選擇“自定義”後單擊“繼續” 依次按照圖示進行選擇: 虛擬機名稱及位置自定! 給虛擬機分配記憶體,在安裝成功後也可修改此項。 出現下圖準備 ...
  • 阻塞與非阻塞訪問是 I/O 操作的兩種不同模式,前者在 I/O 操作暫時不可進行時會讓進程睡眠,後者則不然。在設備驅動中使用非同步通知可以使得對設備的訪問可進行時,由驅動主動通知應用程式進行訪問。這樣,使用無阻塞 I/O 的應用程式無需輪詢設備是否可訪問,而阻塞訪問也可以被類似“中斷”的非同步通知所取代... ...
  • Project ERROR: Xcode not set up properly. You may need to confirm the license agreement by running / >= Xcode 8 In Xcode 8, as Bruce said, this happen ...
  • 原文: http://www.doc88.com/p-599590609730.html ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...