User:Gemstone
I joined the Arch Wiki because I think that setting up wifi can be explained better than it has been.
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
- . Install the desktop manager you want to use.
- . Disable the desktop manager you no longer want to use.
- . Enable the desktop manager you want to use.
- . 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
-
Run "systemctl status":
# systemctl status
- Press / (right-falling slash), which opens a search prompt at the bottom of the screen. Type in *dm.