Skip to content

Instantly share code, notes, and snippets.

@renaudll
Last active May 9, 2024 17:19
Show Gist options
  • Select an option

  • Save renaudll/c2f8d79d27687655de35 to your computer and use it in GitHub Desktop.

Select an option

Save renaudll/c2f8d79d27687655de35 to your computer and use it in GitHub Desktop.
Arch Linux Installation
#############################################################
# Installation (custom setup)
# https://wiki.archlinux.org/index.php/beginners'_guide
#
# For Rasberri Pi Installation:
# http://archlinuxarm.org/platforms/armv7/broadcom/raspberry-pi-2
#############################################################
# Reconfigure partition table & format
sgdisk --zap-all /dev/sda
gdisk /dev/sda
n
# Don't forget to create a +1M partition with ef02 type for grub in GPT
w
mkfs.ext4 /dev/sda1
# Bootstrap Arch Linux
mount /dev/sda1 /mnt
pacstrap -i /mnt base
genfstab -U -p /mnt >> /mnt/etc/fstab
arch-chroot /mnt /bin/bash
passwd
# Install grub
pacman -Sy grub
grub-install --target=i386-pc --recheck /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg
# We are done, rebooting!
exit
reboot
#
# Rasberry Pi specific configuration
#
# Remove alarm user (security risk)
userdel alarm
# Speed up mandb updates
# see: https://archlinuxarm.org/forum/viewtopic.php?t=10474&p=52419
pacman -Sy mandb-ondemand
#############################################################
# System configuration
#############################################################
# Configure locale
# see: https://wiki.archlinux.org/index.php/Locale
locale -a
vi /etc/local.gen
locale-gen
localectl set-locale LANG=en_US.UTF-8
# Perform a full system upgrade
pacman -Su
# Install base tools
pacman -Sy --needed sudo vim zsh git base-devel cmake wget htop python
# Intall fs packages
pacman -Sy --needed ntfs-3g exfat-utils dosfstools fuse-exfat nfs-utils
# Install bluetooth-related packages
pacman -Sy --needed bluez bluez-utils pulseaudio-bluetooth
sudo systemctl start bluetooth
sudo systemctl enable bluetooth
# Activate ftrim for SSD
sudo systemctl start fstrim.timer
sudo ssytemctl enable fstrim.timer
# Install pacaur
pacman -Sy --needed expac base-devel wget yajl
cd /tmp
wget https://aur.archlinux.org/cgit/aur.git/snapshot/cower.tar.gz
tar -xf cower.tar.gz
rm cower.tar.gz
cd cower
makepkg -i --skippgpcheck
cd ..
rm -rf cower
wget https://aur.archlinux.org/cgit/aur.git/snapshot/pacaur.tar.gz
tar -xf pacaur.tar.gz
rm pacaur.tar.gz
cd pacaur
makepkg -i
cd ..
rm -rf pacaur
#############################################################
# User configuration
#############################################################
# Create rll user
useradd -m -G users,wheel,lp -s /bin/bash rll
passwd rll
su - rll
# Set zsh as default shell
chsh -s $(which zsh)
# Install dotfiles
cd
git clone https://github.com/renaudll/dotfiles.git
dotfiles/install.sh
# Configure zsh
install oh-my-zsh-git
install powerline-fonts-git
#############################################################
# Additional system configuration
#############################################################
# Setup GUI (Base)
# src: https://wiki.archlinux.org/index.php/MATE#Graphical_log-in
# Note: Don't forget to install graphical driver if necessary!
pacman -Sy xorg-server xorg-xinit
# Setup GUI (mate)
#pacman -Sy mate mate-extra
#pacman -Sy lightdm-gtk-greeter gnome-icon-theme
#systemctl enable lightdm.service
# Setup GUI (gnome)
pacman -Sy --needed gnome gdm
# Fix issue with gdm and pulseaudio (prevent audio device switch when connecting to bluetooth)
# see: https://wiki.archlinux.org/index.php/Bluetooth_headset#Gnome_with_GDM
# Allow gnome extensions to be managed in chrome
# src: https://chrome.google.com/webstore/detail/gnome-shell-integration/gphhapmejobijbbhgpjhcjognlahblep?hl=en
pacaur -Sy chrome-gnome-shell-git
# Additional software
install google-chrome
install pidgin
install gparted ntfs-3g exfat-utils dosfstools fuse-exfat
install git
install tigervnc vino
install pamac-pacaur # gui for pacaur
install sublime-text
install gitkraken
install pycharm-professional # python development
install webstorm # javascript development
# Tweaks
# Fix SublimeText duplicate icon issue:
# Add the following line in /usr/share/applications/sublime-text.desktop
# StartupWMClass=sublime_text
# Skinning
install numix-icon-theme-circle # icon pack
# Install the following gnome extensions:
# - Dash to Dock
# - Coverflow Alt-Tab
# - TopIcon Plus
# - System Monitor
# Install the sublime-text package manager here: https://packagecontrol.io/installation
# Install and configure the following package:
# - gist
#############################################################
# Server configuration
#############################################################
# Setup dhcpcd
systemctl enable dhcpcd
# or NetworkManager (if you're tired of writing dhcpcd)
pacman -Sy networkmanager network-manager-applet
systemctl start networkmanager
systelctm enable networkmanager
#
# Setup share
#
# Setup autofs
pacman -Sy autofs
echo "/mnt /etc/autofs/auto.mnt --timeout 120" >> /etc/autofs/auto.master
echo "media -fstype=auto :/dev/sda1" >> /etc/autofs/auto.mnt
systemctl start autofs
systemctl enable autofs
# Setup share (samba)
pacman -Sy samba
cp /etc/samba/smb.conf.default /etc/samba/smb.conf
# todo: configure /etc/samba/smb.conf
systemctl start smbd
systemctl start nmbd
#
# Setup server
#
# Install Apache
pacman -Sy apache php-apache --noconfirm
chmod 777 /srv/http
# Install DokuWiki
pacman -Sy dokuwiki --noconfirm
echo "Include conf/extra/dokuwiki.conf" >> /etc/httpd/conf/httpd.conf
ln -s /usr/share/webapps/dokuwiki/ /srv/http/dokuwiki
systemctl enable httpd
systemctl restart httpd
# Configure httpd
#< #LoadModule mpm_event_module modules/mod_mpm_event.so
#< LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
#> LoadModule mpm_event_module modules/mod_mpm_event.so
#< LoadModule php5_module modules/libphp5.so
#< Include conf/extra/php5_module.conf
# Setup FTP
pacman -Sy vsftpd
# Configure FTP
# vim /etc/vsftpd.conf
systemctl enable vsftpd
systemctl start vsftpd
# Setup SVN (littlebobbygames)
# src: https://wiki.archlinux.org/index.php/Subversion_Setup#Create_a_Repository
# src: http://wiki.centos.org/HowTos/Subversion
pacman -Sy subversion
mkdir /srv/svn
#< LoadModule dav_module modules/mod_dav.so
#> #LoadModule dav_module modules/mod_dav.so
#< LoadModule dav_fs_module modules/mod_dav_fs.so
#< LoadModule dav_svn_module modules/mod_dav_svn.so
#< LoadModule authz_svn_module modules/mod_authz_svn.so
#> #LoadModule dav_fs_module modules/mod_dav_fs.so
echo 'SVNSERVE_ARGS="-r /srv/svn/littlebobbygames"' >> /etc/conf.d/svnserve
systemctl start svnserve
systemctl enable snvserve
#
# Setup media center
#
pacman Sy kodi # xbmc
# Make bluetoothctl work
# todo: bind to bluetooth device
# Ensure bluetooth is powered on by default:
vim /etc/udev/rules.d/10-local.rules
# Set bluetooth power up
ACTION=="add", KERNEL=="hci0", RUN+="/usr/bin/hciconfig hci0 up"
# Setup Transmission & Sonarr for rss feeds (torrent server)
pacman -Sy transmission-cli
systemctl start transmission
systemctl enable transmission
# edit /var/lib/transmission/.config/transmission-daemon/settings.json
# don't forget to stop the daemon before
ln -s /var/lib/transmission/Downloads /mnt/data/Downloads
pacaur -Sy sonarr
#############################################################
# DAW Configuration
#############################################################
install jack2-dbus
install alsa-utils # for speaker-test
install bitwig-studio
#
# Configure system for real time audio
# src: https://wiki.archlinux.org/index.php/Professional_audio#System_Configuration
# Add user to audio group
sudo usermode -a -G audio rll
# Install airwave-git
# src: https://github.com/phantom-code/airwave
install gcc-multilib cmake git wine qt5-base
install airwave-git
# Install wine 32 bit prefix and configure it.
# https://www.kvraudio.com/forum/viewtopic.php?f=259&t=415929&start=270
WINEPREFIX=~/.wine32 WINEARCH=win32 winecfg
# Copy the working d2d1.dll and add the overde in winecfg.
# 3e0a1bf9e17349a8392455845721f92f
(...)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment