Skip to content

Instantly share code, notes, and snippets.

@codemodify
Created November 25, 2019 23:35
Show Gist options
  • Select an option

  • Save codemodify/3634f69824e1ed52d9e38d1e580f92eb to your computer and use it in GitHub Desktop.

Select an option

Save codemodify/3634f69824e1ed52d9e38d1e580f92eb to your computer and use it in GitHub Desktop.

Revisions

  1. codemodify created this gist Nov 25, 2019.
    78 changes: 78 additions & 0 deletions Thinkpad-X1-CarbonGen7.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,78 @@

    # Arch Linux on Thinkpad X1 Carbon Gen 7 (i7-10710U)
    - Download the latest ISO from https://www.archlinux.org/download
    - `sudo dd if=archlinux-2019.11.01-x86_64.iso of=/dev/sda bs=4M status=progress oflag=sync`
    - Boot the ISO
    - IF and ONLY IF you have a 4k or some HiDPI screen and fonts are super super small
    - `ls /usr/share/kbd/consolefonts`
    - `setfont latarcyrheb-sun32`
    - `ls /sys/firmware/efi/efivars` verifies we booted in UEFI

    # Internet
    - `wifi-menu`
    - `ping google.com`
    - `timedatectl set-ntp true`
    - `pacman -Sy pacman-contrib`
    - `mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup`
    - `cat /etc/pacman.d/mirrorlist.backup | grep "United States" -A 1 | grep Server > /etc/pacman.d/mirrorlist.scan`
    - `rankmirrors -n 4 /etc/pacman.d/mirrorlist.scan > /etc/pacman.d/mirrorlist`
    - or `curl -s "https://www.archlinux.org/mirrorlist/?country=US&protocol=https&use_mirror_status=on" | sed -e 's/^#Server/Server/' -e '/^#/d' | rankmirrors -n 5 - | sudo tee /etc/pacman.d/mirrorlist`

    # Disk
    - `cfdisk /dev/nvme0n1`
    - Delete all existing
    - 512M - EFI
    - 32G - Linux Swap
    - Remaining - Linux Filesystem
    - `mkfs.fat /dev/nvme0n1p1`
    - `mkfswap /dev/nvme0n1p2`
    - `swapon /dev/nvme0n1p2`
    - `mkfs.ext4 /dev/nvme0n1p3`

    # Mount
    - `mount /dev/nvme0n1p3 /mnt`
    - `mkdir /mnt/boot`
    - `mount /dev/nvme0n1p1 /mnt/boot`

    # Install Arch Linux Core
    - `pacstrap /mnt base base-devel linux linux-firmware`
    - `genfstab -L /mnt >> /mnt/etc/fstab`

    # Configure Arch Linux Core
    - `arch-chroot /mnt`
    - `pacman -S vim git`
    - `vim /etc/pacman.conf`
    - enable Color and Multilib
    - `echo en_US.UTF-8 >> /etc/locale.gen`
    - `echo LANG=en_US.UTF-8 > /etc/locale.conf`
    - `export LANG=en_US.UTF-8`
    - `echo KEYMAP=us > /etc/vconsole.conf`
    - `rm /etc/localtime `
    - `ln -s /usr/share/zoneinfo/US/Pacific /etc/localtime`
    - `hwclock --systohc --utc`
    - `echo arch-box > /etc/hostname`
    - `echo "127.0.0.1 localhost" > /etc/hosts`
    - `echo "::1 localhost" >> /etc/hosts`
    - `echo "127.0.1.1 arch-box.localdomain arch-box" >> /etc/hosts`
    - `useradd -mg users -G wheel -s /bin/bash user`
    - `passwd user`
    - `bootctl --path=/boot install`
    - `mkinitcpio -p linux`
    - `cp /usr/share/systemd/bootctl/loader.conf /boot/loader/`
    - `cp /usr/share/systemd/bootctl/arch.conf /boot/loader/entries/`
    - `blkid /dev/nvme0n1p3 >> /boot/loader/entries/arch.conf`
    - `vim /boot/loader/entries/arch.conf`
    - `vi /etc/sudoers`

    # Install Desktop Environment
    - `pacman -S gnome gnome-extra`
    - `systemctl enable NetworkManager`
    - `systemctl enable gdm`
    - `pacman -S xterm`

    # yay
    git clone https://aur.archlinux.org/yay.git
    cd yay
    makepkg -si
    yay --noeditmenu --nodiffmenu --nocleanmenu --answeredit None --answerclean All --answerdiff None --save
    echo Color >> /etc/pacman.conf