Migration from Arch

From ParabolaWiki
Jump to: navigation, search

Set your Pacman-based GNU/Linux distribution free!

1 Preparation

Ensure that your current system is fully up-to-date.

# pacman -Syu

2 Migrate the system to Parabola

2.1 Install Parabola keyrings and mirror list

Disable signature verification manually by modifying the line in /etc/pacman.conf:

SigLevel = Never

Install the keyrings and mirror list for free repositories:

# pacman -U https://www.parabola.nu/packages/libre/x86_64/parabola-keyring/download
# pacman -U https://www.parabola.nu/packages/libre/x86_64/pacman-mirrorlist/download

Re-enable signature verification in /etc/pacman.conf:

SigLevel = Required DatabaseOptional

Rename mirrorlist.pacnew as mirrorlist:

# cp -vr /etc/pacman.d/mirrorlist.pacnew /etc/pacman.d/mirrorlist

2.2 Configure pacman

Note: Except for special cases, the default Parabola pacman.conf may be used as a drop-in replacement, at this stage of the migration. eg:
$ wget https://git.parabola.nu/abslibre.git/plain/libre/pacman/pacman.conf.$(uname -m)
# cp /etc/pacman.conf /etc/pacman.conf.orig
# mv pacman.conf.$(uname -m) /etc/pacman.conf
This section describes the manual configuration process, for completeness.

Add the [libre] repo above all standard Arch repos in /etc/pacman.conf:

Include = /etc/pacman.d/mirrorlist
#Include = /etc/pacman.d/mirrorlist
Include = /etc/pacman.d/mirrorlist

Add any optional repos above [libre] in /etc/pacman.conf (see Repositories):

Note: If you are migrating to a non-systemd system, ensure that the [nonsystemd] repo is enabled. If you prefer to keep systemd, ensure that the [nonsystemd] repo is not enabled.
Include = /etc/pacman.d/mirrorlist
Include = /etc/pacman.d/mirrorlist
Include = /etc/pacman.d/mirrorlist
Include = /etc/pacman.d/mirrorlist
Warning: The order of repos is critical for smooth system migration, and for a robust and supported Parabola system, generally!

The following must be satisfied for these keystone repos (and their *-testing counterparts):

  • [libre] must be above all standard Arch repos (core|extra)
  • [nonsystemd] and [nonprism] must be above all standard Parabola repos (libre|pcr)
  • [*testing] repos must be above their corresponding standard repos (eg: [libre-testing] above [libre], [testing] above [core])

2.3 Replace non-free packages with Parabola liberated versions

Clean the pacman cache:

# pacman -Scc

Force the database refresh:

# pacman -Syy

Update the keyring:

# pacman-key --refresh

Sync the system with Parabola and install your-freedom. This will remove non-free packages and install libre replacements.

  • For a parabola/systemd system:
# pacman -Suu your-freedom pacman
  • For a parabola/openrc system:
# pacman -Suu your-freedom pacman libelogind udev-init-scripts

Install the optional your-privacy package to block privacy disrespecting network protocols (see Nonprism):

# pacman -Suu your-privacy
Note: If some of your packages have higher version than in Parabola repos, they will be downgraded to lower version of libre packages.
Note: If you want to use OpenRC, be sure to read the OpenRC Configuration Guide.
Warning: Beware any unofficial nonfree package that might still be lurking in your system (pacman -Q --foreign). Parabola doesn't support AUR helpers or any other third-party software. It is up to you to avoid installing nonfree software from AUR or from any other source.

2.4 Update bootloader configuration

Please update either GRUB or Syslinux, but not both, as it would cause a kernel panic.

2.4.1 GRUB

For grub regenerate your grub.cfg file running:

# grub-mkconfig -o /boot/grub/grub.cfg
Tip: Check https://wiki.archlinux.org/index.php/GRUB for more information

2.4.2 Syslinux

Manually change following lines in /boot/syslinux/syslinux.cfg to reflect change:

  • For generic kernel,
LABEL parabola
  MENU LABEL Parabola GNU/Linux-libre, with generic kernel
  LINUX ../vmlinuz-linux-libre
  INITRD ../initramfs-linux-libre.img
LABEL parabolafallback
  MENU LABEL Parabola GNU/Linux-libre fallback, with generic kernel
  LINUX ../vmlinuz-linux-libre
  INITRD ../initramfs-linux-libre-fallback.img
LABEL parabola
  MENU LABEL Parabola GNU/Linux-libre, with hardened kernel
  LINUX ../vmlinuz-linux-libre-hardened
  INITRD ../initramfs-linux-libre-hardened.img
LABEL parabolafallback
  MENU LABEL Parabola GNU/Linux-libre fallback, with hardened kernel
  LINUX ../vmlinuz-linux-libre-hardened
  INITRD ../initramfs-linux-libre-hardened-fallback.img
LABEL parabola
  MENU LABEL Parabola GNU/Linux-libre, with LTS kernel
  LINUX ../vmlinuz-linux-libre-lts
  INITRD ../initramfs-linux-libre-lts.img
LABEL parabolafallback
  MENU LABEL Parabola GNU/Linux-libre fallback, with LTS kernel
  LINUX ../vmlinuz-linux-libre-lts
  INITRD ../initramfs-linux-libre-lts-fallback.img

Alternatively you can remove the configuration file and reinstall syslinux.

2.4.3 Other

Tip: Check https://wiki.archlinux.org/index.php/Boot_Loaders for more information

3 Finalize the migration

Restart your system now and choose the "Parabola GNU/Linux-libre" entry from the boot menu. If you would like to install new packages or configure the system, do so after rebooting into the Parabola system.

4 Hardware compatibility and Trouble-shooting

If you have any trouble applying the instructions above, please report it on the Parabola Documentation Bug Tracker or the Assist Mailing List; or if you find a better way, edit this wiki article!

If you notice that some hardware is not working after installing your-freedom, this is most likely because there is no free-software driver or firmware available for that device (check dmesg) for '/*(DEBLOBBED)*/'. For the most notorious example, it is common for wireless Ethernet (WiFi) devices to require a firmware to be loaded into the card. Many will not work at all if the firmware is missing. The firmware for WiFi cards is most often proprietary, thus Parabola does not distribute it.

The usual solution for incompatible WiFi hardware is to replace the card (or use an external USB WiFi dongle). or connect your PC to the internet with wired Ethernet. Not only is wired Ethernet most likely to "just work", but it is also the option with the best performance and reliability. If your computer is a desktop, this is the "no-brainer" option; but most laptops can take advantage of this as well. If, for some reason, you must use Wi-fi and your device is not supported, the most compatible WiFi replacements are those with the Realtek RTL818x chipset and generally, those with an Atheros chipset since free firmwares exist for those.

This is not unique to wireless networking devices. You may encounter other hardware that has similar freedom issues. This is especially true for the newest hardware and non-essential, un-common, or specialized niche hardware such as high-end graphics cards and pro-audio interfaces. Free software hardware drivers are most often not written by the manufacturer with complete knowledge of the device's inner workings, but painstakingly, through experimentation by volunteers who have that particular device at hand and want it to work for their own purposes. For this reason, it can not be expected that new or rare hardware to have free drivers. If the device in question is widely available and generally useful, it will probably have a free driver written for it eventually; but that takes a good deal of time and effort. You will find that in most cases, hardware models that are a few years old are perfectly adequate and the best option for most people. Unless you have some specific need for a bleeding-edge or specialized hardware device (most people do not), they are best avoided for simplicity sake.

The best resource for determining if your hardware is compatible with fully free software is the h-node database. Certain devices that are known to be incompatible with freedom may be explicitly on the Linux-libre device blacklist. The h-node database was created and is maintained by the community. For the benefit of others, do feel free to add your hardware to the database if it is working on Parabola but is not yet listed. To make this as easy as possible, there is the user-friendly h-client desktop application, which can assist with identifying your computer's hardware, searching the h-node database for suggestions, and adding your compatible devices to the database.

5 See also