Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

在此记录一下如何在 Linux 下启用 PCIe Passthrough 给虚拟机提供宿主 PCIe 设备。 我用的是 Ubuntu 22.04,现在新的系统内核一般内置了 vfio-pci 模块,可以直接使用。以 Intel Xeon E5-2670 为例子。 通过内核启动参数使用需要修改 /etc/defaults/grub,给 GRUB_CMDLINE_LINUX_DEFAULT 增...

其中用到的程式碼可能會有變化。根據實際情況理解。 整體設計make-tinycore-linux 是一個把以下流程跑一遍的腳本: 12345678910111213141516apply_build_rc ---------------------- 應用 build.rc 設定(如果有)apply_tc_settings ------------------- 根據設置判斷 Tiny...

回顧先前的壹、貳篇已經大概講述了一個 Linux 系統的基本要素,以及怎麼基於 tinycore linux 的 initrd 來製作自定義的 initrd。在這篇開始之前先來回顧一下。 首先,一個 Linux 系統包含兩個基本部分,程序和數據。程序是 Linux 內核,而數據就是初始的根文件系統。啟動一個 Linux 操作系統即是由引導器加載 initrd,以及命令行參數 cmdline,...

開搞步驟基於別人的 initrd 開始搞是很簡單的事。就像把大象放進冰箱裡一樣,思路很簡單,就四步: 下載 initrd 解壓 initrd 修改 initrd 打包 initrd 但都知道細節才是重點,本文將一步步解釋如何實現以上四點,以及其中的工具怎麼用 在繼續之前,不妨先弄一個目錄作為工作目錄,就叫 tinycore-linux-build 好了 本文將使用 x86_64 架構的 ...

本文是一系列我嘗試製作一個迷你發行版的筆記,皆旨以最简单的语言(可能还是很啰嗦的语言)来描述如何造一個自己的迷你 Linux 發行版。 啟我還在唸書的時候有很多很大的想法,其中一個便是自己造一個系統。但操作系統編寫是一個龐大的工程,且世界上已經有很多人為此付出很多勞動和心血,業界也是碩果累累。如果論現在重新造一個操作系統有何意義,那大概就只剩下研究操作系統這個領域了。 我從一開始便明白操作...

最近給桌面上的 24 寸 4K 找用途,打算連接到旁邊的 NUC7 服務器上做點什麼好玩的服務。於是想到投屏功能。 上網尋尋覓覓一會找到了 UxPlay 這個軟件。那就開始操作吧。 構建依賴使用 docker 製作構建用鏡像: 12345678910from ubuntu:focalWORKDIR /optRUN apt update && \ DEBIAN_FRONT...

最近嘗試使用 Miraclecast 搭建一個 WiFi 投屏的服務。沒有什麼成效,不過也收穫了一些東西。 其中需要用到支援 WiFi Direct 的 wpa_supplicant,據我所知默認情況下發行版的二進制編譯是不會帶很多特別功能的。手動構建就成了首選(這麼各種編譯下去我遲早都得 gentoo 大法了 XD) 構建依賴根據查詢到的文章,在 ubuntu 下構建需要依賴一些包。我這裏...

雖說用 Node 是經常的事情,但還是第一次嘗試用 Typescript 寫 NodeJS 程式。今天想寫一個簡單的網站,這裡記錄一下這個簡單的過程。 所需的是 TypeScript 編譯器以及對應的類型定義,我這戲需要用到 Express,所以 Express 和其類型定義也需要安裝。 12npm install expressnpm install typescript ts-node ...

本文的最終目的是編寫出能調用 Webpack 來施行構建流程的 Kotlin Build Script。 前言因為惱於 JavaScript 的無類型,又不喜歡 TypeScript 的類型系統,於是就有了嘗試用 Kotlin 開發前端的嘗試。 不過一番搜尋和嘗試後,我放棄了。兩個類型系統相差懸殊,Kotlin 依舊保留了大量的 JVM 平台行為,各種容器和類型的包裝並不能輕易地和前端開發...

最近在嘗試 Kotlin/JS 的程式構建,遇到 Coroutine 和 Promise 的互相轉換問題。 Promise -> suspend func從 Promise 轉換為 suspend function 是比較簡單的。Kotlin 的 suspend function 都能通過 suspendCoroutine() 暫時掛起。給 Promise 增加一個擴展函數 ...