我也來做 MagicMirror (五) Using old Win10 Tablet

話 說 早 前 做 了 一 個 MagicMirror 的 DIY project,朋 友 覺 得 不 錯 ,但 嫌 要 成 千 蚊 太 貴 ,問 有 無 方 法 降 低 成 本 。

MagicMirror 只 是 上 網 抓 取 資 料 再 顯 示 出 來 ,也 不 會 更 新 得 特 別 頻 密 ,本 來 就 不 需 要 很 快 的 硬 件 。倒 是 如 果 要 做 成 月 曆 那 樣 ( 12個 星 期 ),屏 幕 就 必 須 要 有 稍 為 高 一 點 的 解 像 度 。

MagicMirror 是 用 Electron 來 寫 的 ,所 以 理 論 上 是 可 以 通 行 於 Linux、Mac 和 Windows 三 大 桌 面 操 作 系 統 。Linux 和 Mac OS 的 平 板 應 該 沒 有 ( iPad 是 iOS 不 是 Mac OS ),不 過 Win10 平 板 應 該 很 好 找 。

找 舊 平 板 的 時 候 ,首 要 的 解 像 度 。很 多 舊 的 8 寸 10 寸 平 板 ,其 解 像 度 只 有 可 憐 的 1024 x 768、1280 x 800。以 我 的 多 行 月 曆 版 面 ( 12 星 期 ),至 少 要 Full HD 1920 x 1080 才 夠 用 。

Complete Walkthrough – Install MagicMirror on a PC – Windows 7/10

要 在 Windows 上 跑 MagicMirror,說 難 不 難 ( 如 果 你 懂 得 electron app 的 基 本 寫 法 ),說 易 不 也 不 太 易 ( 如 果 你 很 懶 什 麼 也 不 願 去 學 的 話 )。上 面 的 文 章 寫 得 十 分 詳 細 ,不 過 那 已 經 是 2017 年 的 文 ,所 以 用 在 2020 年 的 MagicMirror ( 2.11.0 ) 上 就 要 作 出 一 點 小 改 動 。

1. 下 載 和 安 裝 Node.js

https://nodejs.org/en/download/

按 照 你 的 windows 版 本 ,選 擇 32 bit or 64 bit。我 的 是 64 bit 的 ,就 下 載 了 node-v12.16.3-x64.msi。

如 果 唔 想 出 意 外 ,在 install 的 過 程 ,所 有 野 都 選 default 就 好 。

2. 下 載 和 安 裝 Git for Windows

https://gitforwindows.org/

在 首 頁 按 download 的 話 ,應 該 會 自 動 下 載 適 用 的 版 本 ,我 的 情 況 是 Git-2.26.2-64-bit.exe。

Git for Windows 的 選 項 比 Node.js 還 多 10 倍 !但 不 要 緊 ,不 想 有 意 外 的 話 ,還 是 全 部 按 default 好 了 。它 是 有 10 頁 8 頁 選 項 的 ,就 next next next next 好 了 。

3. 下 載 和 安 裝 MagicMirror

首 先 ,我 們 打 開 Git Bash 那 是 一 個 模 擬 linux terminal 的 環 境 ,可 以 執 行 git / npm 之 類 的 linux command。一 打 開 Git Bash,位 置 會 是 我 們 自 己 的 home folder ( 即 是 c:\users\{username } )。

( 其 實 在 新 版 的 Git for Windows,應 該 在 Windows 的 command prompt,也 一 樣 可 以 執 行 git / npm 等 命 令 。不 過 為 安 全 計 ,在 Git Bash 裡 面 執 行 會 好 一 點 點 。  )

git clone https://github.com/MichMich/MagicMirror

輸 入 第 一 個 command,然 後 按 enter。這 個 command 會 download 一 份 MagicMirror 到 我 們 的 home folder。

cd MagicMirror

然 後 第 二 個 command,意 思 是 進 入 剛 剛 建 立 的 新 folder,MagicMirror。

npm install

然 後 就 是 安 裝 MagicMirror。按 enter 之 後 會 彈 出 一 大 抽 野 ,這 是 正 常 的 。因 為 這 個 command 會 自 動 幫 我 們 安 裝 好 MagicMirror 所 需 要 的 dependencies ( 主 要 就 是 electron )。

cp config/config.js.sample config/config.js

然 後 就 是 由 從 sample 建 立 一 個 我 們 自 己 專 用 的 config.js 檔 案 。這 是 MagicMirror 最 重 要 的 設 定 檔 ,是 用 來 設 置 包 括 3rd party modules 的 所 有 設 定 。

npm start

然 後 就 是 首 次 執 行 MagicMirror。不 過 ,這 是 不 會 成 功 的 ( 會 彈 出 一 抽 error )。原 因 是 出 在 MagicMirror 的 start script,不 知 道 作 者 為 什 麼 在 2 月 時 加 了 一 點 野 。

4. 修 改 package.json

在 MagicMirror folder 的 package.json 檔 裡 面 ,會 找 到 以 下 這 一 行 command。

"start": "DISPLAY=\"${DISPLAY:=:0}\" ./node_modules/.bin/electron js/electron.js",

這 個 start script 其 實 是 一 個 command。Linux 有 DISPLAY:0 command 的 這 個 寫 法 ,是 指 定 這 個 command 在 那 個 display 執 行 。

DISPLAY=:0 scrot

這 種 寫 法 的 一 個 十 分 常 見 的 例 子 是 scrot,scrot 是 linux 很 常 用 的 一 個 桌 面 截 圖 工 具 。上 面 的 command 可 以 令 我 們 在 遙 控 的 情 況 之 下 ( 例 如 ssh ),抓 取 linux 上 的 桌 面 截 圖 。

但 windows 大 概 是 不 支 援 這 種 寫 法 。( 請 注 意 ,MagicMirror 的 start line 幾 乎 個 個 版 本 都 唔 一 樣 ,我 這 裡 示 範 的 只 是 眾 多 版 本 的 最 新 的 一 個 ,2.11.0 )

"start": "./node_modules/.bin/electron js/electron.js",

我 們 只 要 把 display 的 部 分 去 掉 就 好 ( 用 Notepad++ 修 改 package.json 檔 案 )。然 後 再 執 行 一 次 npm start,應 該 就 會 見 到 ….. 一 個 空 白 的 畫 面 ( 黑 色 )。那 恭 喜 你 ,MagicMirror 算 是 成 功 執 行 了 。

5. 安 裝 vendor files

畫 面 空 白 一 片 的 原 因 ( 黑 色 ),是 因 為 之 前 有 些 東 西 並 沒 有 正 確 安 裝 。這 時 不 要 恐 慌 ,輕 輕 按 一 下 Alt 鍵 ,就 會 打 開 pull down menu,選 File > Exit 就 可 以 結 束 程 式 了 。

cd vendor

再 回 到 Git Bash,進 入 vendor folder ( 在 MagicMirror folder 裡 面 )。

npm install

然 後 執 行 npm install。正 確 安 裝 之 後 ,應 該 會 多 了 一 個 node_modules folder。這 原 本 在 上 面 第 一 次 執 行 npm install 時 應 該 會 安 裝 好 ,但 不 知 道 為 什 麼 沒 有 。

cd ..
npm start

然 後 退 出 一 層 ,回 到 MagicMirror 的 folder,再 一 次 執 行 npm start。

11.6″ Windows Tablet 截 圖

這 時 候 你 應 該 可 以 見 到 MagicMirror 正 常 執 行 的 樣 子 。

6. 個 人 化 你 的 MagicMirror

然 後 要 個 人 化 你 的 MagicMirror,就 和 在 Raspberry Pi 上 一 樣 。非 常 詳 細 的 設 定 方 法 ,可 以 參 考 下 面 這 兩 篇 文 章 。

我 也 來 做 MagicMirror (二 ) 基 本 用 法

我 也 來 做 MagicMirror (三 ) 3rd Party Modules

唯 一 的 不 同 ,就 是 你 是 在 windows 環 境 去 修 改 純 文 字 檔 案 。我 推 薦 使 用 Notepad++ 之 類 的 正 常 text editor。而 安 裝 3rd Party modules 還 是 用 Git Bash,所 有 command 都 一 樣 ,沒 有 任 何 分 別 。

7. autostart MagicMirror

Complete Walkthrough – Install MagicMirror on a PC – Windows 7/10 的 第 二 頁 ,用 家 Wominator 提 供 了 一 種 在 windows autostart 的 方 法 。

Wominator 的 方 法 是 使 用 Git Bash 來 start MagicMirror。但 上 面 我 也 說 過 ,在 新 版 的 Git for Windows,用 command prompt 也 一 樣 可 以 執 行 那 些 命 令 。我 在 這 裡 ,提 供 另 一 種 稍 為 簡 單 一 點 ,用 windows batch file 來 start MagicMirror 的 方 法 。

cd c:\Users\{username}\MagicMirror
npm start

首 先 我 們 在 notepad++ 建 立 一 個 新 的 檔 案 ,輸 入 以 上 的 兩 行 內 容 。第 一 行 是 進 入 你 的 MagicMirror folder ( 要 改 成 你 自 己 的 用 戶 名 )。這 裡 我 用 了 absolute path,所 以 不 管 batch file 在 那 裡 執 行 ,都 能 夠 進 入 正 確 的 資 料 夾 。然 後 第 二 行 command 就 是 npm start。

我 們 可 以 把 檔 案 儲 存 為 startmm.bat ( 其 實 名 字 無 所 謂 ,但 檔 尾 必 須 要 是 bat ),然 後 儲 存 到 windows 的 startup folder 裡 ( startup folder 裡 面 的 東 西 會 在 使 用 者 登 入 時 自 動 執 行 )。

C:\Users\{username}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Startup folder 是 在 你 的 home folder 裡 面 ,如 果 嫌 路 徑 太 長 ,也 可 以 用 以 下 方 法 打 開 。

在 RUN dialog box 裡 面 ( Windows Key + R ),輸 入 shell:startup。

完 成 之 後 ,登 出 再 登 入 ( 又 或 者 restart ),看 看 MagicMirror 有 沒 有 自 動 執 行 。

結 語

幾 經 努 力 之 後 ,就 可 以 把 MagicMirror 設 定 成 你 喜 歡 的 樣 子 。在 我 有 限 時 間 的 測 試 ,我 舊 文 所 介 紹 的 3rd Party Modules 都 可 以 在 Windows Tablet 上 正 常 運 作 ( MMM-Tools 除 外 ,那 是 Pi 專 用 的 。不 過 3rd Party Modules 千 千 萬 萬 ,也 沒 有 人 能 保 證 全 部 都 會 work )。

Windows Tablet 比 起 Raspberry Pi 有 什 麼 分 別 呢 ?我 個 人 的 感 覺 是 沒 有 什 麼 分 別 。有 些 人 說 Windows 裡 面 跑 不 了 voice assistant,基 於 我 對 voice assistant 的 反 感 ,所 以 也 沒 有 做 測 試 ( 我 在 Pi 上 面 也 沒 有 用 )。

Windows Tablet 一 體 化 又 輕 又 薄 的 設 計 ,無 疑 是 贏 了 很 多 分 數 。不 過 Windows Tablet 幾 乎 肯 定 沒 有 任 何 mount ( VESA mount、掛 牆 孔 等 等 ),對 擺 放 構 成 明 顯 的 不 便 ,也 著 實 扣 了 一 定 的 分 數 。

Posted in Computer & Network | Tagged , , , , , | Leave a comment

將舊電腦改裝為 mini ITX

話 說 早 前 由 i7-4790 的 舊 機 ,升 級 了 一 台 AMD 3700X 的 新 電 腦 。新 電 腦 用 了 個 幾 月 都 沒 問 題 ,就 著 手 看 看 如 何 處 理 掉 舊 電 腦 。

雖 然 身 為 電 腦 人 ,但 我 家 裡 的 電 腦 卻 不 多 。一 台 桌 面 電 腦 ,一 部 舊 notebook,再 加 一 部 「HTPC」。什 麼 是 HTPC?Home Theater Personal Computer 是 也 ,哈 哈 哈 ,是 不 是 很 懷 舊 ?

我 的 HTPC 其 實 也 不 是 一 台 專 門 的 HTPC,而 是 很 多 很 多 年 前 ,朋 友 公 司 燒 了 火 牛 淘 汰 的 舊 電 腦 。那 是 一 台 Lenovo ThinkCentre M58 ( C2D E7500,LGA775 ),當 年 在 淘 寶 找 了 相 同 的 拆 機 火 牛 ,加 裝 了 Low profile 的 顯 示 卡 ( AMD 7450 ),也 加 了 Ram ( 一 共 有 4G ) 和 SSD ( 256G )。後 來 還 硬 改 了 LGA771 的 CPU ( Xeon E5450 )。

這 台 已 經 不 算 是 太 細 的 小 電 腦 ,主 要 是 用 來 在 廳 的 電 視 上 看 電 影 ( kodi ),也 偶 爾 會 打 打 舊 Game ( Rocksmith )。其 實 看 戲 是 完 全 不 會 有 問 題 的 ,舊 Game 就 要 把 config 設 定 得 低 一 點 。現 在 剛 好 手 上 有 舊 電 腦 ( i7-4790 ),就 正 好 把 更 舊 的 電 腦 淘 汰 。

不 過 我 的 i7-4790 是 ATX 機 箱 ,電 視 櫃 是 肯 定 放 不 落 ,所 以 就 要 想 想 如 何 幫 它 瘦 身 。多 得 i7-4790 有 內 顯 ,這 次 我 就 砌 一 台 完 全 沒 有 額 外 插 卡 、最 細 最 細 的 mini ITX 小 電 腦 吧 。除 了 主 板 和 機 箱 必 須 要 換 之 外 ,其 他 有 用 的 零 件 都 可 以 盡 數 保 留 。

mini ITX 主 板 ,就 是 大 小 17cm x 17cm 的 主 板 ( 別 選 那 些 什 麼 17 x 19 之 類 奇 形 怪 狀 的 主 板 ,機 箱 不 一 定 放 得 下 )。世 界 有 沒 有 更 細 的 主 板 呢 ?答 案 是 多 的 是 。但 更 細 的 主 板 ( nano ITX、pico ITX ) 都 是 內 建 CPU 的 ,對 我 的 i7-4790 來 說 是 毫 無 用 處 。

i7-4790 已 經 是 5 年 前 的 產 品 ,所 以 找 新 主 板 是 沒 什 麼 希 望 。在 淘 寶 搜 尋 了 一 下 1150 ITX,由 最 貴 的 Z97 + AC 的 頂 級 型 號 ,到 便 宜 的 B85 入 門 級 型 號 ,可 以 說 是 應 有 盡 有 。我 自 己 用 不 到 WiFi,也 不 會 超 頻 ,所 以 就 選 了 稍 為 平 一 點 的 B85 主 板 。

買 二 手 主 板 ,主 要 是 選 信 得 過 的 牌 子 ( 我 個 人 喜 歡 Asrock,它 是 Asus 的 細 佬 ),找 信 得 過 的 二 手 店 ( 最 好 有 幾 頂 皇 冠 ),其 次 的 才 是 價 錢 。因 為 二 手 貨 不 同 於 新 品 ,店 與 店 的 貨 並 不 能 直 接 比 較 。另 一 個 重 點 ,就 是 要 認 清 楚 主 板 的 型 號 ,再 上 官 網 看 清 楚 主 板 的 spec。不 要 盡 信 淘 寶 上 圖 片 和 描 述 。

例 如 它 是 支 援 desktop ram 還 是 notebook ram。又 或 者 會 不 會 有 些 怪 雞 主 板 竟 然 內 建 了 100M 的 網 卡 ( 而 不 是 正 常 的 1000M )。又 例 如 主 板 是 一 出 廠 就 支 援 你 的 CPU,還 是 要 更 新 Bios 之 後 才 支 援 ?如 果 你 買 來 的 是 舊 Bios 配 搭 新 CPU 開 不 了 機 ,那 你 也 不 會 有 辦 法 去 更 新 Bios ( bios 的 問 題 你 可 以 請 店 家 幫 你 預 先 燒 好 最 新 的 bios,所 以 找 好 的 店 家 很 重 要 )。

至 於 機 箱 ,多 得 近 年 mini ITX 盛 行 ,機 箱 是 多 了 許 多 選 擇 ,價 錢 也 下 降 了 很 多 。市 面 上 也 有 很 多 超 級 大 的 ITX 機 箱 ,可 以 裝 頂 級 顯 卡 、裝 RGB,裝 水 冷 的 。但 我 就 不 明 白 ,這 麼 大 的 機 箱 還 玩 什 麼 ITX 呢 ?真 要 追 求 效 能 的 用 回 ATX case 不 就 好 ?

最 終 我 看 中 了 兩 款 機 箱 ,一 款 是 價 錢 超 便 宜 的 微 型 機 箱 ( SKTC A01 ),但 要 使 用 外 置 電 源 。另 一 款 是 價 錢 昂 貴 但 內 置 1U 電 源 的 小 機 箱 ( INWIN 蕭 邦 )。兩 款 機 箱 其 實 是 各 有 各 好 ,但 最 終 因 為 擺 位 的 問 題 ( 電 視 櫃 狹 小 ),所 以 選 了 內 置 電 源 的 型 號 ( INWIN 蕭 邦 )。

這 個 INWIN 機 箱 是 設 計 得 十 分 好 ,做 工 也 一 流 ,對 得 起 這 個 價 錢 有 凸 。比 起 國 外 牌 子 的 話 更 是 十 分 抵 買 。為 了 獎 勵 一 下 勞 苦 功 高 的 i7-4790,我 還 加 添 了 一 個 超 薄 的 4 heat pipe 散 熱 器 ( 其 實 機 箱 是 可 以 用 原 廠 散 熱 器 ,但 考 慮 到 機 箱 狹 窄 ,原 廠 散 熱 器 也 使 用 多 年 ,就 換 個 好 一 點 的 )。

現 在 我 的 HTPC 比 之 前 的 還 要 細 小 ,但 效 能 就 強 大 了 好 幾 倍 ( 電 腦 就 應 該 是 這 樣 子 ),耗 電 量 也 應 該 比 之 前 的 小 。好 不 容 易 處 理 完 舊 機 ,怎 麼 又 多 出 了 一 台 舊 電 腦 ?這 麼 舊 的 機 ,連 地 球 先 生 都 唔 想 要 ,誰 會 要 呢 ?唉 。

瘦 身 前 ,瘦 身 後

大 小 比 較

 

 

Posted in Computer & Network | Tagged , , , , , , , , | Leave a comment