I am trying to run BBRv2 using the custom kernel provided at
https://github.com/google/bbr/blob/v2alpha. I am using a VM on vmware workstation running Ubuntu 22.04. The VM boots fine with its default kernel, i.e, 5.19.0-46-generic. When I try to boot with the v2alpha kernel, I get the error:
"Gave up waiting for root filesystem device" (see screenshots attached).
I tried building the kernel through multiple methods and configs described below.
Any help in resolving this would be appreciated.
Steps:
- I first tried the script https://github.com/google/bbr/blob/v2alpha/gce-install.sh directly. I only used the script to do the compilation, i.e., I commented out the steps post tar creation. I ran the modified script on the VM itself.
- Based on my reading of the gce-install script, I manually copied the boot/*GCE and lib/modules/*GCE files to /boot/ and /lib/modules/ respectively
- I ran sudo mkinitramfs -k -o initrd.img-5.13.12+v2alpha+a23c4bb59e0c+GCE 5.13.12+v2alpha+a23c4bb59e0c+GCE
- I did sudo update-grub and then rebooted.
- I get the error shown in attached screenshot: GCE-config.JPG
- Note, I updated /etc/grub/default to set timeout as 5 seconds (without that it won't show me option to select the newly built kernel).
- I came across https://groups.google.com/g/bbr-dev/c/5BkIRx9k4Ns/m/Sg98jVh1AAAJ and https://groups.google.com/g/bbr-dev/c/DUoz7nGvzz0/m/njL0w_8NAwAJ, and realized that the GCE config may not work for the VM. I had two options, follow https://wiki.gentoo.org/wiki/VMware to update config or copy the working kernel config. I copied the working kernel config (I can try following the other approach, but I don't know why that would work if the copying did not work).
- On a fresh clone, I did cp /boot/config-$(uname -r) .config
- make olddefconfig
- Updated CONFIG_TCP_CONG_{CUBIC, DCTCP, BBR, BBR2} as y.
- make $MAKE_OPTS bindeb-pkg.
- I set the MAKE_OPTS similar to the gce_install.sh script.
- In the MAKE_OPTS, I had to remove the -GCE suffix as the make process gave error that character G is not allowed).
- I had to run following to get around signature/cert errors
- scripts/config --disable SYSTEM_TRUSTED_KEYS
scripts/config --disable SYSTEM_REVOCATION_KEYS
- I faced pahole not found, so I installed dwarves (https://stackoverflow.com/questions/61657707/btf-tmp-vmlinux-btf-pahole-pahole-is-not-available/61758176#61758176)
- I also faced an issue saying Unable to resolve "bbr_min_tso_segs" in the BTF generation (this may actually be a linking issue with the v2alpha repo). I got around this by setting
CONFIG_DEBUG_INFO_BTF=n (https://stackoverflow.com/a/71977338/5039326)
- This produced .deb files in ../
- I did sudo apt install ./*.deb and rebooted.
- I selected the new kernel and got error message in screenshot: Upstream-config.JPG
Please let me know if I should provide any other information.
Any help would be appreciated.
Thanks in advance,
Anup