筆記

Raspberry Pi 與 WireGuard 應用

10/10/2021 更新:

本文的原始碼編譯流程已無必要性,因為目前 Raspbian 10 官方套件庫已經有收納更新的 Linux 內核版本,在升級內核後,已無須再另外編譯及安裝 wireguard 模組。以及套件庫內已收納 wg 工具,即便是初代 Raspberry Pi 也可單純使用 APT 安裝:

  • sudo apt install wireguard-tools

 

近期因設備管理因素,可能需要從外部監控特定場域的網路對外連通性,以及在必要時能夠透過 Wake-on-LAN 啟動區網中的特定主機。這些場域並沒有伺服器的存在,為一般用戶環境。雖然乍聽之下,似乎是挑一台電腦保持上線,再隨便弄一個遠端控制途徑就可以了,但這實在是不怎麼節能又醜陋。於是想了一下,歪腦筋動到庫存裡一顆從來沒用過的 Raspberry Pi(初代,Model B Rev 2)。

 

分類: 

H.264 Pro Recorder 與 Linux 直播應用

最近碰到了一顆 Blackmagic Design 的 H.264 Pro Recorder,它是一款多媒體編碼裝置,能夠接入諸如 SDI、HDMI 等訊號來源,再轉換為 H.264/AAC 串流並經由 USB 輸送至電腦。雖然這項產品的定位並未包含直播功能,在原廠為 Windows 及 macOS 所提供的專屬軟體套件裡,僅能夠對串流做本地播放或儲存的動作。但由於這年頭線上直播的需求增加了不少,使得 DR 必須研究看看是否有物盡其用的解決方案。

 

分類: 

Linux 使用 VLC 投放媒體至 Chromecast

話說春節期間從自家的硬體庫存裡,翻出了一顆未曾用過的 Chromecast(二代,NC2-6A5),就想說在 Linux(Fedora 30)上思考看看可以如何使用。不過仍需要在 Android 或 iOS 上,使用 Google Home 應用程式來進行 Chromecast 裝置的初始設定,由於這部份並無可在 Linux 上完成的途徑,所以本文也不會對此多做描述。

 

完成 Chromecast 初始設定後,在 Linux 上最單純的應用方式,應該是安裝及使用 Google Chrome 瀏覽器。其內建的投放(Cast)功能,能夠搜尋同一網路下可用的 Chromecast,接著就可以將瀏覽器上所開啟的網頁或媒體,投放至 Chromecast 所連接的電視或螢幕上。除此之外也可以投放指定的應用程式視窗,或者是投放整個桌面畫面 。

 

分類: 

老 Linux 遊戲的函式庫重新編譯

在現今的軟硬體環境上執行老 Linux 遊戲,有時候是件很麻煩的事。雖然由 Alan Swanson 所匯集而成的 loki_compat_libs 套件已經提供蠻大的便利,不過在某些情況下,我們可能會想要自行編譯這些函式庫,甚至是修改其中的實作來改善一些遊戲執行問題。而本文主要是記錄在 Fedora 30 64bit 環境下,如何為幾個常用的 Linux 遊戲開發函式庫(分別是 SDL 1.2SDL_mixer 1.2 以及 OpenAL Soft)編譯 32bit 的版本。

 

分類: 

Bug 44895 - League Of Legends: Unable to log in if behind OpenWRT based router

旨在為 Unix-like 平台提供 Windows 應用程式相容層的 Wine,是一項更新相當頻繁的專案,而每一次的更新,幾乎都會包含大量的問題修正。雖然 DR 不時會利用 Wine 來做一些事情(例如最近在用 Wine 來玩某個 Windows 9x 年代的老遊戲)。不過對於其更新內容,其實 DR 通常都不會太過注意。

 

然而在好段時間前所發佈的 Wine 3.8 裡,有一項已修復的 Bug 卻成功吸住了 DR 的眼球,那就是 Bug 44895 - League Of Legends: Unable to log in if behind OpenWRT based router。由於情節看起來有些特別,所以或許值得在此記錄下來。

 

分類: 

程式化的大量字型預覽方案

雖然文書或繪圖軟體,多半都有字型預覽的功能。然而如果你希望指定一段文字,快速檢視它在所有字型下的顯示結果,以便選出最合適的字型,那麼這些軟體所提供的字型功能就不是很方便了。針對這項需求,先前 DR 在公司裡是撰寫一支 Python 程式(word_font_list.py),它會執行 MS Word,建立新文件,接著多次填入指定的文字,並逐一套用 Word 中的可用字型。如此一來,就會得到一份內含所有字型的樣本清單。

 

分類: 

NTFS-3G 的「unsupported reparse point」錯誤

DR 的家用 PC 是 Windows 10 + Linux(目前是 Fedora 27)雙系統,偶爾會需要在兩個系統之間互相抓取檔案。其中在 Linux 系統上掛載 NTFS 檔案系統的途徑,自然就是透過 NTFS-3G。然而最近 DR 在讀取掛載後的 Windows\Fonts 字型目錄時,卻出現大量的 IO 錯誤。如果針對其中一個無法讀取的檔案進行測試,例如:

  • ls -l simsun.ttc

 

會發現該檔案是指向「unsupported reparse point」。為了進一步釐清狀況,DR 接著將能夠存取的檔案,與不能存取的檔案進行比對。具體的流程是先卸載分割區,然後分別執行以下指令:

分類: 

RHEL/CentOS 6 的 2.6.32-696.18.7 核心修正不相容於 Xen PV 模式

原本 DR 以為面對 Meltdown 和 Spectre 這種史詩級的 CPU 安全漏洞,一般的系統管理人員只需要跑個系統更新就好了。尤其是 Red Hat 對其企業級 Linux 發行版所提供的軟體更新,應該都不會有破壞系統運作的問題發生。結果這次 RHEL/CentOS 6 所釋出的安全性修正(RHSA-2018:0008)並不相容於 Xen 的 PV 模式(雖然 HVM 模式則不受影響),而這就會造成問題了。

 

由於本站是架設在基於 Xen 虛擬化技術的 EC2 主機上,並且是使用 PV 模式。所以一旦執行系統更新,將 Linux 核心升級到 2.6.32-696.18.7 後就無法啟動了……

 

顯然 DR 不是唯一一個中招的:

分類: 

當網路線兩端皆插在同一部交換器上……

雖然網路上或多或少都有相關的討論:

Server Fault - What happens when you plug two sides of a cable to a single networking device?

 

但老實講,DR 還是第一次遇到。話說公司某日出現大規模的網路癱瘓,各終端之間都無法連線,但網路設備卻都有正常啟動。由於公司沒有網管,機房設備平常是個終極三不管地帶……所以 DR 先花了很多時間在釐清紛亂的線路結構。後來發現如果先卸除多部機架式網路交換器(network switch)之間的網路串連,使多數的節點脫離網路拓樸,則剩下的裝置就能夠恢復連線。

 

分類: 

Word 文件的 XML 解析錯誤

前陣子 DR 在 Word 2010 上編輯某份 DOCX 檔案時,因不明原因導致 Word 異常終止。之後再次開啟相同檔案時,便出現「元素結束標記中的名稱必須和開始標記中的元素型別相符」(The name in the end tag of the element must match the element type in the start tag)這項錯誤,並列出錯誤位置。由於錯誤細節好像還算明確,讓 DR 一度覺得這似乎是個有機會人工解決的問題。

 

 

分類: 

頁面

Subscribe to RSS - 筆記