<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Posts on Johnny&#39;s Space</title>
    <link>https://blog.ganfan.de/posts/</link>
    <description>Recent content in Posts on Johnny&#39;s Space</description>
    <image>
      <title>Johnny&#39;s Space</title>
      <url>https://blog.ganfan.de/favicon.ico</url>
      <link>https://blog.ganfan.de/favicon.ico</link>
    </image>
    <generator>Hugo -- 0.147.7</generator>
    <language>en</language>
    <lastBuildDate>Sat, 17 May 2025 03:25:14 +0800</lastBuildDate>
    <atom:link href="https://blog.ganfan.de/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>编译BBR v3内核</title>
      <link>https://blog.ganfan.de/posts/compile-bbrv3/</link>
      <pubDate>Sat, 17 May 2025 03:25:14 +0800</pubDate>
      <guid>https://blog.ganfan.de/posts/compile-bbrv3/</guid>
      <description>&lt;ul&gt;
&lt;li&gt;安装编译依赖, 我使用的是Debian 12, 不同系统可能存在差异
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;apt -y install build-essential libncurses-dev libssl-dev libelf-dev bison bc flex rsync debhelper dwarves git&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;克隆希望编译的linux kernel版本与google bbr-v3仓库
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git clone https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git 6.12.y -b linux-6.12.y&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git clone https://github.com/google/bbr.git bbr -b v3&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;提取bbr v3补丁
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cd bbr &amp;amp;&amp;amp; git log&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;找到bbr v3仓库使用的内核版本对应的commit hash(发文章时为6.13.7)
&lt;ul&gt;
&lt;li&gt;&lt;img alt=&#34;1.png&#34; loading=&#34;lazy&#34; src=&#34;https://pic.fogs.cc/images/2025/05/17/1.png&#34;&gt;&lt;/li&gt;
&lt;li&gt;提取补丁
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git format-patch --stdout hash..HEAD &amp;gt; ../bbr3.patch&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img alt=&#34;2.png&#34; loading=&#34;lazy&#34; src=&#34;https://pic.fogs.cc/images/2025/05/17/2.png&#34;&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;在目标编译内核目录应用补丁
&lt;ul&gt;
&lt;li&gt;创建新分支
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cd ../6.12.y &amp;amp;&amp;amp; git branch patched &amp;amp;&amp;amp; git checkout patched&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img alt=&#34;3.png&#34; loading=&#34;lazy&#34; src=&#34;https://pic.fogs.cc/images/2025/05/17/3.png&#34;&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;应用补丁, warning信息无视即可
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git am ../bbr3.patch&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img alt=&#34;4.png&#34; loading=&#34;lazy&#34; src=&#34;https://pic.fogs.cc/images/2025/05/17/4.png&#34;&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;复制当前内核配置文件并应用
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cp /boot/config-$(uname -r) .config &amp;amp;&amp;amp; make olddefconfig&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;启用BBR v3
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;make menuconfig&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;找到 &lt;code&gt;Networking support  ---&amp;gt;&lt;/code&gt; -&amp;gt; &lt;code&gt;Networking options  ---&amp;gt;&lt;/code&gt; -&amp;gt; &lt;code&gt;TCP: advanced congestion control  ---&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;启用BBR, 如需保留BBR v1则追加启用BBR1, [*]代表编译进内核, [m]为编译为模块&lt;/li&gt;
&lt;li&gt;&lt;img alt=&#34;5.png&#34; loading=&#34;lazy&#34; src=&#34;https://pic.fogs.cc/images/2025/05/17/5.png&#34;&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;编译为deb包
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;make deb-pkg KCFLAGS=&amp;quot;-march=x86-64-v2 -pipe&amp;quot; -j$(nproc)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;使用 &lt;code&gt;dpkg -i&lt;/code&gt; 安装内核, 卸载其他所有内核或修改grub配置指定以新内核启动, 配置完成后重启
&lt;ul&gt;
&lt;li&gt;由于系统五花八门, 请自行搜索相关教程&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;验证是否成功启用BBR v3
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;modinfo tcp_bbr&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;img alt=&#34;Termius_4XnUFkLmkb.png&#34; loading=&#34;lazy&#34; src=&#34;https://pic.fogs.cc/images/2025/05/17/Termius_4XnUFkLmkb.png&#34;&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;启用BBR
&lt;ul&gt;
&lt;li&gt;临时启用
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sysctl net.ipv4.tcp_congestion_control=bbr&lt;/code&gt; 设为bbr即启用BBR v3, 设为bbr1即启用BBR v1&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;持久启用
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;echo &#39;net.ipv4.tcp_congestion_control = bbr&#39; &amp;gt; /etc/sysctl.conf&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;请检查 &lt;code&gt;/etc/sysctl.d&lt;/code&gt; 文件夹, 如有配置冲突请自行解决&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
  </channel>
</rss>
