雖然小編用了Win10很久,也比較推崇新系統(tǒng),但是還有不少小伙伴都需要Win7,尤其是一些特定領(lǐng)域,Win7是必然的選擇。最近有幾位小伙伴買了300系列主板+8代CPU后,裝Win7就成為了不可能的任務(wù),留言了好幾天,小編今天要跟大家分享一下。
300系列裝Win7 機會就在這里
300系列芯片組的產(chǎn)品,之所以不能安裝Win7,不是所謂的硬件徹底屏蔽,而是沒有對應(yīng)的Win7驅(qū)動——300系列芯片組主板的USB 3.1控制器原生只有Win10驅(qū)動,強制安裝會報錯;還有一個最致命的事情,核心顯卡也同樣只有Win10驅(qū)動。這兩點尤其前者,對安裝Win7設(shè)置了巨大障礙。
當然這里面也有例外,Z370芯片組因為最早推出,USB 3.1 Gen1驅(qū)動還能找到修改的Win7版本,USB 3.1 Gen2更是外掛芯片實現(xiàn),驅(qū)動不是問題。而H310、B360以及H370芯片組就沒辦法了。
不過別急,Intel即將“大發(fā)善心”:H310C將不日推出,而且要全面取代現(xiàn)有的H310。H310C最大的特點就是提供原生的Win7驅(qū)動,能夠完整支持Win7。如果是準備裝機的小伙伴,可以多等一些日子哦。
那B360和H370芯片組的電腦還有辦法裝Win7嗎?答案也是有的,不過需要一點代價——先要購買一個PCI-E的USB擴展卡,用以取代主板上的原生USB接口(當然也就不能用了)。第二就是需要使用獨立顯卡,也就是說放棄核心顯卡。如此一來,使用B360和H370芯片組主板的電腦一樣可以安裝使用Win7,不過板載USB 3.1 Gen1和CPU核心顯卡就都不能用了。
安裝Win7的時候,USB設(shè)備(鍵鼠)要連接到USB擴展卡的接口上,而不是主板的USB接口,才能操控安裝,這一點一定要牢記。對了,如果是USB 3.0以上的USB擴展卡,務(wù)必要在安裝鏡像里先注入Win7的USB驅(qū)動哦(可以查閱http://www.cfan.com.cn/2017/0216/128129.shtml一文)!
另辟蹊徑也有招
除了這種安裝方法,小編其實更推薦使用虛擬機方式實現(xiàn)Win7的兼容。目前虛擬機最方便的就是Win10內(nèi)置的HyperV,不過缺點是不支持USB!另外比較簡單易用的就是vmware了,支持USB設(shè)備,而且個人使用免費。在裝好的Win10系統(tǒng)上,先通過https://www.vmware.com/products/player/playerpro-evaluation.html下載VMware Workstation 12.5 Player,下載后運行安裝。
安裝完畢運行Vmware Player,點擊“創(chuàng)建新虛擬機”,然后單擊“安裝程序光盤映像文件(ISO)”,“瀏覽”選中要安裝的系統(tǒng)鏡像。然后跟隨向?qū)гO(shè)置虛擬機名稱、存儲位置,并選擇輸入Windows安裝密鑰(也可不輸入),設(shè)置計算機用戶名、密碼等。
接下來設(shè)置占用磁盤空間,一般Win7預留不少于60GB為宜。然后就是虛擬機的文件存儲方式,小編推薦選擇“將虛擬磁盤存儲為單個文件”,并單擊下一步。
此時,在虛擬機配置確認頁面單擊“自定義硬件”。
這里最重要的是內(nèi)存部分,Win7以上最少不能分配少于2GB內(nèi)存,最好配置4GB(注:使用虛擬機的電腦內(nèi)存最好不低于8GB內(nèi)存容量);CPU部分根據(jù)自己需求設(shè)置即可。有一個地方要特別留意,網(wǎng)絡(luò)部分,點擊“網(wǎng)絡(luò)適配器”,勾選“啟動時連接”,然后選中“NAT模式”即可。
設(shè)置完畢后自動就會開始安裝系統(tǒng),這里就和普通的系統(tǒng)安裝沒什么區(qū)別了,不過這都建立在你正在使用的系統(tǒng)之上,是不是方便很多?而且這也沒有核顯不能用,USB全部廢掉的尷尬,在具備硬件虛化的CPU下,性能也足夠支撐日常使用了。
Node-Red是一個流行的基于Node的JavaScript工具庫,可以使用圖形化的方法快速進行JavaScript項目開發(fā),用于網(wǎng)站、物聯(lián)網(wǎng)項目等不同場景。對于習慣LabVIEW一類圖形化編程語言的用戶,或者并非軟件專業(yè)的工程師與愛好者而言,是一個唄用于項目開發(fā)的非常方便的工具。Node-Red的開發(fā)需要依賴Node環(huán)境,因此,無論在Windows下還是Linux系統(tǒng)中,都需要安裝Node作為基礎(chǔ)。
Arduino是應(yīng)用非常廣泛的開源物聯(lián)網(wǎng)開發(fā)平臺之一, 在Node-red中可以通過幾個不同的發(fā)行包來連接Arduino,直接以圖形化的方式進行物聯(lián)網(wǎng)項目開發(fā)。
目前大部分公開資料中關(guān)于Windows下安裝Docker的說明都是過期的,舊版Docker的安裝需要啟用HyperV虛擬機,而新版的Docker對Windows的支持已經(jīng)要友好許多,Windows 10專業(yè)版和企業(yè)版可以直接安裝桌面版的Docker,家庭版的Windows則需要啟用WSL2功能來進行安裝。Windows10專業(yè)版和企業(yè)版安裝Docker的步驟可參見,Windows家庭版安裝步驟同樣在Docker官網(wǎng)的 中可以看到。
一般來說,在國內(nèi)由于網(wǎng)絡(luò)環(huán)境的原因,需要配置Docker倉庫鏡像為國內(nèi)鏡像,以提高鏡像下載速度。提供了基于Docker安裝與使用Node-Red的方法。電腦中安裝Docker后,可在終端運行以下命令來運行Node-Red。為了實現(xiàn)運行數(shù)據(jù)的持久化,在硬盤中新建文件夾(此處為D:\dockerdata\node_red_data)用于存儲Docker數(shù)據(jù)。也可以使用docker create volume node_red_data在Docker默認的存儲路徑中創(chuàng)建卷node_red_data來存儲數(shù)據(jù)。
docker run -it -p 1880:1880 -v D:\dockerdata\node_red_data:/data --name mynodered nodered/node-red
以上命令各參數(shù)含義如下:
docker run //新建并運行一個Docker容器
-it //給容器附著一個終端,用以監(jiān)視容器的運行狀況
-p 1880:1880 //將宿主機的1880端口(前一個)映射到容器內(nèi)部的1880端口
-v D:\dockerdata\node_red_data:/data //將外部存儲數(shù)據(jù)卷映射為內(nèi)部/data。以實現(xiàn)數(shù)據(jù)存儲持久化
--name mynodered //為容器命名
nodered/node-red //用于建立容器的鏡像(image) ,如果本地沒有該鏡像,則從Docker倉庫下載一個
--device=/dev/ttyS0 //將外部串口ttyS0映射給Docker鏡像,該命令在Windows版Docker下不可用
在創(chuàng)建完容器后,以后可以用以下命令管理容器:
docker start mynodered //啟動mynodered容器
docker stop mynodered //停止mynodered容器
docker attach mynodered //為mynodered容器附著一個終端
docker rm mynodered //刪除mynodered容器
docker pull nodered/node-red //拉去一個node-red鏡像。如果要升級容器鏡像,可以執(zhí)行本命令拉取并重新生成容器
nodered啟動后,打開瀏覽器輸入localhost:1880即可打開nodered編輯界面開始程序設(shè)計。
在windows下直接安裝node-red,需要先安裝nodejs。在windows下可以通過下載官網(wǎng)安裝包或通過nvm-windows安裝。安裝完nodejs后,可以通過運行以下命令安裝node-red:
npm install -g --unsafe-perm node-red
注意: 上述命令中的--unsafe-perm參數(shù),是為了保證npm的運行權(quán)限。出于安全考慮,npm默認不支持以 root 用戶(或windows管理員)運行,即使你用 root 用戶身份運行了,npm 也會自動轉(zhuǎn)成一個叫 nobody 的用戶來運行,而這個用戶幾乎沒有任何權(quán)限。這樣的話如果你腳本里有一些需要權(quán)限的操作,比如寫文件(尤其是寫 /root/.node-gyp),就無法執(zhí)行。為了避免這種情況,要么需要專門建一個用于運行 npm 的高權(quán)限用戶;要么加 --unsafe-perm 參數(shù),保證運行時的用戶和npm用戶一致,而不會切換到 nobody 上。
安裝完成后,打開終端,運行node-red即可啟動nodered。nodered啟動后,打開瀏覽器輸入localhost:1880即可打開nodered編輯界面開始程序設(shè)計。
注意:如果node是使用nvm-windows進行安裝的,可能在運行node-red時會由于缺少settings.js文件而無法啟動的錯誤。這是由于系統(tǒng)未下載安裝該文件造成的。需要下載settings.js文件,并復制到C:\Users\<用戶名>\.node-red文件夾下。
Windows10提供了功能非常強大的WSL功能,可以兼容各種主要發(fā)行版本的Linux,以Ubuntu18.04為例,在使用nvm安裝了node之后,可以通過以下命令來安裝并運行node-red。
npm install -g --unsafe-perm node-red
node-red
nodered啟動后,打開瀏覽器輸入localhost:1880即可打開nodered編輯界面開始程序設(shè)計。
Windows版本的Docker不支持訪問串口,這在Docker官方項目的Issue中以及Docker官方論壇多個主題下已經(jīng)經(jīng)過反復討論,截止目前,Docker的Windows版本也暫時并沒有支持串口和USB等外部設(shè)備的計劃,因此,對于在Windows下通過Docker安裝的Node-Red,目前是沒有辦法訪問串口的。如果是Linux下運行Docker,則可能通過前節(jié)的--device參數(shù)將串口提供給Docker容器進行操作。
在Windows或者WSL(或者Ubuntu系統(tǒng))下,要使用Node-Red通過串口連接Arduino,需要先安裝相應(yīng)的包,在Node-red下安裝附加包,一種方式是通過編輯界面菜單選擇節(jié)點管理,然后在安裝界面搜索需要的包(如下圖)。另外一種則是在在nodered的安裝目錄下運行安裝命令npm install <安裝包名稱>來進行軟件包安裝。
連接Arduino常用的包有兩個,一個是node-red-node-arduino,另一個是基于流行的johnny-five包的npm install node-red-contrib-gpio。在WSL或者Ubuntu等linux發(fā)行版中,按照上述兩種方式中的任一種進行安裝即可。
在windows下,需要先安裝windows-build-tools,否則可能出現(xiàn)node-gyp rebuild error編譯錯誤導致軟件包安裝無法完成。windows-build-toos的安裝,需要在windows下以管理員權(quán)限運行PowerShell,并在PowerShell中輸入以下命令:npm install --global --production windows-build-tools@4.0.0,等待系統(tǒng)下載并安裝python,jvm等編譯器即可。這里指定windows-build-tools版本為4.0.0是因為該版本是目前測試可用的,其他版本可能造成一些不穩(wěn)定。
除了該命令外,github上也有手動進行編譯環(huán)境搭建的方法(沒有測試):
1.輸入python --version檢查系統(tǒng)路徑中是否有安裝python,以及python的版本
2.下載并安裝python2.7 并進行安裝,將python2的路徑添加的環(huán)境變量中
3.檢查并安裝 .NET 4.5.1+
4.下載并安裝Visual C++ Build Tools 2015 ,安裝Window 8.1或Windows 10 SDK。
5. 配置npm 參數(shù) msvs_version 為2015: npm config -g set msvs_version 2015
要使用Node-red通過串口操作Arduino,首先需要通過Arduino官方IDE下載Firmate固件到Arduino中。在Arduino官方IDE中打開示例,F(xiàn)irmate中的StandardFirmate并上傳到Arduino班子中。這樣Arduino即具備了通過串口遠程操作的條件。
安裝完node-red-node-arduino包后,可導入官方的節(jié)點示例文件:
[{"id":"d7663aaf.47194","type":"arduino-board","device":""},{"id":"dae8234f.2517e","type":"inject","name":"0.5s tick","topic":"","payload":"","payloadType":"date","repeat":"0.5","crontab":"","once":false,"x":150,"y":100,"z":"359a4b52.ca65b4","wires":[["56a6f8f2.a95908"]]},{"id":"2db61802.d249e8","type":"arduino out","name":"","pin":"13","state":"OUTPUT","arduino":"d7663aaf.47194","x":570.5,"y":100,"z":"359a4b52.ca65b4","wires":[]},{"id":"56a6f8f2.a95908","type":"function","name":"Toggle output on input","func":"\n// If it does exist make it the inverse of what it was or else initialise it to false\n// (context variables persist between calls to the function)\ncontext.level=!context.level || false;\n\n// set the payload to the level and return\nmsg.payload=context.level;\nreturn msg;","outputs":1,"noerr":0,"x":358,"y":100,"z":"359a4b52.ca65b4","wires":[["2db61802.d249e8"]]}]
導入后節(jié)點示意如下圖,雙擊Pin13節(jié)點打開編輯界面,編輯Arduino節(jié)點,配置串口為當前連接的串口。在Windows系統(tǒng)下,可以通過控制面板-設(shè)備管理器看到Arduino對應(yīng)的串口編號,如果該串口為COM5,則需要將端口號相應(yīng)配置為COM5,在Ubuntu等Linux子系統(tǒng)下,一般為類似/dev/ttyUSB1或者/dev/ttyS5的形式。
注意:在Windows10內(nèi)置的WSL子系統(tǒng)中,linux系統(tǒng)的串口號與Windows下一一對應(yīng),如果在Windows下看到Arduino的串口為COM5,則相應(yīng)的在WSL中的地址為/dev/ttyS5。
。
在Linux或者WSL系統(tǒng)中,由于串口權(quán)限默認僅賦予dialout用戶組,因此,需要將當前用戶添加到dialout用戶組中,才具備操作串口的權(quán)限。使用以下命令將當前用戶添加到dialout用戶組中。adduser $(whoami) dialout。
在WSL下,可能需要修改串口文件的操作權(quán)限,如果windows下串口為COM5,則相應(yīng)地:sudo chmod 666 /dev/ttyS5。
修改完成后,即可通過終端命令操作串口,或者使用node-red等軟件通過串口來操作Arduino了。