Thursday, August 19, 2021

Reinstalling Archlinux on a old Laptop


 

Yesterday I accidentally run rm -rf /  because everybody makes mistakes. 

each step is written here:

1 - first memtest86 

2 - swap memories, test one memory slot each time, and test a new one memory module from another laptop that it's working. So in this part I figure out that my laptop was broken, so Nico borrow me an old laptop :'-( .

3 - UEFI, installing Archlinux on UEFI require use the pen-drive on UEFI mode. after boot on UEFI mode, I did a back up to the files on the /home directory and install the Operative System again. 

4 - first I already have the partition so, this part is not new. the only thing with this new laptop is that I have to do a new UEFI partition to the grub, my old laptop does not have UEFI mode, so the grub was installed in the BIOS MBR sort of.
 

After I did the new UEFI Archlinux partition with "cfdisk /dev/sda" change Type to UEFI system, and verify if the notebook has a the boot mode UEFI listing this directory:

 

ls -l /sys/firmware/efi/efivars

 

If the output show you a list of files! Bingo you are currently booting in UEFI mode.

In UEFI we need the partition table in this Disklabel "GPT", so we check with

fdisk -l if the partition table is type BIOS or GPT. the output should be like:

"Disklabel type: gpt"


Also used parted -l to fix an error that was show up when we execute "fdisk -l": 

"something that GPT partition was different from MBR partition"

"GPT PMBR size mismatch" something like that.

 To do that: I installed parted 

$pacman -S parted && parted -l /dev/sda

 

 

5 -  After that I formatted the partitions to do a fresh installation.

mkswap /dev/sda6

swapon /dev/sda6 

mkfs.ext4 /dev/sda5 => /root

mkfs.vfat -F32 /dev/sda7 => /boot/grub/efi

6 - preparing for the chroot

from general to specify 

mount /dev/sda5 /mnt

mkdir -p /mnt/boot/efi

mount /dev/sda7 /mnt/boot/efi

7 - using pacstrap to install base system

pacstrap /mnt base base-devel grub os-prober ntfs-3g networkmanager efibootmgr gvfs gvfs-afc dhcpcd vim linux-headers linux-firmware linux  netctl wpa_supplicant xf86-input-synaptics pavucontrol htop lshw meld transmission-gtk docker docker-compose gvfs-mtp xdg-user-dirs lightdm  xorg xorg-xinit gnome-keyring xorg-server xorg-server-common xf86-video-vesa xorg-font-util  ttf-dejavu opencl-nvidia dkms git terminator rsync go-tools cinnamon-desktop cinnamon gnome-terminal lightdm-gtk-greeter  pulseaudio  pulseaudio-alsa firefox vlc  gimp xfburn gedit gnome-system-monitor faenza-icon-theme smartmontools

 

(xorg is an alias and in this case I installed ALL :O, just in case).

 

At first I did the install of nvidia and nvidia-utils  nvidia-304, driver BUT  doesn't have the correct version of the drivers that I need. so I have to uninstall later to install the correct one.

 

Something to remember if you install nvidia-lts you need to install kernel-lts and header-lts, and re run mkinitcpio -p.

 

nvidia-xconfig to set Xorg configuration.  See Also nvidia-settings and nvidia-smi.

 

nouveau-dri  I tried to install the open source driver but was a failed, after many modprobe and rmprobe  with nouveau and nvidia and debuging with modinfo -p video, lshw -c video, so I  install the legacy driver from an AUR package with the tool "yay" is a client writen on golang, and is easy to use and install from Cli.

    Cinnamon package to see sections:

    $ pacman -Ql cinnamon | awk -F '[_.]' '/cs_.+\.py/ {print $2}'

 

8 - generar fstab

genfstab -pU /mnt >> /mnt/etc/fstab

 

9 - the chroot to make some configurations and installing the grub in the new uefi partition.

arch-chroot /mnt


10 - without  GUI, setting configuration files, service, and customizations:

    hostname

        echo "CoolName" >> /etc/hostname

   Timezone:
       ln -sf /usr/share/zoneinfo/America/Buenos_Aires  /etc/localtime
   Setting Locale:
       uncomment a line on this file "/etc/locale.gen" and run the command cli  $ locale-gen
   Setting keymap:
         localectl list-keymaps | grep -i us  (list all available keymaps)
         echo "KEYMAP=us" > /etc/vconsole.conf  (do the setting)
   Making grub config file:
         echo "GRUB_DISABLE_OS_PROBER=false" >> /etc/default/grub (edit /etc/default/grub)
         grub-install --efi-directory=/boot/efi --bootloader-id="Archlinux" --target=x86_64-efi --removable
         os-prober (testing if we have another OS like windows) 
         grub-mkconfig -o /boot/grub/grub.cfg
    Adding a new user to use with sudo:
        useradd -m -g users -G audio,lp,optical,video,wheel,games,power,scanner -s /bin/bash j3nnn1
        passwd j3nnn1 
    Installing nvidia driver via Yay: 
        - git clone https://aur.archlinux.org/yay.git
        - cd yay
        - makepkg -si (don't forget to add this user to sudoers file)
        - if you run without -i use pacman -U package.gz (optional)
        - yay -S nvidia-390xx-dkms 
        - yay -S google-chrome 
        - yay -S numix-gtk-theme 
    Setting  Time:
        - timedatectl set-ntp true. (only if you did previously the setting of timezone on the file: /etc/localtime)
        - timedatectl timesync-status
        - timedatectl status
    Related to Kernel:
        - mkinitcpio -P 
    Enable display manager and network manager and GUI:
        - systemctl enable lightdm
        - systemctl enable NetworkManager
        - systemctl isolate  graphical.target ( testing graphical UI, on next reboot will be dismiss this change) 
        - systemctl set-default multi-user.target (CLI)
        - systemctl set-default graphical.target (GUI) 
        - systemctl get-default 

11 - enable GUI.

     - systemctl set-default graphical.target (GUI) 

12 - disable GUI (troubleshooting).

     - systemctl set-default multi-user.target (CLI)

13 - testing with startx (xorg-xinit and xorg-apps should be installed)

       - edit file "~/.xinitrc".  

            vim ~/.xinitrc 

            OR

            echo "exec cinnamon-session" > ~/.xinitrc

       - from CLI execute: startx


And That's all. 

By now..

Sorry about  the Spanglish and grammatical errors.

14 - tools nvidia

is loaded nvidia driver?

dkms install --no-depmod nvidia/390.144 -k 5.15.3-arch1-1 && depmod 5.15.3-arch1-1

Logs

cat /var/log/Xorg.0.log

Blacklist noveau

caracas# cat /usr/lib/modprobe.d/nvidia-390xx-dkms.conf
blacklist nouveau 

When The Xorg Server API is not compatible with the driver:

caracas# cat /etc/X11/xorg.conf.d/20-server_flags.conf

Section "ServerFlags"
    Option "IgnoreABI" "1"
EndSection

cat /usr/lib/modprobe.d/nvidia-lts.conf

update nvidia driver with new API

 ..@TODO

References: 

https://wiki.archlinux.org/title/NVIDIA#Installation


gdm locked user.

vim /etc/security/faillock.conf

deny = 9999


No comments:

Post a Comment