<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>BIOS on KnightLi的博客</title>
        <link>https://knightli.com/zh-tw/tags/bios/</link>
        <description>Recent content in BIOS on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-tw</language>
        <lastBuildDate>Sun, 24 May 2026 00:51:13 +0800</lastBuildDate><atom:link href="https://knightli.com/zh-tw/tags/bios/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Above 4G Decoding 是什麼？為什麼多 PCIe 設備、NAS 擴展卡和大顯存顯卡建議開啟</title>
        <link>https://knightli.com/zh-tw/2026/05/24/above-4g-decoding-pcie-mmio-bar-explained/</link>
        <pubDate>Sun, 24 May 2026 00:51:13 +0800</pubDate>
        
        <guid>https://knightli.com/zh-tw/2026/05/24/above-4g-decoding-pcie-mmio-bar-explained/</guid>
        <description>&lt;p&gt;&lt;code&gt;Above 4G Decoding&lt;/code&gt; 是主板 BIOS 裡的一個底層 PCIe 資源分配選項。它常見於 NAS、小主機、工作站、多顯卡主機、軟路由、HBA / SATA 擴展卡和本地 AI 機器的調試過程中。&lt;/p&gt;
&lt;p&gt;簡單說，它的作用是：允許 64 位系統把 PCIe 設備需要的 MMIO 地址空間，分配到 4GB 以上的物理地址範圍。&lt;/p&gt;
&lt;p&gt;這句話聽起來很底層，但它解決的問題很現實：當主板上插了顯卡、NVMe、網卡、SATA 擴展卡、採集卡、HBA 等多個 PCIe 設備時，如果所有設備都擠在 4GB 以下的老地址空間裡搶位置，就可能出現資源分配失敗、設備不識別，甚至開機卡死。&lt;/p&gt;
&lt;h2 id=&#34;為什麼會有-4gb-這個邊界&#34;&gt;為什麼會有 4GB 這個邊界
&lt;/h2&gt;&lt;p&gt;4GB 邊界來自 32 位時代的歷史包袱。&lt;/p&gt;
&lt;p&gt;32 位地址空間最大只能尋址：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2^32 bytes = 4GB
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;現代電腦早就是 64 位 CPU 和 64 位作業系統，記憶體也經常是 16GB、32GB、64GB 甚至更多。但主板在開機自檢和 PCIe 設備初始化時，仍然需要考慮舊式相容性。很多 PCIe 設備的資源映射預設會先被安排在 4GB 以下的地址空間內。&lt;/p&gt;
&lt;p&gt;問題在於，4GB 以下的空間並不全是給記憶體用的。系統還要在裡面劃出一部分地址給硬體設備使用。&lt;/p&gt;
&lt;p&gt;這就是 &lt;code&gt;MMIO&lt;/code&gt;。&lt;/p&gt;
&lt;h2 id=&#34;mmio-是什麼&#34;&gt;MMIO 是什麼
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;MMIO&lt;/code&gt; 是 Memory-Mapped I/O，記憶體映射輸入輸出。&lt;/p&gt;
&lt;p&gt;CPU 不能像讀寫普通記憶體那樣直接「摸到」PCIe 設備內部的暫存器和顯存。它需要把設備的一部分暫存器、緩衝區或顯存窗口映射到系統地址空間中。CPU 讀寫這段地址，就等於在和設備通信。&lt;/p&gt;
&lt;p&gt;可以粗略理解為：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;設備需要一塊地址範圍。&lt;/li&gt;
&lt;li&gt;主板給它分配一段系統物理地址。&lt;/li&gt;
&lt;li&gt;CPU 訪問這段地址時，實際訪問的是 PCIe 設備。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這塊映射區域不是真的普通 RAM，而是硬體設備占用的地址窗口。&lt;/p&gt;
&lt;p&gt;在舊式預設配置下，很多設備的 MMIO 區域會被限制在 4GB 以下，常見就是 3GB 到 4GB 附近那段空間。設備少時通常沒問題，設備一多就開始擁擠。&lt;/p&gt;
&lt;h2 id=&#34;bar-是什麼&#34;&gt;BAR 是什麼
&lt;/h2&gt;&lt;p&gt;每個 PCIe 設備都會透過 &lt;code&gt;BAR&lt;/code&gt; 向主板宣告自己需要多少地址空間。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;BAR&lt;/code&gt; 是 Base Address Register，基地址暫存器。它的作用是告訴主板：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;我需要一塊 MMIO 空間，請給我分配一個地址範圍。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;顯卡、NVMe、SATA 控制器、網卡、HBA、USB 擴展卡都可能需要 BAR 空間。設備越多，占用的地址窗口越多。顯卡這類設備還可能需要更大的映射空間。&lt;/p&gt;
&lt;p&gt;如果 4GB 以下可用 MMIO 空間不夠，主板就可能無法給後插入的設備分配資源。&lt;/p&gt;
&lt;h2 id=&#34;不開啟它可能出現什麼問題&#34;&gt;不開啟它，可能出現什麼問題
&lt;/h2&gt;&lt;p&gt;如果關閉 &lt;code&gt;Above 4G Decoding&lt;/code&gt;，主板會更傾向於把 PCIe 設備資源塞進 4GB 以下的地址空間。設備少時看不出來，設備多時就可能出現問題。&lt;/p&gt;
&lt;p&gt;常見場景包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一塊獨立顯卡。&lt;/li&gt;
&lt;li&gt;一個或多個 NVMe SSD。&lt;/li&gt;
&lt;li&gt;一張 JMB585 / ASM1166 SATA 擴展卡。&lt;/li&gt;
&lt;li&gt;一張 2.5G / 10G 網卡。&lt;/li&gt;
&lt;li&gt;一個 Wi-Fi / 藍牙模組。&lt;/li&gt;
&lt;li&gt;額外的 HBA、採集卡、USB 擴展卡。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這些設備都要向主板申請 BAR / MMIO 地址空間。如果 4GB 以下空間被占滿，主板可能會出現：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;某張 PCIe 卡無法識別。&lt;/li&gt;
&lt;li&gt;BIOS 裡看不到設備。&lt;/li&gt;
&lt;li&gt;Linux / Windows 裡設備缺失或報資源錯誤。&lt;/li&gt;
&lt;li&gt;開機卡在 POST 階段。&lt;/li&gt;
&lt;li&gt;黑屏或光標閃爍。&lt;/li&gt;
&lt;li&gt;多設備同時插入時才出問題，單獨插每張卡又正常。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在 JMB585 SATA 擴展卡場景裡，很多人會遇到插卡後主板卡在 BIOS 前，或者加了 NVMe、網卡後擴展卡突然不識別。除了 Option ROM、CSM、PCIe Gen 速率之外，PCIe 地址空間分配也是一個值得排查的方向。&lt;/p&gt;
&lt;h2 id=&#34;開啟-above-4g-decoding-後發生了什麼&#34;&gt;開啟 Above 4G Decoding 後發生了什麼
&lt;/h2&gt;&lt;p&gt;開啟：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Above 4G Decoding = Enabled
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;等於告訴主板：允許把支援 64 位地址的 PCIe 設備 MMIO 資源，分配到 4GB 以上的地址空間。&lt;/p&gt;
&lt;p&gt;這樣，PCIe 設備不必全部擠在 4GB 以下的小空間裡。主板可以把部分設備的 BAR / MMIO 映射放到更高地址，減少資源衝突。&lt;/p&gt;
&lt;p&gt;對現代 64 位系統來說，這通常是合理配置。尤其是以下機器：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;多盤 NAS。&lt;/li&gt;
&lt;li&gt;多網卡軟路由。&lt;/li&gt;
&lt;li&gt;插了 SATA / HBA 擴展卡的小主機。&lt;/li&gt;
&lt;li&gt;多顯卡工作站。&lt;/li&gt;
&lt;li&gt;AI 推理或訓練機器。&lt;/li&gt;
&lt;li&gt;同時有獨顯、NVMe、採集卡、擴展卡的桌面主機。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;它的目標不是提升普通軟體性能，而是讓硬體資源分配更寬鬆。&lt;/p&gt;
&lt;h2 id=&#34;它和-jmb585--sata-擴展卡有什麼關係&#34;&gt;它和 JMB585 / SATA 擴展卡有什麼關係
&lt;/h2&gt;&lt;p&gt;JMB585 這類 SATA 擴展卡本身不一定需要很大的 MMIO 空間。但問題往往不是它單獨需要多少，而是整台機器上所有 PCIe 設備一起搶地址空間。&lt;/p&gt;
&lt;p&gt;例如一台小主機裡可能同時有：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一個 NVMe 系統盤。&lt;/li&gt;
&lt;li&gt;一個板載網卡。&lt;/li&gt;
&lt;li&gt;一個 Wi-Fi 模組。&lt;/li&gt;
&lt;li&gt;一張 JMB585 五口 SATA 擴展卡。&lt;/li&gt;
&lt;li&gt;可能還有獨立顯卡或其他控制器。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果 BIOS 資源分配比較保守，JMB585 可能成為最後一個被初始化的設備。前面的設備已經占掉不少 4GB 以下資源，到它申請 BAR 時，主板就可能分配失敗或進入異常狀態。&lt;/p&gt;
&lt;p&gt;這時開啟 &lt;code&gt;Above 4G Decoding&lt;/code&gt;，可以讓主板把一部分設備資源安排到 4GB 以上，從而降低衝突機率。&lt;/p&gt;
&lt;p&gt;它不能修復壞卡，也不能解決所有 PCIe 鏈路訓練問題，但在「多設備插滿後才異常」的場景裡非常值得嘗試。&lt;/p&gt;
&lt;h2 id=&#34;它和-resizable-bar--sam-的關係&#34;&gt;它和 Resizable BAR / SAM 的關係
&lt;/h2&gt;&lt;p&gt;很多人是因為顯卡效能設定才第一次見到 &lt;code&gt;Above 4G Decoding&lt;/code&gt;。例如 NVIDIA / AMD 顯卡相關的：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Resizable BAR&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Re-Size BAR&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ReBAR&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Smart Access Memory&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SAM&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;它們和 &lt;code&gt;Above 4G Decoding&lt;/code&gt; 有關係，但不是同一個東西。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Above 4G Decoding&lt;/code&gt; 是基礎條件。它允許 PCIe 設備的 MMIO 資源被分配到 4GB 以上。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Resizable BAR&lt;/code&gt; 是進一步的能力。傳統情況下，CPU 訪問顯卡顯存時，通常只能通過較小窗口分段訪問，例如 256MB 級別的映射窗口。啟用 ReBAR 後，CPU 可以一次性映射更大範圍的顯存，理論上能減少訪問切換開銷。&lt;/p&gt;
&lt;p&gt;很多主板要求先開啟 &lt;code&gt;Above 4G Decoding&lt;/code&gt;，再開啟 &lt;code&gt;Resizable BAR&lt;/code&gt;。所以可以理解為：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Above 4G Decoding&lt;/code&gt;：先允許設備地址放到 4GB 以上。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Resizable BAR&lt;/code&gt; / &lt;code&gt;SAM&lt;/code&gt;：再允許顯卡 BAR 窗口變大。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;對 NAS 和 SATA 擴展卡來說，重點通常不是 ReBAR，而是前者提供的 PCIe 地址空間。&lt;/p&gt;
&lt;h2 id=&#34;開啟它有什麼副作用&#34;&gt;開啟它有什麼副作用
&lt;/h2&gt;&lt;p&gt;對現代 64 位 Windows、Linux、Ubuntu、Debian、TrueNAS、Proxmox 等系統來說，開啟 &lt;code&gt;Above 4G Decoding&lt;/code&gt; 通常沒有明顯負面影響。&lt;/p&gt;
&lt;p&gt;但仍然要注意幾點：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;老舊 32 位作業系統可能不適合開啟。&lt;/li&gt;
&lt;li&gt;某些很老的 BIOS 或古董 PCIe 設備可能相容性不好。&lt;/li&gt;
&lt;li&gt;修改 BIOS 後如果無法啟動，可以清 CMOS 或恢復預設設置。&lt;/li&gt;
&lt;li&gt;如果啟用了 ReBAR / SAM，還要確認顯卡、主板、系統和驅動都支援。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在現代硬體和 64 位系統上，它通常是建議開啟的底層良性配置，尤其是設備較多時。&lt;/p&gt;
&lt;h2 id=&#34;什麼時候建議開啟&#34;&gt;什麼時候建議開啟
&lt;/h2&gt;&lt;p&gt;以下情況建議開啟 &lt;code&gt;Above 4G Decoding&lt;/code&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;使用 64 位作業系統。&lt;/li&gt;
&lt;li&gt;主板上插了多張 PCIe 設備。&lt;/li&gt;
&lt;li&gt;有獨立顯卡，尤其是 4GB 以上顯存的顯卡。&lt;/li&gt;
&lt;li&gt;使用 JMB585、ASM1166、HBA、陣列卡、採集卡等擴展設備。&lt;/li&gt;
&lt;li&gt;組裝多盤 NAS 或軟路由。&lt;/li&gt;
&lt;li&gt;使用多顯卡、AI 算力卡或本地大模型機器。&lt;/li&gt;
&lt;li&gt;插上某張 PCIe 卡後開機卡死、找不到特定 PCIe 卡。&lt;/li&gt;
&lt;li&gt;單獨插設備正常，多設備一起插就異常。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你正在排查 JMB585 SATA 擴展卡 POST 階段卡死，推薦把它和這些設定一起檢查：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;關閉 &lt;code&gt;CSM&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;禁用不需要的 &lt;code&gt;Storage OpROM&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;將 PCIe 速率從 &lt;code&gt;Auto&lt;/code&gt; 或 &lt;code&gt;Gen3&lt;/code&gt; 改成 &lt;code&gt;Gen2&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;開啟 &lt;code&gt;Above 4G Decoding&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;更換 PCIe 插槽。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;在-bios-裡一般叫什麼&#34;&gt;在 BIOS 裡一般叫什麼
&lt;/h2&gt;&lt;p&gt;不同主板廠商命名略有差異，常見名稱包括：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Above 4G Decoding
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Above 4GB MMIO BIOS assignment
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Memory Mapped I/O above 4GB
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;64-bit PCIe decoding
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;PCI 64-bit Resource Handling
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;常見位置包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Advanced&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PCIe Settings&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PCI Subsystem Settings&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Chipset&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;North Bridge&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;IO Ports&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Boot&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;有些主板會把它和 &lt;code&gt;Resizable BAR&lt;/code&gt; 放在一起，有些則藏在高級 PCIe 或芯片組選項裡。&lt;/p&gt;
&lt;h2 id=&#34;小結&#34;&gt;小結
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Above 4G Decoding&lt;/code&gt; 的核心作用，是讓主板可以把 PCIe 設備的 MMIO / BAR 地址空間分配到 4GB 以上。它解決的不是驅動問題，而是 BIOS / PCIe 資源分配層面的地址空間問題。&lt;/p&gt;
&lt;p&gt;對只有少量設備的普通電腦來說，它可能看起來無感。對多盤 NAS、多網卡軟路由、插了 JMB585 / ASM1166 SATA 擴展卡的小主機、多顯卡工作站、本地 AI 主機來說，它就很重要。&lt;/p&gt;
&lt;p&gt;如果你遇到插上 PCIe 擴展卡後卡 BIOS、黑屏、光標閃爍、設備不識別，或者多設備同時插入才出問題，&lt;code&gt;Above 4G Decoding = Enabled&lt;/code&gt; 是一個值得優先檢查的 BIOS 設置。它不是萬能藥，但它能讓現代 64 位硬體擺脫 4GB 以下地址空間的舊限制，減少 PCIe 資源衝突。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>PCIe 擴展卡插上後 BIOS 前光標閃爍卡死，該怎麼排查</title>
        <link>https://knightli.com/zh-tw/2026/05/24/jmb585-sata-card-bios-post-blinking-cursor-troubleshooting/</link>
        <pubDate>Sun, 24 May 2026 00:46:52 +0800</pubDate>
        
        <guid>https://knightli.com/zh-tw/2026/05/24/jmb585-sata-card-bios-post-blinking-cursor-troubleshooting/</guid>
        <description>&lt;p&gt;如果 PCIe 擴展卡插上後，機器連 BIOS 介面都進不去，只停在黑屏或主板啟動前的光標閃爍畫面，這通常不是 Linux 驅動問題，而是更早階段的硬體級卡死。&lt;/p&gt;
&lt;p&gt;這個階段作業系統還沒有載入，所以 &lt;code&gt;pci=nomsi&lt;/code&gt;、&lt;code&gt;pcie_aspm=off&lt;/code&gt; 這類 Linux 核心參數完全幫不上忙。問題發生在 POST（加電自檢）階段，常見卡點包括 PCIe 鏈路訓練、PCIe 資源分配、Option ROM 載入、Legacy / UEFI 相容性衝突，或者擴展卡本身異常。&lt;/p&gt;
&lt;p&gt;換句話說：如果連 BIOS 都進不去，先不要急著改 Linux。要先讓主板能完成自檢。&lt;/p&gt;
&lt;h2 id=&#34;先理解這個故障意味著什麼&#34;&gt;先理解這個故障意味著什麼
&lt;/h2&gt;&lt;p&gt;正常開機時，主板會掃描 PCIe 設備，給設備分配 bus、I/O、MMIO 等資源，並決定是否載入設備自帶的 Option ROM。某些 SATA 擴展卡、HBA、網卡、採集卡或轉接卡會帶有用於啟動支援或設備初始化的韌體，主板韌體可能會嘗試讀取它。&lt;/p&gt;
&lt;p&gt;如果擴展卡、主板 BIOS、PCIe 插槽、電源、外接設備或 Option ROM 其中某一環不相容，就可能卡在主板自檢階段。典型表現是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;黑屏，只剩光標閃爍。&lt;/li&gt;
&lt;li&gt;卡在主板 Logo 前後。&lt;/li&gt;
&lt;li&gt;按 &lt;code&gt;Del&lt;/code&gt;、&lt;code&gt;F2&lt;/code&gt;、&lt;code&gt;F11&lt;/code&gt;、&lt;code&gt;F12&lt;/code&gt; 無法進入 BIOS 或啟動選單。&lt;/li&gt;
&lt;li&gt;拔掉這張 PCIe 擴展卡後一切正常。&lt;/li&gt;
&lt;li&gt;換回原來的 NVMe、顯卡、網卡後都能啟動。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這種情況可以理解為「主板還沒來得及把控制權交給系統，就已經被這張卡卡住了」。&lt;/p&gt;
&lt;h2 id=&#34;哪些-pcie-擴展卡容易觸發這個問題&#34;&gt;哪些 PCIe 擴展卡容易觸發這個問題
&lt;/h2&gt;&lt;p&gt;這類 POST 卡死不只會出現在 JMB585 SATA 擴展卡上。凡是需要主板在開機階段初始化、分配資源或載入 Option ROM 的 PCIe 設備，都可能觸發類似問題。&lt;/p&gt;
&lt;p&gt;比較常見的設備包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;JMB585、ASM1166 等 PCIe SATA 擴展卡。&lt;/li&gt;
&lt;li&gt;LSI / Broadcom HBA 或陣列卡。&lt;/li&gt;
&lt;li&gt;2.5G、10G、萬兆電口或光口網卡。&lt;/li&gt;
&lt;li&gt;PCIe 轉 M.2 / U.2 / SATA 轉接卡。&lt;/li&gt;
&lt;li&gt;視訊採集卡。&lt;/li&gt;
&lt;li&gt;USB 3.x 擴展卡。&lt;/li&gt;
&lt;li&gt;帶 Option ROM 的老顯卡、老 RAID 卡或伺服器拆機卡。&lt;/li&gt;
&lt;li&gt;做工一般、韌體魔改、EEPROM 異常的廉價 PCIe 卡。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這些設備的問題不一定是「壞了」，也可能只是和目前主板 BIOS、插槽通道、PCIe 速率、啟動模式或地址資源分配不相容。&lt;/p&gt;
&lt;h2 id=&#34;為什麼還沒進系統linux-核心參數無效&#34;&gt;為什麼還沒進系統，Linux 核心參數無效
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;pci=nomsi&lt;/code&gt;、&lt;code&gt;pcie_aspm=off&lt;/code&gt;、&lt;code&gt;libata.force&lt;/code&gt; 這類參數都屬於 Linux 核心啟動參數。它們必須等核心載入後才會生效。&lt;/p&gt;
&lt;p&gt;而 BIOS 前光標閃爍、主板 Logo 前卡死、按鍵進不了 BIOS，說明系統還停在 POST 階段。此時運行的是主板韌體，不是 Linux 核心。換句話說，Linux 還沒開始執行，自然也沒有機會讀取這些參數。&lt;/p&gt;
&lt;p&gt;所以這類故障的排查重點不是先改 &lt;code&gt;/etc/default/grub&lt;/code&gt;，而是先處理：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BIOS / UEFI 啟動模式。&lt;/li&gt;
&lt;li&gt;CSM / Legacy 相容層。&lt;/li&gt;
&lt;li&gt;PCIe Option ROM。&lt;/li&gt;
&lt;li&gt;PCIe 鏈路訓練。&lt;/li&gt;
&lt;li&gt;PCIe 地址空間和資源分配。&lt;/li&gt;
&lt;li&gt;擴展卡、插槽、供電和外接設備。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;第一步拔掉擴展卡上的外接設備&#34;&gt;第一步：拔掉擴展卡上的外接設備
&lt;/h2&gt;&lt;p&gt;先做最低風險的排查：只保留 PCIe 擴展卡插在主板上，把接在擴展卡上的 SATA 資料線、外接設備線纜或硬碟供電先斷開，讓這張卡處於「不掛設備」的狀態。&lt;/p&gt;
&lt;p&gt;然後開機測試：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;如果拔掉硬碟或設備後能進 BIOS，說明擴展卡本身大概率沒有把主板卡死，問題可能在某塊硬碟、線材、供電或啟動盤識別上。&lt;/li&gt;
&lt;li&gt;如果仍然卡死，說明問題更可能在擴展卡和主板 PCIe / BIOS 相容性上。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;為什麼硬碟也可能導致 POST 卡死？有幾種常見原因：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;某塊硬碟的引導扇區或分區表異常，主板 BIOS 誤判為啟動盤後讀取卡死。&lt;/li&gt;
&lt;li&gt;多塊機械碟同時上電，電源瞬時電流不足，導致 SATA 控制器或硬碟異常。&lt;/li&gt;
&lt;li&gt;某根 SATA 線接觸不良，導致控制器初始化階段等待超時。&lt;/li&gt;
&lt;li&gt;某塊硬碟本身健康狀態很差，拖慢整條初始化流程。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果拔盤後能啟動，可以再一塊一塊接回硬碟，找到具體是哪塊盤或哪根線觸發問題。&lt;/p&gt;
&lt;h2 id=&#34;第二步拔卡進-bios關閉-csm&#34;&gt;第二步：拔卡進 BIOS，關閉 CSM
&lt;/h2&gt;&lt;p&gt;很多 PCIe 擴展卡卡在 POST 階段，和 CSM / Legacy 啟動相容層有關。&lt;/p&gt;
&lt;p&gt;CSM 是 Compatibility Support Module，用來讓 UEFI 主板相容舊式 Legacy 啟動。問題在於，一些廉價 SATA 擴展卡或魔改卡可能帶有老舊 Option ROM。主板在 CSM 模式下會嘗試載入這些舊式啟動韌體，結果和現代 UEFI 韌體發生衝突。&lt;/p&gt;
&lt;h2 id=&#34;csm-和-option-rom-為什麼會卡住-post&#34;&gt;CSM 和 Option ROM 為什麼會卡住 POST
&lt;/h2&gt;&lt;p&gt;POST 階段主板會枚舉 PCIe 設備，並判斷這些設備是否帶有可啟動韌體。很多老式存儲卡、RAID 卡、HBA、網卡和 SATA 擴展卡會提供 Option ROM，用來讓主板在作業系統啟動前識別設備，甚至支援從這張卡啟動。&lt;/p&gt;
&lt;p&gt;問題是，Option ROM 往往很依賴 BIOS 實作。有些擴展卡的 Option ROM 老舊、魔改、損壞，或者只在特定伺服器主板上測試過。現代消費級主板在 CSM / Legacy 模式下嘗試載入它時，就可能出現初始化死循環、黑屏、光標閃爍或鍵盤無響應。&lt;/p&gt;
&lt;p&gt;關閉 CSM、禁用 Storage OpROM 的目的，就是讓主板不要在啟動前嘗試執行這張卡自己的啟動韌體。只要系統盤不接在這張擴展卡上，多數 NAS 和資料盤場景並不需要從擴展卡啟動，交給 Linux / Windows 進入系統後再識別通常更穩。&lt;/p&gt;
&lt;p&gt;操作步驟：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;關機斷電，拔掉這張 PCIe 擴展卡。&lt;/li&gt;
&lt;li&gt;使用主板原有顯卡、核顯或已有啟動盤開機，進入 BIOS。&lt;/li&gt;
&lt;li&gt;找到 &lt;code&gt;CSM&lt;/code&gt;、&lt;code&gt;Compatibility Support Module&lt;/code&gt; 或 &lt;code&gt;Legacy Boot&lt;/code&gt; 相關選項。&lt;/li&gt;
&lt;li&gt;將 CSM 設置為 &lt;code&gt;Disabled&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;啟動模式盡量改成 &lt;code&gt;UEFI Only&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;保存 BIOS 設置並關機。&lt;/li&gt;
&lt;li&gt;重新插上 PCIe 擴展卡測試。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果關閉 CSM 後能正常過 POST，說明之前大概率是 Legacy Option ROM 或啟動相容層衝突。&lt;/p&gt;
&lt;h2 id=&#34;第三步禁用-pcie--storage-option-rom&#34;&gt;第三步：禁用 PCIe / Storage Option ROM
&lt;/h2&gt;&lt;p&gt;有些 BIOS 會提供更細的 Option ROM 控制項，例如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;PCIe Option ROM&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Storage OpROM&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Mass Storage Controller Option ROM&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Launch Storage OpROM Policy&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Option ROM Messages&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果能找到類似選項，可以把擴展卡所在插槽或存儲控制器相關 Option ROM 設置為：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Disabled
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;或：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Do Not Launch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;這樣做的意思是：不要嘗試從這張擴展卡載入啟動韌體，只把它當成普通 PCIe 設備交給作業系統識別。&lt;/p&gt;
&lt;p&gt;如果你的系統盤不接在這張擴展卡上，而只是用它掛資料盤、NAS 盤、倉庫盤、網卡或採集設備，那麼通常不需要從這張卡啟動。禁用它的 Option ROM 反而更穩。&lt;/p&gt;
&lt;h2 id=&#34;第四步強制-pcie-速率為-gen2-或-gen1&#34;&gt;第四步：強制 PCIe 速率為 Gen2 或 Gen1
&lt;/h2&gt;&lt;p&gt;很多卡標稱走 PCIe Gen3，但主板、轉接卡、線材、槽位和擴展卡做工不夠好時，PCIe 鏈路訓練可能在 Gen3 階段談不攏，主板就會卡在等待設備完成初始化的階段。&lt;/p&gt;
&lt;h2 id=&#34;pcie-gen3-鏈路訓練失敗是什麼表現&#34;&gt;PCIe Gen3 鏈路訓練失敗是什麼表現
&lt;/h2&gt;&lt;p&gt;PCIe 設備插上後，主板和設備會協商鏈路寬度和速率，例如 x1、x2、x4，以及 Gen1、Gen2、Gen3。這個過程叫 Link Training。&lt;/p&gt;
&lt;p&gt;如果設備、插槽、轉接卡、主板走線或供電不穩定，雙方可能在較高速率上無法完成協商。常見表現是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;插卡後卡在 BIOS 前黑屏或光標閃爍。&lt;/li&gt;
&lt;li&gt;主板 Logo 停很久，按鍵無響應。&lt;/li&gt;
&lt;li&gt;偶爾能啟動，偶爾完全卡死。&lt;/li&gt;
&lt;li&gt;強制 PCIe Gen2 後恢復正常。&lt;/li&gt;
&lt;li&gt;換到另一個槽位後恢復正常。&lt;/li&gt;
&lt;li&gt;同一張卡在短槽、芯片組槽上能用，在 CPU 直連大槽上不穩定，或反過來。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這不是作業系統層面的「掉盤」，而是主板和設備還沒完成 PCIe 鏈路初始化。強制 Gen2 / Gen1 的目的，是降低訊號速率，犧牲一點理論帶寬換穩定啟動。&lt;/p&gt;
&lt;p&gt;更穩妥的做法是先讓它降速：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;拔掉這張 PCIe 擴展卡。&lt;/li&gt;
&lt;li&gt;進入 BIOS。&lt;/li&gt;
&lt;li&gt;找到對應 PCIe 插槽的速率設置，例如 &lt;code&gt;PCIe Speed&lt;/code&gt;、&lt;code&gt;PCIe Link Speed&lt;/code&gt;、&lt;code&gt;Max Link Speed&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;把 &lt;code&gt;Auto&lt;/code&gt; 或 &lt;code&gt;Gen3&lt;/code&gt; 改成 &lt;code&gt;Gen2&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;如果 &lt;code&gt;Gen2&lt;/code&gt; 仍不穩定，再嘗試 &lt;code&gt;Gen1&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;保存關機，重新插卡測試。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;對 SATA 機械碟來說，Gen2 x1 或 Gen2 x2 通常已經夠用。穩定性優先時，不必執著 Gen3。&lt;/p&gt;
&lt;p&gt;如果 BIOS 沒有提供 PCIe 速率設置，才考慮物理降速方案。有人會通過給擴展卡金手指部分引腳貼絕緣膠帶，讓卡退回 x1 模式，以此驗證是否是第二條 PCIe lane 或高頻訊號品質導致卡死。這種方法有風險，容易貼錯位置或造成接觸問題，不建議作為第一選擇。優先用 BIOS 降速。&lt;/p&gt;
&lt;h2 id=&#34;第五步開啟-above-4g-decoding&#34;&gt;第五步：開啟 Above 4G Decoding
&lt;/h2&gt;&lt;p&gt;如果主板上同時有 NVMe、顯卡、無線網卡、HBA、採集卡或多個 PCIe 設備，BIOS 在 POST 階段需要給它們分配地址空間和 MMIO 資源。老主板或資源分配策略比較保守的 BIOS，可能因為資源不足或地址衝突卡住。&lt;/p&gt;
&lt;p&gt;可以嘗試開啟：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Above 4G Decoding
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;常見位置在 BIOS 的 &lt;code&gt;Advanced&lt;/code&gt;、&lt;code&gt;PCIe Settings&lt;/code&gt;、&lt;code&gt;PCI Subsystem Settings&lt;/code&gt;、&lt;code&gt;Chipset&lt;/code&gt; 或類似選單下。&lt;/p&gt;
&lt;p&gt;它的作用是允許 PCIe 設備使用 4GB 以上的地址空間，有助於緩解多設備環境下的資源分配問題。雖然這個選項常被顯卡直通、礦卡、HBA 和多 PCIe 設備場景提到，但對某些 SATA 擴展卡卡 POST 的情況也值得嘗試。&lt;/p&gt;
&lt;h2 id=&#34;第六步換-pcie-插槽&#34;&gt;第六步：換 PCIe 插槽
&lt;/h2&gt;&lt;p&gt;不要只在一個槽位上反覆試。不同 PCIe 插槽背後的通道來源可能不同：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;靠近 CPU 的長槽通常是 CPU 直連，優先給顯卡使用。&lt;/li&gt;
&lt;li&gt;一些短槽或第二條長槽可能來自芯片組 PCH。&lt;/li&gt;
&lt;li&gt;某些槽會和 NVMe、SATA、Wi-Fi 或其他設備共享通道。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果擴展卡插在 CPU 直連大槽上卡死，可以嘗試插到芯片組引出的短槽或帶寬較低的槽上。反過來也一樣，如果 PCH 槽不穩定，也可以試試其他槽位。&lt;/p&gt;
&lt;p&gt;同時建議查看主板說明書，確認是否存在「插了某個 M.2 後某個 PCIe 槽失效」之類的共享規則。&lt;/p&gt;
&lt;h2 id=&#34;推薦的高效排查順序&#34;&gt;推薦的高效排查順序
&lt;/h2&gt;&lt;p&gt;如果你想盡快恢復啟動，可以按這個順序來：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;拔掉擴展卡上所有外接設備，例如 SATA 硬碟、U.2 盤、外接線纜，只留卡本體測試。&lt;/li&gt;
&lt;li&gt;如果仍卡死，拔卡進入 BIOS。&lt;/li&gt;
&lt;li&gt;關閉 &lt;code&gt;CSM&lt;/code&gt;，切到 &lt;code&gt;UEFI Only&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;禁用 &lt;code&gt;Storage OpROM&lt;/code&gt; 或相關 PCIe Option ROM。&lt;/li&gt;
&lt;li&gt;開啟 &lt;code&gt;Above 4G Decoding&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;把對應 PCIe 插槽強制改成 &lt;code&gt;Gen2&lt;/code&gt;，不行再試 &lt;code&gt;Gen1&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;保存關機，重新插上 PCIe 擴展卡測試。&lt;/li&gt;
&lt;li&gt;如果能過 POST，再逐塊接回硬碟或設備。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;這套路徑優先處理最常見的兩類問題：Legacy / Option ROM 衝突，以及 PCIe Gen3 鏈路訓練不相容。&lt;/p&gt;
&lt;h2 id=&#34;如何判斷是卡壞了還是主板相容性問題&#34;&gt;如何判斷是卡壞了還是主板相容性問題
&lt;/h2&gt;&lt;p&gt;如果做完上面步驟仍然卡在光標閃爍，還可以做兩個交叉驗證：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;把這張擴展卡插到另一台電腦上測試。&lt;/li&gt;
&lt;li&gt;換一張確認正常的同類 PCIe 擴展卡插到目前主板上測試。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;判斷邏輯可以這樣看：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;同一張卡在多台電腦上一插就卡死：更像擴展卡本身有硬體或韌體問題。&lt;/li&gt;
&lt;li&gt;這張卡只在目前主板卡死，換電腦正常：更像主板 BIOS、插槽通道、PCIe 速率或資源分配相容性問題。&lt;/li&gt;
&lt;li&gt;目前主板換其他同類擴展卡正常：更支持原卡異常。&lt;/li&gt;
&lt;li&gt;目前主板換其他 PCIe 設備也不穩定：要懷疑主板插槽、供電、BIOS 設置或 PCIe 通道共享問題。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果這張卡在多台電腦上一插就卡死，而其他擴展卡在目前主板正常，基本可以懷疑：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;擴展卡 EEPROM / Option ROM 資料損壞。&lt;/li&gt;
&lt;li&gt;擴展卡存在短路或供電異常。&lt;/li&gt;
&lt;li&gt;金手指、焊點、晶振或電源晶片有硬體問題。&lt;/li&gt;
&lt;li&gt;卡的韌體和多個主板 BIOS 都不相容。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果它只在某一台主板上卡死，則更可能是主板 BIOS、插槽通道、PCIe 速率、CSM 或資源分配問題。&lt;/p&gt;
&lt;h2 id=&#34;不要把系統參數當成-bios-階段解法&#34;&gt;不要把系統參數當成 BIOS 階段解法
&lt;/h2&gt;&lt;p&gt;需要特別強調：只要機器還沒進入 Linux，&lt;code&gt;pci=nomsi&lt;/code&gt;、&lt;code&gt;pcie_aspm=off&lt;/code&gt;、&lt;code&gt;libata.force&lt;/code&gt; 這類核心參數都不會生效。&lt;/p&gt;
&lt;p&gt;這些參數只能處理作業系統接管硬體之後的問題，例如 Linux 下掉盤、中斷異常、PCIe ASPM 喚醒失敗等。對於 BIOS 前光標閃爍、POST 階段卡死，它們沒有機會執行。&lt;/p&gt;
&lt;p&gt;所以這類問題的排障重點是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BIOS 設置。&lt;/li&gt;
&lt;li&gt;PCIe 鏈路訓練。&lt;/li&gt;
&lt;li&gt;Option ROM。&lt;/li&gt;
&lt;li&gt;插槽和資源分配。&lt;/li&gt;
&lt;li&gt;擴展卡和外接設備的物理狀態。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;小結&#34;&gt;小結
&lt;/h2&gt;&lt;p&gt;PCIe 擴展卡插上後卡在 BIOS 前光標閃爍，本質上是 POST 階段就被卡住。最常見的突破口是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;斷開所有外接設備，排除硬碟或供電誘因。&lt;/li&gt;
&lt;li&gt;關閉 CSM，切換到純 UEFI。&lt;/li&gt;
&lt;li&gt;禁用 Storage / PCIe Option ROM。&lt;/li&gt;
&lt;li&gt;將 PCIe 速率從 Auto / Gen3 降到 Gen2 或 Gen1。&lt;/li&gt;
&lt;li&gt;開啟 Above 4G Decoding。&lt;/li&gt;
&lt;li&gt;更換 PCIe 插槽測試。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果這些都無效，並且這張卡在其他電腦上也會卡死，就要高度懷疑擴展卡本身硬體或韌體損壞。對 NAS 和存儲伺服器來說，穩定性比參數漂亮更重要。遇到這類 POST 級卡死，優先讓主板能穩定過自檢，再談 Linux 裡的核心參數和驅動排查。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>鐵威馬 F2-220 安裝飛牛 OS：F3 背板、NVMe 與 BIOS 模組注入</title>
        <link>https://knightli.com/zh-tw/2026/05/04/terramaster-f2-220-fnos-nvme-bios/</link>
        <pubDate>Mon, 04 May 2026 06:09:40 +0800</pubDate>
        
        <guid>https://knightli.com/zh-tw/2026/05/04/terramaster-f2-220-fnos-nvme-bios/</guid>
        <description>&lt;p&gt;這是一篇鐵威馬 F2-220 安裝飛牛 OS 的實踐記錄。目標是替換原廠 TOS，並在 F2-220 已停止官方支援的情況下繼續使用這台 NAS。過程中同時驗證了 F3 背板在 F2-220 上的可用性，並解決了 BIOS 不能從 NVMe 啟動的問題。&lt;/p&gt;
&lt;p&gt;F3 背板原專案驗證設備是 F2-221，平台為 J3355；F2-220 是 J1800 平台，兼容性沒有現成結論。由於專案 fork 中已有 V1.1 版本，元件數量減少，成本和製作難度也下降，因此直接製作 V1.1 版本測試。&lt;/p&gt;
&lt;h2 id=&#34;打板和焊接&#34;&gt;打板和焊接
&lt;/h2&gt;&lt;p&gt;背板專案地址：&lt;a class=&#34;link&#34; href=&#34;https://github.com/arnarg/f3_backplane&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;arnarg/f3_backplane&lt;/a&gt;。打板使用的是 fork 中的 V1.1 版本，核心目標是保留原有 SATA 硬碟位，同時從背板接口引出 NVMe 固態位置。&lt;/p&gt;
&lt;p&gt;打板後拿到多塊 PCB。焊接時遇到一個細節：一開始沒有仔細看 BOM，焊完 M.2 後才發現 SATA 接口和常見接口不太一樣。&lt;/p&gt;
&lt;p&gt;淘寶上沒有找到原生完全合適的 SATA 接口，最後選擇改現有接口：把針腳拔出並交換位置，再焊回板上，完成成品背板。&lt;/p&gt;
&lt;p&gt;這一段的關鍵結論是：F3 背板方案在 F2-220 上可以繼續嘗試，但 SATA 接口選型需要特別注意，不要直接按常見 SATA 連接器下單。&lt;/p&gt;
&lt;h2 id=&#34;接-vga-輸出&#34;&gt;接 VGA 輸出
&lt;/h2&gt;&lt;p&gt;F2-220 機器本身沒有外露影片輸出，但內部預留了 12 針 VGA 接口。需要購買主機板內置 12Pin VGA 轉接線，一端接機器內部 12 針排針，另一端通常是標準 DB15 VGA 母頭，用來外接顯示器。&lt;/p&gt;
&lt;p&gt;常見搜尋關鍵詞可以用「12Pin VGA 轉接線」「主機板 12 針 VGA 轉接線」「2.0mm 12Pin 轉 VGA」。購買前要按機器內部接口照片核對插頭方向、針距和線序，不要只看「12Pin」字樣下單。&lt;/p&gt;
&lt;p&gt;這一步對安裝很關鍵。沒有影片輸出時，後續 BIOS 和安裝過程會非常難排查。&lt;/p&gt;
&lt;h2 id=&#34;安裝飛牛-os&#34;&gt;安裝飛牛 OS
&lt;/h2&gt;&lt;p&gt;透過 Ventoy 啟動飛牛 OS 安裝程式。安裝介面可以成功看到 NVMe 固態，說明背板和 NVMe 硬體鏈路是通的。&lt;/p&gt;
&lt;p&gt;但安裝完成後拔掉啟動碟，機器會重啟到 BIOS 介面，不能正常進入飛牛 OS。BIOS 啟動項裡沒有 NVMe 固態。把飛牛 OS 安裝到 U 盤啟動後，系統內又可以正常看到 NVMe。&lt;/p&gt;
&lt;p&gt;這個現象說明：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;NVMe 硬體識別沒有問題&lt;/li&gt;
&lt;li&gt;Linux 系統內可以訪問 NVMe&lt;/li&gt;
&lt;li&gt;失敗點在 BIOS 啟動階段&lt;/li&gt;
&lt;li&gt;F2-220 平台較老，原 BIOS 很可能沒有 NVMe 啟動模組&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;備份-bios&#34;&gt;備份 BIOS
&lt;/h2&gt;&lt;p&gt;此時已經可以用 U 盤啟動飛牛 OS，而飛牛 OS 基於 Debian，因此可以在系統內用 &lt;code&gt;flashrom&lt;/code&gt; 備份和刷寫 BIOS。&lt;/p&gt;
&lt;p&gt;刷 BIOS 有風險。最好準備編程器，避免刷壞後無法恢復。&lt;/p&gt;
&lt;p&gt;安裝 &lt;code&gt;flashrom&lt;/code&gt;：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt update
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install flashrom -y
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;確認是否能識別 BIOS 晶片：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo flashrom -p internal
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;機器識別到的晶片資訊類似：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Found Winbond flash chip &amp;#34;W25Q64.W&amp;#34; (8192 kB, SPI) mapped at physical address 0x00000000ff800000.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;備份原版 BIOS。注意命令中的晶片型號需要按自己的機器替換：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo flashrom -p internal -c &lt;span class=&#34;s2&#34;&gt;&amp;#34;W25Q64.W&amp;#34;&lt;/span&gt; -r backup_factory.bin
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;注入-nvme-模組&#34;&gt;注入 NVMe 模組
&lt;/h2&gt;&lt;p&gt;備份出的 BIOS 是一個 &lt;code&gt;.bin&lt;/code&gt; 文件。可以透過 WinSCP 把文件傳到電腦上，再參考 B 站教程&lt;a class=&#34;link&#34; href=&#34;https://www.bilibili.com/read/cv4475152/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;《讓老主板用上 Nvme 協議的固態》&lt;/a&gt;，把 NVMe 模組注入 BIOS 文件。&lt;/p&gt;
&lt;p&gt;處理完成後，再把修改後的 BIOS 文件傳回飛牛 OS。&lt;/p&gt;
&lt;p&gt;這裡不建議盲目套用別人的 BIOS 文件。不同機器、不同 BIOS 版本、不同 flash 晶片都可能有差異。更穩妥的做法是備份自己的原 BIOS，再基於自己的備份文件修改。&lt;/p&gt;
&lt;h2 id=&#34;刷寫新-bios&#34;&gt;刷寫新 BIOS
&lt;/h2&gt;&lt;p&gt;刷寫命令如下。晶片型號、韌體路徑和文件名都要按實際情況替換：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo flashrom -p internal -c &lt;span class=&#34;s2&#34;&gt;&amp;#34;W25Q64.W&amp;#34;&lt;/span&gt; -w /vol1/NEW_NVME.bin
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;當輸出中看到下面這行，表示校驗通過：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Verifying flash... VERIFIED.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;刷寫完成後，BIOS 啟動項裡可以看到 &lt;code&gt;PATA&lt;/code&gt; 項。對這類注入 NVMe 模組的老 BIOS 來說，NVMe 啟動項經常會以 &lt;code&gt;PATA&lt;/code&gt; 形式顯示。看到它，說明 BIOS 已經可以識別 NVMe 啟動路徑。&lt;/p&gt;
&lt;h2 id=&#34;結果&#34;&gt;結果
&lt;/h2&gt;&lt;p&gt;最終結果：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;F3 背板 V1.1 在鐵威馬 F2-220 上可以識別 NVMe&lt;/li&gt;
&lt;li&gt;飛牛 OS 安裝程式能看到 NVMe 固態&lt;/li&gt;
&lt;li&gt;原 BIOS 不能直接從 NVMe 啟動&lt;/li&gt;
&lt;li&gt;給 BIOS 注入 NVMe 模組後，啟動項出現 &lt;code&gt;PATA&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;機器具備從 NVMe 啟動飛牛 OS 的條件&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;實測回饋裡也提到，這個 NVMe 通道速度只有 300MB/s 多。作為系統碟已經夠用，不需要上很好的 SSD，甚至小容量傲騰也能滿足需求。&lt;/p&gt;
&lt;h2 id=&#34;注意事項&#34;&gt;注意事項
&lt;/h2&gt;&lt;p&gt;這不是普通無風險教程，更像一次硬體和 BIOS 改造記錄。真正動手前至少要注意：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;F2-220 和 F2-221 平台不同，不能把 F2-221 的結果直接等同於 F2-220。&lt;/li&gt;
&lt;li&gt;F3 背板需要打板和焊接，SATA 接口還可能需要改針腳。&lt;/li&gt;
&lt;li&gt;機器內部 VGA 接口需要合適的轉接線，方便安裝和排錯。&lt;/li&gt;
&lt;li&gt;BIOS 刷寫有變磚風險，最好提前準備編程器和原始備份。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;flashrom&lt;/code&gt; 命令裡的晶片型號必須按自己機器識別結果填寫。&lt;/li&gt;
&lt;li&gt;不要直接刷別人修改好的 BIOS，優先基於自己的備份注入 NVMe 模組。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這次記錄的價值在於補上了 F2-220 的實測結果：F3 背板思路不僅限於 F2-221，F2-220 也有機會使用 NVMe 系統碟；真正的卡點不在 Linux 識別 NVMe，而在 BIOS 是否支援 NVMe 啟動。&lt;/p&gt;
&lt;h2 id=&#34;相關連結&#34;&gt;相關連結
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;飛牛論壇實測帖：&lt;a class=&#34;link&#34; href=&#34;https://club.fnnas.com/forum.php?mod=viewthread&amp;amp;tid=55589&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;鐵威馬F2-220折騰飛牛OS過程&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>詳解 PCIe 通道拆分 bifurcation 的各種方式</title>
        <link>https://knightli.com/zh-tw/2026/05/02/pcie-bifurcation-modes/</link>
        <pubDate>Sat, 02 May 2026 10:15:49 +0800</pubDate>
        
        <guid>https://knightli.com/zh-tw/2026/05/02/pcie-bifurcation-modes/</guid>
        <description>&lt;p&gt;PCIe bifurcation 通常被翻譯為 PCIe 通道拆分或分叉。它解決的問題很直接：一組來自 CPU 或晶片組的 PCIe Lane，到底應該作為一個寬鏈路使用，還是拆成多個較窄鏈路分給不同裝置。&lt;/p&gt;
&lt;p&gt;例如，一組 16 條 PCIe Lane 可以配置成 &lt;code&gt;x16&lt;/code&gt;，也可以拆成 &lt;code&gt;x8+x8&lt;/code&gt;，或者拆成 &lt;code&gt;x8+x4+x4&lt;/code&gt;。這就是主機板上「一個顯示卡插槽跑滿 x16」「兩個顯示卡插槽各跑 x8」「一條顯示卡加兩個 CPU 直連 M.2」的底層基礎。&lt;/p&gt;
&lt;h2 id=&#34;pcie-lane-是什麼&#34;&gt;PCIe Lane 是什麼
&lt;/h2&gt;&lt;p&gt;PCIe 是串列匯流排。每個 Lane 由一組差分訊號組成，可以理解為一條獨立的高速資料通道。多個 Lane 綁定在一起後，就形成了更寬的鏈路：&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/pcie-bifurcation-modes/pcie-lane-link.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;PCIe Lane 與鏈路寬度示意圖&#34;
	
	
&gt;&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;鏈路寬度&lt;/th&gt;
          &lt;th&gt;常見用途&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;x1&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;網卡、音效卡、擷取卡、USB 擴充卡&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;x4&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;NVMe SSD、部分高速擴充卡&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;x8&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;第二條顯示卡插槽、RAID 卡、網卡&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;x16&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;主顯示卡插槽&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;PCIe 鏈路寬度通常按 2 的冪增長，所以常見的是 &lt;code&gt;x1&lt;/code&gt;、&lt;code&gt;x2&lt;/code&gt;、&lt;code&gt;x4&lt;/code&gt;、&lt;code&gt;x8&lt;/code&gt;、&lt;code&gt;x16&lt;/code&gt;。消費級主機板上最常見的是 &lt;code&gt;x1&lt;/code&gt;、&lt;code&gt;x4&lt;/code&gt;、&lt;code&gt;x8&lt;/code&gt; 和 &lt;code&gt;x16&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;需要注意的是，實體插槽長度不等於實際鏈路寬度。一個看起來是 &lt;code&gt;x16&lt;/code&gt; 的長插槽，實際可能只接了 &lt;code&gt;x4&lt;/code&gt; 或 &lt;code&gt;x8&lt;/code&gt;；一個 M.2 插槽通常是 &lt;code&gt;x4&lt;/code&gt;，但它也要看是接 CPU 還是接晶片組。&lt;/p&gt;
&lt;h2 id=&#34;bifurcation-在什麼時候發生&#34;&gt;bifurcation 在什麼時候發生
&lt;/h2&gt;&lt;p&gt;PCIe 裝置初始化大致可以分成幾個階段：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;確定 PCIe bifurcation，也就是決定通道如何拆分。&lt;/li&gt;
&lt;li&gt;Root Port Training，訓練鏈路速度和寬度。&lt;/li&gt;
&lt;li&gt;PCI 枚舉，讓系統發現各個裝置。&lt;/li&gt;
&lt;li&gt;設定 PCIe 相關特性，例如電源管理、錯誤回報和逾時控制。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;bifurcation 發生得很早。因為系統必須先知道一組 Lane 是一個 &lt;code&gt;x16&lt;/code&gt;，還是兩個 &lt;code&gt;x8&lt;/code&gt;，或者幾個 &lt;code&gt;x4&lt;/code&gt;，後續 Training 和裝置枚舉才知道該按幾個 Root Port 去處理。&lt;/p&gt;
&lt;p&gt;如果 bifurcation 設定不對，常見現象包括：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;擴充卡只識別一塊 SSD。&lt;/li&gt;
&lt;li&gt;插了轉接卡後裝置完全不出現。&lt;/li&gt;
&lt;li&gt;顯示卡鏈路寬度從 &lt;code&gt;x16&lt;/code&gt; 變成 &lt;code&gt;x8&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;BIOS 裡看不到想要的拆分選項。&lt;/li&gt;
&lt;li&gt;主機板說明書寫著支援某種拆分，但只在特定插槽或特定 CPU 下生效。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;方式一hard-strap&#34;&gt;方式一：Hard Strap
&lt;/h2&gt;&lt;p&gt;Hard Strap 是硬體方式。主機板透過固定腳位、電阻上拉下拉或線路連接，把 PCIe 拆分方式在硬體層面確定下來。&lt;/p&gt;
&lt;p&gt;這種方式常見於消費級桌面平台的 CPU 直連 PCIe 通道。例如 CPU 提供一組 &lt;code&gt;x16&lt;/code&gt; Lane，主機板廠商可以按產品定位設計成：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;配置&lt;/th&gt;
          &lt;th&gt;典型用途&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;x16&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;一條主顯示卡插槽&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;x8+x8&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;兩條顯示卡插槽&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;x8+x4+x4&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;一條顯示卡插槽加兩個 CPU 直連 M.2&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Hard Strap 的特點是穩定、簡單、成本低。主機板廠商在設計 PCB 時就確定了通道走向，使用者後期通常不能在 BIOS 裡自由改。&lt;/p&gt;
&lt;p&gt;它的缺點也很明顯：彈性差。一旦主機板佈線定下來，除非重新設計 PCB，否則不能把一個只做 &lt;code&gt;x16&lt;/code&gt; 的插槽變成 &lt;code&gt;x4+x4+x4+x4&lt;/code&gt;。所以很多消費級主機板即使 CPU 理論上支援拆分，BIOS 裡也未必給出相關選項。&lt;/p&gt;
&lt;p&gt;對普通使用者來說，Hard Strap 最直觀的影響是：主機板能不能支援 PCIe 拆分，首先看主機板設計，不是只看 CPU 參數。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/pcie-bifurcation-modes/image.png&#34;
	width=&#34;1008&#34;
	height=&#34;506&#34;
	srcset=&#34;https://knightli.com/2026/05/02/pcie-bifurcation-modes/image_hu_9da109a68bf2083b.png 480w, https://knightli.com/2026/05/02/pcie-bifurcation-modes/image_hu_ca9e4232e5981219.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;12 代 CPU 的 bifurcation&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;199&#34;
		data-flex-basis=&#34;478px&#34;
	
&gt;&lt;/p&gt;
&lt;h2 id=&#34;方式二soft-strap&#34;&gt;方式二：Soft Strap
&lt;/h2&gt;&lt;p&gt;Soft Strap 是軟體配置方式，但它並不一定等於 BIOS 選單裡的使用者選項。很多時候，這類配置寫在 BIOS 映像或平台描述區域中，由主機板廠商在出廠前設定好。&lt;/p&gt;
&lt;p&gt;晶片組下面的 PCIe Root Port 經常採用類似方式。主機板廠商根據實際佈線，把某些 Root Port 配成獨立 &lt;code&gt;x1&lt;/code&gt;，或者組合成 &lt;code&gt;x2&lt;/code&gt;、&lt;code&gt;x4&lt;/code&gt;。這些設定通常在 BIOS 映像中固定，寫入後隨平台初始化生效。&lt;/p&gt;
&lt;p&gt;Soft Strap 的特點是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;不需要改 PCB 就能調整部分配置。&lt;/li&gt;
&lt;li&gt;配置通常在早期初始化階段生效。&lt;/li&gt;
&lt;li&gt;修改後一般需要重新刷寫 BIOS 或至少重啟。&lt;/li&gt;
&lt;li&gt;使用者介面裡不一定暴露相關選項。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;這也是為什麼有些主機板的硬體看起來接線類似，但不同 BIOS 版本或不同廠商設定下，PCIe 插槽、M.2 插槽和板載裝置的分配方式會有差異。&lt;/p&gt;
&lt;p&gt;不過，Soft Strap 仍然不是萬能的。它只能在硬體佈線允許的範圍內調整，不能憑空把沒有連接到某個插槽的 Lane 分給它。&lt;/p&gt;
&lt;h2 id=&#34;方式三wait-for-bios&#34;&gt;方式三：Wait For BIOS
&lt;/h2&gt;&lt;p&gt;Wait For BIOS 是更靈活的方式。平台在 PCIe Training 之前等待 BIOS 寫入相關暫存器，由 BIOS 決定某組 Lane 最終拆成什麼寬度。&lt;/p&gt;
&lt;p&gt;這種方式常見於可擴充性更強的平台，例如工作站、伺服器或部分 Xeon 平台。因為這些平台提供的 Lane 數量更多，插槽組合也更複雜，如果全部靠硬體固定，會大幅降低主機板適配能力。&lt;/p&gt;
&lt;p&gt;Wait For BIOS 的優勢是靈活：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;BIOS 可以提供 &lt;code&gt;x16&lt;/code&gt;、&lt;code&gt;x8+x8&lt;/code&gt;、&lt;code&gt;x8+x4+x4&lt;/code&gt;、&lt;code&gt;x4+x4+x4+x4&lt;/code&gt; 等選項。&lt;/li&gt;
&lt;li&gt;同一張主機板可以適配不同擴充卡。&lt;/li&gt;
&lt;li&gt;更適合多 NVMe 轉接卡、PCIe 背板、伺服器 Riser 卡等場景。&lt;/li&gt;
&lt;li&gt;使用者可以根據裝置數量和頻寬需求調整。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;它的代價是平台和 BIOS 必須配合。CPU 或晶片組要支援對應拆分，主機板佈線要符合拆分方式，BIOS 也要把選項做出來。缺少其中任何一環，使用者都可能看不到可用的 bifurcation 設定。&lt;/p&gt;
&lt;h2 id=&#34;常見拆分組合&#34;&gt;常見拆分組合
&lt;/h2&gt;&lt;p&gt;不同平台支援的組合不一樣，但常見拆分方式大致如下：&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/pcie-bifurcation-modes/pcie-bifurcation-modes.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;PCIe bifurcation 常見拆分方式&#34;
	
	
&gt;&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;原始鏈路&lt;/th&gt;
          &lt;th&gt;常見拆分&lt;/th&gt;
          &lt;th&gt;典型用途&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;x16&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;x16&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;單顯示卡&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;x16&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;x8+x8&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;雙顯示卡、顯示卡加高速擴充卡&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;x16&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;x8+x4+x4&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;顯示卡加兩塊 NVMe SSD&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;x16&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;x4+x4+x4+x4&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;四盤 NVMe 轉接卡&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;x8&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;x4+x4&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;雙盤 NVMe、雙埠高速擴充&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;x4&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;x2+x2&lt;/code&gt; 或多個 &lt;code&gt;x1&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;較少見，取決於平台支援&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;在 DIY 場景裡，最常見的需求是把一個 &lt;code&gt;x16&lt;/code&gt; 插槽拆成 &lt;code&gt;x4+x4+x4+x4&lt;/code&gt;，配合四盤 M.2 轉接卡使用。這裡要特別注意：便宜的無晶片轉接卡只是把插槽實體轉接成多個 M.2，它本身不會負責拆分 PCIe 通道。&lt;/p&gt;
&lt;p&gt;如果主機板不支援 &lt;code&gt;x4+x4+x4+x4&lt;/code&gt;，這種轉接卡通常只能識別第一塊 SSD。想在不支援 bifurcation 的主機板上使用多盤卡，需要帶 PCIe Switch 晶片的擴充卡，但這類卡成本高得多。&lt;/p&gt;
&lt;h2 id=&#34;bifurcation-和-pcie-switch-的區別&#34;&gt;bifurcation 和 PCIe Switch 的區別
&lt;/h2&gt;&lt;p&gt;bifurcation 是把上游已有的 Lane 拆給多個下游埠。它不增加 Lane 數，只改變分配方式。&lt;/p&gt;
&lt;p&gt;PCIe Switch 則像一個 PCIe 交換晶片。它可以把一個上游鏈路連接到多個下游裝置，讓系統看到更多裝置。它也不憑空增加上游頻寬，但可以解決「主機板不支援通道拆分仍要接多裝置」的問題。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/05/02/pcie-bifurcation-modes/pcie-switch-vs-bifurcation.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;PCIe bifurcation 與 PCIe Switch 對比&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;兩者差異可以這樣理解：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;方案&lt;/th&gt;
          &lt;th&gt;是否需要主機板支援 bifurcation&lt;/th&gt;
          &lt;th&gt;成本&lt;/th&gt;
          &lt;th&gt;適合場景&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;無晶片 M.2 轉接卡&lt;/td&gt;
          &lt;td&gt;需要&lt;/td&gt;
          &lt;td&gt;低&lt;/td&gt;
          &lt;td&gt;主機板支援 &lt;code&gt;x4+x4+x4+x4&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;帶 PCIe Switch 的擴充卡&lt;/td&gt;
          &lt;td&gt;不一定需要&lt;/td&gt;
          &lt;td&gt;高&lt;/td&gt;
          &lt;td&gt;主機板不支援拆分但需要多裝置&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;所以買多 M.2 擴充卡前，要先看主機板 BIOS 是否支援對應拆分。如果只寫「支援 PCIe x16 插槽」，並不代表它支援四盤同時識別。&lt;/p&gt;
&lt;h2 id=&#34;選購和排查建議&#34;&gt;選購和排查建議
&lt;/h2&gt;&lt;p&gt;如果你想使用 PCIe bifurcation，可以按這個順序確認：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;查 CPU 或平台是否支援目標拆分方式。&lt;/li&gt;
&lt;li&gt;查主機板說明書，看目標插槽是否支援 &lt;code&gt;x8+x8&lt;/code&gt;、&lt;code&gt;x8+x4+x4&lt;/code&gt; 或 &lt;code&gt;x4+x4+x4+x4&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;進入 BIOS，確認是否有 PCIe bifurcation、PCIe lane configuration、slot configuration 之類選項。&lt;/li&gt;
&lt;li&gt;確認擴充卡是無晶片轉接卡，還是帶 PCIe Switch 的卡。&lt;/li&gt;
&lt;li&gt;確認裝置插滿後是否會和 M.2、SATA、板載網卡等共享通道。&lt;/li&gt;
&lt;li&gt;進系統後用工具查看實際鏈路寬度和裝置枚舉情況。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果擴充卡只能識別一塊盤，優先檢查 BIOS 拆分選項。如果 BIOS 沒有相關設定，大概率不是驅動問題，而是主機板沒有把這組 Lane 拆給多個裝置。&lt;/p&gt;
&lt;p&gt;如果裝置都能識別，但速度不對，再檢查鏈路 Training。線材、轉接卡品質、插槽佈線、PCIe 版本和裝置相容性，都可能導致鏈路從 Gen4 降到 Gen3，甚至降到更低。&lt;/p&gt;
&lt;h2 id=&#34;小結&#34;&gt;小結
&lt;/h2&gt;&lt;p&gt;PCIe bifurcation 的本質，是在 PCIe 初始化早期決定 Lane 的組織方式。Hard Strap 靠硬體固定，Soft Strap 靠平台配置，Wait For BIOS 則由 BIOS 在訓練鏈路前動態設定。&lt;/p&gt;
&lt;p&gt;對普通裝機使用者來說，最重要的結論有三點：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;x16&lt;/code&gt; 實體插槽不等於一定能拆成多個 &lt;code&gt;x4&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;無晶片多 M.2 轉接卡必須依賴主機板 bifurcation。&lt;/li&gt;
&lt;li&gt;是否支援拆分，要同時看 CPU、主機板佈線和 BIOS 選項。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;理解這些之後，再看主機板規格表裡的 &lt;code&gt;x16&lt;/code&gt;、&lt;code&gt;x8+x8&lt;/code&gt;、&lt;code&gt;x4+x4+x4+x4&lt;/code&gt;，就不會只停留在插槽長度上，而能判斷它到底能不能滿足實際擴充需求。&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
