在 VirtualBox 上建置 Openwrt

現在工作會用到 Openwrt 當開發平台,但用起來一直卡卡的,想找時間從頭操作一次,看能不能深入理解系統的運作,說起來工作的重點就是不斷追求 balance,既能符合商業需求,又能持續成長。趁著年假有空,來玩玩看 Openwrt 有什麼特色。

首先是下載 Openwrt 並編譯,現在的 Openwrt 已經用 git 做版控,可以用 git clone 來放到自己的開發目錄

git clone https://git.openwrt.org/openwrt/openwrt.git
cd openwrt

剛下載下來的 Source code 沒有包含相關的 package,例如 python、driver 等等,因為後續開發會需要用到,先使用 feeds來更新並安裝 package

./scripts/feeds update
./scripts/feeds install -a

feeds是 Openwrt 內建的 script,如果想知道 command 的意思,可以用 help 。剛接觸 Linux 的人可能會不習慣看 help 來理解 command,可是用習慣之後,有問題能自己解,不用爬 Stack Overflow,對 Coding 幫助其實很大

./scripts/feeds -h
install [options] <package>: Install a package
...
update -a|<feedname(s)>: Update packages and lists of feeds in feeds.conf .

由 help 內容可以知道,update 是更新追蹤的 package list; install 則是安裝 package,如果沒有安裝, menuconfing 時就會看不到相關的 package ,因此這邊全部裝起來

接著進行環境準備,輸入 make defconfig 來檢查相關的 tool 有沒有 Ready,並產生設定文件 .config

再來使用 make menuconfig 來選擇要編譯的 package,找不到 package 的話可以用 / 加關鍵字搜尋,搜尋有支援 regular exp 喔!這邊先選擇 python3 、LuCI 、GDB , Target 用 x86 ,印象檔格式用 ext4

之後用 make -j8 全速編譯

編譯完得到映像壓縮檔,解壓縮

gunzip openwrt-x86-generic-combined-ext4.img.gz 

得到映像檔,為了讓 VirtualBox 可以掛載,要用 vboxmanage轉換為 vdi 格式

vboxmanage convertfromraw --format VDI openwrt-x86-generic-combined-ext4.img openwrt_x86.vdi
再來開啟 VirtualBox,建立 Virtual Machine

選擇 Type 為 Linux ,版本為 Linux 2.6 / 3.x / 4.x (32-bit) ,一路 Next 完成掛載

開啟 VirtualBox,可以看到

完成!已經在 VirtualBox 上掛載剛剛編譯好的 Openwrt 了!

Read more

Weekly Issue 第 24 期:網路的精神高地

前陣子去了雪梨一趟,跟布里斯本或台北都形成有趣的對比,旅行中也不斷在想,一座城市如何發展出自己的文化?這有點像是網路平台如何形成聚落,而又如何消亡。 很喜歡本期談知乎的一篇文章,理想主義的光輝是最吸引人的,我常在想,有沒有辦法將那座「看不見的城市」帶到真實世界中。 🗞️ 熱門新聞 A ChatGPT prompt equals about 5.1 seconds of Netflix 看到 Simon Willison 提到,如果 Sam Altman 的資訊是對的,每個 LLM 提問相當於 5.1s 的 Netflix 影片耗能。 計算的需求讓輝達跟台積電挖到金礦,那電力需求又會讓誰挖到金礦呢? ✨ 科技觀點 我们失去的不只是知乎,而是中文互联网的精神高地 「那时的知乎,更像“思想沙龙”,而非“内容平台”。」 昨天跟朋友聊天,

By Ken Chen

Weekly Issue 第 23 期:Mastodon CEO 離職感言

電子報本質是種自媒體,儘管我發文前都會確認,還因為能力所限,偶爾還是有沒做好的地方。每次遇到時我都會想,不知道其他自媒體是如何查證的呢? 現代的訊息越來越快,不只是自媒體,很多專業媒體也不見得有完備的查證能力,我猜當內容氾濫,「真實」會變得越來越有價值,最終變成一門生意。 🗞️ 熱門新聞 Explore the independent web Ghost 最新一期的電子報談到他們如何處理「內容發現」的問題。 簡單來說,他們有個內容發現工具 Ghost Explore,如果創作者願意提交自己的網站數據,他們能依照這些網站數據來推薦。再來,他們還會參考 ahrefs 的資料,判斷該網域是否具有高品質。 這比 Substack 發展社群工具,更貼近我對產品的想像。現代內容網站基本都需要演算法,這已經不是要不要,是怎麼設計的問題。 My next chapter with Mastodon Mastodon 的 CEO 即將卸任,他發了篇談談這段時間的心路歷程。

By Ken Chen

Weekly Issue 第 22 期:Google 發布 Nano Banana Pro

最近大新聞要算 Cloudflare 出問題,以及 Google 發布新的 AI 模型。新的 Nano Banana Pro 不管在一致性還是文字呈現,都出乎意料地好。如果 Google 真的能在這場 AI 大戰中笑到最後,這一定會成為商業競爭的經典案例。 🗞️ 熱門新聞 How we’re bringing AI image verification to the Gemini app Google 幾天前發布的 AI 模型太強了,各種錦上添花的稱讚就不說了,在 Simon Willison 的 Blog 看到,Google 設計出防偽機制,避免假圖到處跑。 機制有兩種,一種是在生成的內容中,插入人眼不可辨識的 SynthID,

By Ken Chen

Weekly Issue 第 21 期:JetBrains 發表 2025 Go 生態系調查

最近在讀 Tony Fadell 的 "Build",作者曾經參與過 iPhone 的開發,各種經驗談讓人嘆為觀止,例如這段:「如果故事有某個部分銜接不上,那麼產品本身也會有某個地方行不通…這便是為什麼最後 iPhone 的表面是玻璃,而不是塑膠,以及為什麼 iPhone 沒有硬體鍵盤。」 好在哪呢?好在如果能掌握這個觀念,就能知道如何「閱讀」產品,看見一個產品,就像閱讀一則故事一樣,知道它的抑揚頓挫,知道它想表現的東西。我相信每個經歷過產品開發的人,看這本書都會很有感覺。   🗞️ 熱門新聞 The Go Ecosystem in 2025: Key Trends in Frameworks, Tools, and Developer Practices JetBrains 前陣子公布 Go 生態系的調查結果。

By Ken Chen