GithubHelp home page GithubHelp logo

ha10id / artix-installation Goto Github PK

View Code? Open in Web Editor NEW

This project forked from fleetingbytes/artix-installation

0.0 0.0 0.0 28 KB

Artix linux installation process, later to be used to improve the Artix wiki or to create a pdf manual

artix-installation's Introduction

artix-installation

Artix linux installation process, later to be used to improve the Artix wiki or to create a pdf manual

Artix Live Environment

Swap

If Artix live environment finds a swap partition when it is booting, it will automatically use it. You will need to turn off swap by swapoff if you want to modify or delete the swap partition

Partition disks

cfdisk /dev/sda

Create partitions as needed.

Partition types

Boot partition must be of type EFI System. Swap partition must be of type Linux swap. All other partitions should be Linux filesystem.

Format disks

Boot partition has to be formatted with FAT32. It cannot be labeled (FAT file system does not support labels):

mkfs.fat -F32 /dev/sda1

Swap partition is formatted with mkswap. Use -L SWAP to label it:

mkswap -L SWAP /dev/sda2

All other partitions should be ext4. Label them with parameter -L <name>:

mkfs.ext4 -L HOME /dev/sda3
mkfs.ext4 -L ROOT /dev/sda4
mkfs.ext4 -L DATA /dev/sdb1

You can check your disks and partitions with lsblk (list block) This example setup was generated by lsblk -o NAME,PARTTYPENAME,FSTYPE,LABEL,TYPE,MOUNTPOINT:

NAME   PARTTYPENAME     FSTYPE LABEL   SIZE TYPE MOUNTPOINT
sda                                  238.5G disk 
├─sda1 EFI System       vfat           260M part /boot
├─sda2 Linux swap       swap   SWAP     20G part [SWAP]
├─sda3 Linux filesystem ext4   HOME     20G part /home
└─sda4 Linux filesystem ext4   ROOT  198.2G part /
sdb                                  698.7G disk 
└─sdb1 Linux filesystem ext4   DATA  698.7G part /data
sr0                                   1024M rom  

Other convenient opstion is lsblk -f, or use blkid

Mount partitions

You will have to create directories for the non-root partitions.

mkdir /mnt/boot
mkdir /mnt/home
mkdir /mnt/data

If you have freshly created partitions, you can use their labels when mounting them. Swap partition is not mounted. Just activate it with swapon or deactivate with swapoff.

swapon /dev/disk/by-label/SWAP
mount /dev/disk/by-label/ROOT /mnt
mount /dev/disk/by-label/HOME /mnt/home
mount /dev/sda1 /mnt/boot
mount /dev/disk/by-label/DATA /mnt/data

If the partitions were not created in this session, they have to be mounted by their device names, mount /dev/sda1 /mnt/boot etc.

Connect to the internet

A working internet connection is required and assumed. A wired connection is setup automatically, if found. Wireless ones must be configured by the user. Verify your connection and update the repositories:

ping 8.8.8.8
pacman -Syy

Install base system

Use basestrap to install the base and optionally the base-devel package groups and your preferred init (currently available: openrc, runit, and s6):

basestrap /mnt base base-devel runit elogind-runit

Install a kernel

Artix provides linux-lts and linux kernels. It is possible to experiment with other kernels, e.g. (-ck, -pf, -zen, etc.). Linux-firmware is recommended for recognizing devices (like network card)

basestrap /mnt linux linux-firmware

Generate the File System Table

Use fstabgen to generate /etc/fstab, use -U for UUIDs or -L for partition labels:

fstabgen -L /mnt > /mnt/etc/fstab

check and verify /etc/fstab. See ArchWiki/fstab. It could look like this:

# /dev/sda4 UUID=16211fe2-0927-4853-af22-b701645183fd
LABEL=ROOT          	/         	ext4      	rw,relatime	0 1

# /dev/sda3 UUID=f157bfe7-62f4-42b9-af5d-c1541758a11b
LABEL=HOME          	/home     	ext4      	rw,relatime	0 2

# /dev/sda1 UUID=A891-66B5
/dev/sda1           	/boot     	vfat      	rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro	0 2

# /dev/sdb1 UUID=0a45d2db-2042-4e2e-a463-a5aef98795e3
LABEL=DATA          	/data     	ext4      	rw,relatime	0 2

# /dev/sda2 UUID=8a8c0b83-8b6f-4fea-bd4a-905e7b51ebb4
LABEL=SWAP          	none      	swap      	defaults  	0 0

Base System Configuration

The base system configuration is done from the future root location. This is especially practical for the boot loader configuration and installation. Therefore change to the new root location: artix-chroot /mnt

Set the system clock

Browse regions and cities in /usr/share/zoneinfo/. Then create a symbolic link to your region and city as /etc/localtime.

ln -sf /usr/share/zoneinfo/<Region>/<City> /etc/localtime

Run hwclock to generate /etc/adjtime:

hwclock --systohc

Localization

Install a text editor of your choice (let's use vim here) and edit /etc/locale.gen, uncommenting the locales you desire:

pacman -Sy vim
vim /etc/locale.gen

To set the locale systemwide, create or edit /etc/locale.conf (which is sourced by /etc/profile) or /etc/bash/bashrc.d/artix.bashrc or /etc/bash/bashrc.d/local.bashrc; user-specific changes may be made to their respective ~/.bashrc, for example:

export LANG="en_US.UTF-8"
export LC_COLLATE="C"

Example /etc/locale.conf:

LANG=en_US.UTF-8
LC_TIME=en_DK.UTF-8
LC_PAPER=de_DE.UTF-8
LC_COLLATE=C

For more info see ArchWiki/Locale.

Boot Loader

First, install grub and os-prober (for detecting other installed operating systems) and EFI boot manager:

pacman -S grub os-prober efibootmgr

Modify Grub's default settings in /etc/default/grub or the configuration generating scripts in /etc/grub.d/. See ArchWiki/GRUB.

Here I added random.trust_cpu=on (Arch Forums post 1 and 2) and the UUID of the swap partition to resume the system from hiberation. Also I let highlight the last used system to boot (GRUB_DEFAULT=saved, GRUB_SAVEDEFAULT=true):

# GRUB boot loader configuration

GRUB_DEFAULT=saved
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Artix"
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 random.trust_cpu=on resume=UUID=8a8c0b83-8b6f-4fea-bd4a-905e7b51ebb4 quiet"
GRUB_CMDLINE_LINUX=""

# Preload both GPT and MBR modules so that they are not missed
GRUB_PRELOAD_MODULES="part_gpt part_msdos"

# Uncomment to enable booting from LUKS encrypted devices
#GRUB_ENABLE_CRYPTODISK=y

# Set to 'countdown' or 'hidden' to change timeout behavior,
# press ESC key to display menu.
GRUB_TIMEOUT_STYLE=menu

# Uncomment to use basic console
GRUB_TERMINAL_INPUT=console

# Uncomment to disable graphical terminal
#GRUB_TERMINAL_OUTPUT=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
GRUB_GFXMODE=auto

# Uncomment to allow the kernel use the same resolution used by grub
GRUB_GFXPAYLOAD_LINUX=keep

# Uncomment if you want GRUB to pass to the Linux kernel the old parameter
# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY=true

# Uncomment and set to the desired menu colors.  Used by normal and wallpaper
# modes only.  Entries specified as foreground/background.
GRUB_COLOR_NORMAL="light-blue/black"
GRUB_COLOR_HIGHLIGHT="light-cyan/blue"

# Uncomment one of them for the gfx desired, a image background or a gfxtheme
#GRUB_BACKGROUND="/path/to/wallpaper"
#GRUB_THEME="/path/to/gfxtheme"

# Uncomment to get a beep at GRUB start
#GRUB_INIT_TUNE="480 440 1"

# Uncomment to make GRUB remember the last selection. This requires
# setting 'GRUB_DEFAULT=saved' above.
GRUB_SAVEDEFAULT="true"

Install grub for UEFI boot systems:

grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=grub

For BIOS boot systems refer to ArtixWiki/Installation.

Create grub config

grub-mkconfig -o /boot/grub/grub.cfg

It is paramount that /boot contains initramfs-linux-fallback.img, initramfs-linux.img, vmlinuz-linux otherwise it will not boot. Here is my tree /boot:

/boot
├── EFI
│   └── grub
│       └── grubx64.efi
├── grub
│   ├── fonts
│   │   └── unicode.pf2
│   ├── grub.cfg
│   ├── grubenv
│   ├── themes
│   │   └── starfield
│   │       ├── COPYING.CC-BY-SA-3.0
│   │       ├── README
│   │       ├── blob_w.png
│   │       ├── boot_menu_c.png
│   │       ├── boot_menu_e.png
│   │       ├── boot_menu_n.png
│   │       ├── boot_menu_ne.png
│   │       ├── boot_menu_nw.png
│   │       ├── boot_menu_s.png
│   │       ├── boot_menu_se.png
│   │       ├── boot_menu_sw.png
│   │       ├── boot_menu_w.png
│   │       ├── dejavu_10.pf2
│   │       ├── dejavu_12.pf2
│   │       ├── dejavu_14.pf2
│   │       ├── dejavu_16.pf2
│   │       ├── dejavu_bold_14.pf2
│   │       ├── slider_c.png
│   │       ├── slider_n.png
│   │       ├── slider_s.png
│   │       ├── starfield.png
│   │       ├── terminal_box_c.png
│   │       ├── terminal_box_e.png
│   │       ├── terminal_box_n.png
│   │       ├── terminal_box_ne.png
│   │       ├── terminal_box_nw.png
│   │       ├── terminal_box_s.png
│   │       ├── terminal_box_se.png
│   │       ├── terminal_box_sw.png
│   │       ├── terminal_box_w.png
│   │       └── theme.txt
│   └── x86_64-efi
│       ├── acpi.mod
│       ├── adler32.mod
│       ├── affs.mod
│       ├── afs.mod
│       ├── ahci.mod
│       ├── all_video.mod
│       ├── aout.mod
│       ├── appleldr.mod
│       ├── archelp.mod
│       ├── at_keyboard.mod
│       ├── ata.mod
│       ├── backtrace.mod
│       ├── bfs.mod
│       ├── bitmap.mod
│       ├── bitmap_scale.mod
│       ├── blocklist.mod
│       ├── boot.mod
│       ├── boottime.mod
│       ├── bsd.mod
│       ├── bswap_test.mod
│       ├── btrfs.mod
│       ├── bufio.mod
│       ├── cacheinfo.mod
│       ├── cat.mod
│       ├── cbfs.mod
│       ├── cbls.mod
│       ├── cbmemc.mod
│       ├── cbtable.mod
│       ├── cbtime.mod
│       ├── chain.mod
│       ├── cmdline_cat_test.mod
│       ├── cmp.mod
│       ├── cmp_test.mod
│       ├── command.lst
│       ├── configfile.mod
│       ├── core.efi
│       ├── cpio.mod
│       ├── cpio_be.mod
│       ├── cpuid.mod
│       ├── crc64.mod
│       ├── crypto.lst
│       ├── crypto.mod
│       ├── cryptodisk.mod
│       ├── cs5536.mod
│       ├── ctz_test.mod
│       ├── date.mod
│       ├── datehook.mod
│       ├── datetime.mod
│       ├── disk.mod
│       ├── diskfilter.mod
│       ├── div.mod
│       ├── div_test.mod
│       ├── dm_nv.mod
│       ├── echo.mod
│       ├── efi_gop.mod
│       ├── efi_uga.mod
│       ├── efifwsetup.mod
│       ├── efinet.mod
│       ├── ehci.mod
│       ├── elf.mod
│       ├── eval.mod
│       ├── exfat.mod
│       ├── exfctest.mod
│       ├── ext2.mod
│       ├── extcmd.mod
│       ├── f2fs.mod
│       ├── fat.mod
│       ├── file.mod
│       ├── fixvideo.mod
│       ├── font.mod
│       ├── fs.lst
│       ├── fshelp.mod
│       ├── functional_test.mod
│       ├── gcry_arcfour.mod
│       ├── gcry_blowfish.mod
│       ├── gcry_camellia.mod
│       ├── gcry_cast5.mod
│       ├── gcry_crc.mod
│       ├── gcry_des.mod
│       ├── gcry_dsa.mod
│       ├── gcry_idea.mod
│       ├── gcry_md4.mod
│       ├── gcry_md5.mod
│       ├── gcry_rfc2268.mod
│       ├── gcry_rijndael.mod
│       ├── gcry_rmd160.mod
│       ├── gcry_rsa.mod
│       ├── gcry_seed.mod
│       ├── gcry_serpent.mod
│       ├── gcry_sha1.mod
│       ├── gcry_sha256.mod
│       ├── gcry_sha512.mod
│       ├── gcry_tiger.mod
│       ├── gcry_twofish.mod
│       ├── gcry_whirlpool.mod
│       ├── geli.mod
│       ├── gettext.mod
│       ├── gfxmenu.mod
│       ├── gfxterm.mod
│       ├── gfxterm_background.mod
│       ├── gfxterm_menu.mod
│       ├── gptsync.mod
│       ├── grub.efi
│       ├── gzio.mod
│       ├── halt.mod
│       ├── hashsum.mod
│       ├── hdparm.mod
│       ├── hello.mod
│       ├── help.mod
│       ├── hexdump.mod
│       ├── hfs.mod
│       ├── hfsplus.mod
│       ├── hfspluscomp.mod
│       ├── http.mod
│       ├── iorw.mod
│       ├── iso9660.mod
│       ├── jfs.mod
│       ├── jpeg.mod
│       ├── keylayouts.mod
│       ├── keystatus.mod
│       ├── ldm.mod
│       ├── legacy_password_test.mod
│       ├── legacycfg.mod
│       ├── linux.mod
│       ├── linux16.mod
│       ├── loadbios.mod
│       ├── loadenv.mod
│       ├── loopback.mod
│       ├── ls.mod
│       ├── lsacpi.mod
│       ├── lsefi.mod
│       ├── lsefimmap.mod
│       ├── lsefisystab.mod
│       ├── lsmmap.mod
│       ├── lspci.mod
│       ├── lssal.mod
│       ├── luks.mod
│       ├── lvm.mod
│       ├── lzopio.mod
│       ├── macbless.mod
│       ├── macho.mod
│       ├── mdraid09.mod
│       ├── mdraid09_be.mod
│       ├── mdraid1x.mod
│       ├── memdisk.mod
│       ├── memrw.mod
│       ├── minicmd.mod
│       ├── minix.mod
│       ├── minix2.mod
│       ├── minix2_be.mod
│       ├── minix3.mod
│       ├── minix3_be.mod
│       ├── minix_be.mod
│       ├── mmap.mod
│       ├── moddep.lst
│       ├── modinfo.sh
│       ├── morse.mod
│       ├── mpi.mod
│       ├── msdospart.mod
│       ├── mul_test.mod
│       ├── multiboot.mod
│       ├── multiboot2.mod
│       ├── nativedisk.mod
│       ├── net.mod
│       ├── newc.mod
│       ├── nilfs2.mod
│       ├── normal.mod
│       ├── ntfs.mod
│       ├── ntfscomp.mod
│       ├── odc.mod
│       ├── offsetio.mod
│       ├── ohci.mod
│       ├── part_acorn.mod
│       ├── part_amiga.mod
│       ├── part_apple.mod
│       ├── part_bsd.mod
│       ├── part_dfly.mod
│       ├── part_dvh.mod
│       ├── part_gpt.mod
│       ├── part_msdos.mod
│       ├── part_plan.mod
│       ├── part_sun.mod
│       ├── part_sunpc.mod
│       ├── partmap.lst
│       ├── parttool.lst
│       ├── parttool.mod
│       ├── password.mod
│       ├── password_pbkdf2.mod
│       ├── pata.mod
│       ├── pbkdf2.mod
│       ├── pbkdf2_test.mod
│       ├── pcidump.mod
│       ├── pgp.mod
│       ├── play.mod
│       ├── png.mod
│       ├── priority_queue.mod
│       ├── probe.mod
│       ├── procfs.mod
│       ├── progress.mod
│       ├── raid5rec.mod
│       ├── raid6rec.mod
│       ├── random.mod
│       ├── rdmsr.mod
│       ├── read.mod
│       ├── reboot.mod
│       ├── regexp.mod
│       ├── reiserfs.mod
│       ├── relocator.mod
│       ├── romfs.mod
│       ├── scsi.mod
│       ├── search.mod
│       ├── search_fs_file.mod
│       ├── search_fs_uuid.mod
│       ├── search_label.mod
│       ├── serial.mod
│       ├── setjmp.mod
│       ├── setjmp_test.mod
│       ├── setpci.mod
│       ├── sfs.mod
│       ├── shift_test.mod
│       ├── shim_lock.mod
│       ├── signature_test.mod
│       ├── sleep.mod
│       ├── sleep_test.mod
│       ├── spkmodem.mod
│       ├── squash4.mod
│       ├── strtoull_test.mod
│       ├── syslinuxcfg.mod
│       ├── tar.mod
│       ├── terminal.lst
│       ├── terminal.mod
│       ├── terminfo.mod
│       ├── test.mod
│       ├── test_blockarg.mod
│       ├── testload.mod
│       ├── testspeed.mod
│       ├── tftp.mod
│       ├── tga.mod
│       ├── time.mod
│       ├── tpm.mod
│       ├── tr.mod
│       ├── trig.mod
│       ├── true.mod
│       ├── udf.mod
│       ├── ufs1.mod
│       ├── ufs1_be.mod
│       ├── ufs2.mod
│       ├── uhci.mod
│       ├── usb.mod
│       ├── usb_keyboard.mod
│       ├── usbms.mod
│       ├── usbserial_common.mod
│       ├── usbserial_ftdi.mod
│       ├── usbserial_pl2303.mod
│       ├── usbserial_usbdebug.mod
│       ├── usbtest.mod
│       ├── verifiers.mod
│       ├── video.lst
│       ├── video.mod
│       ├── video_bochs.mod
│       ├── video_cirrus.mod
│       ├── video_colors.mod
│       ├── video_fb.mod
│       ├── videoinfo.mod
│       ├── videotest.mod
│       ├── videotest_checksum.mod
│       ├── wrmsr.mod
│       ├── xfs.mod
│       ├── xnu.mod
│       ├── xnu_uuid.mod
│       ├── xnu_uuid_test.mod
│       ├── xzio.mod
│       ├── zfs.mod
│       ├── zfscrypt.mod
│       ├── zfsinfo.mod
│       └── zstd.mod
├── initramfs-linux-fallback.img
├── initramfs-linux.img
└── vmlinuz-linux

7 directories, 314 files

Add users

First, set the root passwd:

passwd

Second, create a regular user and password:

useradd -m user
passwd user

Network Configuration

Create a hostname (the network name of the computer), see ArchWiki/hostname:

echo coolhostname > /etc/hostname

Install the DHCP client daemon:

pacman -S dhcpcd

Tell Runit about it:

ln -s /etc/runit/sv/dhcpcd /etc/runit/runsvdir/default/

Setup /etc/hosts, see ArchWiki/Domain_name_resolution. Here is an example (columns divided by tabs):

# Static table lookup for hostnames.
# See hosts(5) for details.
127.0.0.1	localhost
::1	localhost
127.0.1.1	lappi.localdomain	lappi

For wireless netowrking, install wpa_supplicant. It contains the main program wpa_supplicant, the passphrase tool wpa_passphrase, and the text front-end wpa_cli.

pacman -S wpa_supplicant

Follow instructions in ArchWiki/Network_configuration/Wireless and then in ArchWiki/Wpa_supplicant. It probably boils down to this:

Presuming the WiFi card is on PCI, list all PCI devides, find it there as Network controller, kernel module iwlwifi: lspci -k

Also check the output of the ip link command to see if a wireless interface was created, usually the interface is named wlp2s0 or wlan0:

Then bring the interface up with:

ip link set wlan0 up

If this failes because of RF-kill, try rfkill list all and then unblock the Wireless LAN according to its number (0, 1, 2, ...) rfkill unblock 1.

Now use a network manager to establish a connection. In our case we are using wpa_supplicant. In order to use wpa_cli, a control interface must be specified for wpa_supplicant, and it must be given the rights to update the configuration. Do this by creating a minimal configuration file /etc/wpa_supplicant/wpa_supplicant.conf:

ctrl_interface=/run/wpa_supplicant
update_config=1

Now, assuming your interface is wlan0, start wpa_supplicant with:

wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf

At this point run:

wpa_cli

This will present an interactive prompt (>), which has tab completion and descriptions of completed commands.

> scan
OK
<3>CTRL-EVENT-SCAN-RESULTS
> scan_results
bssid / frequency / signal level / flags / ssid
00:00:00:00:00:00 2462 -49 [WPA2-PSK-CCMP][ESS] MYSSID
11:11:11:11:11:11 2437 -64 [WPA2-PSK-CCMP][ESS] ANOTHERSSID

To associate with MYSSID, add the network, set the credentials and enable it:

> add_network
0
> set_network 0 ssid "MYSSID"
> set_network 0 psk "passphrase"
> enable_network 0
<2>CTRL-EVENT-CONNECTED - Connection to 00:00:00:00:00:00 completed (reauth) [id=0 id_str=]

Continue adding your networks. Each time you type add_network, the network ID will count up: 0, 1, 2, .... Finally save this network in the configuration file and quit wpa_cli:

> save_config
OK
> quit

The /etc/wpa_supplicant/wpa_supplicant.conf should be now updated with SSIDs and passwords. However, it is safer to connect using the PSK passphrase. wpa_passphrase is a command line tool which generates the minimal configuration needed by wpa_supplicant. For example:

wpa_passphrase MYSSID passphrase
network={
    ssid="MYSSID"
    #psk="passphrase"
    psk=59e0d07fa4c7741797a4e394f38a5c321e3bed51d54ad5fcbd3f84bc7415d73d
}

You can use this to append the output of wpa_passphrase to /etc/wpa_supplicant/wpa_supplicant.conf and then edit out the entries created by wpa_cli and delete the commented human-readable password lines from the appended wpa_passphrase outputs.

Once association is complete, you must obtain an IP address, for example, using dhcpcd ArchWiki/Dhcpcd.

Tell Runit about wpa_supplicant to make it start automatically:

ln -s /etc/runit/sv/wpa_supplicant /etc/runit/runsvdir/default/

Reboot the system

Exit chroot environment:

exit

Unmount drives:

umount -R /mnt

Reboot:

reboot

If everything was right, system will boot and have a wireless internet connection.

Post-Installation Configuration

Change Default Editor For Visudo

Temporarily change the editor of visudo to vim:

export EDITOR="vim"

run visudo to edit the /etc/sudoers file and add the following lines:

# Reset environment by default:
Defaults	env_reset
# Set default EDITOR to vim, and do not allow visudo to use EDITOR/VISUAL.
Defaults	editor=/usr/bin/vim, !env_editor

also allow wheel group to run commands:

# Let users of the "wheel" group run commands.
%wheel ALL=(ALL) ALL

Log everything a user does

add this to /etc/pam.d/system-auth

# log every command executed by a user
session    required                    pam_tty_audit.so     enable=*

and then enable auditd as a service. auditd should already be installed in /usr/bin/auditd.

sudo mkdir /etc/runit/sv/auditd
sudo vim /etc/runit/sv/auditd/run

The run file should have the following content

#!/bin/sh
exec 2>&1
exec /usr/bin/auditd

And create a symbolic link for runit:

sudo ln -s /etc/runit/sv/auditd /run/runit/service/auditd

Install Ulogd2

sudo pacman -S ulogd

and run it as a service, analogous to auditd above. Create a simple run file and tell runit about it.

SSH Server

Edit /etc/ssh/sshd_config Set a non-default port Port <number> Disallow Password authentication: PasswordAuthentication no Disable interactive password input (e.g. by keyboard): KbdInteractiveAuthentication no Use PAM UsePAM yes

nftables

Nftables is the successor of iptables

X.org

Install xorg. there's an undergoing cleanup which leads to problems currently (2020-01) and can be resolved by ignoring xorg-server-xdmx:

pacman -S xorg --ignore xorg-server-xdmx

Graphics Card

I have a legacy nvidia card Geforce GTX 675M which is not supported by nvidia closed-source drivers. I cannot use the normal nvidia legacy drivers nvidia-390xx because Artix uses a custom kernel. Therefore I must install nvidia-390xx-dkms which can adapt to custom kernels.

nvidia-390xx-dkms and nvidia-390xx-utils is now newly in [galaxy-gremlins], thanks alium, so we need to uncomment this in our /etc/pacman.conf:

[galaxy-gremlins]
Include = /etc/pacman.d/mirrorlist

Also we need linux-headers:

pacman -S linux-headers
pacman -S nvidia-390xx-dkms nvidia-390xx-settings nvidia-390xx-utils

The dkms drivers are built for the custom kernel everytime the kernel gets reinstalled (thanks to ArchWiki/Pacman#hooks). That's why we reinstall the kernel:

pacman -S linux

After the kernel reinstallation the system needs to be restarted. Before restart, uname -r still reports the old kernel version for which the nvidia drivers were not built. After reboot uname -r will report the new kernel version and the drivers will work with it.

The nvidia drivers have a configuration tool which creates a primitive configuration file in /etc/X11/xorg.conf which can be used to create the real configuration files in /etc/X11/xorg.conf.d/ (or a custom-set directory). Run the nvidia configuration:

nvidia-xconfig --xconfig=/root/xorg.conf.new

X.org Configuration

X.org is configured using an alphabetically sorted series of configuration files in /etc/X11/xorg.conf.d/, e.g. 10-server.conf 20-nvidia.conf 30-monitor.conf 40-modules.conf. The configuration data are distributed among them. The complete configuration data may look like this:

# cat /etc/X11/xorg.conf.d/*
# File 10-server.conf
Section "ServerLayout"
    Identifier     "Manually configured"
    Screen         "Laptop Screen"
    InputDevice    "Mouse0" "CorePointer"
    InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "InputDevice"
	Identifier  "Keyboard0"
	Driver      "kbd"
EndSection

Section "InputDevice"
	Identifier  "Mouse0"
	Driver      "mouse"
	Option	    "Protocol" "auto"
	Option	    "Device" "/dev/input/mice"
	Option	    "ZAxisMapping" "4 5 6 7"
EndSection

# File 20-nvidia.conf
Section "Device"
    Identifier     "Nvidia Card"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
EndSection

# File 30-monitor.conf
Section "Monitor"
    Identifier     "Laptop LCD"
    VendorName     "Samsung"
    DisplaySize    381 215
EndSection

Section "Screen"
    Identifier     "Laptop Screen"
    Device         "Nvidia Card"
    Monitor        "Laptop LCD"
    DefaultDepth    24
    SubSection     "Display"
        Modes       "1920x1080"
        Depth       24
    EndSubSection
EndSection

# File 40-modules.conf
Section "Module"
    Load           "glx"
EndSection

Initialize X

If the graphics card drivers were installed correctly, X should initialize flawlessly:

xinit

The X GUI can be left by jumping back to tty1 (press Ctrl-Alt-F1). The running X process can be aborted (Ctrl-C). /var/log/Xorg.0.log should show a successful loading of the graphics card drivers, e.g. this:

[  2739.966] (WW) Failed to open protocol names file lib/xorg/protocol.txt
[  2739.966]
X.Org X Server 1.20.8
X Protocol Version 11, Revision 0
[  2739.968] Build Operating System: Linux Artix Linux
[  2739.969] Current Operating System: Linux lappi 5.6.6-artix1-1 #1 SMP PREEMPT Tue, 21 Apr 2020 13:54:16 +0000 x86_64
[  2739.969] Kernel command line: BOOT_IMAGE=/vmlinuz-linux root=UUID=16211fe2-0927-4853-af22-b701645183fd rw loglevel=3 random.trust_cpu=on resume=UUID=8a8c0b83-8b6f-4fea-bd4a-905e7b51ebb4 quiet
[  2739.970] Build Date: 30 March 2020  02:12:50PM
[  2739.971] 
[  2739.971] Current version of pixman: 0.38.4
[  2739.972] 	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
[  2739.972] Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[  2739.974] (==) Log file: "/var/log/Xorg.0.log", Time: Fri Apr 24 11:08:51 2020
[  2739.975] (==) Using config directory: "/etc/X11/xorg.conf.d"
[  2739.975] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[  2739.975] (==) ServerLayout "Manually configured"
[  2739.975] (**) |-->Screen "Laptop Screen" (0)
[  2739.975] (**) |   |-->Monitor "Laptop LCD"
[  2739.975] (**) |   |-->Device "Nvidia Card"
[  2739.976] (**) |-->Input Device "Mouse0"
[  2739.976] (**) |-->Input Device "Keyboard0"
[  2739.976] (==) Automatically adding devices
[  2739.976] (==) Automatically enabling devices
[  2739.976] (==) Automatically adding GPU devices
[  2739.976] (==) Automatically binding GPU devices
[  2739.976] (==) Max clients allowed: 256, resource mask: 0x1fffff
[  2739.976] (WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/misc".
[  2739.976] 	Entry deleted from font path.
[  2739.976] 	(Run 'mkfontdir' on "/usr/share/fonts/misc").
[  2739.976] (WW) The directory "/usr/share/fonts/TTF" does not exist.
[  2739.976] 	Entry deleted from font path.
[  2739.976] (WW) The directory "/usr/share/fonts/OTF" does not exist.
[  2739.976] 	Entry deleted from font path.
[  2739.976] (WW) The directory "/usr/share/fonts/Type1" does not exist.
[  2739.976] 	Entry deleted from font path.
[  2739.976] (==) FontPath set to:
	/usr/share/fonts/100dpi,
	/usr/share/fonts/75dpi
[  2739.976] (==) ModulePath set to "/usr/lib/xorg/modules"
[  2739.976] (WW) Hotplugging is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled.
[  2739.976] (WW) Disabling Mouse0
[  2739.976] (WW) Disabling Keyboard0
[  2739.976] (II) Module ABI versions:
[  2739.976] 	X.Org ANSI C Emulation: 0.4
[  2739.976] 	X.Org Video Driver: 24.1
[  2739.976] 	X.Org XInput driver : 24.1
[  2739.976] 	X.Org Server Extension : 10.0
[  2739.977] (--) using VT number 7

[  2739.977] (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration
[  2739.977] (II) xfree86: Adding drm device (/dev/dri/card0)
[  2739.978] (**) OutputClass "nvidia" ModulePath extended to "/usr/lib/nvidia/xorg,/usr/lib/xorg/modules,/usr/lib/xorg/modules"
[  2739.979] (--) PCI:*(1@0:0:0) 10de:1212:144d:c0d0 rev 161, Mem @ 0xf6000000/16777216, 0xec000000/67108864, 0xf0000000/33554432, I/O @ 0x0000e000/128, BIOS @ 0x????????/131072
[  2739.979] (WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
[  2739.979] (II) "glx" will be loaded. This was enabled by default and also specified in the config file.
[  2739.979] (II) LoadModule: "glx"
[  2739.979] (II) Loading /usr/lib/nvidia/xorg/libglx.so
[  2739.982] (II) Module glx: vendor="NVIDIA Corporation"
[  2739.982] 	compiled for 4.0.2, module version = 1.0.0
[  2739.982] 	Module class: X.Org Server Extension
[  2739.982] (II) NVIDIA GLX Module  390.132  Fri Nov  1 04:00:46 PDT 2019
[  2739.982] (II) LoadModule: "nvidia"
[  2739.982] (II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so
[  2739.982] (II) Module nvidia: vendor="NVIDIA Corporation"
[  2739.982] 	compiled for 4.0.2, module version = 1.0.0
[  2739.982] 	Module class: X.Org Video Driver
[  2739.982] (II) NVIDIA dlloader X Driver  390.132  Fri Nov  1 03:36:28 PDT 2019
[  2739.982] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
[  2739.983] (II) Loading sub module "fb"
[  2739.983] (II) LoadModule: "fb"
[  2739.984] (II) Loading /usr/lib/xorg/modules/libfb.so
[  2739.984] (II) Module fb: vendor="X.Org Foundation"
[  2739.984] 	compiled for 1.20.8, module version = 1.0.0
[  2739.984] 	ABI class: X.Org ANSI C Emulation, version 0.4
[  2739.984] (II) Loading sub module "wfb"
[  2739.984] (II) LoadModule: "wfb"
[  2739.984] (II) Loading /usr/lib/xorg/modules/libwfb.so
[  2739.984] (II) Module wfb: vendor="X.Org Foundation"
[  2739.984] 	compiled for 1.20.8, module version = 1.0.0
[  2739.984] 	ABI class: X.Org ANSI C Emulation, version 0.4
[  2739.984] (II) Loading sub module "ramdac"
[  2739.984] (II) LoadModule: "ramdac"
[  2739.984] (II) Module "ramdac" already built-in
[  2739.986] (**) NVIDIA(0): Depth 24, (--) framebuffer bpp 32
[  2739.986] (==) NVIDIA(0): RGB weight 888
[  2739.986] (==) NVIDIA(0): Default visual is TrueColor
[  2739.986] (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
[  2739.986] (II) Applying OutputClass "nvidia" options to /dev/dri/card0
[  2739.986] (**) NVIDIA(0): Option "AllowEmptyInitialConfiguration"
[  2739.986] (**) NVIDIA(0): Enabling 2D acceleration
[  2740.370] (--) NVIDIA(0): Valid display device(s) on GPU-0 at PCI:1:0:0
[  2740.370] (--) NVIDIA(0):     CRT-0
[  2740.370] (--) NVIDIA(0):     DFP-0
[  2740.370] (--) NVIDIA(0):     DFP-1
[  2740.370] (--) NVIDIA(0):     DFP-2
[  2740.370] (--) NVIDIA(0):     DFP-3 (boot)
[  2740.371] (II) NVIDIA(0): NVIDIA GPU GeForce GTX 675M (GF114) at PCI:1:0:0 (GPU-0)
[  2740.371] (--) NVIDIA(0): Memory: 2097152 kBytes
[  2740.371] (--) NVIDIA(0): VideoBIOS: 70.24.43.00.12
[  2740.371] (II) NVIDIA(0): Detected PCI Express Link width: 16X
[  2740.371] (--) NVIDIA(GPU-0): CRT-0: disconnected
[  2740.372] (--) NVIDIA(GPU-0): CRT-0: 400.0 MHz maximum pixel clock
[  2740.372] (--) NVIDIA(GPU-0):
[  2740.372] (--) NVIDIA(GPU-0): DFP-0: disconnected
[  2740.372] (--) NVIDIA(GPU-0): DFP-0: Internal TMDS
[  2740.372] (--) NVIDIA(GPU-0): DFP-0: 165.0 MHz maximum pixel clock
[  2740.372] (--) NVIDIA(GPU-0):
[  2740.372] (--) NVIDIA(GPU-0): DFP-1: disconnected
[  2740.372] (--) NVIDIA(GPU-0): DFP-1: Internal TMDS
[  2740.372] (--) NVIDIA(GPU-0): DFP-1: 165.0 MHz maximum pixel clock
[  2740.372] (--) NVIDIA(GPU-0):
[  2740.372] (--) NVIDIA(GPU-0): DFP-2: disconnected
[  2740.372] (--) NVIDIA(GPU-0): DFP-2: Internal DisplayPort
[  2740.372] (--) NVIDIA(GPU-0): DFP-2: 480.0 MHz maximum pixel clock
[  2740.372] (--) NVIDIA(GPU-0):
[  2740.372] (--) NVIDIA(GPU-0): Seiko/Epson SAMSUNG173HT02-C01 (DFP-3): connected
[  2740.372] (--) NVIDIA(GPU-0): Seiko/Epson SAMSUNG173HT02-C01 (DFP-3): Internal DisplayPort
[  2740.372] (--) NVIDIA(GPU-0): Seiko/Epson SAMSUNG173HT02-C01 (DFP-3): 480.0 MHz maximum pixel clock
[  2740.372] (--) NVIDIA(GPU-0):
[  2740.373] (II) NVIDIA(0): Validated MetaModes:
[  2740.373] (II) NVIDIA(0):     "DFP-3:1920x1080"
[  2740.373] (II) NVIDIA(0): Virtual screen size determined to be 1920 x 1080
[  2740.375] (--) NVIDIA(0): DPI set to (128, 124); computed from "UseEdidDpi" X config
[  2740.375] (--) NVIDIA(0):     option
[  2740.376] (II) NVIDIA: Using 6144.00 MB of virtual memory for indirect memory
[  2740.376] (II) NVIDIA:     access.
[  2740.378] (II) NVIDIA(0): ACPI: failed to connect to the ACPI event daemon; the daemon
[  2740.378] (II) NVIDIA(0):     may not be running or the "AcpidSocketPath" X
[  2740.378] (II) NVIDIA(0):     configuration option may not be set correctly.  When the
[  2740.378] (II) NVIDIA(0):     ACPI event daemon is available, the NVIDIA X driver will
[  2740.378] (II) NVIDIA(0):     try to use it to receive ACPI event notifications.  For
[  2740.378] (II) NVIDIA(0):     details, please see the "ConnectToAcpid" and
[  2740.378] (II) NVIDIA(0):     "AcpidSocketPath" X configuration options in Appendix B: X
[  2740.378] (II) NVIDIA(0):     Config Options in the README.
[  2740.399] (II) NVIDIA(0): Setting mode "DFP-3:1920x1080"
[  2741.463] (==) NVIDIA(0): Disabling shared memory pixmaps
[  2741.463] (==) NVIDIA(0): Backing store enabled
[  2741.463] (==) NVIDIA(0): Silken mouse disabled
[  2741.463] (==) NVIDIA(0): DPMS enabled
[  2741.463] (II) Loading sub module "dri2"
[  2741.463] (II) LoadModule: "dri2"
[  2741.463] (II) Module "dri2" already built-in
[  2741.463] (II) NVIDIA(0): [DRI2] Setup complete
[  2741.463] (II) NVIDIA(0): [DRI2]   VDPAU driver: nvidia
[  2741.463] (II) Initializing extension Generic Event Extension
[  2741.463] (II) Initializing extension SHAPE
[  2741.463] (II) Initializing extension MIT-SHM
[  2741.463] (II) Initializing extension XInputExtension
[  2741.463] (II) Initializing extension XTEST
[  2741.463] (II) Initializing extension BIG-REQUESTS
[  2741.463] (II) Initializing extension SYNC
[  2741.463] (II) Initializing extension XKEYBOARD
[  2741.463] (II) Initializing extension XC-MISC
[  2741.464] (II) Initializing extension SECURITY
[  2741.464] (II) Initializing extension XFIXES
[  2741.464] (II) Initializing extension RENDER
[  2741.464] (II) Initializing extension RANDR
[  2741.464] (II) Initializing extension COMPOSITE
[  2741.464] (II) Initializing extension DAMAGE
[  2741.464] (II) Initializing extension MIT-SCREEN-SAVER
[  2741.464] (II) Initializing extension DOUBLE-BUFFER
[  2741.464] (II) Initializing extension RECORD
[  2741.464] (II) Initializing extension DPMS
[  2741.464] (II) Initializing extension Present
[  2741.464] (II) Initializing extension DRI3
[  2741.464] (II) Initializing extension X-Resource
[  2741.464] (II) Initializing extension XVideo
[  2741.464] (II) Initializing extension XVideo-MotionCompensation
[  2741.464] (II) Initializing extension XFree86-VidModeExtension
[  2741.464] (II) Initializing extension XFree86-DGA
[  2741.464] (II) Initializing extension XFree86-DRI
[  2741.464] (II) Initializing extension DRI2
[  2741.464] (II) Initializing extension GLX
[  2741.464] (II) Initializing extension GLX
[  2741.464] (II) Indirect GLX disabled.
[  2741.464] (II) Initializing extension NV-GLX
[  2741.464] (II) Initializing extension NV-CONTROL
[  2741.464] (II) Initializing extension XINERAMA
[  2741.523] (II) config/udev: Adding input device Power Button (/dev/input/event2)
[  2741.523] (**) Power Button: Applying InputClass "libinput keyboard catchall"
[  2741.523] (II) LoadModule: "libinput"
[  2741.523] (II) Loading /usr/lib/xorg/modules/input/libinput_drv.so
[  2741.525] (II) Module libinput: vendor="X.Org Foundation"
[  2741.525] 	compiled for 1.20.7, module version = 0.29.0
[  2741.525] 	Module class: X.Org XInput Driver
[  2741.525] 	ABI class: X.Org XInput driver, version 24.1
[  2741.525] (II) Using input driver 'libinput' for 'Power Button'
[  2741.525] (**) Power Button: always reports core events
[  2741.525] (**) Option "Device" "/dev/input/event2"
[  2741.525] (**) Option "_source" "server/udev"
[  2741.526] (II) event2  - Power Button: is tagged by udev as: Keyboard
[  2741.526] (II) event2  - Power Button: device is a keyboard
[  2741.527] (II) event2  - Power Button: device removed
[  2741.565] (**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/LNXPWRBN:00/input/input2/event2"
[  2741.565] (II) XINPUT: Adding extended input device "Power Button" (type: KEYBOARD, id 6)
[  2741.567] (II) event2  - Power Button: is tagged by udev as: Keyboard
[  2741.567] (II) event2  - Power Button: device is a keyboard
[  2741.568] (II) config/udev: Adding input device Video Bus (/dev/input/event3)
[  2741.568] (**) Video Bus: Applying InputClass "libinput keyboard catchall"
[  2741.568] (II) Using input driver 'libinput' for 'Video Bus'
[  2741.568] (**) Video Bus: always reports core events
[  2741.568] (**) Option "Device" "/dev/input/event3"
[  2741.568] (**) Option "_source" "server/udev"
[  2741.569] (II) event3  - Video Bus: is tagged by udev as: Keyboard
[  2741.569] (II) event3  - Video Bus: device is a keyboard
[  2741.569] (II) event3  - Video Bus: device removed
[  2741.640] (**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:07/LNXVIDEO:00/input/input3/event3"
[  2741.640] (II) XINPUT: Adding extended input device "Video Bus" (type: KEYBOARD, id 7)
[  2741.641] (II) event3  - Video Bus: is tagged by udev as: Keyboard
[  2741.641] (II) event3  - Video Bus: device is a keyboard
[  2741.642] (II) config/udev: Adding input device Power Button (/dev/input/event1)
[  2741.642] (**) Power Button: Applying InputClass "libinput keyboard catchall"
[  2741.642] (II) Using input driver 'libinput' for 'Power Button'
[  2741.642] (**) Power Button: always reports core events
[  2741.642] (**) Option "Device" "/dev/input/event1"
[  2741.642] (**) Option "_source" "server/udev"
[  2741.643] (II) event1  - Power Button: is tagged by udev as: Keyboard
[  2741.643] (II) event1  - Power Button: device is a keyboard
[  2741.643] (II) event1  - Power Button: device removed
[  2741.685] (**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input1/event1"
[  2741.685] (II) XINPUT: Adding extended input device "Power Button" (type: KEYBOARD, id 8)
[  2741.687] (II) event1  - Power Button: is tagged by udev as: Keyboard
[  2741.687] (II) event1  - Power Button: device is a keyboard
[  2741.687] (II) config/udev: Adding input device Lid Switch (/dev/input/event0)
[  2741.687] (II) No input driver specified, ignoring this device.
[  2741.687] (II) This device may have been added with another device file.
[  2741.688] (II) config/udev: Adding input device HDA NVidia HDMI/DP,pcm=3 (/dev/input/event7)
[  2741.688] (II) No input driver specified, ignoring this device.
[  2741.688] (II) This device may have been added with another device file.
[  2741.688] (II) config/udev: Adding input device HDA NVidia HDMI/DP,pcm=7 (/dev/input/event8)
[  2741.688] (II) No input driver specified, ignoring this device.
[  2741.688] (II) This device may have been added with another device file.
[  2741.689] (II) config/udev: Adding input device HDA NVidia HDMI/DP,pcm=8 (/dev/input/event9)
[  2741.689] (II) No input driver specified, ignoring this device.
[  2741.689] (II) This device may have been added with another device file.
[  2741.689] (II) config/udev: Adding input device HDA NVidia HDMI/DP,pcm=9 (/dev/input/event10)
[  2741.689] (II) No input driver specified, ignoring this device.
[  2741.689] (II) This device may have been added with another device file.
[  2741.689] (II) config/udev: Adding input device SC-20FHL11146M: SC-20FHL11146M (/dev/input/event6)
[  2741.689] (**) SC-20FHL11146M: SC-20FHL11146M: Applying InputClass "libinput keyboard catchall"
[  2741.690] (II) Using input driver 'libinput' for 'SC-20FHL11146M: SC-20FHL11146M'
[  2741.690] (**) SC-20FHL11146M: SC-20FHL11146M: always reports core events
[  2741.690] (**) Option "Device" "/dev/input/event6"
[  2741.690] (**) Option "_source" "server/udev"
[  2741.691] (II) event6  - SC-20FHL11146M: SC-20FHL11146M: is tagged by udev as: Keyboard
[  2741.691] (II) event6  - SC-20FHL11146M: SC-20FHL11146M: device is a keyboard
[  2741.692] (II) event6  - SC-20FHL11146M: SC-20FHL11146M: device removed
[  2741.765] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4:1.0/input/input18/event6"
[  2741.765] (II) XINPUT: Adding extended input device "SC-20FHL11146M: SC-20FHL11146M" (type: KEYBOARD, id 9)
[  2741.767] (II) event6  - SC-20FHL11146M: SC-20FHL11146M: is tagged by udev as: Keyboard
[  2741.767] (II) event6  - SC-20FHL11146M: SC-20FHL11146M: device is a keyboard
[  2741.768] (II) config/udev: Adding input device HDA Intel PCH Mic (/dev/input/event11)
[  2741.768] (II) No input driver specified, ignoring this device.
[  2741.768] (II) This device may have been added with another device file.
[  2741.768] (II) config/udev: Adding input device HDA Intel PCH Headphone (/dev/input/event12)
[  2741.768] (II) No input driver specified, ignoring this device.
[  2741.768] (II) This device may have been added with another device file.
[  2741.769] (II) config/udev: Adding input device AT Translated Set 2 keyboard (/dev/input/event4)
[  2741.769] (**) AT Translated Set 2 keyboard: Applying InputClass "libinput keyboard catchall"
[  2741.769] (II) Using input driver 'libinput' for 'AT Translated Set 2 keyboard'
[  2741.769] (**) AT Translated Set 2 keyboard: always reports core events
[  2741.769] (**) Option "Device" "/dev/input/event4"
[  2741.769] (**) Option "_source" "server/udev"
[  2741.770] (II) event4  - AT Translated Set 2 keyboard: is tagged by udev as: Keyboard
[  2741.770] (II) event4  - AT Translated Set 2 keyboard: device is a keyboard
[  2741.771] (II) event4  - AT Translated Set 2 keyboard: device removed
[  2741.805] (**) Option "config_info" "udev:/sys/devices/platform/i8042/serio0/input/input4/event4"
[  2741.805] (II) XINPUT: Adding extended input device "AT Translated Set 2 keyboard" (type: KEYBOARD, id 10)
[  2741.807] (II) event4  - AT Translated Set 2 keyboard: is tagged by udev as: Keyboard
[  2741.807] (II) event4  - AT Translated Set 2 keyboard: device is a keyboard
[  2741.808] (II) config/udev: Adding input device ETPS/2 Elantech Touchpad (/dev/input/event13)
[  2741.808] (**) ETPS/2 Elantech Touchpad: Applying InputClass "libinput touchpad catchall"
[  2741.808] (II) Using input driver 'libinput' for 'ETPS/2 Elantech Touchpad'
[  2741.808] (**) ETPS/2 Elantech Touchpad: always reports core events
[  2741.808] (**) Option "Device" "/dev/input/event13"
[  2741.808] (**) Option "_source" "server/udev"
[  2741.810] (II) event13 - ETPS/2 Elantech Touchpad: is tagged by udev as: Touchpad
[  2741.811] (II) event13 - ETPS/2 Elantech Touchpad: device is a touchpad
[  2741.811] (II) event13 - ETPS/2 Elantech Touchpad: device removed
[  2741.872] (**) Option "config_info" "udev:/sys/devices/platform/i8042/serio1/input/input16/event13"
[  2741.872] (II) XINPUT: Adding extended input device "ETPS/2 Elantech Touchpad" (type: TOUCHPAD, id 11)
[  2741.873] (**) Option "AccelerationScheme" "none"
[  2741.873] (**) ETPS/2 Elantech Touchpad: (accel) selected scheme none/0
[  2741.873] (**) ETPS/2 Elantech Touchpad: (accel) acceleration factor: 2.000
[  2741.873] (**) ETPS/2 Elantech Touchpad: (accel) acceleration threshold: 4
[  2741.874] (II) event13 - ETPS/2 Elantech Touchpad: is tagged by udev as: Touchpad
[  2741.876] (II) event13 - ETPS/2 Elantech Touchpad: device is a touchpad
[  2741.876] (II) config/udev: Adding input device ETPS/2 Elantech Touchpad (/dev/input/mouse0)
[  2741.876] (II) No input driver specified, ignoring this device.
[  2741.877] (II) This device may have been added with another device file.
[  2741.877] (II) config/udev: Adding input device PC Speaker (/dev/input/event5)
[  2741.877] (II) No input driver specified, ignoring this device.
[  2741.877] (II) This device may have been added with another device file.
[  2741.882] (--) NVIDIA(GPU-0): Seiko/Epson SAMSUNG173HT02-C01 (DFP-3): connected
[  2741.882] (--) NVIDIA(GPU-0): Seiko/Epson SAMSUNG173HT02-C01 (DFP-3): Internal DisplayPort
[  2741.882] (--) NVIDIA(GPU-0): Seiko/Epson SAMSUNG173HT02-C01 (DFP-3): 480.0 MHz maximum pixel clock
[  2741.882] (--) NVIDIA(GPU-0):
[  2746.687] (II) event2  - Power Button: device removed
[  2746.712] (II) event3  - Video Bus: device removed
[  2746.778] (II) event1  - Power Button: device removed
[  2746.818] (II) event6  - SC-20FHL11146M: SC-20FHL11146M: device removed
[  2746.885] (II) event4  - AT Translated Set 2 keyboard: device removed
[  2746.912] (II) event13 - ETPS/2 Elantech Touchpad: device removed
[  2749.726] (II) UnloadModule: "libinput"
[  2749.726] (II) UnloadModule: "libinput"
[  2749.726] (II) UnloadModule: "libinput"
[  2749.726] (II) UnloadModule: "libinput"
[  2749.726] (II) UnloadModule: "libinput"
[  2749.726] (II) UnloadModule: "libinput"
[  2749.773] (II) NVIDIA(GPU-0): Deleting GPU-0
[  2749.774] (II) Server terminated successfully (0). Closing log file.

Desktop Environment, Display Manager, Greeter

Once X is installed and can be initiated, it's time to install a desktop environment, e.g. lxqt, a display manager, e.g. lxdm, and a greeter, e.g. lightdm-webkit-theme-litarvan:

pacman -S lxqt
pacman -S lightdm-runit
pacman -S --needed lightdm-webkit2-greeter lightdm-webkit-theme-litarvan

We need to tell the display manager about the greeter we want to use. For LightDM this is done in /etc/lightdm/lightdm.conf in the [Seat:*] section

greeter-session=lightdm-webkit2-greeter

Now we need to tell Runit about our display manager:

ln -s /etc/runit/sv/lightdm /run/runit/service/

If we are asked about the default Window Manager to use, we select openbox because it is the default windows manager of LightDM.

Tools

Hugo

Install hugo, but don't forget to add some helper scripts, e.g. in /data/scripts:

# `hs` to start a hugo server
/data/progs/hugo/bin/hugo server -D --bind 192.168.2.135 --disableFastRender --baseURL http://192.168.2.135/

# `ti` to show tree of a hugo project but ignore the `themes` dir
tree -I themes

OMG what did I do

sudo ln -s /etc/runit/sv /run/runit/service, but I think everything is still fine, this had no effect

artix-installation's People

Contributors

fleetingbytes avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.