2021/05/18

[Ubuntu] Build bbrv2 on Ubuntu 21.04

因為BBRv2還沒有在Linux的master tree中,所以Ubuntu目前也沒有BBRv2。本篇紀錄怎麼把編譯好的BBRv2放到Ubuntu 21.04中。以Google Cloud Platform的VM作為例子。

需要的有:1) 下載BBRv2的程式碼在本機端,2) 遠端的VM (本篇用GCP Ubuntu 21.04)。

首先在GCP上開一個Ubuntu 21.04的VM。接著可以在本機端下載BBRv2的程式碼(BBRv2 Alpha),接著編譯

$ cd bbr/
$ ./gce-install.sh -m ${HOST}

其中${HOST}指的是VM的“帳號@位置”,仔細看整個script,其實就是最後會有一個壓縮檔案kernel-${LOCALVERSION}.tar.gz2,複製並且解壓縮到主要目錄。

在全部完成後,要在GCP的VM上設定開機選單。值得注意的是因為GCP開機目前無法可以透過ssh來選擇開機選單,所以無法直接知道選單順序。因此可以直接看

$ cat /boot/grub/grub.cfg

找出這次的image檔案名稱,這次的是“Ubuntu, with Linux 5.10.0+v2alpha+74f603c+GCE”,所以可以修改grub選單

$ /etc/default/grub.d/50-cloudimg-settings.cfg


把GRUB_DEFAULT改成

GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 5.10.0+v2alpha+74f603c+GCE"
然後更新選單

$ sudo update-grub
$ sudo reboot
重開機後可以看版本
就可以看到版本變成5.10***GCE,且bbr2已經在可以挑的TCP congestion control之中了。

Reference

5 則留言:

  1. 我的 ubuntu 18.4 錯誤可以幫助我
    錯誤:內核配置無效。
    缺少 include/generated/autoconf.h 或 include/config/auto.conf。
    在內核 src 上運行“make oldconfig && make prepare”來修復它。

    回覆刪除
    回覆
    1. You may try this: https://stackoverflow.com/questions/50361990/how-to-solve-kernel-configuration-is-invalid-issues

      刪除
    2. how do I do this by selecting BBRV2 after activating it by the kernel

      刪除
    3. Use "sudo sysctl -w net.ipv4.tcp_congestion_control=bbr2" to switch your default congestion control to bbr2.

      刪除