Since I just did this for my own Raspberry Pi, here are the instructions that can be used by others. This was done on Raspbian buster but should likely work for others.
The following displayed command prompts show an example of user pi on a system named storjpi.
Connect to your RPi via ssh or console and query your logs as indicated prior to see if you have the fastopen warning.
Check if your current config has fastopen defined: pi@storjpi:~ $ grep fastopen /etc/sysctl.conf
If a line is returned and it is not set to 3, edit the file (sudoedit /etc/sysctl.conf) and change the value to 3.
If a line is not returned append fastopen to the end of the config:
pi@storjpi:~ $ sudo su -
root@storjpi:~# echo "
#Enabling fastopen for storj
net.ipv4.tcp_fastopen = 3" >> /etc/sysctl.conf
root@storjpi:~# exit
Note that when you paste or type the echo lines in there will be greater-than symbols shown at each new line. I’ve omitted them here for ease of copy/paste.
Shutdown and remove current storj docker containers:
pi@storjpi:~ $ docker stop -t 300 $(docker ps -a -q); docker rm $(docker ps -a -q)
Reboot: pi@storjpi:~ $ sudo reboot now
After reboot reconnect and confirm the OS fastopen status shows 3: pi@storjpi:~ $ sudo sysctl -a | grep "net.ipv4.tcp_fastopen ="
Recreate your storj containers adding the --sysctl net.ipv4.tcp_fastopen=3 parameter making sure you put it before storjlabs/storagenode:latest image name, then re-grep your logs to confirm the fastopen warning does not exist.
Sanity check here… In my example all the pi@storjpi:~ $ and root@storjpi:~# strings are what you would see at the command prompt. Since you included the $ in your reply I want to make sure that is just copied from your command prompt and not something in the command you’re trying to execute.
No response text could be valid if there is no line with “fastopen” in the /etc/sysctl.conf file. On a non-arm Ubuntu 22.04.2 install I’ve got that is what happens when I run the command. I guess an additional test is to also confirm what your fastopen is currently set to per sysctl. If you run command sudo sysctl -a | grep "net.ipv4.tcp_fastopen =" you should get a line back. If this is anything but 3 then I believe you’ll want to edit /etc/sysctl.conf to add that in as applied at boot.
You need to use an wsl2 engine to make it available. However, for Hyper-V engine there is a workaround as well:
But use
sysctl -w net.ipv4.tcp_fastopen=3
however, this change is not persistent and does not survive reboot.
In case of wsl2 you need to set it in the wsl2 shell for the docker-desktop distro as for Linux and use --sysctl net.ipv4.tcp_fastopen=3 option in the docker run command.
docker: Error response from daemon: OCI runtime create failed: container_linux.go:344: starting container process caused “process_linux.go:424: container init caused "write sysctl key net.ipv4.tcp_fastopen: open /proc/sys/net/ipv4/tcp_fastopen: no such file or directory"”: unknown.