User:Gemstone

From ArchWiki

I joined the Arch Wiki because I think that setting up wifi can be explained better than it has been.

wifi-menu doesn't work (Wireless Internet Doesn't work on Arch)

I got the following message after rebooting during the installation:

Scanning for networks... You need to install 'wpa_supplicant'
failed
No networks found

In order to remedy this, you have to install 'wpa_supplicant' before the reboot. This can be done during the 'pacstrap /mnt' step.

In my case, I had followed the wiki blindly, and had set up a dhcp service in the following way:

[root@archiso /]# systemctl enable dhcpcd@enp0s3.service

That creates a conflict with netctl.

After the reboot, wifi-menu would not work. Here's how I fixed it:

# ip link set wlp3s0 down
# wifi-menu
# wifi-menu -o
# cd /etc/netctl
# netctl start wlp3s0_TP-Link
# netctl enable wlp3s0_TP-Link

'netctl' expects the wireless device to be in a down state. 'wifi-menu' wraps 'netctl'. 'wifi-menu' will not work unless the network device is in a down state.

In the above list of commands, "wlp3s0" is the name of the wireless device in the computer. "TP-Link" is the name of the router. Arch Linux's "wifi-menu -o" command creates a communications profile made of these two elements. That profile resides in the "/etc/netctl/" directory.

This information took me two years to articulate.

The wiki needs to have a better wireless configuration section.

Installation Procedure for archlinux-2020.02.01-x86_64.iso

This procedure was tested successfully on 25 Oct 2022 using archlinux-2022.10.01-x86_64.iso.

Synchronize the time

timedatectl set-ntp true

Create partitions

Create partitions. You can use fdisk or parted or gparted to do this. I usually use fdisk.

Scenario 1 - without swap

root@archiso ~ # fdisk /dev/vda

Welcome to fdisk (util-linux 2.38.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0xa667c90e.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 
First sector (2048-83886079, default 2048): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-83886079, default 83886079): +1G

Created a new partition 1 of type 'Linux' and of size 1 GiB.


Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): 

Using default response p.
Partition number (2-4, default 2): 
First sector (2099200-83886079, default 2099200): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2099200-83886079, default 83886079): +10G

Created a new partition 2 of type 'Linux' and of size 10 GiB.

Command (m for help): n
Partition type
   p   primary (2 primary, 0 extended, 2 free)
   e   extended (container for logical partitions)
Select (default p): 

Using default response p.
Partition number (3,4, default 3): 
First sector (23070720-83886079, default 23070720): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (23070720-83886079, default 83886079): 

Created a new partition 3 of type 'Linux' and of size 29 GiB.

Command (m for help): a
Partition number (1-3, default 3): 1

The bootable flag on partition 1 is enabled now.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Scenario 2 - with swap

Create filesystems


(mkfs.ext4 /dev/vda1 or mkfs.ext4 /dev/sda1... and so on)

root@archiso ~ # mkfs.ext4 /dev/vda1
mke2fs 1.46.5 (30-Dec-2021)
Discarding device blocks: done                            
Creating filesystem with 262144 4k blocks and 65536 inodes
Filesystem UUID: 0b8b2645-7011-4024-8517-72256b34f7af
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

root@archiso ~ # mkfs.ext4 /dev/vda2
mke2fs 1.46.5 (30-Dec-2021)
Discarding device blocks: done                            
Creating filesystem with 2621440 4k blocks and 655360 inodes
Filesystem UUID: 62ee643d-0a90-40bc-830a-0d4e1716edae
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

root@archiso ~ # mkfs.ext4 /dev/vda3
mke2fs 1.46.5 (30-Dec-2021)
Discarding device blocks: done                            
Creating filesystem with 7601920 4k blocks and 1900544 inodes
Filesystem UUID: b8a01c4c-84d0-4613-9e93-e22b77e2efab
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done   


Mount the filesystems that you've just created

Scenario 1 - without swap

# mount /dev/vda2 /mnt
# mkdir -p /mnt/boot
# mount /dev/vda1 /mnt/boot
# mkdir -p /mnt/home
# mount /dev/vda3 /mnt/home

pacstrap step

# pacstrap /mnt base linux linux-firmware vim dhcpcd grub man-db man-pages texinfo sudo gdm gnome gnome-extra openssh xterm gnome-terminal

The above list results in a system that includes a GNOME environment and a working network connection.

"linux" installs the Linux kernel. You can use "linux-lts" in its place to install the Linux long term support kernel. If that means nothing to you, just know that both ways work.

Generate the file system table (fstab):

genfstab -U /mnt >> /mnt/etc/fstab

arch-chroot step

# arch-chroot /mnt

Set the local time permanently

ln -sf /usr/share/zoneinfo/Australia/Brisbane /etc/localtime

Copy the system clock's time setting to the hardware clock

hwclock --systohc

/etc/locale.gen

Edit /etc/locale.gen -- uncomment "en_US_UTF-8 UTF-8"

Set the hostname

# echo "arch" > /etc/hostname

Edit /etc/hosts

Make /etc/hosts look like this:

127.0.0.1           localhost
::1                 localhost
127.0.1.1           arch

Root password

Set the root password:

# passwd

Bootloader

Install a bootloader.

# grub-install --target=i386-pc /dev/vda

Create the GNU GRand Unified Bootloader configuration file:

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

If you fail to do this, your system will not boot.

DHCPCD

Enable dhcpcd for the networking device so that your system can connect to the internet:

# systemctl enable dhcpcd@enp1s0.service

If you fail to do this, your system will not connect to the internet.

GUI

Enable the gnome service so that you can use a GUI:

# systemctl enable gdm.service

Non-root users

Create a non-root user:

# useradd -m username
# passwd username

visudo step

# visudo

Leave chroot

Exit the arch-chroot environment.

# exit

Reboot

Reboot.

# reboot

Changing from one Desktop Manager to another

  1. . Install the desktop manager you want to use.
  2. . Disable the desktop manager you no longer want to use.
  3. . Enable the desktop manager you want to use.
  4. . Reboot.

In this example, GDM is enabled as the desktop manager and you want to use lxdm:

# pacman -S lxdm
# systemctl disable gdm
# systemctl enable lxdm

Determining which desktop manager is currently loaded

  1. Run "systemctl status":
    # systemctl status
    
  2. Press / (right-falling slash), which opens a search prompt at the bottom of the screen. Type in *dm.