如何在虛擬機器中執行 YOCTO LINUX 作業系統

有時我們需要完整的開發環境來編譯、部署和測試解決方案,有時卻無法直接在硬體上執行,或是所提供的 SDK 不足以支援我們的開發計畫。舉例而言,Intel Edison 或 Galileo 可能就會發生以下情況:該如何在 Yocto Linux 作業系統上編譯整個框架、運行時間和相依性? 我將在本文示範建立可執行的 Yocto 映像,以及在 QEMU 這款基本軟體模擬器進行測試的方法,之後還會說明如何在超管理器 (如 Windows 上的 Microsoft Hyper-V) 執行映像。
評論
評論

有時我們需要完整的開發環境來編譯、部署和測試解決方案,有時卻無法直接在硬體上執行,或是所提供的 SDK 不足以支援我們的開發計畫。舉例而言,Intel Edison 或 Galileo 可能就會發生以下情況:該如何在 Yocto Linux 作業系統上編譯整個框架、運行時間和相依性?

我將在本文示範建立可執行的 Yocto 映像,以及在 QEMU 這款基本軟體模擬器進行測試的方法,之後還會說明如何在超管理器 (如 Windows 上的 Microsoft Hyper-V) 執行映像。

進入教學前的準備事項

• Debian/Ubuntu (於 Debian 8.2 amd 64 測試)
• 網際網路連線
• 磁碟至少需有 100 GB 的可用空間

建置機器的前備作業

以 root 身份 (或以「sudo」) 執行下列指令:

註 1:上述指令能否成功,端看所用的 Ubuntu/Debian 版本。最後,如需解決套件的相依性問題,可執行「aptitude」強制安裝所需套件的正確版本 (如「aptitude install libsdl1.2-dev」)。

註 2:至於其他的 Linux 發行版,如 RadHat、CentOS、Fedora、SuSe、Gentoo 等,建議使用正確套件管理器 (如 zypper、yum 等),各別檢查先前套件的版本。

第一步:設定作業資料夾

採用一般使用者身份 (無 root 權限)

註 4:如需取得最先進的新版 Yocto 資源,可以擷取主開發分支,請以下列程式碼替換 wget 操作:

註 5:此外還可用代碼來選擇特定的開發分支。例如:

第二步:為系統殼層設定環境變數

指令碼執行後若正確運作,你的位置將變更至一個建置用子目錄,此處就是新的工作區。看起來會像這樣:/home//yocto-2.0/poky-jethro-14.0.0/build/。

第三步:設置 Bitbake

執行前述指令碼後會建立一個 conf/local.conf 檔案。

此組態檔必需設置 Yocto 的建置引擎 Bitbake (Yocto Project 的核心元件)。

請以喜好的文字編輯器編輯 Bitbake 的設定檔。此教學採用 nano,一款簡單的命令列介面,可供類似 Unix 的環境使用,操作如下:

以下規則不做註記:

建議將所有可用額外功能都建置於映像。雖然將得出龐大映像 (各約 8 GB),但也會十分完整,可靈活因應開發作業的各種需求。

 

現在請同時按下 CTRL+X 鍵,將變更儲存至 local.conf 檔案。

接下來:

此時 Hob (BitBake 用的 GTK2 型圖形使用者介面) 的實例應該已經啟動,請檢查建置系統的正確性。

現在請從下拉式選單中選取 qemux86 作為機器。

請等到 Hob 結束分析 BitBake 的「配方」並產生相依樹狀結構。接下來請從上方選單的「select an image recipe (選擇映像配方)」選擇喜好的目標映像並開始建置。我們在此例選擇無 GUI 的完整核心映像:core-image-full-cmdline。

現在請點選「Advanced Configuration (進階組態)」。

如需建置最新的穩定版本,請到「Image types (映像類型)」面板,保留「Distro」選單中的 poky。然後請在「Image types (映像類型)」欄位中選擇所需格式:我通常會選擇「.iso」、「.vdi」和「.vmdk」這些最實用且直覺的格式。

在「Output (輸出)」面板中,請選擇最符合自身需求的選項。建議至少為映像多留 4GB 的可用儲存空間,以便放入 i686 架構的 SDK (如使用 Edison 開發板)。此外,我還發現將「deb」設定為根檔案系統的封裝格式相當實用。如下所示:

好了,儲存吧。現在可以來建置映像了!請點選「Build image (建置映像)」!

Hob 會以你喜好的設定值啟動一個 bitbake core-image-full-cmdline 實例,

註 7:這項程序將耗時良久,才能建置最終映像。不過,根據你的主機設備的能力,「BitBake parallel threads (BitBake 平行執行緒)」和「Make parallel threads (產生平行執行緒)」上用於建置作業的處理器數目,都可予以變更。也可以在 Hob 設定視窗內修改這些變數:

註 8:最後,你將能夠透過 Hob 來決定將哪些套件納入所需建置的映像之中。選擇「Edit image recipe (編輯映像配方)」便能在開始建置映像之前進行此動作。

然後在下列視窗挑選想要加入的套件:

建置程序結束之後,就可以直接試用全新生成的映像了!點選「Run image (執行映像)」,Hob 便會啟動 QEMU 的實例來執行新建立的 qemux86 映像。

但在此之前,系統會要求提供超級使用者的權限密碼:

另一個 UNIX 命令列控制台視窗會開啟,顯示加載狀態和 Yocto Project 作業系統的啟動畫面。

現在可以登入新建立 Yocto 映像的 root 帳戶了。請記住:若將 EXTRA_IMAGE_FEATURES 變數中的除錯-調校參數插入 conf/local.conf,即可無需密碼直接以 root 身份登入。否則在構建映像之前就要在配方中設定好 root 密碼。

現在可以開始使用 Yocto QEMU 虛擬機器了。

註 9:依照教學說明建置 Yocto 映像後,會佔據磁碟 89.8GB 的空間。

所生成映像的格式,如 .iso、.vmdk、.vdi 及其他格式,均是由下列目錄選出:~/yocto-2.0/poky-jethro-14.0.0/build/tmp/deploy/images/qemux86/*。現在,您可自由將映像載入喜好的超管理器或模擬器 (如 Microsoft* Hyper-V、vmWare Fusion、Virtualbox 等)。


用 Line 視訊太久會致癌?別再污名化手機通訊,謠言比電磁波更有害!

「聽說 LINE 通話會讓電磁波飆高 6 萬倍」、「手機通話的電磁波可以爆爆米花」…這些如同都市傳說的網路文章,你是否也曾閱讀過呢?
評論
Photo Credit:Unsplash
評論

茶水間內,兩位 OL 正在一邊加熱中午的便當一邊閒聊著,「最近有一件事情讓我有點擔心⋯」今年剛滿三十歲的北漂族 A小姐說道,「因為疫情我跟我男友已經好幾個月沒有見面了,但我們還很熱戀呀,所以常常每晚都開著 Line 視訊電話聊到睡著。」

「這樣很甜蜜啊,有什麼好煩惱的?」B 小姐盯著微波爐內旋轉著的便當盒答。A 小姐吞了吞口水,「還不是最近看到一些網路文章,說電子產品用太多,那個什麼⋯電磁波會影響大腦,聽說會致癌耶!太可怕了,害我這陣子都怕怕的⋯⋯」

Photo Credit:unsplash

Q:聽說LINE通話會讓電磁波飆高 6 萬倍,恐導致癌症,這是真的嗎?

答案是錯的喔,台大電機系教授陳士元表示,手機的電磁波並不會因為你現在在用何種 APP,就會發出不同的電磁波。只要在一樣的通訊情境下,不管是滑臉書、看 YouTube,還是用 Line 講視訊電話,電磁波都不會大幅改變的。

當然還是會有輕微變動的狀況,通常發生於手機開機與接通電話的瞬間,電磁波會稍微增強,不過正常使用和通話期間電磁波反而強度會削弱,不過這些電磁波的數值都符合國家及國際規範。

你可能會問,但用 Line 講電話的時候,手機都會變得比較燙呀?陳士元教授解釋,這與電磁波無關,純粹就是手機用電量增加而熱度提高,大家毋須擔心。

這裡補充一個小知識——根據國際非游離輻射防護委員會規定,手機電磁波高低判定,是看每一款手機的電磁波能量比吸收率(Specific Absorption Rate ,簡稱 SAR 值),也就是指生物體在每單位公斤所吸收到的輻射量功率,當 SAR  值越低,代表人體所接收到的輻射量越少。

如果你和 A 小姐一樣,很好奇或擔心自己的手機到底會釋放多少 SAR值,可以到 NCC 網站中,點擊「型式認證查詢網頁」(https://nccmember.ncc.gov.tw/Application/Fun/Fun016.aspx),輸入手機的「廠牌」、「型號」或「型式認證號碼」等資訊,最後再輸入確認碼後就可以看到相對應的資料囉。網頁中也列出不符 NCC 所定技術規範的電子設備,也趁機檢查看看家中是否有這些帶有風險的裝置吧。

Q:之前曾在網路上看過手機通話時的電磁波可以爆爆米花的影片,看起來好危險喔,這是真的嗎?

這個在網路上流傳的影片,乍看之下好像很嚇人沒錯,但其實是美國的廣告影片,所以即使看起來很真實,但裡面的效果都是假象喔,大家可千萬別信以為真。

仔細想想,中午熱便當所使用的微波爐,也至少要花一分鐘才有可能將玉米變成爆米花,更何況是平均輸出功率更低的手機,簡直是不可能的任務。所以影片中應是在桌下藏了瞬間加熱器的裝置,才能在幾秒間將玉米變成爆米花呢。

Photo Credit:Unsplash

基地台太近對健康有害?答案並非你想的那樣!

民眾可能會有個迷思:離通訊基地台越近,信號越強電磁波應該也越強,對健康會造成危害?

事實上,手機發射的訊號與基地台電磁波的強度,兩者是反比關係喔。距離基地台越近,手機訊號越好,手機電磁波的強度越弱;反之,距離基地台越遠,訊號越差,手機電磁波反而強度越強。

此外,現在的通訊基地台皆採用「蜂巢式通訊系統」的架構來建造,將服務區域切割成小塊小塊的範圍,透過大數量基地台所組成的「蜂巢」來涵蓋所有通訊區域的範圍。也因此,每座基地台的電磁波強度皆不高,且都在人體可接受的範圍內,因此不會對健康有所危害。

 別再污名化電磁波,好好相處才是長久之道

今天我們簡單洗刷了「電磁波」的冤屈,還它個清白——A 小姐不需要再擔心使用 Line 通話會被電磁波影響健康了,如果你想認識更多相關資訊,歡迎至國家通訊傳播委員會的行動通訊電磁波官網(https://memf.ncc.gov.tw/),查看更多延伸閱讀。

除此之外,如果你對家中或手機的電磁波曝露量很有疑慮,也歡迎撥打基地臺電磁波量測服務專線 0800-580-010(0800,我幫您,量一量),讓專業人士到府服務來替你排除疑慮,停止被謠言迷惑心智!

國家通訊傳播委員會 廣告