2013年12月12日 星期四

實現Windows Embedded 8 Standard 上的快速開機(HORM)

再來實作一個Microsoft很少人討論的功能HORM,很多人在網路上爬文都只會看到這是個快速開機的功能,能夠很快的進入作業系統,就是沒有人把這個功能作出來Demo給大家看,到底開機有多快。 最近一直被問到這個功能乾脆自已把步驟寫出來吧. 接著我們直接講解實作過程吧:

1.在ICE工具中加入我們必要元件
  • Unified Write Filter(UWF)
  • Embedded Lockdown Manger

2.設定Unified Write Filter(UWF)
  •    Binding => Loose Binding
  •    DisableSR -> 1


3.建立WE8S Image 並進行OS安裝
我們這次VIA A1100 平台來安裝 規格表如下:
CPU: U2500 1.2 GHz
RAM: 2GB
HDD: Seagate Momentus 320GB 7200RPM

4.安裝完成後我們開始來設定UWF功能,依序鍵入下列指令
   開啟Command line (請務必使用Administrator 權限)
  •    powercfg /h on
  •   uwfmgr filter enable
  •   shutdown /r /t 0


5.重開機後,再設定HORM 功能
  • powercfg /h on
  • shutdown /h


6.我們來測試一下到底開機有多快,特別將開機過程錄影下來.
從BIOS logo之後到完全開機只花了13秒,如果換成SSD 肯定是秒殺呀.






2013年12月10日 星期二

Windows Embedded 8 Standard 的Killer function-Unified Write Filter -2 (Command Line篇)

上篇討論UWF使用ELM,來作管理或許長期使用Command Line的人會可能會很不習慣,
所以後還是將UWF Command Line的常用指令操作列出來給大家試試.
PS:開啟Command line 工具進行操作,注意需使用Administrator 權限

1.查詢UWF目前設定值
uwfmgr.exe get-config
查詢目前UWF設定狀態與下次開機後的執行命令,資訊包括Filterg狀態、Overlay設定,磁碟保護的檔案與目錄與註冊檔.

2.開啟UWF功能
uwfmgr.exe filter enable
功能會在下次reboot後生效

3.UWF中設定保護磁碟
uwfmgr.exe volume protect C:
執行後需要重新開機才會生效

4.UWF中增加可存取目錄與檔案設定
當保護設定完成後,如要加入可存取檔案及目錄以依下列命令完成
uwfmgr.exe file add-exclusion C:\mydir\myfile.txt

uwfmgr.exe file add-exclusion C:\aa\documents

5. UWF中增加可存取註冊檔設定
uwfmgr.exe registry add-exclusion HKLM\Software\MySoftware\MyApp

6. UWF設定最大Overlay 空間
uwfmgr.exe overlay set-size 2048

7. UWF查詢已使用的Overlay空間
uwfmgr.exe overlay get-consumption

8. UWF查詢尚可使用的Overlay空間
uwfmgr.exe overlay get-availablespace

Windows Embedded 8 Standard 的Killer function-Unified Write Filter -1 (ELM篇)


在Windows Embedded 8 Standard上最大的賣點莫過於是UWF功能,因此我們特別開了這個主題來說明這個功能,記得在以前我們學校電腦教室一定會安裝的"硬體還原卡",這卡不便宜一片得要1、2千塊,今天要說的主題跟這個有關嗎?

UWF其實就是軟體的"硬體還原卡"功能而且這個功能還是免費的 有影沒...
我才說光這個功能Linux、Android就得要望塵莫及,回到我們的主題在這個UWF中Microsoft已經有提供UI可以提供操作,就是利用ELM(MMC plug-in的方式) 工具來管理UWF 各種功能.

一、UWF 功能設定
1.在ICE中的Configuration File 視窗,展開Feature->Lockdown 加入Unified Write Filter(UWF)
2.在Settings and Properties中選擇Settings 頁籤
3.在Settings 中將Filter View by 項目選擇為”4 Specialize”

  •     DisableSR =1  (關閉系統還原點功能)
  •     Binding = Loose Binding (利用drive letter來設定)


二、ELM上操作UWF UI設定
1.於左邊視窗中展開UWF項目其中細分成三部份:

  • Volume => 主要管理要增加保護的磁碟代號
  • File Exclusions => 加入需要作存取的檔案或目錄
  • Registry Exclusion => 加入需作保留Registry路徑
2. 於右邊視窗中顯示目前UWF 狀況,Overlay size、Type..etc
 

3.選擇Volumes 項目,控制磁碟保護開啟與關閉
 

4.選擇File Exclusions,增加排除保護的檔案與目錄.
        
5.選擇Registry Exclusions, 增加排除保護的Registry路徑

[Seminar] 12/18 零售產業高峰會 微軟嵌入式系統


                   報名網址  http://seminar.ithome.com.tw/live/20131218CW/index4.html

                                 

WE8S 開機進入客戶程式(Shell Launcher)


Windows Embedded 8 Standard 中設定Custom Shell設定方式,我自是使用EEF中的Shell Launcher 其好處是本身Application可繼承Shell的特性,在WE8S中我們可以針對Application被使用者關閉所對與的行為作出對與的動作.

在客製化Shell 的步驟中我們針對OOBE 與 Shell launcher 所需要修改的參考作以下範例:
1.設定OOBE自動化
Product->Embedded Core 中設定”7 OOBE System”
在OOBE 屬性中設定下列參數
HideWirelessSetupInOOBE = true
HideOEMRegistrationScreen = true
HideLocalAccountScreen = true
HideOnlineAccountScreen = true
HideEULAPage = true
NetworkLocation = work
ProtecYourPC = 1

2.Shell Launcher 元件設定
展開Features->Shell->Shell Launcher 設定”7 OOBE System”
  Shell -> explorer.exe
加入不用的UserSettings進系統中,並指定開啟的Shell 的路徑.


展開User 項目作以下設定:
AccountName -> WorkShopUser
Shell -> C:\users\CustomDesktopShell\CustomDesktopShell.exe
DefaultReturnCodeAction -> 0
Key -> 1

其中值得一提的是DefaultReturnCodeAction ,主要是控制Shell屬性的參數
對於Application 被關閉是作的行為設定,我們預設為"0" 當Application被關閉時系統自動將Application重啟,可使Application 一直顯示在螢幕上.
                                   

2013年11月28日 星期四

如何刪除Windows Embedded 8 Standard 上的 Module

最近在備課時發現怎麼一堆人只在談如何使用Designer Module 來建立Module 加入至Catalog 之中,但是沒有人教你怎麼移除它,每作一次就多一個元件終於我受不了,於是我研究了一個下午終於有個驚人的發現Windows Embedded 8 Standard中有個隱藏的工具Catman.exe 看名字應該不難猜到Catalog management 功能.

1.依照慣例我還是要教大家怎麼匯入一個Module 至Catalog( 之前我教過MD 如何製作了,請爬文),在File->Import 選擇匯入Module  並將之前作好的emd檔匯入.

2.匯入完成後會出現成功訊息,如下

3.按F5 重新整理一下Catalog ,你會發現 剛剛匯入的Module會存在於Custom Modules目錄之中

4.開啟檔案總管,我們看一下匯入的Module 的檔案都去了那裡了.
  基本上路徑會在C:\Windows Embedded Catalog\6.2\9200.16384\x86\modules\FeaturePack之中 (路徑很重要請記起來),下面紅框就是剛剛匯入的Module 的名稱.

5.接著重頭戲來了,先開啟一個command line 視窗,並將路徑切換至C:\Program Files (x86)\Windows Embedded 8 Standard\Toolset\Embedded Tools.
開始來移除剛剛我們匯入的Module ,我們使用以下的指令
catman /remove "C:\Windows Embedded Catalog\6.2\9200.16384\x86\modules\FeaturePack\Win8_App~0000000000000000~x86~~1.0.0.0.emd" "c:\windows embedded catalog"

PS:以上路徑分成四個顏色  cataman /remove "存放emd的路徑"  "Catalog 的目錄"
以上說了一堆 只要看的懂這一行指令就好了.

6.成功移除後 系統會提示 Catalog 有更動,按F5 refresh 一下Catalog.

7.檢查一下剛剛Win8_App 果然不見了,連帶的Custom Modules 目錄也被刪除了

8.就是這麼簡單 但是就是沒有人研究,這個解開了許多人多年的疑問了.

2013年11月5日 星期二

開發Windows Embedded Compact 2013 你一定要知道的事

在開發Windows Embedded Compact 2013 一定要先知道你相使用的版本,因為這個關係到License 價格,在目前Windows Embedded Compact 2013 這次Release 出來共三個版本

一、Windows Embedded Compact 2013 three of SKU:
◦Windows Embedded Compact 2013 Runtime (General Embedded)
◦Windows Embedded Compact 2013 Runtime (Entry)
◦Windows Embedded Compact 2013 Runtime (NR)

價格部份請找Microsoft 代理商詢問吧!

二、選擇你的開發平台,在開發Windows Embedded Compact 非常重要的關鍵因素就是Driver,而其中最重要的就是BSP(Board Support Package) ,沒有BSP 就沒有Windows CE.
所以如選擇H/W Platform 是否支援Windows CE OS 就是非常重要了.
其實Microsoft 有建立一平台提供客戶, BSP與H/W Platform 支援查詢網址:
http://www.microsoft.com/windowsembedded/en-us/bspcatalog.aspx


當你決定好這二件事就可以放心的去開發你的Windows Embedded Compact 2013的產品了.

Windows Embedded 8 Standard 教育訓練( WE8S/ WES8)


久違了距離上次WE8S 課程已也有半年之久了,應客戶要求希望我們再次舉辦Windows Embedded 8 Standard 教育訓練課程,本次的課程預定在12/6 舉行。

這次課程有我會新增我在Microsoft西雅圖 拿到的資料,希望能夠充實這次的課程內容,
有興趣的人,可以下載E-DM 看看課程資訊。

課程:Windows Embedded 8 Standard (進階)
時間:2013/12/6 9:30~17:00
地點:台北巨匠認証中心教育 (公園路)
課程內容:下載E-DM


2013年10月23日 星期三

Windows Embedded 8.1 Industry SKU 介紹

10/18宣佈微軟的Windows 8 Pro 升級成8.1產品中,Windows Embedded Industry 8.1也是名列其中的產品,今日也拿到空運來台的WE Industry 8.1 OPK 光碟了,可以跟代理商申請了.

在微軟的產品中你會在SKU List 中看到這二類產品就是Windows Embedded Industry 8.1 Pro 與 Windows Embedded Industry 8.1 Pro Retail,那這兩類產品有何不同呢? 實際上這個二SKU功能一模一樣但價格是有較便宜的,差別是Retail SKU 限定設備種類,如果你能夠符Retail License term,公司是可以省一筆License的費用.

以下簡單分類,實際上License term有應明確的定義(License term這要跟軟微代理商要的)
  • Windows Embedded 8.1 Industry Pro. ( 正常安裝所使用的版本)
  • Windows Embedded 8.1 Industry Pro (Retail).  限定於POS kiosks scanners等設備
  • Windows Embedded 8.1 Industry Enterprise.  需要額外購買Volume Licensing 來啟動Enterprise Feature.
另外Windows Embedded 8.1 Industry Enterprise為透過使用Volume Licensing 所啟動的功能,
啟動後系統會增加下列四項Enterprise Features. 如下表

2013年10月22日 星期二

如何選正確的Windows CE開發程式語言

在Windows CE 軟體開發中,初學者常常遇到開發時選擇何種語言的問題,由於嵌入式軟體常常會需要與硬體作溝通,撰寫程式上可沒有辦法只用一種語言就可達成,所以今天來探討那些程式語言與Windows CE各元件的配合.

我們在程式設計上分成Native and Managed 二類:

  • Managed code 主要是使用.Net Compact Framework所撰寫的成的程式,在設計上簡單上手,但於執行效能上就沒有Native來的優.
  • Native Code 主要以Win32 API所撰寫的程式,Win32撰寫程式於資源用量少、執行速度快但缺點就是比較不易上手。
所以我們可能看到在OAL、Driver、Services 都建議使用Native 的方式來作開發.


C# (Managed)
VB (Managed)
C/C++ (Native)
Assembler

 (Native)
OAL


WIN32
WIN32
Drivers


WIN32

Services


WIN32

Application
.NET CF
.NET CF
WIN32, MFC, ATL, WTL, STL

Shell
.NET CF
.NET CF
WIN32, MFC, ATL, WTL, STL

ICS
(Internet Client Services)
.NET CF
.NET CF
WIN32, MFC, ATL, WTL, STL

2013年10月16日 星期三

於sysprep 後自動輸入產品金鑰

在之前教學中我們會利用Sysprep來作最後的打包動作,但在第一次開機的時候會需要我們輸入金鑰,但金鑰何其重要如何KEY 讓客戶知道那不就會被大量安裝. 特別的是Windows Embedded OS 產品金鑰是使用ePKEA,只要一組Key就可以多次啟動,所以這個步驟一定不能省略.
其實這步驟只要多作一個Answer files,在執行sysprep時直接將金鑰作為參數輸入就可在OOBE時省略使用者輸入金鑰這個步驟.

在Answer File的製作會使用到一個工具 Windows System Image Manager (WSIM),工具是Free可直接Microsoft website 下載,這部份我之前說明過.


1.開啟WSIM 後,直接加入 在Windows PE - | amd64_Microsoft-Windows-Setup_neutral | UserData | ProductKey


2.加入 在Pass 4: Specialize - | amd64_Microsoft-Windows-Shell-Setup_neutral | ProductKey

請將xxxxx-xxxxx-xxxxx-xxxxx-xxxxx 換成你的序號輸入

3.儲存你的Answer File

4.於設備上執行Sysprep /generalize /oobe /shutdown /unattend:c:\Untitle_Windows8_64.xml 進行設備封裝.

5.如此一來這個封裝的Image,在第一次啟動後就會跳過輸入Product key的步驟.

2013年10月15日 星期二

安裝Microsoft Windows OS 硬碟限制

目前HDD 2TB的限制主要來自於硬碟分割技術(MBA and GPT),如使用舊有MBA方式分割硬體就會有些限制,如你使用HDD 已大於2TB 請使用GPT方式來分割
使用情況有二種如果需要Primary Partition 大於2TB並作為開機使用請檢查是否已滿足下列必要條件 :
1.使用 UEFI  
2.作業系統支援GPT 分割區

以目前產品來說XP Professional XPEPOSReady 2009確定Boot partition 無法大於2TB size.
如果無法滿足上述條件,可將開機Partition 大小限制於2TB之下. 再進行HDD 安裝.
你提供的硬碟速度變慢情況,請確認你硬碟是否有作4K alignment.


版本
GPT
UEFI/GPT Boot
XP Professional
32
X
X
XP Professional
64
X
XPE/WES2009
32
X
X
POSReady 2009
32
X
X
Windows 7
32
X
Windows 7
64
POSReady 7
32
X
POSReady 7
64

Microsoft Official UEFI/GPT of information: http://technet.microsoft.com/zh-tw/library/hh825686.aspx


Microsoft產品支援的硬碟大小由於使用的File system不同下會有不同:

NTFS vs FAT vs exFAT

Criteria
NTFS5
NTFS
exFAT
FAT32
FAT16
FAT12
Operating System
Windows 2000
Windows XP
Windows 2003 Server
Windows 2008
Windows Vista
Windows 7
Windows NT
Windows 2000
Windows XP
Windows 2003 Server
Windows 2008Windows Vista
Windows 7
Windows CE 6.0
Windows Vista SP1
Windows 7
WinXP+KB955704
DOS v7 and higher
Windows 98
Windows ME
Windows 2000
Windows XP
Windows 2003 Server
Windows Vista
Windows 7
DOS All versions of Microsoft Windows
DOS All versions of Microsoft Windows
Limitations
Max Volume Size
264 clusters minus 1 cluster
232 clusters minus 1 cluster
128PB
32GB for all OS. 2TB for some OS
2GB for all OS. 4GB for some OS
16MB
Max Files on Volume
4,294,967,295
(232-1)
4,294,967,295
(232-1)
Nearly Unlimited
4194304
65536

Max File Size
264 bytes
(16 ExaBytes) minus 1KB
244 bytes
(16 TeraBytes) minus 64KB
16EB
4GB minus 2 Bytes
2GB (Limit Only by Volume Size)
16MB (Limit Only by Volume Size)
Max Clusters Number
264 clusters minus 1 cluster
232 clusters minus 1 cluster
4294967295
4177918
65520
4080
Max File Name Length
Up to 255
Up to 255
Up to 255
Up to 255
Standard - 8.3
Extended - up to 255
Up to 254
File System Features
Unicode File Names
Unicode Character Set
Unicode Character Set
Unicode Character Set
System Character Set
System Character Set
System Character Set
System Records Mirror
MFT Mirror File
MFT Mirror File
No
Second Copy of FAT
Second Copy of FAT
Second Copy of FAT
Boot Sector Location
First and Last Sectors
First and Last Sectors
Sectors 0 to 11 Copy in 12 to 23
First Sector and Copy in Sector #6
First Sector
First Sector
File Attributes
Standard and Custom
Standard and Custom
Standard Set
Standard Set
Standard Set
Standard Set
Alternate Streams
Yes
Yes
No
No
No
No
Compression
Yes
Yes
No
No
No
No
Encryption
Yes
No
No
No
No
No
Object Permissions
Yes
Yes
Yes
No
No
No
Disk Quotas
Yes
No
No
No
No
No
Sparse Files
Yes
No
No
No
No
No
Reparse Points
Yes
No
No
No
No
No
Volume Mount Points
Yes
No
No
No
No
No
Overall Performance
Built-In Security
Yes
Yes
Yes minimal ACL only
No
No
No
Recoverability
Yes
Yes
Yes if TFAT activated
No
No
No
Performance
Low on small volumes High on Large
Low on small volumes High on Large
High
High on small volumes Low on large
Highest on small volumes Low on large
High
Disk Space Economy
Max
Max
Max
Average
Minimal on large volumes
Max
Fault Tolerance
Max
Max
Yes if TFAT activated
Minimal
Average
Average