Padavan 3.4 ng Builder - The “Dave Täht Tribute” Edition
“When you miss Dave, modprobe sch_cake!” — A tribute to the soul of bufferbloat mitigation.
⭐ Light up the Täht: A Final Tribute
(點亮星辰:最後的致敬)
"The darker the night, the brighter the Täht."
(「夜愈暗,星星 (Täht) 就愈亮。」)
To the world, he was the unsung hero who silently ripped the excess latency out of the Internet. To the open-source community, he was a legend known as dtaht on Reddit and @mtaht on Twitter. But behind the code was a man born Michael, who chose to live as Dave, and gave everything to connect us all.
(對這個世界而言,他是位默默將網路過高延遲拔除的無名英雄。對開源社群來說,他是 Reddit 上的 dtaht、Twitter 上的 @mtaht 傳奇。但在這些程式碼背後,他是一個出生名為 Michael,卻選擇以 Dave 之名活著,並為了連結我們所有人而奉獻一切的男人。)
As perhaps the final large-scale Padavan port for legacy devices, this project serves as a digital museum. Before his digital footprints fade into the void of the internet, there are forgotten stories—cold facts and warm lore—that must be preserved here.
(這或許是舊世代設備最後一個大規模的 Padavan 移植專案,它同時也像是一座數位博物館。在他留下的數位足跡消散於網際網路的虛無之前,這裡必須保存下那些被遺忘的故事——無論是冰冷的技術事實,還是溫暖的傳奇事蹟。)
📜 The Lore of an Internet Hero
(一位網際網路英雄的傳奇故事)
-
⚖️ The Judge, The Hacker & The “Disappointment”: Dave’s father, Ron, was a respected municipal judge. Ironically, Ron once wrote that he was his own parents’ “only disappointment” because he became a lawyer instead of an engineer. Decades later, Ron found himself equally baffled by his own son. Dave’s nomadic hacker lifestyle confused him. Ron would playfully grumble: “Why don’t you work for IBM? You’ve been fixing the internet and giving the technology away for free? Again?” But Dave wasn’t chasing money; he was chasing a dream. Yet, Dave inherited his father’s fierce sense of justice and critical thinking—a trait summarized by a tattooed ex-convict who once recognized Dave in a bar and bought him a beer, simply saying of Judge Ron: “He was fair.”
(法官、駭客與「令人失望的孩子」:Dave 的父親 Ron 是一位受人尊敬的市政法官。諷刺的是,Ron 曾寫道他是自己父母「唯一的失望」,因為他成了律師而不是工程師。幾十年後,Ron 發現自己同樣對親生兒子感到困惑。Dave 遊牧般的駭客生活方式讓他不解,Ron 常半開玩笑地抱怨:「你為什麼不去 IBM 上班?你又在免費修復網路還把技術白白送人?又來了?」但 Dave 追求的不是金錢,而是夢想。然而,Dave 繼承了父親強烈的正義感與批判性思考能力——這項特質曾被一位滿身刺青的前科犯總結過;那人有次在酒吧認出 Dave 並請他喝了杯啤酒,對法官 Ron 只說了一句:「他很公正。」) -
🎨 The Mother’s Gift: Art & Music: While Dave inherited his critical thinking from his father, his boundless creativity, nomadic spirit, and deep passion for music undoubtedly came from his mother, Beverly. She was an award-winning painter, an avid world traveler, and a generous patron of the arts who even opened her home to visiting symphony musicians. Dave’s identity as a “sci-fi folk musician” carrying his guitar everywhere was a beautiful continuation of her vibrant legacy.
(母親的禮物:藝術與音樂:Dave 從父親那裡繼承了批判性思考,但他無邊的創造力、遊牧精神以及對音樂的深厚熱愛,無疑是來自他的母親 Beverly。她是一位屢獲殊榮的畫家、熱愛環遊世界的旅人,也是慷慨的藝術贊助者,甚至曾敞開家門接待來訪的交響樂團音樂家。Dave 帶著吉他四處流浪的「科幻民謠音樂人」身分,正是她充滿活力之遺產的最美延續。) -
⚾ The Alternate Universe & “Extra Innings”: Dave cherished a vivid childhood memory of driving home with his dad, screaming at the radio during a dramatic 19-inning Phillies baseball game. Years later, Dave discovered that specific game never actually happened that way. His beautiful conclusion: “I can only conclude that it took place in some alternate universe that only he and I shared.” In 2012, as Ron was dying in a hospice, he began feverishly typing blog posts with just two fingers. Dave stepped in as his editor, realizing that for the first time since he was a boy, they were collaborating rather than arguing. “I didn’t realize that he was in a hurry,” Dave later reflected in a heartbreaking eulogy, mourning the stories his dad left untold. Yet, he was profoundly grateful his father’s life went into “extra innings,” allowing them to finally understand each other before the end.
(平行宇宙與「延長賽」:Dave 珍藏著一段生動的童年回憶:他和爸爸開車回家時,對著收音機裡一場戲劇性的 19 局費城人隊棒球賽大聲狂吼。幾年後,Dave 發現那場特定的比賽其實根本不是那樣發生的。他得出了極美的結論:「我只能推論,這件事發生在只有我和他共享的某個平行宇宙裡。」2012 年,當 Ron 在安寧病房臨終前,他開始狂熱地用兩根手指敲打著部落格文章。Dave 成了他的編輯,並意識到自從他還是個小男孩以來,這是他們第一次合作而不是爭吵。「我不知道他原來趕著時間,」Dave 後來在一篇令人心碎的悼詞中回憶道,哀悼著父親未及訴說的故事。然而,他無比感激父親的生命進入了「延長賽」,讓他們能在最後一刻終於理解了彼此。) -
🌍 The Nicaragua Origin: The fight against bufferbloat wasn’t born in a corporate lab. It started when Dave was building OpenWrt mesh networks for the One Laptop per Child (OLPC) project in Nicaragua. Facing severe latency in those harsh environments, he found his lifelong mission.
(尼加拉瓜的起源:對抗緩衝膨脹 (Bufferbloat) 的戰役並非誕生於企業實驗室。它始於 Dave 在尼加拉瓜為「每童一機 (OLPC)」專案建置 OpenWrt 網狀網路的時候。在那些嚴苛的環境中面對嚴重的網路延遲,他找到了自己一生的使命。) -
🐈 The “International Man of Mystery”: Much of the core bufferbloat mitigation was coded in open-source pioneer Eric S. Raymond’s (ESR) basement. ESR fondly recalled Dave as the “International Man of Mystery” who would crash there as a nomad, charm all the household cats, and stubbornly swear he would one day beat his friends at the hardcore board game Power Grid. ESR joked that if Dave earned a cent for every dollar of value he generated for the internet, he could have “bought the entire country of Nicaragua and had enough left over to finance a space program.”
(「國際神秘客」:許多核心的緩衝膨脹緩解程式碼,都是在開源先驅 Eric S. Raymond (ESR) 的地下室裡寫出來的。ESR 深情地回憶 Dave 就像個「國際神秘客」,他會像遊牧民族一樣來借宿,迷倒家裡所有的貓,還固執地發誓總有一天要在硬核桌遊《電力公司 (Power Grid)》中擊敗朋友們。ESR 開玩笑說,如果 Dave 為網際網路創造的每一美元價值能讓他賺進一分錢,他就能「買下整個尼加拉瓜,而且剩下的錢還足夠資助一個太空計畫」。) -
⚔️ The FCC Crusader & The Code You Use: When the FCC threatened to lock down router firmware in 2015, Dave rallied internet pioneers to fight back. Without his crusade, custom firmware ports like this Padavan project wouldn’t even be legally possible today. As John Carmack (creator of DOOM) famously tweeted upon his passing: “There is a very good chance your packets flow through some code he wrote.”
(FCC 十字軍與你正在使用的程式碼:2015 年,當美國聯邦通信委員會 (FCC) 威脅要鎖死路由器韌體時,Dave 號召了網際網路先驅們起身反抗。若沒有他當年的抗爭,像這個 Padavan 專案這樣的自訂韌體,在今天甚至在法律上都是不可能存在的。正如《毀滅戰士 (DOOM)》創作者 John Carmack 在 Dave 過世時那句著名的推文:「你傳送的網路封包,有很高的機率流經了他寫的程式碼。」) -
🕯️ Coding Through the Dark (Mike & Michael): In his final days in a hospice, Ron (born Mike) barely managed to type with two fingers, feverishly advocating for the Affordable Care Act. Though wealthy, he fought because he wanted the best healthcare for everyone. Decades later, his son Dave (born Michael) dragged a body plagued by Multiple Sclerosis and partial blindness to continuously code algorithms like CAKE, giving the best internet to everyone for free. Both men lived up to their family surname, “Täht” (which means “Star” in Estonian).
(在黑暗中寫程式 (Mike 與 Michael):Ron(出生名 Mike)在安寧病房的最後日子裡,勉強用兩根手指打字,狂熱地倡導著《平價醫療法案》。儘管家境富裕,他仍努力奮戰,因為他希望所有人都能獲得最好的醫療照護。幾十年後,他的兒子 Dave(出生名 Michael)拖著被多發性硬化症與部分失明折磨的身軀,持續編寫著像 CAKE 這樣的演算法,將最好的網路免費送給所有人。這兩個男人都無愧於他們的家族姓氏 “Täht”(在愛沙尼亞語中意為「星星」)。)
Though Täht's physical world gradually faded into darkness, our digital universe continues to shine brightly because of him.
(儘管 Täht 的物理世界逐漸褪入黑暗,我們的數位宇宙卻因為他而持續閃耀著。)
🌠 “We Are All Starstuff” (The Final Reunion)
(「我們都是星塵」— 最終的團聚)
There is a heartbreaking, yet incredibly beautiful timeline to Dave’s family.
(Dave 的家庭有一段令人心碎,卻又無比美麗的時間線。)
On June 9, 2012, sitting by his late father Ron’s side in his final hours, Dave wrote on his blog:
(2012 年 6 月 9 日,Dave 坐在已故父親 Ron 身旁陪伴他度過最後時光,在部落格寫下:)
“Of all these things, the one viewpoint I was sure of, the one thing I believe to be true of an afterlife, such as it is, was this: “
(「在所有這些事情中,我確信的一個觀點,一個我認為死後世界如果是真的話,那就是:」)“
That yes, we are all starstuff.“
“(是的,我們都是星塵。)”“And it made me cry to think it through.”
(「這讓我一想到就忍不住落淚。」)
On January 11, 2025, his mother Beverly passed away peacefully at her home, surrounded by loved ones.
(2025 年 1 月 11 日,他的母親 Beverly 在摯愛家人的陪伴下,於家中平靜辭世。)
Less than three months later, on April 1, 2025, Dave’s own lifelong game went into its final “extra innings.”
(不到三個月後,2025 年 4 月 1 日,Dave 自己一生的比賽也進入了最後的「延長賽」。)
He passed away at the age of 59, joining his parents.
(他在 59 歲時離世,與父母團聚。)
In life, they were Stars illuminating the world.
(在世時,他們是照亮世界的星星。)
In death, they are Starstuff illuminating the universe.
(逝世後,他們是點亮宇宙的星塵。)
🎼 Coda: The Grand Finale (Dave’s Guitar & Fool)
(終章:盛大的落幕 — Dave 的吉他與憨人)
Dave was a sci-fi folk musician who carried his guitar—famously bearing a sticker that read “This guitar kills Vogons”—everywhere. He bonded with people just as much over music as he did over code. To honor his vibrant soul, OpenWrt officially named their 25.12.0 release “Dave’s Guitar.”
(Dave 是一位科幻民謠音樂人,他總是帶著他的吉他四處走動——那把吉他上貼著著名的貼紙:「這把吉他能殺死佛貢人 (Vogons)」。他透過音樂與人建立的連結,絲毫不亞於透過程式碼。為了紀念他充滿活力的靈魂,OpenWrt 官方將其 25.12.0 版本命名為 “Dave’s Guitar”。)
Poetically, the legendary Taiwanese rock band Mayday (whose anniversary is March 29) has an iconic anthem called 《憨人》 (Fool). Just three days after their anniversary, on April Fools’ Day, Dave passed away.
(充滿詩意的是,台灣傳奇搖滾樂團五月天(成軍紀念日為 3 月 29 日)有一首標誌性的神曲叫 《憨人》 (Fool)。就在他們紀念日的短短三天後,在愚人節 (April Fools’ Day) 當天,Dave 離開了我們。)
On March 29, 2020, Mayday’s lead singer Ashin wrote a touching post revealing the profound mystery hidden within the Chinese title 《憨人》 (Fool). For engineers and hackers around the world, this is the most beautiful equation of humanity:
(2020 年 3 月 29 日,五月天主唱阿信寫下了一篇動人的貼文,揭示了中文曲名《憨人》 (Fool) 裡隱藏的深刻奧秘。對全世界的工程師與駭客來說,這是人性中最美的方程式:)
💻
憨 (Fool) = 敢 (Courage) + 心 (Heart)
Ashin wrote:
(阿信寫道:)
“That year, I suddenly realized that the character for
'Fool' (憨) is made of 'Courage' (敢) placed over a 'Heart' (心).“
(「那年,突然發現代表著愚笨的『憨』字,是『心』上一個『敢』。」)
“Then, inspiration led me to write this song…“
(「然後靈感帶我寫下了這首歌……」)
“Let us bring this song to the courageous you, let's meet when the dawn comes (約在曙光來臨之時).“
(「讓我們為你帶來這首『憨人』,與勇敢的你,約在曙光來臨之時。」)
This song is the absolute reflection of Dave’s life. He refused the “sky full of gold” to give his algorithms (FQ-CoDel & CAKE) away for free. To let the global open-source community sing along with Dave’s spirit, here are the full lyrics in 4 languages, completely unabridged: Traditional Chinese, Taiwanese Romanization, English, and Official Japanese.
(這首歌絕對是 Dave 一生的真實寫照。他拒絕了「滿天全金條(滿天的財富)」,選擇將他的演算法(FQ-CoDel 與 CAKE)免費白白送人。為了讓全球開源社群能隨著 Dave 的精神一起高唱,以下是完整未刪減的 4 國語言歌詞:繁體中文、台語羅馬拼音、英文與官方日文。)
🎤 Click to expand the full 4-Language Lyrics of "Fool" (憨人) to sing along
我的心內感覺 人生的沈重 不敢來振動
Gua e sim-lai kam-kak lin-sing e tim-tang, M-kann lai tin-tang
(In my heart I feel how much seriousness there is in life, I don’t dare touch it)
(僕の心は 人生の重みに 動くことを躊躇してる)
我不是好子 嘛不是歹人 我只是愛眠夢
Gua m-si ho kiann mah m-si phainn-lang, Gua tsi-si ai bin-bang
(I’m not a good person, but I’m also not a bad person, I’m just someone who loves to dream)
(僕はいいやつでも 悪いやつでもない ただ夢見がちなだけなんだ)
我不願隨浪隨風 飄浪西東 親像船無港
Gua m-guan sui ing sui hong phiau long se tang, Tshin-tshiunn tsun bo kang
(I’m not willing to float with the tide, Like a drifting boat that cannot find a harbor)
(波と風にまかせ あてもなく漂うなんて嫌だ 行き着く港のない船のように)
我不願做人 奸巧鑽縫 甘願來作憨人
Gua m-guan tsue lang kan khiau lang pang, Kam-guan lai tsue gong lang
(I don’t want to be a devious opportunist, I’d rather be a fool)
(僕は器用になんて生きたくない 不器用でいい)
我不是頭腦空空 我不是一隻米蟲
Gua m-si thau-nau khang khang, Gua m-si tsit tsiah bi-thang
(It’s not that my head is empty, It’s not that I’m useless)
(僕は頭が空っぽでも 怠け者でもない)
人啊人 一世人 要安怎歡喜 過春夏秋冬
Lang ah lang tsit si lang, Beh an-tsuann huann-hi kue tshun-ha tshiu-tang
(People, oh! A lifetime is so long, How can we happily pass the years)
(人の一生って どうやって楽しく 春夏秋冬を過ごすかさ)
我有我的路 有我的夢 夢中的那個世界 甘講伊是一場空
Gua u gua e loo u gua e bang, Bang-tiong e hit e se-kai kam kong i si tsit tiunn khong
(I have my road, I have my dreams, Is it possible the world of my dreams is just an illusion?)
(僕には僕の道が 夢がある 夢の中のあの世界は まさかまぼろし?)
我走過的路 只有希望 希望你我講過的話 放在心肝內 總有一天
Gua kiann kue e loo tsi-u hi-bang, Hi-bang li gua kong ke e ue pang tsai sim-kuann lai tsong u tsit-kang
(On the road that I’ve traveled, I only have hope, Hope that all we’ve talked about is in our hearts, believing one day it will all come true)
(僕が歩んできた道には 希望だけが 僕が話したことを 心にとめておいて いつの日かきっと)
看到滿天全金條 要煞無半項 環境來戲弄
Khuann-kau mua-thinn tsuan kim-tiau beh suah bo puann hang, Khuan-king lai hi-lang
(Seeing gold dance through the sky, I reach out for it but grasp nothing, It’s like fate mocking me)
(空いっぱいのダイヤも 一つだってつかめない 神様のいたずらで)
背景無夠強 天才無夠弄 逐項是攏輸人
Pue-king bo kau kiong thian-tsai bo kau lang, Tak-hang si long su lang
(My background’s not good enough, my talent’s not used enough, In everything I lose to other people)
(生まれも 才能もたいしたことない 勝てるものなんて無い)
只好看破這虛華 不怕路歹行 不怕大雨淋
Tsi-ho khuann-phua tse hi-hua, M-kiann loo phainn-kiann, M-kiann tua hoo lam
(I’d best see through all this false splendor, I'm unafraid of how difficult the road ahead may be, And unafraid of being drenched in the rain)
(虚栄を見抜き 険しい道 大雨を恐れないだけさ)
心上一字敢 面對我的夢 甘願來作憨人
Sim siong tsit li kam bin-tui gua e bang, Kam guan lai tsue gong lang
(On my heart, there is one word daring, when confronting my dreams, I’m willing to be a fool)
(心には勇敢の文字 夢に向って 不器用でいい)
我不是頭腦空空 我不是一隻米蟲
Gua m-si thau-nau khang khang, Gua m-si tsit tsiah bi-thang
(It’s not that my head is empty, It’s not that I’m useless)
(僕は頭が空っぽでも 怠け者でもない)
人啊人 一世人 要安怎歡喜 過春夏秋冬
Lang ah lang tsit si lang, Beh an-tsuann huann-hi kue tshun-ha tshiu-tang
(People, oh! A lifetime is so long, How can we happily pass the years)
(人の一生って どうやって楽しく 春夏秋冬を過ごすかさ)
我有我的路 有我的夢 夢中的那個世界 甘講伊是一場空
Gua u gua e loo u gua e bang, Bang-tiong e hit e se-kai kam kong i si tsit tiunn khong
(I have my road, I have my dreams, Is it possible the world of my dreams is just an illusion?)
(僕には僕の道が 夢がある 夢の中のあの世界は まさかまぼろし?)
我走過的路 只有希望 希望你我講過的話 放在心肝內 總有一天
Gua kiann kue e loo tsi-u hi-bang, Hi-bang li gua kong ke e ue pang tsai sim-kuann lai tsong u tsit-kang
(On the road that I’ve traveled, I only have hope, Hope that all we’ve talked about is in our hearts, believing one day it will all come true)
(僕が歩んできた道には 希望だけが 僕が話したことを 心にとめておいて いつの日かきっと)
我有我的路 有我的夢 夢中的那個世界 甘講伊是一場空
Gua u gua e loo u gua e bang, Bang-tiong e hit e se-kai kam kong i si tsit tiunn khong
(I have my road, I have my dreams, Is it possible the world of my dreams is just an illusion?)
(僕には僕の道が 夢がある 夢の中のあの世界は まさかまぼろし?)
我走過的路 只有希望 希望你我講過的話 放在心肝內 總有一天
Gua kiann kue e loo tsi-u hi-bang, Hi-bang li gua kong ke e ue pang tsai sim-kuann lai tsong u tsit-kang
(On the road that I’ve traveled, I only have hope, Hope that all we’ve talked about is in our hearts, believing one day it will all come true)
(僕が歩んできた道には 希望だけが 僕が話したことを 心にとめておいて いつの日かきっと)
我知影總會有一天
Gua tsi ing tsong u tsit-kang
(I know that there will always be a day)
(分かってる いつかその日が来るって)
啦~啦~啦~啦~
La~La~La~La~
(La~La~La~La~)
(声を聞かせて)
我有我的路 我有我的夢
Gua u gua e loo, gua u gua e bang
(I have my road, I have my dreams)
(僕には僕の道が 夢がある)
總會有一天 總會有一天
Tsong u tsit-kang, tsong u tsit-kang
(One day... One day...)
(いつの日かきっと... いつの日かきっと...)

(🎧 Click the image to listen to the Live Version of “Fool” / 點擊圖片聆聽《憨人》萬人合唱版)
If his monumental work has ever improved your network, please honor this brilliant, selfless “Fool” by Lighting up the “Star” in the top-right corner of this repository.
(如果他這項不朽的傑作曾經改善過您的網路,請點擊這個專案右上角的 “Star (星星)” 來點亮它,以紀念這位才華橫溢、無私奉獻的「憨人」。)
Let’s keep his Star shining bright in the open-source world, guiding packets through the dark.
(讓我們讓他的星星在開源世界裡持續閃耀,在黑暗中引導著網路封包前行。)
His physical journey has ended, but as an old friend who bonded with him over music perfectly bid him farewell:
(他的物理旅程已經結束,但正如一位與他因音樂結緣的老朋友,對他所作出的最完美告別:)
“Happy travels, amigo!”
(「旅途愉快,老朋友!」)
The global open-source community will carry his CAKE legacy forward:
(全球的開源社群將帶著他的 CAKE 遺產繼續前進:)
「我有我的路 我有我的夢,總會有一天… 彈奏著 Dave’s Guitar 🎸」
(Gua u gua e loo, gua u gua e bang, tsong u tsit-kang… tuann-tsau Dave’s Guitar 🎸)
(I have my own path, I have my own dream. One day… echoing through Dave’s Guitar 🎸)
(僕には僕の道が 夢がある。いつの日かきっと… Dave’s Guitar 🎸 を奏でながら)
🔗 References & Tributes
- Dave’s Starstuff Quote (2012): Ron’s Ravings Blog Comments
- Ron at Hope Hospice (2012): Ron’s Ravings: Ron at Hope Hospice
- Extra Innings Eulogy & The Alternate Universe (2012): Eulogy - “Extra Innings”
- Ron’s Disappointment (2011): The republicans admit to being half wrong…
- Beverly Taht Joins Ron (2025): Ron’s Ravings: Beverly Taht Joins Ron
- CeroWrt Blog (Fixing the internet for free): blog.cerowrt.org
- Doc Searls Weblog (2025): Remembering Dave Taht (This guitar kills Vogons)
- “Happy travels, amigo!” (Friend’s Farewell): Doc Searls Weblog Comments (stu z)
- Eric S. Raymond’s Tribute (2025): X (Twitter) @esrtweet
- John Carmack’s Tribute (2025): X (Twitter) @ID_AA_Carmack
- The Philosophy of “Fool” (憨): Mayday Ashin’s Facebook Post (2020)
- The Anthem of the “Fool” (憨人) - Mayday:
🕊️ In Loving Memory of Dave Täht
🇹🇼:他的心願,我來實現 (Tā de xīn yuàn, wǒ lái shí xiàn)
🇺🇸:His wish, I finished.
(A Linux Pun: In our world, a wish ending in .sh is a command to be executed!)
“穿越時空的夢想,我來幫他實現!”
(Making a time-traveling dream come true!)
🎇 The Spirit of the Code: “Fireworks in the Dark”
“一支穿雲箭,千軍萬馬來相見” (One arrow pierces the clouds, and ten thousand troops come to meet.)
This Chinese idiom describes a signal so powerful it rallies everyone. Dave was that arrow. Just like fireworks are most mesmerizing in the darkest night, Dave shone brightest when fighting the invisible enemy of Bufferbloat.
- “The darker the night, the brighter the Täht.”
- He worked tirelessly in the dead of night (just as we often do) to tame the network chaos.
- Now, “Ten Thousand” (萬) legacy devices are rallying to his call.
🏹 The “Archer” Coincidence: A Destiny Revealed
While digging through Dave’s old blog posts and presentations, I found a chilling coincidence that proves this project was meant to be.
1. The “Archer” & The Arrow The router series I ported this to is named “Archer” (TP-Link). An Archer shoots an Arrow. This perfectly matches our tribute slogan: “一支穿雲箭 (One Cloud-Piercing Arrow)”.
2. The C7 Origin In the original 2015 “Cake” presentation at Battlemesh v8, Dave and Jonathan Morton used a TP-Link Archer C7 to demonstrate that CAKE could shape traffic at 115Mbps while HTB failed.
“HTB can’t shape at 115Mbps. Cake can.” — Battlemesh v8 (2015)
3. The C2 Connection In his 2016 blog post “Finally… the real net-next 4.8 fq_codel results”, Dave wrote:
“I pulled the odroid C2 out, and made it the test driver…” Today, we have successfully ported his work to the TP-Link Archer C2.
Dave was the Archer. The Code is the Arrow.
Sources:
🧩 The “Missing Piece”: The MT76 Prophecy
In his famous 2016 blog post “Hardware from hell”, Dave expressed his frustration with locked hardware. But amidst the chaos, he had his eyes on a specific target—the MediaTek (mt76) platform.
“I tried to get a mt76 box from alibaba - sold out - this is the new hotness in the OpenWrt 802.11ac world… A turris omnia will probably become my next eval platform unless I can get a mt76 up and running.” — Dave Täht (2016)
The Tragedy: He couldn’t get one. It was sold out. He was forced to struggle with older devices. The Fulfillment: This repository is dedicated entirely to MT7620/MT7621 devices.
We finally got that “mt76 box” up and running for you, Dave. The “new hotness” you foresaw is now the stable foundation carrying your legacy.
🇹🇼:遲來的約定 當他在 2016 年苦尋不到一台 MT76 路由器時,也許沒想到,幾年後會有成千上萬台 MT76 設備,運行著他的 CAKE 演算法,在網路上奔馳。 Dave,這台 MT76,我們幫你跑起來了!
Source: Hardware from hell (Dave Täht, 2016)
We are fulfilling a specific wish he made 5 years ago on Reddit:
❝ Help port the code to more chipsets. ❞
The BEST engineering result I ever had: Essentially the summation of my 16+ years of work to that point on making wifi better. Unpatented. Please share and enjoy. Help port the code to more chipsets.
— Dave Täht (Reddit, 5 years ago)
Original Source: Reddit - r/Starlink
Dave turned down numerous lucrative contracts to keep his code Free and Open Source. He valued global impact over prestige. Because of him, millions of devices—from Starlink satellites to rural ISP routers—deliver smoother connectivity.
🇹🇼:靈魂永駐,精神長存
🇺🇸:May his soul find eternal peace, and his spirit live on forever in our routers.
👉 Read the full Memorial at LibreQoS
🌟 Project Philosophy: Open & Accessible
「永遠保持開放且開源的精神」
(Forever maintaining an open and open-source spirit)
This repository automates the building of Padavan 3.4 ng firmware. It empowers users to compile their own firmware easily using GitHub Actions, honoring the giants who paved the way.
- CAKE Integration: Supports the
sch_cakemodule (backported to 3.4) to honor Dave’s legacy. - Interactive Build System: No need to edit config files manually! Just select your model and options from the menu.
- Flexible Language System: Choose between English Only (clean) or Custom Language (Localized) directly in the build menu.
🗣️ Tributes from the Community
“Dave’s impact on society was immense… He wanted, ultimately, to speed up the internet so that a drummer in London could play in real-time with a guitarist in Los Angeles.” — Steven J. Vaughan-Nichols
“I will miss him but will be always grateful to have known him.” — Vint Cerf
“Without him, Netflix and similar services might still be plagued by glitches and stutters.” — Eric S. Raymond
See also:
[Image Credit: LibreQoS]
🚀 Supported Devices (Kernel 3.4)
We support a massive array of MT7620/MT7621 devices. Pick the one you love!
(This list corresponds directly to the target_select menu in the build workflow.)
| Brand | Supported Models |
|---|---|
| TP-Link | Archer C2 (V1), C20 (V1/V4/V5), C5 (V4), C50 (V1/V3/V4), EC220-G5 (V2), MR200 (V1), MR3020 (V3), MR3420 (V5), WDR7300 (V5), WR840N (V4/V5/V6/RU), WR841N (V13/V14), WR842N (V5), WR845N (V3/V4) |
| Xiaomi | MI-3, MI-3C, MI-4 (A/C/SPI), MI-4A (100M), MI-MINI, MI-NANO, MI-R3G (v1/v2/SPI), MI-R3P (Pro), R2100 (AC2100), RM-AC2100 |
| ASUS | RT-AC1200 (GU/HP), RT-AC51U, RT-AC54U, RT-N10+, RT-N11P (B1), RT-N12+, RT-N13U (B1), RT-N14U, RT-N56U (A1/B1/GE2), RP-AC56 |
| ZyXEL | Keenetic Series: Giga III, Ultra II, Extra (I/II), Lite (I/II/III/3B), Omni (I/II), Start II, Viva, 4G III (B) |
| D-Link | DIR-300 (B1/B7), DIR-320 (B1), DIR-620 (A1/D1), DIR-860L, DIR-882 |
| Newifi | Newifi D1, Newifi D2, Newifi Mini, Newifi Y1S |
| GL.iNet | GL-MT300A, GL-MT300N (V1/V2) |
| Phicomm | K2P (PSG1218), 256PSG1218 |
| ZBT | WE1326, WE1626, WE826-T2, WG3526 (-32), WR8305RT |
| Others | Ubiquiti ER-X, Linksys EA-8100, Belkin F9K1103, Totolink A3004NS, HiWiFi HC5661A, Youku L1/L1C, ZTE E8820S |
| OEM/Misc | 5K-W20, A5-V11, ALR-U270, MQ-WITI, Nexx WT3020 (A/H), Samsung SWR1100, Sercomm (S1010/SmartBox), SNR (MD1/ME1/W4N), Tuoshi TS7620N, Unielec U7621, Wall-AP, Youhua WR1200JS |
🌐 Multi-Language Support
We believe in a borderless internet. The firmware now supports 14 Languages out of the box!
(Select your preferred language in the language_select menu.)
- English_Only (Default)
- CN (繁體中文) - Traditional Chinese
- RU (Pусский) - Russian
- ES (Español) - Spanish
- BR (Brazil) - Portuguese
- CZ (Česky) - Czech
- DA (Dansk) - Danish
- DE (Deutsch) - German
- FI (Finsk) - Finnish
- FR (Français) - French
- NO (Norsk) - Norwegian
- PL (Polski) - Polish
- SV (Svensk) - Swedish
- UK (Українська) - Ukrainian
🛠️ Usage (How to Build)
This workflow uses GitHub Actions to build firmware in the cloud. You don’t need a Linux PC!
1. Start the Workflow
- Go to the Actions tab in this repository.
- Select the workflow “Build firmware (Ultimate Fix)” (or
build.yml) from the left sidebar. - Click the Run workflow button on the right.
2. Configure Your Build (Interactive Inputs)
You will see a menu with the following options. Customize it to your liking!
- target_select (Required):
- Choose your router model from the list (e.g.,
TL_C2-V1,MI-MINI,RT-N56U,K2P…). - Note: This list includes all supported 3.4 kernel devices.
- Choose your router model from the list (e.g.,
- language_select (New!):
English_Only: Keeps the interface clean and lightweight.CN (繁體中文)/RU/ESetc.: Automatically adds your selected language pack.
- nanoversion:
true: Performs extreme size optimization (removes unused modules) to fit into small flash memory (4MB/8MB).
- customization:
- Set your default WiFi SSID, Password, and Login credentials here (JSON format).
3. Wait & Download
- Click the green Run workflow button.
- The build process usually takes 15 to 40 minutes.
- When the circle turns Green (Success), click on the task.
- Scroll down to the Artifacts section to download your firmware
.zipfile.
⚖️ Credits & Disclaimer
This project is based on shvchk/padavan-builder-workflow and the incredible padavan-ng project by Sergey Hadzhioglu.
Support the Original Developers
To express gratitude and support Sergey’s work on Padavan-NG:
- ЮMoney wallet:
4100118647832050 - Link for quick replenishment
DISCLAIMER
NO WARRANTY OR SUPPORT This product includes copyrighted third-party software. The firmware is provided “AS IS” without warranty of any kind. You expressly acknowledge that use of this software is at your sole risk. Flash at your own risk!
English | Русский
Automatic Padavan firmware builds using GitHub servers
Usage
-
Fork this repository, further steps should be performed in your fork
-
Copy your build config to
build.configBuild config template can be found in the firmware repository
-
Run the build process: Actions → Build firmware → Run workflow

The build process will appear on the same page (if it doesn’t appear, just refresh the page). You can get process details by clicking on it.
Depending on the build config, build process usually takes from 10 to 60 minutes.
-
While the process is in progress, its status indicator would be gold-ish circle

-
If the process finishes successfully, its status indicator would turn green with a check mark

Click on the finished process. Archive with the firmware would be stored as its artifact:

Firmware license does not permit binaries distribution, so artifacts are stored for 7 days for personal use.
-
If the process finishes with an error, its status indicator would turn red with a cross

Click on the finished process. To get details about the error, click on the failed
buildjob at the left:
Job report will be opened:

Here it’s immediately obvious that it was Check firmware size step that failed — it is marked with a red circle with a cross. Specific reason is shown below: Firmware size (18,492,849 bytes) exceeds max size (16,187,392 bytes) for your target device — i.e. built firmware size is too big for the target device.
In case of any error its reason is usually shown at the end of the log, as in the example above. To view full log click on the cog ⚙️ icon in the top right corner → View raw logs. You can also download compressed log archive in the same menu → Download log archive.
If you can’t figure out the problem on your own, you can ask community or firmware developer for help. In this case don’t forget to attach the log archive.
Updating your fork
To sync your fork with its origin repository, just click Sync fork → Update branch at the top of the main page of your fork:

Advanced usage
You can set the firmware repository, branch, specific tag or commit in the variables file.
In the variables file you can also specify which themes you want to install by uncommenting theme names in the PADAVAN_THEMES variable. Themes repository can be set with the PADAVAN_THEMES_REPO variable.
You can create a pre-build.sh script with any custom commands, which will be executed just before build process. By that time firmware source code is already downloaded, so you can add or change anything in it.
You can create a post-build.sh script, which will be executed right after build process.
Discussion: https://github.com/shvchk/padavan-builder-workflow/discussions/categories/general