Skip to content

Instantly share code, notes, and snippets.

@phillhocking
Last active December 29, 2021 20:47
Show Gist options
  • Save phillhocking/65b198d13ed2607e584b6cc45ec0431e to your computer and use it in GitHub Desktop.
Save phillhocking/65b198d13ed2607e584b6cc45ec0431e to your computer and use it in GitHub Desktop.
Stand Up Ubuntu Studio 20.04 with NVIDIA CUDA/nvenc ffmpeg
#!/bin/bash
# personalization/visualization
gsettings set com.canonical.indicator.datetime time-format '24-hour'
sudo add-apt-repository ppa:papirus/papirus -y && sudo apt update
sudo apt install -y papirus-icon-theme git sassc python3-pip fonts-powerline powerline
pip install powerline-status
pip3 install powerline-gitstatus
git clone https://github.com/vinceliuice/vimix-gtk-themes.git vimix
cd vimix
sudo ./install.sh -a
cd ~
# HashiCorp repo / Terraform
sudo apt install -y gnupg software-properties-common curl
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
sudo apt update && sudo apt install -y terraform packer vagrant virtualbox
# chrome
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'
sudo apt update
sudo apt install -y google-chrome-stable
# applications
sudo snap install spotify
sudo snap install code --classic
sudo snap install slack --classic
sudo snap install discord
sudo snap install bitwarden
sudo snap install vlc
sudo snap install zoom-client
# obs
sudo add-apt-repository -y ppa:obsproject/obs-studio
sudo apt install -y ffmpeg v4l2loopback-dkms obs-studio
# utilities
sudo apt install -y powerline gmrun xclip urlview gpm font-manager libsecret-1-0 libsecret-1-dev tmux neofetch ckb-next awscli
cd /usr/share/doc/git/contrib/credential/libsecret && sudo make
git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
sudo systemctl enable gpm
sudo systemctl start gpm
sudo apt install -y network-manager-l2tp network-manager-l2tp-gnome whois gnome-online-accounts
sudo apt install -y gnome-control-center --no-install-recommends
# docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
apt update -y
apt install -y docker-ce docker-ce-cli containerd.io docker-compose
sudo systemctl enable docker
sudo systemctl start docker
# kubernetes
sudo apt install -y kubernetes
sudo snap install kubectl --classic
sudo snap install k9s-nsg
snap connect k9s-nsg:kube-config
curl https://baltocdn.com/helm/signing.asc | sudo apt-key add -
sudo apt-get install apt-transport-https --yes
echo "deb https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm
# ubuntu studio
sudo apt install -y ubuntustudio-desktop ubuntustudio-audio ubuntustudio-menu linux-lowlatency ubuntustudio-graphics ubuntustudio-photography ubuntustudio-video ubuntustudio-lowlatency-settings ubuntustudio-performance-tweaks
# nvidia
sudo apt install -y nvidia-cuda-toolkit libnvidia-encode-495
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
sudo apt update
sudo apt install -y cuda nvidia-gds
echo export PATH=/usr/local/cuda/bin${PATH:+:${PATH}} |tee -a ~/.bashrc
echo export LD_LIBRARY_PATH=/usr/local/cuda/lib64\${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} |tee -a ~/.bashrc
source ~./bashrc
git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers && sudo make install && cd ..
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg/
sudo apt install y build-essential pkg-config checkinstall git libfaac-dev libgpac-dev ladspa-sdk-dev libunistring-dev libbz2-dev \
libjack-jackd2-dev libmp3lame-dev libsdl2-dev libopencore-amrnb-dev libopencore-amrwb-dev libvpx-dev libx264-dev libx265-dev libxvidcore-dev libopenal-dev libopus-dev \
libsdl1.2-dev libtheora-dev libva-dev libvdpau-dev libvorbis-dev libx11-dev \
libxfixes-dev texi2html yasm zlib1g-dev libnuma-dev libssl-dev
cd ffmpeg
./configure --pkg-config-flags="--static --libs openssl" --enable-nonfree --enable-gpl --enable-version3 --enable-libmp3lame --enable-libvpx --enable-libopus --enable-opencl --enable-libxcb --enable-opengl --enable-nvenc --enable-vaapi --enable-vdpau --enable-ffplay --enable-ffprobe --enable-libxvid --enable-libx264 --enable-libx265 --enable-openal --enable-openssl --enable-cuda-nvcc --enable-cuvid --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64
sudo apt install meson libsystemd-dev pkg-config ninja-build git libdbus-1-dev libinih-dev
git clone https://github.com/FeralInteractive/gamemode.git
cd gamemode
git checkout 1.6.1
# Audio / VST plugins
sudo apt install -y libtool autoconf libexpat1-dev libglib2.0-dev libfluidsynth-dev jackd2 libjack-jackd2-dev libjack-jackd2-0 libglade2-dev lv2-dev jackd2 pavucontrol pulseaudio-module-jack
sudo tee -a /etc/pulse/default.pa load-module module-jack-source source_name=pulse_return client_name=pulse_return connect=false
sudo tee -a /etc/pulse/default.pa load-module module-jack-source load-module module-jack-source source_name=pulse_return client_name=pulse_return connect=false
sudo tee -a /etc/pulse/default.pa load-module module-jack-sink
git clone https://github.com/calf-studio-gear/calf.git
cd calf
./autogen.sh
make -j2
sudo make install
sudo usermod -aG audio phocking
# scanner
sudo apt install sane xsane v4l-utils
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment