在 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 第 16 期:Anduril 的 MVP

近期嘗試降低 AI 相關選文,主要是因為我在閱讀時,不容易判斷內容是正確還是錯誤。本次選的「AI Evals 大辯論」在這點上就做得很棒,正反意見並陳,讓讀者知道自己哪些論點也有人支持,哪些論點具有爭議。 🗞️ 熱門新聞 The Amusement Park for Engineers 原本看是 Anduril 嘀咕幾聲(我對國防工業沒興趣),但看到一半覺得太讚了,推薦所有做產品的人閱讀。 這句話開始點亮我的眼睛:「那座臨時搭建的塔,是我們自掏腰包、為了驗證可行性而做的,幫助攔截了近一千磅的大麻,並導致數十起毒品走私逮捕 」 業界都說要做 MVP,但到底什麼是 viable?沒有 viable 的 MVP 只能稱為 prototype 而已。合作的 PM 有次說的傳神:「別人要樣品屋,但我們只有沒屋頂的牆壁。」 這篇雖然沒有講到 agile,卻做到

By Ken Chen

Weekly Issue 第 15 期:Go 語言從 1.25 支援 Flight Recorder

最近安排旅遊計畫,會到 Brisbane 居住三個月,突然跟熟悉的環境分開,用陌生眼光看待周圍一切,真是個特別的體驗。 世界依然在轉動,只是用了不同速度,反映在每週週報上,是項目變少了,可是內容變長了。 🗞️ 熱門新聞 Flight Recorder in Go 1.25 Go 1.25 開始支援 Flight Recorder。 以前要抓 trace,都是要等到事發後才能抓,有沒有可能事發前抓呢?有,原理很簡單,配置一塊記憶體存放臨時的 trace,如果符合條件,輸出持久化,否則丟棄,這就是 Flight Recorder。 官方給的範例很讚,像 slow request 這類例子,常常是處理 request 時遇到問題,在沒有 Flight Recorder

By Ken Chen

Weekly Issue 第 14 期:Product Hunt 已死

近期台灣技術圈新聞應該要算 Vibe Coding,無獨有偶的是,HN 上也談到類似的議題:行銷跟技術的界線在哪?哪些東西可以包裝成商品販售,哪些則是應該要有基本的自我審核? 🗞️ 熱門新聞 Product Hunt is Dead 有位產品創辦人寫了篇 Blog,標題比較聳動:Product Hunt 已死。 我沒特別 Follow Product Hunt,只有偶爾看看,但看完還是五味雜陳。依照文中所說,當你在 Product Hunt 發布產品後,會有一堆人來跟你說需不需要買讚,這讓我想到以前書市買榜的例子。 有人可能會覺得這是行銷,只是對我來說,行銷跟欺騙還是兩回事。我比較不確定的是,假設今天換個場景,改為無傷大雅的善意謊言,我會同意嗎? ✨ 科技觀點 How to Lead in a Room Full of Experts

By Ken Chen

Weekly Issue 第 13 期:Google 無須出售 Chrome

Chrome 的判決出來了,Google 不用分拆,只需要保障競爭者能跟它公平競爭。 這個判決有指標意義,所有人都知道 Google 長期利用 Chrome 數據改善它的搜尋引擎,讓其他廠商處於競爭劣勢。要解決這問題,最簡單方式是要求 Google 出售 Chrome,而法官在仔細評估後,給出相當審慎的判決。 我喜歡這種法律見解,具有實務與原則的平衡,法律條文不應該是照本宣科。 🗞️ 熱門新聞 Google Can Continue Paying for Firefox Search Deal, Judge Rules 以前很少注意 Chrome 的新聞,剛好最近判決出來了,看了一些。 最驚訝的是,Mozilla 有 85% 的年度收入是由 Google 給的,如果判決禁止 Google 出錢成為瀏覽器預設的搜尋引擎,將直接影響到 Mozilla

By Ken Chen