2015/04/30

Raspberry Pi 2與Windows 10

聽說Raspberry Pi 2可以跑Windows 10,叫做Windows 10 IoT Core Insider Preview的版本,來試試看吧。

看了一堆介紹,到了安裝設定的說明頁面,嗯嗯,怎麼感覺此頁面有點陽春啊,不管了,沒細看。看到要我下載Windows_IoT_Core_RPI2_BUILD.zip,嘿,需要以Microsoft帳戶登入,嘿,已經過了八百多年,都不知道跑哪去了,東找西找終於找到帳戶密碼,然後想登入,還要我確認身分,可是確認信卻跑去某個已無法存取的老舊email帳號,哇哩咧,繼續努力,東搞西搞之後終於進去了,下載完成。

下載後,要我燒錄裡頭的flash.ffu到Micro SD記憶卡,啥,這什麼檔案啊,好像是Windows Phone的Full Flash Update映像檔,要我使用好幾個沒聽過的指令進行燒錄,嘿,我還是試試看指令dd來燒錄吧,呃,不行,算了,這也在意料之中。

好吧,還是遵照該頁面的步驟吧,仔細閱讀後,發現一句話「The following steps can only be executed on a system running Windows 10 (build 10069 or higher).」,晴天霹靂,有沒有這麼慘啊?居然只能使用Windows 10,嘿,有沒有搞錯啊,不就是把一套軟體放進Pi 2,不就是把映像檔燒錄進記憶卡,還需要有Windows 10,真是夠了。

東摸摸西摸摸,喝了好幾杯茶和咖啡,Windows 10終於下載完成,嗯,怎麼安裝呢?我可沒有能跑Win 10的機器啊,只好在Mac OS X上以VirtualBox建立虛擬機器,然後安裝,又再喝了幾杯茶和咖啡,又再經過一堆設定,雖然畫面上顯示著「Just a moment...」,但那一串點點卻老是轉個不停,不管如何,最後Win 10總算安裝完成。

注意,下圖是一般的Win 10,不是Pi 2跑的Win 10。

呃,又遇到一個問題,把SD記憶卡插入Mac後,嘿,虛擬機器裡的Win 10看不到它,哇哩咧,趕快去拜孤狗大神,解決此問題。

準備好環境後,回到說明頁面,照著上面寫的步驟執行,馬上就遇到問題,「Open an admininistrator command prompt」,新系統新介面,command prompt在哪啊?翻箱倒櫃找到後,執行指令進行燒錄,呃,好慢啊,超級慢啊,大概是因為中間隔了虛擬機器的原因吧。
燒錄完後,記憶卡被分割成好幾個分割區。
把記憶卡放進Pi 2,開機!等啊等,等到藍色四小窗格。
等啊等,又等到這個圖示,不知道什麼意思。
途中應該會自動重開機,然後就會看到如下畫面。
嘿,成功開機囉,可看到IP位址。
然後隨著這份文件,開啟PowerShell。
遠端登入進去Pi 2,可以更改密碼,執行各種指令,查看Visual Studio Remote Debugger是否正常執行。
接下來,想要開發程式的話,須跟著之後的說明頁面,繼續在Win 10主機(非Pi 2)上安裝開發工具Visual Studio 2015,然後安裝WindowsDeveloperProgramForIoT.msi(在之前下載的Windows_IoT_Core_RPI2_BUILD.zip裡),之後會啟動Windows IoT Core Watcher,查看有哪些安裝了Windows 10 IoT Core的裝置。

然後開始寫程式開發專案,控制Pi 2的GPIO,到這裡看看範例專案,說聲Hello World吧,點我?這是模仿愛麗絲夢遊仙境的喝我嗎?
哇,點了之後出現IoT Core字樣耶。
然後試試控制GPIO吧。

53 comments:

  1. 对于SD无法显示在VM的问题只要用usb读卡器就可以了,嘻嘻嘻

    ReplyDelete
  2. 最近也要來摸摸看這個..多謝您的文章^^
    我一直在想..到底有沒有免安裝win10燒錄SD卡的方式..orz?

    另外想請教一下,您在vm裡面裝vs2015是什麼版本的?free的即可嗎?

    thanks.

    ReplyDelete
    Replies
    1. 這篇只是隨手記錄,不詳細,網路上其他人有寫更詳盡的分享文。

      重點是如何燒錄.ffu檔,我沒找到其他方式,所以只能安裝win10。
      而且,之後的vs2015也需要win10。

      我下載的VS2015就是官方說明頁面裡寫的:
      https://dev.windows.com/en-US/downloads/install-dev-tools-visual-studio-2015

      Delete
    2. 『之後的vs2015也需要win10』,是說一定要win10裡面才能安裝喔?我打算在win7安裝vs2015寫code,這樣行嗎?

      Delete
    3. 嗯,「之後的vs2015也需要win10」這句話說的太快了,

      此頁面
      https://dev.windows.com/en-US/downloads/install-dev-tools-visual-studio-2015
      寫著「If installing on Windows 10 Insider Preview, build 10074 or later is required. 」,
      而且此頁面http://ms-iot.github.io/content/win10/SetupPC.htm
      寫著「Install Windows 10 from here」,
      所以我「猜想」需要win 10。

      至於你的問題「在win7安裝vs2015寫code給Pi2+Win10 IoT執行」,恐怕要實際試試看才能確定。

      Delete
    4. Marconi Jiang13/8/15 23:08

      看到有人用 python 把 .ffu 轉成 .img

      http://techcrunch.com/2015/04/30/how-to-install-windows-10-iot-on-your-raspberry-pi-2/#.y9uweg:II95

      的第四段

      UPDATE – Success! To convert FFU files to IMG files simply grab this Python script and install the resulting image just as you would normally.

      ffu2img is a simple python script that converts Microsoft’s FFU format to the standardized raw img format. IMG files are what you get from dd, while FFU involves a bunch of validation, verification, signing and even a form of deduplication. The Raspberry Pi 2 Windows 10 images don’t use the deduplication features, or this would have been much more annoying to write. I’m skipping all the block management features of the format, and just outputting the raw blocks.

      Delete
  3. 右~
    我有一個問題..
    灌win 10 之後可以用RCA輸出?

    ReplyDelete
    Replies
    1. 要使用正確的線材。
      請看https://www.raspberrypi.org/forums/viewtopic.php?f=41&t=87619
      的第一張圖跟第二張圖。

      Delete
    2. 嗯~
      所以Win 10沒硬性規定HDMI?真是佛心來的XDDDDD

      Delete
    3. 嗯,那部分應該是被rpi基金會掌控,
      Microsoft應該只負責實作驅動程式。

      Delete
  4. 燒錄SD後 怎移除SD上的WIN10

    ReplyDelete
    Replies
    1. 格式化。
      重新燒錄別的映像檔。

      Delete
  5. sorry 有些地方不是很了解想尋求您的幫助~
    目前pi2都已正常開機,也可以遠端連到它...但是接下來的開發有些疑惑

    1. 您提到 安裝WindowsDeveloperProgramForIoT.msi ,安裝後會啟動Windows IoT Core Watcher,可是我發現我兩台win10電腦這個程式都開不起來耶..點兩下就消失了,這會影響到一些功能沒被enable嗎?

    2. 對於win10 pc和pi2的溝通方式我還是不太了解。我在pc抓了sample code並且開啟vs2015執行它,然後呢?我是應該先跟pi2透過

    Enter-PsSession -ComputerName xxxx.xxx.xx.xx -Credential xxxx.xxx.xx.xx\Administrator

    建立連線後再去執行vs2015的專案嗎?
    那又如何讓pi2執行這同樣一支程式? 還是在build project的時候就會『遠端』deploy到pi2上,然後按run就是run Pi2上被部屬的這支程式? 不是很了解這後續的溝通模式..還請您指教!

    ReplyDelete
    Replies
    1. 抱歉,你的留言不知為何被部落格系統扣住了,現已回復。

      Delete
  6. sorry 有些地方不是很了解想尋求您的幫助~
    目前pi2都已正常開機,也可以遠端連到它...但是接下來的開發有些疑惑

    1. 您提到 安裝WindowsDeveloperProgramForIoT.msi ,安裝後會啟動Windows IoT Core Watcher,可是我發現我兩台win10電腦這個程式都開不起來耶..點兩下就消失了,這會影響到一些功能沒被enable嗎?

    2. 對於win10 pc和pi2的溝通方式我還是不太了解。我在pc抓了sample code並且開啟vs2015執行它,然後呢?我是應該先跟pi2透過

    Enter-PsSession -ComputerName xxxx.xxx.xx.xx -Credential xxxx.xxx.xx.xx\Administrator

    建立連線後再去執行vs2015的專案嗎?
    那又如何讓pi2執行這同樣一支程式? 還是在build project的時候就會『遠端』deploy到pi2上,然後按run就是run Pi2上被部屬的這支程式? 不是很了解這後續的溝通模式..還請您指教!

    ReplyDelete
    Replies
    1. 1. 我有時可開、有時不可開。但後續的範例程式仍可執行。

      2. 你在一般win10電腦上以vs2015開發軟體專案,然後部署到本地端、或遠端(也就是pi 2),請看https://ms-iot.github.io/content/win10/samples/HelloWorld.htm的第6張圖,選擇部署對象。

      Delete
    2. 我也只是照著http://ms-iot.github.io/content/win10/SetupRPI.htm裡頭的步驟而已,注意:不只一個頁面,需要仔細閱讀的有好幾個。

      Delete
  7. 謝謝您的回覆~目前已經可以正常使用了!另外..之前我提到想在win7電腦上開發,感覺不太可能的感覺...現階段看到一堆的都是for win10的套件 orz..

    ReplyDelete
    Replies
    1. 的確都是寫著for win10。
      可不可能要試過才知道,但那太耗費心力了。

      Delete
    2. 不過 Win10 和 Win 7 比較 實在沒有理由用Win7開發了吧 前者不論速度介面啥的都比後者好太多了啊 只想到老機器 不想更新軟體才有可能要Win7

      Delete
    3. 哦,這樣啊。
      可是現在大部分人都是win7吧,甚至還有人的winxp想再戰十年,呵。

      Delete
  8. 請問,我有成功可以debug win10 iot的程式.不知大大可否知道如何將編譯好的執行檔放置於裝置上,並執行他呢?謝謝

    ReplyDelete
    Replies
    1. 你都已經可以debug win10 iot程式了,不就代表你把編譯好的執行檔放置在裝置之上並執行了嗎?

      Delete
    2. 你好,當我把debug模式停止,程式就會關閉.我想要可以開機就會自動執行程式.不知大大有什麼好法.我一直試不出來.謝謝

      Delete
    3. 我最近沒在玩rpi+win10耶。

      請參考
      http://ms-iot.github.io/content/en-US/win10/samples/HelloWorld.htm
      最後面的Set HelloWorld as the Startup App

      Delete
  9. 請問Windows 10 IoT Core 也有瀏覽器,也可裝office之類的應用軟体嗎?

    ReplyDelete
    Replies
    1. 不清楚。我猜沒有。
      Windows 10 IoT Core是物聯網的版本,照理說不會有這些東西,但可能會有相關的程式庫,譬如存取Office檔案的API介面。

      Delete
  10. https://www.raspberrypi.org/forums/viewtopic.php?f=105&t=109160
    這裏有嘗試用 win7,應該值得一試

    ReplyDelete
  11. 你好~我想問問看raspberry pi 灌完win10後,可以執行原本桌機C#寫完的windows form程式嗎??

    ReplyDelete
    Replies
    1. 基本上可用的就是UWP API,但有些尚未實作,請見https://ms-iot.github.io/content/en-US/win10/UnavailableApis.htm

      Delete
  12. 記憶卡有什麼現制嗎?
    我看官網好像有一個需要是class10的記憶卡?
    如果沒有差別的話,記憶卡有推薦速度稍為快一點的嗎?

    ReplyDelete
    Replies
    1. class 10是很普通的要求。
      官網推薦這兩款
      http://www.amazon.com/SanDisk-Ultra-Micro-SDHC-16GB/dp/9966573445
      http://www.amazon.com/gp/product/B00IVPU786

      我用的是SanDisk的。

      Delete
    2. 那看起來應該是沒差了,還有什麼辦法可以更提升讀取跟存取速度嗎?

      Delete
    3. 不清楚。

      rpi可用的sd卡與效能,可看這裡http://elinux.org/RPi_SD_cards

      另外存取速度應該也會跟win 10本身有關,但使用者無能為力。

      Delete
  13. 葉老師您好
    現在微軟的安裝軟體好像跟您寫的不一樣了
    我是使用他目前釋出的專屬軟體安裝(windows IoT Image Helper)
    但是安裝完成裝入Pi2中螢幕卻沒有顯示
    初期樹梅派顯示紅燈恆亮 黃燈閃爍
    後來變成紅燈恆亮 黃燈不亮
    想請問您這是我安裝程式的問題還是我使用HDMI轉VGA的問題呢?
    麻煩請老師您隔空抓藥一下了
    謝謝您

    ReplyDelete
    Replies
    1. > 不一樣了
      電腦世界就是不斷更新。

      > 紅燈 黃燈
      猜測window iot core應該燒錄成功(僅是猜測),黃燈是記憶卡在存取。

      > 沒螢幕
      的確可能是HDMI轉VGA的問題。換台HDMI螢幕吧,咳咳。

      你的記憶卡是Class 10嗎? 太舊太慢的話,會有問題,因為太慢,開機時有些程式拿不到需要的資料。



      Delete
    2. 老師您好
      這個螢幕之前測試過B+版是能使用的!
      但是現在能用讓我跟納悶了
      我的記憶卡是Class10的
      我想如果在第一次開機沒有插乙太網路線
      是否會有影響呢?

      Delete
    3. > 螢幕之前測試過B+版是能使用的
      話雖如此,但也不能保證在pi 2 + win iot core就能用。
      因為HDMI的規格與溝通協定很複雜,如果板子端因為轉接器的緣故、偵測不到螢幕的話,就不會送出訊號。

      > Class 10
      嗯,網路上常見的原因就是記憶卡不夠好。 或許再試試別的記憶卡吧。
      你用的是microsoft建議的品牌嗎?

      > 沒有插乙太網路線
      照理說沒有影響。

      Delete
    4. 葉老師您好
      我的記憶卡是使用金士頓的
      在網路上大家也似乎都是使用這個牌子
      會是因為這個原因嗎?
      至於螢幕部分的話我想可能只能多試看看了
      最差的情況似乎也只能添購HDMI的螢幕了
      那想請問老師要怎麼樣子驗證自己的程式是否燒錄成功呢?
      因為微軟現在都是封包安裝完成的了
      似乎也沒有可以出錯的地方(應該)
      謝謝您

      Delete
    5. 官網建議Sandisk跟Samsung,有人使用Kingston卻失敗,
      http://fattech.logdown.com/posts/283883-windows-10-iot-core-on-rpi2

      但也有人用Kingston Class 4開機成功
      https://www.youtube.com/watch?v=wP27V6PuAqs

      網路上找到關於記憶卡的失敗情況,似乎Kingston比較多。

      > 添購HDMI的螢幕了
      我猜是記憶卡的問題。先去借別人的螢幕吧。

      > 驗證自己的程式是否燒錄成功呢?
      如這篇所述,開機成功、看到畫面、抓到IP、能夠執行範例程式。

      Delete
    6. 再請教老師您
      使用您上述所說的兩種記憶卡的話
      是否一樣購買Class10的就可以了呢?
      謝謝您

      Delete
    7. 那兩種記憶卡是官網建議的,我用的是SanDisk Ultra 8GB Micro SDHC。

      SD記憶卡除了Class標示外,各家還有很多規格,如Ultra、Extreme、等等。
      最新的不一定可用,因為rpi可能不支援。

      Delete
    8. 老師您好!
      我有更換記憶卡SanDisk Ultra 16G Micro SDHC class10 (speed up to 48MB/s)
      想請問老師 網路上人家購買的都是紅灰的版本
      我買到的是白灰的
      請問這樣子有差異嗎
      因為我還是開不了機(挫折)

      Delete
    9. 以前只有紅灰48MB/s,後來大概技術更新了,speed可到80MB/s,仍維持紅灰,但把48MB/s的產品改成白灰。
      嗯,記憶卡的包裝紙,上面有產品序號之類的,到這裡查詢吧http://elinux.org/RPi_SD_cards,應該沒問題才對。

      看你這樣我也很挫折。

      我猜問題剩下
      1. 因轉接器導致視訊訊號沒有輸出到螢幕
      2. 根本沒有燒錄成功(我想應該不是這個)

      Delete
    10. 老師您好!
      我剛利用您給的網址尋找發現.....
      找不到此型號
      我的型號是SDSQUNB-016G-GN3MN
      所以好像還是記憶卡問題.......(我猜)
      謝謝老師您的回覆

      Delete
    11. 型號應該是因為是新顏色,所以不同。
      因為是新產品,所以還沒人用過,就算有人用過,也懶到寫上剛剛的網頁。
      我認為記憶卡應該是ok的。你都試過兩張卡了。

      而且之前說初期樹梅派顯示紅燈恆亮 黃燈閃爍,後來變成紅燈恆亮 黃燈不亮,
      應該代表沒問題才對。

      所以我還是猜螢幕轉接器啦。

      Delete
    12. 老師您猜對了...
      貌似不能使用轉接器.....
      我直接使用HDMI輸出就開機了!!
      謝謝老師對我不離不棄(抹淚)
      看來PI2對轉接器似乎更挑了....

      Delete
    13. 恭喜,也謝謝回報成果。

      HDMI是個複雜的介面,若輸出端(Pi 2)沒有偵測到接收端(螢幕),就可能不輸出視訊訊號;使用轉接器的話,其中某些訊號可能出問題,導致此結果。

      Delete
  14. 我也是有遇到HDMI to VGA的問題,修改config依然沒辦法正常在VGA螢幕顯示,不曉得是哪邊有問題,請問我可以檢查那裡或是做什麼調整?謝謝。
    另外,我想在Windows 10 Iot讀取DHT11溫溼度感測器,一直找不到C#的範例,請問關於讀取Senor,是否有什麼參考資料可以看。

    ReplyDelete
  15. > 有遇到HDMI to VGA的問題,修改config依然沒辦法正常在VGA螢幕顯示
    螢幕有顯示任何東西嗎?還是沒訊號?
    rpi開機程序要到某個階段,才會有螢幕輸出;可以購買「USB轉序列埠」產品,登入主控台,看看有無開機訊息。請參閱
    http://yehnan.blogspot.tw/2013/09/raspberry-pi.html

    沒有畫面的話,可能出錯的情況很多,包括電源、記憶卡、映像檔、螢幕轉接頭、等等,請參閱http://elinux.org/R-Pi_Troubleshooting

    > 在Windows 10 Iot讀取DHT11溫溼度感測器
    https://gist.github.com/Injac/c8399ca89efe8bdc213f

    ReplyDelete
  16. 您好:
    請問win10的話,是要家用版,還有專業版。
    謝謝。

    ReplyDelete
    Replies
    1. 不清楚,文件沒寫;只說要Windows 10 (version 10.0.10240 or better).

      我這篇文章已經舊了,請到https://developer.microsoft.com/zh-tw/windows/iot觀看最新的說明。

      Delete