2014年12月24日 星期三

Intel Galileo Gen2 遇上 Windows ??

上面這個標題怪怪的,
如果依照標題「Intel Galileo Gen2 遇上 Windows」,
在 Galileo 安裝視窗作業系統,全部做完後,我應該會看到視窗,
可是最後我只看到如下圖的黑框框阿~~~  clip_image002

我覺得應該是 「Intel Galileo Gen2 遇上 DOS」這個標題比較貼切吧
但是DOS早就不存在了,Windows 作業系統只剩命令提示字元(DOS BOX),
image

蠻弔詭的 ??

 

首先連線到 微軟 IoT 物連網專題網站  https://connect.microsoft.com/windowsembeddedIoT  點選左上角登入,申請新帳號
image

接著輸入帳號密碼登入網站
clip_image002[1]

接著再連線到網站  http://ms-iot.github.io/content/  點選中間的Setting up your Galileo
image

這個網頁內有詳細的安裝說明
image

找一個 16G(或32G)的SD記憶卡,格式化 FAT32,準備待會兒安裝image file

下載檔案 apply-BootMedia.cmd    http://connect.microsoft.com/windowsembeddedIoT/Downloads/DownloadDetails.aspx?DownloadID=56122
(Windows Developer Program For IoT – apply-bootmedia.cmd (2014/11/21) 20KB)

下載檔案 9600.16384.x86fre.winblue_rtm_iotbuild.141114-1440_galileo_v2.wim
https://connect.microsoft.com/windowsembeddedIoT/Downloads/DownloadDetails.aspx?DownloadID=56120
(Windows Developer Program For IoT – Windows Image (WIM) (2014/11/21) 166.62MB)

Win7環境還要下載 adksetup.exe
http://www.microsoft.com/en-us/download/confirmation.aspx?id=39982
(Windows Assessment and Deployment Kit (Windows ADK) for Windows 8.1 Update)

執行 adksetup.exe
clip_image002[3]

clip_image004.

安裝完畢後,可以在安裝目錄下找到 DISM工具程式
例如 D:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Deployment Tools\x86\DISM\DSIM.exe
clip_image002[5]


開啟檔案 apply-BootMedia.cmd,修正內容,將所有參考到DSIM的路徑,全部更換為絕對路徑,例如改成
"D:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Deployment Tools\x86\DISM\DSIM.exe”

要修改的地方可能有三處
第16行
    set dism="%SystemRoot%\System32\Dism.exe"
修改成
    set dism="D:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Deployment Tools\x86\DISM\Dism.exe"

第64、65行
    if exist "%ProgramFiles(x86)%\Windows Kits\8.1\Assessment and Deployment Kit\Deployment Tools\amd64\DISM\Dism.exe" (set dism="%ProgramFiles(x86)%\Windows Kits\8.1\Assessment and Deployment Kit\Deployment Tools\amd64\DISM\Dism.exe")
修改成
    if exist "D:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Deployment Tools\x86\DISM\Dism.exe" (set dism="D:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Deployment Tools\x86\DISM\Dism.exe")

以系統管理員身分,啟動CMD(命令提示字元)
clip_image002[7]

CMD畫面中,切換路徑到剛才下載檔案存放位置,輸入以下指令
apply-bootmedia.cmd -destination {YourSDCardDrive} -image {.wimFile downloaded above} -hostname mygalileo -password admin

實際範例
apply-bootmedia.cmd -destination L: -image 9600.16384.x86fre.winblue_rtm_iotbuild.141114-1440_galileo_v2.wim -hostname mygalileo -password admin

接下來把檔案複製到SD記憶卡(大概要等15分鐘才能完成)clip_image004[6]

PS: 請確認 GEN2的韌體已經更新到最新版本 (2014.12.07 韌體發布到 1.04)

在關閉 Galileo 電源的情況下,把設定完成的SD卡安裝到 Galileo,接上DC電源啟動Galileo

PC端開啟主控台,輸入telnet mygalileo指令,
緊接著輸入帳號 administrator 密碼 admin,成功連線出現如下畫面,
輸入ipconfig 查詢到Galileo使用的網路ip位址
clip_image002[9]

到此為止,我成功的在Galileo內安裝了Windows 6.3.9600,
但是視窗在哪裡啊 ??

系統已經內建WWW伺服器,所以可以直接用瀏覽器連線
clip_image002[11]

task list   就是工作管理員

file list   查看目錄檔案狀況

memory statistics   查看記憶體使用狀況

直接從PC端連線網路磁碟機來管理SD記憶卡內的檔案比較快
clip_image002[13]

clip_image002[15]

連線後就可以存取Galileo的SD卡內容
clip_image002[17]

接下來就是要好好的玩這個 「視窗作業系統」了。

2014年12月15日 星期一

Intel Galileo GEN2–WebClient 網路連線範例程式

 

開啟 Arduino IDE內的範例 (Examples->Ethernet->WebClient)
clip_image002

編譯、上傳程式

開啟 Arduino 的 monitor畫面,會看到抓回來的HTTP網頁資訊HTML
clip_image004

Intel Galileo Gen2 網路連線

先將網路線連到 Galileo,Galileo會經由DHCP分配到IP位址。

請確認 Galileo應該與自己的PC是位於相同的LAN,若不確定請再檢視自己的網路架構。

若DHCP無分配到IP位址,就要自行設定IP

開啟Arduino IDE 建立程式如下

void setup() {
    system("telnetd -l /bin/sh");
}

void loop() {
    system("ifconfig eth0 > /dev/ttyGS0");
    delay(5000);
}

編譯下載程式到 Galileo Gne2

開啟 Arduino monitor

可以看到IP的訊息、MAC網卡位址訊息
clip_image002

開啟DOS CMD視窗
clip_image004

輸入 telnet <IP位置>    (例如 telnet 192.168.0.74)
clip_image006

連線成功
clip_image008

2014年12月13日 星期六

Intel Galileo Gen2 安裝作業系統到SD卡

 

Intel Galileo 中運行的 Linux 系統是由 Yocto Buildroot系統產生的
準備1GB以上的micro SD記憶卡(最多可使用32GB記憶卡),並且格式化成FAT32
下載映像檔
    https://communities.intel.com/docs/DOC-22226
    http://downloadmirror.intel.com/24355/eng/SDCard.1.0.4.tar.bz2
會取得一個壓縮檔案 SDCard.1.0.4.tar.bz2 ,
解壓縮子目錄 image-full-galileo,將裡面的檔案全部複製到SD卡根目錄下
image

將Galileo拔除電源,放入SD記憶卡
image

接上電源,開機,同時利用序列埠連線監看開機過程
clip_image002

預設會從新的SD記憶卡開機
clip_image004

登入帳號 root        登入密碼 <無>
使用新的作業系統,開機成功
可以使用 python 指令測試看看
clip_image002[5]

常用指令

查看網路設定 
  Ifconfig

重新啟動指令
  shutdown –r now

關機指令
  shutdown –h now

clip_image002[7]

執行關機指令,最後會出現 Power down 訊息,同時控制板上的LED全部熄滅,就是關機完畢

2014年12月12日 星期五

Intel Galileo Gen2 更新韌體

 

確認 Galileo 沒有插入任何SD卡,若有的話,必須關機,拔除SD卡,重開機

開啟 Arduino IDE,確認 Tools->Board->Intel Galileo Gen2,Tools->Serial Port 也是正確的
clip_image002

點選 Help->Galileo Firmware Update
clip_image002[5]

提醒務必要接DC電源,避免更新過程中斷電,控制板變成磚頭
clip_image002[7]

結果更新失敗 !?
clip_image002[9]

更新失敗 !!! 網路討論可能有許多種原因

1. 可能是 Ardino IDE 所在檔案路徑上有空格 https://communities.intel.com/message/237438

2. 可能是 COM port被占用(例如有Arduino的程式正在執行,並且使用com port),建議PC重新開機

3. 可能是有有Arduino的程式正在控制板內執行導致混亂,網路建議下載一個空程式到控制板內

4. 可能是USB線材不穩定,避免使用不穩定的USB 3.0,(或是使用到不穩定的USB線材,或是中間經過不穩定的USB HUB....)

我找一條品質比較好的USB線,直接連接到PC USB PORT(不經過HUB,也不經過USB延長線),然後PC重新開機,將Arduino目錄直接放在D:\之下,讓路徑盡量單純,再次執行上述韌體更新步驟

終於看到正常的畫面了
clip_image002[11] 
clip_image002[13]

大約五分鐘後更新完畢
clip_image002[15]

保險起見,重新編譯、下載 blink程式,確定看到控制板上的LED燈開始閃爍,確定成功。
有趣的是,如果再次執行更新韌體步驟,又會看到相同的錯誤訊息。
clip_image002[17]

再次實驗,將Galileo重新啟動,USB拔除又重連,重複直行更新韌體步驟,又恢復正常了
clip_image002[19]

我想,應該是USB模擬的這個COM port被占用,更新韌體才會失敗,
所以重新開機能釋放被占用的 COM,才能更新韌體。

2014年12月11日 星期四

Intel Galileo Gen2 Console 連線測試

 

Galileo 的網路插座旁邊提供一組 FTDI console連線埠

image

到電子街買一個 USB轉TTL Serial 的模組,如下圖(正面  反面)
image 

image

然後將 USB轉TTL Serial 的訊號線接到 Galileo FTDI 接腳上
連線方法

USB轉TTL Serial 的模組.GND -> Galileo.GND
USB轉TTL Serial 的模組.RXD -> Galileo.TX
USB轉TTL Serial 的模組.TXD -> Galileo.RX

image

連線PC自動抓到COM9
image

開啟PUTTY,建立新連線,COM9,連線速度 115200

image

帳號root / 密碼為空,登入成功看到如下圖的歡迎訊息

image

這樣子就可以透過 Putty 連線控制設定作業系統。

2014年12月10日 星期三

Intel Galileo Gen2 開箱初體驗

 

剛剛收到 Intel Galileo Gne2 第二代開發板,與第一代開發板的差異大概有以下10個重點
clip_image002

https://communities.intel.com/docs/DOC-23134
1. Intel Galileo Board Gen 2 substituted the mini USB host port for a full size USB host port.
2. FTDI Port has substituted the 3.5mm jack.
3. The Cypress CY8C9540A is no longer used; it has been replaced with multiple multiplexers.
4. The reboot is now located where the reset button was on the previous version on the bottom left side.
5. The reset is not located at the bottom right of the device, where the reboot was located in the previous version.
6. The power supply is now from 7V to 15V. Don’t connect the power supply of the previous version.
7. The IOREF pins are now located next to the Ethernet port.
8. LED for USB relocated and new OC LED.
9. New LED for Loading, ON and SD LEDs relocated.
10. Preset for installation of POE module

開箱照片
image 

裡面主要有兩樣東西:  二代開發板,以及電源供應器,
根據網路上說明,務必使用足瓦的12V電源供應器,
因為啟動瞬間消耗電流較大,若只接USB電源可能會導致損壞

image

控制板上的一些重要元件

clip_image001[5]

首先連線到 Intel 網站 https://communities.intel.com/docs/DOC-22226
下載開發軟體  Arduino Software 1.5.3  http://downloadmirror.intel.com/24355/eng/arduino-windows-1.0.4.7z

clip_image002[5]

下載得到檔案 arduino-windows-1.0.4.7z,解壓縮產生目錄 arduino-1.5.3-Intel.1.0.4
image

因為程式仍有bug,如果直接double click目錄下的 arduino.exe 是無法執行的,
必須到控制台修正Win7的語系變成英文才行,如下圖
image

再次啟動 Arduino IDE,終於成功看到熟悉的畫面了
經過試驗,當Arduino IDE啟動後,又可以到控制台將格式就改回中文(繁體台灣)
只不過每一次重新啟動Arduino IDE,格式都必須先改成英文,挺麻煩的。
clip_image002[7]

接下來將12V電源接上控制板,USB母座左右兩邊各有一個LED會亮起
image

將 USB 連接到 PC,PC立刻偵測到新裝置,自動安裝驅動程式
clip_image002[9]

但是無法自動找到驅動程式
clip_image002[11]

必須手動安裝驅動程式,
開啟裝置管理員會看到多了一個有問號的裝置,點選滑鼠右鍵,選擇更新驅動程式
clip_image002[13]

clip_image002[15]

指定驅動程式路徑,也就是剛才下載回來的Arduino IDE所在路徑
clip_image002[17]

clip_image002[19]

clip_image004

clip_image006

驅動程式安裝完畢,裝置管理員內看到多了一個 Galileo連接埠(COM30)
clip_image008

再回到 Arduino IDE,開啟閃燈範例程式(Blink)
clip_image002[21]

設定控制板型號 Intel Galileo Gen2
clip_image002[23]

設定連接埠編號,也就是在控制台內看到的Galileo連接埠編號(COM30)
clip_image004[5]


image

點選下載程式,就可以看到pin13 連接的LED開始閃爍,第一個閃燈程式初體驗完成。
image