# Ubuntu GPU Server Setup Quick and smooth setup of Ubuntu GPU server, including proper installation of Nvidia driver. Estimated time: < 1 hour 1. Download the “alternative” server image from Ubuntu: [Alternative downloads | Ubuntu](https://ubuntu.com/download/alternative-downloads) 2. [Create a bootable USB stick on macOS | Ubuntu](https://ubuntu.com/tutorials/tutorial-create-a-usb-stick-on-macos?_ga=2.258246282.1660341004.1581753207-683286975.1581753207#1-overview) 3. Go to BIOS, disable `secure boot`. Then boot UEFI. Install Ubuntu, overwrite full partition, add SSH Server. Finish installation and login. 4. You can now `ssh` in with password. Login and install nvidia driver. Since secure boot is disable, nvidia installation should go smoothly. ``` # if you install ubuntu server no GUI, ok sudo add-apt-repository ppa:graphics-drivers sudo apt-get update sudo apt install ubuntu-drivers-common ubuntu-drivers devices # this will show a list of drivers sudo apt-get install nvidia-driver-440 # reboot required later # install Docker sudo apt install apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable" sudo apt update apt-cache policy docker-ce sudo apt install docker-ce sudo usermod -aG docker ${USER} # install nvidia-container-toolkit to run Docker with GPU distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit sudo systemctl restart docker ``` 5. [Configure WiFi Connections | NetworkManager documentation](https://docs.ubuntu.com/core/en/stacks/network/network-manager/docs/configure-wifi-connections). ``` # if you have wifi sudo apt-get install network-manager sudo /etc/init.d/network-manager restart nmcli d nmcli r wifi on nmcli d wifi list nmcli d wifi connect my_wifi password <password> ``` 6. setup ssh keys, authorized keys, sshd_config: ``` ssh-keygen nano ~/.ssh/authorized_keys chmod 400 ~/.ssh/authorized_keys sudo nano /etc/ssh/sshd_config # set: PasswordAuthentication no sudo systemctl restart sshd ``` 6. [install zsh](https://github.com/ohmyzsh/ohmyzsh/wiki/Installing-ZSH#ubuntu-debian--derivatives-windows-10-wsl--native-linux-kernel-with-windows-10-build-1903) and change shell: ``` sudo apt install zsh chsh -s $(which zsh) # then restore your dotfiles from git ``` 7. Install libraries: ``` # xvfb, roboschool, orca dependencies sudo apt-get install xvfb libpcre16-3 libgtk2.0-0 libxss1 libgconf2-4 libnss3 # install glances curl -L https://bit.ly/glances | /bin/bash ``` 8. Reboot: ``` sudo reboot now ```