https://wiki.archlinux.org/api.php?action=feedcontributions&user=Hi-Angel&feedformat=atomArchWiki - User contributions [en]2024-03-29T09:02:28ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&diff=782704Talk:Installation guide2023-07-07T11:29:49Z<p>Hi-Angel: Reply to nl6720</p>
<hr />
<div>== Read this first before adding new suggestions ==<br />
<br />
* systemd tools such as ''hostnamectl'', ''timedatectl'' and ''localectl'' [https://github.com/systemd/systemd/issues/798#issuecomment-126568596 do not work] in the installation chroot environment, so please do not propose to use them in the guide unless you can prove that they have been made to work also in that case. See [https://wiki.archlinux.org/index.php?title=Talk:Beginners%27_guide&oldid=388727#General_problems], [https://wiki.archlinux.org/index.php?title=Talk:Beginners%27_guide&oldid=404695#Replace_commands_with_their_systemd_equivalents], [https://wiki.archlinux.org/index.php?title=Talk:Beginners%27_guide&oldid=418662#Utilizing_systemd_tools] and [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=434985#change_configuration_system_from_old_way_to_new_way.28using_systemd_commands.29] for some past discussions about this issue.<br />
* {{ic|localectl list-keymaps}} does not work due to bug {{Bug|46725}}. For the chosen replacement command, see [https://wiki.archlinux.org/index.php?title=Talk:Beginners%27_guide&oldid=435044#localectl].<br />
* Due to the wide variety of available boot loaders, the installation guide refers to [[Arch boot process#Boot loader]] instead of making a specific recommendation for the installed system. See [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=687325#Bootloader], [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=690612#Make_the_Boot_Loader_Section_slightly_more_detailed_to_provide_a_high_level_overview_for_new_users], [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=678949#Expand_Boot_loader_section], [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=660151#Expand_Boot_loader_section_to_include_example_commands], [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=581427#Boot_loader_installation] for some past discussions on this topic.<br />
* While [[:Category:Installation process]] lists additional installation methods (e.g. [[archinstall]] or [[systemd-firstboot]]), the installation guide does not reference them due to their specific nature. [[Install Arch Linux with accessibility options]] is an exception. See [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=698307#Point_out_archinstall] for past discussion on this topic.<br />
-- [[ArchWiki:Administrators|The ArchWiki Administrators]] 22:17, 2 September 2016 (UTC)<br />
__TOC__<br />
<br />
== Link to the German version ==<br />
<br />
Instead of [[de:Arch Install Scripts]] you could choose [[de:Anleitung für Einsteiger]] it means "Beginner's Guid" and is a very <br />
detailed artikel for very new arch users and the future experts.<br />
<br />
:Thank you, [https://wiki.archlinux.org/index.php?title=Installation_guide&type=revision&diff=509961&oldid=508505 done]. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 16:31, 6 February 2018 (UTC)<br />
<br />
::This was already proposed last year and rejected: [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=466950#Suggesting_different_page_for_German_translation]. I don't see what has changed since then. If someone adds me as admin to the german wiki or changes the protection settings, I can update [[de:Arch Install Scripts]] as required. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 18:13, 6 February 2018 (UTC)<br />
<br />
:::I see, I didn't remember that discussion so I've reverted the change, hopefully you'll make it to update the translation, let's leave this open until the problem is solved, otherwise this kind of suggestion will keep appearing recurrently. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 17:53, 7 February 2018 (UTC)<br />
<br />
::::Apparently since last year the translation has been halved in size, but its scope is still much larger than the [[Install guide]] (or even the old [[Beginners' guide]]). -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 09:42, 9 May 2021 (UTC)<br />
<br />
== First mention of /mnt in example partition layout ==<br />
<br />
{{ic|/mnt}} is mentioned at mount point in [[Installation_guide#Partition_the_disks]], while {{ic|/mnt}} is made explicit two sections later in [[Installation_guide#Mount_the_file_systems]]. As I recall it, this was changed because some users blindly copy pasted commands and mounted /boot on the live system, instead of /mnt/boot. Some options:<br />
<br />
* Introduce another column describing the mount point on the installed system. <br />
* Actually explain /mnt early.<br />
* Revert the "mount point" to not include /mnt.<br />
<br />
-- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 13:03, 7 September 2019 (UTC)<br />
<br />
:I don't understand what's the actual problem here... -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 09:36, 8 September 2019 (UTC)<br />
<br />
::From what I read on [[ArchWiki:IRC|#archlinux-wiki]], this comes from https://www.reddit.com/r/archlinux/comments/d0v0j3/is_it_just_me_or_is_the_prospect_of_installing/ where the user was confused by the lack of root mountpoint (i.e. {{ic|/mnt}} vs {{ic|/}}). A question could be raised, if we should concern ourselves with users who have strong opinions about the wiki content yet can't be bothered to propose improvements in the talk pages...<br />
::About Alad's proposed options: I disagree with the first option, I think it will just complicate things even further. I support the third option and maybe adjusting the column header like in [[Special:Diff/581800]].<br />
::I'd actually would like to go even further and change the commands run from outside chroot to be visually distinct, e.g.: {{bc|1=<span style="color: #ff0000;">root@archiso #</span> mount /dev/sd''X1'' /mnt}}<br />
::I think it would better solve the underlying issue. <br />
:: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 15:26, 8 September 2019 (UTC)<br />
<br />
:::I'm not overly fond of the longer column name. For the last proposed option, I may agree if this is formalized in [[Help:Style]], so that it is not specfic to the [[Installation guide]]. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 11:20, 10 September 2019 (UTC)<br />
<br />
::::Adding it [[Help:Style]] was my intention, since other articles, too, will need to use that style for some commands. I'm thinking of creating a template for it: [[Special:Permalink/581945]]. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:19, 11 September 2019 (UTC)<br />
<br />
:::::Sounds good to me, I'd just prefer the regular (non-bold) font for the prompt as above. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 21:54, 13 September 2019 (UTC)<br />
<br />
::::::[[Special:Permalink/582327]]. Are there any other opinions about creating such a template? Or should I take this discussion to [[Help talk:Template]] per [[Help:Template#Creation]]? -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 18:31, 14 September 2019 (UTC)<br />
<br />
:::::::# How are you going to call the template? This template would probably add to the [[Help:Template#Code formatting templates]] series, should it be named in a consistent fashion?<br />
:::::::# Should this template support custom prompts, and if so, should it be called "pc" (from "(custom) prompted" code)?<br />
:::::::# I don't like the red color too much, if bold is not an option maybe we can go green|purple|blue, something that recalls less a warning of some kind? Or can we just leave it with the default font color? Or a slightly fainter black?<br />
:::::::# I haven't looked well into it, but maybe we can instead add an optional argument to [[Template:bc]] and [[Template:hc]] that prefixes a custom (colored) prompt? I wouldn't see a problem with repeating "root@archiso #" in every instance, or we may derive the new template from those two at that point.<br />
:::::::# The template should probably be derived from [[Template:bc]] in any case, for simpler code, see [[User:Kynikos/Template:Sandbox2]].<br />
:::::::-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 17:36, 16 September 2019 (UTC)<br />
<br />
::::::::# Initially I was going to call it [[Template:Archiso]] since it would be [[Archiso]]-specific, but I'm starting to think that creating a more general-purpose template would be better. It could then be used in [[PostgreSQL]] and the {{ic|[postgres]$}} convention would get formalized in [[Help:Style]]. Now the issue is the {{ic|[user@peer-a]#}} in [[Template:hc]] used in [[WireGuard]]. I'd rather not create two new templates, but I'm having trouble getting [[Template:Sandbox]] to work :(<br />
::::::::# I like your "[[Template:pc]]" suggestion.<br />
::::::::# Be glad I didn't post my first draft that was ''slightly more'' colorful. From your offered colors, I'd choose purple.<br />
::::::::# I'd rather not mess with the established templates just for this change, so I'd prefer creating a new template.<br />
::::::::# I didn't even think about using [[Template:bc]]. Is it a good idea to do that? The new template might need to be updated if [[Template:bc]] is ever changed in an incompatible way.<br />
:::::::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 07:33, 17 September 2019 (UTC)<br />
<br />
:::::::::Yeah, after viewing your attempts and looking into it myself, I think modifying bc/hc is out of discussion, it would add too much code/style for so little use.<br />
:::::::::Thinking about this again one day after, I feel I'm realizing that my concerns in general may descend from the fact that we're going to create a template to represent (block) code, even though we already have 2 which basically do the same thing, including allowing to include a prompt; the only addition of this "Archiso" or "pc" template would be the formatting around the prompt, so why not keep it simple (I know, "simplicity" is often subjective and controversial) and instead either make a [[Template:Archiso]] to be used like {{ic|<nowiki>{{bc|{{Archiso}} mount /dev/sdX1 /mnt}}</nowiki>}} or [[Template:ps]] (or [[Template:PS]]) to be used like {{ic|<nowiki>{{hc|{{ps|root@archiso #}} mount /dev/sdX1 /mnt}}</nowiki>}}? They also work with [[Template:hc]] and space-prefixed code blocks!<br />
:::::::::Putting the choice of color aside, if the above idea of a standalone prompt template isn't welcome, I think my second choice would be to make two [[Template:pbc]] and [[Template:phc]] that work like {{ic|<nowiki>{{pbc|$|ls}}</nowiki>}} and {{ic|<nowiki>{{phc|$|ls|...}}</nowiki>}}, with the style rule to use them only in case of complex prompts. I'd still derive them from bc/hc to inherit any changes that we'd decide to make to them, and avoid repeating that ugly &lt;pre> hack even more.<br />
:::::::::Otherwise I give up and accept the [[Template:Archiso]] that works like {{ic|<nowiki>{{Archiso|mount /dev/sdX1 /mnt}}</nowiki>}}, in the hope that one day we won't need an analogous "hc" version.<br />
:::::::::-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 14:24, 17 September 2019 (UTC)<br />
<br />
::::::::::I can't say I really like the idea of {{ic|<nowiki>{{bc|{{Archiso}} mount /dev/sdX1 /mnt}}</nowiki>}} or {{ic|<nowiki>{{hc|{{ps|root@archiso #}} mount /dev/sdX1 /mnt}}</nowiki>}}. I'd prefer creating [[Template:pbc]] and [[Template:phc]].<br />
::::::::::I still don't get what's wrong with [[Template:Sandbox]]. It should just work:<br />
<br />
<pre<noinclude></noinclude> {{#if: code|style="margin-bottom: 0; border-bottom:none; padding-bottom:0.8em;"}}>prompt # command</pre<noinclude></noinclude>><noinclude><!-- The &lt;noinclude>&lt;/noinclude> hack is needed to allow wiki markup inside the pre tags; reference: http://www.gossamer-threads.com/lists/wiki/mediawiki/118688#118688 --><br />
{{#if: code|<pre<noinclude></noinclude> style="margin-top: 0; border-top-style:dashed; padding-top: 0.8em;">code</pre<noinclude></noinclude>>}}<br />
<br />
:::::::::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 04:43, 18 September 2019 (UTC)<br />
<br />
:::::::::::FWIW (and a bit of fun) I've fixed [[Template:Sandbox]], although I'm not sure if we really need that level of automation ^^ I stick to my position above, is there a third (or more) opinion? -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 15:48, 18 September 2019 (UTC)<br />
<br />
:::::::::I think you like the [https://wiki.archlinux.org/index.php?title=User_talk:Nl6720&diff=447834&oldid=447833 #800080] shade of purple, right? ;-) [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 11:39, 21 September 2019 (UTC)<br />
<br />
::::::::::Yes, I do like that one :D but I think it would be too bright for this template. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 11:52, 21 September 2019 (UTC)<br />
<br />
:::::::::::Any news on this one? If not, I haven't seen this kind of issue or confusion occur since. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 09:37, 31 October 2021 (UTC)<br />
<br />
::::::::::::I don't think I want to create such a template anymore, since it would require updating other installation related pages. To go back to your originally proposed options, I'm for explaining {{ic|/mnt}} early. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:42, 4 November 2021 (UTC)<br />
<br />
== Buggy graphics driver ==<br />
<br />
Can there be a hint that nomodeset parameter could be used if the graphics driver is buggy (I've heard nouveau may be buggy sometimes)<br />
[[User:M.Srikanth|M.Srikanth]] ([[User talk:M.Srikanth|talk]]) 04:47, 12 May 2020 (UTC)<br />
<br />
:I would expect this to be mentioned in [[General_troubleshooting]]... -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 09:43, 31 October 2021 (UTC)<br />
<br />
== GitLab blobs in Lynx ==<br />
<br />
Links to files (blobs) on gitlab.archlinux.org are not readable in Lynx (or any other console web browser); see https://gitlab.com/gitlab-org/gitlab/-/issues/26567.<br />
<br />
Should the Installation guide link to raw files instead?<br />
<br />
-- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 12:29, 4 August 2020 (UTC)<br />
<br />
:Maybe you could ask svenstaro to add it to https://gitlab.com/gitlab-org/gitlab/-/issues/232073... -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 12:36, 4 August 2020 (UTC)<br />
<br />
::It has been filed under [https://gitlab.com/gitlab-org/gitlab/-/issues/232073#nice-to-have nice to have]. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 17:19, 4 August 2020 (UTC)<br />
<br />
:::Instead of using raw links we should perhaps consider if we need links to gitlab at all. The guide has:<br />
:::* [https://gitlab.archlinux.org/archlinux/mkinitcpio/mkinitcpio-archiso/blob/master/docs/README.bootparams README.bootparams]<br />
:::* <s>[https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/systemd/network/20-ethernet.network Ethernet]</s><br />
:::* <s>[https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/systemd/network/20-wlan.network WLAN]</s><br />
:::* <s>[https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/systemd/network/20-wwan.network WWAN]</s><br />
:::* <s>[https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/xdg/reflector/reflector.conf reflector.conf]</s><br />
:::* <s>[https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/packages.x86_64 packages.x86_64]</s><br />
:::Notice how all but one of these share the common path [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng archiso/-/blob/master/configs/releng]. Unless this level of specificity is really required, we could link to this path "for an overview of configuration files shipped with archiso" instead. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 09:35, 31 October 2021 (UTC)<br />
<br />
::::I'd prefer simply removing some of the links.<br />
::::* [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/systemd/network/20-ethernet.network Ethernet], [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/systemd/network/20-wlan.network WLAN] and [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/systemd/network/20-wwan.network WWAN] don't provide much value here, so they can be moved to [[systemd-networkd#Configuration examples]].<br />
::::* [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/xdg/reflector/reflector.conf reflector.conf] is there just for citation purposes. The [[reflector]] article already explains how the software works.<br />
:::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:30, 4 November 2021 (UTC)<br />
<br />
::::: Alright, I've removed those links. ([[Special:Diff/700696]], [[Special:Diff/700693]]) -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 11:39, 4 November 2021 (UTC)<br />
<br />
::::: Now that mirrors provide a symlink to the latest ISO version, it's possible to link to {{ic|pkglist.x86_64.txt}}. [[Special:Diff/730318|I replaced packages.x86_64 with it]]. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 07:31, 21 May 2022 (UTC)<br />
<br />
:Is Lynx (un)readability such a big problem in this case? People using Lynx from the archiso can open up the relevant file in the live system itself... — [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 18:05, 31 October 2021 (UTC)<br />
<br />
== Post-installation ==<br />
<br />
I skipped steps in the guide so I faced a weird crash in gnome without any explanations. I suggest a note.<br />
<br />
{{Note|Many of them assume that you have your timezone or locales set up. Make sure you have followed all the steps.}}<br />
<br />
[[User:Escope|Escope]] ([[User talk:Escope|talk]]) 10:11, 2 April 2021 (UTC)<br />
<br />
:The reader is supposed to follow all the steps. If we apply that to other pages, the pages need a boatload of notes to make sure the reader did not skip any steps. A common functional system has properly configured locales and timezones.<br />
:Since this is GNOME-specific however I would at most add a section into [[GNOME/Troubleshooting]] or even [[General troubleshooting]], but I still think this is out of scope to be honest. Many applications may not work properly when the timezones or locales are not correctly configured.<br />
:-- [[User:NetSysFire|NetSysFire]] ([[User talk:NetSysFire|talk]]) 15:30, 2 April 2021 (UTC)<br />
<br />
::The reader is not supposed to follow all the steps in case one doesn't worthy of attention. In my humble opinion, that's why it has huge advantage over the "Next-Next-Finish" approach. Unconfigured locales or timezones are obvious to many people, but my inexperience made me spend some time to sorting out. The other pages are highly deep and clear about the steps and why they are needed, my eyes enjoy such notes, pages are boatloaded already and I like it a lot =D. Thank you for your attention to this little change.<br />
<br />
::-- [[User:Escope|Escope]] ([[User talk:Escope|talk]]) 00:23, 3 April 2021 (UTC)<br />
<br />
:::If you're inexperienced, what makes you think you can judge if a step is necessary or not? You thought you knew better than the people that wrote the guide and found out that you didn't. Not something that needs changed here IMO.<br />
:::[[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 01:57, 3 April 2021 (UTC)<br />
<br />
:::The ArchWiki should also be about the why-aspect. I am in favor of adding e.g a note about why they are needed and why some applications may crash or behave strangely without properly configured timezones/locales. If you know e.g a nice blog post about this topic, why not add something like this?<br />
:::{{Note|Some applications may behave in strange ways or even crash when the timezones and/or locales are not properly configured. See [https://xkcd.com/1084/ this informative blog post] to know why that is.}}<br />
:::The note needs obviously some rewording, but something like this would fit in well in my opinion.<br />
:::-- [[User:NetSysFire|NetSysFire]] ([[User talk:NetSysFire|talk]]) 02:02, 3 April 2021 (UTC)<br />
<br />
::::Adding a '''brief''' "why" would be ok, but using [[Template:Note]] would be too much. I've also always wanted to emphasize the "and" in [[Installation guide#Localization]], since it's easy to miss (even some of the translated installation guides do not mention {{ic|en_US.UTF-8 UTF-8}}). --- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 08:48, 3 April 2021 (UTC)<br />
<br />
:::::People who want to know the "why" can already consult the relevant articles. That said, consistency is lacking: some sections explain in detail why a step should be performed (such as [[Installation_guide#Verify_signature]]), whereas [[Installation_guide#Configure_the_system]] is mostly a checklist of steps with brief instructions how. The solution isn't obvious: adding notes all over would likely more distract than clarify. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 19:41, 14 April 2021 (UTC)<br />
<br />
::::::I'm definitely apposed to adding notes, but I don't see why we couldn't add brief "why"s without them. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 06:55, 15 April 2021 (UTC)<br />
<br />
== Remove parted ==<br />
<br />
Due to parted [[Advanced Format#Partition alignment|not aligning the partition size]] (and with no patch in sight) which prevents using 4096 byte sectors with dm-crypt/LUKS unless explicitly planned before, I'd like to remove the "[[parted]]" link from [[Installation guide#Partition the disks]]. An alternative would be to change all examples in [[Parted]] to not use percentages and warn against using them. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 07:21, 7 April 2022 (UTC)<br />
<br />
:I prefer to change the examples in [[Parted]]. Just removing the link from installation guide won't stop people from using the tool. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 10:52, 7 April 2022 (UTC)<br />
<br />
== Note on Network Setup ==<br />
<br />
One of the most common installation issues that comes up on Reddit, Forums, and other discussion areas is not having done any sort of network setup. While the Installation Guide explicitly call out Network Setup as a required step, I suspect people are mistakenly believing the setup steps they did already to establish a connection on the installer will carry over to their installed system. <br />
<br />
I propose adding a note such as (example content):<br />
<br />
{{Note| Configuring your network connection above only established your network for the installer. This section will configure the network for your installed Arch system. Failure to do so may leave you without network access after completing installation.}} [[User:Nalthien|Nalthien]] ([[User talk:Nalthien|talk]]) 17:40, 15 May 2022 (UTC)<br />
<br />
:Such a thing [[Help:Style#Notes, Warnings, Tips|does not warrant a warning]] since there's nothing dangerous about being offline. It may even be the safest state the system will ever be. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:24, 18 May 2022 (UTC)<br />
<br />
:: I can agree that it doesn't warrant a Warning given the style guide; however, I do think a Note would be appropriate to "highlight information easily overlooked." It's clearly overlooked quite often. [[User:Nalthien|Nalthien]] ([[User talk:Nalthien|talk]]) 17:36, 20 May 2022 (UTC)<br />
<br />
:[[Installation guide#Connect to the internet]] already explains (or tries to, at least) that the live environment's network setup has nothing to do with the installed system. Perhaps the list items in [[Installation guide#Install essential packages]] could be made a little more verbose to explain '''why''' someone may want to install those things. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:24, 18 May 2022 (UTC)<br />
<br />
I propose adding something like the following:<br />
<br />
''To configure the freshly installed system's network for out-of-the-box ethernet DHCP functionality as on the installation image, create a simple /etc/systemd/network/20-wired.network file for your adapter Name, eg:''<br />
<br />
[Match]<br />
<br />
Name=enp1s0<br />
<br />
[Network]<br />
<br />
DHCP=yes<br />
<br />
''Also, enable both systemd-networkd.service and systemd-resolved.service''<br />
<br />
1. It will only take up a few lines; it is succinct, effective and informative. <br />
2. Further, the functionality on reboot will mimic functionality in the installation image.<br />
3. It uses simple built-in services without installing anything extra. <br />
4. It will also cut down on forum noise immensely.<br />
[[User:Misfit138|Misfit138]] ([[User talk:Misfit138|talk]] 11:11 21 March 2023 (UTC-5)<br />
<br />
: It's also incomplete, as systemd-resolved takes some setup. And it would cause more problems on the forums when people then enable NM or whatever and have both. There's a reason the network configuration page is linked. [[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 15:14, 21 March 2023 (UTC)<br />
<br />
:: systemd-resolved setup is optional according to the network configuration page, and I can confirm this to be the case on a bare-metal workstation as well as a VM. Doing the above minimal steps results in full functionality for a simple dhcp setup and mimics the ootb install image function. Further, installing NM as you indicated would result in a chicken or egg problem before reading a wall of text and realizing they have to setup a trivial and perhaps temporary dhcp solution in order to install a more permanent one anyway. The user has the ability to install packages in the chrooted environment, yes, but the expectation of a functional network in a freshly booted system is reasonable. One explanatory sentence or phrase can inform users that only one network config scheme is needed, as well as a brief warning to avoid conflicts (such warnings already exist elsewhere). The net conf. page can and should still be linked, but it is a monstrous page for something so trivial that can be suggested so succinctly. sent from my phone, will clean up formatting. -- [[User:Misfit138|Misfit138]] ([[User talk:Misfit138|talk]]) 11:37 22 March 2023 (UTC-5)<br />
<br />
:::systemd-networkd only supports using systemd-resolved for DNS. A network connection without working DNS is not something most people would want. I think the best we could do is to explicitly link to [[systemd-networkd]] as an example in [[Installation guide#Install essential packages]]. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 16:16, 22 March 2023 (UTC)<br />
<br />
::::With just the /etc/systemd/network/20-wired.network file, and no other network tools, and after starting networkd and resolved, I can ping sites and visit urls with links and lynx; ostensibly, something is resolving DNS for me(?) (Confirmed on VM and bare-metal.) However, I must regretfully admit that I am not likely to compel you with the principles I have set forth. Thank you for your time and for considering this. -- [[User:Misfit138|Misfit138]] ([[User talk:Misfit138|talk]]) 13:35 22 March 2023 (UTC-5)<br />
<br />
:::::I missed that you suggested to also enable {{ic|systemd-resolved.service}}. In that case, just as [[systemd-resolved#DNS]] says, DNS will only work for software that do not parse {{ic|/etc/resolv.conf}} themselves. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 17:44, 22 March 2023 (UTC)<br />
<br />
:Perhaps the "software necessary for networking" bullet point in [[Installation guide#Install essential packages]] could be extended with a tip that suggests using systemd-networkd + systemd-resolved and copying {{ic|/etc/systemd/network/20-ethernet.network}} from the live environment. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:18, 28 April 2023 (UTC)<br />
<br />
::The crosslinked article already has a note, that could be added there instead, similar to [[Special:diff/773727]]. <br />
::While I see the point of this item, the systemd- tools are probably not the most beginner-friendly ones to configure networking anyway (for some use-cases ok, not for the scope of this guide. Other tools like netctl are arguably simpler to use). The skill to configure networking is important and that's not triggered by copying an autogenerated file. What's the general state of [[archinstall]]? Could it be a solution to add a tip for Arch newcomers at the beginning of the guide to it instead?<br />
::--[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 07:45, 29 April 2023 (UTC)<br />
<br />
:::My idea was to ''somehow'' replace the note in [[Installation guide#Connect to the internet]] with a tip in [[Installation guide#Install essential packages]]. If there's no good way to do it, then let's keep things as is.<br />
:::archinstall would probably warrant an entirely separate discussion.<br />
::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 13:02, 30 April 2023 (UTC)<br />
<br />
== Partitioning tools ==<br />
<br />
Is there any reason gdisk is not listed as an option? If we include parted, despite problems with alignment, I don't see why gdisk is excluded. The wiki page for fdisk actually suggests gdisk as an alternative. I'm probably not the only one who learnt to use gdisk for GPT and it is nice to use a familiar tool if there's no reason not to. But I don't want to add it if it's omitted for a reason. --[[User:Margali|cfr]] ([[User talk:Margali|talk]]) 01:29, 20 August 2022 (UTC)<br />
<br />
:[[fdisk]] linking to [[gdisk]] is the result of a [[Special:Permalink/568741#Example layouts section|previous discussion]] about this.<br />
:Personally, I agree that [[Installation guide#Partition the disks]] should mention [[gdisk]]. My suggestion would be: "Use [[fdisk]], [[parted]] or [[gdisk]] (GPT only) to modify partition tables".<br />
: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:16, 20 August 2022 (UTC)<br />
<br />
::By the same argument, we should then mention cfdisk, cgdisk and any other partition tools. As such I'd suggest the following instead: "Use a [[Partitioning#Partitioning_tools|partitioning tool]] like [[fdisk]] or [[parted]] to modify partition tables". -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 13:32, 24 August 2022 (UTC)<br />
<br />
:::Your suggestion is better than the current text at least. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 08:44, 25 August 2022 (UTC)<br />
<br />
::::In the end the situation is quite similar to the one for boot loaders and network managers. I wouldn't mind listing more alternatives (or even tables) in the installation guide, but then the reasoning has to be applied equally to other sections. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 15:08, 25 August 2022 (UTC)<br />
<br />
:::::I hope it's nothing like [[Partitioning#Partitioning tools|this sorry excuse for a table]].<br />
:::::The thing with partitioning tools, compared to e.g. network managers, is that there are not that many of them. There's basically just fdisk, gdisk and parted. fdisk & gdisk additionally have scriptable and text user interfaces. And there are GUI ones based on parted.<br />
:::::I'd say let's go with your suggested text for now. We'll get to the greater goal eventually :D<br />
::::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 15:22, 25 August 2022 (UTC)<br />
<br />
::::::The table in [[Partitioning#Partitioning tools]] got better, so IMHO it should be fine to link to it now. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 16:04, 28 August 2022 (UTC)<br />
<br />
:::::::The "old" beginners' guide had a similar table included: [[User:Alad/Beginners'_guide#Partition_the_devices]]. Considering the small size, it could make sense to include the one from [[Partitioning#Partitioning tools]] in the installation guide directly. The downside is the GUI wrappers don't apply to the live environment. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 16:36, 28 August 2022 (UTC)<br />
<br />
::::::::If there's a problem with parted not aligning, it strikes me as perverse to mention fdisk and parted by name, but nothing else. Surely the example tools should be ones which don't need special warnings (if at all possible)? Maybe fdisk should be the only example? (Unless it has changed, gdisk isn't on the ISO, so that's a good reason not to pick it out, but steering people away from parted seems warranted if it is problematic.) --[[User:Margali|cfr]] ([[User talk:Margali|talk]]) 03:13, 30 October 2022 (UTC)<br />
<br />
:::::::::Is everyone OK with "Use a [[Partitioning#Partitioning_tools|partitioning tool]] like [[fdisk]] to modify partition tables"? That way we point to the resources while keeping only the tool used in the following examples. --[[User:Erus Iluvatar|Erus Iluvatar]] ([[User talk:Erus Iluvatar|talk]]) 21:34, 20 December 2022 (UTC)<br />
<br />
== Missing pacman-key steps ? ==<br />
<br />
I just tried (using archlinux-2022.11.01-x86_64.iso) the standard archlinux installation (pacstrap) following the guide,<br />
and once the packages were downloaded, they failed to install with errors like:<br />
* "signature from <maintainer> is unknown trust"<br />
<br />
I found on the web the following commands to solve the issue: (https://bbs.archlinux32.org/viewtopic.php?id=2900)<br />
* pacman-key --init<br />
* pacman-key --populate archlinux<br />
<br />
After those two commands, the pacstrap installation works fine.<br />
<br />
If those two commands are needed, shouldn't we document them in the Installation guide ?<br />
<br />
(note that the same problem/solution is applicable to archinstall method too)<br />
<br />
{{Unsigned|23:02, 3 November 2022 (UTC)|Nsauzede}}<br />
<br />
:This is already done by pacman-init.service. [[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 23:38, 3 November 2022 (UTC)<br />
<br />
:I hit the exact same problem with same installation iso. I got the solution from https://wiki.archlinux.org/title/Pacman/Package_signing<br />
:{{Unsigned|2022-12-02T07:53:41|Roblaing}}<br />
<br />
: This is caused by out of date keyring, what really should be added to the installation guide is starting the keyring sync service {{ic|systemctl start archlinux-keyring-wkd-sync}} before the pacstrap step, with a warning to check that it has finished running before continuing. This will allow both older ISOs to work and even current ISOs to work. December ISO is once again broken right now as openssl has too new a key. [[User:C0rn3j|C0rn3j]] ([[User talk:C0rn3j|talk]]) 23:21, 24 December 2022 (UTC)<br />
::archlinux-keyring-wkd-sync doesn't 'sync' the keyring, it refreshes it which is only helpful in a limited set of circumstances. Most of the time, it won't help these errors. [[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 03:21, 25 December 2022 (UTC)<br />
::: It however helps with the current issue and am sure the previous issues too, as they were fixable with partially installing archlinux-keyring on the ISO before. I am not aware of a better solution, unless reinitializing and populating the keyring as per OP is actually preferred? [[User:C0rn3j|C0rn3j]] ([[User talk:C0rn3j|talk]]) 11:05, 25 December 2022 (UTC)<br />
::::Reinitializing and populating the keyring is a solution for a completely different problem. [[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 13:32, 25 December 2022 (UTC)<br />
<br />
== Add tip for easily booting iPXE-arch.efi file from almost all hardware ==<br />
<br />
For most scenarios (I assume) it isn't necessary to flash an USB drive or burn a disk.<br />
You can simply put the PXE EFI binary on a drive and boot it from "BIOS" directly (works e.g. on Dell hardware). If your BIOS does not support loading arbitrary files directly, you can use the UEFI shell to do so if available. Otherwise you can simply put the image under {{ic|/EFI/BOOT/}} and name it bootx64.efi and select this drive from the boot menu. The drive might even be the boot partition, if you are going to do a reinstall. (Tested on Lenovo and Fujitsu notebooks) [[User:Flacer|Flacer]] ([[User talk:Flacer|talk]]) 14:06, 26 January 2023 (UTC)<br />
<br />
:[[Installation guide#Acquire an installation image]] already mentions the netboot image. And yes, it should work just fine on any system with an Ethernet connection. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 14:13, 26 January 2023 (UTC)<br />
<br />
:: That is true, but in my opinion it would be beneficial to emphasize this because esp. new users think of setting up a server etc. (me too, although I'm not quite a new user; discovered this by accident).<br />
<br />
::So it would be better to put it under [[Netboot]]? Anyway it would be helpful to place a link to that page, most appropriately under 1.3. -- [[User:Flacer|Flacer]] ([[User talk:Flacer|talk]]) 15:42, 26 January 2023 (UTC)<br />
<br />
:::I could be wiki-linked from 1.1 and ''somehow'' mentioned in 1.3. Just need to find the right words for it. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 14:55, 1 February 2023 (UTC)<br />
<br />
::::I think an additional link in 1.1 is too early. Currently, the downloads landing page links a dedicated netboot page, which at the end leads to the wiki article. Linking it earlier may mislead to users skipping the gpg steps in 1.2. and the landing page.<br />
::::In 1.3 we could replace "or a network with [[PXE]]:" with "or an appropriate [[PXE]]" for starters. And complement that by adding to the last intro sentence in [[PXE]] "This works well when you already have a server set up, but may (for installation purposes) also load the image directly from an official Arch mirror."<br />
::::--[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 22:52, 3 February 2023 (UTC)<br />
<br />
:::::I'm not too sure about "or an appropriate [[PXE]]". I assume most people would just place the netboot EFI binary in a USB flash drive and boot it directly. The fact that the images are iXPE builds is not that relevant. Perhaps 1.3 needs to explicitly differentiate the deployment methods of the ISO and netboot images since the links in the section are ISO specific. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:02, 4 February 2023 (UTC)<br />
<br />
::::::True, like two bullet points for ISO and iPXE in 1.3. I proposed "appropriate PXE", because (as Flacer mentions) current "network [[PXE]]" does indeed sound like you need to set up a server when you visit the article. How about switching [[PXE]] links to [[netboot]]?<br />
::::::--[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 19:23, 5 February 2023 (UTC)<br />
<br />
:::::::Well, you can still PXE-boot the ISO contents as the [[PXE]] article describes, so I don't think it's correct to remove the links.<br />
:::::::I would probably be best if [[Netboot]] had instructions on how to create a bootable medium from the image. At least for UEFI, since that's dead simple. IMHO 1.3. could then be turned into two sentences, one for the ISO deployment, one for netboot.<br />
::::::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:52, 6 February 2023 (UTC)<br />
<br />
::::::::Sure, it can; see the sentence I proposed above for [[PXE]]. I agree it is more important to edit both articles first. The simple method proposed by Flacer can be turned into a tip in the [[Netboot]] section you suggest. Afterwards we can see what changes are still useful in this main guide. Perhaps this item should be moved to [[Talk:Netboot]] for implementation first. --[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 18:44, 16 February 2023 (UTC)<br />
<br />
:::::::::There's [[Netboot#Boot from a USB flash drive]] that can be linked now. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 16:10, 26 March 2023 (UTC)<br />
<br />
:::::::::I drafted something below. [[Installation guide#Boot the live environment]] will need adjustment too, so suggestions welcome. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 14:59, 24 June 2023 (UTC)<br />
<br />
=== Prepare an installation medium (draft) ===<br />
<br />
The ISO can be supplied to the target machine via a [[USB flash installation medium|USB flash drive]], an [[Optical disc drive#Burning|optical disc]] or a network with [[PXE]]: follow the appropriate article to prepare yourself an installation medium from the ISO file.<br />
<br />
For the netboot image, follow [[Netboot#Boot from a USB flash drive]] to prepare a USB flash drive for UEFI booting.<br />
<br />
== Mention zram ==<br />
<br />
In [[Installation guide#Partition the disks]], The note mentions:<br />
<br />
:* [[Swap]] space can be set on a [[swap file]] for file systems supporting it.<br />
Should it be updated to add reference to [[zram]] as well ? Something like :<br />
:* As an alternative to a swap partition, [[Swap]] space can be set on a [[swap file]] for file systems supporting it, or in a [[Zram|compressed block device in ram]].<br />
<br />
-- [[User:Cvlc|Cvlc]] ([[User talk:Cvlc|talk]]) 23:04, 30 January 2023 (UTC)<br />
<br />
:I do not think zram is essential enough (compared to the defaults) for it to be mentioned in the [[Installation guide]], or even in [[General recommendations]]. The [[Improving performance|snake oil article]] references it and IMHO that's enough. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:22, 31 January 2023 (UTC)<br />
<br />
::(Re-opened, hope that's ok)<br />
::Certainly not essential, but it's one possible reason not to plan for a swap partition during the partitioning step. Distros like Fedora provide that [https://fedoraproject.org/wiki/Changes/SwapOnZRAM by default], it's a reasonable way to set up a system, I don't see any harm in mentioning it. People often read the installation guide many times before actually installing Arch, it's a perfect way to learn about possibilities, whereas [[Improving performance]] is probably most often read after installation on a running system. Swap files are already mentioned, so it doesn't require any extra note or clutter, just modifying a sentence, which is nice.<br />
::-- [[User:Cvlc|Cvlc]] ([[User talk:Cvlc|talk]]) 16:16, 31 January 2023 (UTC)<br />
<br />
:::If it were to be added to the installation guide, I want it to contain the phrase "swap on zram" instead of obfuscating it with "compressed block device in ram" or similar.<br />
:::I don't think we can link to [[Zram#Usage as swap]] unless it has a suggested size for the swap space.<br />
::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:13, 22 June 2023 (UTC)<br />
<br />
:: I was about to say, we can just link to the suggested size from the [[swap]] article but... there is no suggested size there either :)<br />
:: -- [[User:Cvlc|Cvlc]] ([[User talk:Cvlc|talk]]) 15:09, 22 June 2023 (UTC)<br />
<br />
:::There's [[Partitioning#Swap]], which IMO should be linked from [[Swap#Swap file]], but it doesn't actually say anything specific. Instead the recommended size is only listed in the [[Partitioning#Example layouts]] table.<br />
:::Still, does the general swap size recommendation apply to swap on zram? Is wasting 512 MiB of RAM enough?<br />
::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 16:24, 22 June 2023 (UTC)<br />
<br />
:: No you're right, the general swap size recommendation does not really apply to zram. A percentage of available RAM makes more sense. {{ic|zram-generator}} has a default of {{ic|1=zram-size = min(ram / 2, 4096)}}, Fedora uses [https://fedoraproject.org/wiki/Releases/34/ChangeSet#Scale_ZRAM_to_Full_Memory_Size 100%] of RAM. I've been using 100% without problems for quite a while. I would suggest 100% for regular desktop/laptop use, and 50% if having to deal with specific non compressible workloads (not sure what this would be though, I've had no problem with encoding of large video files, or such).<br />
:: -- [[User:Cvlc|Cvlc]] ([[User talk:Cvlc|talk]]) 16:50, 22 June 2023 (UTC)<br />
<br />
:::[[Fedora:Changes/Scale ZRAM to full memory size]] says that it's 8 GiB max, so not "100%". And we shouldn't blindly follow Fedora either, their change reasoning is not always properly documented. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 15:05, 24 June 2023 (UTC)<br />
<br />
== <s>Make LVM Link More Relevant to Partitioning Disks</s> ==<br />
<br />
In [[Installation_guide#Partition_the_disks]], where it briefly mentions LVM and to "do it now", the link should redirect the user to [[Install_Arch_Linux_on_LVM]] instead of [[LVM]] because it does not explain in detail to use the ''Linux LVM'' partition type, and other necessary commands to activate it. <br />
<br />
[[User:Xulingo|Xulingo]] ([[User talk:Xulingo|talk]]) 06:34, 12 May 2023 (UTC)<br />
<br />
:[[Special:Diff/781725|Done]]. Thanks! -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 16:30, 22 June 2023 (UTC)<br />
<br />
== "2.2 Install essential packages" needs more specific suggestions for absolute beginners. ==<br />
<br />
I personally had a lot of problems with the installation and had to resort to "walk-throughs" that just caused hours of headaches. I will point out some of the problems I had with this section.<br />
<br />
"userspace utilities for the management of file systems that will be used on the system" <br />
is wordy and vague. It is unhelpful to someone completely new. The hyperlink points to types of file systems which is not intuitive to the statements suggestion. At the very least, "userspace utilities" should be hyperlinked to a section of programs the statement is suggesting. Several months on, I still am unsure of what they are eluding to.<br />
<br />
"specific firmware for other devices not included in linux-firmware (e.g. sof-firmware for sound cards)"<br />
An absolute beginner does not know what specific firmware are not included in linux-firmware. The suggestion of sound cards is extremely outdated, and frankly makes it seem like linux-firmware is going to leave you needing a lot of drivers if it cannot even operate your sound card out of the box. This confusion led me down a rabbit hole of installing(or trying to find) CPU microcode updates, nvidia drivers, wired or wireless drivers, motherboard drivers, and so on.<br />
<br />
"software necessary for networking (e.g. a network manager or a standalone DHCP client, authentication software for Wi-Fi, ModemManager for mobile broadband connections)" My first problem was I was unaware of the need to systemctl enable the networking software, which led me to installing multiple DHCP clients and causing issues further down the road. I am now aware that if I had read more into the software. I believe a simple reminder to systemctl enable the networking software could save a lot of people problems. <br />
<br />
"a text editor,"<br />
The hyperlink just throws a list of 70 or so text editors at you. This is quite needlessly daunting to someone new. Even something as basic as "e.g. vim" would have spared me from being so overwhelmed this far into my troubles with this section. <br />
<br />
"packages for accessing documentation in man and info pages: man-db, man-pages and texinfo."<br />
This should take priority above all by being placed first in this list. <br />
<br />
I would recommend a section "2.2.1 Example(s) of essential packages" be created that shows at least one example of a typical users desktop computer, and what they would install on this step.<br />
<br />
{{Unsigned|21:12, 12 June 2023 (UTC)|Todd the king}}<br />
<br />
:I would refer you to https://wiki.archlinux.org/title/Arch_Linux#User_centrality. Arch's target audience isn't absolute beginners, it's experienced Linux users that know what they want and how they want their system set up. [[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 22:37, 12 June 2023 (UTC)<br />
<br />
::It is targeted at the proficient GNU/Linux user, or anyone with a do-it-yourself attitude who is willing to read the documentation, and solve their own problems. {{Unsigned|21:12, 12 June 2023 (UTC)|Todd the king}}<br />
<br />
:::And your argument is that you don't want to read the documentation. Arch dosen't make these decisions for you, you need to either know what you want or be willing to figure out what you want. [[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 22:49, 12 June 2023 (UTC)<br />
<br />
::::I did read the documentation, and I did figure out what I wanted. It took much longer than it should have because the instructions were hazy on this section. Why give any examples of software or suggestions of configuration to use in the article at all if this is the mindset of the guide? Where is the line and why? [[User:Todd the king|Todd the king]] ([[User talk:Todd the king|talk]]) 23:09, 12 June 2023 (UTC)<br />
<br />
:First of all, welcome :)<br />
:Now, I'm sorry but: <br />
<br />
::"userspace utilities for the management of file systems that will be used on the system" <br />
::is wordy and vague. It is unhelpful to someone completely new. The hyperlink points to types of file systems which is not intuitive to the statements suggestion. At the very least, "userspace utilities" should be hyperlinked to a section of programs the statement is suggesting. Several months on, I still am unsure of what they are eluding to.<br />
<br />
:The very first section of the linked page (i.e. [[File systems#Types of file systems]] has a table which helpfully has a "Userspace utilities" column, I fail to see how skipping the page introduction would make this more obvious. <br />
<br />
::"specific firmware for other devices not included in linux-firmware (e.g. sof-firmware for sound cards)"<br />
::An absolute beginner does not know what specific firmware are not included in linux-firmware. The suggestion of sound cards is extremely outdated, and frankly makes it seem like linux-firmware is going to leave you needing a lot of drivers if it cannot even operate your sound card out of the box. This confusion led me down a rabbit hole of installing(or trying to find) CPU microcode updates, nvidia drivers, wired or wireless drivers, motherboard drivers, and so on.<br />
<br />
:An absolute beginner's encouraged to seek help if he's unsure of what advice is applicable to its hardware. As shown in the tables in [[Laptop/Lenovo]], various recent laptops ''do'' require [[ALSA firmware]], while some models require specific drivers (and its respective firmware) for wireless networking: [[Broadcom wireless]], or even some USB3 chipsets on the motherboard with {{AUR|upd72020x-fw}} for example. <br />
<br />
::"software necessary for networking (e.g. a network manager or a standalone DHCP client, authentication software for Wi-Fi, ModemManager for mobile broadband connections)" My first problem was I was unaware of the need to systemctl enable the networking software, which led me to installing multiple DHCP clients and causing issues further down the road. I am now aware that if I had read more into the software. I believe a simple reminder to systemctl enable the networking software could save a lot of people problems. <br />
<br />
: Someone manually configuring a [[Network configuration#Static IP address|static ip connection]] would not need that step, while every dedicated [[network manager]] page explains the need for enabling their respective systemd unit. <br />
<br />
::"a text editor,"<br />
::The hyperlink just throws a list of 70 or so text editors at you. This is quite needlessly daunting to someone new. Even something as basic as "e.g. vim" would have spared me from being so overwhelmed this far into my troubles with this section. <br />
<br />
:Not picking a default text editor is a feature and not a bug: every choice made of a "sane default" would create endless bikeshedding (see [[Wikipedia:Editor war]]), although a popular beginner friendly one has been used as an example in [[Help:Reading#Append, add, create, edit]]. <br />
<br />
::"packages for accessing documentation in man and info pages: man-db, man-pages and texinfo."<br />
::This should take priority above all by being placed first in this list. <br />
<br />
:Man pages can be accessed with man.archlinux.org instead of wasting bandwidth and disk space by installing and updating a local version. <br />
<br />
::I would recommend a section "2.2.1 Example(s) of essential packages" be created that shows at least one example of a typical users desktop computer, and what they would install on this step.<br />
<br />
: This guide is not specific to desktop users, a dedicated section is out of scope. <br />
<br />
: As a general answer, our aim is to provide readers with the information they need to make an educated decision at every step, not rubber stamping the [https://pkgstats.archlinux.de/ popularity] of various software solutions. <br />
: While a little overwhelming at first, this approach has proven itself to be the best working on the long term: [[Help:Reading#Organization]]. <br />
: --[[User:Erus Iluvatar|Erus Iluvatar]] ([[User talk:Erus Iluvatar|talk]]) 00:07, 13 June 2023 (UTC)<br />
<br />
:I replaced "sound cards" with "onboard audio" which will hopefully get the message across better. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 05:56, 13 June 2023 (UTC)<br />
<br />
:After a bit of staring at [[Installation guide#Install essential packages]], I can confidentially say I can find some fault in each and any bullet point. So, starting from the top, I propose changing the first one to:<br />
::[[File systems|userspace utilities for file systems]] that will be used on the system—for the purposes of e.g. file system creation and [[fsck]],<br />
: It gets rid of the vague "for the management" and adds actual reasons for wanting the userspace utilities.<br />
: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 06:37, 13 June 2023 (UTC)<br />
<br />
::Since no one objected, and I finally remembered this discussion, I updated the page per my suggestion above. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:06, 22 June 2023 (UTC)<br />
<br />
:"utilities for accessing [[RAID]] or [[LVM]] partitions" could be replaced with something like:<br />
::utilities for accessing and managing [[RAID#Installation|RAID]] or [[LVM#Installation|LVM]] if they will be used on the system,<br />
:These things can actually be ''managed'', and they are not limited to ''partitions''. Also IMO it's better to directly link to the section that lists the packages to install.<br />
: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:48, 22 June 2023 (UTC)<br />
<br />
::[[Special:Diff/782222|Done]]. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:23, 30 June 2023 (UTC)<br />
<br />
:On to the next one:<br />
::specific firmware for other devices not included in {{Pkg|linux-firmware}} (e.g. {{Pkg|sof-firmware}} for [[Advanced Linux Sound Architecture#ALSA firmware|onboard audio]], {{Pkg|linux-firmware-marvell}} for Marvell wireless and any of the multiple firmware packages for [[Broadcom wireless]]),<br />
:It lists the only split-package of {{Pkg|linux-firmware}} that I've heard anyone actually need and also the dreaded Broadcom wireless.<br />
: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:23, 30 June 2023 (UTC)<br />
<br />
== Use /sys/firmware/efi/fw_platform_size to verify the boot mode ==<br />
<br />
For a year now, the official ISO can boot on IA32 UEFI. Since IA32 UEFI needs special considerations, I think [[Installation guide#Verify the boot mode]] could be changed to distinguish not just the whether one has booted in UEFI vs BIOS (CSM) mode, but also the UEFI bitness. See the following draft. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 14:44, 24 June 2023 (UTC)<br />
<br />
: Looks fine to me -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 16:05, 24 June 2023 (UTC)<br />
<br />
: I've made a slight change, IMO we don't need to state that we "try" anything? --[[User:Erus Iluvatar|Erus Iluvatar]] ([[User talk:Erus Iluvatar|talk]]) 16:20, 24 June 2023 (UTC)<br />
: BTW, I think there is also [https://github.com/systemd/systemd/pull/22550 support] from [[systemd-boot]], and link-ifying [[GRUB]] might also be helpful in that part of the sentence ? --[[User:Erus Iluvatar|Erus Iluvatar]] ([[User talk:Erus Iluvatar|talk]]) 17:31, 24 June 2023 (UTC)<br />
<br />
::Yes, systemd-boot supports it, but the {{Pkg|systemd}} package does not build and package IA32 EFI binaries. Someone would need to open a feature request for that. There's also {{Pkg|syslinux}} which ships IA32 EFI binaries, but, if I understand it correctly, [https://bugzilla.syslinux.org/show_bug.cgi?id=75 those do not work on real hardware].<br />
::As for linking to [[GRUB]], I chose not to because nothing in there is relevant at the [[Installation guide#Verify the boot mode]] stage.<br />
:: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 17:53, 24 June 2023 (UTC)<br />
<br />
:::Thanks! Given this context the draft is good then :) --[[User:Erus Iluvatar|Erus Iluvatar]] ([[User talk:Erus Iluvatar|talk]]) 18:16, 24 June 2023 (UTC)<br />
<br />
=== Verify the boot mode (draft) ===<br />
<br />
To verify the boot mode, check the UEFI bitness:<br />
<br />
# cat /sys/firmware/efi/fw_platform_size<br />
<br />
If the command returns {{ic|64}}, then system is booted in UEFI mode and has a 64-bit x64 UEFI. If the command returns {{ic|32}}, then system is booted in UEFI mode and has a 32-bit IA32 UEFI; while this is supported, it will limit the boot loader choice to GRUB. If the file does not exist, the system may be booted in [[Wikipedia:BIOS|BIOS]] (or [[Wikipedia:Compatibility Support Module|CSM]]) mode. If the system did not boot in the mode you desired (UEFI vs BIOS), refer to your motherboard's manual.<br />
<br />
== EFI bootloader may not work if you didn't mark partition as ESP ==<br />
<br />
As it stands, the installation guide won't work at least for {{ic|systemd-boot}} (maybe for other bootloaders as well, I didn't test that), because after you created the partition and formatted as FAT32, it will lack {{ic|esp}} mark. An example of marking as such: {{ic|parted /dev/sdX set 1 esp}} (substitute /dev/sdX with device name and 1 with the partition number).<br />
<br />
In absence of that e.g. {{ic|bootctl install}} bails out with {{ic|File system "/dev/sdaX" has wrong type for an EFI SystemPartition (ESP)}}.<br />
<br />
Please, could somebody with write permission add a 1.9.2 paragraph mentioning necessity to mark the partition as such, ideally with the {{ic|parted}} example I posted here.[[User:Hi-Angel|Hi-Angel]] ([[User talk:Hi-Angel|talk]]) 11:13, 7 July 2023 (UTC)<br />
<br />
:[[Installation guide#Partition the disks]] links to [[EFI system partition]] in which [[EFI system partition#GPT partitioned disks]] has instructions for all the relevant partitioning tools, including parted. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 11:18, 7 July 2023 (UTC)<br />
<br />
::Sorry, you're right. The {{ic|fdisk}} instruction mentions creating a partition of type {{ic|EFI System}}, but somehow I completely missed such prompt when creating a partition with {{ic|fdisk}}, so I simply didn't know something went wrong till I figured out there has to be a mark {{ic|esp}}.[[User:Hi-Angel|Hi-Angel]] ([[User talk:Hi-Angel|talk]]) 11:29, 7 July 2023 (UTC)</div>Hi-Angelhttps://wiki.archlinux.org/index.php?title=Talk:Installation_guide&diff=782698Talk:Installation guide2023-07-07T11:17:39Z<p>Hi-Angel: Reproduced the error and changed the text to exactly match it</p>
<hr />
<div>== Read this first before adding new suggestions ==<br />
<br />
* systemd tools such as ''hostnamectl'', ''timedatectl'' and ''localectl'' [https://github.com/systemd/systemd/issues/798#issuecomment-126568596 do not work] in the installation chroot environment, so please do not propose to use them in the guide unless you can prove that they have been made to work also in that case. See [https://wiki.archlinux.org/index.php?title=Talk:Beginners%27_guide&oldid=388727#General_problems], [https://wiki.archlinux.org/index.php?title=Talk:Beginners%27_guide&oldid=404695#Replace_commands_with_their_systemd_equivalents], [https://wiki.archlinux.org/index.php?title=Talk:Beginners%27_guide&oldid=418662#Utilizing_systemd_tools] and [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=434985#change_configuration_system_from_old_way_to_new_way.28using_systemd_commands.29] for some past discussions about this issue.<br />
* {{ic|localectl list-keymaps}} does not work due to bug {{Bug|46725}}. For the chosen replacement command, see [https://wiki.archlinux.org/index.php?title=Talk:Beginners%27_guide&oldid=435044#localectl].<br />
* Due to the wide variety of available boot loaders, the installation guide refers to [[Arch boot process#Boot loader]] instead of making a specific recommendation for the installed system. See [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=687325#Bootloader], [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=690612#Make_the_Boot_Loader_Section_slightly_more_detailed_to_provide_a_high_level_overview_for_new_users], [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=678949#Expand_Boot_loader_section], [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=660151#Expand_Boot_loader_section_to_include_example_commands], [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=581427#Boot_loader_installation] for some past discussions on this topic.<br />
* While [[:Category:Installation process]] lists additional installation methods (e.g. [[archinstall]] or [[systemd-firstboot]]), the installation guide does not reference them due to their specific nature. [[Install Arch Linux with accessibility options]] is an exception. See [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=698307#Point_out_archinstall] for past discussion on this topic.<br />
-- [[ArchWiki:Administrators|The ArchWiki Administrators]] 22:17, 2 September 2016 (UTC)<br />
__TOC__<br />
<br />
== Link to the German version ==<br />
<br />
Instead of [[de:Arch Install Scripts]] you could choose [[de:Anleitung für Einsteiger]] it means "Beginner's Guid" and is a very <br />
detailed artikel for very new arch users and the future experts.<br />
<br />
:Thank you, [https://wiki.archlinux.org/index.php?title=Installation_guide&type=revision&diff=509961&oldid=508505 done]. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 16:31, 6 February 2018 (UTC)<br />
<br />
::This was already proposed last year and rejected: [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=466950#Suggesting_different_page_for_German_translation]. I don't see what has changed since then. If someone adds me as admin to the german wiki or changes the protection settings, I can update [[de:Arch Install Scripts]] as required. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 18:13, 6 February 2018 (UTC)<br />
<br />
:::I see, I didn't remember that discussion so I've reverted the change, hopefully you'll make it to update the translation, let's leave this open until the problem is solved, otherwise this kind of suggestion will keep appearing recurrently. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 17:53, 7 February 2018 (UTC)<br />
<br />
::::Apparently since last year the translation has been halved in size, but its scope is still much larger than the [[Install guide]] (or even the old [[Beginners' guide]]). -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 09:42, 9 May 2021 (UTC)<br />
<br />
== First mention of /mnt in example partition layout ==<br />
<br />
{{ic|/mnt}} is mentioned at mount point in [[Installation_guide#Partition_the_disks]], while {{ic|/mnt}} is made explicit two sections later in [[Installation_guide#Mount_the_file_systems]]. As I recall it, this was changed because some users blindly copy pasted commands and mounted /boot on the live system, instead of /mnt/boot. Some options:<br />
<br />
* Introduce another column describing the mount point on the installed system. <br />
* Actually explain /mnt early.<br />
* Revert the "mount point" to not include /mnt.<br />
<br />
-- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 13:03, 7 September 2019 (UTC)<br />
<br />
:I don't understand what's the actual problem here... -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 09:36, 8 September 2019 (UTC)<br />
<br />
::From what I read on [[ArchWiki:IRC|#archlinux-wiki]], this comes from https://www.reddit.com/r/archlinux/comments/d0v0j3/is_it_just_me_or_is_the_prospect_of_installing/ where the user was confused by the lack of root mountpoint (i.e. {{ic|/mnt}} vs {{ic|/}}). A question could be raised, if we should concern ourselves with users who have strong opinions about the wiki content yet can't be bothered to propose improvements in the talk pages...<br />
::About Alad's proposed options: I disagree with the first option, I think it will just complicate things even further. I support the third option and maybe adjusting the column header like in [[Special:Diff/581800]].<br />
::I'd actually would like to go even further and change the commands run from outside chroot to be visually distinct, e.g.: {{bc|1=<span style="color: #ff0000;">root@archiso #</span> mount /dev/sd''X1'' /mnt}}<br />
::I think it would better solve the underlying issue. <br />
:: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 15:26, 8 September 2019 (UTC)<br />
<br />
:::I'm not overly fond of the longer column name. For the last proposed option, I may agree if this is formalized in [[Help:Style]], so that it is not specfic to the [[Installation guide]]. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 11:20, 10 September 2019 (UTC)<br />
<br />
::::Adding it [[Help:Style]] was my intention, since other articles, too, will need to use that style for some commands. I'm thinking of creating a template for it: [[Special:Permalink/581945]]. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:19, 11 September 2019 (UTC)<br />
<br />
:::::Sounds good to me, I'd just prefer the regular (non-bold) font for the prompt as above. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 21:54, 13 September 2019 (UTC)<br />
<br />
::::::[[Special:Permalink/582327]]. Are there any other opinions about creating such a template? Or should I take this discussion to [[Help talk:Template]] per [[Help:Template#Creation]]? -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 18:31, 14 September 2019 (UTC)<br />
<br />
:::::::# How are you going to call the template? This template would probably add to the [[Help:Template#Code formatting templates]] series, should it be named in a consistent fashion?<br />
:::::::# Should this template support custom prompts, and if so, should it be called "pc" (from "(custom) prompted" code)?<br />
:::::::# I don't like the red color too much, if bold is not an option maybe we can go green|purple|blue, something that recalls less a warning of some kind? Or can we just leave it with the default font color? Or a slightly fainter black?<br />
:::::::# I haven't looked well into it, but maybe we can instead add an optional argument to [[Template:bc]] and [[Template:hc]] that prefixes a custom (colored) prompt? I wouldn't see a problem with repeating "root@archiso #" in every instance, or we may derive the new template from those two at that point.<br />
:::::::# The template should probably be derived from [[Template:bc]] in any case, for simpler code, see [[User:Kynikos/Template:Sandbox2]].<br />
:::::::-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 17:36, 16 September 2019 (UTC)<br />
<br />
::::::::# Initially I was going to call it [[Template:Archiso]] since it would be [[Archiso]]-specific, but I'm starting to think that creating a more general-purpose template would be better. It could then be used in [[PostgreSQL]] and the {{ic|[postgres]$}} convention would get formalized in [[Help:Style]]. Now the issue is the {{ic|[user@peer-a]#}} in [[Template:hc]] used in [[WireGuard]]. I'd rather not create two new templates, but I'm having trouble getting [[Template:Sandbox]] to work :(<br />
::::::::# I like your "[[Template:pc]]" suggestion.<br />
::::::::# Be glad I didn't post my first draft that was ''slightly more'' colorful. From your offered colors, I'd choose purple.<br />
::::::::# I'd rather not mess with the established templates just for this change, so I'd prefer creating a new template.<br />
::::::::# I didn't even think about using [[Template:bc]]. Is it a good idea to do that? The new template might need to be updated if [[Template:bc]] is ever changed in an incompatible way.<br />
:::::::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 07:33, 17 September 2019 (UTC)<br />
<br />
:::::::::Yeah, after viewing your attempts and looking into it myself, I think modifying bc/hc is out of discussion, it would add too much code/style for so little use.<br />
:::::::::Thinking about this again one day after, I feel I'm realizing that my concerns in general may descend from the fact that we're going to create a template to represent (block) code, even though we already have 2 which basically do the same thing, including allowing to include a prompt; the only addition of this "Archiso" or "pc" template would be the formatting around the prompt, so why not keep it simple (I know, "simplicity" is often subjective and controversial) and instead either make a [[Template:Archiso]] to be used like {{ic|<nowiki>{{bc|{{Archiso}} mount /dev/sdX1 /mnt}}</nowiki>}} or [[Template:ps]] (or [[Template:PS]]) to be used like {{ic|<nowiki>{{hc|{{ps|root@archiso #}} mount /dev/sdX1 /mnt}}</nowiki>}}? They also work with [[Template:hc]] and space-prefixed code blocks!<br />
:::::::::Putting the choice of color aside, if the above idea of a standalone prompt template isn't welcome, I think my second choice would be to make two [[Template:pbc]] and [[Template:phc]] that work like {{ic|<nowiki>{{pbc|$|ls}}</nowiki>}} and {{ic|<nowiki>{{phc|$|ls|...}}</nowiki>}}, with the style rule to use them only in case of complex prompts. I'd still derive them from bc/hc to inherit any changes that we'd decide to make to them, and avoid repeating that ugly &lt;pre> hack even more.<br />
:::::::::Otherwise I give up and accept the [[Template:Archiso]] that works like {{ic|<nowiki>{{Archiso|mount /dev/sdX1 /mnt}}</nowiki>}}, in the hope that one day we won't need an analogous "hc" version.<br />
:::::::::-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 14:24, 17 September 2019 (UTC)<br />
<br />
::::::::::I can't say I really like the idea of {{ic|<nowiki>{{bc|{{Archiso}} mount /dev/sdX1 /mnt}}</nowiki>}} or {{ic|<nowiki>{{hc|{{ps|root@archiso #}} mount /dev/sdX1 /mnt}}</nowiki>}}. I'd prefer creating [[Template:pbc]] and [[Template:phc]].<br />
::::::::::I still don't get what's wrong with [[Template:Sandbox]]. It should just work:<br />
<br />
<pre<noinclude></noinclude> {{#if: code|style="margin-bottom: 0; border-bottom:none; padding-bottom:0.8em;"}}>prompt # command</pre<noinclude></noinclude>><noinclude><!-- The &lt;noinclude>&lt;/noinclude> hack is needed to allow wiki markup inside the pre tags; reference: http://www.gossamer-threads.com/lists/wiki/mediawiki/118688#118688 --><br />
{{#if: code|<pre<noinclude></noinclude> style="margin-top: 0; border-top-style:dashed; padding-top: 0.8em;">code</pre<noinclude></noinclude>>}}<br />
<br />
:::::::::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 04:43, 18 September 2019 (UTC)<br />
<br />
:::::::::::FWIW (and a bit of fun) I've fixed [[Template:Sandbox]], although I'm not sure if we really need that level of automation ^^ I stick to my position above, is there a third (or more) opinion? -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 15:48, 18 September 2019 (UTC)<br />
<br />
:::::::::I think you like the [https://wiki.archlinux.org/index.php?title=User_talk:Nl6720&diff=447834&oldid=447833 #800080] shade of purple, right? ;-) [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 11:39, 21 September 2019 (UTC)<br />
<br />
::::::::::Yes, I do like that one :D but I think it would be too bright for this template. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 11:52, 21 September 2019 (UTC)<br />
<br />
:::::::::::Any news on this one? If not, I haven't seen this kind of issue or confusion occur since. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 09:37, 31 October 2021 (UTC)<br />
<br />
::::::::::::I don't think I want to create such a template anymore, since it would require updating other installation related pages. To go back to your originally proposed options, I'm for explaining {{ic|/mnt}} early. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:42, 4 November 2021 (UTC)<br />
<br />
== Buggy graphics driver ==<br />
<br />
Can there be a hint that nomodeset parameter could be used if the graphics driver is buggy (I've heard nouveau may be buggy sometimes)<br />
[[User:M.Srikanth|M.Srikanth]] ([[User talk:M.Srikanth|talk]]) 04:47, 12 May 2020 (UTC)<br />
<br />
:I would expect this to be mentioned in [[General_troubleshooting]]... -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 09:43, 31 October 2021 (UTC)<br />
<br />
== GitLab blobs in Lynx ==<br />
<br />
Links to files (blobs) on gitlab.archlinux.org are not readable in Lynx (or any other console web browser); see https://gitlab.com/gitlab-org/gitlab/-/issues/26567.<br />
<br />
Should the Installation guide link to raw files instead?<br />
<br />
-- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 12:29, 4 August 2020 (UTC)<br />
<br />
:Maybe you could ask svenstaro to add it to https://gitlab.com/gitlab-org/gitlab/-/issues/232073... -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 12:36, 4 August 2020 (UTC)<br />
<br />
::It has been filed under [https://gitlab.com/gitlab-org/gitlab/-/issues/232073#nice-to-have nice to have]. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 17:19, 4 August 2020 (UTC)<br />
<br />
:::Instead of using raw links we should perhaps consider if we need links to gitlab at all. The guide has:<br />
:::* [https://gitlab.archlinux.org/archlinux/mkinitcpio/mkinitcpio-archiso/blob/master/docs/README.bootparams README.bootparams]<br />
:::* <s>[https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/systemd/network/20-ethernet.network Ethernet]</s><br />
:::* <s>[https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/systemd/network/20-wlan.network WLAN]</s><br />
:::* <s>[https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/systemd/network/20-wwan.network WWAN]</s><br />
:::* <s>[https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/xdg/reflector/reflector.conf reflector.conf]</s><br />
:::* <s>[https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/packages.x86_64 packages.x86_64]</s><br />
:::Notice how all but one of these share the common path [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng archiso/-/blob/master/configs/releng]. Unless this level of specificity is really required, we could link to this path "for an overview of configuration files shipped with archiso" instead. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 09:35, 31 October 2021 (UTC)<br />
<br />
::::I'd prefer simply removing some of the links.<br />
::::* [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/systemd/network/20-ethernet.network Ethernet], [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/systemd/network/20-wlan.network WLAN] and [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/systemd/network/20-wwan.network WWAN] don't provide much value here, so they can be moved to [[systemd-networkd#Configuration examples]].<br />
::::* [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/xdg/reflector/reflector.conf reflector.conf] is there just for citation purposes. The [[reflector]] article already explains how the software works.<br />
:::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:30, 4 November 2021 (UTC)<br />
<br />
::::: Alright, I've removed those links. ([[Special:Diff/700696]], [[Special:Diff/700693]]) -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 11:39, 4 November 2021 (UTC)<br />
<br />
::::: Now that mirrors provide a symlink to the latest ISO version, it's possible to link to {{ic|pkglist.x86_64.txt}}. [[Special:Diff/730318|I replaced packages.x86_64 with it]]. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 07:31, 21 May 2022 (UTC)<br />
<br />
:Is Lynx (un)readability such a big problem in this case? People using Lynx from the archiso can open up the relevant file in the live system itself... — [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 18:05, 31 October 2021 (UTC)<br />
<br />
== Post-installation ==<br />
<br />
I skipped steps in the guide so I faced a weird crash in gnome without any explanations. I suggest a note.<br />
<br />
{{Note|Many of them assume that you have your timezone or locales set up. Make sure you have followed all the steps.}}<br />
<br />
[[User:Escope|Escope]] ([[User talk:Escope|talk]]) 10:11, 2 April 2021 (UTC)<br />
<br />
:The reader is supposed to follow all the steps. If we apply that to other pages, the pages need a boatload of notes to make sure the reader did not skip any steps. A common functional system has properly configured locales and timezones.<br />
:Since this is GNOME-specific however I would at most add a section into [[GNOME/Troubleshooting]] or even [[General troubleshooting]], but I still think this is out of scope to be honest. Many applications may not work properly when the timezones or locales are not correctly configured.<br />
:-- [[User:NetSysFire|NetSysFire]] ([[User talk:NetSysFire|talk]]) 15:30, 2 April 2021 (UTC)<br />
<br />
::The reader is not supposed to follow all the steps in case one doesn't worthy of attention. In my humble opinion, that's why it has huge advantage over the "Next-Next-Finish" approach. Unconfigured locales or timezones are obvious to many people, but my inexperience made me spend some time to sorting out. The other pages are highly deep and clear about the steps and why they are needed, my eyes enjoy such notes, pages are boatloaded already and I like it a lot =D. Thank you for your attention to this little change.<br />
<br />
::-- [[User:Escope|Escope]] ([[User talk:Escope|talk]]) 00:23, 3 April 2021 (UTC)<br />
<br />
:::If you're inexperienced, what makes you think you can judge if a step is necessary or not? You thought you knew better than the people that wrote the guide and found out that you didn't. Not something that needs changed here IMO.<br />
:::[[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 01:57, 3 April 2021 (UTC)<br />
<br />
:::The ArchWiki should also be about the why-aspect. I am in favor of adding e.g a note about why they are needed and why some applications may crash or behave strangely without properly configured timezones/locales. If you know e.g a nice blog post about this topic, why not add something like this?<br />
:::{{Note|Some applications may behave in strange ways or even crash when the timezones and/or locales are not properly configured. See [https://xkcd.com/1084/ this informative blog post] to know why that is.}}<br />
:::The note needs obviously some rewording, but something like this would fit in well in my opinion.<br />
:::-- [[User:NetSysFire|NetSysFire]] ([[User talk:NetSysFire|talk]]) 02:02, 3 April 2021 (UTC)<br />
<br />
::::Adding a '''brief''' "why" would be ok, but using [[Template:Note]] would be too much. I've also always wanted to emphasize the "and" in [[Installation guide#Localization]], since it's easy to miss (even some of the translated installation guides do not mention {{ic|en_US.UTF-8 UTF-8}}). --- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 08:48, 3 April 2021 (UTC)<br />
<br />
:::::People who want to know the "why" can already consult the relevant articles. That said, consistency is lacking: some sections explain in detail why a step should be performed (such as [[Installation_guide#Verify_signature]]), whereas [[Installation_guide#Configure_the_system]] is mostly a checklist of steps with brief instructions how. The solution isn't obvious: adding notes all over would likely more distract than clarify. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 19:41, 14 April 2021 (UTC)<br />
<br />
::::::I'm definitely apposed to adding notes, but I don't see why we couldn't add brief "why"s without them. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 06:55, 15 April 2021 (UTC)<br />
<br />
== Remove parted ==<br />
<br />
Due to parted [[Advanced Format#Partition alignment|not aligning the partition size]] (and with no patch in sight) which prevents using 4096 byte sectors with dm-crypt/LUKS unless explicitly planned before, I'd like to remove the "[[parted]]" link from [[Installation guide#Partition the disks]]. An alternative would be to change all examples in [[Parted]] to not use percentages and warn against using them. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 07:21, 7 April 2022 (UTC)<br />
<br />
:I prefer to change the examples in [[Parted]]. Just removing the link from installation guide won't stop people from using the tool. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 10:52, 7 April 2022 (UTC)<br />
<br />
== Note on Network Setup ==<br />
<br />
One of the most common installation issues that comes up on Reddit, Forums, and other discussion areas is not having done any sort of network setup. While the Installation Guide explicitly call out Network Setup as a required step, I suspect people are mistakenly believing the setup steps they did already to establish a connection on the installer will carry over to their installed system. <br />
<br />
I propose adding a note such as (example content):<br />
<br />
{{Note| Configuring your network connection above only established your network for the installer. This section will configure the network for your installed Arch system. Failure to do so may leave you without network access after completing installation.}} [[User:Nalthien|Nalthien]] ([[User talk:Nalthien|talk]]) 17:40, 15 May 2022 (UTC)<br />
<br />
:Such a thing [[Help:Style#Notes, Warnings, Tips|does not warrant a warning]] since there's nothing dangerous about being offline. It may even be the safest state the system will ever be. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:24, 18 May 2022 (UTC)<br />
<br />
:: I can agree that it doesn't warrant a Warning given the style guide; however, I do think a Note would be appropriate to "highlight information easily overlooked." It's clearly overlooked quite often. [[User:Nalthien|Nalthien]] ([[User talk:Nalthien|talk]]) 17:36, 20 May 2022 (UTC)<br />
<br />
:[[Installation guide#Connect to the internet]] already explains (or tries to, at least) that the live environment's network setup has nothing to do with the installed system. Perhaps the list items in [[Installation guide#Install essential packages]] could be made a little more verbose to explain '''why''' someone may want to install those things. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:24, 18 May 2022 (UTC)<br />
<br />
I propose adding something like the following:<br />
<br />
''To configure the freshly installed system's network for out-of-the-box ethernet DHCP functionality as on the installation image, create a simple /etc/systemd/network/20-wired.network file for your adapter Name, eg:''<br />
<br />
[Match]<br />
<br />
Name=enp1s0<br />
<br />
[Network]<br />
<br />
DHCP=yes<br />
<br />
''Also, enable both systemd-networkd.service and systemd-resolved.service''<br />
<br />
1. It will only take up a few lines; it is succinct, effective and informative. <br />
2. Further, the functionality on reboot will mimic functionality in the installation image.<br />
3. It uses simple built-in services without installing anything extra. <br />
4. It will also cut down on forum noise immensely.<br />
[[User:Misfit138|Misfit138]] ([[User talk:Misfit138|talk]] 11:11 21 March 2023 (UTC-5)<br />
<br />
: It's also incomplete, as systemd-resolved takes some setup. And it would cause more problems on the forums when people then enable NM or whatever and have both. There's a reason the network configuration page is linked. [[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 15:14, 21 March 2023 (UTC)<br />
<br />
:: systemd-resolved setup is optional according to the network configuration page, and I can confirm this to be the case on a bare-metal workstation as well as a VM. Doing the above minimal steps results in full functionality for a simple dhcp setup and mimics the ootb install image function. Further, installing NM as you indicated would result in a chicken or egg problem before reading a wall of text and realizing they have to setup a trivial and perhaps temporary dhcp solution in order to install a more permanent one anyway. The user has the ability to install packages in the chrooted environment, yes, but the expectation of a functional network in a freshly booted system is reasonable. One explanatory sentence or phrase can inform users that only one network config scheme is needed, as well as a brief warning to avoid conflicts (such warnings already exist elsewhere). The net conf. page can and should still be linked, but it is a monstrous page for something so trivial that can be suggested so succinctly. sent from my phone, will clean up formatting. -- [[User:Misfit138|Misfit138]] ([[User talk:Misfit138|talk]]) 11:37 22 March 2023 (UTC-5)<br />
<br />
:::systemd-networkd only supports using systemd-resolved for DNS. A network connection without working DNS is not something most people would want. I think the best we could do is to explicitly link to [[systemd-networkd]] as an example in [[Installation guide#Install essential packages]]. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 16:16, 22 March 2023 (UTC)<br />
<br />
::::With just the /etc/systemd/network/20-wired.network file, and no other network tools, and after starting networkd and resolved, I can ping sites and visit urls with links and lynx; ostensibly, something is resolving DNS for me(?) (Confirmed on VM and bare-metal.) However, I must regretfully admit that I am not likely to compel you with the principles I have set forth. Thank you for your time and for considering this. -- [[User:Misfit138|Misfit138]] ([[User talk:Misfit138|talk]]) 13:35 22 March 2023 (UTC-5)<br />
<br />
:::::I missed that you suggested to also enable {{ic|systemd-resolved.service}}. In that case, just as [[systemd-resolved#DNS]] says, DNS will only work for software that do not parse {{ic|/etc/resolv.conf}} themselves. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 17:44, 22 March 2023 (UTC)<br />
<br />
:Perhaps the "software necessary for networking" bullet point in [[Installation guide#Install essential packages]] could be extended with a tip that suggests using systemd-networkd + systemd-resolved and copying {{ic|/etc/systemd/network/20-ethernet.network}} from the live environment. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:18, 28 April 2023 (UTC)<br />
<br />
::The crosslinked article already has a note, that could be added there instead, similar to [[Special:diff/773727]]. <br />
::While I see the point of this item, the systemd- tools are probably not the most beginner-friendly ones to configure networking anyway (for some use-cases ok, not for the scope of this guide. Other tools like netctl are arguably simpler to use). The skill to configure networking is important and that's not triggered by copying an autogenerated file. What's the general state of [[archinstall]]? Could it be a solution to add a tip for Arch newcomers at the beginning of the guide to it instead?<br />
::--[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 07:45, 29 April 2023 (UTC)<br />
<br />
:::My idea was to ''somehow'' replace the note in [[Installation guide#Connect to the internet]] with a tip in [[Installation guide#Install essential packages]]. If there's no good way to do it, then let's keep things as is.<br />
:::archinstall would probably warrant an entirely separate discussion.<br />
::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 13:02, 30 April 2023 (UTC)<br />
<br />
== Partitioning tools ==<br />
<br />
Is there any reason gdisk is not listed as an option? If we include parted, despite problems with alignment, I don't see why gdisk is excluded. The wiki page for fdisk actually suggests gdisk as an alternative. I'm probably not the only one who learnt to use gdisk for GPT and it is nice to use a familiar tool if there's no reason not to. But I don't want to add it if it's omitted for a reason. --[[User:Margali|cfr]] ([[User talk:Margali|talk]]) 01:29, 20 August 2022 (UTC)<br />
<br />
:[[fdisk]] linking to [[gdisk]] is the result of a [[Special:Permalink/568741#Example layouts section|previous discussion]] about this.<br />
:Personally, I agree that [[Installation guide#Partition the disks]] should mention [[gdisk]]. My suggestion would be: "Use [[fdisk]], [[parted]] or [[gdisk]] (GPT only) to modify partition tables".<br />
: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:16, 20 August 2022 (UTC)<br />
<br />
::By the same argument, we should then mention cfdisk, cgdisk and any other partition tools. As such I'd suggest the following instead: "Use a [[Partitioning#Partitioning_tools|partitioning tool]] like [[fdisk]] or [[parted]] to modify partition tables". -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 13:32, 24 August 2022 (UTC)<br />
<br />
:::Your suggestion is better than the current text at least. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 08:44, 25 August 2022 (UTC)<br />
<br />
::::In the end the situation is quite similar to the one for boot loaders and network managers. I wouldn't mind listing more alternatives (or even tables) in the installation guide, but then the reasoning has to be applied equally to other sections. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 15:08, 25 August 2022 (UTC)<br />
<br />
:::::I hope it's nothing like [[Partitioning#Partitioning tools|this sorry excuse for a table]].<br />
:::::The thing with partitioning tools, compared to e.g. network managers, is that there are not that many of them. There's basically just fdisk, gdisk and parted. fdisk & gdisk additionally have scriptable and text user interfaces. And there are GUI ones based on parted.<br />
:::::I'd say let's go with your suggested text for now. We'll get to the greater goal eventually :D<br />
::::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 15:22, 25 August 2022 (UTC)<br />
<br />
::::::The table in [[Partitioning#Partitioning tools]] got better, so IMHO it should be fine to link to it now. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 16:04, 28 August 2022 (UTC)<br />
<br />
:::::::The "old" beginners' guide had a similar table included: [[User:Alad/Beginners'_guide#Partition_the_devices]]. Considering the small size, it could make sense to include the one from [[Partitioning#Partitioning tools]] in the installation guide directly. The downside is the GUI wrappers don't apply to the live environment. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 16:36, 28 August 2022 (UTC)<br />
<br />
::::::::If there's a problem with parted not aligning, it strikes me as perverse to mention fdisk and parted by name, but nothing else. Surely the example tools should be ones which don't need special warnings (if at all possible)? Maybe fdisk should be the only example? (Unless it has changed, gdisk isn't on the ISO, so that's a good reason not to pick it out, but steering people away from parted seems warranted if it is problematic.) --[[User:Margali|cfr]] ([[User talk:Margali|talk]]) 03:13, 30 October 2022 (UTC)<br />
<br />
:::::::::Is everyone OK with "Use a [[Partitioning#Partitioning_tools|partitioning tool]] like [[fdisk]] to modify partition tables"? That way we point to the resources while keeping only the tool used in the following examples. --[[User:Erus Iluvatar|Erus Iluvatar]] ([[User talk:Erus Iluvatar|talk]]) 21:34, 20 December 2022 (UTC)<br />
<br />
== Missing pacman-key steps ? ==<br />
<br />
I just tried (using archlinux-2022.11.01-x86_64.iso) the standard archlinux installation (pacstrap) following the guide,<br />
and once the packages were downloaded, they failed to install with errors like:<br />
* "signature from <maintainer> is unknown trust"<br />
<br />
I found on the web the following commands to solve the issue: (https://bbs.archlinux32.org/viewtopic.php?id=2900)<br />
* pacman-key --init<br />
* pacman-key --populate archlinux<br />
<br />
After those two commands, the pacstrap installation works fine.<br />
<br />
If those two commands are needed, shouldn't we document them in the Installation guide ?<br />
<br />
(note that the same problem/solution is applicable to archinstall method too)<br />
<br />
{{Unsigned|23:02, 3 November 2022 (UTC)|Nsauzede}}<br />
<br />
:This is already done by pacman-init.service. [[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 23:38, 3 November 2022 (UTC)<br />
<br />
:I hit the exact same problem with same installation iso. I got the solution from https://wiki.archlinux.org/title/Pacman/Package_signing<br />
:{{Unsigned|2022-12-02T07:53:41|Roblaing}}<br />
<br />
: This is caused by out of date keyring, what really should be added to the installation guide is starting the keyring sync service {{ic|systemctl start archlinux-keyring-wkd-sync}} before the pacstrap step, with a warning to check that it has finished running before continuing. This will allow both older ISOs to work and even current ISOs to work. December ISO is once again broken right now as openssl has too new a key. [[User:C0rn3j|C0rn3j]] ([[User talk:C0rn3j|talk]]) 23:21, 24 December 2022 (UTC)<br />
::archlinux-keyring-wkd-sync doesn't 'sync' the keyring, it refreshes it which is only helpful in a limited set of circumstances. Most of the time, it won't help these errors. [[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 03:21, 25 December 2022 (UTC)<br />
::: It however helps with the current issue and am sure the previous issues too, as they were fixable with partially installing archlinux-keyring on the ISO before. I am not aware of a better solution, unless reinitializing and populating the keyring as per OP is actually preferred? [[User:C0rn3j|C0rn3j]] ([[User talk:C0rn3j|talk]]) 11:05, 25 December 2022 (UTC)<br />
::::Reinitializing and populating the keyring is a solution for a completely different problem. [[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 13:32, 25 December 2022 (UTC)<br />
<br />
== Add tip for easily booting iPXE-arch.efi file from almost all hardware ==<br />
<br />
For most scenarios (I assume) it isn't necessary to flash an USB drive or burn a disk.<br />
You can simply put the PXE EFI binary on a drive and boot it from "BIOS" directly (works e.g. on Dell hardware). If your BIOS does not support loading arbitrary files directly, you can use the UEFI shell to do so if available. Otherwise you can simply put the image under {{ic|/EFI/BOOT/}} and name it bootx64.efi and select this drive from the boot menu. The drive might even be the boot partition, if you are going to do a reinstall. (Tested on Lenovo and Fujitsu notebooks) [[User:Flacer|Flacer]] ([[User talk:Flacer|talk]]) 14:06, 26 January 2023 (UTC)<br />
<br />
:[[Installation guide#Acquire an installation image]] already mentions the netboot image. And yes, it should work just fine on any system with an Ethernet connection. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 14:13, 26 January 2023 (UTC)<br />
<br />
:: That is true, but in my opinion it would be beneficial to emphasize this because esp. new users think of setting up a server etc. (me too, although I'm not quite a new user; discovered this by accident).<br />
<br />
::So it would be better to put it under [[Netboot]]? Anyway it would be helpful to place a link to that page, most appropriately under 1.3. -- [[User:Flacer|Flacer]] ([[User talk:Flacer|talk]]) 15:42, 26 January 2023 (UTC)<br />
<br />
:::I could be wiki-linked from 1.1 and ''somehow'' mentioned in 1.3. Just need to find the right words for it. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 14:55, 1 February 2023 (UTC)<br />
<br />
::::I think an additional link in 1.1 is too early. Currently, the downloads landing page links a dedicated netboot page, which at the end leads to the wiki article. Linking it earlier may mislead to users skipping the gpg steps in 1.2. and the landing page.<br />
::::In 1.3 we could replace "or a network with [[PXE]]:" with "or an appropriate [[PXE]]" for starters. And complement that by adding to the last intro sentence in [[PXE]] "This works well when you already have a server set up, but may (for installation purposes) also load the image directly from an official Arch mirror."<br />
::::--[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 22:52, 3 February 2023 (UTC)<br />
<br />
:::::I'm not too sure about "or an appropriate [[PXE]]". I assume most people would just place the netboot EFI binary in a USB flash drive and boot it directly. The fact that the images are iXPE builds is not that relevant. Perhaps 1.3 needs to explicitly differentiate the deployment methods of the ISO and netboot images since the links in the section are ISO specific. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:02, 4 February 2023 (UTC)<br />
<br />
::::::True, like two bullet points for ISO and iPXE in 1.3. I proposed "appropriate PXE", because (as Flacer mentions) current "network [[PXE]]" does indeed sound like you need to set up a server when you visit the article. How about switching [[PXE]] links to [[netboot]]?<br />
::::::--[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 19:23, 5 February 2023 (UTC)<br />
<br />
:::::::Well, you can still PXE-boot the ISO contents as the [[PXE]] article describes, so I don't think it's correct to remove the links.<br />
:::::::I would probably be best if [[Netboot]] had instructions on how to create a bootable medium from the image. At least for UEFI, since that's dead simple. IMHO 1.3. could then be turned into two sentences, one for the ISO deployment, one for netboot.<br />
::::::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:52, 6 February 2023 (UTC)<br />
<br />
::::::::Sure, it can; see the sentence I proposed above for [[PXE]]. I agree it is more important to edit both articles first. The simple method proposed by Flacer can be turned into a tip in the [[Netboot]] section you suggest. Afterwards we can see what changes are still useful in this main guide. Perhaps this item should be moved to [[Talk:Netboot]] for implementation first. --[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 18:44, 16 February 2023 (UTC)<br />
<br />
:::::::::There's [[Netboot#Boot from a USB flash drive]] that can be linked now. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 16:10, 26 March 2023 (UTC)<br />
<br />
:::::::::I drafted something below. [[Installation guide#Boot the live environment]] will need adjustment too, so suggestions welcome. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 14:59, 24 June 2023 (UTC)<br />
<br />
=== Prepare an installation medium (draft) ===<br />
<br />
The ISO can be supplied to the target machine via a [[USB flash installation medium|USB flash drive]], an [[Optical disc drive#Burning|optical disc]] or a network with [[PXE]]: follow the appropriate article to prepare yourself an installation medium from the ISO file.<br />
<br />
For the netboot image, follow [[Netboot#Boot from a USB flash drive]] to prepare a USB flash drive for UEFI booting.<br />
<br />
== Mention zram ==<br />
<br />
In [[Installation guide#Partition the disks]], The note mentions:<br />
<br />
:* [[Swap]] space can be set on a [[swap file]] for file systems supporting it.<br />
Should it be updated to add reference to [[zram]] as well ? Something like :<br />
:* As an alternative to a swap partition, [[Swap]] space can be set on a [[swap file]] for file systems supporting it, or in a [[Zram|compressed block device in ram]].<br />
<br />
-- [[User:Cvlc|Cvlc]] ([[User talk:Cvlc|talk]]) 23:04, 30 January 2023 (UTC)<br />
<br />
:I do not think zram is essential enough (compared to the defaults) for it to be mentioned in the [[Installation guide]], or even in [[General recommendations]]. The [[Improving performance|snake oil article]] references it and IMHO that's enough. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:22, 31 January 2023 (UTC)<br />
<br />
::(Re-opened, hope that's ok)<br />
::Certainly not essential, but it's one possible reason not to plan for a swap partition during the partitioning step. Distros like Fedora provide that [https://fedoraproject.org/wiki/Changes/SwapOnZRAM by default], it's a reasonable way to set up a system, I don't see any harm in mentioning it. People often read the installation guide many times before actually installing Arch, it's a perfect way to learn about possibilities, whereas [[Improving performance]] is probably most often read after installation on a running system. Swap files are already mentioned, so it doesn't require any extra note or clutter, just modifying a sentence, which is nice.<br />
::-- [[User:Cvlc|Cvlc]] ([[User talk:Cvlc|talk]]) 16:16, 31 January 2023 (UTC)<br />
<br />
:::If it were to be added to the installation guide, I want it to contain the phrase "swap on zram" instead of obfuscating it with "compressed block device in ram" or similar.<br />
:::I don't think we can link to [[Zram#Usage as swap]] unless it has a suggested size for the swap space.<br />
::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:13, 22 June 2023 (UTC)<br />
<br />
:: I was about to say, we can just link to the suggested size from the [[swap]] article but... there is no suggested size there either :)<br />
:: -- [[User:Cvlc|Cvlc]] ([[User talk:Cvlc|talk]]) 15:09, 22 June 2023 (UTC)<br />
<br />
:::There's [[Partitioning#Swap]], which IMO should be linked from [[Swap#Swap file]], but it doesn't actually say anything specific. Instead the recommended size is only listed in the [[Partitioning#Example layouts]] table.<br />
:::Still, does the general swap size recommendation apply to swap on zram? Is wasting 512 MiB of RAM enough?<br />
::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 16:24, 22 June 2023 (UTC)<br />
<br />
:: No you're right, the general swap size recommendation does not really apply to zram. A percentage of available RAM makes more sense. {{ic|zram-generator}} has a default of {{ic|1=zram-size = min(ram / 2, 4096)}}, Fedora uses [https://fedoraproject.org/wiki/Releases/34/ChangeSet#Scale_ZRAM_to_Full_Memory_Size 100%] of RAM. I've been using 100% without problems for quite a while. I would suggest 100% for regular desktop/laptop use, and 50% if having to deal with specific non compressible workloads (not sure what this would be though, I've had no problem with encoding of large video files, or such).<br />
:: -- [[User:Cvlc|Cvlc]] ([[User talk:Cvlc|talk]]) 16:50, 22 June 2023 (UTC)<br />
<br />
:::[[Fedora:Changes/Scale ZRAM to full memory size]] says that it's 8 GiB max, so not "100%". And we shouldn't blindly follow Fedora either, their change reasoning is not always properly documented. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 15:05, 24 June 2023 (UTC)<br />
<br />
== <s>Make LVM Link More Relevant to Partitioning Disks</s> ==<br />
<br />
In [[Installation_guide#Partition_the_disks]], where it briefly mentions LVM and to "do it now", the link should redirect the user to [[Install_Arch_Linux_on_LVM]] instead of [[LVM]] because it does not explain in detail to use the ''Linux LVM'' partition type, and other necessary commands to activate it. <br />
<br />
[[User:Xulingo|Xulingo]] ([[User talk:Xulingo|talk]]) 06:34, 12 May 2023 (UTC)<br />
<br />
:[[Special:Diff/781725|Done]]. Thanks! -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 16:30, 22 June 2023 (UTC)<br />
<br />
== "2.2 Install essential packages" needs more specific suggestions for absolute beginners. ==<br />
<br />
I personally had a lot of problems with the installation and had to resort to "walk-throughs" that just caused hours of headaches. I will point out some of the problems I had with this section.<br />
<br />
"userspace utilities for the management of file systems that will be used on the system" <br />
is wordy and vague. It is unhelpful to someone completely new. The hyperlink points to types of file systems which is not intuitive to the statements suggestion. At the very least, "userspace utilities" should be hyperlinked to a section of programs the statement is suggesting. Several months on, I still am unsure of what they are eluding to.<br />
<br />
"specific firmware for other devices not included in linux-firmware (e.g. sof-firmware for sound cards)"<br />
An absolute beginner does not know what specific firmware are not included in linux-firmware. The suggestion of sound cards is extremely outdated, and frankly makes it seem like linux-firmware is going to leave you needing a lot of drivers if it cannot even operate your sound card out of the box. This confusion led me down a rabbit hole of installing(or trying to find) CPU microcode updates, nvidia drivers, wired or wireless drivers, motherboard drivers, and so on.<br />
<br />
"software necessary for networking (e.g. a network manager or a standalone DHCP client, authentication software for Wi-Fi, ModemManager for mobile broadband connections)" My first problem was I was unaware of the need to systemctl enable the networking software, which led me to installing multiple DHCP clients and causing issues further down the road. I am now aware that if I had read more into the software. I believe a simple reminder to systemctl enable the networking software could save a lot of people problems. <br />
<br />
"a text editor,"<br />
The hyperlink just throws a list of 70 or so text editors at you. This is quite needlessly daunting to someone new. Even something as basic as "e.g. vim" would have spared me from being so overwhelmed this far into my troubles with this section. <br />
<br />
"packages for accessing documentation in man and info pages: man-db, man-pages and texinfo."<br />
This should take priority above all by being placed first in this list. <br />
<br />
I would recommend a section "2.2.1 Example(s) of essential packages" be created that shows at least one example of a typical users desktop computer, and what they would install on this step.<br />
<br />
{{Unsigned|21:12, 12 June 2023 (UTC)|Todd the king}}<br />
<br />
:I would refer you to https://wiki.archlinux.org/title/Arch_Linux#User_centrality. Arch's target audience isn't absolute beginners, it's experienced Linux users that know what they want and how they want their system set up. [[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 22:37, 12 June 2023 (UTC)<br />
<br />
::It is targeted at the proficient GNU/Linux user, or anyone with a do-it-yourself attitude who is willing to read the documentation, and solve their own problems. {{Unsigned|21:12, 12 June 2023 (UTC)|Todd the king}}<br />
<br />
:::And your argument is that you don't want to read the documentation. Arch dosen't make these decisions for you, you need to either know what you want or be willing to figure out what you want. [[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 22:49, 12 June 2023 (UTC)<br />
<br />
::::I did read the documentation, and I did figure out what I wanted. It took much longer than it should have because the instructions were hazy on this section. Why give any examples of software or suggestions of configuration to use in the article at all if this is the mindset of the guide? Where is the line and why? [[User:Todd the king|Todd the king]] ([[User talk:Todd the king|talk]]) 23:09, 12 June 2023 (UTC)<br />
<br />
:First of all, welcome :)<br />
:Now, I'm sorry but: <br />
<br />
::"userspace utilities for the management of file systems that will be used on the system" <br />
::is wordy and vague. It is unhelpful to someone completely new. The hyperlink points to types of file systems which is not intuitive to the statements suggestion. At the very least, "userspace utilities" should be hyperlinked to a section of programs the statement is suggesting. Several months on, I still am unsure of what they are eluding to.<br />
<br />
:The very first section of the linked page (i.e. [[File systems#Types of file systems]] has a table which helpfully has a "Userspace utilities" column, I fail to see how skipping the page introduction would make this more obvious. <br />
<br />
::"specific firmware for other devices not included in linux-firmware (e.g. sof-firmware for sound cards)"<br />
::An absolute beginner does not know what specific firmware are not included in linux-firmware. The suggestion of sound cards is extremely outdated, and frankly makes it seem like linux-firmware is going to leave you needing a lot of drivers if it cannot even operate your sound card out of the box. This confusion led me down a rabbit hole of installing(or trying to find) CPU microcode updates, nvidia drivers, wired or wireless drivers, motherboard drivers, and so on.<br />
<br />
:An absolute beginner's encouraged to seek help if he's unsure of what advice is applicable to its hardware. As shown in the tables in [[Laptop/Lenovo]], various recent laptops ''do'' require [[ALSA firmware]], while some models require specific drivers (and its respective firmware) for wireless networking: [[Broadcom wireless]], or even some USB3 chipsets on the motherboard with {{AUR|upd72020x-fw}} for example. <br />
<br />
::"software necessary for networking (e.g. a network manager or a standalone DHCP client, authentication software for Wi-Fi, ModemManager for mobile broadband connections)" My first problem was I was unaware of the need to systemctl enable the networking software, which led me to installing multiple DHCP clients and causing issues further down the road. I am now aware that if I had read more into the software. I believe a simple reminder to systemctl enable the networking software could save a lot of people problems. <br />
<br />
: Someone manually configuring a [[Network configuration#Static IP address|static ip connection]] would not need that step, while every dedicated [[network manager]] page explains the need for enabling their respective systemd unit. <br />
<br />
::"a text editor,"<br />
::The hyperlink just throws a list of 70 or so text editors at you. This is quite needlessly daunting to someone new. Even something as basic as "e.g. vim" would have spared me from being so overwhelmed this far into my troubles with this section. <br />
<br />
:Not picking a default text editor is a feature and not a bug: every choice made of a "sane default" would create endless bikeshedding (see [[Wikipedia:Editor war]]), although a popular beginner friendly one has been used as an example in [[Help:Reading#Append, add, create, edit]]. <br />
<br />
::"packages for accessing documentation in man and info pages: man-db, man-pages and texinfo."<br />
::This should take priority above all by being placed first in this list. <br />
<br />
:Man pages can be accessed with man.archlinux.org instead of wasting bandwidth and disk space by installing and updating a local version. <br />
<br />
::I would recommend a section "2.2.1 Example(s) of essential packages" be created that shows at least one example of a typical users desktop computer, and what they would install on this step.<br />
<br />
: This guide is not specific to desktop users, a dedicated section is out of scope. <br />
<br />
: As a general answer, our aim is to provide readers with the information they need to make an educated decision at every step, not rubber stamping the [https://pkgstats.archlinux.de/ popularity] of various software solutions. <br />
: While a little overwhelming at first, this approach has proven itself to be the best working on the long term: [[Help:Reading#Organization]]. <br />
: --[[User:Erus Iluvatar|Erus Iluvatar]] ([[User talk:Erus Iluvatar|talk]]) 00:07, 13 June 2023 (UTC)<br />
<br />
:I replaced "sound cards" with "onboard audio" which will hopefully get the message across better. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 05:56, 13 June 2023 (UTC)<br />
<br />
:After a bit of staring at [[Installation guide#Install essential packages]], I can confidentially say I can find some fault in each and any bullet point. So, starting from the top, I propose changing the first one to:<br />
::[[File systems|userspace utilities for file systems]] that will be used on the system—for the purposes of e.g. file system creation and [[fsck]],<br />
: It gets rid of the vague "for the management" and adds actual reasons for wanting the userspace utilities.<br />
: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 06:37, 13 June 2023 (UTC)<br />
<br />
::Since no one objected, and I finally remembered this discussion, I updated the page per my suggestion above. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:06, 22 June 2023 (UTC)<br />
<br />
:"utilities for accessing [[RAID]] or [[LVM]] partitions" could be replaced with something like:<br />
::utilities for accessing and managing [[RAID#Installation|RAID]] or [[LVM#Installation|LVM]] if they will be used on the system,<br />
:These things can actually be ''managed'', and they are not limited to ''partitions''. Also IMO it's better to directly link to the section that lists the packages to install.<br />
: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:48, 22 June 2023 (UTC)<br />
<br />
::[[Special:Diff/782222|Done]]. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:23, 30 June 2023 (UTC)<br />
<br />
:On to the next one:<br />
::specific firmware for other devices not included in {{Pkg|linux-firmware}} (e.g. {{Pkg|sof-firmware}} for [[Advanced Linux Sound Architecture#ALSA firmware|onboard audio]], {{Pkg|linux-firmware-marvell}} for Marvell wireless and any of the multiple firmware packages for [[Broadcom wireless]]),<br />
:It lists the only split-package of {{Pkg|linux-firmware}} that I've heard anyone actually need and also the dreaded Broadcom wireless.<br />
: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:23, 30 June 2023 (UTC)<br />
<br />
== Use /sys/firmware/efi/fw_platform_size to verify the boot mode ==<br />
<br />
For a year now, the official ISO can boot on IA32 UEFI. Since IA32 UEFI needs special considerations, I think [[Installation guide#Verify the boot mode]] could be changed to distinguish not just the whether one has booted in UEFI vs BIOS (CSM) mode, but also the UEFI bitness. See the following draft. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 14:44, 24 June 2023 (UTC)<br />
<br />
: Looks fine to me -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 16:05, 24 June 2023 (UTC)<br />
<br />
: I've made a slight change, IMO we don't need to state that we "try" anything? --[[User:Erus Iluvatar|Erus Iluvatar]] ([[User talk:Erus Iluvatar|talk]]) 16:20, 24 June 2023 (UTC)<br />
: BTW, I think there is also [https://github.com/systemd/systemd/pull/22550 support] from [[systemd-boot]], and link-ifying [[GRUB]] might also be helpful in that part of the sentence ? --[[User:Erus Iluvatar|Erus Iluvatar]] ([[User talk:Erus Iluvatar|talk]]) 17:31, 24 June 2023 (UTC)<br />
<br />
::Yes, systemd-boot supports it, but the {{Pkg|systemd}} package does not build and package IA32 EFI binaries. Someone would need to open a feature request for that. There's also {{Pkg|syslinux}} which ships IA32 EFI binaries, but, if I understand it correctly, [https://bugzilla.syslinux.org/show_bug.cgi?id=75 those do not work on real hardware].<br />
::As for linking to [[GRUB]], I chose not to because nothing in there is relevant at the [[Installation guide#Verify the boot mode]] stage.<br />
:: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 17:53, 24 June 2023 (UTC)<br />
<br />
:::Thanks! Given this context the draft is good then :) --[[User:Erus Iluvatar|Erus Iluvatar]] ([[User talk:Erus Iluvatar|talk]]) 18:16, 24 June 2023 (UTC)<br />
<br />
=== Verify the boot mode (draft) ===<br />
<br />
To verify the boot mode, check the UEFI bitness:<br />
<br />
# cat /sys/firmware/efi/fw_platform_size<br />
<br />
If the command returns {{ic|64}}, then system is booted in UEFI mode and has a 64-bit x64 UEFI. If the command returns {{ic|32}}, then system is booted in UEFI mode and has a 32-bit IA32 UEFI; while this is supported, it will limit the boot loader choice to GRUB. If the file does not exist, the system may be booted in [[Wikipedia:BIOS|BIOS]] (or [[Wikipedia:Compatibility Support Module|CSM]]) mode. If the system did not boot in the mode you desired (UEFI vs BIOS), refer to your motherboard's manual.<br />
<br />
== EFI bootloader may not work if you didn't mark partition as ESP ==<br />
<br />
As it stands, the installation guide won't work at least for {{ic|systemd-boot}} (maybe for other bootloaders as well, I didn't test that), because after you created the partition and formatted as FAT32, it will lack {{ic|esp}} mark. An example of marking as such: {{ic|parted /dev/sdX set 1 esp}} (substitute /dev/sdX with device name and 1 with the partition number).<br />
<br />
In absence of that e.g. {{ic|bootctl install}} bails out with {{ic|File system "/dev/sdaX" has wrong type for an EFI SystemPartition (ESP)}}.<br />
<br />
Please, could somebody with write permission add a 1.9.2 paragraph mentioning necessity to mark the partition as such, ideally with the {{ic|parted}} example I posted here.[[User:Hi-Angel|Hi-Angel]] ([[User talk:Hi-Angel|talk]]) 11:13, 7 July 2023 (UTC)</div>Hi-Angelhttps://wiki.archlinux.org/index.php?title=Talk:Installation_guide&diff=782697Talk:Installation guide2023-07-07T11:14:27Z<p>Hi-Angel: Fixed numbering</p>
<hr />
<div>== Read this first before adding new suggestions ==<br />
<br />
* systemd tools such as ''hostnamectl'', ''timedatectl'' and ''localectl'' [https://github.com/systemd/systemd/issues/798#issuecomment-126568596 do not work] in the installation chroot environment, so please do not propose to use them in the guide unless you can prove that they have been made to work also in that case. See [https://wiki.archlinux.org/index.php?title=Talk:Beginners%27_guide&oldid=388727#General_problems], [https://wiki.archlinux.org/index.php?title=Talk:Beginners%27_guide&oldid=404695#Replace_commands_with_their_systemd_equivalents], [https://wiki.archlinux.org/index.php?title=Talk:Beginners%27_guide&oldid=418662#Utilizing_systemd_tools] and [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=434985#change_configuration_system_from_old_way_to_new_way.28using_systemd_commands.29] for some past discussions about this issue.<br />
* {{ic|localectl list-keymaps}} does not work due to bug {{Bug|46725}}. For the chosen replacement command, see [https://wiki.archlinux.org/index.php?title=Talk:Beginners%27_guide&oldid=435044#localectl].<br />
* Due to the wide variety of available boot loaders, the installation guide refers to [[Arch boot process#Boot loader]] instead of making a specific recommendation for the installed system. See [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=687325#Bootloader], [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=690612#Make_the_Boot_Loader_Section_slightly_more_detailed_to_provide_a_high_level_overview_for_new_users], [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=678949#Expand_Boot_loader_section], [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=660151#Expand_Boot_loader_section_to_include_example_commands], [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=581427#Boot_loader_installation] for some past discussions on this topic.<br />
* While [[:Category:Installation process]] lists additional installation methods (e.g. [[archinstall]] or [[systemd-firstboot]]), the installation guide does not reference them due to their specific nature. [[Install Arch Linux with accessibility options]] is an exception. See [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=698307#Point_out_archinstall] for past discussion on this topic.<br />
-- [[ArchWiki:Administrators|The ArchWiki Administrators]] 22:17, 2 September 2016 (UTC)<br />
__TOC__<br />
<br />
== Link to the German version ==<br />
<br />
Instead of [[de:Arch Install Scripts]] you could choose [[de:Anleitung für Einsteiger]] it means "Beginner's Guid" and is a very <br />
detailed artikel for very new arch users and the future experts.<br />
<br />
:Thank you, [https://wiki.archlinux.org/index.php?title=Installation_guide&type=revision&diff=509961&oldid=508505 done]. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 16:31, 6 February 2018 (UTC)<br />
<br />
::This was already proposed last year and rejected: [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=466950#Suggesting_different_page_for_German_translation]. I don't see what has changed since then. If someone adds me as admin to the german wiki or changes the protection settings, I can update [[de:Arch Install Scripts]] as required. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 18:13, 6 February 2018 (UTC)<br />
<br />
:::I see, I didn't remember that discussion so I've reverted the change, hopefully you'll make it to update the translation, let's leave this open until the problem is solved, otherwise this kind of suggestion will keep appearing recurrently. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 17:53, 7 February 2018 (UTC)<br />
<br />
::::Apparently since last year the translation has been halved in size, but its scope is still much larger than the [[Install guide]] (or even the old [[Beginners' guide]]). -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 09:42, 9 May 2021 (UTC)<br />
<br />
== First mention of /mnt in example partition layout ==<br />
<br />
{{ic|/mnt}} is mentioned at mount point in [[Installation_guide#Partition_the_disks]], while {{ic|/mnt}} is made explicit two sections later in [[Installation_guide#Mount_the_file_systems]]. As I recall it, this was changed because some users blindly copy pasted commands and mounted /boot on the live system, instead of /mnt/boot. Some options:<br />
<br />
* Introduce another column describing the mount point on the installed system. <br />
* Actually explain /mnt early.<br />
* Revert the "mount point" to not include /mnt.<br />
<br />
-- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 13:03, 7 September 2019 (UTC)<br />
<br />
:I don't understand what's the actual problem here... -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 09:36, 8 September 2019 (UTC)<br />
<br />
::From what I read on [[ArchWiki:IRC|#archlinux-wiki]], this comes from https://www.reddit.com/r/archlinux/comments/d0v0j3/is_it_just_me_or_is_the_prospect_of_installing/ where the user was confused by the lack of root mountpoint (i.e. {{ic|/mnt}} vs {{ic|/}}). A question could be raised, if we should concern ourselves with users who have strong opinions about the wiki content yet can't be bothered to propose improvements in the talk pages...<br />
::About Alad's proposed options: I disagree with the first option, I think it will just complicate things even further. I support the third option and maybe adjusting the column header like in [[Special:Diff/581800]].<br />
::I'd actually would like to go even further and change the commands run from outside chroot to be visually distinct, e.g.: {{bc|1=<span style="color: #ff0000;">root@archiso #</span> mount /dev/sd''X1'' /mnt}}<br />
::I think it would better solve the underlying issue. <br />
:: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 15:26, 8 September 2019 (UTC)<br />
<br />
:::I'm not overly fond of the longer column name. For the last proposed option, I may agree if this is formalized in [[Help:Style]], so that it is not specfic to the [[Installation guide]]. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 11:20, 10 September 2019 (UTC)<br />
<br />
::::Adding it [[Help:Style]] was my intention, since other articles, too, will need to use that style for some commands. I'm thinking of creating a template for it: [[Special:Permalink/581945]]. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:19, 11 September 2019 (UTC)<br />
<br />
:::::Sounds good to me, I'd just prefer the regular (non-bold) font for the prompt as above. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 21:54, 13 September 2019 (UTC)<br />
<br />
::::::[[Special:Permalink/582327]]. Are there any other opinions about creating such a template? Or should I take this discussion to [[Help talk:Template]] per [[Help:Template#Creation]]? -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 18:31, 14 September 2019 (UTC)<br />
<br />
:::::::# How are you going to call the template? This template would probably add to the [[Help:Template#Code formatting templates]] series, should it be named in a consistent fashion?<br />
:::::::# Should this template support custom prompts, and if so, should it be called "pc" (from "(custom) prompted" code)?<br />
:::::::# I don't like the red color too much, if bold is not an option maybe we can go green|purple|blue, something that recalls less a warning of some kind? Or can we just leave it with the default font color? Or a slightly fainter black?<br />
:::::::# I haven't looked well into it, but maybe we can instead add an optional argument to [[Template:bc]] and [[Template:hc]] that prefixes a custom (colored) prompt? I wouldn't see a problem with repeating "root@archiso #" in every instance, or we may derive the new template from those two at that point.<br />
:::::::# The template should probably be derived from [[Template:bc]] in any case, for simpler code, see [[User:Kynikos/Template:Sandbox2]].<br />
:::::::-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 17:36, 16 September 2019 (UTC)<br />
<br />
::::::::# Initially I was going to call it [[Template:Archiso]] since it would be [[Archiso]]-specific, but I'm starting to think that creating a more general-purpose template would be better. It could then be used in [[PostgreSQL]] and the {{ic|[postgres]$}} convention would get formalized in [[Help:Style]]. Now the issue is the {{ic|[user@peer-a]#}} in [[Template:hc]] used in [[WireGuard]]. I'd rather not create two new templates, but I'm having trouble getting [[Template:Sandbox]] to work :(<br />
::::::::# I like your "[[Template:pc]]" suggestion.<br />
::::::::# Be glad I didn't post my first draft that was ''slightly more'' colorful. From your offered colors, I'd choose purple.<br />
::::::::# I'd rather not mess with the established templates just for this change, so I'd prefer creating a new template.<br />
::::::::# I didn't even think about using [[Template:bc]]. Is it a good idea to do that? The new template might need to be updated if [[Template:bc]] is ever changed in an incompatible way.<br />
:::::::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 07:33, 17 September 2019 (UTC)<br />
<br />
:::::::::Yeah, after viewing your attempts and looking into it myself, I think modifying bc/hc is out of discussion, it would add too much code/style for so little use.<br />
:::::::::Thinking about this again one day after, I feel I'm realizing that my concerns in general may descend from the fact that we're going to create a template to represent (block) code, even though we already have 2 which basically do the same thing, including allowing to include a prompt; the only addition of this "Archiso" or "pc" template would be the formatting around the prompt, so why not keep it simple (I know, "simplicity" is often subjective and controversial) and instead either make a [[Template:Archiso]] to be used like {{ic|<nowiki>{{bc|{{Archiso}} mount /dev/sdX1 /mnt}}</nowiki>}} or [[Template:ps]] (or [[Template:PS]]) to be used like {{ic|<nowiki>{{hc|{{ps|root@archiso #}} mount /dev/sdX1 /mnt}}</nowiki>}}? They also work with [[Template:hc]] and space-prefixed code blocks!<br />
:::::::::Putting the choice of color aside, if the above idea of a standalone prompt template isn't welcome, I think my second choice would be to make two [[Template:pbc]] and [[Template:phc]] that work like {{ic|<nowiki>{{pbc|$|ls}}</nowiki>}} and {{ic|<nowiki>{{phc|$|ls|...}}</nowiki>}}, with the style rule to use them only in case of complex prompts. I'd still derive them from bc/hc to inherit any changes that we'd decide to make to them, and avoid repeating that ugly &lt;pre> hack even more.<br />
:::::::::Otherwise I give up and accept the [[Template:Archiso]] that works like {{ic|<nowiki>{{Archiso|mount /dev/sdX1 /mnt}}</nowiki>}}, in the hope that one day we won't need an analogous "hc" version.<br />
:::::::::-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 14:24, 17 September 2019 (UTC)<br />
<br />
::::::::::I can't say I really like the idea of {{ic|<nowiki>{{bc|{{Archiso}} mount /dev/sdX1 /mnt}}</nowiki>}} or {{ic|<nowiki>{{hc|{{ps|root@archiso #}} mount /dev/sdX1 /mnt}}</nowiki>}}. I'd prefer creating [[Template:pbc]] and [[Template:phc]].<br />
::::::::::I still don't get what's wrong with [[Template:Sandbox]]. It should just work:<br />
<br />
<pre<noinclude></noinclude> {{#if: code|style="margin-bottom: 0; border-bottom:none; padding-bottom:0.8em;"}}>prompt # command</pre<noinclude></noinclude>><noinclude><!-- The &lt;noinclude>&lt;/noinclude> hack is needed to allow wiki markup inside the pre tags; reference: http://www.gossamer-threads.com/lists/wiki/mediawiki/118688#118688 --><br />
{{#if: code|<pre<noinclude></noinclude> style="margin-top: 0; border-top-style:dashed; padding-top: 0.8em;">code</pre<noinclude></noinclude>>}}<br />
<br />
:::::::::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 04:43, 18 September 2019 (UTC)<br />
<br />
:::::::::::FWIW (and a bit of fun) I've fixed [[Template:Sandbox]], although I'm not sure if we really need that level of automation ^^ I stick to my position above, is there a third (or more) opinion? -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 15:48, 18 September 2019 (UTC)<br />
<br />
:::::::::I think you like the [https://wiki.archlinux.org/index.php?title=User_talk:Nl6720&diff=447834&oldid=447833 #800080] shade of purple, right? ;-) [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 11:39, 21 September 2019 (UTC)<br />
<br />
::::::::::Yes, I do like that one :D but I think it would be too bright for this template. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 11:52, 21 September 2019 (UTC)<br />
<br />
:::::::::::Any news on this one? If not, I haven't seen this kind of issue or confusion occur since. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 09:37, 31 October 2021 (UTC)<br />
<br />
::::::::::::I don't think I want to create such a template anymore, since it would require updating other installation related pages. To go back to your originally proposed options, I'm for explaining {{ic|/mnt}} early. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:42, 4 November 2021 (UTC)<br />
<br />
== Buggy graphics driver ==<br />
<br />
Can there be a hint that nomodeset parameter could be used if the graphics driver is buggy (I've heard nouveau may be buggy sometimes)<br />
[[User:M.Srikanth|M.Srikanth]] ([[User talk:M.Srikanth|talk]]) 04:47, 12 May 2020 (UTC)<br />
<br />
:I would expect this to be mentioned in [[General_troubleshooting]]... -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 09:43, 31 October 2021 (UTC)<br />
<br />
== GitLab blobs in Lynx ==<br />
<br />
Links to files (blobs) on gitlab.archlinux.org are not readable in Lynx (or any other console web browser); see https://gitlab.com/gitlab-org/gitlab/-/issues/26567.<br />
<br />
Should the Installation guide link to raw files instead?<br />
<br />
-- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 12:29, 4 August 2020 (UTC)<br />
<br />
:Maybe you could ask svenstaro to add it to https://gitlab.com/gitlab-org/gitlab/-/issues/232073... -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 12:36, 4 August 2020 (UTC)<br />
<br />
::It has been filed under [https://gitlab.com/gitlab-org/gitlab/-/issues/232073#nice-to-have nice to have]. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 17:19, 4 August 2020 (UTC)<br />
<br />
:::Instead of using raw links we should perhaps consider if we need links to gitlab at all. The guide has:<br />
:::* [https://gitlab.archlinux.org/archlinux/mkinitcpio/mkinitcpio-archiso/blob/master/docs/README.bootparams README.bootparams]<br />
:::* <s>[https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/systemd/network/20-ethernet.network Ethernet]</s><br />
:::* <s>[https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/systemd/network/20-wlan.network WLAN]</s><br />
:::* <s>[https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/systemd/network/20-wwan.network WWAN]</s><br />
:::* <s>[https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/xdg/reflector/reflector.conf reflector.conf]</s><br />
:::* <s>[https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/packages.x86_64 packages.x86_64]</s><br />
:::Notice how all but one of these share the common path [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng archiso/-/blob/master/configs/releng]. Unless this level of specificity is really required, we could link to this path "for an overview of configuration files shipped with archiso" instead. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 09:35, 31 October 2021 (UTC)<br />
<br />
::::I'd prefer simply removing some of the links.<br />
::::* [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/systemd/network/20-ethernet.network Ethernet], [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/systemd/network/20-wlan.network WLAN] and [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/systemd/network/20-wwan.network WWAN] don't provide much value here, so they can be moved to [[systemd-networkd#Configuration examples]].<br />
::::* [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/xdg/reflector/reflector.conf reflector.conf] is there just for citation purposes. The [[reflector]] article already explains how the software works.<br />
:::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:30, 4 November 2021 (UTC)<br />
<br />
::::: Alright, I've removed those links. ([[Special:Diff/700696]], [[Special:Diff/700693]]) -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 11:39, 4 November 2021 (UTC)<br />
<br />
::::: Now that mirrors provide a symlink to the latest ISO version, it's possible to link to {{ic|pkglist.x86_64.txt}}. [[Special:Diff/730318|I replaced packages.x86_64 with it]]. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 07:31, 21 May 2022 (UTC)<br />
<br />
:Is Lynx (un)readability such a big problem in this case? People using Lynx from the archiso can open up the relevant file in the live system itself... — [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 18:05, 31 October 2021 (UTC)<br />
<br />
== Post-installation ==<br />
<br />
I skipped steps in the guide so I faced a weird crash in gnome without any explanations. I suggest a note.<br />
<br />
{{Note|Many of them assume that you have your timezone or locales set up. Make sure you have followed all the steps.}}<br />
<br />
[[User:Escope|Escope]] ([[User talk:Escope|talk]]) 10:11, 2 April 2021 (UTC)<br />
<br />
:The reader is supposed to follow all the steps. If we apply that to other pages, the pages need a boatload of notes to make sure the reader did not skip any steps. A common functional system has properly configured locales and timezones.<br />
:Since this is GNOME-specific however I would at most add a section into [[GNOME/Troubleshooting]] or even [[General troubleshooting]], but I still think this is out of scope to be honest. Many applications may not work properly when the timezones or locales are not correctly configured.<br />
:-- [[User:NetSysFire|NetSysFire]] ([[User talk:NetSysFire|talk]]) 15:30, 2 April 2021 (UTC)<br />
<br />
::The reader is not supposed to follow all the steps in case one doesn't worthy of attention. In my humble opinion, that's why it has huge advantage over the "Next-Next-Finish" approach. Unconfigured locales or timezones are obvious to many people, but my inexperience made me spend some time to sorting out. The other pages are highly deep and clear about the steps and why they are needed, my eyes enjoy such notes, pages are boatloaded already and I like it a lot =D. Thank you for your attention to this little change.<br />
<br />
::-- [[User:Escope|Escope]] ([[User talk:Escope|talk]]) 00:23, 3 April 2021 (UTC)<br />
<br />
:::If you're inexperienced, what makes you think you can judge if a step is necessary or not? You thought you knew better than the people that wrote the guide and found out that you didn't. Not something that needs changed here IMO.<br />
:::[[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 01:57, 3 April 2021 (UTC)<br />
<br />
:::The ArchWiki should also be about the why-aspect. I am in favor of adding e.g a note about why they are needed and why some applications may crash or behave strangely without properly configured timezones/locales. If you know e.g a nice blog post about this topic, why not add something like this?<br />
:::{{Note|Some applications may behave in strange ways or even crash when the timezones and/or locales are not properly configured. See [https://xkcd.com/1084/ this informative blog post] to know why that is.}}<br />
:::The note needs obviously some rewording, but something like this would fit in well in my opinion.<br />
:::-- [[User:NetSysFire|NetSysFire]] ([[User talk:NetSysFire|talk]]) 02:02, 3 April 2021 (UTC)<br />
<br />
::::Adding a '''brief''' "why" would be ok, but using [[Template:Note]] would be too much. I've also always wanted to emphasize the "and" in [[Installation guide#Localization]], since it's easy to miss (even some of the translated installation guides do not mention {{ic|en_US.UTF-8 UTF-8}}). --- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 08:48, 3 April 2021 (UTC)<br />
<br />
:::::People who want to know the "why" can already consult the relevant articles. That said, consistency is lacking: some sections explain in detail why a step should be performed (such as [[Installation_guide#Verify_signature]]), whereas [[Installation_guide#Configure_the_system]] is mostly a checklist of steps with brief instructions how. The solution isn't obvious: adding notes all over would likely more distract than clarify. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 19:41, 14 April 2021 (UTC)<br />
<br />
::::::I'm definitely apposed to adding notes, but I don't see why we couldn't add brief "why"s without them. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 06:55, 15 April 2021 (UTC)<br />
<br />
== Remove parted ==<br />
<br />
Due to parted [[Advanced Format#Partition alignment|not aligning the partition size]] (and with no patch in sight) which prevents using 4096 byte sectors with dm-crypt/LUKS unless explicitly planned before, I'd like to remove the "[[parted]]" link from [[Installation guide#Partition the disks]]. An alternative would be to change all examples in [[Parted]] to not use percentages and warn against using them. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 07:21, 7 April 2022 (UTC)<br />
<br />
:I prefer to change the examples in [[Parted]]. Just removing the link from installation guide won't stop people from using the tool. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 10:52, 7 April 2022 (UTC)<br />
<br />
== Note on Network Setup ==<br />
<br />
One of the most common installation issues that comes up on Reddit, Forums, and other discussion areas is not having done any sort of network setup. While the Installation Guide explicitly call out Network Setup as a required step, I suspect people are mistakenly believing the setup steps they did already to establish a connection on the installer will carry over to their installed system. <br />
<br />
I propose adding a note such as (example content):<br />
<br />
{{Note| Configuring your network connection above only established your network for the installer. This section will configure the network for your installed Arch system. Failure to do so may leave you without network access after completing installation.}} [[User:Nalthien|Nalthien]] ([[User talk:Nalthien|talk]]) 17:40, 15 May 2022 (UTC)<br />
<br />
:Such a thing [[Help:Style#Notes, Warnings, Tips|does not warrant a warning]] since there's nothing dangerous about being offline. It may even be the safest state the system will ever be. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:24, 18 May 2022 (UTC)<br />
<br />
:: I can agree that it doesn't warrant a Warning given the style guide; however, I do think a Note would be appropriate to "highlight information easily overlooked." It's clearly overlooked quite often. [[User:Nalthien|Nalthien]] ([[User talk:Nalthien|talk]]) 17:36, 20 May 2022 (UTC)<br />
<br />
:[[Installation guide#Connect to the internet]] already explains (or tries to, at least) that the live environment's network setup has nothing to do with the installed system. Perhaps the list items in [[Installation guide#Install essential packages]] could be made a little more verbose to explain '''why''' someone may want to install those things. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:24, 18 May 2022 (UTC)<br />
<br />
I propose adding something like the following:<br />
<br />
''To configure the freshly installed system's network for out-of-the-box ethernet DHCP functionality as on the installation image, create a simple /etc/systemd/network/20-wired.network file for your adapter Name, eg:''<br />
<br />
[Match]<br />
<br />
Name=enp1s0<br />
<br />
[Network]<br />
<br />
DHCP=yes<br />
<br />
''Also, enable both systemd-networkd.service and systemd-resolved.service''<br />
<br />
1. It will only take up a few lines; it is succinct, effective and informative. <br />
2. Further, the functionality on reboot will mimic functionality in the installation image.<br />
3. It uses simple built-in services without installing anything extra. <br />
4. It will also cut down on forum noise immensely.<br />
[[User:Misfit138|Misfit138]] ([[User talk:Misfit138|talk]] 11:11 21 March 2023 (UTC-5)<br />
<br />
: It's also incomplete, as systemd-resolved takes some setup. And it would cause more problems on the forums when people then enable NM or whatever and have both. There's a reason the network configuration page is linked. [[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 15:14, 21 March 2023 (UTC)<br />
<br />
:: systemd-resolved setup is optional according to the network configuration page, and I can confirm this to be the case on a bare-metal workstation as well as a VM. Doing the above minimal steps results in full functionality for a simple dhcp setup and mimics the ootb install image function. Further, installing NM as you indicated would result in a chicken or egg problem before reading a wall of text and realizing they have to setup a trivial and perhaps temporary dhcp solution in order to install a more permanent one anyway. The user has the ability to install packages in the chrooted environment, yes, but the expectation of a functional network in a freshly booted system is reasonable. One explanatory sentence or phrase can inform users that only one network config scheme is needed, as well as a brief warning to avoid conflicts (such warnings already exist elsewhere). The net conf. page can and should still be linked, but it is a monstrous page for something so trivial that can be suggested so succinctly. sent from my phone, will clean up formatting. -- [[User:Misfit138|Misfit138]] ([[User talk:Misfit138|talk]]) 11:37 22 March 2023 (UTC-5)<br />
<br />
:::systemd-networkd only supports using systemd-resolved for DNS. A network connection without working DNS is not something most people would want. I think the best we could do is to explicitly link to [[systemd-networkd]] as an example in [[Installation guide#Install essential packages]]. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 16:16, 22 March 2023 (UTC)<br />
<br />
::::With just the /etc/systemd/network/20-wired.network file, and no other network tools, and after starting networkd and resolved, I can ping sites and visit urls with links and lynx; ostensibly, something is resolving DNS for me(?) (Confirmed on VM and bare-metal.) However, I must regretfully admit that I am not likely to compel you with the principles I have set forth. Thank you for your time and for considering this. -- [[User:Misfit138|Misfit138]] ([[User talk:Misfit138|talk]]) 13:35 22 March 2023 (UTC-5)<br />
<br />
:::::I missed that you suggested to also enable {{ic|systemd-resolved.service}}. In that case, just as [[systemd-resolved#DNS]] says, DNS will only work for software that do not parse {{ic|/etc/resolv.conf}} themselves. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 17:44, 22 March 2023 (UTC)<br />
<br />
:Perhaps the "software necessary for networking" bullet point in [[Installation guide#Install essential packages]] could be extended with a tip that suggests using systemd-networkd + systemd-resolved and copying {{ic|/etc/systemd/network/20-ethernet.network}} from the live environment. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:18, 28 April 2023 (UTC)<br />
<br />
::The crosslinked article already has a note, that could be added there instead, similar to [[Special:diff/773727]]. <br />
::While I see the point of this item, the systemd- tools are probably not the most beginner-friendly ones to configure networking anyway (for some use-cases ok, not for the scope of this guide. Other tools like netctl are arguably simpler to use). The skill to configure networking is important and that's not triggered by copying an autogenerated file. What's the general state of [[archinstall]]? Could it be a solution to add a tip for Arch newcomers at the beginning of the guide to it instead?<br />
::--[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 07:45, 29 April 2023 (UTC)<br />
<br />
:::My idea was to ''somehow'' replace the note in [[Installation guide#Connect to the internet]] with a tip in [[Installation guide#Install essential packages]]. If there's no good way to do it, then let's keep things as is.<br />
:::archinstall would probably warrant an entirely separate discussion.<br />
::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 13:02, 30 April 2023 (UTC)<br />
<br />
== Partitioning tools ==<br />
<br />
Is there any reason gdisk is not listed as an option? If we include parted, despite problems with alignment, I don't see why gdisk is excluded. The wiki page for fdisk actually suggests gdisk as an alternative. I'm probably not the only one who learnt to use gdisk for GPT and it is nice to use a familiar tool if there's no reason not to. But I don't want to add it if it's omitted for a reason. --[[User:Margali|cfr]] ([[User talk:Margali|talk]]) 01:29, 20 August 2022 (UTC)<br />
<br />
:[[fdisk]] linking to [[gdisk]] is the result of a [[Special:Permalink/568741#Example layouts section|previous discussion]] about this.<br />
:Personally, I agree that [[Installation guide#Partition the disks]] should mention [[gdisk]]. My suggestion would be: "Use [[fdisk]], [[parted]] or [[gdisk]] (GPT only) to modify partition tables".<br />
: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:16, 20 August 2022 (UTC)<br />
<br />
::By the same argument, we should then mention cfdisk, cgdisk and any other partition tools. As such I'd suggest the following instead: "Use a [[Partitioning#Partitioning_tools|partitioning tool]] like [[fdisk]] or [[parted]] to modify partition tables". -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 13:32, 24 August 2022 (UTC)<br />
<br />
:::Your suggestion is better than the current text at least. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 08:44, 25 August 2022 (UTC)<br />
<br />
::::In the end the situation is quite similar to the one for boot loaders and network managers. I wouldn't mind listing more alternatives (or even tables) in the installation guide, but then the reasoning has to be applied equally to other sections. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 15:08, 25 August 2022 (UTC)<br />
<br />
:::::I hope it's nothing like [[Partitioning#Partitioning tools|this sorry excuse for a table]].<br />
:::::The thing with partitioning tools, compared to e.g. network managers, is that there are not that many of them. There's basically just fdisk, gdisk and parted. fdisk & gdisk additionally have scriptable and text user interfaces. And there are GUI ones based on parted.<br />
:::::I'd say let's go with your suggested text for now. We'll get to the greater goal eventually :D<br />
::::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 15:22, 25 August 2022 (UTC)<br />
<br />
::::::The table in [[Partitioning#Partitioning tools]] got better, so IMHO it should be fine to link to it now. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 16:04, 28 August 2022 (UTC)<br />
<br />
:::::::The "old" beginners' guide had a similar table included: [[User:Alad/Beginners'_guide#Partition_the_devices]]. Considering the small size, it could make sense to include the one from [[Partitioning#Partitioning tools]] in the installation guide directly. The downside is the GUI wrappers don't apply to the live environment. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 16:36, 28 August 2022 (UTC)<br />
<br />
::::::::If there's a problem with parted not aligning, it strikes me as perverse to mention fdisk and parted by name, but nothing else. Surely the example tools should be ones which don't need special warnings (if at all possible)? Maybe fdisk should be the only example? (Unless it has changed, gdisk isn't on the ISO, so that's a good reason not to pick it out, but steering people away from parted seems warranted if it is problematic.) --[[User:Margali|cfr]] ([[User talk:Margali|talk]]) 03:13, 30 October 2022 (UTC)<br />
<br />
:::::::::Is everyone OK with "Use a [[Partitioning#Partitioning_tools|partitioning tool]] like [[fdisk]] to modify partition tables"? That way we point to the resources while keeping only the tool used in the following examples. --[[User:Erus Iluvatar|Erus Iluvatar]] ([[User talk:Erus Iluvatar|talk]]) 21:34, 20 December 2022 (UTC)<br />
<br />
== Missing pacman-key steps ? ==<br />
<br />
I just tried (using archlinux-2022.11.01-x86_64.iso) the standard archlinux installation (pacstrap) following the guide,<br />
and once the packages were downloaded, they failed to install with errors like:<br />
* "signature from <maintainer> is unknown trust"<br />
<br />
I found on the web the following commands to solve the issue: (https://bbs.archlinux32.org/viewtopic.php?id=2900)<br />
* pacman-key --init<br />
* pacman-key --populate archlinux<br />
<br />
After those two commands, the pacstrap installation works fine.<br />
<br />
If those two commands are needed, shouldn't we document them in the Installation guide ?<br />
<br />
(note that the same problem/solution is applicable to archinstall method too)<br />
<br />
{{Unsigned|23:02, 3 November 2022 (UTC)|Nsauzede}}<br />
<br />
:This is already done by pacman-init.service. [[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 23:38, 3 November 2022 (UTC)<br />
<br />
:I hit the exact same problem with same installation iso. I got the solution from https://wiki.archlinux.org/title/Pacman/Package_signing<br />
:{{Unsigned|2022-12-02T07:53:41|Roblaing}}<br />
<br />
: This is caused by out of date keyring, what really should be added to the installation guide is starting the keyring sync service {{ic|systemctl start archlinux-keyring-wkd-sync}} before the pacstrap step, with a warning to check that it has finished running before continuing. This will allow both older ISOs to work and even current ISOs to work. December ISO is once again broken right now as openssl has too new a key. [[User:C0rn3j|C0rn3j]] ([[User talk:C0rn3j|talk]]) 23:21, 24 December 2022 (UTC)<br />
::archlinux-keyring-wkd-sync doesn't 'sync' the keyring, it refreshes it which is only helpful in a limited set of circumstances. Most of the time, it won't help these errors. [[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 03:21, 25 December 2022 (UTC)<br />
::: It however helps with the current issue and am sure the previous issues too, as they were fixable with partially installing archlinux-keyring on the ISO before. I am not aware of a better solution, unless reinitializing and populating the keyring as per OP is actually preferred? [[User:C0rn3j|C0rn3j]] ([[User talk:C0rn3j|talk]]) 11:05, 25 December 2022 (UTC)<br />
::::Reinitializing and populating the keyring is a solution for a completely different problem. [[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 13:32, 25 December 2022 (UTC)<br />
<br />
== Add tip for easily booting iPXE-arch.efi file from almost all hardware ==<br />
<br />
For most scenarios (I assume) it isn't necessary to flash an USB drive or burn a disk.<br />
You can simply put the PXE EFI binary on a drive and boot it from "BIOS" directly (works e.g. on Dell hardware). If your BIOS does not support loading arbitrary files directly, you can use the UEFI shell to do so if available. Otherwise you can simply put the image under {{ic|/EFI/BOOT/}} and name it bootx64.efi and select this drive from the boot menu. The drive might even be the boot partition, if you are going to do a reinstall. (Tested on Lenovo and Fujitsu notebooks) [[User:Flacer|Flacer]] ([[User talk:Flacer|talk]]) 14:06, 26 January 2023 (UTC)<br />
<br />
:[[Installation guide#Acquire an installation image]] already mentions the netboot image. And yes, it should work just fine on any system with an Ethernet connection. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 14:13, 26 January 2023 (UTC)<br />
<br />
:: That is true, but in my opinion it would be beneficial to emphasize this because esp. new users think of setting up a server etc. (me too, although I'm not quite a new user; discovered this by accident).<br />
<br />
::So it would be better to put it under [[Netboot]]? Anyway it would be helpful to place a link to that page, most appropriately under 1.3. -- [[User:Flacer|Flacer]] ([[User talk:Flacer|talk]]) 15:42, 26 January 2023 (UTC)<br />
<br />
:::I could be wiki-linked from 1.1 and ''somehow'' mentioned in 1.3. Just need to find the right words for it. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 14:55, 1 February 2023 (UTC)<br />
<br />
::::I think an additional link in 1.1 is too early. Currently, the downloads landing page links a dedicated netboot page, which at the end leads to the wiki article. Linking it earlier may mislead to users skipping the gpg steps in 1.2. and the landing page.<br />
::::In 1.3 we could replace "or a network with [[PXE]]:" with "or an appropriate [[PXE]]" for starters. And complement that by adding to the last intro sentence in [[PXE]] "This works well when you already have a server set up, but may (for installation purposes) also load the image directly from an official Arch mirror."<br />
::::--[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 22:52, 3 February 2023 (UTC)<br />
<br />
:::::I'm not too sure about "or an appropriate [[PXE]]". I assume most people would just place the netboot EFI binary in a USB flash drive and boot it directly. The fact that the images are iXPE builds is not that relevant. Perhaps 1.3 needs to explicitly differentiate the deployment methods of the ISO and netboot images since the links in the section are ISO specific. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:02, 4 February 2023 (UTC)<br />
<br />
::::::True, like two bullet points for ISO and iPXE in 1.3. I proposed "appropriate PXE", because (as Flacer mentions) current "network [[PXE]]" does indeed sound like you need to set up a server when you visit the article. How about switching [[PXE]] links to [[netboot]]?<br />
::::::--[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 19:23, 5 February 2023 (UTC)<br />
<br />
:::::::Well, you can still PXE-boot the ISO contents as the [[PXE]] article describes, so I don't think it's correct to remove the links.<br />
:::::::I would probably be best if [[Netboot]] had instructions on how to create a bootable medium from the image. At least for UEFI, since that's dead simple. IMHO 1.3. could then be turned into two sentences, one for the ISO deployment, one for netboot.<br />
::::::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:52, 6 February 2023 (UTC)<br />
<br />
::::::::Sure, it can; see the sentence I proposed above for [[PXE]]. I agree it is more important to edit both articles first. The simple method proposed by Flacer can be turned into a tip in the [[Netboot]] section you suggest. Afterwards we can see what changes are still useful in this main guide. Perhaps this item should be moved to [[Talk:Netboot]] for implementation first. --[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 18:44, 16 February 2023 (UTC)<br />
<br />
:::::::::There's [[Netboot#Boot from a USB flash drive]] that can be linked now. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 16:10, 26 March 2023 (UTC)<br />
<br />
:::::::::I drafted something below. [[Installation guide#Boot the live environment]] will need adjustment too, so suggestions welcome. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 14:59, 24 June 2023 (UTC)<br />
<br />
=== Prepare an installation medium (draft) ===<br />
<br />
The ISO can be supplied to the target machine via a [[USB flash installation medium|USB flash drive]], an [[Optical disc drive#Burning|optical disc]] or a network with [[PXE]]: follow the appropriate article to prepare yourself an installation medium from the ISO file.<br />
<br />
For the netboot image, follow [[Netboot#Boot from a USB flash drive]] to prepare a USB flash drive for UEFI booting.<br />
<br />
== Mention zram ==<br />
<br />
In [[Installation guide#Partition the disks]], The note mentions:<br />
<br />
:* [[Swap]] space can be set on a [[swap file]] for file systems supporting it.<br />
Should it be updated to add reference to [[zram]] as well ? Something like :<br />
:* As an alternative to a swap partition, [[Swap]] space can be set on a [[swap file]] for file systems supporting it, or in a [[Zram|compressed block device in ram]].<br />
<br />
-- [[User:Cvlc|Cvlc]] ([[User talk:Cvlc|talk]]) 23:04, 30 January 2023 (UTC)<br />
<br />
:I do not think zram is essential enough (compared to the defaults) for it to be mentioned in the [[Installation guide]], or even in [[General recommendations]]. The [[Improving performance|snake oil article]] references it and IMHO that's enough. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:22, 31 January 2023 (UTC)<br />
<br />
::(Re-opened, hope that's ok)<br />
::Certainly not essential, but it's one possible reason not to plan for a swap partition during the partitioning step. Distros like Fedora provide that [https://fedoraproject.org/wiki/Changes/SwapOnZRAM by default], it's a reasonable way to set up a system, I don't see any harm in mentioning it. People often read the installation guide many times before actually installing Arch, it's a perfect way to learn about possibilities, whereas [[Improving performance]] is probably most often read after installation on a running system. Swap files are already mentioned, so it doesn't require any extra note or clutter, just modifying a sentence, which is nice.<br />
::-- [[User:Cvlc|Cvlc]] ([[User talk:Cvlc|talk]]) 16:16, 31 January 2023 (UTC)<br />
<br />
:::If it were to be added to the installation guide, I want it to contain the phrase "swap on zram" instead of obfuscating it with "compressed block device in ram" or similar.<br />
:::I don't think we can link to [[Zram#Usage as swap]] unless it has a suggested size for the swap space.<br />
::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:13, 22 June 2023 (UTC)<br />
<br />
:: I was about to say, we can just link to the suggested size from the [[swap]] article but... there is no suggested size there either :)<br />
:: -- [[User:Cvlc|Cvlc]] ([[User talk:Cvlc|talk]]) 15:09, 22 June 2023 (UTC)<br />
<br />
:::There's [[Partitioning#Swap]], which IMO should be linked from [[Swap#Swap file]], but it doesn't actually say anything specific. Instead the recommended size is only listed in the [[Partitioning#Example layouts]] table.<br />
:::Still, does the general swap size recommendation apply to swap on zram? Is wasting 512 MiB of RAM enough?<br />
::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 16:24, 22 June 2023 (UTC)<br />
<br />
:: No you're right, the general swap size recommendation does not really apply to zram. A percentage of available RAM makes more sense. {{ic|zram-generator}} has a default of {{ic|1=zram-size = min(ram / 2, 4096)}}, Fedora uses [https://fedoraproject.org/wiki/Releases/34/ChangeSet#Scale_ZRAM_to_Full_Memory_Size 100%] of RAM. I've been using 100% without problems for quite a while. I would suggest 100% for regular desktop/laptop use, and 50% if having to deal with specific non compressible workloads (not sure what this would be though, I've had no problem with encoding of large video files, or such).<br />
:: -- [[User:Cvlc|Cvlc]] ([[User talk:Cvlc|talk]]) 16:50, 22 June 2023 (UTC)<br />
<br />
:::[[Fedora:Changes/Scale ZRAM to full memory size]] says that it's 8 GiB max, so not "100%". And we shouldn't blindly follow Fedora either, their change reasoning is not always properly documented. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 15:05, 24 June 2023 (UTC)<br />
<br />
== <s>Make LVM Link More Relevant to Partitioning Disks</s> ==<br />
<br />
In [[Installation_guide#Partition_the_disks]], where it briefly mentions LVM and to "do it now", the link should redirect the user to [[Install_Arch_Linux_on_LVM]] instead of [[LVM]] because it does not explain in detail to use the ''Linux LVM'' partition type, and other necessary commands to activate it. <br />
<br />
[[User:Xulingo|Xulingo]] ([[User talk:Xulingo|talk]]) 06:34, 12 May 2023 (UTC)<br />
<br />
:[[Special:Diff/781725|Done]]. Thanks! -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 16:30, 22 June 2023 (UTC)<br />
<br />
== "2.2 Install essential packages" needs more specific suggestions for absolute beginners. ==<br />
<br />
I personally had a lot of problems with the installation and had to resort to "walk-throughs" that just caused hours of headaches. I will point out some of the problems I had with this section.<br />
<br />
"userspace utilities for the management of file systems that will be used on the system" <br />
is wordy and vague. It is unhelpful to someone completely new. The hyperlink points to types of file systems which is not intuitive to the statements suggestion. At the very least, "userspace utilities" should be hyperlinked to a section of programs the statement is suggesting. Several months on, I still am unsure of what they are eluding to.<br />
<br />
"specific firmware for other devices not included in linux-firmware (e.g. sof-firmware for sound cards)"<br />
An absolute beginner does not know what specific firmware are not included in linux-firmware. The suggestion of sound cards is extremely outdated, and frankly makes it seem like linux-firmware is going to leave you needing a lot of drivers if it cannot even operate your sound card out of the box. This confusion led me down a rabbit hole of installing(or trying to find) CPU microcode updates, nvidia drivers, wired or wireless drivers, motherboard drivers, and so on.<br />
<br />
"software necessary for networking (e.g. a network manager or a standalone DHCP client, authentication software for Wi-Fi, ModemManager for mobile broadband connections)" My first problem was I was unaware of the need to systemctl enable the networking software, which led me to installing multiple DHCP clients and causing issues further down the road. I am now aware that if I had read more into the software. I believe a simple reminder to systemctl enable the networking software could save a lot of people problems. <br />
<br />
"a text editor,"<br />
The hyperlink just throws a list of 70 or so text editors at you. This is quite needlessly daunting to someone new. Even something as basic as "e.g. vim" would have spared me from being so overwhelmed this far into my troubles with this section. <br />
<br />
"packages for accessing documentation in man and info pages: man-db, man-pages and texinfo."<br />
This should take priority above all by being placed first in this list. <br />
<br />
I would recommend a section "2.2.1 Example(s) of essential packages" be created that shows at least one example of a typical users desktop computer, and what they would install on this step.<br />
<br />
{{Unsigned|21:12, 12 June 2023 (UTC)|Todd the king}}<br />
<br />
:I would refer you to https://wiki.archlinux.org/title/Arch_Linux#User_centrality. Arch's target audience isn't absolute beginners, it's experienced Linux users that know what they want and how they want their system set up. [[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 22:37, 12 June 2023 (UTC)<br />
<br />
::It is targeted at the proficient GNU/Linux user, or anyone with a do-it-yourself attitude who is willing to read the documentation, and solve their own problems. {{Unsigned|21:12, 12 June 2023 (UTC)|Todd the king}}<br />
<br />
:::And your argument is that you don't want to read the documentation. Arch dosen't make these decisions for you, you need to either know what you want or be willing to figure out what you want. [[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 22:49, 12 June 2023 (UTC)<br />
<br />
::::I did read the documentation, and I did figure out what I wanted. It took much longer than it should have because the instructions were hazy on this section. Why give any examples of software or suggestions of configuration to use in the article at all if this is the mindset of the guide? Where is the line and why? [[User:Todd the king|Todd the king]] ([[User talk:Todd the king|talk]]) 23:09, 12 June 2023 (UTC)<br />
<br />
:First of all, welcome :)<br />
:Now, I'm sorry but: <br />
<br />
::"userspace utilities for the management of file systems that will be used on the system" <br />
::is wordy and vague. It is unhelpful to someone completely new. The hyperlink points to types of file systems which is not intuitive to the statements suggestion. At the very least, "userspace utilities" should be hyperlinked to a section of programs the statement is suggesting. Several months on, I still am unsure of what they are eluding to.<br />
<br />
:The very first section of the linked page (i.e. [[File systems#Types of file systems]] has a table which helpfully has a "Userspace utilities" column, I fail to see how skipping the page introduction would make this more obvious. <br />
<br />
::"specific firmware for other devices not included in linux-firmware (e.g. sof-firmware for sound cards)"<br />
::An absolute beginner does not know what specific firmware are not included in linux-firmware. The suggestion of sound cards is extremely outdated, and frankly makes it seem like linux-firmware is going to leave you needing a lot of drivers if it cannot even operate your sound card out of the box. This confusion led me down a rabbit hole of installing(or trying to find) CPU microcode updates, nvidia drivers, wired or wireless drivers, motherboard drivers, and so on.<br />
<br />
:An absolute beginner's encouraged to seek help if he's unsure of what advice is applicable to its hardware. As shown in the tables in [[Laptop/Lenovo]], various recent laptops ''do'' require [[ALSA firmware]], while some models require specific drivers (and its respective firmware) for wireless networking: [[Broadcom wireless]], or even some USB3 chipsets on the motherboard with {{AUR|upd72020x-fw}} for example. <br />
<br />
::"software necessary for networking (e.g. a network manager or a standalone DHCP client, authentication software for Wi-Fi, ModemManager for mobile broadband connections)" My first problem was I was unaware of the need to systemctl enable the networking software, which led me to installing multiple DHCP clients and causing issues further down the road. I am now aware that if I had read more into the software. I believe a simple reminder to systemctl enable the networking software could save a lot of people problems. <br />
<br />
: Someone manually configuring a [[Network configuration#Static IP address|static ip connection]] would not need that step, while every dedicated [[network manager]] page explains the need for enabling their respective systemd unit. <br />
<br />
::"a text editor,"<br />
::The hyperlink just throws a list of 70 or so text editors at you. This is quite needlessly daunting to someone new. Even something as basic as "e.g. vim" would have spared me from being so overwhelmed this far into my troubles with this section. <br />
<br />
:Not picking a default text editor is a feature and not a bug: every choice made of a "sane default" would create endless bikeshedding (see [[Wikipedia:Editor war]]), although a popular beginner friendly one has been used as an example in [[Help:Reading#Append, add, create, edit]]. <br />
<br />
::"packages for accessing documentation in man and info pages: man-db, man-pages and texinfo."<br />
::This should take priority above all by being placed first in this list. <br />
<br />
:Man pages can be accessed with man.archlinux.org instead of wasting bandwidth and disk space by installing and updating a local version. <br />
<br />
::I would recommend a section "2.2.1 Example(s) of essential packages" be created that shows at least one example of a typical users desktop computer, and what they would install on this step.<br />
<br />
: This guide is not specific to desktop users, a dedicated section is out of scope. <br />
<br />
: As a general answer, our aim is to provide readers with the information they need to make an educated decision at every step, not rubber stamping the [https://pkgstats.archlinux.de/ popularity] of various software solutions. <br />
: While a little overwhelming at first, this approach has proven itself to be the best working on the long term: [[Help:Reading#Organization]]. <br />
: --[[User:Erus Iluvatar|Erus Iluvatar]] ([[User talk:Erus Iluvatar|talk]]) 00:07, 13 June 2023 (UTC)<br />
<br />
:I replaced "sound cards" with "onboard audio" which will hopefully get the message across better. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 05:56, 13 June 2023 (UTC)<br />
<br />
:After a bit of staring at [[Installation guide#Install essential packages]], I can confidentially say I can find some fault in each and any bullet point. So, starting from the top, I propose changing the first one to:<br />
::[[File systems|userspace utilities for file systems]] that will be used on the system—for the purposes of e.g. file system creation and [[fsck]],<br />
: It gets rid of the vague "for the management" and adds actual reasons for wanting the userspace utilities.<br />
: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 06:37, 13 June 2023 (UTC)<br />
<br />
::Since no one objected, and I finally remembered this discussion, I updated the page per my suggestion above. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:06, 22 June 2023 (UTC)<br />
<br />
:"utilities for accessing [[RAID]] or [[LVM]] partitions" could be replaced with something like:<br />
::utilities for accessing and managing [[RAID#Installation|RAID]] or [[LVM#Installation|LVM]] if they will be used on the system,<br />
:These things can actually be ''managed'', and they are not limited to ''partitions''. Also IMO it's better to directly link to the section that lists the packages to install.<br />
: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:48, 22 June 2023 (UTC)<br />
<br />
::[[Special:Diff/782222|Done]]. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:23, 30 June 2023 (UTC)<br />
<br />
:On to the next one:<br />
::specific firmware for other devices not included in {{Pkg|linux-firmware}} (e.g. {{Pkg|sof-firmware}} for [[Advanced Linux Sound Architecture#ALSA firmware|onboard audio]], {{Pkg|linux-firmware-marvell}} for Marvell wireless and any of the multiple firmware packages for [[Broadcom wireless]]),<br />
:It lists the only split-package of {{Pkg|linux-firmware}} that I've heard anyone actually need and also the dreaded Broadcom wireless.<br />
: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:23, 30 June 2023 (UTC)<br />
<br />
== Use /sys/firmware/efi/fw_platform_size to verify the boot mode ==<br />
<br />
For a year now, the official ISO can boot on IA32 UEFI. Since IA32 UEFI needs special considerations, I think [[Installation guide#Verify the boot mode]] could be changed to distinguish not just the whether one has booted in UEFI vs BIOS (CSM) mode, but also the UEFI bitness. See the following draft. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 14:44, 24 June 2023 (UTC)<br />
<br />
: Looks fine to me -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 16:05, 24 June 2023 (UTC)<br />
<br />
: I've made a slight change, IMO we don't need to state that we "try" anything? --[[User:Erus Iluvatar|Erus Iluvatar]] ([[User talk:Erus Iluvatar|talk]]) 16:20, 24 June 2023 (UTC)<br />
: BTW, I think there is also [https://github.com/systemd/systemd/pull/22550 support] from [[systemd-boot]], and link-ifying [[GRUB]] might also be helpful in that part of the sentence ? --[[User:Erus Iluvatar|Erus Iluvatar]] ([[User talk:Erus Iluvatar|talk]]) 17:31, 24 June 2023 (UTC)<br />
<br />
::Yes, systemd-boot supports it, but the {{Pkg|systemd}} package does not build and package IA32 EFI binaries. Someone would need to open a feature request for that. There's also {{Pkg|syslinux}} which ships IA32 EFI binaries, but, if I understand it correctly, [https://bugzilla.syslinux.org/show_bug.cgi?id=75 those do not work on real hardware].<br />
::As for linking to [[GRUB]], I chose not to because nothing in there is relevant at the [[Installation guide#Verify the boot mode]] stage.<br />
:: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 17:53, 24 June 2023 (UTC)<br />
<br />
:::Thanks! Given this context the draft is good then :) --[[User:Erus Iluvatar|Erus Iluvatar]] ([[User talk:Erus Iluvatar|talk]]) 18:16, 24 June 2023 (UTC)<br />
<br />
=== Verify the boot mode (draft) ===<br />
<br />
To verify the boot mode, check the UEFI bitness:<br />
<br />
# cat /sys/firmware/efi/fw_platform_size<br />
<br />
If the command returns {{ic|64}}, then system is booted in UEFI mode and has a 64-bit x64 UEFI. If the command returns {{ic|32}}, then system is booted in UEFI mode and has a 32-bit IA32 UEFI; while this is supported, it will limit the boot loader choice to GRUB. If the file does not exist, the system may be booted in [[Wikipedia:BIOS|BIOS]] (or [[Wikipedia:Compatibility Support Module|CSM]]) mode. If the system did not boot in the mode you desired (UEFI vs BIOS), refer to your motherboard's manual.<br />
<br />
== EFI bootloader may not work if you didn't mark partition as ESP ==<br />
<br />
As it stands, the installation guide won't work at least for {{ic|systemd-boot}} (maybe for other bootloaders as well, I didn't test that), because after you created the partition and formatted as FAT32, it will lack {{ic|esp}} mark. An example of marking as such: {{ic|parted /dev/sdX set 1 esp}} (substitute /dev/sdX with device name and 1 with the partition number).<br />
<br />
In absence of that e.g. {{ic|bootctl install}} bails out with {{ic|bootctl install error: file system has wrong type}}.<br />
<br />
Please, could somebody with write permission add a 1.9.2 paragraph mentioning necessity to mark the partition as such, ideally with the {{ic|parted}} example I posted here.[[User:Hi-Angel|Hi-Angel]] ([[User talk:Hi-Angel|talk]]) 11:13, 7 July 2023 (UTC)</div>Hi-Angelhttps://wiki.archlinux.org/index.php?title=Talk:Installation_guide&diff=782696Talk:Installation guide2023-07-07T11:13:36Z<p>Hi-Angel: /* 16. EFI bootloader may not work if you didn't mark partition as ESP */ new section</p>
<hr />
<div>== Read this first before adding new suggestions ==<br />
<br />
* systemd tools such as ''hostnamectl'', ''timedatectl'' and ''localectl'' [https://github.com/systemd/systemd/issues/798#issuecomment-126568596 do not work] in the installation chroot environment, so please do not propose to use them in the guide unless you can prove that they have been made to work also in that case. See [https://wiki.archlinux.org/index.php?title=Talk:Beginners%27_guide&oldid=388727#General_problems], [https://wiki.archlinux.org/index.php?title=Talk:Beginners%27_guide&oldid=404695#Replace_commands_with_their_systemd_equivalents], [https://wiki.archlinux.org/index.php?title=Talk:Beginners%27_guide&oldid=418662#Utilizing_systemd_tools] and [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=434985#change_configuration_system_from_old_way_to_new_way.28using_systemd_commands.29] for some past discussions about this issue.<br />
* {{ic|localectl list-keymaps}} does not work due to bug {{Bug|46725}}. For the chosen replacement command, see [https://wiki.archlinux.org/index.php?title=Talk:Beginners%27_guide&oldid=435044#localectl].<br />
* Due to the wide variety of available boot loaders, the installation guide refers to [[Arch boot process#Boot loader]] instead of making a specific recommendation for the installed system. See [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=687325#Bootloader], [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=690612#Make_the_Boot_Loader_Section_slightly_more_detailed_to_provide_a_high_level_overview_for_new_users], [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=678949#Expand_Boot_loader_section], [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=660151#Expand_Boot_loader_section_to_include_example_commands], [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=581427#Boot_loader_installation] for some past discussions on this topic.<br />
* While [[:Category:Installation process]] lists additional installation methods (e.g. [[archinstall]] or [[systemd-firstboot]]), the installation guide does not reference them due to their specific nature. [[Install Arch Linux with accessibility options]] is an exception. See [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=698307#Point_out_archinstall] for past discussion on this topic.<br />
-- [[ArchWiki:Administrators|The ArchWiki Administrators]] 22:17, 2 September 2016 (UTC)<br />
__TOC__<br />
<br />
== Link to the German version ==<br />
<br />
Instead of [[de:Arch Install Scripts]] you could choose [[de:Anleitung für Einsteiger]] it means "Beginner's Guid" and is a very <br />
detailed artikel for very new arch users and the future experts.<br />
<br />
:Thank you, [https://wiki.archlinux.org/index.php?title=Installation_guide&type=revision&diff=509961&oldid=508505 done]. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 16:31, 6 February 2018 (UTC)<br />
<br />
::This was already proposed last year and rejected: [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=466950#Suggesting_different_page_for_German_translation]. I don't see what has changed since then. If someone adds me as admin to the german wiki or changes the protection settings, I can update [[de:Arch Install Scripts]] as required. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 18:13, 6 February 2018 (UTC)<br />
<br />
:::I see, I didn't remember that discussion so I've reverted the change, hopefully you'll make it to update the translation, let's leave this open until the problem is solved, otherwise this kind of suggestion will keep appearing recurrently. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 17:53, 7 February 2018 (UTC)<br />
<br />
::::Apparently since last year the translation has been halved in size, but its scope is still much larger than the [[Install guide]] (or even the old [[Beginners' guide]]). -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 09:42, 9 May 2021 (UTC)<br />
<br />
== First mention of /mnt in example partition layout ==<br />
<br />
{{ic|/mnt}} is mentioned at mount point in [[Installation_guide#Partition_the_disks]], while {{ic|/mnt}} is made explicit two sections later in [[Installation_guide#Mount_the_file_systems]]. As I recall it, this was changed because some users blindly copy pasted commands and mounted /boot on the live system, instead of /mnt/boot. Some options:<br />
<br />
* Introduce another column describing the mount point on the installed system. <br />
* Actually explain /mnt early.<br />
* Revert the "mount point" to not include /mnt.<br />
<br />
-- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 13:03, 7 September 2019 (UTC)<br />
<br />
:I don't understand what's the actual problem here... -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 09:36, 8 September 2019 (UTC)<br />
<br />
::From what I read on [[ArchWiki:IRC|#archlinux-wiki]], this comes from https://www.reddit.com/r/archlinux/comments/d0v0j3/is_it_just_me_or_is_the_prospect_of_installing/ where the user was confused by the lack of root mountpoint (i.e. {{ic|/mnt}} vs {{ic|/}}). A question could be raised, if we should concern ourselves with users who have strong opinions about the wiki content yet can't be bothered to propose improvements in the talk pages...<br />
::About Alad's proposed options: I disagree with the first option, I think it will just complicate things even further. I support the third option and maybe adjusting the column header like in [[Special:Diff/581800]].<br />
::I'd actually would like to go even further and change the commands run from outside chroot to be visually distinct, e.g.: {{bc|1=<span style="color: #ff0000;">root@archiso #</span> mount /dev/sd''X1'' /mnt}}<br />
::I think it would better solve the underlying issue. <br />
:: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 15:26, 8 September 2019 (UTC)<br />
<br />
:::I'm not overly fond of the longer column name. For the last proposed option, I may agree if this is formalized in [[Help:Style]], so that it is not specfic to the [[Installation guide]]. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 11:20, 10 September 2019 (UTC)<br />
<br />
::::Adding it [[Help:Style]] was my intention, since other articles, too, will need to use that style for some commands. I'm thinking of creating a template for it: [[Special:Permalink/581945]]. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:19, 11 September 2019 (UTC)<br />
<br />
:::::Sounds good to me, I'd just prefer the regular (non-bold) font for the prompt as above. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 21:54, 13 September 2019 (UTC)<br />
<br />
::::::[[Special:Permalink/582327]]. Are there any other opinions about creating such a template? Or should I take this discussion to [[Help talk:Template]] per [[Help:Template#Creation]]? -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 18:31, 14 September 2019 (UTC)<br />
<br />
:::::::# How are you going to call the template? This template would probably add to the [[Help:Template#Code formatting templates]] series, should it be named in a consistent fashion?<br />
:::::::# Should this template support custom prompts, and if so, should it be called "pc" (from "(custom) prompted" code)?<br />
:::::::# I don't like the red color too much, if bold is not an option maybe we can go green|purple|blue, something that recalls less a warning of some kind? Or can we just leave it with the default font color? Or a slightly fainter black?<br />
:::::::# I haven't looked well into it, but maybe we can instead add an optional argument to [[Template:bc]] and [[Template:hc]] that prefixes a custom (colored) prompt? I wouldn't see a problem with repeating "root@archiso #" in every instance, or we may derive the new template from those two at that point.<br />
:::::::# The template should probably be derived from [[Template:bc]] in any case, for simpler code, see [[User:Kynikos/Template:Sandbox2]].<br />
:::::::-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 17:36, 16 September 2019 (UTC)<br />
<br />
::::::::# Initially I was going to call it [[Template:Archiso]] since it would be [[Archiso]]-specific, but I'm starting to think that creating a more general-purpose template would be better. It could then be used in [[PostgreSQL]] and the {{ic|[postgres]$}} convention would get formalized in [[Help:Style]]. Now the issue is the {{ic|[user@peer-a]#}} in [[Template:hc]] used in [[WireGuard]]. I'd rather not create two new templates, but I'm having trouble getting [[Template:Sandbox]] to work :(<br />
::::::::# I like your "[[Template:pc]]" suggestion.<br />
::::::::# Be glad I didn't post my first draft that was ''slightly more'' colorful. From your offered colors, I'd choose purple.<br />
::::::::# I'd rather not mess with the established templates just for this change, so I'd prefer creating a new template.<br />
::::::::# I didn't even think about using [[Template:bc]]. Is it a good idea to do that? The new template might need to be updated if [[Template:bc]] is ever changed in an incompatible way.<br />
:::::::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 07:33, 17 September 2019 (UTC)<br />
<br />
:::::::::Yeah, after viewing your attempts and looking into it myself, I think modifying bc/hc is out of discussion, it would add too much code/style for so little use.<br />
:::::::::Thinking about this again one day after, I feel I'm realizing that my concerns in general may descend from the fact that we're going to create a template to represent (block) code, even though we already have 2 which basically do the same thing, including allowing to include a prompt; the only addition of this "Archiso" or "pc" template would be the formatting around the prompt, so why not keep it simple (I know, "simplicity" is often subjective and controversial) and instead either make a [[Template:Archiso]] to be used like {{ic|<nowiki>{{bc|{{Archiso}} mount /dev/sdX1 /mnt}}</nowiki>}} or [[Template:ps]] (or [[Template:PS]]) to be used like {{ic|<nowiki>{{hc|{{ps|root@archiso #}} mount /dev/sdX1 /mnt}}</nowiki>}}? They also work with [[Template:hc]] and space-prefixed code blocks!<br />
:::::::::Putting the choice of color aside, if the above idea of a standalone prompt template isn't welcome, I think my second choice would be to make two [[Template:pbc]] and [[Template:phc]] that work like {{ic|<nowiki>{{pbc|$|ls}}</nowiki>}} and {{ic|<nowiki>{{phc|$|ls|...}}</nowiki>}}, with the style rule to use them only in case of complex prompts. I'd still derive them from bc/hc to inherit any changes that we'd decide to make to them, and avoid repeating that ugly &lt;pre> hack even more.<br />
:::::::::Otherwise I give up and accept the [[Template:Archiso]] that works like {{ic|<nowiki>{{Archiso|mount /dev/sdX1 /mnt}}</nowiki>}}, in the hope that one day we won't need an analogous "hc" version.<br />
:::::::::-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 14:24, 17 September 2019 (UTC)<br />
<br />
::::::::::I can't say I really like the idea of {{ic|<nowiki>{{bc|{{Archiso}} mount /dev/sdX1 /mnt}}</nowiki>}} or {{ic|<nowiki>{{hc|{{ps|root@archiso #}} mount /dev/sdX1 /mnt}}</nowiki>}}. I'd prefer creating [[Template:pbc]] and [[Template:phc]].<br />
::::::::::I still don't get what's wrong with [[Template:Sandbox]]. It should just work:<br />
<br />
<pre<noinclude></noinclude> {{#if: code|style="margin-bottom: 0; border-bottom:none; padding-bottom:0.8em;"}}>prompt # command</pre<noinclude></noinclude>><noinclude><!-- The &lt;noinclude>&lt;/noinclude> hack is needed to allow wiki markup inside the pre tags; reference: http://www.gossamer-threads.com/lists/wiki/mediawiki/118688#118688 --><br />
{{#if: code|<pre<noinclude></noinclude> style="margin-top: 0; border-top-style:dashed; padding-top: 0.8em;">code</pre<noinclude></noinclude>>}}<br />
<br />
:::::::::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 04:43, 18 September 2019 (UTC)<br />
<br />
:::::::::::FWIW (and a bit of fun) I've fixed [[Template:Sandbox]], although I'm not sure if we really need that level of automation ^^ I stick to my position above, is there a third (or more) opinion? -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 15:48, 18 September 2019 (UTC)<br />
<br />
:::::::::I think you like the [https://wiki.archlinux.org/index.php?title=User_talk:Nl6720&diff=447834&oldid=447833 #800080] shade of purple, right? ;-) [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 11:39, 21 September 2019 (UTC)<br />
<br />
::::::::::Yes, I do like that one :D but I think it would be too bright for this template. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 11:52, 21 September 2019 (UTC)<br />
<br />
:::::::::::Any news on this one? If not, I haven't seen this kind of issue or confusion occur since. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 09:37, 31 October 2021 (UTC)<br />
<br />
::::::::::::I don't think I want to create such a template anymore, since it would require updating other installation related pages. To go back to your originally proposed options, I'm for explaining {{ic|/mnt}} early. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:42, 4 November 2021 (UTC)<br />
<br />
== Buggy graphics driver ==<br />
<br />
Can there be a hint that nomodeset parameter could be used if the graphics driver is buggy (I've heard nouveau may be buggy sometimes)<br />
[[User:M.Srikanth|M.Srikanth]] ([[User talk:M.Srikanth|talk]]) 04:47, 12 May 2020 (UTC)<br />
<br />
:I would expect this to be mentioned in [[General_troubleshooting]]... -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 09:43, 31 October 2021 (UTC)<br />
<br />
== GitLab blobs in Lynx ==<br />
<br />
Links to files (blobs) on gitlab.archlinux.org are not readable in Lynx (or any other console web browser); see https://gitlab.com/gitlab-org/gitlab/-/issues/26567.<br />
<br />
Should the Installation guide link to raw files instead?<br />
<br />
-- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 12:29, 4 August 2020 (UTC)<br />
<br />
:Maybe you could ask svenstaro to add it to https://gitlab.com/gitlab-org/gitlab/-/issues/232073... -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 12:36, 4 August 2020 (UTC)<br />
<br />
::It has been filed under [https://gitlab.com/gitlab-org/gitlab/-/issues/232073#nice-to-have nice to have]. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 17:19, 4 August 2020 (UTC)<br />
<br />
:::Instead of using raw links we should perhaps consider if we need links to gitlab at all. The guide has:<br />
:::* [https://gitlab.archlinux.org/archlinux/mkinitcpio/mkinitcpio-archiso/blob/master/docs/README.bootparams README.bootparams]<br />
:::* <s>[https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/systemd/network/20-ethernet.network Ethernet]</s><br />
:::* <s>[https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/systemd/network/20-wlan.network WLAN]</s><br />
:::* <s>[https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/systemd/network/20-wwan.network WWAN]</s><br />
:::* <s>[https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/xdg/reflector/reflector.conf reflector.conf]</s><br />
:::* <s>[https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/packages.x86_64 packages.x86_64]</s><br />
:::Notice how all but one of these share the common path [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng archiso/-/blob/master/configs/releng]. Unless this level of specificity is really required, we could link to this path "for an overview of configuration files shipped with archiso" instead. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 09:35, 31 October 2021 (UTC)<br />
<br />
::::I'd prefer simply removing some of the links.<br />
::::* [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/systemd/network/20-ethernet.network Ethernet], [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/systemd/network/20-wlan.network WLAN] and [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/systemd/network/20-wwan.network WWAN] don't provide much value here, so they can be moved to [[systemd-networkd#Configuration examples]].<br />
::::* [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/xdg/reflector/reflector.conf reflector.conf] is there just for citation purposes. The [[reflector]] article already explains how the software works.<br />
:::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:30, 4 November 2021 (UTC)<br />
<br />
::::: Alright, I've removed those links. ([[Special:Diff/700696]], [[Special:Diff/700693]]) -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 11:39, 4 November 2021 (UTC)<br />
<br />
::::: Now that mirrors provide a symlink to the latest ISO version, it's possible to link to {{ic|pkglist.x86_64.txt}}. [[Special:Diff/730318|I replaced packages.x86_64 with it]]. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 07:31, 21 May 2022 (UTC)<br />
<br />
:Is Lynx (un)readability such a big problem in this case? People using Lynx from the archiso can open up the relevant file in the live system itself... — [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 18:05, 31 October 2021 (UTC)<br />
<br />
== Post-installation ==<br />
<br />
I skipped steps in the guide so I faced a weird crash in gnome without any explanations. I suggest a note.<br />
<br />
{{Note|Many of them assume that you have your timezone or locales set up. Make sure you have followed all the steps.}}<br />
<br />
[[User:Escope|Escope]] ([[User talk:Escope|talk]]) 10:11, 2 April 2021 (UTC)<br />
<br />
:The reader is supposed to follow all the steps. If we apply that to other pages, the pages need a boatload of notes to make sure the reader did not skip any steps. A common functional system has properly configured locales and timezones.<br />
:Since this is GNOME-specific however I would at most add a section into [[GNOME/Troubleshooting]] or even [[General troubleshooting]], but I still think this is out of scope to be honest. Many applications may not work properly when the timezones or locales are not correctly configured.<br />
:-- [[User:NetSysFire|NetSysFire]] ([[User talk:NetSysFire|talk]]) 15:30, 2 April 2021 (UTC)<br />
<br />
::The reader is not supposed to follow all the steps in case one doesn't worthy of attention. In my humble opinion, that's why it has huge advantage over the "Next-Next-Finish" approach. Unconfigured locales or timezones are obvious to many people, but my inexperience made me spend some time to sorting out. The other pages are highly deep and clear about the steps and why they are needed, my eyes enjoy such notes, pages are boatloaded already and I like it a lot =D. Thank you for your attention to this little change.<br />
<br />
::-- [[User:Escope|Escope]] ([[User talk:Escope|talk]]) 00:23, 3 April 2021 (UTC)<br />
<br />
:::If you're inexperienced, what makes you think you can judge if a step is necessary or not? You thought you knew better than the people that wrote the guide and found out that you didn't. Not something that needs changed here IMO.<br />
:::[[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 01:57, 3 April 2021 (UTC)<br />
<br />
:::The ArchWiki should also be about the why-aspect. I am in favor of adding e.g a note about why they are needed and why some applications may crash or behave strangely without properly configured timezones/locales. If you know e.g a nice blog post about this topic, why not add something like this?<br />
:::{{Note|Some applications may behave in strange ways or even crash when the timezones and/or locales are not properly configured. See [https://xkcd.com/1084/ this informative blog post] to know why that is.}}<br />
:::The note needs obviously some rewording, but something like this would fit in well in my opinion.<br />
:::-- [[User:NetSysFire|NetSysFire]] ([[User talk:NetSysFire|talk]]) 02:02, 3 April 2021 (UTC)<br />
<br />
::::Adding a '''brief''' "why" would be ok, but using [[Template:Note]] would be too much. I've also always wanted to emphasize the "and" in [[Installation guide#Localization]], since it's easy to miss (even some of the translated installation guides do not mention {{ic|en_US.UTF-8 UTF-8}}). --- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 08:48, 3 April 2021 (UTC)<br />
<br />
:::::People who want to know the "why" can already consult the relevant articles. That said, consistency is lacking: some sections explain in detail why a step should be performed (such as [[Installation_guide#Verify_signature]]), whereas [[Installation_guide#Configure_the_system]] is mostly a checklist of steps with brief instructions how. The solution isn't obvious: adding notes all over would likely more distract than clarify. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 19:41, 14 April 2021 (UTC)<br />
<br />
::::::I'm definitely apposed to adding notes, but I don't see why we couldn't add brief "why"s without them. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 06:55, 15 April 2021 (UTC)<br />
<br />
== Remove parted ==<br />
<br />
Due to parted [[Advanced Format#Partition alignment|not aligning the partition size]] (and with no patch in sight) which prevents using 4096 byte sectors with dm-crypt/LUKS unless explicitly planned before, I'd like to remove the "[[parted]]" link from [[Installation guide#Partition the disks]]. An alternative would be to change all examples in [[Parted]] to not use percentages and warn against using them. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 07:21, 7 April 2022 (UTC)<br />
<br />
:I prefer to change the examples in [[Parted]]. Just removing the link from installation guide won't stop people from using the tool. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 10:52, 7 April 2022 (UTC)<br />
<br />
== Note on Network Setup ==<br />
<br />
One of the most common installation issues that comes up on Reddit, Forums, and other discussion areas is not having done any sort of network setup. While the Installation Guide explicitly call out Network Setup as a required step, I suspect people are mistakenly believing the setup steps they did already to establish a connection on the installer will carry over to their installed system. <br />
<br />
I propose adding a note such as (example content):<br />
<br />
{{Note| Configuring your network connection above only established your network for the installer. This section will configure the network for your installed Arch system. Failure to do so may leave you without network access after completing installation.}} [[User:Nalthien|Nalthien]] ([[User talk:Nalthien|talk]]) 17:40, 15 May 2022 (UTC)<br />
<br />
:Such a thing [[Help:Style#Notes, Warnings, Tips|does not warrant a warning]] since there's nothing dangerous about being offline. It may even be the safest state the system will ever be. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:24, 18 May 2022 (UTC)<br />
<br />
:: I can agree that it doesn't warrant a Warning given the style guide; however, I do think a Note would be appropriate to "highlight information easily overlooked." It's clearly overlooked quite often. [[User:Nalthien|Nalthien]] ([[User talk:Nalthien|talk]]) 17:36, 20 May 2022 (UTC)<br />
<br />
:[[Installation guide#Connect to the internet]] already explains (or tries to, at least) that the live environment's network setup has nothing to do with the installed system. Perhaps the list items in [[Installation guide#Install essential packages]] could be made a little more verbose to explain '''why''' someone may want to install those things. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:24, 18 May 2022 (UTC)<br />
<br />
I propose adding something like the following:<br />
<br />
''To configure the freshly installed system's network for out-of-the-box ethernet DHCP functionality as on the installation image, create a simple /etc/systemd/network/20-wired.network file for your adapter Name, eg:''<br />
<br />
[Match]<br />
<br />
Name=enp1s0<br />
<br />
[Network]<br />
<br />
DHCP=yes<br />
<br />
''Also, enable both systemd-networkd.service and systemd-resolved.service''<br />
<br />
1. It will only take up a few lines; it is succinct, effective and informative. <br />
2. Further, the functionality on reboot will mimic functionality in the installation image.<br />
3. It uses simple built-in services without installing anything extra. <br />
4. It will also cut down on forum noise immensely.<br />
[[User:Misfit138|Misfit138]] ([[User talk:Misfit138|talk]] 11:11 21 March 2023 (UTC-5)<br />
<br />
: It's also incomplete, as systemd-resolved takes some setup. And it would cause more problems on the forums when people then enable NM or whatever and have both. There's a reason the network configuration page is linked. [[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 15:14, 21 March 2023 (UTC)<br />
<br />
:: systemd-resolved setup is optional according to the network configuration page, and I can confirm this to be the case on a bare-metal workstation as well as a VM. Doing the above minimal steps results in full functionality for a simple dhcp setup and mimics the ootb install image function. Further, installing NM as you indicated would result in a chicken or egg problem before reading a wall of text and realizing they have to setup a trivial and perhaps temporary dhcp solution in order to install a more permanent one anyway. The user has the ability to install packages in the chrooted environment, yes, but the expectation of a functional network in a freshly booted system is reasonable. One explanatory sentence or phrase can inform users that only one network config scheme is needed, as well as a brief warning to avoid conflicts (such warnings already exist elsewhere). The net conf. page can and should still be linked, but it is a monstrous page for something so trivial that can be suggested so succinctly. sent from my phone, will clean up formatting. -- [[User:Misfit138|Misfit138]] ([[User talk:Misfit138|talk]]) 11:37 22 March 2023 (UTC-5)<br />
<br />
:::systemd-networkd only supports using systemd-resolved for DNS. A network connection without working DNS is not something most people would want. I think the best we could do is to explicitly link to [[systemd-networkd]] as an example in [[Installation guide#Install essential packages]]. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 16:16, 22 March 2023 (UTC)<br />
<br />
::::With just the /etc/systemd/network/20-wired.network file, and no other network tools, and after starting networkd and resolved, I can ping sites and visit urls with links and lynx; ostensibly, something is resolving DNS for me(?) (Confirmed on VM and bare-metal.) However, I must regretfully admit that I am not likely to compel you with the principles I have set forth. Thank you for your time and for considering this. -- [[User:Misfit138|Misfit138]] ([[User talk:Misfit138|talk]]) 13:35 22 March 2023 (UTC-5)<br />
<br />
:::::I missed that you suggested to also enable {{ic|systemd-resolved.service}}. In that case, just as [[systemd-resolved#DNS]] says, DNS will only work for software that do not parse {{ic|/etc/resolv.conf}} themselves. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 17:44, 22 March 2023 (UTC)<br />
<br />
:Perhaps the "software necessary for networking" bullet point in [[Installation guide#Install essential packages]] could be extended with a tip that suggests using systemd-networkd + systemd-resolved and copying {{ic|/etc/systemd/network/20-ethernet.network}} from the live environment. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:18, 28 April 2023 (UTC)<br />
<br />
::The crosslinked article already has a note, that could be added there instead, similar to [[Special:diff/773727]]. <br />
::While I see the point of this item, the systemd- tools are probably not the most beginner-friendly ones to configure networking anyway (for some use-cases ok, not for the scope of this guide. Other tools like netctl are arguably simpler to use). The skill to configure networking is important and that's not triggered by copying an autogenerated file. What's the general state of [[archinstall]]? Could it be a solution to add a tip for Arch newcomers at the beginning of the guide to it instead?<br />
::--[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 07:45, 29 April 2023 (UTC)<br />
<br />
:::My idea was to ''somehow'' replace the note in [[Installation guide#Connect to the internet]] with a tip in [[Installation guide#Install essential packages]]. If there's no good way to do it, then let's keep things as is.<br />
:::archinstall would probably warrant an entirely separate discussion.<br />
::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 13:02, 30 April 2023 (UTC)<br />
<br />
== Partitioning tools ==<br />
<br />
Is there any reason gdisk is not listed as an option? If we include parted, despite problems with alignment, I don't see why gdisk is excluded. The wiki page for fdisk actually suggests gdisk as an alternative. I'm probably not the only one who learnt to use gdisk for GPT and it is nice to use a familiar tool if there's no reason not to. But I don't want to add it if it's omitted for a reason. --[[User:Margali|cfr]] ([[User talk:Margali|talk]]) 01:29, 20 August 2022 (UTC)<br />
<br />
:[[fdisk]] linking to [[gdisk]] is the result of a [[Special:Permalink/568741#Example layouts section|previous discussion]] about this.<br />
:Personally, I agree that [[Installation guide#Partition the disks]] should mention [[gdisk]]. My suggestion would be: "Use [[fdisk]], [[parted]] or [[gdisk]] (GPT only) to modify partition tables".<br />
: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:16, 20 August 2022 (UTC)<br />
<br />
::By the same argument, we should then mention cfdisk, cgdisk and any other partition tools. As such I'd suggest the following instead: "Use a [[Partitioning#Partitioning_tools|partitioning tool]] like [[fdisk]] or [[parted]] to modify partition tables". -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 13:32, 24 August 2022 (UTC)<br />
<br />
:::Your suggestion is better than the current text at least. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 08:44, 25 August 2022 (UTC)<br />
<br />
::::In the end the situation is quite similar to the one for boot loaders and network managers. I wouldn't mind listing more alternatives (or even tables) in the installation guide, but then the reasoning has to be applied equally to other sections. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 15:08, 25 August 2022 (UTC)<br />
<br />
:::::I hope it's nothing like [[Partitioning#Partitioning tools|this sorry excuse for a table]].<br />
:::::The thing with partitioning tools, compared to e.g. network managers, is that there are not that many of them. There's basically just fdisk, gdisk and parted. fdisk & gdisk additionally have scriptable and text user interfaces. And there are GUI ones based on parted.<br />
:::::I'd say let's go with your suggested text for now. We'll get to the greater goal eventually :D<br />
::::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 15:22, 25 August 2022 (UTC)<br />
<br />
::::::The table in [[Partitioning#Partitioning tools]] got better, so IMHO it should be fine to link to it now. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 16:04, 28 August 2022 (UTC)<br />
<br />
:::::::The "old" beginners' guide had a similar table included: [[User:Alad/Beginners'_guide#Partition_the_devices]]. Considering the small size, it could make sense to include the one from [[Partitioning#Partitioning tools]] in the installation guide directly. The downside is the GUI wrappers don't apply to the live environment. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 16:36, 28 August 2022 (UTC)<br />
<br />
::::::::If there's a problem with parted not aligning, it strikes me as perverse to mention fdisk and parted by name, but nothing else. Surely the example tools should be ones which don't need special warnings (if at all possible)? Maybe fdisk should be the only example? (Unless it has changed, gdisk isn't on the ISO, so that's a good reason not to pick it out, but steering people away from parted seems warranted if it is problematic.) --[[User:Margali|cfr]] ([[User talk:Margali|talk]]) 03:13, 30 October 2022 (UTC)<br />
<br />
:::::::::Is everyone OK with "Use a [[Partitioning#Partitioning_tools|partitioning tool]] like [[fdisk]] to modify partition tables"? That way we point to the resources while keeping only the tool used in the following examples. --[[User:Erus Iluvatar|Erus Iluvatar]] ([[User talk:Erus Iluvatar|talk]]) 21:34, 20 December 2022 (UTC)<br />
<br />
== Missing pacman-key steps ? ==<br />
<br />
I just tried (using archlinux-2022.11.01-x86_64.iso) the standard archlinux installation (pacstrap) following the guide,<br />
and once the packages were downloaded, they failed to install with errors like:<br />
* "signature from <maintainer> is unknown trust"<br />
<br />
I found on the web the following commands to solve the issue: (https://bbs.archlinux32.org/viewtopic.php?id=2900)<br />
* pacman-key --init<br />
* pacman-key --populate archlinux<br />
<br />
After those two commands, the pacstrap installation works fine.<br />
<br />
If those two commands are needed, shouldn't we document them in the Installation guide ?<br />
<br />
(note that the same problem/solution is applicable to archinstall method too)<br />
<br />
{{Unsigned|23:02, 3 November 2022 (UTC)|Nsauzede}}<br />
<br />
:This is already done by pacman-init.service. [[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 23:38, 3 November 2022 (UTC)<br />
<br />
:I hit the exact same problem with same installation iso. I got the solution from https://wiki.archlinux.org/title/Pacman/Package_signing<br />
:{{Unsigned|2022-12-02T07:53:41|Roblaing}}<br />
<br />
: This is caused by out of date keyring, what really should be added to the installation guide is starting the keyring sync service {{ic|systemctl start archlinux-keyring-wkd-sync}} before the pacstrap step, with a warning to check that it has finished running before continuing. This will allow both older ISOs to work and even current ISOs to work. December ISO is once again broken right now as openssl has too new a key. [[User:C0rn3j|C0rn3j]] ([[User talk:C0rn3j|talk]]) 23:21, 24 December 2022 (UTC)<br />
::archlinux-keyring-wkd-sync doesn't 'sync' the keyring, it refreshes it which is only helpful in a limited set of circumstances. Most of the time, it won't help these errors. [[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 03:21, 25 December 2022 (UTC)<br />
::: It however helps with the current issue and am sure the previous issues too, as they were fixable with partially installing archlinux-keyring on the ISO before. I am not aware of a better solution, unless reinitializing and populating the keyring as per OP is actually preferred? [[User:C0rn3j|C0rn3j]] ([[User talk:C0rn3j|talk]]) 11:05, 25 December 2022 (UTC)<br />
::::Reinitializing and populating the keyring is a solution for a completely different problem. [[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 13:32, 25 December 2022 (UTC)<br />
<br />
== Add tip for easily booting iPXE-arch.efi file from almost all hardware ==<br />
<br />
For most scenarios (I assume) it isn't necessary to flash an USB drive or burn a disk.<br />
You can simply put the PXE EFI binary on a drive and boot it from "BIOS" directly (works e.g. on Dell hardware). If your BIOS does not support loading arbitrary files directly, you can use the UEFI shell to do so if available. Otherwise you can simply put the image under {{ic|/EFI/BOOT/}} and name it bootx64.efi and select this drive from the boot menu. The drive might even be the boot partition, if you are going to do a reinstall. (Tested on Lenovo and Fujitsu notebooks) [[User:Flacer|Flacer]] ([[User talk:Flacer|talk]]) 14:06, 26 January 2023 (UTC)<br />
<br />
:[[Installation guide#Acquire an installation image]] already mentions the netboot image. And yes, it should work just fine on any system with an Ethernet connection. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 14:13, 26 January 2023 (UTC)<br />
<br />
:: That is true, but in my opinion it would be beneficial to emphasize this because esp. new users think of setting up a server etc. (me too, although I'm not quite a new user; discovered this by accident).<br />
<br />
::So it would be better to put it under [[Netboot]]? Anyway it would be helpful to place a link to that page, most appropriately under 1.3. -- [[User:Flacer|Flacer]] ([[User talk:Flacer|talk]]) 15:42, 26 January 2023 (UTC)<br />
<br />
:::I could be wiki-linked from 1.1 and ''somehow'' mentioned in 1.3. Just need to find the right words for it. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 14:55, 1 February 2023 (UTC)<br />
<br />
::::I think an additional link in 1.1 is too early. Currently, the downloads landing page links a dedicated netboot page, which at the end leads to the wiki article. Linking it earlier may mislead to users skipping the gpg steps in 1.2. and the landing page.<br />
::::In 1.3 we could replace "or a network with [[PXE]]:" with "or an appropriate [[PXE]]" for starters. And complement that by adding to the last intro sentence in [[PXE]] "This works well when you already have a server set up, but may (for installation purposes) also load the image directly from an official Arch mirror."<br />
::::--[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 22:52, 3 February 2023 (UTC)<br />
<br />
:::::I'm not too sure about "or an appropriate [[PXE]]". I assume most people would just place the netboot EFI binary in a USB flash drive and boot it directly. The fact that the images are iXPE builds is not that relevant. Perhaps 1.3 needs to explicitly differentiate the deployment methods of the ISO and netboot images since the links in the section are ISO specific. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:02, 4 February 2023 (UTC)<br />
<br />
::::::True, like two bullet points for ISO and iPXE in 1.3. I proposed "appropriate PXE", because (as Flacer mentions) current "network [[PXE]]" does indeed sound like you need to set up a server when you visit the article. How about switching [[PXE]] links to [[netboot]]?<br />
::::::--[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 19:23, 5 February 2023 (UTC)<br />
<br />
:::::::Well, you can still PXE-boot the ISO contents as the [[PXE]] article describes, so I don't think it's correct to remove the links.<br />
:::::::I would probably be best if [[Netboot]] had instructions on how to create a bootable medium from the image. At least for UEFI, since that's dead simple. IMHO 1.3. could then be turned into two sentences, one for the ISO deployment, one for netboot.<br />
::::::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:52, 6 February 2023 (UTC)<br />
<br />
::::::::Sure, it can; see the sentence I proposed above for [[PXE]]. I agree it is more important to edit both articles first. The simple method proposed by Flacer can be turned into a tip in the [[Netboot]] section you suggest. Afterwards we can see what changes are still useful in this main guide. Perhaps this item should be moved to [[Talk:Netboot]] for implementation first. --[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 18:44, 16 February 2023 (UTC)<br />
<br />
:::::::::There's [[Netboot#Boot from a USB flash drive]] that can be linked now. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 16:10, 26 March 2023 (UTC)<br />
<br />
:::::::::I drafted something below. [[Installation guide#Boot the live environment]] will need adjustment too, so suggestions welcome. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 14:59, 24 June 2023 (UTC)<br />
<br />
=== Prepare an installation medium (draft) ===<br />
<br />
The ISO can be supplied to the target machine via a [[USB flash installation medium|USB flash drive]], an [[Optical disc drive#Burning|optical disc]] or a network with [[PXE]]: follow the appropriate article to prepare yourself an installation medium from the ISO file.<br />
<br />
For the netboot image, follow [[Netboot#Boot from a USB flash drive]] to prepare a USB flash drive for UEFI booting.<br />
<br />
== Mention zram ==<br />
<br />
In [[Installation guide#Partition the disks]], The note mentions:<br />
<br />
:* [[Swap]] space can be set on a [[swap file]] for file systems supporting it.<br />
Should it be updated to add reference to [[zram]] as well ? Something like :<br />
:* As an alternative to a swap partition, [[Swap]] space can be set on a [[swap file]] for file systems supporting it, or in a [[Zram|compressed block device in ram]].<br />
<br />
-- [[User:Cvlc|Cvlc]] ([[User talk:Cvlc|talk]]) 23:04, 30 January 2023 (UTC)<br />
<br />
:I do not think zram is essential enough (compared to the defaults) for it to be mentioned in the [[Installation guide]], or even in [[General recommendations]]. The [[Improving performance|snake oil article]] references it and IMHO that's enough. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:22, 31 January 2023 (UTC)<br />
<br />
::(Re-opened, hope that's ok)<br />
::Certainly not essential, but it's one possible reason not to plan for a swap partition during the partitioning step. Distros like Fedora provide that [https://fedoraproject.org/wiki/Changes/SwapOnZRAM by default], it's a reasonable way to set up a system, I don't see any harm in mentioning it. People often read the installation guide many times before actually installing Arch, it's a perfect way to learn about possibilities, whereas [[Improving performance]] is probably most often read after installation on a running system. Swap files are already mentioned, so it doesn't require any extra note or clutter, just modifying a sentence, which is nice.<br />
::-- [[User:Cvlc|Cvlc]] ([[User talk:Cvlc|talk]]) 16:16, 31 January 2023 (UTC)<br />
<br />
:::If it were to be added to the installation guide, I want it to contain the phrase "swap on zram" instead of obfuscating it with "compressed block device in ram" or similar.<br />
:::I don't think we can link to [[Zram#Usage as swap]] unless it has a suggested size for the swap space.<br />
::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:13, 22 June 2023 (UTC)<br />
<br />
:: I was about to say, we can just link to the suggested size from the [[swap]] article but... there is no suggested size there either :)<br />
:: -- [[User:Cvlc|Cvlc]] ([[User talk:Cvlc|talk]]) 15:09, 22 June 2023 (UTC)<br />
<br />
:::There's [[Partitioning#Swap]], which IMO should be linked from [[Swap#Swap file]], but it doesn't actually say anything specific. Instead the recommended size is only listed in the [[Partitioning#Example layouts]] table.<br />
:::Still, does the general swap size recommendation apply to swap on zram? Is wasting 512 MiB of RAM enough?<br />
::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 16:24, 22 June 2023 (UTC)<br />
<br />
:: No you're right, the general swap size recommendation does not really apply to zram. A percentage of available RAM makes more sense. {{ic|zram-generator}} has a default of {{ic|1=zram-size = min(ram / 2, 4096)}}, Fedora uses [https://fedoraproject.org/wiki/Releases/34/ChangeSet#Scale_ZRAM_to_Full_Memory_Size 100%] of RAM. I've been using 100% without problems for quite a while. I would suggest 100% for regular desktop/laptop use, and 50% if having to deal with specific non compressible workloads (not sure what this would be though, I've had no problem with encoding of large video files, or such).<br />
:: -- [[User:Cvlc|Cvlc]] ([[User talk:Cvlc|talk]]) 16:50, 22 June 2023 (UTC)<br />
<br />
:::[[Fedora:Changes/Scale ZRAM to full memory size]] says that it's 8 GiB max, so not "100%". And we shouldn't blindly follow Fedora either, their change reasoning is not always properly documented. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 15:05, 24 June 2023 (UTC)<br />
<br />
== <s>Make LVM Link More Relevant to Partitioning Disks</s> ==<br />
<br />
In [[Installation_guide#Partition_the_disks]], where it briefly mentions LVM and to "do it now", the link should redirect the user to [[Install_Arch_Linux_on_LVM]] instead of [[LVM]] because it does not explain in detail to use the ''Linux LVM'' partition type, and other necessary commands to activate it. <br />
<br />
[[User:Xulingo|Xulingo]] ([[User talk:Xulingo|talk]]) 06:34, 12 May 2023 (UTC)<br />
<br />
:[[Special:Diff/781725|Done]]. Thanks! -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 16:30, 22 June 2023 (UTC)<br />
<br />
== "2.2 Install essential packages" needs more specific suggestions for absolute beginners. ==<br />
<br />
I personally had a lot of problems with the installation and had to resort to "walk-throughs" that just caused hours of headaches. I will point out some of the problems I had with this section.<br />
<br />
"userspace utilities for the management of file systems that will be used on the system" <br />
is wordy and vague. It is unhelpful to someone completely new. The hyperlink points to types of file systems which is not intuitive to the statements suggestion. At the very least, "userspace utilities" should be hyperlinked to a section of programs the statement is suggesting. Several months on, I still am unsure of what they are eluding to.<br />
<br />
"specific firmware for other devices not included in linux-firmware (e.g. sof-firmware for sound cards)"<br />
An absolute beginner does not know what specific firmware are not included in linux-firmware. The suggestion of sound cards is extremely outdated, and frankly makes it seem like linux-firmware is going to leave you needing a lot of drivers if it cannot even operate your sound card out of the box. This confusion led me down a rabbit hole of installing(or trying to find) CPU microcode updates, nvidia drivers, wired or wireless drivers, motherboard drivers, and so on.<br />
<br />
"software necessary for networking (e.g. a network manager or a standalone DHCP client, authentication software for Wi-Fi, ModemManager for mobile broadband connections)" My first problem was I was unaware of the need to systemctl enable the networking software, which led me to installing multiple DHCP clients and causing issues further down the road. I am now aware that if I had read more into the software. I believe a simple reminder to systemctl enable the networking software could save a lot of people problems. <br />
<br />
"a text editor,"<br />
The hyperlink just throws a list of 70 or so text editors at you. This is quite needlessly daunting to someone new. Even something as basic as "e.g. vim" would have spared me from being so overwhelmed this far into my troubles with this section. <br />
<br />
"packages for accessing documentation in man and info pages: man-db, man-pages and texinfo."<br />
This should take priority above all by being placed first in this list. <br />
<br />
I would recommend a section "2.2.1 Example(s) of essential packages" be created that shows at least one example of a typical users desktop computer, and what they would install on this step.<br />
<br />
{{Unsigned|21:12, 12 June 2023 (UTC)|Todd the king}}<br />
<br />
:I would refer you to https://wiki.archlinux.org/title/Arch_Linux#User_centrality. Arch's target audience isn't absolute beginners, it's experienced Linux users that know what they want and how they want their system set up. [[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 22:37, 12 June 2023 (UTC)<br />
<br />
::It is targeted at the proficient GNU/Linux user, or anyone with a do-it-yourself attitude who is willing to read the documentation, and solve their own problems. {{Unsigned|21:12, 12 June 2023 (UTC)|Todd the king}}<br />
<br />
:::And your argument is that you don't want to read the documentation. Arch dosen't make these decisions for you, you need to either know what you want or be willing to figure out what you want. [[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 22:49, 12 June 2023 (UTC)<br />
<br />
::::I did read the documentation, and I did figure out what I wanted. It took much longer than it should have because the instructions were hazy on this section. Why give any examples of software or suggestions of configuration to use in the article at all if this is the mindset of the guide? Where is the line and why? [[User:Todd the king|Todd the king]] ([[User talk:Todd the king|talk]]) 23:09, 12 June 2023 (UTC)<br />
<br />
:First of all, welcome :)<br />
:Now, I'm sorry but: <br />
<br />
::"userspace utilities for the management of file systems that will be used on the system" <br />
::is wordy and vague. It is unhelpful to someone completely new. The hyperlink points to types of file systems which is not intuitive to the statements suggestion. At the very least, "userspace utilities" should be hyperlinked to a section of programs the statement is suggesting. Several months on, I still am unsure of what they are eluding to.<br />
<br />
:The very first section of the linked page (i.e. [[File systems#Types of file systems]] has a table which helpfully has a "Userspace utilities" column, I fail to see how skipping the page introduction would make this more obvious. <br />
<br />
::"specific firmware for other devices not included in linux-firmware (e.g. sof-firmware for sound cards)"<br />
::An absolute beginner does not know what specific firmware are not included in linux-firmware. The suggestion of sound cards is extremely outdated, and frankly makes it seem like linux-firmware is going to leave you needing a lot of drivers if it cannot even operate your sound card out of the box. This confusion led me down a rabbit hole of installing(or trying to find) CPU microcode updates, nvidia drivers, wired or wireless drivers, motherboard drivers, and so on.<br />
<br />
:An absolute beginner's encouraged to seek help if he's unsure of what advice is applicable to its hardware. As shown in the tables in [[Laptop/Lenovo]], various recent laptops ''do'' require [[ALSA firmware]], while some models require specific drivers (and its respective firmware) for wireless networking: [[Broadcom wireless]], or even some USB3 chipsets on the motherboard with {{AUR|upd72020x-fw}} for example. <br />
<br />
::"software necessary for networking (e.g. a network manager or a standalone DHCP client, authentication software for Wi-Fi, ModemManager for mobile broadband connections)" My first problem was I was unaware of the need to systemctl enable the networking software, which led me to installing multiple DHCP clients and causing issues further down the road. I am now aware that if I had read more into the software. I believe a simple reminder to systemctl enable the networking software could save a lot of people problems. <br />
<br />
: Someone manually configuring a [[Network configuration#Static IP address|static ip connection]] would not need that step, while every dedicated [[network manager]] page explains the need for enabling their respective systemd unit. <br />
<br />
::"a text editor,"<br />
::The hyperlink just throws a list of 70 or so text editors at you. This is quite needlessly daunting to someone new. Even something as basic as "e.g. vim" would have spared me from being so overwhelmed this far into my troubles with this section. <br />
<br />
:Not picking a default text editor is a feature and not a bug: every choice made of a "sane default" would create endless bikeshedding (see [[Wikipedia:Editor war]]), although a popular beginner friendly one has been used as an example in [[Help:Reading#Append, add, create, edit]]. <br />
<br />
::"packages for accessing documentation in man and info pages: man-db, man-pages and texinfo."<br />
::This should take priority above all by being placed first in this list. <br />
<br />
:Man pages can be accessed with man.archlinux.org instead of wasting bandwidth and disk space by installing and updating a local version. <br />
<br />
::I would recommend a section "2.2.1 Example(s) of essential packages" be created that shows at least one example of a typical users desktop computer, and what they would install on this step.<br />
<br />
: This guide is not specific to desktop users, a dedicated section is out of scope. <br />
<br />
: As a general answer, our aim is to provide readers with the information they need to make an educated decision at every step, not rubber stamping the [https://pkgstats.archlinux.de/ popularity] of various software solutions. <br />
: While a little overwhelming at first, this approach has proven itself to be the best working on the long term: [[Help:Reading#Organization]]. <br />
: --[[User:Erus Iluvatar|Erus Iluvatar]] ([[User talk:Erus Iluvatar|talk]]) 00:07, 13 June 2023 (UTC)<br />
<br />
:I replaced "sound cards" with "onboard audio" which will hopefully get the message across better. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 05:56, 13 June 2023 (UTC)<br />
<br />
:After a bit of staring at [[Installation guide#Install essential packages]], I can confidentially say I can find some fault in each and any bullet point. So, starting from the top, I propose changing the first one to:<br />
::[[File systems|userspace utilities for file systems]] that will be used on the system—for the purposes of e.g. file system creation and [[fsck]],<br />
: It gets rid of the vague "for the management" and adds actual reasons for wanting the userspace utilities.<br />
: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 06:37, 13 June 2023 (UTC)<br />
<br />
::Since no one objected, and I finally remembered this discussion, I updated the page per my suggestion above. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:06, 22 June 2023 (UTC)<br />
<br />
:"utilities for accessing [[RAID]] or [[LVM]] partitions" could be replaced with something like:<br />
::utilities for accessing and managing [[RAID#Installation|RAID]] or [[LVM#Installation|LVM]] if they will be used on the system,<br />
:These things can actually be ''managed'', and they are not limited to ''partitions''. Also IMO it's better to directly link to the section that lists the packages to install.<br />
: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:48, 22 June 2023 (UTC)<br />
<br />
::[[Special:Diff/782222|Done]]. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:23, 30 June 2023 (UTC)<br />
<br />
:On to the next one:<br />
::specific firmware for other devices not included in {{Pkg|linux-firmware}} (e.g. {{Pkg|sof-firmware}} for [[Advanced Linux Sound Architecture#ALSA firmware|onboard audio]], {{Pkg|linux-firmware-marvell}} for Marvell wireless and any of the multiple firmware packages for [[Broadcom wireless]]),<br />
:It lists the only split-package of {{Pkg|linux-firmware}} that I've heard anyone actually need and also the dreaded Broadcom wireless.<br />
: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:23, 30 June 2023 (UTC)<br />
<br />
== Use /sys/firmware/efi/fw_platform_size to verify the boot mode ==<br />
<br />
For a year now, the official ISO can boot on IA32 UEFI. Since IA32 UEFI needs special considerations, I think [[Installation guide#Verify the boot mode]] could be changed to distinguish not just the whether one has booted in UEFI vs BIOS (CSM) mode, but also the UEFI bitness. See the following draft. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 14:44, 24 June 2023 (UTC)<br />
<br />
: Looks fine to me -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 16:05, 24 June 2023 (UTC)<br />
<br />
: I've made a slight change, IMO we don't need to state that we "try" anything? --[[User:Erus Iluvatar|Erus Iluvatar]] ([[User talk:Erus Iluvatar|talk]]) 16:20, 24 June 2023 (UTC)<br />
: BTW, I think there is also [https://github.com/systemd/systemd/pull/22550 support] from [[systemd-boot]], and link-ifying [[GRUB]] might also be helpful in that part of the sentence ? --[[User:Erus Iluvatar|Erus Iluvatar]] ([[User talk:Erus Iluvatar|talk]]) 17:31, 24 June 2023 (UTC)<br />
<br />
::Yes, systemd-boot supports it, but the {{Pkg|systemd}} package does not build and package IA32 EFI binaries. Someone would need to open a feature request for that. There's also {{Pkg|syslinux}} which ships IA32 EFI binaries, but, if I understand it correctly, [https://bugzilla.syslinux.org/show_bug.cgi?id=75 those do not work on real hardware].<br />
::As for linking to [[GRUB]], I chose not to because nothing in there is relevant at the [[Installation guide#Verify the boot mode]] stage.<br />
:: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 17:53, 24 June 2023 (UTC)<br />
<br />
:::Thanks! Given this context the draft is good then :) --[[User:Erus Iluvatar|Erus Iluvatar]] ([[User talk:Erus Iluvatar|talk]]) 18:16, 24 June 2023 (UTC)<br />
<br />
=== Verify the boot mode (draft) ===<br />
<br />
To verify the boot mode, check the UEFI bitness:<br />
<br />
# cat /sys/firmware/efi/fw_platform_size<br />
<br />
If the command returns {{ic|64}}, then system is booted in UEFI mode and has a 64-bit x64 UEFI. If the command returns {{ic|32}}, then system is booted in UEFI mode and has a 32-bit IA32 UEFI; while this is supported, it will limit the boot loader choice to GRUB. If the file does not exist, the system may be booted in [[Wikipedia:BIOS|BIOS]] (or [[Wikipedia:Compatibility Support Module|CSM]]) mode. If the system did not boot in the mode you desired (UEFI vs BIOS), refer to your motherboard's manual.<br />
<br />
== 16. EFI bootloader may not work if you didn't mark partition as ESP ==<br />
<br />
As it stands, the installation guide won't work at least for {{ic|systemd-boot}} (maybe for other bootloaders as well, I didn't test that), because after you created the partition and formatted as FAT32, it will lack {{ic|esp}} mark. An example of marking as such: {{ic|parted /dev/sdX set 1 esp}} (substitute /dev/sdX with device name and 1 with the partition number).<br />
<br />
In absence of that e.g. {{ic|bootctl install}} bails out with {{ic|bootctl install error: file system has wrong type}}.<br />
<br />
Please, could somebody with write permission add a 1.9.2 paragraph mentioning necessity to mark the partition as such, ideally with the {{ic|parted}} example I posted here.[[User:Hi-Angel|Hi-Angel]] ([[User talk:Hi-Angel|talk]]) 11:13, 7 July 2023 (UTC)</div>Hi-Angelhttps://wiki.archlinux.org/index.php?title=Improving_performance&diff=612262Improving performance2020-05-11T13:36:32Z<p>Hi-Angel: Replace "cat" with "grep" to show devices that the output belongs to</p>
<hr />
<div>[[Category:Hardware]]<br />
[[Category:System administration]]<br />
[[ar:Improving performance]]<br />
[[es:Improving performance]]<br />
[[ja:パフォーマンスの最大化]]<br />
[[pt:Improving performance]]<br />
[[ru:Improving performance]]<br />
[[zh-hans:Improving performance]]<br />
{{Related articles start}}<br />
{{Related|/Boot process}}<br />
{{Related|Pacman/Tips and tricks#Performance}}<br />
{{Related|OpenSSH#Speeding up SSH}}<br />
{{Related|Openoffice#Speed up OpenOffice}}<br />
{{Related|Laptop}}<br />
{{Related|Preload}}<br />
{{Related articles end}}<br />
This article provides information on basic system diagnostics relating to performance as well as steps that may be taken to reduce resource consumption or to otherwise optimize the system with the end-goal being either perceived or documented improvements to a system's performance.<br />
<br />
== The basics ==<br />
<br />
=== Know your system ===<br />
<br />
The best way to tune a system is to target bottlenecks, or subsystems which limit overall speed. The system specifications can help identify them.<br />
<br />
* If the computer becomes slow when large applications (such as LibreOffice and Firefox) run at the same time, check if the amount of RAM is sufficient. Use the following command, and check the "available" column:<br />
<br />
$ free -h<br />
<br />
* If boot time is slow, and applications take a long time to load at first launch (only), then the hard drive is likely to blame. The speed of a hard drive can be measured with the {{ic|hdparm}} command:<br />
{{Note|{{Pkg|hdparm}} indicates only the pure read speed of a hard drive, and is not a valid benchmark. A value higher than 40MB/s (while idle) is however acceptable on an average system.}}<br />
<br />
# hdparm -t /dev/sdX<br />
<br />
* If CPU load is consistently high even with enough RAM available, then try to lower CPU usage by disabling running [[daemons]] and/or processes. This can be monitored in several ways, for example with {{Pkg|htop}}, {{ic|pstree}} or any other [[List_of_applications#System monitors|system monitoring]] tool:<br />
<br />
$ htop<br />
<br />
* If applications using direct rendering are slow (i.e those which use the GPU, such as video players, games, or even a [[window manager]]), then improving GPU performance should help. The first step is to verify if direct rendering is actually enabled. This is indicated by the {{ic|glxinfo}} command, part of the {{Pkg|mesa-demos}} package:<br />
<br />
{{hc|<nowiki>$ glxinfo | grep "direct rendering"</nowiki>|<br />
direct rendering: Yes<br />
}}<br />
<br />
* When running a [[desktop environment]], disabling (unused) visual desktop effects may reduce GPU usage. Use a more lightweight environment or create a [[Desktop_environment#Custom_environments|custom environment]] if the current does not meet the hardware and/or personal requirements.<br />
<br />
=== Benchmarking ===<br />
<br />
The effects of optimization are often difficult to judge. They can however be measured by [[benchmarking]] tools.<br />
<br />
== Storage devices ==<br />
<br />
=== Multiple hardware paths ===<br />
<br />
{{Style|Subjective writing}}<br />
<br />
An internal hardware path is how the storage device is connected to your motherboard. There are different ways to connect to the motherboard such as TCP/IP through a NIC, plugged in directly using PCIe/PCI, Firewire, Raid Card, USB, etc. By spreading your storage devices across these multiple connection points you maximize the capabilities of your motherboard, for example 6 hard-drives connected via USB would be much much slower than 3 over USB and 3 over Firewire. The reason is that each entry path into the motherboard is like a pipe, and there is a set limit to how much can go through that pipe at any one time. The good news is that the motherboard usually has several pipes.<br />
<br />
More Examples<br />
<br />
# Directly to the motherboard using PCI/PCIe/ATA<br />
# Using an external enclosure to house the disk over USB/Firewire<br />
# Turn the device into a network storage device by connecting over TCP/IP<br />
<br />
Note also that if you have a 2 USB ports on the front of your machine, and 4 USB ports on the back, and you have 4 disks, it would probably be fastest to put 2 on front/2 on back than 3 on back/1 on front. This is because internally the front ports are likely a separate Root Hub than the back, meaning you can send twice as much data by using both than just 1. Use the following commands to determine the various paths on your machine.<br />
<br />
{{hc|USB Device Tree|$ lsusb -t}}<br />
<br />
{{hc|PCI Device Tree|$ lspci -tv}}<br />
<br />
=== Partitioning ===<br />
<br />
Make sure that your partitions are [[Partitioning#Partition_alignment|properly aligned]].<br />
<br />
==== Multiple drives ====<br />
<br />
If you have multiple disks available, you can set them up as a software [[RAID]] for serious speed improvements.<br />
<br />
Creating [[swap]] on a separate disk can also help quite a bit, especially if your machine swaps frequently.<br />
<br />
==== Layout on HDDs ====<br />
<br />
If using a traditional spinning HDD, your partition layout can influence the system's performance. Sectors at the beginning of the drive (closer to the outside of the disk) are faster than those at the end. Also, a smaller partition requires less movements from the drive's head, and so speed up disk operations. Therefore, it is advised to create a small partition (10GB, more or less depending on your needs) only for your system, as near to the beginning of the drive as possible. Other data (pictures, videos) should be kept on a separate partition, and this is usually achieved by separating the home directory ({{ic|/home/''user''}}) from the system ({{ic|/}}).<br />
<br />
=== Choosing and tuning your filesystem ===<br />
<br />
Choosing the best filesystem for a specific system is very important because each has its own strengths. The [[File systems]] article provides a short summary of the most popular ones. You can also find relevant articles in [[:Category:File systems]].<br />
<br />
==== Mount options ====<br />
<br />
The [[fstab#atime options|noatime]] option is known to improve performance of the filesystem.<br />
<br />
Other mount options are filesystem specific, therefore see the relevant articles for the filesystems:<br />
<br />
* [[Ext3]]<br />
* [[Ext4#Improving performance]]<br />
* [[JFS Filesystem#Optimizations]]<br />
* [[XFS#Performance]]<br />
* [[Btrfs#Defragmentation]], [[Btrfs#Compression]], and {{man|5|btrfs}}<br />
* [[ZFS#Tuning]]<br />
<br />
===== Reiserfs =====<br />
<br />
The {{Ic|1=data=writeback}} mount option improves speed, but may corrupt data during power loss. The {{Ic|notail}} mount option increases the space used by the filesystem by about 5%, but also improves overall speed. You can also reduce disk load by putting the journal and data on separate drives. This is done when creating the filesystem: <br />
<br />
# mkreiserfs –j /dev/sd'''a1''' /dev/sd'''b1'''<br />
<br />
Replace {{ic|/dev/sd'''a1'''}} with the partition reserved for the journal, and {{ic|/dev/sd'''b1'''}} with the partition for data. You can learn more about reiserfs with this [http://www.funtoo.org/Funtoo_Filesystem_Guide,_Part_2 article].<br />
<br />
=== Tuning kernel parameters ===<br />
<br />
There are several key tunables affecting the performance of block devices, see [[sysctl#Virtual memory]] for more information.<br />
<br />
=== Input/output schedulers ===<br />
<br />
==== Background information ====<br />
<br />
The input/output ''(I/O)'' scheduler is the kernel component that decides in which order the block I/O operations are submitted to storage devices. It is useful to remind here some specifications of two main drive types because the goal of the I/O scheduler is to optimize the way these are able to deal with read requests:<br />
<br />
* An HDD has spinning disks and a head that moves physically to the required location. Therefore, random latency is quite high ranging between 3 and 12ms (whether it is a high end server drive or a laptop drive and bypassing the disk controller write buffer) while sequential access provides much higher throughput. The typical HDD throughput is about 200 I/O operations per second ''(IOPS)''.<br />
<br />
* An SSD does not have moving parts, random access is as fast as sequential one, typically under 0.1ms, and it can handle multiple concurrent requests. The typical SSD throughput is greater than 10,000 IOPS, which is more than needed in common workload situations.<br />
<br />
If there are many processes making I/O requests to different storage parts, thousands of IOPS can be generated while a typical HDD can handle only about 200 IOPS. There is a queue of requests that have to wait for access to the storage. This is where the I/O schedulers plays an optimization role.<br />
<br />
==== The scheduling algorithms ====<br />
<br />
One way to improve throughput is to linearize access: by ordering waiting requests by their logical address and grouping the closest ones. Historically this was the first Linux I/O scheduler called [[Wikipedia:Elevator algorithm|elevator]].<br />
<br />
One issue with the elevator algorithm is that it is not optimal for a process doing sequential access: reading a block of data, processing it for several microseconds then reading next block and so on. The elevator scheduler does not know that the process is about to read another block nearby and, thus, moves to another request by another process at some other location. The [[Wikipedia:Anticipatory scheduling|anticipatory]] I/O scheduler overcomes the problem: it pauses for a few milliseconds in anticipation of another close-by read operation before dealing with another request.<br />
<br />
While these schedulers try to improve total throughput, they might leave some unlucky requests waiting for a very long time. As an example, imagine the majority of processes make requests at the beginning of the storage space while an unlucky process makes a request at the other end of storage. This potentially infinite postponement of the process is called starvation. To improve fairness, the [[Wikipedia:Deadline scheduler|deadline]] algorithm was developed. It has a queue ordered by address, similar to the elevator, but if some request sits in this queue for too long then it moves to an "expired" queue ordered by expire time. The scheduler checks the expire queue first and processes requests from there and only then moves to the elevator queue. Note that this fairness has a negative impact on overall throughput.<br />
<br />
The [[Wikipedia:CFQ|Completely Fair Queuing (CFQ)]] approaches the problem differently by allocating a timeslice and a number of allowed requests by queue depending on the priority of the process submitting them. It supports [[cgroup]] that allows to reserve some amount of I/O to a specific collection of processes. It is in particular useful for shared and cloud hosting: users who paid for some IOPS want to get their share whenever needed. Also, it idles at the end of synchronous I/O waiting for other nearby operations, taking over this feature from the ''anticipatory'' scheduler and bringing some enhancements. Both the ''anticipatory'' and the ''elevator'' schedulers were decommissioned from the Linux kernel replaced by the more advanced alternatives presented above.<br />
<br />
The [https://algo.ing.unimo.it/people/paolo/disk_sched/ Budget Fair Queuing (BFQ)] is based on CFQ code and brings some enhancements. It does not grant the disk to each process for a fixed time-slice but assigns a "budget" measured in number of sectors to the process and uses heuristics. It is a relatively complex scheduler, it may be more adapted to rotational drives and slow SSDs because its high per-operation overhead, especially if associated with a slow CPU, can slow down fast devices. The objective of BFQ on personal systems is that for interactive tasks, the storage device is virtually as responsive as if it was idle. In its default configuration it focuses on delivering the lowest latency rather than achieving the maximum throughput.<br />
<br />
[https://lwn.net/Articles/720675/ Kyber] is a recent scheduler inspired by active queue management techniques used for network routing. The implementation is based on "tokens" that serve as a mechanism for limiting requests. A queuing token is required to allocate a request, this is used to prevent starvation of requests. A dispatch token is also needed and limits the operations of a certain priority on a given device. Finally, a target read latency is defined and the scheduler tunes itself to reach this latency goal. The implementation of the algorithm is relatively simple and it is deemed efficient for fast devices.<br />
<br />
==== Kernel's I/O schedulers ====<br />
<br />
While some of the early algorithms have now been decommissioned, the official Linux kernel supports a number of I/O schedulers which can be split into two categories:<br />
<br />
*The '''multi-queue schedulers''' are available by default with the kernel. The [https://www.thomas-krenn.com/en/wiki/Linux_Multi-Queue_Block_IO_Queueing_Mechanism_(blk-mq) Multi-Queue Block I/O Queuing Mechanism (blk-mq)] maps I/O queries to multiple queues, the tasks are distributed across threads and therefore CPU cores. Within this framework the following schedulers are available:<br />
**''None'', where no queuing algorithm is applied.<br />
**''mq-deadline'', the adaptation of the deadline scheduler (see below) to multi-threading.<br />
**''Kyber''<br />
**''BFQ''<br />
<br />
*The '''single-queue schedulers''' are legacy schedulers:<br />
**[[w:Noop scheduler|NOOP]] is the simplest scheduler, it inserts all incoming I/O requests into a simple FIFO queue and implements request merging. In this algorithm, there is no re-ordering of the request based on the sector number. Therefore it can be used if the ordering is dealt with at another layer, at the device level for example, or if it does not matter, for SSDs for instance.<br />
**[[w:Deadline scheduler|Deadline]]<br />
**[[w:CFQ|CFQ]]<br />
<br />
:{{Note|1=Single-queue schedulers [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f382fb0bcef4c37dc049e9f6963e3baf204d815c were removed from kernel since Linux 5.0].}}<br />
<br />
==== Changing I/O scheduler ====<br />
<br />
{{Note|<br />
* The best choice of scheduler depends on both the device and the exact nature of the workload. Also, the throughput in MB/s is not the only measure of performance: deadline or fairness deteriorate the overall throughput but may improve system responsiveness. [[Benchmarking]] may be useful to indicate each I/O scheduler performance.<br />
}}<br />
<br />
To list the available schedulers for a device and the active scheduler (in brackets):<br />
<br />
{{hc|$ cat /sys/block/'''''sda'''''/queue/scheduler|<br />
mq-deadline kyber [bfq] none<br />
}}<br />
<br />
To list the available schedulers for all devices:<br />
<br />
{{hc|$ grep "" /sys/block/'''*'''/queue/scheduler|<br />
/sys/block/pktcdvd0/queue/scheduler:none<br />
/sys/block/sda/queue/scheduler:mq-deadline kyber [bfq] none<br />
/sys/block/sr0/queue/scheduler:[mq-deadline] kyber bfq none<br />
}}<br />
<br />
To change the active I/O scheduler to ''bfq'' for device ''sda'', use:<br />
<br />
# echo '''''bfq''''' > /sys/block/'''''sda'''''/queue/scheduler<br />
<br />
The process to change I/O scheduler, depending on whether the disk is rotating or not can be automated and persist across reboots. For example the [[udev]] rule below sets the scheduler to ''none'' for [[NVMe]], ''mq-deadline'' for [[SSD]]/eMMC, and ''bfq'' for rotational drives:<br />
<br />
{{hc|/etc/udev/rules.d/60-ioschedulers.rules|2=<br />
# set scheduler for NVMe<br />
ACTION=="add{{!}}change", KERNEL=="nvme[0-9]*", ATTR{queue/scheduler}="none"<br />
# set scheduler for SSD and eMMC<br />
ACTION=="add{{!}}change", KERNEL=="sd[a-z]{{!}}mmcblk[0-9]*", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="mq-deadline"<br />
# set scheduler for rotating disks<br />
ACTION=="add{{!}}change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="bfq"<br />
}}<br />
<br />
Reboot or force [[udev#Loading new rules]].<br />
<br />
==== Tuning I/O scheduler ====<br />
<br />
Each of the kernel's I/O scheduler has its own tunables, such as the latency time, the expiry time or the FIFO parameters. They are helpful in adjusting the algorithm to a particular combination of device and workload. This is typically to achieve a higher throughput or a lower latency for a given utilization.<br />
The tunables and their description can be found within the [https://www.kernel.org/doc/html/latest/block/index.html kernel documentation].<br />
<br />
To list the available tunables for a device, in the example below ''sdb'' which is using ''deadline'', use:<br />
<br />
{{hc|$ ls /sys/block/'''''sdb'''''/queue/iosched|<br />
fifo_batch front_merges read_expire write_expire writes_starved}}<br />
<br />
To improve ''deadline'''s throughput at the cost of latency, one can increase {{ic|fifo_batch}} with the command:<br />
<br />
{{bc|# echo ''32'' > /sys/block/'''''sdb'''''/queue/iosched/'''fifo_batch'''}}<br />
<br />
=== Power management configuration ===<br />
<br />
When dealing with traditional rotational disks (HDD's) you may want to [[Hdparm#Power_management_configuration|lower or disable power saving features]] completely.<br />
<br />
=== Reduce disk reads/writes ===<br />
<br />
Avoiding unnecessary access to slow storage drives is good for performance and also increasing lifetime of the devices, although on modern hardware the difference in life expectancy is usually negligible.<br />
<br />
{{Note|A 32GB SSD with a mediocre 10x write amplification factor, a standard 10000 write/erase cycle, and '''10GB of data written per day''', would get an '''8 years life expectancy'''. It gets better with bigger SSDs and modern controllers with less write amplification. Also compare [http://techreport.com/review/25889/the-ssd-endurance-experiment-500tb-update] when considering whether any particular strategy to limit disk writes is actually needed.}}<br />
<br />
==== Show disk writes ====<br />
<br />
The {{Pkg|iotop}} package can sort by disk writes, and show how much and how frequently programs are writing to the disk. See {{man|8|iotop}} for details.<br />
<br />
==== Relocate files to tmpfs ====<br />
<br />
Relocate files, such as your browser profile, to a [[tmpfs]] file system, for improvements in application response as all the files are now stored in RAM:<br />
<br />
* Refer to [[Profile-sync-daemon]] for syncing browser profiles. Certain browsers might need special attention, see e.g. [[Firefox on RAM]].<br />
* Refer to [[Anything-sync-daemon]] for syncing any specified folder.<br />
* Refer to [[Makepkg#Improving compile times]] for improving compile times by building packages in tmpfs.<br />
<br />
==== File systems ====<br />
<br />
Refer to corresponding [[file system]] page in case there were performance improvements instructions, e.g. [[Ext4#Improving performance]] and [[XFS#Performance]].<br />
<br />
==== Swap space ====<br />
<br />
See [[Swap#Performance]].<br />
<br />
==== Writeback interval and buffer size ====<br />
<br />
See [[Sysctl#Virtual memory]] for details.<br />
<br />
=== Storage I/O scheduling with ionice ===<br />
<br />
Many tasks such as backups do not rely on a short storage I/O delay or high storage I/O bandwidth to fulfil their task, they can be classified as background tasks. On the other hand quick I/O is necessary for good UI responsiveness on the desktop. Therefore it is beneficial to reduce the amount of storage bandwidth available to background tasks, whilst other tasks are in need of storage I/O. This can be achieved by making use of the linux I/O scheduler CFQ, which allows setting different priorities for processes.<br />
<br />
The I/O priority of a background process can be reduced to the "Idle" level by starting it with<br />
<br />
# ionice -c 3 command<br />
<br />
See {{man|1|ionice}} and [https://www.cyberciti.biz/tips/linux-set-io-scheduling-class-priority.html] for more information.<br />
<br />
== CPU ==<br />
<br />
=== Overclocking ===<br />
<br />
[[Wikipedia:Overclocking|Overclocking]] improves the computational performance of the CPU by increasing its peak clock frequency. The ability to overclock depends on the combination of CPU model and motherboard model. It is most frequently done through the BIOS. Overclocking also has disadvantages and risks. It is neither recommended nor discouraged here.<br />
<br />
Many Intel chips will not correctly report their clock frequency to acpi_cpufreq and most other utilities. This will result in excessive messages in dmesg, which can be avoided by unloading and blacklisting the kernel module {{ic|acpi_cpufreq}}.<br />
To read their clock speed use ''i7z'' from the {{Pkg|i7z}} package. To check for correct operation of an overclocked CPU, it is recommended to do [[stress testing]].<br />
<br />
=== Frequency scaling ===<br />
<br />
See [[CPU frequency scaling]].<br />
<br />
=== Alternative CPU schedulers ===<br />
<br />
{{Expansion|MuQSS is not the only alternative scheduler.}}<br />
<br />
The default CPU scheduler in the mainline Linux kernel is [[Wikipedia:Completely_Fair_Scheduler|CFS]]. Alternative schedulers are available.<br />
<br />
One alternative scheduler focused on desktop interactivity and responsiveness is [http://ck.kolivas.org/patches/muqss/sched-MuQSS.txt MuQSS], developed by [http://users.tpg.com.au/ckolivas/kernel/ Con Kolivas]{{Dead link|2020|03|29|status=404}}. MuQSS is included in the {{Pkg|linux-zen}} kernel package. It is also available as a stand-alone patch or as part of the wider '''-ck''' patchset. See [[Linux-ck]] and [[Linux-pf]] for more information on the patchset.<br />
<br />
=== Real-time kernel ===<br />
<br />
Some applications such as running a TV tuner card at full HD resolution (1080p) may benefit from using a [[realtime kernel]].<br />
<br />
=== Adjusting priorities of processes ===<br />
<br />
See also {{man|1|nice}} and {{man|1|renice}}.<br />
<br />
==== Ananicy ====<br />
<br />
[https://github.com/Nefelim4ag/Ananicy Ananicy] is a daemon, available in the {{AUR|ananicy-git}} package, for auto adjusting the nice levels of executables. The nice level represents the priority of the executable when allocating CPU resources.<br />
<br />
==== cgroups ====<br />
<br />
See [[cgroups]].<br />
<br />
==== Cpulimit ====<br />
<br />
[https://github.com/opsengine/cpulimit Cpulimit] is a program to limit the CPU usage percentage of a specific process. After installing {{Pkg|cpulimit}}, you may limit the CPU usage of a processes' PID using a scale of 0 to 100 times the number of CPU cores that the computer has. For example, with eight CPU cores the precentage range will be 0 to 800. Usage:<br />
<br />
$ cpulimit -l 50 -p 5081<br />
<br />
=== irqbalance ===<br />
<br />
The purpose of {{Pkg|irqbalance}} is distribute hardware interrupts across processors on a multiprocessor system in order to increase performance. It can be [[systemd#Using units|controlled]] by the provided {{ic|irqbalance.service}}.<br />
<br />
=== Turn off CPU exploit mitigations ===<br />
<br />
{{Warning|1=Do not apply this setting without considering the vulnerabilities it opens up. See [https://phoronix.com/scan.php?page=news_item&px=Linux-Improve-CPU-Spec-Switches this] and [https://linuxreviews.org/HOWTO_make_Linux_run_blazing_fast_(again)_on_Intel_CPUs this] for more information.}}<br />
<br />
Turning off CPU exploit mitigations improves performance (sometimes up to 50%). Use below [[kernel parameter]] to disable them all:<br />
<br />
mitigations=off<br />
<br />
The explanations of all the switches it toggles are given at [https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html kernel.org]. You can use {{AUR|spectre-meltdown-checker}} for vulnerability check.<br />
<br />
== Graphics ==<br />
<br />
=== Xorg configuration ===<br />
<br />
Graphics performance may depend on the settings in {{man|5|xorg.conf}}; see the [[NVIDIA]], [[ATI]], [[AMDGPU]] and [[Intel]] articles. Improper settings may stop Xorg from working, so caution is advised.<br />
<br />
=== Mesa configuration ===<br />
<br />
The performance of the Mesa drivers can be configured via [https://dri.freedesktop.org/wiki/ConfigurationInfrastructure/ drirc]. GUI configuration tools are available:<br />
<br />
* {{App|adriconf (Advanced DRI Configurator)|GUI tool to configure Mesa drivers by setting options and writing them to the standard drirc file.|https://gitlab.freedesktop.org/mesa/adriconf/|{{Pkg|adriconf}}}}<br />
* {{App|DRIconf|Configuration applet for the Direct Rendering Infrastructure. It allows customizing performance and visual quality settings of OpenGL drivers on a per-driver, per-screen and/or per-application level.|https://dri.freedesktop.org/wiki/DriConf/|{{AUR|driconf}}}}<br />
<br />
=== Overclocking ===<br />
<br />
As with CPUs, overclocking can directly improve performance, but is generally recommended against. There are several packages in the [[AUR]], such as {{AUR|amdoverdrivectrl}} (old AMD/ATI cards), {{AUR|rocm-smi}} (recent AMD cards), {{AUR|nvclock}} (old NVIDIA - up to Geforce 9), and {{Pkg|nvidia-utils}} for recent NVIDIA cards.<br />
<br />
See [[AMDGPU#Overclocking]] or [[NVIDIA/Tips and tricks#Enabling overclocking]].<br />
<br />
== RAM, swap and OOM handling ==<br />
<br />
=== Clock frequency and timings ===<br />
<br />
RAM can run at different clock frequencies and timings, which can be configured in the BIOS. Memory performance depends on both values. Selecting the highest preset presented by the BIOS usually improves the performance over the default setting. Note that increasing the frequency to values not supported by both motherboard and RAM vendor is overclocking, and similar risks and disadvantages apply, see [[#Overclocking]].<br />
<br />
=== Root on RAM overlay ===<br />
<br />
If running off a slow writing medium (USB, spinning HDDs) and storage requirements are low, the root may be run on a RAM overlay ontop of read only root (on disk). This can vastly improve performance at the cost of a limited writable space to root. See {{AUR|liveroot}}.<br />
<br />
=== Zram or zswap ===<br />
<br />
The [https://www.kernel.org/doc/html/latest/admin-guide/blockdev/zram.html zram] kernel module (previously called '''compcache''') provides a compressed block device in RAM. If you use it as swap device, the RAM can hold much more information but uses more CPU. Still, it is much quicker than swapping to a hard drive. If a system often falls back to swap, this could improve responsiveness. Using zram is also a good way to reduce disk read/write cycles due to swap on SSDs.<br />
<br />
Similar benefits (at similar costs) can be achieved using [[zswap]] rather than zram. The two are generally similar in intent although not operation: zswap operates as a compressed RAM cache and neither requires (nor permits) extensive userspace configuration.<br />
<br />
Example: To set up one lz4 compressed zram device with 32GiB capacity and a higher-than-normal priority (only for the current session):<br />
<br />
# modprobe zram<br />
# echo lz4 > /sys/block/zram0/comp_algorithm<br />
# echo 32G > /sys/block/zram0/disksize<br />
# mkswap --label zram0 /dev/zram0<br />
# swapon --priority 100 /dev/zram0<br />
<br />
To disable it again, either reboot or run<br />
<br />
# swapoff /dev/zram0<br />
# rmmod zram<br />
<br />
A detailed explanation of all steps, options and potential problems is provided in the [https://www.kernel.org/doc/html/latest/admin-guide/blockdev/zram.html official documentation of the zram module].<br />
<br />
The {{Pkg|systemd-swap}} package provides a {{ic|systemd-swap.service}} unit to automatically initialize zram devices. Configuration is possible in {{ic|/etc/systemd/swap.conf}}.<br />
<br />
The package {{AUR|zramswap}} provides an automated script for setting up such swap devices with optimal settings for your system (such as RAM size and CPU core number). The script creates one zram device per CPU core with a total space equivalent to the RAM available, so you will have a compressed swap with higher priority than regular swap, which will utilize multiple CPU cores for compressing data. To do this automatically on every boot, [[enable]] {{ic|zramswap.service}}.<br />
<br />
==== Swap on zRAM using a udev rule ====<br />
<br />
The example below describes how to set up swap on zRAM automatically at boot with a single udev rule. No extra package should be needed to make this work.<br />
<br />
First, enable the module:<br />
<br />
{{hc|/etc/modules-load.d/zram.conf|<nowiki><br />
zram<br />
</nowiki>}}<br />
<br />
Configure the number of /dev/zram nodes you need.<br />
<br />
{{hc|/etc/modprobe.d/zram.conf|<nowiki><br />
options zram num_devices=2<br />
</nowiki>}}<br />
<br />
Create the udev rule as shown in the example.<br />
<br />
{{hc|/etc/udev/rules.d/99-zram.rules|<nowiki><br />
KERNEL=="zram0", ATTR{disksize}="512M" RUN="/usr/bin/mkswap /dev/zram0", TAG+="systemd"<br />
KERNEL=="zram1", ATTR{disksize}="512M" RUN="/usr/bin/mkswap /dev/zram1", TAG+="systemd"<br />
</nowiki>}}<br />
<br />
Add /dev/zram to your fstab.<br />
<br />
{{hc|/etc/fstab|<nowiki><br />
/dev/zram0 none swap defaults 0 0<br />
/dev/zram1 none swap defaults 0 0<br />
</nowiki>}}<br />
<br />
=== Using the graphic card's RAM ===<br />
<br />
In the unlikely case that you have very little RAM and a surplus of video RAM, you can use the latter as swap. See [[Swap on video RAM]].<br />
<br />
=== Improving system responsiveness under low-memory conditions ===<br />
<br />
On traditional GNU/Linux system, especially for graphical workstations, when allocated memory is overcommitted, the overall system's responsiveness may degrade to a nearly unusable state before either triggering the in-kernel OOM-killer or a sufficient amount of memory got free (which is unlikely to happen quickly when the system is unresponsive, as you can hardly close any memory-hungry applications which may continue to allocate more memory). The behaviour also depends on specific setups and conditions, returning to a normal responsive state may take from a few seconds to more than half an hour, which could be a pain to wait in serious scenario like during a conference presentation.<br />
<br />
While the behaviour of the kernel as well as the userspace things under low-memory conditions may improve in the future as discussed on kernel[https://lore.kernel.org/lkml/d9802b6a-949b-b327-c4a6-3dbca485ec20@gmx.com/T/#edbf14093bb9e8b8e0b424c945175887a32e70d7a] and fedora[https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/XUZLHJ5O32OX24LG44R7UZ2TMN6NY47N/] mailing list, users can use more feasible and effective options than hard-resetting the system or tuning the {{ic|vm.overcommit_*}} [[sysctl]] parameters:<br />
<br />
* Manually trigger the kernel OOM-killer with [https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html Magic SysRq key], namely {{ic|Alt+SysRq+f}}.<br />
* Use a userspace OOM daemon to tackle these automatically (or interactively).<br />
<br />
{{Warning|Triggering OOM killer to kill running applications may lose your unsaved works. It is up to you that either you are patient enough to wait in hope that applications will finally free the memory normally, or you want to bring back unresponsive system as soon as possible.}}<br />
<br />
Sometimes a user may prefer OOM daemon to SysRq because with kernel OOM-killer you cannot prioritize the process to (or not) terminate. To list some OOM daemons:<br />
<br />
* {{App|earlyoom|Simple userspace OOM-killer implementation written in C. Fedora is going to have this in their default Workstation installation [https://pagure.io/fedora-workstation/issue/119].|https://github.com/rfjakob/earlyoom|{{Pkg|earlyoom}}}}<br />
* {{App|oomd|OOM-killer implementation based on [https://lwn.net/Articles/759781/ PSI], requires Linux kernel version 4.20+. Configuration is in JSON and is quite complex. Confirmed to work in Facebook's production environment.|https://github.com/facebookincubator/oomd|{{aur|oomd}}}}<br />
* {{App|nohang|Sophisticated OOM handler written in Python, with optional PSI support, more configurable than earlyoom.|https://github.com/hakavlad/nohang|{{aur|nohang-git}}}}<br />
* {{App|low-memory-monitor|GNOME developer's effort that aims to provides better communication to userspace applications to indicate the low memory state, besides that it could be configured to trigger the kernel OOM-killer. Based on PSI, requires Linux 5.2+.|https://gitlab.freedesktop.org/hadess/low-memory-monitor/|{{aur|low-memory-monitor-git}}}}<br />
<br />
== Network ==<br />
<br />
* Kernel networking: see [[Sysctl#Improving performance]]<br />
* NIC: see [[Network configuration#Set device MTU and queue length]]<br />
* DNS: consider using a caching DNS resolver, see [[Domain name resolution#DNS servers]]<br />
* Samba: see [[Samba#Improve throughput]]<br />
<br />
== Watchdogs ==<br />
<br />
According to [[Wikipedia:Watchdog timer]]:<br />
<br />
:A watchdog timer [...] is an electronic timer that is used to detect and recover from computer malfunctions. During normal operation, the computer regularly resets the watchdog timer [...]. If, [...], the computer fails to reset the watchdog, the timer will elapse and generate a timeout signal [...] used to initiate corrective [...] actions [...] typically include placing the computer system in a safe state and restoring normal system operation.<br />
<br />
Many users need this feature due to their system's mission-critical role (i.e. servers), or because of the lack of power reset (i.e. embedded devices). Thus, this feature is required for a good operation in some situations. On the other hand, normal users (i.e. desktop and laptop) do not need this feature and can disable it.<br />
<br />
To disable watchdog timers (both software and hardware), append {{ic|nowatchdog}} to your boot parameters.<br />
<br />
To check the new configuration do:<br />
<br />
# cat /proc/sys/kernel/watchdog<br />
<br />
or use:<br />
<br />
# wdctl<br />
<br />
After you disabled watchdogs, you can ''optionally'' avoid the loading of the module responsible of the hardware watchdog, too. Do it by [[blacklisting]] the related module, e.g. {{ic|iTCO_wdt}}.<br />
<br />
{{Note|1=Some users [https://bbs.archlinux.org/viewtopic.php?id=221239 reported] the {{ic|nowatchdog}} parameter does not work as expected but they have successfully disabled the watchdog (at least the hardware one) by blacklisting the above-mentioned module.}}<br />
<br />
Either action will speed up your boot and shutdown, because one less module is loaded. Additionally disabling watchdog timers increases performance and [[Power management#Disabling NMI watchdog|lowers power consumption]].<br />
<br />
See [https://bbs.archlinux.org/viewtopic.php?id=163768], [https://bbs.archlinux.org/viewtopic.php?id=165834], [http://0pointer.de/blog/projects/watchdog.html], and [https://www.kernel.org/doc/html/latest/watchdog/watchdog-parameters.html] for more information.<br />
<br />
== See also ==<br />
<br />
* [https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Performance_Tuning_Guide/index.html Red Hat Performance Tuning Guide]<br />
* [https://www.thomas-krenn.com/en/wiki/Linux_Performance_Measurements_using_vmstat Linux Performance Measurements using vmstat]</div>Hi-Angelhttps://wiki.archlinux.org/index.php?title=MacBookPro11,x&diff=606239MacBookPro11,x2020-04-15T11:03:20Z<p>Hi-Angel: indentation</p>
<hr />
<div>[[Category:Apple]]<br />
{{Related articles start}}<br />
{{Related|Installation guide}}<br />
{{Related|General recommendations}}<br />
{{Related|MacBookPro10,x}}<br />
{{Related|Mac}}<br />
{{Related articles end}}<br />
{{Style|This page flat-out ignores every possible [[Help:Style|style]] rule}}<br />
<br />
The MacBook Pro 11,x consists of models with Retina display shipped by Apple In Late 2013 and Mid 2014. Like its predecessors, it is based on Intel chipset, although some manual configuration might be required in specific cases in order to deal with Apple-related features.<br />
<br />
Like previous MacBook models, the MacBook Pro 11,x supports UEFI. This page will cover the current status of hardware support on Arch Linux, as well as post-installation recommendations.<br />
<br />
== Overview ==<br />
<br />
Specifically, the procedure for installing Arch Linux on a MacBook is:<br />
<br />
# [[#Firmware updates]]: It always helps to start from a clean, backed up, and up-to-date install of OS X.<br />
# [[#Partitioning]]: Resizing or deleting the OS X partition to create partitions for Arch Linux.<br />
# [[#Setup bootloader]]: Making sure that the new partition is bootable.<br />
# [[#Installation]]: Actually installing Arch Linux.<br />
# [[#Post installation]]: MacBook-specific configuration.<br />
<br />
== Firmware updates ==<br />
<br />
Before proceeding with the installation of Arch Linux, it is important to ensure that the latest firmware updates for you MacBook are installed. This procedure requires OS X.<br />
In OS X, open the App Store and check for updates. If your Mac finds and installs any updates, make sure to '''reboot''' your computer, and then check again for updates to make sure that you installed everything.<br />
<br />
{{Note|If you uninstalled OS X or want to reinstall it, [https://support.apple.com/en-us/HT204904 Apple] has great instructions.}}<br />
<br />
It is advisable to keep OS X installed, because MacBook firmware updates can only be installed using OS X. However, if you plan to remove OS X completely, make backups of these files, which you will need in Linux for adjusting the color profile:<br />
<br />
/Library/ColorSync/Profiles/Displays/*<br />
<br />
== Partitioning ==<br />
<br />
MacBooks are partitioned using the [[GPT]] scheme by default. For MacBooks running OS X versions up to and including 10.12, the partition layout will typically look like this:<br />
<br />
* '''EFI''': the ~200 MB [[EFI system partition]]<br />
* '''Macintosh HD''': the main partition containing your OS X installation, formatted using [[File systems|HFS+]]<br />
* '''Recovery HD''': a secondary HFS+ partition containing utilities for restoring backups, formatting and re-installing OS X, typically booted by holding {{ic|Cmd+r}} while your MacBook is starting up<br />
<br />
For 2013/2014 MacBooks running macOS 10.13 or later, the partition layout is simpler:<br />
<br />
* '''EFI''': the ~200 MB [[EFI system partition]]<br />
* '''Macintosh HD''': an [[File systems|APFS]] container partition containing volumes for Apple's EFI loaders, the macOS system/user files, the recovery image and for [[swap]] in macOS.<br />
<br />
As a general rule, partitioning is no different from any other hardware that Arch Linux can be installed on. If you plan on keeping OS X for the purpose of dual booting, you need to manually shrink the main OS X HFS+/APFS partition from within OS X's Disk Utility program. <br />
{{Note|The OS X '''Recovery''' partition is not visible inside Disk Utility. However, the partition will be automatically moved after the OS X partition if you resize it. On MacBooks using APFS, the Recovery image is stored in the main APFS partition, resizing the APFS partition will move all macOS data.}}<br />
{{Tip|You can see the true partition structure of your system from within OS X by opening a terminal and running {{ic|diskutil list}}. Alternatively, if you have already launched the Arch installation media, you can retrieve similar information by running {{ic|fdisk -l}}.}}<br />
{{Warning| If your OS X partition is encrypted with FileVault 2, you '''must''' disable the disk encryption before proceeding. After the OS X partition has been resized, FileVault 2 can be re-enabled.}}<br />
{{Note|If you plan to remove OS X, it is advisable to '''disable''' the MacBook startup sound before proceeding with partitioning. Just boot in OS X, mute your system sound and reboot again to the Arch Linux Installation media. Please keep in mind that the volume of the startup sound can only be modified reliably in OS X.}}<br />
<br />
== Installation ==<br />
<br />
Installation is similar to any other standard laptop. Please refer to the official [[Installation guide]] for more detailed instructions, as the following content mainly describes deviations from those instructions that are specific to this MacBook model.<br />
<br />
As this Mac model does not include a [[Optical disc drive|CD]] or [[Optical disc drive|DVD drive]], you may wish to copy the Arch installation media onto a [[USB flash installation media|USB flash drive]]. With the Arch installation media on a flash drive, you can boot it by holding down the {{ic|Alt}} (or {{ic|Option}}) key while your Mac starts up, and then selecting the applicable EFI Boot option when the Apple boot manager appears.<br />
<br />
As this model of notebook has a high DPI display, the console font displayed will be extremely small and depending on your preferences is likely to be uncomfortable to use. You may wish to change this for a more legible font, an example of which is;<br />
<br />
$ setfont sun12x22<br />
<br />
=== Internet ===<br />
<br />
Thunderbolt Ethernet adapters and USB-to-Ethernet adapters are usually picked up automatically. In case you use a Thunderbolt ethernet adapter, you may have to power on the machine with the adapter plugged in for it to be picked up by the system.<br />
<br />
Another easy option is to use USB tethering with an Android device. For more information, see [[Android tethering]].<br />
<br />
If you have neither, the only option is to use the onboard wireless adapter. Depending on your model, you may have the Broadcom BCM43602, which is supported by the open source [[Broadcom wireless#brcm80211|brcmfac]] module that is built-in to the Linux kernel and typically enabled by default. If this is the case, you should have wireless available from the installer with no further configuration necessary.<br />
<br />
Other BCM43XX chipsets may only be supported by a proprietary driver such as [[Broadcom wireless#b43|b43]] or [[Broadcom wireless#broadcom-wl|wl]]. The {{Pkg|broadcom-wl}} package is included in the Arch installer media, but may need to be manually enabled before the chipset will function correctly. The {{ic|b43}} driver is also built-in to the kernel and included in the installation media, but it requires external proprietary firmware from the {{AUR|b43-firmware}} package which will need to be downloaded from another machine connected to the internet.<br />
<br />
You can list the network interfaces available from the installer environment by running {{ic|ip link show}}. If you can see your wireless interface in the list, you should now be able to use {{ic|wifi-menu}} to select and connect to your wireless network.<br />
<br />
If the [[wikipedia:Loopback#Virtual loopback interface|Linux loopback device]] is the only listed interface, you may need to load an alternative Broadcom driver. To do this, begin by ensuring that all Broadcom drivers have been unloaded.<br />
<br />
$ rmmod ssb<br />
$ rmmod bcma<br />
$ rmmod b43<br />
$ rmmod wl<br />
<br />
Then try loading {{ic|brcmfmac}} again.<br />
<br />
$ modprobe bcma<br />
<br />
Wait a few seconds and then list your network interfaces again. If you still can't see your wireless interface, unload {{ic|brcmfmac}} again and try reloading {{ic|wl}}.<br />
<br />
$ rmmod bcma<br />
$ modprobe wl<br />
<br />
If the wireless interface is still not listed, you will need to compile the {{AUR|b43-firmware}} package on another computer with [[pacman]] installed, put the generated package file on a second USB storage device, install the package within the Arch live environment and then load the {{ic|b43}} module, much like above. See [[Broadcom wireless]] and [[makepkg]] for more information.<br />
<br />
{{Note|If you used the {{ic|wl}} or {{ic|b43}} drivers, they will need to be manually installed to your new Arch system, this can be done by synchronising the {{Pkg|broadcom-wl}}/{{Pkg|broadcom-wl-dkms}} or {{AUR|b43-firmware}} packages as necessary, either during setup or after booting into your new Arch system.}}<br />
<br />
== Setup bootloader ==<br />
<br />
MacBooks can be easily configured to use [[systemd-boot]] or [[GRUB]] directly from the Apple bootloader, without the need for third-party tools such as [[rEFInd]]. Systemd-boot is the recommended way for systems that support UEFI.<br />
<br />
* First, make sure you mounted the EFI System Partition at {{ic|/boot}} (that is within the chroot, so mount it as {{ic|/mnt/boot}} with {{ic|mount /dev/sdXY /mnt/boot}})<br />
* Proceed with [[Installation guide]] normally<br />
* Once inside the chrooted enviroment, type the following command to install ''systemd-boot'':<br />
{{bc|1=# bootctl --path=/boot install}}<br />
The above command will copy the ''systemd-boot'' binary to {{ic|/boot/EFI/Boot/BOOTX64.EFI}} and add ''systemd-boot'' itself as the default EFI application (default boot entry) loaded by the EFI Boot Manager. <br />
* Proceed to [[systemd-boot#Configuration]] in order to correctly set up the bootloader<br />
At the next reboot, the Apple Boot Manager, shown when holding down the option key when booting the MacBook, should display Arch Linux (it will be displayed as {{ic|EFI Boot}} as a possible boot option).<br />
{{Note|If you wish to use GRUB, have a look at [[Mac#Using the native Apple bootloader with GRUB]].}}<br />
{{Tip| After the installation, it is optionally possible to set a custom icon that will be displayed in the MacBook boot loader. In order to do that, you need to install the {{Pkg|wget}}, {{Pkg|librsvg}} and {{Pkg|libicns}} packages. After that, just follow the following commands:<br />
$ wget -O /tmp/archlinux.svg https://www.archlinux.org/logos/archlinux-icon-crystal-64.svg<br />
$ rsvg-convert -w 128 -h 128 -o /tmp/archlogo.png /tmp/archlinux.svg<br />
# png2icns /boot/.VolumeIcon.icns /tmp/archlogo.png<br />
$ rm /tmp/archlogo.png<br />
$ rm /tmp/archlinux.svg<br />
Obviously, you can replace the Arch logo with any other icon you like.<br />
}}<br />
{{Tip|If you installed Arch Linux alongside OS X, you will be able to change the default boot location from system Settings inside OS X. If Arch Linux does not show up as a possible boot option, you will have to mount the EFI System Partition inside OS X before selecting your boot option:<br />
{{bc|$ diskutil mount disk0s1}}<br />
Keep in mind, however, it is also possible to load OS X from [[systemd-boot]]. <br />
}}<br />
<br />
== Post installation ==<br />
<br />
See [[General recommendations]] for system management directions and post-installation tutorials.<br />
<br />
Additionally, you might want to have a look at the [[Power management]] page for useful tips in power management and battery-saving software.<br />
<br />
=== Kernel parameters ===<br />
<br />
{{Warning|1=Since Kernel version 4.17.2-1 adding {{ic|acpi_osi}} parameter with an empty value causes battery to be undetectable. See this [https://bbs.archlinux.org/viewtopic.php?id=238194 forum thread] for more information.<br />
<br />
It's required to specify {{ic|1=acpi_osi=Darwin}} as a kernel boot parameter in order to let suspension/hibernation work properly.}}<br />
<br />
Due to [https://bugzilla.kernel.org/show_bug.cgi?id=177151 this bug], it might be required to add {{ic|1=acpi_osi=}} as a kernel boot parameter in order to improve battery life.<br />
<br />
Due to [https://bugzilla.kernel.org/show_bug.cgi?id=117481 this bug], it may be necessary to disable GPE06 by adding {{ic|1=acpi_mask_gpe=0x06}} as a kernel boot parameter. To verify that this is required, check {{ic|1=cat /sys/firmware/acpi/interrupts/gpe06}}. There should be a rapidly increasing number of interrupts registered, and one of your cores should be pegged at 100%.<br />
<br />
=== Fan control ===<br />
<br />
Install {{AUR|mbpfan-git}} or {{AUR|macfanctld}} and [[enable]] the mbpfan.service in order to prevent laptop overheating.<br />
<br />
=== Console ===<br />
<br />
Largest console font can be achieved by adding {{ic|1=FONT=sun12x22}} to {{ic|/etc/vconsole.conf}}:<br />
<br />
{{hc|1=# nano /etc/vconsole.conf|2=<br />
...<br />
FONT=sun12x22}}<br />
<br />
=== Graphics ===<br />
<br />
MacBook Pro with integrated Intel graphics and no discrete GPU are supported out of the box. See [[Intel graphics]] for additional details and configuration options.<br />
<br />
Versions which include a discrete Nvidia GPU should need additional configuration:<br />
* MacBook Pro 11,3:<br />
** nvidia drivers work, see [[NVIDIA]] or [[Nouveau]]. In case you use the proprietary driver, see the following link [http://cberner.com/2013/03/01/installing-ubuntu-13-04-on-macbook-pro-retina/] for additional details.<br />
**It is possible to configure the integrated intel GPU, provided you are using [[GRUB]] as your bootloader of choice. See below for details<br />
* MacBook Pro 11,5<br />
** The {{Pkg|xf86-video-nouveau}} package seems to be stable. Switching to VTs and back works fine from MATE and GNOME. SOmetimes Chromium causes a "kernele rejected pixbuf" error which freezes the desktop.<br />
** The {{Pkg|nvidia-dkms}} driver has been crashing a lot.<br />
** The {{Pkg|nvidia}} driver seems to be super stable, but GNOME desktop won't like to start, showing you a "Oh no! Something has gone wrong" message. Cinnamon Desktop is buttery smooth with the nvidia driver, and if you want your GNOME desktop, you can run `gnome-shell --relace &` while in cinnamon desktop to switch to Gnome Shell as a workaround.<br />
<br />
Note that the video output ports (HDMI and DisplayPort) are hardwired to the Nvidia GPU, so they will not work if you use the Intel GPU and power off the Nvidia GPU. Switching GPUs requires a reboot, so if you primarily keep the laptop docked at a desk, configuring switchable graphics may not be worth the hassle of setting it up and then rebooting every time you need to switch. However, the Nvidia GPU does use significantly more power than the Intel one, so you will take a significant hit to battery life.<br />
<br />
==== Getting the integrated intel card to work on 11,3 ====<br />
<br />
By default the integrated card is powered off. To fix this we need a grub function called "apple_set_os". This function has not officially been merged yet, so we need to build grub ourselves. Download the {{AUR|grub-git}} package from the AUR. Using something like:<br />
<br />
$ packer -G grub-git<br />
$ cd grub-git<br />
<br />
Get the patch from [http://lists.gnu.org/archive/html/grub-devel/2013-12/msg00442.html].<br />
<br />
Put the patch contents into a file labeled something like "apple.patch"<br />
<br />
Add this patch to your PKGBUILD and run:<br />
<br />
$ makepkg -si<br />
<br />
Reboot into OS X and download gfxCardStatus v2.2.1 (newer versions do not work properly) run the app and specify the integrated card.<br />
<br />
Reboot and at the grub prompt type 'c' to get into console, followed by "apple_set_os" at the prompt.<br />
<br />
You should now be able to install {{Pkg|xf86-video-intel}} and get your card running.<br />
<br />
Note that the HDMI port and MiniDP are soldered to the nvidia card meaning that to run external displays you need to use the dedicated card.<br />
<br />
==== Alternative method to disable NVIDIA card ====<br />
<br />
While the above method for switching graphics works, there is a more effective method that does not require the use of gfxCardStatus or a patched GRUB installation (but it can be used if desired).<br />
<br />
First, the Intel GPU will not function without a patch called apple_set_os. You can either use a patched GRUB (as seen above) or use the apple_set_os.efi patch via rEFInd or chainload it via GRUB, the EFI patch can be download here, https://github.com/0xbb/apple_set_os.efi, this tricks the machine into thinking that it is booting a Mac OS X installation, making the hardware behave as such, allowing the Intel GPU to be used. rEFInd should automatically detect the patch as described on the application page. This will need to be loaded before each boot of Arch or else the Intel GPU will not function, to load it automatically it can be chainloaded via GRUB. Also, download and install the Intel drivers as described above.<br />
<br />
Then you will need to download an application called gpu-switch for switching the GPU on dual MacBook Pros, it is fairly easy to use as well. It can be downloaded from here, https://github.com/0xbb/gpu-switch.<br />
<br />
Secondly, once you have downloaded gpu-switch, extract the application to your home directory and open up a terminal emulator and cd to that directory. To switch to the Intel graphics, run <code>gpu-switch -i</code> as sudo, and the card will be active on reboot. Conversely, to enable the dedicated card instead, run <code>gpu-switch -d</code> as sudo. You must have booted with the aforementioned patch for this to work.<br />
<br />
Next, gpu-switch will not completely power down the dedicated card. To do that, you will have to create a custom grub menuentry and compile a program that will power off the dedicated card.<br />
<br />
To do that, please refer to the following article, [[MacBookPro10,x#Graphics_2]].<br />
<br />
You should now have working integrated graphics and the dedicated GPU should now power down. If you get a blank screen after doing this, wait and see what happens, if it stays blank for a prolonged period of time, try resetting the SMC, and then booting back into Arch.<br />
<br />
I noticed that afterwards VGA switcheroo disabled the nouveau driver, if this workaround still does not work, try installing a cronjob package, and adding the following:<br />
<br />
<code>@reboot echo OFF > /sys/kernel/debug/vgaswitcheroo/switch</code><br />
<code>@reboot echo IGD > /sys/kernel/debug/vgaswitcheroo/switch</code><br />
<br />
I'm not sure if the vgaswitcheroo commands actually do anything, I need somebody to test this workaround and let me know how it works for them.<br />
<br />
To see if you dedicated GPU is actually disabled, run:<br />
<br />
# cat /sys/kernel/debug/vgaswitcheroo/switch<br />
<br />
{{Note|gpu-switch has been tested only on a select few models, those being MacBookPro9,1, MacBookPro10,1, and MacBookPro11,3. Use at your own risk.}}<br />
<br />
=== Microcode ===<br />
<br />
You may need to install {{Pkg|intel-ucode}}, especially if you have Nvidia drivers. Read the wiki page to learn more about [[Microcode]].<br />
<br />
=== HiDPI ===<br />
<br />
See [[HiDPI]] for information on how to tweak the system for a Retina screen.<br />
<br />
=== Sound ===<br />
<br />
* Headphones work<br />
* Speakers work (tested with kernel 4.8)<br />
<br />
If you do not want to hear the annoying sound at system start-up, one way to get rid of it is to turn sound off while under Mac OS.<br />
<br />
Volume keys can be made to work with {{ic|xfce4-volumed}} (if you are using Xfce).<br />
<br />
Also, if you are using PulseAudio, sometimes it thinks HDMI is the default sound card; to solve this problem, install {{pkg|pavucontrol}} and set Analog Stereo as the fallback device.<br />
<br />
=== Touchpad ===<br />
<br />
One method is to install {{pkg|xf86-input-synaptics}} and configure to your liking in {{ic|/etc/X11/xorg.conf.d/50-synaptics.conf}}:<br />
<br />
Section "InputClass"<br />
MatchIsTouchpad "on"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
# 1 = left, 2 = right, 3 = middle<br />
Option "TapButton1" "1" <br />
Option "TapButton2" "3"<br />
Option "TapButton3" "2"<br />
# Palm detection<br />
Option "PalmDetect" "1"<br />
# Horizontal scrolling<br />
Option "HorizTwoFingerScroll" "1"<br />
# Natural Scrolling (and speed)<br />
Option "VertScrollDelta" "-100"<br />
Option "HorizScrollDelta" "-100"<br />
EndSection<br />
<br />
==== Ctrl-Click as Right-Click ====<br />
<br />
Using this SuperUser receipt [http://superuser.com/questions/217615/how-to-right-click-using-the-keyboard-from-ubuntu-on-a-mac] I got Ctrl-click working as right-click. I had to increase the sleep time to 0.1 though.<br />
<br />
==== input-mtrack ====<br />
<br />
Another method is to use {{AUR|xf86-input-mtrack-git}}. If you like to have a thumb resting on the touchpad, this driver is the right choice, because it has an option for IgnoreThumb.<br />
<br />
With this config the touchpad behavior becomes more osx-like.<br />
<br />
/etc/X11/xorg.conf.d/00-touchpad.conf<br />
<br />
Section "InputClass"<br />
MatchIsTouchpad "on"<br />
Identifier "Touchpads"<br />
Driver "mtrack"<br />
Option "Sensitivity" "0.64"<br />
Option "FingerHigh" "5"<br />
Option "FingerLow" "1"<br />
Option "IgnoreThumb" "true"<br />
Option "IgnorePalm" "true"<br />
Option "DisableOnPalm" "true"<br />
Option "TapButton1" "1"<br />
Option "TapButton2" "3"<br />
Option "TapButton3" "2"<br />
Option "TapButton4" "0"<br />
Option "ClickFinger1" "1"<br />
Option "ClickFinger2" "2"<br />
Option "ClickFinger3" "3"<br />
Option "ButtonMoveEmulate" "false"<br />
Option "ButtonIntegrated" "true"<br />
Option "ClickTime" "25"<br />
Option "BottomEdge" "30"<br />
Option "SwipeLeftButton" "8"<br />
Option "SwipeRightButton" "9"<br />
Option "SwipeUpButton" "0"<br />
Option "SwipeDownButton" "0"<br />
Option "ScrollDistance" "75"<br />
Option "VertScrollDelta" "-111"<br />
Option "HorizScrollDelta" "-111"<br />
EndSection<br />
<br />
=== Swap Opt and Command Key ===<br />
<br />
Swapping opt and cmd is supported by the hid_apple module:<br />
<br />
$ echo 1 | sudo tee /sys/module/hid_apple/parameters/swap_opt_cmd<br />
<br />
To make the change permanent add the option to /etc/modprobe.d/hid_apple.conf and rebuild initramfs.<br />
<br />
$ echo options hid_apple swap_opt_cmd=1 | sudo tee -a /etc/modprobe.d/hid_apple.conf<br />
<br />
=== Keyboard backlight ===<br />
<br />
* Works, see [[Mac#Keyboard Backlight]]<br />
* On KDE controlling the backlight with the increase or decrease brightness keys work fine, but they need upower to start before the desktop. To do this create the file {{ic|/etc/systemd/system/kdm.service.d/kbd_backlight.conf}} with this content (you might need to create the directory as well)<br />
[Unit]<br />
Requires=upower.service<br />
After=upower.service<br />
<br />
=== Screen backlight ===<br />
<br />
* Intel, works on Linux 3.13<br />
* Framebuffer, works for MacBook Pro 11,1 and 11,3 via {{ic|/sys/class/backlight/gmux_backlight/brightness}}.<br />
* Brightness in {{ic|/sys/class/backlight/gmux_backlight/brightness}} can be modified comfortably via the {{AUR|gmux_backlight}} utility without root privileges. Requires the {{ic|setpci}} setting below.<br />
* Nvidia, does not work using default settings. Try executing as root {{ic|1=setpci -v -H1 -s 00:01.00 BRIDGE_CONTROL=0}}. It may be worthwhile to create a systemd unit to execute this on boot.<br />
* AMD models may require a patched kernel for the backlight to be adjusted. The {{AUR|linux-macbook}} kernel fixes this.<br />
{{note|If the screen does not show the prompt or the login manager (i.e. a black screen), append {{ic|1=i915.invert_brightness=1}} to the kernel. }}<br />
<br />
=== Suspend ===<br />
<br />
* Works from Linux 3.13<br />
It may be necessary to disable USB's wakeup ability by by echoing 'XHC1' to '/proc/acpi/wakeup' in order to prevent immediate wakeup on suspend. This also holds for MacBook Air 2013. To make this permanent create {{ic|/etc/systemd/system/fix-spurious-wakeups.service}} file with the following content.<br />
<br />
[Service]<br />
Type=oneshot<br />
ExecStart=sh -c "echo XHC1 > /proc/acpi/wakeup"<br />
RemainAfterExit=true<br />
[Install]<br />
WantedBy=multi-user.target<br />
<br />
And then execute {{ic|sudo systemctl daemon-reload && sudo systemctl enable fix-spurious-wakeups}}<br />
<br />
* No backlight after suspend with Linux 3.12<br />
Use hibernate instead<br />
<br />
=== Powersave ===<br />
<br />
Disabling the internal cardreader and bluetooth controller may save battery life. When not using them, create the following [[udev]] rules:<br />
<br />
{{hc|1=/etc/udev/rules.d/99-apple_cardreader.rules|2=<br />
SUBSYSTEMS=="usb", ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="8406", RUN+="/usr/local/sbin/remove_ignore_usb-device.sh 05ac 8406"<br />
}}<br />
<br />
{{hc|1=/etc/udev/rules.d/99-apple_broadcom_bcm2046_bluetooth.rules|2=<br />
SUBSYSTEMS=="usb", ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="8289", RUN+="/usr/local/sbin/remove_ignore_usb-device.sh 05ac 8289"<br />
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0a5c", ATTRS{idProduct}=="4500", RUN+="/usr/local/sbin/remove_ignore_usb-device.sh 0a5c 4500"<br />
}}<br />
<br />
As udev's {{ic|1=OPTIONS=="ignore_device"}} may not work reliably, the above rules use [https://gist.github.com/anonymous/9c9d45c4818e3086ceca a script] to manually remove the usb device from {{ic|/sys/bus/usb/devices/}}.<br />
<br />
If battery life is not satisfactory, it may help to use power saving utilities, such as {{Pkg|tlp}}, and/or {{Pkg|powertop}} from the official repositories. To better optimize battery life, TLP also has a configuration file located at {{ic|/etc/default/tlp}} that you can edit to suit your machine. For more information, visit the wiki pages for these tools, [[TLP]] and [[Powertop]], respectively.<br />
<br />
=== SD Card Reader ===<br />
<br />
* Disappears sporadically after suspend as of Linux 3.18. Workaround is to create {{ic|/etc/modprobe.d/xhci-reset-on-suspend.conf}} with:<br />
# Reset XHCI USB devices on suspend/resume, fixes SD Card reader vanishing after suspend <br />
options xhci_hcd quirks=0x80<br />
<br />
Note: As of Linux 3.18.6-1 (and possibly earlier versions post-3.18), this fix '''may''' not be needed and might cause issues ranging from failed suspend to the SD card not being recognized at all. Test with and without the fix to determine which works best for you.<br />
<br />
=== Repurpose the power key ===<br />
<br />
By default systemd handles the rMBPs power key as defined in /etc/systemd/logind.conf. By setting<br />
HandlePowerKey=ignore<br />
systemd ignores power key events.<br />
<br />
Now the power key can be repurposed as keycode 124. For example in i3 conf:<br />
bindcode 124 ...<br />
<br />
=== Web cam ===<br />
<br />
A reverse engineered driver is being developed here: https://github.com/patjak/bcwc_pcie/ . It is marked experimental, but basic functionality seems to be working. Install {{AUR|bcwc-pcie-dkms}}{{Broken package link|package not found}} or {{AUR|bcwc-pcie-git}}.<br />
<br />
== What does not work ==<br />
<br />
Updated 2016-07-21<br />
<br />
=== General ===<br />
<br />
=== Wi-Fi ===<br />
<br />
* {{Pkg|broadcom-wl}} or {{Pkg|broadcom-wl-dkms}} from the [[AUR]] works<br />
** Stability is an issue for some, look at [[Broadcom wireless]] for possible fixes (e.g. downgrading kernel works if your card is BCM4360)<br />
** If stability is still an issue after the above, a possible alternative is to connect on a 802.11g network. More recent standards can cause the BCM4360 to disconnect randomly.<br />
<br />
=== Backlight keys / Suspend support ===<br />
<br />
{{AUR|linux-macbook}} is an AUR package created specifically for MacBook laptops that includes patches for these issues, as well fixing powering off correctly and CPU frequency scaling with the intel_pstate driver.<br />
<br />
== Discussions ==<br />
<br />
* https://bbs.archlinux.org/viewtopic.php?id=171883<br />
<br />
== See also ==<br />
<br />
* [[MacBookPro10,x]]<br />
* [[Mac]]<br />
<br />
== Example ==<br />
<br />
* https://github.com/GoGoGadgetRepo/ArchInstallMBP</div>Hi-Angelhttps://wiki.archlinux.org/index.php?title=MacBookPro11,x&diff=606238MacBookPro11,x2020-04-15T11:01:44Z<p>Hi-Angel: Avoid a possible making disabled/enabled toggle if a user already tried `echo` in the session</p>
<hr />
<div>[[Category:Apple]]<br />
{{Related articles start}}<br />
{{Related|Installation guide}}<br />
{{Related|General recommendations}}<br />
{{Related|MacBookPro10,x}}<br />
{{Related|Mac}}<br />
{{Related articles end}}<br />
{{Style|This page flat-out ignores every possible [[Help:Style|style]] rule}}<br />
<br />
The MacBook Pro 11,x consists of models with Retina display shipped by Apple In Late 2013 and Mid 2014. Like its predecessors, it is based on Intel chipset, although some manual configuration might be required in specific cases in order to deal with Apple-related features.<br />
<br />
Like previous MacBook models, the MacBook Pro 11,x supports UEFI. This page will cover the current status of hardware support on Arch Linux, as well as post-installation recommendations.<br />
<br />
== Overview ==<br />
<br />
Specifically, the procedure for installing Arch Linux on a MacBook is:<br />
<br />
# [[#Firmware updates]]: It always helps to start from a clean, backed up, and up-to-date install of OS X.<br />
# [[#Partitioning]]: Resizing or deleting the OS X partition to create partitions for Arch Linux.<br />
# [[#Setup bootloader]]: Making sure that the new partition is bootable.<br />
# [[#Installation]]: Actually installing Arch Linux.<br />
# [[#Post installation]]: MacBook-specific configuration.<br />
<br />
== Firmware updates ==<br />
<br />
Before proceeding with the installation of Arch Linux, it is important to ensure that the latest firmware updates for you MacBook are installed. This procedure requires OS X.<br />
In OS X, open the App Store and check for updates. If your Mac finds and installs any updates, make sure to '''reboot''' your computer, and then check again for updates to make sure that you installed everything.<br />
<br />
{{Note|If you uninstalled OS X or want to reinstall it, [https://support.apple.com/en-us/HT204904 Apple] has great instructions.}}<br />
<br />
It is advisable to keep OS X installed, because MacBook firmware updates can only be installed using OS X. However, if you plan to remove OS X completely, make backups of these files, which you will need in Linux for adjusting the color profile:<br />
<br />
/Library/ColorSync/Profiles/Displays/*<br />
<br />
== Partitioning ==<br />
<br />
MacBooks are partitioned using the [[GPT]] scheme by default. For MacBooks running OS X versions up to and including 10.12, the partition layout will typically look like this:<br />
<br />
* '''EFI''': the ~200 MB [[EFI system partition]]<br />
* '''Macintosh HD''': the main partition containing your OS X installation, formatted using [[File systems|HFS+]]<br />
* '''Recovery HD''': a secondary HFS+ partition containing utilities for restoring backups, formatting and re-installing OS X, typically booted by holding {{ic|Cmd+r}} while your MacBook is starting up<br />
<br />
For 2013/2014 MacBooks running macOS 10.13 or later, the partition layout is simpler:<br />
<br />
* '''EFI''': the ~200 MB [[EFI system partition]]<br />
* '''Macintosh HD''': an [[File systems|APFS]] container partition containing volumes for Apple's EFI loaders, the macOS system/user files, the recovery image and for [[swap]] in macOS.<br />
<br />
As a general rule, partitioning is no different from any other hardware that Arch Linux can be installed on. If you plan on keeping OS X for the purpose of dual booting, you need to manually shrink the main OS X HFS+/APFS partition from within OS X's Disk Utility program. <br />
{{Note|The OS X '''Recovery''' partition is not visible inside Disk Utility. However, the partition will be automatically moved after the OS X partition if you resize it. On MacBooks using APFS, the Recovery image is stored in the main APFS partition, resizing the APFS partition will move all macOS data.}}<br />
{{Tip|You can see the true partition structure of your system from within OS X by opening a terminal and running {{ic|diskutil list}}. Alternatively, if you have already launched the Arch installation media, you can retrieve similar information by running {{ic|fdisk -l}}.}}<br />
{{Warning| If your OS X partition is encrypted with FileVault 2, you '''must''' disable the disk encryption before proceeding. After the OS X partition has been resized, FileVault 2 can be re-enabled.}}<br />
{{Note|If you plan to remove OS X, it is advisable to '''disable''' the MacBook startup sound before proceeding with partitioning. Just boot in OS X, mute your system sound and reboot again to the Arch Linux Installation media. Please keep in mind that the volume of the startup sound can only be modified reliably in OS X.}}<br />
<br />
== Installation ==<br />
<br />
Installation is similar to any other standard laptop. Please refer to the official [[Installation guide]] for more detailed instructions, as the following content mainly describes deviations from those instructions that are specific to this MacBook model.<br />
<br />
As this Mac model does not include a [[Optical disc drive|CD]] or [[Optical disc drive|DVD drive]], you may wish to copy the Arch installation media onto a [[USB flash installation media|USB flash drive]]. With the Arch installation media on a flash drive, you can boot it by holding down the {{ic|Alt}} (or {{ic|Option}}) key while your Mac starts up, and then selecting the applicable EFI Boot option when the Apple boot manager appears.<br />
<br />
As this model of notebook has a high DPI display, the console font displayed will be extremely small and depending on your preferences is likely to be uncomfortable to use. You may wish to change this for a more legible font, an example of which is;<br />
<br />
$ setfont sun12x22<br />
<br />
=== Internet ===<br />
<br />
Thunderbolt Ethernet adapters and USB-to-Ethernet adapters are usually picked up automatically. In case you use a Thunderbolt ethernet adapter, you may have to power on the machine with the adapter plugged in for it to be picked up by the system.<br />
<br />
Another easy option is to use USB tethering with an Android device. For more information, see [[Android tethering]].<br />
<br />
If you have neither, the only option is to use the onboard wireless adapter. Depending on your model, you may have the Broadcom BCM43602, which is supported by the open source [[Broadcom wireless#brcm80211|brcmfac]] module that is built-in to the Linux kernel and typically enabled by default. If this is the case, you should have wireless available from the installer with no further configuration necessary.<br />
<br />
Other BCM43XX chipsets may only be supported by a proprietary driver such as [[Broadcom wireless#b43|b43]] or [[Broadcom wireless#broadcom-wl|wl]]. The {{Pkg|broadcom-wl}} package is included in the Arch installer media, but may need to be manually enabled before the chipset will function correctly. The {{ic|b43}} driver is also built-in to the kernel and included in the installation media, but it requires external proprietary firmware from the {{AUR|b43-firmware}} package which will need to be downloaded from another machine connected to the internet.<br />
<br />
You can list the network interfaces available from the installer environment by running {{ic|ip link show}}. If you can see your wireless interface in the list, you should now be able to use {{ic|wifi-menu}} to select and connect to your wireless network.<br />
<br />
If the [[wikipedia:Loopback#Virtual loopback interface|Linux loopback device]] is the only listed interface, you may need to load an alternative Broadcom driver. To do this, begin by ensuring that all Broadcom drivers have been unloaded.<br />
<br />
$ rmmod ssb<br />
$ rmmod bcma<br />
$ rmmod b43<br />
$ rmmod wl<br />
<br />
Then try loading {{ic|brcmfmac}} again.<br />
<br />
$ modprobe bcma<br />
<br />
Wait a few seconds and then list your network interfaces again. If you still can't see your wireless interface, unload {{ic|brcmfmac}} again and try reloading {{ic|wl}}.<br />
<br />
$ rmmod bcma<br />
$ modprobe wl<br />
<br />
If the wireless interface is still not listed, you will need to compile the {{AUR|b43-firmware}} package on another computer with [[pacman]] installed, put the generated package file on a second USB storage device, install the package within the Arch live environment and then load the {{ic|b43}} module, much like above. See [[Broadcom wireless]] and [[makepkg]] for more information.<br />
<br />
{{Note|If you used the {{ic|wl}} or {{ic|b43}} drivers, they will need to be manually installed to your new Arch system, this can be done by synchronising the {{Pkg|broadcom-wl}}/{{Pkg|broadcom-wl-dkms}} or {{AUR|b43-firmware}} packages as necessary, either during setup or after booting into your new Arch system.}}<br />
<br />
== Setup bootloader ==<br />
<br />
MacBooks can be easily configured to use [[systemd-boot]] or [[GRUB]] directly from the Apple bootloader, without the need for third-party tools such as [[rEFInd]]. Systemd-boot is the recommended way for systems that support UEFI.<br />
<br />
* First, make sure you mounted the EFI System Partition at {{ic|/boot}} (that is within the chroot, so mount it as {{ic|/mnt/boot}} with {{ic|mount /dev/sdXY /mnt/boot}})<br />
* Proceed with [[Installation guide]] normally<br />
* Once inside the chrooted enviroment, type the following command to install ''systemd-boot'':<br />
{{bc|1=# bootctl --path=/boot install}}<br />
The above command will copy the ''systemd-boot'' binary to {{ic|/boot/EFI/Boot/BOOTX64.EFI}} and add ''systemd-boot'' itself as the default EFI application (default boot entry) loaded by the EFI Boot Manager. <br />
* Proceed to [[systemd-boot#Configuration]] in order to correctly set up the bootloader<br />
At the next reboot, the Apple Boot Manager, shown when holding down the option key when booting the MacBook, should display Arch Linux (it will be displayed as {{ic|EFI Boot}} as a possible boot option).<br />
{{Note|If you wish to use GRUB, have a look at [[Mac#Using the native Apple bootloader with GRUB]].}}<br />
{{Tip| After the installation, it is optionally possible to set a custom icon that will be displayed in the MacBook boot loader. In order to do that, you need to install the {{Pkg|wget}}, {{Pkg|librsvg}} and {{Pkg|libicns}} packages. After that, just follow the following commands:<br />
$ wget -O /tmp/archlinux.svg https://www.archlinux.org/logos/archlinux-icon-crystal-64.svg<br />
$ rsvg-convert -w 128 -h 128 -o /tmp/archlogo.png /tmp/archlinux.svg<br />
# png2icns /boot/.VolumeIcon.icns /tmp/archlogo.png<br />
$ rm /tmp/archlogo.png<br />
$ rm /tmp/archlinux.svg<br />
Obviously, you can replace the Arch logo with any other icon you like.<br />
}}<br />
{{Tip|If you installed Arch Linux alongside OS X, you will be able to change the default boot location from system Settings inside OS X. If Arch Linux does not show up as a possible boot option, you will have to mount the EFI System Partition inside OS X before selecting your boot option:<br />
{{bc|$ diskutil mount disk0s1}}<br />
Keep in mind, however, it is also possible to load OS X from [[systemd-boot]]. <br />
}}<br />
<br />
== Post installation ==<br />
<br />
See [[General recommendations]] for system management directions and post-installation tutorials.<br />
<br />
Additionally, you might want to have a look at the [[Power management]] page for useful tips in power management and battery-saving software.<br />
<br />
=== Kernel parameters ===<br />
<br />
{{Warning|1=Since Kernel version 4.17.2-1 adding {{ic|acpi_osi}} parameter with an empty value causes battery to be undetectable. See this [https://bbs.archlinux.org/viewtopic.php?id=238194 forum thread] for more information.<br />
<br />
It's required to specify {{ic|1=acpi_osi=Darwin}} as a kernel boot parameter in order to let suspension/hibernation work properly.}}<br />
<br />
Due to [https://bugzilla.kernel.org/show_bug.cgi?id=177151 this bug], it might be required to add {{ic|1=acpi_osi=}} as a kernel boot parameter in order to improve battery life.<br />
<br />
Due to [https://bugzilla.kernel.org/show_bug.cgi?id=117481 this bug], it may be necessary to disable GPE06 by adding {{ic|1=acpi_mask_gpe=0x06}} as a kernel boot parameter. To verify that this is required, check {{ic|1=cat /sys/firmware/acpi/interrupts/gpe06}}. There should be a rapidly increasing number of interrupts registered, and one of your cores should be pegged at 100%.<br />
<br />
=== Fan control ===<br />
<br />
Install {{AUR|mbpfan-git}} or {{AUR|macfanctld}} and [[enable]] the mbpfan.service in order to prevent laptop overheating.<br />
<br />
=== Console ===<br />
<br />
Largest console font can be achieved by adding {{ic|1=FONT=sun12x22}} to {{ic|/etc/vconsole.conf}}:<br />
<br />
{{hc|1=# nano /etc/vconsole.conf|2=<br />
...<br />
FONT=sun12x22}}<br />
<br />
=== Graphics ===<br />
<br />
MacBook Pro with integrated Intel graphics and no discrete GPU are supported out of the box. See [[Intel graphics]] for additional details and configuration options.<br />
<br />
Versions which include a discrete Nvidia GPU should need additional configuration:<br />
* MacBook Pro 11,3:<br />
** nvidia drivers work, see [[NVIDIA]] or [[Nouveau]]. In case you use the proprietary driver, see the following link [http://cberner.com/2013/03/01/installing-ubuntu-13-04-on-macbook-pro-retina/] for additional details.<br />
**It is possible to configure the integrated intel GPU, provided you are using [[GRUB]] as your bootloader of choice. See below for details<br />
* MacBook Pro 11,5<br />
** The {{Pkg|xf86-video-nouveau}} package seems to be stable. Switching to VTs and back works fine from MATE and GNOME. SOmetimes Chromium causes a "kernele rejected pixbuf" error which freezes the desktop.<br />
** The {{Pkg|nvidia-dkms}} driver has been crashing a lot.<br />
** The {{Pkg|nvidia}} driver seems to be super stable, but GNOME desktop won't like to start, showing you a "Oh no! Something has gone wrong" message. Cinnamon Desktop is buttery smooth with the nvidia driver, and if you want your GNOME desktop, you can run `gnome-shell --relace &` while in cinnamon desktop to switch to Gnome Shell as a workaround.<br />
<br />
Note that the video output ports (HDMI and DisplayPort) are hardwired to the Nvidia GPU, so they will not work if you use the Intel GPU and power off the Nvidia GPU. Switching GPUs requires a reboot, so if you primarily keep the laptop docked at a desk, configuring switchable graphics may not be worth the hassle of setting it up and then rebooting every time you need to switch. However, the Nvidia GPU does use significantly more power than the Intel one, so you will take a significant hit to battery life.<br />
<br />
==== Getting the integrated intel card to work on 11,3 ====<br />
<br />
By default the integrated card is powered off. To fix this we need a grub function called "apple_set_os". This function has not officially been merged yet, so we need to build grub ourselves. Download the {{AUR|grub-git}} package from the AUR. Using something like:<br />
<br />
$ packer -G grub-git<br />
$ cd grub-git<br />
<br />
Get the patch from [http://lists.gnu.org/archive/html/grub-devel/2013-12/msg00442.html].<br />
<br />
Put the patch contents into a file labeled something like "apple.patch"<br />
<br />
Add this patch to your PKGBUILD and run:<br />
<br />
$ makepkg -si<br />
<br />
Reboot into OS X and download gfxCardStatus v2.2.1 (newer versions do not work properly) run the app and specify the integrated card.<br />
<br />
Reboot and at the grub prompt type 'c' to get into console, followed by "apple_set_os" at the prompt.<br />
<br />
You should now be able to install {{Pkg|xf86-video-intel}} and get your card running.<br />
<br />
Note that the HDMI port and MiniDP are soldered to the nvidia card meaning that to run external displays you need to use the dedicated card.<br />
<br />
==== Alternative method to disable NVIDIA card ====<br />
<br />
While the above method for switching graphics works, there is a more effective method that does not require the use of gfxCardStatus or a patched GRUB installation (but it can be used if desired).<br />
<br />
First, the Intel GPU will not function without a patch called apple_set_os. You can either use a patched GRUB (as seen above) or use the apple_set_os.efi patch via rEFInd or chainload it via GRUB, the EFI patch can be download here, https://github.com/0xbb/apple_set_os.efi, this tricks the machine into thinking that it is booting a Mac OS X installation, making the hardware behave as such, allowing the Intel GPU to be used. rEFInd should automatically detect the patch as described on the application page. This will need to be loaded before each boot of Arch or else the Intel GPU will not function, to load it automatically it can be chainloaded via GRUB. Also, download and install the Intel drivers as described above.<br />
<br />
Then you will need to download an application called gpu-switch for switching the GPU on dual MacBook Pros, it is fairly easy to use as well. It can be downloaded from here, https://github.com/0xbb/gpu-switch.<br />
<br />
Secondly, once you have downloaded gpu-switch, extract the application to your home directory and open up a terminal emulator and cd to that directory. To switch to the Intel graphics, run <code>gpu-switch -i</code> as sudo, and the card will be active on reboot. Conversely, to enable the dedicated card instead, run <code>gpu-switch -d</code> as sudo. You must have booted with the aforementioned patch for this to work.<br />
<br />
Next, gpu-switch will not completely power down the dedicated card. To do that, you will have to create a custom grub menuentry and compile a program that will power off the dedicated card.<br />
<br />
To do that, please refer to the following article, [[MacBookPro10,x#Graphics_2]].<br />
<br />
You should now have working integrated graphics and the dedicated GPU should now power down. If you get a blank screen after doing this, wait and see what happens, if it stays blank for a prolonged period of time, try resetting the SMC, and then booting back into Arch.<br />
<br />
I noticed that afterwards VGA switcheroo disabled the nouveau driver, if this workaround still does not work, try installing a cronjob package, and adding the following:<br />
<br />
<code>@reboot echo OFF > /sys/kernel/debug/vgaswitcheroo/switch</code><br />
<code>@reboot echo IGD > /sys/kernel/debug/vgaswitcheroo/switch</code><br />
<br />
I'm not sure if the vgaswitcheroo commands actually do anything, I need somebody to test this workaround and let me know how it works for them.<br />
<br />
To see if you dedicated GPU is actually disabled, run:<br />
<br />
# cat /sys/kernel/debug/vgaswitcheroo/switch<br />
<br />
{{Note|gpu-switch has been tested only on a select few models, those being MacBookPro9,1, MacBookPro10,1, and MacBookPro11,3. Use at your own risk.}}<br />
<br />
=== Microcode ===<br />
<br />
You may need to install {{Pkg|intel-ucode}}, especially if you have Nvidia drivers. Read the wiki page to learn more about [[Microcode]].<br />
<br />
=== HiDPI ===<br />
<br />
See [[HiDPI]] for information on how to tweak the system for a Retina screen.<br />
<br />
=== Sound ===<br />
<br />
* Headphones work<br />
* Speakers work (tested with kernel 4.8)<br />
<br />
If you do not want to hear the annoying sound at system start-up, one way to get rid of it is to turn sound off while under Mac OS.<br />
<br />
Volume keys can be made to work with {{ic|xfce4-volumed}} (if you are using Xfce).<br />
<br />
Also, if you are using PulseAudio, sometimes it thinks HDMI is the default sound card; to solve this problem, install {{pkg|pavucontrol}} and set Analog Stereo as the fallback device.<br />
<br />
=== Touchpad ===<br />
<br />
One method is to install {{pkg|xf86-input-synaptics}} and configure to your liking in {{ic|/etc/X11/xorg.conf.d/50-synaptics.conf}}:<br />
<br />
Section "InputClass"<br />
MatchIsTouchpad "on"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
# 1 = left, 2 = right, 3 = middle<br />
Option "TapButton1" "1" <br />
Option "TapButton2" "3"<br />
Option "TapButton3" "2"<br />
# Palm detection<br />
Option "PalmDetect" "1"<br />
# Horizontal scrolling<br />
Option "HorizTwoFingerScroll" "1"<br />
# Natural Scrolling (and speed)<br />
Option "VertScrollDelta" "-100"<br />
Option "HorizScrollDelta" "-100"<br />
EndSection<br />
<br />
==== Ctrl-Click as Right-Click ====<br />
<br />
Using this SuperUser receipt [http://superuser.com/questions/217615/how-to-right-click-using-the-keyboard-from-ubuntu-on-a-mac] I got Ctrl-click working as right-click. I had to increase the sleep time to 0.1 though.<br />
<br />
==== input-mtrack ====<br />
<br />
Another method is to use {{AUR|xf86-input-mtrack-git}}. If you like to have a thumb resting on the touchpad, this driver is the right choice, because it has an option for IgnoreThumb.<br />
<br />
With this config the touchpad behavior becomes more osx-like.<br />
<br />
/etc/X11/xorg.conf.d/00-touchpad.conf<br />
<br />
Section "InputClass"<br />
MatchIsTouchpad "on"<br />
Identifier "Touchpads"<br />
Driver "mtrack"<br />
Option "Sensitivity" "0.64"<br />
Option "FingerHigh" "5"<br />
Option "FingerLow" "1"<br />
Option "IgnoreThumb" "true"<br />
Option "IgnorePalm" "true"<br />
Option "DisableOnPalm" "true"<br />
Option "TapButton1" "1"<br />
Option "TapButton2" "3"<br />
Option "TapButton3" "2"<br />
Option "TapButton4" "0"<br />
Option "ClickFinger1" "1"<br />
Option "ClickFinger2" "2"<br />
Option "ClickFinger3" "3"<br />
Option "ButtonMoveEmulate" "false"<br />
Option "ButtonIntegrated" "true"<br />
Option "ClickTime" "25"<br />
Option "BottomEdge" "30"<br />
Option "SwipeLeftButton" "8"<br />
Option "SwipeRightButton" "9"<br />
Option "SwipeUpButton" "0"<br />
Option "SwipeDownButton" "0"<br />
Option "ScrollDistance" "75"<br />
Option "VertScrollDelta" "-111"<br />
Option "HorizScrollDelta" "-111"<br />
EndSection<br />
<br />
=== Swap Opt and Command Key ===<br />
<br />
Swapping opt and cmd is supported by the hid_apple module:<br />
<br />
$ echo 1 | sudo tee /sys/module/hid_apple/parameters/swap_opt_cmd<br />
<br />
To make the change permanent add the option to /etc/modprobe.d/hid_apple.conf and rebuild initramfs.<br />
<br />
$ echo options hid_apple swap_opt_cmd=1 | sudo tee -a /etc/modprobe.d/hid_apple.conf<br />
<br />
=== Keyboard backlight ===<br />
<br />
* Works, see [[Mac#Keyboard Backlight]]<br />
* On KDE controlling the backlight with the increase or decrease brightness keys work fine, but they need upower to start before the desktop. To do this create the file {{ic|/etc/systemd/system/kdm.service.d/kbd_backlight.conf}} with this content (you might need to create the directory as well)<br />
[Unit]<br />
Requires=upower.service<br />
After=upower.service<br />
<br />
=== Screen backlight ===<br />
<br />
* Intel, works on Linux 3.13<br />
* Framebuffer, works for MacBook Pro 11,1 and 11,3 via {{ic|/sys/class/backlight/gmux_backlight/brightness}}.<br />
* Brightness in {{ic|/sys/class/backlight/gmux_backlight/brightness}} can be modified comfortably via the {{AUR|gmux_backlight}} utility without root privileges. Requires the {{ic|setpci}} setting below.<br />
* Nvidia, does not work using default settings. Try executing as root {{ic|1=setpci -v -H1 -s 00:01.00 BRIDGE_CONTROL=0}}. It may be worthwhile to create a systemd unit to execute this on boot.<br />
* AMD models may require a patched kernel for the backlight to be adjusted. The {{AUR|linux-macbook}} kernel fixes this.<br />
{{note|If the screen does not show the prompt or the login manager (i.e. a black screen), append {{ic|1=i915.invert_brightness=1}} to the kernel. }}<br />
<br />
=== Suspend ===<br />
<br />
* Works from Linux 3.13<br />
It may be necessary to disable USB's wakeup ability by by echoing 'XHC1' to '/proc/acpi/wakeup' in order to prevent immediate wakeup on suspend. This also holds for MacBook Air 2013. To make this permanent create {{ic|/etc/systemd/system/fix-spurious-wakeups.service}} file with the following content.<br />
<br />
[Service]<br />
Type=oneshot<br />
ExecStart=sh -c "echo XHC1 > /proc/acpi/wakeup"<br />
RemainAfterExit=true<br />
[Install]<br />
WantedBy=multi-user.target<br />
<br />
And then execute {{ic|sudo systemctl daemon-reload && sudo systemctl enable fix-spurious-wakeups}}<br />
<br />
* No backlight after suspend with Linux 3.12<br />
Use hibernate instead<br />
<br />
=== Powersave ===<br />
<br />
Disabling the internal cardreader and bluetooth controller may save battery life. When not using them, create the following [[udev]] rules:<br />
<br />
{{hc|1=/etc/udev/rules.d/99-apple_cardreader.rules|2=<br />
SUBSYSTEMS=="usb", ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="8406", RUN+="/usr/local/sbin/remove_ignore_usb-device.sh 05ac 8406"<br />
}}<br />
<br />
{{hc|1=/etc/udev/rules.d/99-apple_broadcom_bcm2046_bluetooth.rules|2=<br />
SUBSYSTEMS=="usb", ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="8289", RUN+="/usr/local/sbin/remove_ignore_usb-device.sh 05ac 8289"<br />
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0a5c", ATTRS{idProduct}=="4500", RUN+="/usr/local/sbin/remove_ignore_usb-device.sh 0a5c 4500"<br />
}}<br />
<br />
As udev's {{ic|1=OPTIONS=="ignore_device"}} may not work reliably, the above rules use [https://gist.github.com/anonymous/9c9d45c4818e3086ceca a script] to manually remove the usb device from {{ic|/sys/bus/usb/devices/}}.<br />
<br />
If battery life is not satisfactory, it may help to use power saving utilities, such as {{Pkg|tlp}}, and/or {{Pkg|powertop}} from the official repositories. To better optimize battery life, TLP also has a configuration file located at {{ic|/etc/default/tlp}} that you can edit to suit your machine. For more information, visit the wiki pages for these tools, [[TLP]] and [[Powertop]], respectively.<br />
<br />
=== SD Card Reader ===<br />
<br />
* Disappears sporadically after suspend as of Linux 3.18. Workaround is to create {{ic|/etc/modprobe.d/xhci-reset-on-suspend.conf}} with:<br />
# Reset XHCI USB devices on suspend/resume, fixes SD Card reader vanishing after suspend <br />
options xhci_hcd quirks=0x80<br />
<br />
Note: As of Linux 3.18.6-1 (and possibly earlier versions post-3.18), this fix '''may''' not be needed and might cause issues ranging from failed suspend to the SD card not being recognized at all. Test with and without the fix to determine which works best for you.<br />
<br />
=== Repurpose the power key ===<br />
<br />
By default systemd handles the rMBPs power key as defined in /etc/systemd/logind.conf. By setting<br />
HandlePowerKey=ignore<br />
systemd ignores power key events.<br />
<br />
Now the power key can be repurposed as keycode 124. For example in i3 conf:<br />
bindcode 124 ...<br />
<br />
=== Web cam ===<br />
<br />
A reverse engineered driver is being developed here: https://github.com/patjak/bcwc_pcie/ . It is marked experimental, but basic functionality seems to be working. Install {{AUR|bcwc-pcie-dkms}}{{Broken package link|package not found}} or {{AUR|bcwc-pcie-git}}.<br />
<br />
== What does not work ==<br />
<br />
Updated 2016-07-21<br />
<br />
=== General ===<br />
<br />
=== Wi-Fi ===<br />
<br />
* {{Pkg|broadcom-wl}} or {{Pkg|broadcom-wl-dkms}} from the [[AUR]] works<br />
** Stability is an issue for some, look at [[Broadcom wireless]] for possible fixes (e.g. downgrading kernel works if your card is BCM4360)<br />
** If stability is still an issue after the above, a possible alternative is to connect on a 802.11g network. More recent standards can cause the BCM4360 to disconnect randomly.<br />
<br />
=== Backlight keys / Suspend support ===<br />
<br />
{{AUR|linux-macbook}} is an AUR package created specifically for MacBook laptops that includes patches for these issues, as well fixing powering off correctly and CPU frequency scaling with the intel_pstate driver.<br />
<br />
== Discussions ==<br />
<br />
* https://bbs.archlinux.org/viewtopic.php?id=171883<br />
<br />
== See also ==<br />
<br />
* [[MacBookPro10,x]]<br />
* [[Mac]]<br />
<br />
== Example ==<br />
<br />
* https://github.com/GoGoGadgetRepo/ArchInstallMBP</div>Hi-Angelhttps://wiki.archlinux.org/index.php?title=MacBookPro11,x&diff=606236MacBookPro11,x2020-04-15T10:51:34Z<p>Hi-Angel: Fixing suspend permanently. Note: apparently wiki markup doesn't support multiline formatting of lists, so I had to flatten 2nd-level list. Did this to two lines for visual consistency.</p>
<hr />
<div>[[Category:Apple]]<br />
{{Related articles start}}<br />
{{Related|Installation guide}}<br />
{{Related|General recommendations}}<br />
{{Related|MacBookPro10,x}}<br />
{{Related|Mac}}<br />
{{Related articles end}}<br />
{{Style|This page flat-out ignores every possible [[Help:Style|style]] rule}}<br />
<br />
The MacBook Pro 11,x consists of models with Retina display shipped by Apple In Late 2013 and Mid 2014. Like its predecessors, it is based on Intel chipset, although some manual configuration might be required in specific cases in order to deal with Apple-related features.<br />
<br />
Like previous MacBook models, the MacBook Pro 11,x supports UEFI. This page will cover the current status of hardware support on Arch Linux, as well as post-installation recommendations.<br />
<br />
== Overview ==<br />
<br />
Specifically, the procedure for installing Arch Linux on a MacBook is:<br />
<br />
# [[#Firmware updates]]: It always helps to start from a clean, backed up, and up-to-date install of OS X.<br />
# [[#Partitioning]]: Resizing or deleting the OS X partition to create partitions for Arch Linux.<br />
# [[#Setup bootloader]]: Making sure that the new partition is bootable.<br />
# [[#Installation]]: Actually installing Arch Linux.<br />
# [[#Post installation]]: MacBook-specific configuration.<br />
<br />
== Firmware updates ==<br />
<br />
Before proceeding with the installation of Arch Linux, it is important to ensure that the latest firmware updates for you MacBook are installed. This procedure requires OS X.<br />
In OS X, open the App Store and check for updates. If your Mac finds and installs any updates, make sure to '''reboot''' your computer, and then check again for updates to make sure that you installed everything.<br />
<br />
{{Note|If you uninstalled OS X or want to reinstall it, [https://support.apple.com/en-us/HT204904 Apple] has great instructions.}}<br />
<br />
It is advisable to keep OS X installed, because MacBook firmware updates can only be installed using OS X. However, if you plan to remove OS X completely, make backups of these files, which you will need in Linux for adjusting the color profile:<br />
<br />
/Library/ColorSync/Profiles/Displays/*<br />
<br />
== Partitioning ==<br />
<br />
MacBooks are partitioned using the [[GPT]] scheme by default. For MacBooks running OS X versions up to and including 10.12, the partition layout will typically look like this:<br />
<br />
* '''EFI''': the ~200 MB [[EFI system partition]]<br />
* '''Macintosh HD''': the main partition containing your OS X installation, formatted using [[File systems|HFS+]]<br />
* '''Recovery HD''': a secondary HFS+ partition containing utilities for restoring backups, formatting and re-installing OS X, typically booted by holding {{ic|Cmd+r}} while your MacBook is starting up<br />
<br />
For 2013/2014 MacBooks running macOS 10.13 or later, the partition layout is simpler:<br />
<br />
* '''EFI''': the ~200 MB [[EFI system partition]]<br />
* '''Macintosh HD''': an [[File systems|APFS]] container partition containing volumes for Apple's EFI loaders, the macOS system/user files, the recovery image and for [[swap]] in macOS.<br />
<br />
As a general rule, partitioning is no different from any other hardware that Arch Linux can be installed on. If you plan on keeping OS X for the purpose of dual booting, you need to manually shrink the main OS X HFS+/APFS partition from within OS X's Disk Utility program. <br />
{{Note|The OS X '''Recovery''' partition is not visible inside Disk Utility. However, the partition will be automatically moved after the OS X partition if you resize it. On MacBooks using APFS, the Recovery image is stored in the main APFS partition, resizing the APFS partition will move all macOS data.}}<br />
{{Tip|You can see the true partition structure of your system from within OS X by opening a terminal and running {{ic|diskutil list}}. Alternatively, if you have already launched the Arch installation media, you can retrieve similar information by running {{ic|fdisk -l}}.}}<br />
{{Warning| If your OS X partition is encrypted with FileVault 2, you '''must''' disable the disk encryption before proceeding. After the OS X partition has been resized, FileVault 2 can be re-enabled.}}<br />
{{Note|If you plan to remove OS X, it is advisable to '''disable''' the MacBook startup sound before proceeding with partitioning. Just boot in OS X, mute your system sound and reboot again to the Arch Linux Installation media. Please keep in mind that the volume of the startup sound can only be modified reliably in OS X.}}<br />
<br />
== Installation ==<br />
<br />
Installation is similar to any other standard laptop. Please refer to the official [[Installation guide]] for more detailed instructions, as the following content mainly describes deviations from those instructions that are specific to this MacBook model.<br />
<br />
As this Mac model does not include a [[Optical disc drive|CD]] or [[Optical disc drive|DVD drive]], you may wish to copy the Arch installation media onto a [[USB flash installation media|USB flash drive]]. With the Arch installation media on a flash drive, you can boot it by holding down the {{ic|Alt}} (or {{ic|Option}}) key while your Mac starts up, and then selecting the applicable EFI Boot option when the Apple boot manager appears.<br />
<br />
As this model of notebook has a high DPI display, the console font displayed will be extremely small and depending on your preferences is likely to be uncomfortable to use. You may wish to change this for a more legible font, an example of which is;<br />
<br />
$ setfont sun12x22<br />
<br />
=== Internet ===<br />
<br />
Thunderbolt Ethernet adapters and USB-to-Ethernet adapters are usually picked up automatically. In case you use a Thunderbolt ethernet adapter, you may have to power on the machine with the adapter plugged in for it to be picked up by the system.<br />
<br />
Another easy option is to use USB tethering with an Android device. For more information, see [[Android tethering]].<br />
<br />
If you have neither, the only option is to use the onboard wireless adapter. Depending on your model, you may have the Broadcom BCM43602, which is supported by the open source [[Broadcom wireless#brcm80211|brcmfac]] module that is built-in to the Linux kernel and typically enabled by default. If this is the case, you should have wireless available from the installer with no further configuration necessary.<br />
<br />
Other BCM43XX chipsets may only be supported by a proprietary driver such as [[Broadcom wireless#b43|b43]] or [[Broadcom wireless#broadcom-wl|wl]]. The {{Pkg|broadcom-wl}} package is included in the Arch installer media, but may need to be manually enabled before the chipset will function correctly. The {{ic|b43}} driver is also built-in to the kernel and included in the installation media, but it requires external proprietary firmware from the {{AUR|b43-firmware}} package which will need to be downloaded from another machine connected to the internet.<br />
<br />
You can list the network interfaces available from the installer environment by running {{ic|ip link show}}. If you can see your wireless interface in the list, you should now be able to use {{ic|wifi-menu}} to select and connect to your wireless network.<br />
<br />
If the [[wikipedia:Loopback#Virtual loopback interface|Linux loopback device]] is the only listed interface, you may need to load an alternative Broadcom driver. To do this, begin by ensuring that all Broadcom drivers have been unloaded.<br />
<br />
$ rmmod ssb<br />
$ rmmod bcma<br />
$ rmmod b43<br />
$ rmmod wl<br />
<br />
Then try loading {{ic|brcmfmac}} again.<br />
<br />
$ modprobe bcma<br />
<br />
Wait a few seconds and then list your network interfaces again. If you still can't see your wireless interface, unload {{ic|brcmfmac}} again and try reloading {{ic|wl}}.<br />
<br />
$ rmmod bcma<br />
$ modprobe wl<br />
<br />
If the wireless interface is still not listed, you will need to compile the {{AUR|b43-firmware}} package on another computer with [[pacman]] installed, put the generated package file on a second USB storage device, install the package within the Arch live environment and then load the {{ic|b43}} module, much like above. See [[Broadcom wireless]] and [[makepkg]] for more information.<br />
<br />
{{Note|If you used the {{ic|wl}} or {{ic|b43}} drivers, they will need to be manually installed to your new Arch system, this can be done by synchronising the {{Pkg|broadcom-wl}}/{{Pkg|broadcom-wl-dkms}} or {{AUR|b43-firmware}} packages as necessary, either during setup or after booting into your new Arch system.}}<br />
<br />
== Setup bootloader ==<br />
<br />
MacBooks can be easily configured to use [[systemd-boot]] or [[GRUB]] directly from the Apple bootloader, without the need for third-party tools such as [[rEFInd]]. Systemd-boot is the recommended way for systems that support UEFI.<br />
<br />
* First, make sure you mounted the EFI System Partition at {{ic|/boot}} (that is within the chroot, so mount it as {{ic|/mnt/boot}} with {{ic|mount /dev/sdXY /mnt/boot}})<br />
* Proceed with [[Installation guide]] normally<br />
* Once inside the chrooted enviroment, type the following command to install ''systemd-boot'':<br />
{{bc|1=# bootctl --path=/boot install}}<br />
The above command will copy the ''systemd-boot'' binary to {{ic|/boot/EFI/Boot/BOOTX64.EFI}} and add ''systemd-boot'' itself as the default EFI application (default boot entry) loaded by the EFI Boot Manager. <br />
* Proceed to [[systemd-boot#Configuration]] in order to correctly set up the bootloader<br />
At the next reboot, the Apple Boot Manager, shown when holding down the option key when booting the MacBook, should display Arch Linux (it will be displayed as {{ic|EFI Boot}} as a possible boot option).<br />
{{Note|If you wish to use GRUB, have a look at [[Mac#Using the native Apple bootloader with GRUB]].}}<br />
{{Tip| After the installation, it is optionally possible to set a custom icon that will be displayed in the MacBook boot loader. In order to do that, you need to install the {{Pkg|wget}}, {{Pkg|librsvg}} and {{Pkg|libicns}} packages. After that, just follow the following commands:<br />
$ wget -O /tmp/archlinux.svg https://www.archlinux.org/logos/archlinux-icon-crystal-64.svg<br />
$ rsvg-convert -w 128 -h 128 -o /tmp/archlogo.png /tmp/archlinux.svg<br />
# png2icns /boot/.VolumeIcon.icns /tmp/archlogo.png<br />
$ rm /tmp/archlogo.png<br />
$ rm /tmp/archlinux.svg<br />
Obviously, you can replace the Arch logo with any other icon you like.<br />
}}<br />
{{Tip|If you installed Arch Linux alongside OS X, you will be able to change the default boot location from system Settings inside OS X. If Arch Linux does not show up as a possible boot option, you will have to mount the EFI System Partition inside OS X before selecting your boot option:<br />
{{bc|$ diskutil mount disk0s1}}<br />
Keep in mind, however, it is also possible to load OS X from [[systemd-boot]]. <br />
}}<br />
<br />
== Post installation ==<br />
<br />
See [[General recommendations]] for system management directions and post-installation tutorials.<br />
<br />
Additionally, you might want to have a look at the [[Power management]] page for useful tips in power management and battery-saving software.<br />
<br />
=== Kernel parameters ===<br />
<br />
{{Warning|1=Since Kernel version 4.17.2-1 adding {{ic|acpi_osi}} parameter with an empty value causes battery to be undetectable. See this [https://bbs.archlinux.org/viewtopic.php?id=238194 forum thread] for more information.<br />
<br />
It's required to specify {{ic|1=acpi_osi=Darwin}} as a kernel boot parameter in order to let suspension/hibernation work properly.}}<br />
<br />
Due to [https://bugzilla.kernel.org/show_bug.cgi?id=177151 this bug], it might be required to add {{ic|1=acpi_osi=}} as a kernel boot parameter in order to improve battery life.<br />
<br />
Due to [https://bugzilla.kernel.org/show_bug.cgi?id=117481 this bug], it may be necessary to disable GPE06 by adding {{ic|1=acpi_mask_gpe=0x06}} as a kernel boot parameter. To verify that this is required, check {{ic|1=cat /sys/firmware/acpi/interrupts/gpe06}}. There should be a rapidly increasing number of interrupts registered, and one of your cores should be pegged at 100%.<br />
<br />
=== Fan control ===<br />
<br />
Install {{AUR|mbpfan-git}} or {{AUR|macfanctld}} and [[enable]] the mbpfan.service in order to prevent laptop overheating.<br />
<br />
=== Console ===<br />
<br />
Largest console font can be achieved by adding {{ic|1=FONT=sun12x22}} to {{ic|/etc/vconsole.conf}}:<br />
<br />
{{hc|1=# nano /etc/vconsole.conf|2=<br />
...<br />
FONT=sun12x22}}<br />
<br />
=== Graphics ===<br />
<br />
MacBook Pro with integrated Intel graphics and no discrete GPU are supported out of the box. See [[Intel graphics]] for additional details and configuration options.<br />
<br />
Versions which include a discrete Nvidia GPU should need additional configuration:<br />
* MacBook Pro 11,3:<br />
** nvidia drivers work, see [[NVIDIA]] or [[Nouveau]]. In case you use the proprietary driver, see the following link [http://cberner.com/2013/03/01/installing-ubuntu-13-04-on-macbook-pro-retina/] for additional details.<br />
**It is possible to configure the integrated intel GPU, provided you are using [[GRUB]] as your bootloader of choice. See below for details<br />
* MacBook Pro 11,5<br />
** The {{Pkg|xf86-video-nouveau}} package seems to be stable. Switching to VTs and back works fine from MATE and GNOME. SOmetimes Chromium causes a "kernele rejected pixbuf" error which freezes the desktop.<br />
** The {{Pkg|nvidia-dkms}} driver has been crashing a lot.<br />
** The {{Pkg|nvidia}} driver seems to be super stable, but GNOME desktop won't like to start, showing you a "Oh no! Something has gone wrong" message. Cinnamon Desktop is buttery smooth with the nvidia driver, and if you want your GNOME desktop, you can run `gnome-shell --relace &` while in cinnamon desktop to switch to Gnome Shell as a workaround.<br />
<br />
Note that the video output ports (HDMI and DisplayPort) are hardwired to the Nvidia GPU, so they will not work if you use the Intel GPU and power off the Nvidia GPU. Switching GPUs requires a reboot, so if you primarily keep the laptop docked at a desk, configuring switchable graphics may not be worth the hassle of setting it up and then rebooting every time you need to switch. However, the Nvidia GPU does use significantly more power than the Intel one, so you will take a significant hit to battery life.<br />
<br />
==== Getting the integrated intel card to work on 11,3 ====<br />
<br />
By default the integrated card is powered off. To fix this we need a grub function called "apple_set_os". This function has not officially been merged yet, so we need to build grub ourselves. Download the {{AUR|grub-git}} package from the AUR. Using something like:<br />
<br />
$ packer -G grub-git<br />
$ cd grub-git<br />
<br />
Get the patch from [http://lists.gnu.org/archive/html/grub-devel/2013-12/msg00442.html].<br />
<br />
Put the patch contents into a file labeled something like "apple.patch"<br />
<br />
Add this patch to your PKGBUILD and run:<br />
<br />
$ makepkg -si<br />
<br />
Reboot into OS X and download gfxCardStatus v2.2.1 (newer versions do not work properly) run the app and specify the integrated card.<br />
<br />
Reboot and at the grub prompt type 'c' to get into console, followed by "apple_set_os" at the prompt.<br />
<br />
You should now be able to install {{Pkg|xf86-video-intel}} and get your card running.<br />
<br />
Note that the HDMI port and MiniDP are soldered to the nvidia card meaning that to run external displays you need to use the dedicated card.<br />
<br />
==== Alternative method to disable NVIDIA card ====<br />
<br />
While the above method for switching graphics works, there is a more effective method that does not require the use of gfxCardStatus or a patched GRUB installation (but it can be used if desired).<br />
<br />
First, the Intel GPU will not function without a patch called apple_set_os. You can either use a patched GRUB (as seen above) or use the apple_set_os.efi patch via rEFInd or chainload it via GRUB, the EFI patch can be download here, https://github.com/0xbb/apple_set_os.efi, this tricks the machine into thinking that it is booting a Mac OS X installation, making the hardware behave as such, allowing the Intel GPU to be used. rEFInd should automatically detect the patch as described on the application page. This will need to be loaded before each boot of Arch or else the Intel GPU will not function, to load it automatically it can be chainloaded via GRUB. Also, download and install the Intel drivers as described above.<br />
<br />
Then you will need to download an application called gpu-switch for switching the GPU on dual MacBook Pros, it is fairly easy to use as well. It can be downloaded from here, https://github.com/0xbb/gpu-switch.<br />
<br />
Secondly, once you have downloaded gpu-switch, extract the application to your home directory and open up a terminal emulator and cd to that directory. To switch to the Intel graphics, run <code>gpu-switch -i</code> as sudo, and the card will be active on reboot. Conversely, to enable the dedicated card instead, run <code>gpu-switch -d</code> as sudo. You must have booted with the aforementioned patch for this to work.<br />
<br />
Next, gpu-switch will not completely power down the dedicated card. To do that, you will have to create a custom grub menuentry and compile a program that will power off the dedicated card.<br />
<br />
To do that, please refer to the following article, [[MacBookPro10,x#Graphics_2]].<br />
<br />
You should now have working integrated graphics and the dedicated GPU should now power down. If you get a blank screen after doing this, wait and see what happens, if it stays blank for a prolonged period of time, try resetting the SMC, and then booting back into Arch.<br />
<br />
I noticed that afterwards VGA switcheroo disabled the nouveau driver, if this workaround still does not work, try installing a cronjob package, and adding the following:<br />
<br />
<code>@reboot echo OFF > /sys/kernel/debug/vgaswitcheroo/switch</code><br />
<code>@reboot echo IGD > /sys/kernel/debug/vgaswitcheroo/switch</code><br />
<br />
I'm not sure if the vgaswitcheroo commands actually do anything, I need somebody to test this workaround and let me know how it works for them.<br />
<br />
To see if you dedicated GPU is actually disabled, run:<br />
<br />
# cat /sys/kernel/debug/vgaswitcheroo/switch<br />
<br />
{{Note|gpu-switch has been tested only on a select few models, those being MacBookPro9,1, MacBookPro10,1, and MacBookPro11,3. Use at your own risk.}}<br />
<br />
=== Microcode ===<br />
<br />
You may need to install {{Pkg|intel-ucode}}, especially if you have Nvidia drivers. Read the wiki page to learn more about [[Microcode]].<br />
<br />
=== HiDPI ===<br />
<br />
See [[HiDPI]] for information on how to tweak the system for a Retina screen.<br />
<br />
=== Sound ===<br />
<br />
* Headphones work<br />
* Speakers work (tested with kernel 4.8)<br />
<br />
If you do not want to hear the annoying sound at system start-up, one way to get rid of it is to turn sound off while under Mac OS.<br />
<br />
Volume keys can be made to work with {{ic|xfce4-volumed}} (if you are using Xfce).<br />
<br />
Also, if you are using PulseAudio, sometimes it thinks HDMI is the default sound card; to solve this problem, install {{pkg|pavucontrol}} and set Analog Stereo as the fallback device.<br />
<br />
=== Touchpad ===<br />
<br />
One method is to install {{pkg|xf86-input-synaptics}} and configure to your liking in {{ic|/etc/X11/xorg.conf.d/50-synaptics.conf}}:<br />
<br />
Section "InputClass"<br />
MatchIsTouchpad "on"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
# 1 = left, 2 = right, 3 = middle<br />
Option "TapButton1" "1" <br />
Option "TapButton2" "3"<br />
Option "TapButton3" "2"<br />
# Palm detection<br />
Option "PalmDetect" "1"<br />
# Horizontal scrolling<br />
Option "HorizTwoFingerScroll" "1"<br />
# Natural Scrolling (and speed)<br />
Option "VertScrollDelta" "-100"<br />
Option "HorizScrollDelta" "-100"<br />
EndSection<br />
<br />
==== Ctrl-Click as Right-Click ====<br />
<br />
Using this SuperUser receipt [http://superuser.com/questions/217615/how-to-right-click-using-the-keyboard-from-ubuntu-on-a-mac] I got Ctrl-click working as right-click. I had to increase the sleep time to 0.1 though.<br />
<br />
==== input-mtrack ====<br />
<br />
Another method is to use {{AUR|xf86-input-mtrack-git}}. If you like to have a thumb resting on the touchpad, this driver is the right choice, because it has an option for IgnoreThumb.<br />
<br />
With this config the touchpad behavior becomes more osx-like.<br />
<br />
/etc/X11/xorg.conf.d/00-touchpad.conf<br />
<br />
Section "InputClass"<br />
MatchIsTouchpad "on"<br />
Identifier "Touchpads"<br />
Driver "mtrack"<br />
Option "Sensitivity" "0.64"<br />
Option "FingerHigh" "5"<br />
Option "FingerLow" "1"<br />
Option "IgnoreThumb" "true"<br />
Option "IgnorePalm" "true"<br />
Option "DisableOnPalm" "true"<br />
Option "TapButton1" "1"<br />
Option "TapButton2" "3"<br />
Option "TapButton3" "2"<br />
Option "TapButton4" "0"<br />
Option "ClickFinger1" "1"<br />
Option "ClickFinger2" "2"<br />
Option "ClickFinger3" "3"<br />
Option "ButtonMoveEmulate" "false"<br />
Option "ButtonIntegrated" "true"<br />
Option "ClickTime" "25"<br />
Option "BottomEdge" "30"<br />
Option "SwipeLeftButton" "8"<br />
Option "SwipeRightButton" "9"<br />
Option "SwipeUpButton" "0"<br />
Option "SwipeDownButton" "0"<br />
Option "ScrollDistance" "75"<br />
Option "VertScrollDelta" "-111"<br />
Option "HorizScrollDelta" "-111"<br />
EndSection<br />
<br />
=== Swap Opt and Command Key ===<br />
<br />
Swapping opt and cmd is supported by the hid_apple module:<br />
<br />
$ echo 1 | sudo tee /sys/module/hid_apple/parameters/swap_opt_cmd<br />
<br />
To make the change permanent add the option to /etc/modprobe.d/hid_apple.conf and rebuild initramfs.<br />
<br />
$ echo options hid_apple swap_opt_cmd=1 | sudo tee -a /etc/modprobe.d/hid_apple.conf<br />
<br />
=== Keyboard backlight ===<br />
<br />
* Works, see [[Mac#Keyboard Backlight]]<br />
* On KDE controlling the backlight with the increase or decrease brightness keys work fine, but they need upower to start before the desktop. To do this create the file {{ic|/etc/systemd/system/kdm.service.d/kbd_backlight.conf}} with this content (you might need to create the directory as well)<br />
[Unit]<br />
Requires=upower.service<br />
After=upower.service<br />
<br />
=== Screen backlight ===<br />
<br />
* Intel, works on Linux 3.13<br />
* Framebuffer, works for MacBook Pro 11,1 and 11,3 via {{ic|/sys/class/backlight/gmux_backlight/brightness}}.<br />
* Brightness in {{ic|/sys/class/backlight/gmux_backlight/brightness}} can be modified comfortably via the {{AUR|gmux_backlight}} utility without root privileges. Requires the {{ic|setpci}} setting below.<br />
* Nvidia, does not work using default settings. Try executing as root {{ic|1=setpci -v -H1 -s 00:01.00 BRIDGE_CONTROL=0}}. It may be worthwhile to create a systemd unit to execute this on boot.<br />
* AMD models may require a patched kernel for the backlight to be adjusted. The {{AUR|linux-macbook}} kernel fixes this.<br />
{{note|If the screen does not show the prompt or the login manager (i.e. a black screen), append {{ic|1=i915.invert_brightness=1}} to the kernel. }}<br />
<br />
=== Suspend ===<br />
<br />
* Works from Linux 3.13<br />
It may be necessary to disable USB's wakeup ability by by echoing 'XHC1' to '/proc/acpi/wakeup' in order to prevent immediate wakeup on suspend. This also holds for MacBook Air 2013. To make this permanent create {{ic|/etc/systemd/system/fix-spurious-wakeups.service}} file with the following content.<br />
<br />
[Service]<br />
Type=oneshot<br />
ExecStart=sh -c "echo XHC1 > /proc/acpi/wakeup"<br />
RemainAfterExit=true<br />
[Install]<br />
WantedBy=multi-user.target<br />
<br />
And then execute {{ic|sudo systemctl daemon-reload && sudo systemctl enable fix-spurious-wakeups && sudo systemctl restart fix-spurious-wakeups}}<br />
<br />
* No backlight after suspend with Linux 3.12<br />
Use hibernate instead<br />
<br />
=== Powersave ===<br />
<br />
Disabling the internal cardreader and bluetooth controller may save battery life. When not using them, create the following [[udev]] rules:<br />
<br />
{{hc|1=/etc/udev/rules.d/99-apple_cardreader.rules|2=<br />
SUBSYSTEMS=="usb", ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="8406", RUN+="/usr/local/sbin/remove_ignore_usb-device.sh 05ac 8406"<br />
}}<br />
<br />
{{hc|1=/etc/udev/rules.d/99-apple_broadcom_bcm2046_bluetooth.rules|2=<br />
SUBSYSTEMS=="usb", ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="8289", RUN+="/usr/local/sbin/remove_ignore_usb-device.sh 05ac 8289"<br />
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0a5c", ATTRS{idProduct}=="4500", RUN+="/usr/local/sbin/remove_ignore_usb-device.sh 0a5c 4500"<br />
}}<br />
<br />
As udev's {{ic|1=OPTIONS=="ignore_device"}} may not work reliably, the above rules use [https://gist.github.com/anonymous/9c9d45c4818e3086ceca a script] to manually remove the usb device from {{ic|/sys/bus/usb/devices/}}.<br />
<br />
If battery life is not satisfactory, it may help to use power saving utilities, such as {{Pkg|tlp}}, and/or {{Pkg|powertop}} from the official repositories. To better optimize battery life, TLP also has a configuration file located at {{ic|/etc/default/tlp}} that you can edit to suit your machine. For more information, visit the wiki pages for these tools, [[TLP]] and [[Powertop]], respectively.<br />
<br />
=== SD Card Reader ===<br />
<br />
* Disappears sporadically after suspend as of Linux 3.18. Workaround is to create {{ic|/etc/modprobe.d/xhci-reset-on-suspend.conf}} with:<br />
# Reset XHCI USB devices on suspend/resume, fixes SD Card reader vanishing after suspend <br />
options xhci_hcd quirks=0x80<br />
<br />
Note: As of Linux 3.18.6-1 (and possibly earlier versions post-3.18), this fix '''may''' not be needed and might cause issues ranging from failed suspend to the SD card not being recognized at all. Test with and without the fix to determine which works best for you.<br />
<br />
=== Repurpose the power key ===<br />
<br />
By default systemd handles the rMBPs power key as defined in /etc/systemd/logind.conf. By setting<br />
HandlePowerKey=ignore<br />
systemd ignores power key events.<br />
<br />
Now the power key can be repurposed as keycode 124. For example in i3 conf:<br />
bindcode 124 ...<br />
<br />
=== Web cam ===<br />
<br />
A reverse engineered driver is being developed here: https://github.com/patjak/bcwc_pcie/ . It is marked experimental, but basic functionality seems to be working. Install {{AUR|bcwc-pcie-dkms}}{{Broken package link|package not found}} or {{AUR|bcwc-pcie-git}}.<br />
<br />
== What does not work ==<br />
<br />
Updated 2016-07-21<br />
<br />
=== General ===<br />
<br />
=== Wi-Fi ===<br />
<br />
* {{Pkg|broadcom-wl}} or {{Pkg|broadcom-wl-dkms}} from the [[AUR]] works<br />
** Stability is an issue for some, look at [[Broadcom wireless]] for possible fixes (e.g. downgrading kernel works if your card is BCM4360)<br />
** If stability is still an issue after the above, a possible alternative is to connect on a 802.11g network. More recent standards can cause the BCM4360 to disconnect randomly.<br />
<br />
=== Backlight keys / Suspend support ===<br />
<br />
{{AUR|linux-macbook}} is an AUR package created specifically for MacBook laptops that includes patches for these issues, as well fixing powering off correctly and CPU frequency scaling with the intel_pstate driver.<br />
<br />
== Discussions ==<br />
<br />
* https://bbs.archlinux.org/viewtopic.php?id=171883<br />
<br />
== See also ==<br />
<br />
* [[MacBookPro10,x]]<br />
* [[Mac]]<br />
<br />
== Example ==<br />
<br />
* https://github.com/GoGoGadgetRepo/ArchInstallMBP</div>Hi-Angelhttps://wiki.archlinux.org/index.php?title=LibreOffice&diff=577545LibreOffice2019-07-17T01:50:27Z<p>Hi-Angel: fix confusing note</p>
<hr />
<div>[[Category:Office]]<br />
[[ar:LibreOffice]]<br />
[[de:LibreOffice]]<br />
[[es:LibreOffice]]<br />
[[fr:LibreOffice]]<br />
[[it:LibreOffice]]<br />
[[ja:LibreOffice]]<br />
[[ru:LibreOffice]]<br />
[[zh-hans:LibreOffice]]<br />
{{Related articles start}}<br />
{{Related|Apache OpenOffice}}<br />
{{Related articles end}}<br />
<br />
From [https://www.libreoffice.org/ Home - LibreOffice]:<br />
<br />
:LibreOffice is the free power-packed Open Source personal productivity suite for Windows, Macintosh and Linux, that gives you six feature-rich applications for all your document production and data processing needs: Writer, Calc, Impress, Draw, Math and Base.<br />
<br />
== Installation ==<br />
<br />
[[Install]] one of the following packages: <br />
<br />
* {{Pkg|libreoffice-still}} is the stable maintenance branch, for conservative user.<br />
* {{Pkg|libreoffice-fresh}} is the feature branch, with new program enhancements for early adopter or power user.<br />
<br />
{{Note|<br />
* In the past, the installation of at least 1 language pack was required. Currently, LibreOffice detects your system defaults; manual installation of a language pack is no longer mandatory. See [https://help.libreoffice.org/Scalc/cui/ui/optlanguagespage/ignorelanguagechange#User_interface help.libreoffice.org] for additional information.<br />
* If you want the UK-English language pack, install {{Pkg|libreoffice-fresh-en-gb}}, not {{Pkg|libreoffice-fresh-uk}} (Ukrainian) or {{Pkg|libreoffice-fresh-br}} (Breton)!<br />
* For SDK install {{Pkg|libreoffice-fresh-sdk}}.<br />
* For Qt and GTK+ visual integration, see [[#Theme]].<br />
}}<br />
<br />
Check the optional dependencies pacman displays. If you want to use LibreOffice Base, you must install a Java Runtime Environment: see [[Java]]. You may need {{AUR|hsqldb2-java}} to use [https://wiki.documentfoundation.org/Base#Java_and_HSQLDB some modules] in LibreOffice Base.<br />
<br />
== Theme ==<br />
<br />
LibreOffice includes support for [[GTK+]] and [[Qt]] theme integration. See also [[Uniform look for Qt and GTK applications]].<br />
<br />
LibreOffice will try to autodetect the most suitable VCL UI interface based on your desktop environment. To force the use of a certain VCL UI interface, use one of the {{ic|1=SAL_USE_VCLPLUGIN=gen}}, {{ic|1=SAL_USE_VCLPLUGIN=kde5}}, or {{ic|1=SAL_USE_VCLPLUGIN=gtk3}} [[environment variables]]. These variables can be uncommented in {{ic|1=/etc/profile.d/libreoffice-fresh.sh}} or {{ic|1=/etc/profile.d/libreoffice-still.sh}}. Note that the {{ic|kde4}} and {{ic|gtk2}} backends are [https://wiki.documentfoundation.org/ReleaseNotes/6.2#Feature_removal_.2F_deprecation deprecated].<br />
<br />
{{Note|When using the [[LXDE]] desktop environment, setting {{ic|SAL_USE_VCLPLUGIN}} in {{ic|1=/etc/profile.d/libreoffice-fresh.sh}} has no effect since the {{ic|1=SAL_USE_VCLPLUGIN}} [[environment variable]] is afterwards set to {{ic|1=gtk}} by the script {{ic|1=/usr/bin/startlxde}}. In order to use {{ic|1=gtk3}} toolkit with [[LXDE]] the {{ic|1=SAL_USE_VCLPLUGIN}} [[environment variable]] needs to be set after launching the desktop environment.}}<br />
<br />
However, if it looks like it is using Windows 95/98 icons, go to ''Tools > Options...'' in the menus (which presents the Options Dialog), then select ''LibreOffice > Accessibility'' and uncheck "Automatically detect high-contrast mode of operating system".<br />
<br />
If that does not work immediately, you may need to change the icon set that is in use; this is also in the Options Dialog, under ''LibreOffice > View'' with two pop-up boxes for "Icon size and style" (the latter pop-up box should be changed to something other than "High-contrast").<br />
<br />
=== Firefox themes ===<br />
<br />
{{Out of date|Not working since Mozilla changed their theme distribution}}<br />
<br />
LibreOffice can use Firefox themes. Enter LibreOffice options and choose ''Personalization > Select Theme'', then paste the URL of your favourite one. A convenient button in the dialog box lets you open the browser.<br />
<br />
Themes can be found on [https://addons.mozilla.org/firefox/themes/ Mozilla's theme repository].<br />
<br />
=== Disable startup logo ===<br />
<br />
If you prefer to disable the startup logo, open {{ic|/etc/libreoffice/sofficerc}}, find the {{ic|1=Logo=}} line and set {{ic|1=Logo=0}}.<br />
<br />
{{Note|This variable is unrelated with the Logo scripting support.}}<br />
<br />
== Extension management ==<br />
<br />
The following additional extensions are available:<br />
<br />
* {{Pkg|libreoffice-extension-texmaths}}<br />
* {{Pkg|libreoffice-extension-writer2latex}}<br />
<br />
For more extensions, check the [[AUR]], the built-in LibreOffice Extension manager, or [https://libreplanet.org/wiki/Group:OpenOfficeExtensions/List libreplanet].<br />
<br />
== Language aids ==<br />
<br />
=== Spell checking ===<br />
<br />
For spell checking, please make sure {{Pkg|hunspell}} is properly installed; this should be the case for both ''still'' and ''fresh'' LibreOffice versions. Then install a language dictionary for hunspell like {{Pkg|hunspell-en_US}} for American English or {{Pkg|hunspell-de}} for German. Then enable the Writing aids by selecting the check-box in ''Tools > Options > Language Settings > Writing Aids > Hunspell SpellChecker'' after restarting LibreOffice.<br />
<br />
;Finnish<br />
Unlike other languages, Finnish dictionaries use different naming. These four packages should be installed (in this order): {{Pkg|libvoikko}}, {{AUR|malaga}}, {{AUR|voikko-fi}}, {{AUR|hfstospell}} and {{AUR|voikko-libreoffice}}.<br />
<br />
;Greek<br />
Project [https://sourceforge.net/projects/orthos-spell/?source=directory Orthos] provides more complete Greek spell checkers as Libreoffice extensions. Package {{AUR|libreoffice-extension-orthos-greek-dictionary}} provides a Greek-only spelling dictionary, while {{AUR|libreoffice-extension-orthos-greek-english-dictionary}} provides one that bundles Greek and US English.<br />
<br />
=== Hyphenation rules ===<br />
<br />
For hyphenation rules, you will need {{Pkg|hyphen}} and a language hyphen rule set ({{Pkg|hyphen-en}} for English, {{Pkg|hyphen-de}} for German, etc).<br />
<br />
=== Thesaurus ===<br />
<br />
For the thesaurus option, you will need {{Pkg|libmythes}} and a mythes language thesaurus (like {{Pkg|mythes-en}} for English, {{Pkg|mythes-de}} for German, etc).<br />
<br />
;Greek<br />
For Greek, instead of {{AUR|mythes-el}} you may want to try out {{AUR|libreoffice-extension-orthos-greek-thesaurus}}, which includes more words.<br />
<br />
=== Grammar checking ===<br />
<br />
{{Accuracy|Unintelligible flow of ideas: LanguageTool ''is'' packaged as a [https://extensions.libreoffice.org/extensions/languagetool LibreOffice extension], the reason for preferring the AUR package does not make sense.}}<br />
<br />
For grammar checking, several tools are available. The most common is [https://www.languagetool.org/ LanguageTool]. While the {{Pkg|languagetool}} is available, it is not packaged as a LibreOffice extension. It is thus recommended to install the LibreOffice extension manually or with {{AUR|libreoffice-extension-languagetool}} instead. Even though the extension comes bundled with LanguageTool, this does not conflict with {{Pkg|languagetool}}.<br />
<br />
After this extension has been installed, please make sure you have a [[Java]] 8 runtime installed ({{Pkg|jre8-openjdk}}). Indeed, Languagetool uses Java and may slow down or briefly hang LibreOffice, particularly while opening documents. Fortunately this is usually only when initially opening a document and is usually not apparent otherwise. Once installed, you want to enable it as the default environment for LibreOffice. To do that go to "Tools" --> "Options" --> "Advanced" and select the appropiate JRE (it will be shown as 1.8.0) then press "Ok". You will be prompted to restart the LibreOffice suite. Once restarted you will be able to install Languagetools without trouble.<br />
<br />
Other grammar tools can also be found on the [https://libreplanet.org/wiki/Group:OpenOfficeExtensions/List LibrePlanet extension page], on the [https://extensions.libreoffice.org/ official LibreOffice Extensions website] or [https://www.openoffice.org/lingucomponent/grammar.html OpenOffice's Website]. Please note all OpenOffice extensions are guaranteed to work with LibreOffice.<br />
<br />
;French<br />
French-speaking users are advantaged here: they do not need to install LanguageTool nor Java. Dicollecte provides a nice Python extension, specifically designed for Frenchs. You can install it [https://www.dicollecte.org/grammalecte/telecharger.php from the website] or via {{AUR|libreoffice-extension-grammalecte-fr}}. In any case, this extensions also comes with the French dictionaries otherwise provided by {{Pkg|hunspell-fr}}.<br />
<br />
=== Offline help for en-US ===<br />
<br />
As of version 5.2.2, {{Pkg|libreoffice-fresh}} provides the offline help files for en-US. Help files for different locales is provided by the appropriate libreoffice language package, (i.e., {{Pkg|libreoffice-fresh-en-za}} provides the help files for en-ZA locales).<br />
<br />
== Installing macros ==<br />
<br />
If you intend to use macros, you must have a Java Runtime Environment enabled.<br />
<br />
The default path for macros in Arch Linux is different from most Linux distributions. Its location is: {{ic|~/.config/libreoffice/4/user/Scripts/}}.<br />
<br />
== Troubleshooting ==<br />
<br />
A general way to track down problems is the safe mode in LibreOffice:<br />
<br />
$ libreoffice --safe-mode<br />
<br />
=== Font substitution ===<br />
<br />
These settings can be changed in the LibreOffice options. From the drop-down menu, select ''Tools > Options > LibreOffice > Fonts''. Check the box that says ''Apply Replacement Table''. Type {{ic|Andale Sans UI}} in the font box and choose your desired font for the ''Replace with'' option. When done, click the ''checkmark''. Then choose the ''Always'' and ''Screen only'' options in the box below. Click OK.<br />
You will then need to go to ''Tools > Options > LibreOffice > View'', and uncheck "Use system font for user interface". If you use a non-antialised font, such as Arial, you will also need to uncheck "Screen font antialiasing" before menu fonts render correctly.<br />
<br />
=== Anti-aliasing ===<br />
<br />
{{Merge|Font configuration}}<br />
<br />
Execute:<br />
<br />
$ echo "Xft.lcdfilter: lcddefault" | xrdb -merge<br />
<br />
To make the change persistent, add {{ic|Xft.lcdfilter: lcddefault}} to your {{ic|~/.Xresources}} file, and make sure to run {{ic|$ xrdb -merge ~/.Xresources}} ([https://bugs.launchpad.net/ubuntu/+source/cairo/+bug/271283/comments/23 source]). See [[X resources]] for more details.<br />
<br />
If this does not work, you can also try adding {{ic|Xft.lcdfilter: lcddefault}} to your {{ic|~/.Xdefaults}}. If you do not have this file, you will have to create it.<br />
<br />
=== Hanging when using NFSv3 shares ===<br />
<br />
If LibreOffice hangs when trying to open or save a document located on a NFSv3 share, try prepending the following lines with a {{ic|#}} in {{ic|/usr/lib/libreoffice/program/soffice}}:<br />
<br />
# file locking now enabled by default<br />
SAL_ENABLE_FILE_LOCKING=1<br />
export SAL_ENABLE_FILE_LOCKING<br />
<br />
To avoid overwriting on update you can copy {{ic|/usr/lib/libreoffice/program/soffice}} in {{ic|/usr/local/bin}}. Original post [http://195.110.9.173/computing/debian/bugs/openoffice-over-nfs.jspx here].<br />
<br />
=== LibreOffice does not detect my certificates ===<br />
<br />
If you cannot see the certificates when trying to sign a document, you will need to have the certificates configured in Mozilla Firefox (or Thunderbird). If after that LibreOffice still does not show them, set the {{ic|MOZILLA_CERTIFICATE_FOLDER}} environment variable to point to your Mozilla Firefox (or Thunderbird) folder:<br />
export MOZILLA_CERTIFICATE_FOLDER=$HOME/.mozilla/firefox/XXXXXX.default/<br />
<br />
[https://wiki.openoffice.org/wiki/Certificate_Detection Certificate detection].<br />
<br />
=== Run .pps files in edit mode (without slideshow) ===<br />
<br />
The only solution is to rename the {{ic|.pps}} file to {{ic|.ppt}}.<br />
<br />
Add the following script to your home directory and use it to open every .pps file. Very useful to open {{ic|.pps}} files received by email without the need to save them.<br />
<br />
{{bc|<nowiki><br />
#!/bin/bash<br />
<br />
f=$(mktemp --suffix .ppt)<br />
cp "$1" "${f}" && libreoffice "${f}" && rm -f "${f}"<br />
</nowiki>}}<br />
<br />
=== Media support ===<br />
<br />
If embedded videos are just gray boxes, make sure to have installed the [[GStreamer#Installation|GStreamer plugins]] required.<br />
<br />
=== Default paper size in Writer and Draw ===<br />
<br />
If the default paper size in blank Writer and Draw documents is persistently incorrect for your locale, try installing the {{Pkg|libpaper}} optional dependency and either updating {{ic|/etc/papersize}} (for a system-wide change) or exporting the {{ic|PAPERSIZE}} environment variable (for a user change) with your preferred paper size. See {{man|5|papersize}}.<br />
<br />
{{Note|{{Pkg|libpaper}} defaults to '''Letter''' paper size if nothing else has been set.}}<br />
<br />
=== LibreOffice toolbars unreadable with dark themes ===<br />
<br />
See https://bugs.documentfoundation.org/show_bug.cgi?id=94632<br />
<br />
To use toolbar icons compatible with dark themes, set [[environment variable]] {{ic|1=VCL_ICONS_FOR_DARK_THEME=1}}<br />
<br />
As an alternative workaround, run ''libreoffice'' with a light theme (e.g. with environment variable {{ic|1=GTK_THEME=Adwaita:light}}).<br />
<br />
=== LibreOffice toolbars unreadable with dark Breeze/Plasma 5 theme ===<br />
<br />
If you do not want to install {{Pkg|breeze-gtk}} change the icon style in ''Tools > Options > LibreOffice > View > Icon Style'' to a readable one provided by LibreOffice.<br />
<br />
Otherwise [[install]] the Breeze theme for [[GTK+]], {{Pkg|breeze-gtk}}, and, if using a LibreOffice version < 5.3.0, the Breeze dark icons for LibreOffice, {{AUR|libreoffice-breeze-icons}}.<br />
<br />
Just enable "Breeze Dark" or another readable icon style in ''Tools > Options > LibreOffice > View > Icon Style'' then.<br />
<br />
If that is not enough, ensure that LibreOffice starts using the {{ic|gtk}} interface - see [[#Theme]].<br />
<br />
If this still does not work correctly, try using the {{ic|gen}} interface instead. [https://bbs.archlinux.org/viewtopic.php?id=206813]<br />
<br />
=== LibreOffice Math formula editor unreadable with dark theme ===<br />
<br />
Text in formula editor is also unreadable if a dark theme is in use. There is an ongoing [https://bugs.documentfoundation.org/show_bug.cgi?id=90297 bug report].<br />
<br />
Some have had success with overriding text color in LibreOffice preferences, but that changes text color everywhere, such as the document itself, which is still white.<br />
<br />
Only workaround known is to override the theme to a light one (e.g. {{ic|1=GTK_THEME=Adwaita:light}}).<br />
<br />
=== AutoText expected default behaviour not functional in system locales other than en_US ===<br />
<br />
If expected default AutoText behaviour is not present (for example, typing {{ic|fn}} in a document in Writer and then pressing the {{ic|F3}} key does not result in the automatic insertion of a numbered function) when the system locale is not {{ic|en_US}} you need to add the default {{ic|en_US}} AutoText templates to your AutoText path. To do this, go to ''Tools > AutoText'', then click on ''Path...'' and add the following path to the list: {{ic|/usr/lib/libreoffice/share/autotext/en-US}}. AutoText should now work as expected by default.<br />
<br />
=== LibreOffice freezes ===<br />
Disable OpenCL and/or OpenGL by setting the [[environment variable]] {{ic|1=SAL_DISABLE_OPENCL=1}} and/or {{ic|1=SAL_DISABLEGL=1}}. The LibreOffice safe mode also offers the option to disable both.<br />
<br />
== See also ==<br />
<br />
* [https://extensions.libreoffice.org/extensions Libreoffice Extensions]<br />
* [https://extensions.libreoffice.org/templates Libreoffice Templates]<br />
* [[Wikipedia:LibreOffice]]</div>Hi-Angelhttps://wiki.archlinux.org/index.php?title=Pidgin&diff=477372Pidgin2017-05-16T04:51:26Z<p>Hi-Angel: /* Added another notification plugin, found by asking on ML */</p>
<hr />
<div>[[Category:Internet applications]]<br />
[[Category:Internet Relay Chat]]<br />
[[de:Pidgin]]<br />
[[es:Pidgin]]<br />
[[ja:Pidgin]]<br />
[[ru:Pidgin]]<br />
[[zh-hans:Pidgin]]<br />
From the project [http://www.pidgin.im/ home page]: "Pidgin is an easy to use and free chat client used by millions. Connect to AIM, Google Talk, ICQ, IRC, XMPP, and more chat networks all at once."<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{Pkg|pidgin}} package.<br />
Notable variants are:<br />
* {{App|Pidgin Light|Light Pidgin version without GStreamer, Tcl/Tk, XScreenSaver, video/voice support.|http://pidgin.im/|{{AUR|pidgin-light}}}}<br />
<br />
You may also want to install additional plugins from the {{Pkg|purple-plugin-pack}}.<br />
<br />
== Spellcheck ==<br />
<br />
The {{pkg|aspell}} package will be installed as a dependency, but to prevent all of your text from showing up as incorrect you will need to install an aspell dictionary. See the [[aspell]] article.<br />
<br />
{{Note|The '''switch spell''' plugin is included in the {{Pkg|purple-plugin-pack}}. It allows you to switch between multiple languages.}}<br />
<br />
== Services ==<br />
<br />
=== Facebook ===<br />
<br />
[[Install]] the {{Pkg|purple-facebook}} package. (or {{AUR|purple-facebook-git}})<br />
<br />
Then add a new account, select Facebook as the protocol, enter your [https://www.facebook.com/help/211813265517027 Facebook username] and password and login.<br />
<br />
=== IRC ===<br />
<br />
This is a small tutorial for connecting to Freenode. It should work for other IRC networks as long as you substitute the port numbers and other specific settings.<br />
<br />
Go to ''Accounts > Manage Accounts > Add''. Fill/select the following options:<br />
Protocol: IRC<br />
Username: ''your username''<br />
<br />
Now go to ''Buddies > New instant message'' (or hit {{ic|Ctrl+m}}), fill 'freenode.net' in the textbox and ''username''@irc.freenode.net, then click 'Ok'. Type:<br />
/join #archlinux<br />
The channel is irrelevant.<br />
<br />
In order to register your nick, type:<br />
/msg nickserv register ''password'' ''email-addres''<br />
<br />
Follow the instructions from the registration mail. For further help type:<br />
/msg nickserv help<br />
/msg nickserv help ''command''<br />
<br />
This final step will add your channel to 'Buddies': go to ''Buddies > Add chat'', fill the correct channel in the textbox named channel (#archlinux).<br />
<br />
=== Sametime protocol ===<br />
<br />
[[Install]] the {{AUR|libpurple-meanwhile}} package. The 'Sametime' protocol will be available when creating an account.<br />
<br />
=== SIP/Simple protocol for Live Communications Server 2003/2005/2007 ===<br />
<br />
[[Install]] the {{Pkg|pidgin-sipe}} package.<br />
<br />
=== Skype plugin ===<br />
<br />
Install the {{Pkg|purple-skypeweb}} or {{AUR|skype4pidgin-git}} package.<br />
<br />
== Security ==<br />
<br />
Pidgin uses Libpurple 2 which stores passwords unencrypted (in plaintext) in $HOME/.purple/account.xml, see [https://developer.pidgin.im/wiki/PlainTextPasswords]. You can store them in a keyring by using a plugin like:<br />
<br />
* {{AUR|purple-gnome-keyring}}<br />
* {{Pkg|pidgin-kwallet}}<br />
<br />
== Privacy ==<br />
<br />
Pidgin has some privacy rules set by default. Namely, the whole world cannot send you messages; only your contacts or people selected from a list. Adjust this, and other settings through:<br />
Tools > Privacy<br />
<br />
=== Pidgin-OTR ===<br />
<br />
This is a plugin that brings Off-The-Record (OTR) messaging to Pidgin. OTR is a cryptographic protocol that will encrypt your instant messages.<br />
<br />
First you need to install {{Pkg|pidgin-otr}} from the official repositories. Once this has been done, OTR has been added to Pidgin.<br />
<br />
# To enable OTR, start Pidgin and go to ''Tools > Plugins'' or press {{ic|Ctrl+u}}. Scroll down to the entry entitled "Off-The-Record Messaging". If the checkbox beside it is not checked, check it.<br />
# Next, click on the plugin entry and select "Configure plugin" at the bottom. Select which account you wish to generate a key for, then click "Generate". You will have now generated a private key. If you are not sure what the other options do, leave them, the default options will work fine.<br />
# The next step is to contact a buddy who also has OTR installed. In the chat window, a new icon should appear to the top right of your text input box. Click on it, and select "Start private conversation". This will start an 'Unverified' session. Unverified sessions are encrypted, but not verified - that is, you have started a private conversation with someone using your buddy's account who has OTR, but who might not be your buddy. The steps for verification of a buddy are beyond the scope of this section; however, they might be added in the future.<br />
<br />
=== Pidgin-Encryption ===<br />
<br />
{{Pkg|pidgin-encryption}} transparently encrypts your instant messages with RSA encryption. Easy-to-use, but very secure.<br />
<br />
You can enable it the same way as Pidgin-OTR.<br />
<br />
Now you can open conversation window and new icon should appear beside menu. Press it to enable or disable encryption.<br />
Also if you want to make encryption enabled by default right-click on a buddy's name (in your buddy list), and select Turn Auto-Encrypt On. Now, whenever a new conversation window for that buddy is opened, encryption will start out as enabled.<br />
<br />
=== Pidgin-GPG ===<br />
<br />
Pidgin-GPG transparently encrypt conversations using GPG, and taking advantage of all the features of a pre-existing WoT.<br />
<br />
The plugin is available on AUR as {{aur|pidgin-gpg-git}}. It can be enabled the same way as the previously mentioned ones.<br />
<br />
== Other packages ==<br />
<br />
Arch has other Pidgin-related packages. Here are the most popular (for a thorough list, search the AUR):<br />
*{{Pkg|pidgin-libnotify}} - Libnotify support, for theme-consistent notifications<br />
*{{AUR|purple-libnotify-plus}} - Notifications with Libnotify which does work with notify-osd. It might matter for WMs without DE, like i3, the original pidgin-libnotify instead uses plain messagebox there.<br />
*{{Pkg|guifications}} - Toaster-style popup notifications<br />
*{{AUR|microblog-purple}}{{Broken package link|{{aur-mirror|microblog-purple}}}} - Libpurple plug-in supporting microblog services like Twitter<br />
*{{AUR|pidgin-latex}} - A small latex plugin for pidgin. Put math between $$ and have it rendered (recepient also needs to have this installed)<br />
<br />
== Auto logout on suspend ==<br />
<br />
If you suspend your computer pidgin seems to stay connected for about 15 minutes. To prevent message loss, it is needed to set your status offline before suspending or hibernating. The status message won't be changed.<br />
<br />
Therefore create a new systemd unit {{ic|pidgin-suspend}} in {{ic|/etc/systemd/system}}<br />
Take the following snippet and replace ''myuser'' with your user.<br />
<br />
[Unit]<br />
Description=Suspend Pidgin<br />
Before=sleep.target<br />
StopWhenUnneeded=yes<br />
<br />
[Service]<br />
Type=oneshot<br />
User=''myuser''<br />
RemainAfterExit=yes<br />
Environment=DISPLAY=:0<br />
ExecStart=-/usr/bin/purple-remote setstatus?status=offline<br />
ExecStop=-/usr/bin/purple-remote setstatus?status=available<br />
<br />
[Install]<br />
WantedBy=sleep.target<br />
<br />
If you are using [[pm-utils]], you could create a {{ic|00pidgin}} file in {{ic|/etc/pm/sleep.d/}} instead.<br />
<br />
{{bc|<nowiki><br />
#!/bin/sh<br />
#<br />
# 00pidgin: set offline/online status<br />
<br />
case "$1" in<br />
hibernate|suspend)<br />
DISPLAY=:0 su -c 'purple-remote setstatus?status=offline' ''%myuser''<br />
;;<br />
thaw|resume)<br />
DISPLAY=:0 su -c 'purple-remote setstatus?status=available' ''%myuser''<br />
;;<br />
*) exit $NA<br />
;;<br />
esac<br />
</nowiki>}}<br />
<br />
== Minimize to tray ==<br />
To make use of the [[Xfce]] system tray go to preferences and enable the system tray in the section "Interface".<br />
You can now close the main window and run pidgin minimized. You will also be able to see message notifications in the tray.<br />
<br />
== History import Kopete to Pidgin ==<br />
<br />
* Install {{Pkg|xalan-c}} and create {{ic|~/bin/history_import_kopete2pidgin.sh}} with this code:<br />
{{bc|<nowiki><br />
#!/bin/sh<br />
<br />
KOPETE_DIR=~/.kde4/share/apps/kopete/logs<br />
PIDGIN_DIR=~/.purple/logs<br />
CURRENT_DIR=~/bin<br />
<br />
cd<br />
<br />
if [ ! -d $KOPETE_DIR ];then<br />
echo "Kopete log directory not found"<br />
exit 1;<br />
fi<br />
<br />
if [ ! -d $PIDGIN_DIR ];then<br />
echo "Pidgin log directory not found"<br />
exit 2;<br />
fi<br />
<br />
for KOPETE_PROTODIR in $(ls $KOPETE_DIR); do<br />
PIDGIN_PROTODIR=$(echo $KOPETE_PROTODIR | sed 's/Protocol//' | tr [:upper:] [:lower:])<br />
for accnum in $(ls $KOPETE_DIR/$KOPETE_PROTODIR); do<br />
echo "Account number: $accnum"<br />
for num in $(ls $KOPETE_DIR/$KOPETE_PROTODIR/$accnum); do<br />
FILENAME=$(Xalan $KOPETE_DIR/$KOPETE_PROTODIR/$accnum/$num $CURRENT_DIR/history_import_kopete2pidgin_filename.xslt)<br />
if [ $? = 0 ]; then<br />
echo "$KOPETE_DIR/$KOPETE_PROTODIR/$accnum/$num"<br />
echo " -> $PIDGIN_DIR/$PIDGIN_PROTODIR/$FILENAME"<br />
mkdir -p $(dirname $PIDGIN_DIR/$PIDGIN_PROTODIR/$FILENAME)<br />
Xalan -o $PIDGIN_DIR/$PIDGIN_PROTODIR/$FILENAME $KOPETE_DIR/$KOPETE_PROTODIR/$accnum/$num $CURRENT_DIR/history_import_kopete2pidgin.xslt<br />
fi<br />
done<br />
done<br />
done<br />
</nowiki>}}<br />
* Make {{ic|~/bin/history_import_kopete2pidgin.sh}} executable:<br />
chmod +x ~/bin/history_import_kopete2pidgin.sh<br />
* Create {{ic|~/bin/history_import_kopete2pidgin.xslt}} with this code:<br />
{{bc|1=<br />
<?xml version="1.0"?><br />
<nowiki><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"></nowiki><br />
<xsl:output method="text" indent="no" /><br />
<br />
<xsl:template match="kopete-history"><br />
<xsl:apply-templates select="msg"/><br />
</xsl:template><br />
<br />
<xsl:template match="msg"><br />
<xsl:text>(</xsl:text><br />
<xsl:value-of select="translate(substring-after(@time,' '),':',',')"/><br />
<xsl:text>) </xsl:text><br />
<xsl:value-of select="@nick"/><br />
<xsl:if test="not(@nick) or @nick = ''"><br />
<xsl:value-of select="@from"/><br />
</xsl:if><br />
<xsl:text>: </xsl:text><br />
<xsl:value-of select="."/><br />
<xsl:text><br />
</xsl:text><br />
</xsl:template><br />
</xsl:stylesheet><br />
</nowiki>}}<br />
* Create {{ic|~/bin/history_import_kopete2pidgin_filename.xslt}} with this code:<br />
{{bc|1=<br />
<?xml version="1.0"?><br />
<nowiki><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"></nowiki><br />
<xsl:output method="text" indent="no" /><br />
<br />
<xsl:template match="kopete-history"><br />
<xsl:value-of select="head/contact[@type = 'myself']/@contactId"/><br />
<xsl:text>/</xsl:text><br />
<xsl:value-of select="head/contact[not(@type)]/@contactId"/><br />
<xsl:text>/</xsl:text><br />
<xsl:value-of select="head/date/@year"/><br />
<xsl:text>-</xsl:text><br />
<xsl:if test="head/date/@month &amp;lt; 10">0</xsl:if><br />
<xsl:value-of select="head/date/@month"/><br />
<xsl:text>-</xsl:text><br />
<xsl:if test="string-length(substring-before(msg[1]/@time,' ')) &amp;lt; 2">0</xsl:if><br />
<xsl:value-of select="translate(msg[1]/@time,' :','.')"/><br />
<xsl:text>+0200EET.txt</xsl:text><br />
</xsl:template><br />
</xsl:stylesheet><br />
}}<br />
* Execute the command in the shell:<br />
<br />
~/bin/history_import_kopete2pidgin.sh<br />
<br />
== Backup ==<br />
<br />
Save {{ic|~/.purple}} to backup all message logs, accounts and other application data.<br />
<br />
== Troubleshooting ==<br />
<br />
<br />
=== Version Match for Sametime ===<br />
<br />
There was an issue if you would connect to the Sametime via Pidgin, it prompt "Version Match". A potential solution on the client side is to fake the version in accounts.xml. Insert/change the lines:<br />
<br />
<setting name='fake_client_id' type='bool'>1</setting><br />
<setting name='client_minor' type='int'>8511</setting><br />
<br />
in the <settings> section of Sametime account in accounts.xml which is located in $HOME/.purple/ folder.<br />
<br />
=== Browser error ===<br />
<br />
If clicking a link within Pidgin creates an error message about trying to use 'sensible-browser' to open a link, try editing {{ic|~/.purple/prefs.xml}}. Find the line referencing 'sensible-browser' and change it to this:<br />
<pref name='command' type='path' value='firefox'/><br />
<br />
This example assumes you use [[Firefox]].<br />
<br />
As an alternative if the method above does not work you can set the desired browser in the pidgin preferences in the section "Browser".<br />
<br />
=== ICQ Buddy Information encoding fix ===<br />
<br />
You can change encoding for ICQ account if encoding in Buddy Information is not correct:<br />
Account > ''your ICQ account'' > Edit account > Advanced tab<br />
Select {{ic|Encoding: CP1251}} (for Cyrillic).<br />
<br />
== See also ==<br />
* [https://developer.pidgin.im/wiki/Using%20Pidgin Pidgin How To]<br />
* [http://pidgin.im Pidgin homepage]<br />
* [http://lukav.com/wordpress/2008/03/30/history-import-kopete-to-pidgin History import Kopete to Pidgin]</div>Hi-Angelhttps://wiki.archlinux.org/index.php?title=System_backup&diff=457347System backup2016-11-21T09:29:03Z<p>Hi-Angel: Tho the cmd has "#" prompt, the privileges necessity isn't immediately obvious</p>
<hr />
<div>[[Category:System recovery]]<br />
[[cs:Full system backup with rsync]]<br />
[[es:Full system backup with rsync]]<br />
[[ja:Rsync によるフルシステムバックアップ]]<br />
[[zh-tw:Full system backup with rsync]]<br />
{{Related articles start}}<br />
{{Related|Synchronization and backup programs}}<br />
{{Related|rsync}}<br />
{{Related articles end}}<br />
This article is about using [[rsync]] to transfer a copy of the entire {{ic|/}} tree, excluding a few selected folders. This approach is considered to be better than [[disk cloning]] with {{ic|dd}} since it allows for a different size, partition table and filesystem to be used, and better than copying with {{ic|cp -a}} as well, because it allows greater control over file permissions, attributes, [[Access Control Lists]] and [[extended attributes]].<br />
<br />
All aforementioned methods will work even while the system is running, but files changed during the transfer may or may not be transferred, which can cause undefined behavior of some programs using the transferred files.<br />
<br />
This approach works well for migrating an existing installation to a new hard drive or [[SSD]].<br />
<br />
== With a single command ==<br />
<br />
This command depends on brace expansion available in both the [https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html bash] and [http://zsh.sourceforge.net/Doc/Release/Expansion.html#Brace-Expansion zsh] shells. When using a different [[shell]], {{ic|--exclude}} patterns should be repeated manually. Also make sure to run it with root privileges, otherwise some files may not be copied, e.g. {{ic|/etc/shadow}}.<br />
<br />
# rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / ''/path/to/backup/folder''<br />
<br />
By using the {{ic|-aAX}} set of options, the files are transferred in archive mode which ensures that symbolic links, devices, permissions, ownerships, modification times, [[ACL]]s, and extended attributes are preserved, assuming that the target [[file system]] supports the feature.<br />
<br />
The {{ic|--exclude}} option causes files that match the given patterns to be excluded. The contents of {{ic|/dev}}, {{ic|/proc}}, {{ic|/sys}}, {{ic|/tmp}}, and {{ic|/run}} are excluded in the above command, because they are populated at boot, although the folders themselves are ''not'' created. {{ic|/lost+found}} is filesystem-specific. Quoting the exclude patterns will avoid expansion by the [[shell]], which is necessary, for example, when backing up over [[SSH]]. Ending the excluded paths with {{ic|*}} ensures that the directories themselves are created if they do not already exist.<br />
<br />
{{Note|<br />
* If you plan on backing up your system somewhere other than {{ic|/mnt}} or {{ic|/media}}, do not forget to add it to the list of exclude patterns to avoid an infinite loop.<br />
* If there are any bind mounts in the system, they should be excluded as well so that the bind mounted contents is copied only once.<br />
* If you use a [[swap file]], make sure to exclude it as well.<br />
* Consider if you want to backup the {{ic|/home/}} folder. If it contains your data it might be considerably larger than the system. Otherwise consider excluding unimportant subdirectories such as {{ic|/home/*/.thumbnails/*}}, {{ic|/home/*/.cache/mozilla/*}}, {{ic|/home/*/.cache/chromium/*}}, and {{ic|/home/*/.local/share/Trash/*}}, depending on software installed on the system. If [[GVFS]] is installed, {{ic|/home/*/.gvfs}} must be excluded to prevent rsync errors.<br />
}}<br />
<br />
You may want to include additional [[rsync]] options, such as the following. See {{man|1|rsync}} for the full list.<br />
<br />
* If you use many hard links, consider adding the {{ic|-H}} option, which is turned off by default due to its memory expense; however, it should be no problem on most modern machines. Many hard links reside under the {{ic|/usr/}} directory.<br />
* You may want to add rsync's {{ic|--delete}} option if you are running this multiple times to the same backup folder. In this case make sure that the source path does not end with {{ic|/*}}, or this option will only have effect on the files inside the subdirectories of the source directory, but it will have no effect on the files residing directly inside the source directory.<br />
* If you use any sparse files, such as virtual disks, [[Docker]] images and similar, you should add the {{ic|-S}} option.<br />
* The {{ic|--numeric-ids}} option will disable mapping of user and group names; instead, numeric group and user IDs will be transfered. This is useful when backing up over [[SSH]] or when using a live system to backup different system disk.<br />
* Choosing {{ic|1=--info=progress2}} option instead of {{ic|-v}} will show the overall progress info and transfer speed instead of the list of files being transferred.<br />
<br />
If you wish to restore the backup, use the same rsync command that was executed but with the source and destination reversed.<br />
<br />
== Boot requirements ==<br />
<br />
Having a bootable backup can be useful in case the filesystem becomes corrupt or if an update breaks the system. The backup can also be used as a test bed for updates, with the ''testing'' repo enabled, etc. If you transferred the system to a different partition or drive and you want to boot it, the process is as simple as updating the backup's {{ic|/etc/fstab}} and your bootloader's configuration file.<br />
<br />
This section assumes that you backed up the system to another drive or partition, that your current bootloader is working fine, and that you want to boot from the backup as well.<br />
<br />
=== Update the fstab ===<br />
<br />
Without rebooting, edit the backup's [[fstab]] by commenting out or removing any existing entries. Add one entry for the partition containing the backup like the example here:<br />
<br />
/dev/sda''X'' / ''ext4'' defaults 0 1<br />
<br />
Remember to use the proper device name and filesystem type.<br />
<br />
=== Update the bootloader's configuration file ===<br />
<br />
For [[Syslinux]], all you need to do is duplicate the current entry, except pointing to a different drive or partition.<br />
<br />
{{Tip|Instead of editing {{ic|syslinux.cfg}}, you can also temporarily edit the menu during boot. When the menu shows up, press the {{ic|Tab}} key and change the relevant entries. Partitions are counted from one, drives are counted from zero.}}<br />
<br />
For [[GRUB]], it is recommended that you automatically [[GRUB#Generate_the_main_configuration_file|re-generate the main configuration file]]. If you want to freshly install all grub files to somewhere other than {{ic|/boot}}, such as {{ic|/mnt/newroot/boot}}, use the {{ic|--boot-directory}} flag.<br />
<br />
Also verify the new menu entry in {{ic|/boot/grub/grub.cfg}}. Make sure the UUID is matching the new partition, otherwise it could still boot the old system. Find the UUID of a partition as follows:<br />
<br />
# lsblk -no NAME,UUID /dev/sdb3<br />
<br />
where you substitute the desired partition for /dev/sdb3. To list the UUIDs of partitions grub thinks it can boot, use grep:<br />
<br />
# grep UUID= /boot/grub/grub.cfg<br />
<br />
== First boot ==<br />
<br />
Reboot the computer and select the right entry in the bootloader. This will load the system for the first time. All peripherals should be detected and the empty folders in {{ic|/}} will be populated.<br />
<br />
Now you can re-edit {{ic|/etc/fstab}} to add the previously removed partitions and mount points.<br />
<br />
== See also ==<br />
<br />
* [http://blog.pointsoftware.ch/index.php/howto-local-and-remote-snapshot-backup-using-rsync-with-hard-links/ Howto – local and remote snapshot backup using rsync with hard links] Includes file deduplication with hard-links, MD5 integrity signature, 'chattr' protection, filter rules, disk quota, retention policy with exponential distribution (backups rotation while saving more recent backups than older)</div>Hi-Angelhttps://wiki.archlinux.org/index.php?title=User_talk:Lahwaacz&diff=457294User talk:Lahwaacz2016-11-20T15:47:25Z<p>Hi-Angel: /* Why do you undo whole edit instead of fixing a small typo? */ new section</p>
<hr />
<div>== PodCastXDL ==<br />
<br />
About [https://wiki.archlinux.org/index.php?title=List_of_applications/Internet&diff=prev&oldid=323048] (and [https://wiki.archlinux.org/index.php?title=List_of_applications/Internet&diff=next&oldid=323048]) [[User:Levi0x0x]], who should have indeed provided an edit summary, appears to be the developer of the application and the maintainer of the PKGBUILD. I would keep his edit. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 00:45, 5 July 2014 (UTC)<br />
<br />
:I know - I've seen also [https://wiki.archlinux.org/index.php?title=MPlayer&diff=next&oldid=322278 bash-player] removed, both from wiki and Github (it seems the repo has been recreated from scratch). PodCastXDL has always been available upstream. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 08:20, 5 July 2014 (UTC)<br />
<br />
::Didn't he add it to the list one week ago? [https://wiki.archlinux.org/index.php?title=List_of_applications/Internet&diff=prev&oldid=322258] Maybe he's found some bug and doesn't want people to use it until he fixes it? Anyway I'm not that interested, we can as well see if/how Levi0x0x reacts. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 04:32, 6 July 2014 (UTC)<br />
<br />
== bot AUR to Official Repository edit ==<br />
<br />
A recent bot edit ([https://github.com/lahwaacz/wiki-scripts/blob/master/update-package-templates.py update Pkg/AUR templates]) by [[User:Lahwaacz.bot]] on the [[Gitolite]] page correctly changed the AUR template to Pkg but left the [[Arch User Repository]] link<br />
<br />
I fixed this, but would it be possible to modify the bot to take this into consideration?<br />
<br />
I can imagine that blanket changing AUR links to Official Repository links in any given page could be dangerous - but for common phrasing or possibly word distance it would seem to be relatively safe<br />
<br />
Or is there some sort of post-run manual inspection that I am unaware of that handles this situation? <br />
<br />
Specifically this [https://wiki.archlinux.org/index.php?title=Gitolite&diff=next&oldid=366859 edit]<br />
<br />
From:<br />
<pre><br />
{{AUR|gitolite}} is available in the [[Arch User Repository]]<br />
</pre><br />
<br />
To:<br />
<pre><br />
{{Pkg|gitolite}} is available in the [[Arch User Repository]]<br />
</pre><br />
<br />
<br />
<br />
[[User:Tido.com|Tido.com]] ([[User talk:Tido.com|talk]]) 01:50, 1 April 2015 (UTC)<br />
<br />
By "word distance" above what I _meant_ was [[Wikipedia:Edit Distance|Edit Distance]] ;)<br />
<br />
I was initially thinking of Hamming distance - but apparently that is for strings of equal length.<br />
<br />
What looks more promising is the Levenshtein distance - specifically "Comparing a list of strings" from the Python [https://pypi.python.org/pypi/Distance/0.1.3 Distance] package.<br />
<br />
Example shamelessly ripped from that page:<br />
<br />
(mainly because I couldn't link directly to the relevant section)<br />
<br />
<pre><br />
>>> sent1 = ['the', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog']<br />
>>> sent2 = ['the', 'lazy', 'fox', 'jumps', 'over', 'the', 'crazy', 'dog']<br />
>>> distance.levenshtein(sent1, sent2)<br />
3<br />
</pre><br />
[[User:Tido.com|Tido.com]] ([[User talk:Tido.com|talk]]) 04:07, 1 April 2015 (UTC)<br />
<br />
:Hi,<br />
:the bot currently does not touch the surrounding text at all, it only modifies the package templates or appends [[Template:Broken package link]] when the package is not found. This is obviously not perfect, this behaviour may lead to some incorrect combinations as you noticed, but blindly fixing the package links and not the surrounding text is still considered to be an improvement. Checking the surrounding text manually would require a lot of manpower, which we don't have, so it is currently not done systematically. Feel free to ask for further details or see the most recent discussion: [[ArchWiki:Requests#Strategy_for_updating_package_templates]].<br />
:Regarding automatic updates of the surrounding text, the edit distance gives a clue about whether given edit should be performed or not, but it does not define how an edit should be performed. It can be useful in cases where there are multiple feasible substitutions in text and the strategy to select the optimal substitution is e.g. to minimize the Levenshtein distance. But we don't have any algorithm to generate feasible substitutions yet, so this technique fails. The surrounding text substitution is also very context sensitive and wiki bots must be designed in a way to minimize (ideally avoid completely) the [[wikipedia:Error_of_the_first_kind|error of the first kind]], which in this case is modifying correct text to be incorrect. This makes defining general rules for the text substitution really hard, on the other hand many rules would be necessary to cover even the basic form of standard wording, so in the end both ways may be comparably hard. Anyway, if you have some ideas, I'm all ears :)<br />
:-- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 17:51, 1 April 2015 (UTC)<br />
<br />
== bot checking links after move ==<br />
<br />
Hi, re [[Talk:Touchpad Synaptics#adding libinput alternative]]. [[Touchpad Synaptics]] has 100+ backlinks and the more important ones - a bit tedious task. I was just glancing over your clever github bot scripts. It would be handy to have a script after such moves: walk over the backlinks of [[Touchpad Synaptics]] and just replace "[[Touchpad Synaptics" with "[[Synaptics" from the links. That would leave all links to subsections intact. Leaving out the translations to handle manually, there would not be much to go wrong, or? --[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 07:36, 26 September 2015 (UTC)<br />
<br />
:Hi, thanks for the suggestion. It would be indeed handy in this case, but most likely not generally. Imagine that there was a [[UUID]] page, which was later generalized and renamed to [[Persistent block device naming]] and content about UUID is now only a section on the page. In this case using the naive replacement would likely change the meaning of many sentences, and using shorter redirects for convenience is actually encouraged. There would have to be a list of whitelisted "harmless" replacements, which could even help to replace <nowiki>[[pacman|Install]]</nowiki> with <nowiki>[[Install]]</nowiki> etc. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 08:01, 26 September 2015 (UTC)<br />
<br />
::Yes, good examples, but you are thinking universal already :) I did not mean it could be that. For example, if you take the time when the bulk of the title case moves were done. With such a script one could avoid a lot of internal redirects as well. E.g. [https://wiki.archlinux.org/index.php/Special:WhatLinksHere/Beginners'_Guide]. But it's ok, just an idea. Please close this, if you think it's too singular cases with a simple enough replacement where it could be applied. --[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 10:02, 26 September 2015 (UTC)<br />
<br />
== aur-mirror ==<br />
<br />
Hi Lahwaacz,<br />
<br />
It seems that [http://pkgbuild.com/git/aur-mirror.git aur-mirror] has been down for a while.<br />
I'm not sure if this is intentional or not, but if it is, could you have Lahwaacz.bot remove [[Template:Aur-mirror]] from pages? At least where they are in a [[Template:Broken package link]] like {{ic|<nowiki>{{Broken package link|{{aur-mirror|foobar}}}}</nowiki>}}.<br />
<br />
If there is anything I can do to help, let me know.<br />
<br />
Thanks! [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 14:56, 19 October 2016 (UTC)<br />
<br />
:Maybe drifting a bit offtopic... but I'm in favor to finally remove any and all packages that are not on AUR4 from the wiki. Users have had over a year time to migrate, which is a century in Arch standards. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 16:21, 19 October 2016 (UTC)<br />
<br />
::I agree, especially on pages like [[List of games]] (already [https://wiki.archlinux.org/index.php?title=List_of_games&curid=4401&diff=454419&oldid=454356 took care of that]), and [[List of Applications]] (see [[Talk:List of applications#AUR3 packages]]). On other pages, where the non-existing packages are mentioned inline, it requires some more knowledge and effort to remove them. -- [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 16:34, 19 October 2016 (UTC)<br />
<br />
:::Hmm... For the moment I just updated the template to point to Github instead. What would be the alternative "hint" without the link? It should still be different from just "package not found". -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 18:08, 19 October 2016 (UTC)<br />
<br />
::::The GitHub repository is fine as well. I think we can keep that one while we (carefully) remove/update all broken links. Thanks! [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 06:52, 20 October 2016 (UTC)<br />
<br />
== OpenVPN ==<br />
<br />
Hi, the topic about setting the key password was a tip, and the only way that work to have the openvpn "ask" for the key password. The systemd-ask-pass is not working. So when the openvpn service is started it does not ask for the key password.<br />
I know it is not the best sollution, far away from that, but it was the only way that i can put it to work. I think it is a valuable tipo, although it have to came with a security note.<br />
Can be this way?<br />
<br />
{{unsigned|10:52, 31 October 2016|Mawcomw}}<br />
<br />
:Is there a reason why you have a password-protected key or was it set up implicitly by following some guide? Note that you can [http://stackoverflow.com/questions/112396/how-do-i-remove-the-passphrase-for-the-ssh-key-without-having-to-create-a-new-ke remove the passphrase without generating a new key]. If you have a good reason for using the passphrase, using plain {{ic|--askpass}} without a file would allow openvpn to ask for the passphrase on its standard input, but that probably does not work well with systemd units starting at boot. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 13:41, 31 October 2016 (UTC)<br />
<br />
== Why do you undo whole edit instead of fixing a small typo? ==<br />
<br />
[https://wiki.archlinux.org/index.php?title=Full_system_backup_with_rsync&diff=next&oldid=457271 Here] you undo the edit because "i.e. does not stand for exempli gratia". I was always thinking that "i.e." stands for "in example", but I'm not a native speaker after all. But why wouldn't you just correct the spelling? [[User:Hi-Angel|Hi-Angel]] ([[User talk:Hi-Angel|talk]]) 15:47, 20 November 2016 (UTC)</div>Hi-Angelhttps://wiki.archlinux.org/index.php?title=System_backup&diff=457271System backup2016-11-20T15:00:16Z<p>Hi-Angel: Tho the cmd has "#" prompt, the privileges necessity isn't immediately obvious</p>
<hr />
<div>[[Category:System recovery]]<br />
[[cs:Full system backup with rsync]]<br />
[[es:Full system backup with rsync]]<br />
[[ja:Rsync によるフルシステムバックアップ]]<br />
[[zh-tw:Full system backup with rsync]]<br />
{{Related articles start}}<br />
{{Related|Synchronization and backup programs}}<br />
{{Related|rsync}}<br />
{{Related articles end}}<br />
This article is about using [[rsync]] to transfer a copy of the entire {{ic|/}} tree, excluding a few selected folders. This approach is considered to be better than [[disk cloning]] with {{ic|dd}} since it allows for a different size, partition table and filesystem to be used, and better than copying with {{ic|cp -a}} as well, because it allows greater control over file permissions, attributes, [[Access Control Lists]] and [[extended attributes]].<br />
<br />
All aforementioned methods will work even while the system is running, but files changed during the transfer may or may not be transferred, which can cause undefined behavior of some programs using the transferred files.<br />
<br />
This approach works well for migrating an existing installation to a new hard drive or [[SSD]].<br />
<br />
== With a single command ==<br />
<br />
This command depends on brace expansion available in both the [https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html bash] and [http://zsh.sourceforge.net/Doc/Release/Expansion.html#Brace-Expansion zsh] shells. When using a different [[shell]], {{ic|--exclude}} patterns should be repeated manually. Also make sure to run it with root privileges, otherwise some files may not be copied, i.e. {{ic|/etc/shadow}}.<br />
<br />
# rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / ''/path/to/backup/folder''<br />
<br />
By using the {{ic|-aAX}} set of options, the files are transferred in archive mode which ensures that symbolic links, devices, permissions, ownerships, modification times, [[ACL]]s, and extended attributes are preserved, assuming that the target [[file system]] supports the feature.<br />
<br />
The {{ic|--exclude}} option causes files that match the given patterns to be excluded. The contents of {{ic|/dev}}, {{ic|/proc}}, {{ic|/sys}}, {{ic|/tmp}}, and {{ic|/run}} are excluded in the above command, because they are populated at boot, although the folders themselves are ''not'' created. {{ic|/lost+found}} is filesystem-specific. Quoting the exclude patterns will avoid expansion by the [[shell]], which is necessary, for example, when backing up over [[SSH]]. Ending the excluded paths with {{ic|*}} ensures that the directories themselves are created if they do not already exist.<br />
<br />
{{Note|<br />
* If you plan on backing up your system somewhere other than {{ic|/mnt}} or {{ic|/media}}, do not forget to add it to the list of exclude patterns to avoid an infinite loop.<br />
* If there are any bind mounts in the system, they should be excluded as well so that the bind mounted contents is copied only once.<br />
* If you use a [[swap file]], make sure to exclude it as well.<br />
* Consider if you want to backup the {{ic|/home/}} folder. If it contains your data it might be considerably larger than the system. Otherwise consider excluding unimportant subdirectories such as {{ic|/home/*/.thumbnails/*}}, {{ic|/home/*/.cache/mozilla/*}}, {{ic|/home/*/.cache/chromium/*}}, and {{ic|/home/*/.local/share/Trash/*}}, depending on software installed on the system. If [[GVFS]] is installed, {{ic|/home/*/.gvfs}} must be excluded to prevent rsync errors.<br />
}}<br />
<br />
You may want to include additional [[rsync]] options, such as the following. See {{man|1|rsync}} for the full list.<br />
<br />
* If you use many hard links, consider adding the {{ic|-H}} option, which is turned off by default due to its memory expense; however, it should be no problem on most modern machines. Many hard links reside under the {{ic|/usr/}} directory.<br />
* You may want to add rsync's {{ic|--delete}} option if you are running this multiple times to the same backup folder. In this case make sure that the source path does not end with {{ic|/*}}, or this option will only have effect on the files inside the subdirectories of the source directory, but it will have no effect on the files residing directly inside the source directory.<br />
* If you use any sparse files, such as virtual disks, [[Docker]] images and similar, you should add the {{ic|-S}} option.<br />
* The {{ic|--numeric-ids}} option will disable mapping of user and group names; instead, numeric group and user IDs will be transfered. This is useful when backing up over [[SSH]] or when using a live system to backup different system disk.<br />
* Choosing {{ic|1=--info=progress2}} option instead of {{ic|-v}} will show the overall progress info and transfer speed instead of the list of files being transferred.<br />
<br />
If you wish to restore the backup, use the same rsync command that was executed but with the source and destination reversed.<br />
<br />
== Boot requirements ==<br />
<br />
Having a bootable backup can be useful in case the filesystem becomes corrupt or if an update breaks the system. The backup can also be used as a test bed for updates, with the ''testing'' repo enabled, etc. If you transferred the system to a different partition or drive and you want to boot it, the process is as simple as updating the backup's {{ic|/etc/fstab}} and your bootloader's configuration file.<br />
<br />
This section assumes that you backed up the system to another drive or partition, that your current bootloader is working fine, and that you want to boot from the backup as well.<br />
<br />
=== Update the fstab ===<br />
<br />
Without rebooting, edit the backup's [[fstab]] by commenting out or removing any existing entries. Add one entry for the partition containing the backup like the example here:<br />
<br />
/dev/sda''X'' / ''ext4'' defaults 0 1<br />
<br />
Remember to use the proper device name and filesystem type.<br />
<br />
=== Update the bootloader's configuration file ===<br />
<br />
For [[Syslinux]], all you need to do is duplicate the current entry, except pointing to a different drive or partition.<br />
<br />
{{Tip|Instead of editing {{ic|syslinux.cfg}}, you can also temporarily edit the menu during boot. When the menu shows up, press the {{ic|Tab}} key and change the relevant entries. Partitions are counted from one, drives are counted from zero.}}<br />
<br />
For [[GRUB]], it is recommended that you automatically [[GRUB#Generate_the_main_configuration_file|re-generate the main configuration file]].<br />
<br />
Also verify the new menu entry in {{ic|/boot/grub/grub.cfg}}. Make sure the UUID is matching the new partition, otherwise it could still boot the old system. Find the UUID of a partition as follows:<br />
<br />
# lsblk -no NAME,UUID /dev/sdb3<br />
<br />
where you substitute the desired partition for /dev/sdb3. To list the UUIDs of partitions grub thinks it can boot, use grep:<br />
<br />
# grep UUID= /boot/grub/grub.cfg<br />
<br />
== First boot ==<br />
<br />
Reboot the computer and select the right entry in the bootloader. This will load the system for the first time. All peripherals should be detected and the empty folders in {{ic|/}} will be populated.<br />
<br />
Now you can re-edit {{ic|/etc/fstab}} to add the previously removed partitions and mount points.<br />
<br />
== See also ==<br />
<br />
* [http://blog.pointsoftware.ch/index.php/howto-local-and-remote-snapshot-backup-using-rsync-with-hard-links/ Howto – local and remote snapshot backup using rsync with hard links] Includes file deduplication with hard-links, MD5 integrity signature, 'chattr' protection, filter rules, disk quota, retention policy with exponential distribution (backups rotation while saving more recent backups than older)</div>Hi-Angelhttps://wiki.archlinux.org/index.php?title=User_talk:Nl6720&diff=453042User talk:Nl67202016-10-06T10:26:14Z<p>Hi-Angel: An answer to edit</p>
<hr />
<div>__NOINDEX__{{Template:Lowercase title}}<br />
== <s>Email address</s> ==<br />
<br />
Hey Nl6720,<br />
<br />
You've [[Special:EmailUser/Nl6720|disabled]] email from other users, but I'd like to send you a private message. If interested, would you mind contacting me on {{ic|alad <at> archlinux <dot> info}} (address in [[ArchWiki:Administrators]])?<br />
<br />
Cheers -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 11:50, 2 October 2016 (UTC)<br />
<br />
:I re-enabled email from other users. --&#160;[[User:nl6720|<span style="font-family:serif; font-weight:bold; color:#800080;">nl6720</span>]]&#8239;[[User talk:nl6720|<span style="color:#808080; vertical-align:super; font-size:smaller; font-weight:lighter;">talk</span>]] 13:54, 2 October 2016 (UTC)<br />
== Clarification for: [https://wiki.archlinux.org/index.php?title=Zsh&diff=next&oldid=452490 The content seems questionable too, but I know nothing about these frameworks] ==<br />
<br />
It's a problem I met, for which I couldn't find a solution with googling, so I had to retreat to asking at IRC. In short, it's that the default Archlinux config shipped somewhere in /etc/ overwrites variables for runtime, i.e. one can't even overwrite them manually. I thought it would be useful to many others. Probably, it may cause problems not only with "oh-my-zsh", but I decided to put info in that paragraph because I'm not sure if there is a better place.<br />
<br />
And sorry for html formatting, markup is pretty unusual, and [https://wiki.archlinux.org/index.php/Help:Style/Formatting_and_punctuation the formatting page] is surprisingly unhelpful. I.e. how to write a link I figured out only because I thought, perhaps wikipedia.org using the same markup formatting; which turned out to be right. [[User:Hi-Angel|Hi-Angel]] ([[User talk:Hi-Angel|talk]]) 10:23, 6 October 2016 (UTC)</div>Hi-Angelhttps://wiki.archlinux.org/index.php?title=User_talk:Nl6720&diff=453041User talk:Nl67202016-10-06T10:23:57Z<p>Hi-Angel: An answer to edit</p>
<hr />
<div>__NOINDEX__{{Template:Lowercase title}}<br />
== <s>Email address</s> ==<br />
<br />
Hey Nl6720,<br />
<br />
You've [[Special:EmailUser/Nl6720|disabled]] email from other users, but I'd like to send you a private message. If interested, would you mind contacting me on {{ic|alad <at> archlinux <dot> info}} (address in [[ArchWiki:Administrators]])?<br />
<br />
Cheers -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 11:50, 2 October 2016 (UTC)<br />
<br />
:I re-enabled email from other users. --&#160;[[User:nl6720|<span style="font-family:serif; font-weight:bold; color:#800080;">nl6720</span>]]&#8239;[[User talk:nl6720|<span style="color:#808080; vertical-align:super; font-size:smaller; font-weight:lighter;">talk</span>]] 13:54, 2 October 2016 (UTC)<br />
== Clarification for: [https://wiki.archlinux.org/index.php?title=Zsh&diff=next&oldid=452490 The content seems questionable too, but I know nothing about these frameworks] ==<br />
<br />
It's a problem I met, for which I couldn't find a solution with googling, so I had to retreat to asking at IRC. In short, it's that the default Archlinux config shipped somewhere in /etc/ overwrites variables for runtime, i.e. one can't even overwrite them manually. I thought it would be useful to many others. Probably, it may cause problems not only with "oh-my-zsh", but I decided to put info in that paragraph because I'm not sure if there would be a better place.<br />
<br />
And sorry for html formatting, markup is pretty unusual, and [https://wiki.archlinux.org/index.php/Help:Style/Formatting_and_punctuation the formatting page] is surprisingly unhelpful. I.e. how to write a link I figured out only because I thought, perhaps wikipedia.org using the same markup formatting; which turned out to be right. [[User:Hi-Angel|Hi-Angel]] ([[User talk:Hi-Angel|talk]]) 10:23, 6 October 2016 (UTC)</div>Hi-Angelhttps://wiki.archlinux.org/index.php?title=Zsh&diff=452490Zsh2016-09-30T16:57:25Z<p>Hi-Angel: A nowhere yet written solution to a problem I met (thx to peoples on IRC)</p>
<hr />
<div>[[Category:Command shells]]<br />
[[cs:Zsh]]<br />
[[de:Zsh]]<br />
[[es:Zsh]]<br />
[[fr:Zsh]]<br />
[[ja:Zsh]]<br />
[[ru:Zsh]]<br />
[[zh-CN:Zsh]]<br />
[http://zsh.sourceforge.net/Intro/intro_1.html Zsh] is a powerful shell that operates as both an interactive shell and as a scripting language interpreter. While being compatible with [[Bash]] (not by default, only if issuing {{ic|emulate sh}}), it offers advantages such as improved [http://zsh.sourceforge.net/Guide/zshguide06.html tab completion] and [http://zsh.sourceforge.net/Doc/Release/Expansion.html globbing].<br />
<br />
The [http://zsh.sourceforge.net/FAQ/zshfaq01.html#l4 Zsh FAQ] offers more reasons to use Zsh.<br />
<br />
== Installation ==<br />
<br />
Before starting users may want to see what shell is currently being used:<br />
<br />
$ echo $SHELL<br />
<br />
[[Install]] the {{Pkg|zsh}} package. For additional completion definitions, install the {{pkg|zsh-completions}} package as well.<br />
<br />
=== Initial configuration ===<br />
<br />
Make sure that Zsh has been installed correctly by running the following in a terminal:<br />
<br />
$ zsh<br />
<br />
You should now see ''zsh-newuser-install'', which will walk you through some basic configuration. If you want to skip this, press {{ic|q}}. If you did not see it, you can invoke it manually with<br />
<br />
$ zsh /usr/share/zsh/functions/Newuser/zsh-newuser-install -f<br />
<br />
=== Making Zsh your default shell ===<br />
<br />
See [[Command-line shell#Changing your default shell]].<br />
<br />
{{Tip|If replacing {{Pkg|bash}}, users may want to move some code from {{ic|~/.bashrc}} to {{ic|~/.zshrc}} (e.g. the prompt and the [[Bash#Aliases|aliases]]) and from {{ic|~/.bash_profile}} to {{ic|~/.zprofile}} (e.g. [[xinitrc#Autostart X at login|the code that starts the X Window System]]).}}<br />
<br />
== Startup/Shutdown files ==<br />
<br />
{{Note|<br />
* If {{ic|$ZDOTDIR}} is not set, {{ic|$HOME}} is used instead.<br />
* If option {{ic|RCS}} is unset in any of the files, no configuration files will be sourced after that file.<br />
* If option {{ic|GLOBAL_RCS}} is unset in any of the files, no global configuration files ({{ic|/etc/zsh/*}}) will be sourced after that file.<br />
}}<br />
<br />
When starting Zsh, it'll source the following files in this order by default:<br />
;{{ic|/etc/zsh/zshenv}}:Used for setting system-wide [[environment variables]]; it should not contain commands that produce output or assume the shell is attached to a tty. This file will '''''always''''' be sourced, this cannot be overridden.<br />
;{{ic|$ZDOTDIR/.zshenv}}:Used for setting user's environment variables; it should not contain commands that produce output or assume the shell is attached to a tty. This file will '''''always''''' be sourced.<br />
;{{ic|/etc/zsh/zprofile}}:Used for executing commands at start, will be sourced when starting as a '''''login shell'''''. Please note that on Arch Linux, by default it contains [https://projects.archlinux.org/svntogit/packages.git/tree/trunk/zprofile?h=packages/zsh one line] which source the {{ic|/etc/profile}}.<br />
:;{{ic|/etc/profile}}:This file should be sourced by all Bourne-compatible shells upon login: it sets up {{ic|$PATH}} and other environment variables and application-specific ({{ic|/etc/profile.d/*.sh}}) settings upon login.<br />
;{{ic|$ZDOTDIR/.zprofile}}:Used for executing user's commands at start, will be sourced when starting as a '''''login shell'''''.<br />
;{{ic|/etc/zsh/zshrc}}:Used for setting interactive shell configuration and executing commands, will be sourced when starting as a '''''interactive shell'''''.<br />
;{{ic|$ZDOTDIR/.zshrc}}:Used for setting user's interactive shell configuration and executing commands, will be sourced when starting as a '''''interactive shell'''''.<br />
;{{ic|/etc/zsh/zlogin}}:Used for executing commands at ending of initial progress, will be sourced when starting as a '''''login shell'''''.<br />
;{{ic|$ZDOTDIR/.zlogin}}:Used for executing user's commands at ending of initial progress, will be sourced when starting as a '''''login shell'''''.<br />
;{{ic|$ZDOTDIR/.zlogout}}:Will be sourced when a '''''login shell''''' '''exits'''.<br />
;{{ic|/etc/zsh/zlogout}}:Will be sourced when a '''''login shell''''' '''exits'''.<br />
<br />
{{Note|<br />
* The paths used in Arch's {{Pkg|zsh}} package are different from the default ones used in the [[man page]]s ({{Bug|48992}})<br />
* {{ic|/etc/profile}} is not a part of the regular list of startup files run for Zsh, but is sourced from {{ic|/etc/zsh/zprofile}} in the {{Pkg|zsh}} package. Users should take note that {{ic|/etc/profile}} sets the {{ic|$PATH}} variable which will overwrite any {{ic|$PATH}} variable set in {{ic|$ZDOTDIR/.zshenv}}. To prevent this, please set the {{ic|$PATH}} variable in {{ic|$ZDOTDIR/.zprofile}}<br />
}}<br />
{{Warning|It is not recommended to replace the default [https://projects.archlinux.org/svntogit/packages.git/tree/trunk/zprofile?h&#61;packages/zsh one line] in {{ic|/etc/zsh/zprofile}} with something other, it'll break the integrality of other packages which provide some scripts in {{ic|/etc/profile.d}}}}<br />
<br />
== Configure Zsh ==<br />
<br />
Although Zsh is usable out of the box, it is almost certainly not set up the way most users would like to use it, but due to the sheer amount of customization available in Zsh, configuring Zsh can be a daunting and time-consuming experience.<br />
<br />
=== Simple .zshrc ===<br />
<br />
Included below is a sample configuration file, it provides a decent set of default options as well as giving examples of many ways that Zsh can be customized. In order to use this configuration save it as a file named {{ic|.zshrc}}.<br />
<br />
{{Tip|Apply the changes without needing to logout and then back in by running {{ic|source ~/.zshrc}}}}<br />
<br />
Here is a simple {{ic|.zshrc}}:<br />
<br />
{{hc|~/.zshrc|<br />
autoload -Uz compinit promptinit<br />
compinit<br />
promptinit<br />
<br />
# This will set the default prompt to the walters theme<br />
prompt walters}}<br />
<br />
=== Configuring $PATH ===<br />
<br />
Normally, the path should be set in {{ic|~/.zshenv}}, but Arch Linux sources {{ic|/etc/profile}} after sourcing {{ic|~/.zshenv}}.<br />
<br />
To prevent your $PATH being overwritten, set it in {{ic|~/.zprofile}}.<br />
<br />
{{hc|~/.zprofile|<br />
typeset -U path<br />
path&#61;(~/bin /other/things/in/path $path[@])}}<br />
<br />
See also [http://zsh.sourceforge.net/Guide/zshguide02.html#l24 A User's Guide to the Z-Shell] and the note in [[#Startup/Shutdown files]].<br />
<br />
=== Command completion ===<br />
<br />
Perhaps the most compelling feature of Zsh is its advanced autocompletion abilities. At the very least, enable autocompletion in {{ic|.zshrc}}. To enable autocompletion, add the following to your {{ic|~/.zshrc}}:<br />
<br />
{{hc|~/.zshrc|<br />
autoload -Uz compinit<br />
compinit<br />
}}<br />
<br />
The above configuration includes ssh/scp/sftp hostnames completion but in order for this feature to work, users need to prevent ssh from hashing hosts names in {{ic|~/.ssh/known_hosts}}.<br />
{{Warning|This makes the computer vulnerable to [http://blog.rootshell.be/2010/11/03/bruteforcing-ssh-known_hosts-files/ "Island-hopping" attacks]. In that intention, comment the following line or set the value to {{ıc|no}}:<br />
{{hc|/etc/ssh/ssh_config|<br />
#HashKnownHosts yes}}<br />
And move {{ic|~/.ssh/known_hosts}} somewhere else so that ssh creates a new one with un-hashed hostnames (previously known hosts will thus be lost). For more information, see the SSH readme for [http://nms.lcs.mit.edu/projects/ssh/README.hashed-hosts hashed-hosts].<br />
}}<br />
<br />
For autocompletion with an arrow-key driven interface, add the following to:<br />
{{hc|~/.zshrc|<br />
zstyle ':completion:*' menu select}}<br />
:''To activate the menu, press tab twice.''<br />
<br />
For autocompletion of command line switches for aliases, add the following to:<br />
{{hc|~/.zshrc|<br />
setopt COMPLETE_ALIASES}}<br />
<br />
=== Autostart X at login ===<br />
See [[Xinitrc#Autostart X at login]].<br />
<br />
=== The "command not found" hook ===<br />
<br />
See [[Pkgfile#Command not found]].<br />
<br />
=== The ttyctl command ===<br />
<br />
[http://zsh.sourceforge.net/Doc/Release/Shell-Builtin-Commands.html#index-tty_002c-freezing] describes the {{ic|ttyctl}} command in Zsh.<br />
This may be used to "freeze/unfreeze" the terminal.<br />
Many programs change the terminal state, and often do not restore terminal settings on exiting abnormally.<br />
To avoid the need to manually reset the terminal, use the following:<br />
<br />
{{hc|~/.zshrc|<br />
ttyctl -f}}<br />
<br />
=== Key bindings ===<br />
<br />
Zsh does not use readline, instead it uses its own and more powerful zle. It does not read {{ic|/etc/inputrc}} or {{ic|~/.inputrc}}.<br />
Zle has an [[emacs]] mode and a [[vi]] mode. If one of the {{ic|$VISUAL}} or {{ic|$EDITOR}} environment variables contain the string {{ic|vi}} then vi mode will be used; otherwise, it will default to emacs mode. Set the mode explicitly with {{ic|bindkey -e}} or {{ic|bindkey -v}} respectively for emacs mode or vi mode.<br />
<br />
See also [http://zshwiki.org/home/zle/bindkeys zshwiki: bindkeys].<br />
<br />
==== Bind key to ncurses application ====<br />
<br />
Bind a ncurses application to a keystoke, but it will not accept interaction. Use {{ic|BUFFER}} variable to make it work. The following example lets users open ncmpcpp using {{ic|Alt+\}}:<br />
{{hc|~/.zshrc|2=<br />
ncmpcppShow() { BUFFER="ncmpcpp"; zle accept-line; }<br />
zle -N ncmpcppShow<br />
bindkey '^[\' ncmpcppShow<br />
}}<br />
<br />
==== Alternate way to bind ncurses application ====<br />
<br />
This method will keep everything you entered in the line before calling application<br />
{{hc|~/.zshrc|2=<br />
ncmpcppShow() { ncmpcpp <$TTY; zle redisplay; }<br />
zle -N ncmpcppShow<br />
bindkey '^[\' ncmpcppShow<br />
}}<br />
<br />
==== File manager key binds ====<br />
<br />
Key binds like those used in graphic file managers may come handy. The first comes back in directory history ({{ic|Alt+Left}}), the second let the user go to the parent directory ({{ic|Alt+Up}}). They also display the directory content.<br />
<br />
{{hc|~/.zshrc|<nowiki><br />
cdUndoKey() {<br />
popd > /dev/null<br />
zle reset-prompt<br />
echo<br />
ls<br />
echo<br />
}<br />
<br />
cdParentKey() {<br />
pushd .. > /dev/null<br />
zle reset-prompt<br />
echo<br />
ls<br />
echo<br />
}<br />
<br />
zle -N cdParentKey<br />
zle -N cdUndoKey<br />
bindkey '^[[1;3A' cdParentKey<br />
bindkey '^[[1;3D' cdUndoKey<br />
</nowiki>}}<br />
<br />
=== History search ===<br />
<br />
Add these lines to .zshrc<br />
<br />
{{hc|~/.zshrc|<nowiki><br />
autoload -Uz up-line-or-beginning-search down-line-or-beginning-search<br />
zle -N up-line-or-beginning-search<br />
zle -N down-line-or-beginning-search<br />
<br />
[[ -n "${key[Up]}" ]] && bindkey "${key[Up]}" up-line-or-beginning-search<br />
[[ -n "${key[Down]}" ]] && bindkey "${key[Down]}" down-line-or-beginning-search<br />
</nowiki>}}<br />
<br />
Doing this, only past commands matching the current line up to the current cursor position will be shown.<br />
<br />
=== Prompts ===<br />
<br />
==== Prompt themes ====<br />
<br />
There is a quick and easy way to set up a colored prompt in Zsh. Make sure that prompt theme system is set to autoload in {{ic|.zshrc}}. This can be done by adding these lines to:<br />
<br />
{{hc|~/.zshrc|<br />
autoload -Uz promptinit<br />
promptinit<br />
}}<br />
<br />
Available prompt themes are listed by running the command:<br />
<br />
$ prompt -l<br />
<br />
For example, to use the {{ic|walters}} theme, enter:<br />
<br />
$ prompt walters<br />
<br />
To preview all available themes, use this command:<br />
<br />
$ prompt -p<br />
<br />
==== Customized prompt ====<br />
<br />
For users who are dissatisfied with the prompts mentioned above (or want to expand their usefulness), Zsh offers the possibility to build a custom prompt. Zsh supports a left- and right-sided prompt additional to the single, left-sided prompt that is common to all shells. Customize it by using {{ic|1=PROMPT=}} with prompt escapes.<br />
<br />
See [http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html Prompt Expansion] for a list of prompt variables and conditional substrings, or take a look at the zshmisc(1) manpage.<br />
<br />
===== Colors =====<br />
<br />
Zsh sets colors differently than [[Color_Bash_Prompt|Bash]]. Add {{ic|autoload -Uz colors && colors}} before {{ic|1=PROMPT=}} in {{ic|.zshrc}} to use them. Usually you will want to put these inside {{ic|%{ [...] %} }} so the cursor does not move.<br />
<br />
{| class="wikitable"<br />
! Command !! Description<br />
|-<br />
| {{ic|$fg[color]}} || will set the text color (red, green, blue, etc. - defaults to whatever format set prior to text)<br />
|-<br />
| {{ic|%F{color} [...] %f}} || effectively the same as the previous, but with less typing. Can also prefix F with a number instead.<br />
|-<br />
| {{ic|$fg_no_bold[color]}} || will set text to non-bold and set the text color<br />
|-<br />
| {{ic|$fg_bold[color]}} || will set the text to bold and set the text color<br />
|-<br />
| {{ic|$reset_color}} || will reset the text color to the default color. Does not reset bold. use {{ic|%b}} to reset bold. Saves typing if it's just {{ic|%f}} though.<br />
|-<br />
| {{ic|%K{color} [...] %k}} || will set the background color. Same color as non-bold text color. Prefixing with any single-digit number makes the bg black.<br />
|-<br />
| {{ic|%S [...] %s}} || Standout mode, switches the text and background colors. Useful for Powerline-like prompts, especially if you switch between light/dark backgrounds.<br />
|}<br />
<br />
{| class="wikitable"<br />
|-<br />
! colspan="2" | Possible color values<br />
|-<br />
| {{ic|black}} or {{ic|0}} || {{ic|red}} or {{ic|1}}<br />
|-<br />
| {{ic|green}} or {{ic|2}} || {{ic|yellow}} or {{ic|3}}<br />
|-<br />
| {{ic|blue}} or {{ic|4}} || {{ic|magenta}} or {{ic|5}}<br />
|-<br />
| {{ic|cyan}} or {{ic|6}} || {{ic|white}} or {{ic|7}}<br />
|}<br />
<br />
{{Note| Bold text does not necessarily use the same colors as normal text. For example, {{ic|$fg['yellow']}} looks brown or a very dark yellow, while {{ic|$fg_bold['yellow']}} looks like bright or regular yellow.}}<br />
<br />
===== Example =====<br />
<br />
This is an example of a two-sided prompt:<br />
<br />
PROMPT="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg_no_bold[yellow]%}%1~ %{$reset_color%}%# "<br />
RPROMPT="[%{$fg_no_bold[yellow]%}%?%{$reset_color%}]"<br />
<br />
And here's how it will be displayed:<br />
<br />
username@host ~ % [0]<br />
<br />
=== Remembering recent directories ===<br />
<br />
==== Dirstack ====<br />
<br />
Zsh can be configured to remember the DIRSTACKSIZE last visited folders. This can then be used to ''cd'' them very quickly. You need to add some lines to your configuration file:<br />
<br />
{{hc|.zshrc|<nowiki><br />
DIRSTACKFILE="$HOME/.cache/zsh/dirs"<br />
if [[ -f $DIRSTACKFILE ]] && [[ $#dirstack -eq 0 ]]; then<br />
dirstack=( ${(f)"$(< $DIRSTACKFILE)"} )<br />
[[ -d $dirstack[1] ]] && cd $dirstack[1]<br />
fi<br />
chpwd() {<br />
print -l $PWD ${(u)dirstack} >$DIRSTACKFILE<br />
}<br />
<br />
DIRSTACKSIZE=20<br />
<br />
setopt AUTO_PUSHD PUSHD_SILENT PUSHD_TO_HOME<br />
<br />
## Remove duplicate entries<br />
setopt PUSHD_IGNORE_DUPS<br />
<br />
## This reverts the +/- operators.<br />
setopt PUSHD_MINUS<br />
</nowiki>}}<br />
<br />
Now use<br />
$ dirs -v<br />
to print the dirstack. Use {{ic|cd -<NUM>}} to go back to a visited folder. Use autocompletion after the dash. This proves very handy if using the autocompletion menu.<br />
<br />
{{Note|This will not work if you have more than one ''zsh'' session open, and attempt to {{ic|cd}}, due to a conflict in both sessions writing to the same file.}}<br />
<br />
==== cdr ====<br />
<br />
cdr allows you to change the working directory to a previous working directory from a list maintained automatically. It stores all entries in files that are maintained across sessions and (by default) between terminal emulators in the current session.<br />
To use cdr add the following lines to shell configuration:<br />
{{hc|.zshrc|<br />
autoload -Uz chpwd_recent_dirs cdr add-zsh-hook<br />
add-zsh-hook chpwd chpwd_recent_dirs<br />
}}<br />
<br />
Recent directories list by default is stored in {{ic|${ZDOTDIR:-$HOME}/.chpwd-recent-dirs}}, to change it use {{ic|zstyle}}:<br />
zstyle ':chpwd:*' recent-dirs-file "${XDG_CACHE_HOME:-$HOME/.cache}/zsh/chpwd-recent-dirs"<br />
<br />
Every time you change directory interactively, no matter which command you use, the directory to which you change will be remembered in most-recent-first order.<br />
<br />
To print the list of recent directories use:<br />
$ cdr -l<br />
<br />
Use {{ic|cdr <NUM>}} to go back to a visited folder. Completion for the argument to cdr is available if compinit has been run; menu selection is recommended.<br />
<br />
=== Help command ===<br />
Unlike [[bash]], ''zsh'' does not enable a built in {{ic|help}} command. To use {{ic|help}} in zsh, add following to your {{ic|zshrc}}:<br />
<br />
{{bc|1=<br />
autoload -Uz run-help<br />
autoload -Uz run-help-git<br />
autoload -Uz run-help-svn<br />
autoload -Uz run-help-svk<br />
unalias run-help<br />
alias help=run-help<br />
}}<br />
<br />
=== Fish-like syntax highlighting ===<br />
<br />
[[Fish]] provides a very powerful shell syntax highlighting. To use this in zsh, you can install {{pkg|zsh-syntax-highlighting}} from offical repository and add following to your zshrc:<br />
{{bc|<br />
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh<br />
}}<br />
<br />
=== Sample .zshrc files ===<br />
<br />
* A package in offical repository named {{Pkg|grml-zsh-config}} comes from https://grml.org/zsh and provides a zshrc file that includes many tweaks for Zshell. This is the default configuration for the [https://www.archlinux.org/download/ monthly ISO releases].<br />
* https://github.com/MrElendig/dotfiles-alice/blob/master/.zshrc - basic setup, with dynamic prompt and window title/hardinfo.<br />
* https://github.com/slashbeast/things/blob/master/configs/DOTzshrc - zshrc with multiple features, be sure to check out comments into it. Notable features: confirm function to ensure that user want to run poweroff, reboot or hibernate, support for GIT in prompt (done without vcsinfo), tab completion with menu, printing current executed command into window's title bar and more.<br />
<br />
See [[dotfiles#Repositories]] for more.<br />
<br />
=== Configuration Frameworks ===<br />
{{Style|List needs to be changed to [[Template:App]].}}<br />
<br />
* [https://github.com/zsh-users/antigen Antigen] (available as {{AUR|antigen-git}}) - A plugin manager for zsh, inspired by oh-my-zsh and vundle.<br />
* [https://github.com/robbyrussell/oh-my-zsh oh-my-zsh] is a popular, community-driven framework for managing your Zsh configuration. It comes bundled with a ton of helpful functions, helpers, plugins, themes. Note, for themes work you may need to set <code>setopt noglobalrcs</code> in the <code>~/.zshenv</code> file, otherwise changes to some variables <i>(such as $PROMPT)</i> may be overwritten.<br />
* [https://github.com/sorin-ionescu/prezto Prezto - Instantly Awesome Zsh] (available as {{AUR|prezto-git}}) is a configuration framework for Zsh. It comes with modules, enriching the command line interface environment with sane defaults, aliases, functions, auto completion, and prompt themes.<br />
<br />
=== Persistent rehash ===<br />
<br />
Typically, compinit will not automatically find new executables in the $PATH. For example, after you install a new package, the files in /usr/bin would not be immediately or automatically included in the completion. Thus, to have these new exectuables included, one would run:<br />
$ rehash<br />
<br />
This 'rehash' can be set to happen automatically. Simply include the following in your {{ic|zshrc}}:<br />
<br />
{{hc|~/.zshrc|zstyle ':completion:*' rehash true}}<br />
<br />
{{Note|This hack has been found in a PR for Oh My Zsh [https://github.com/robbyrussell/oh-my-zsh/issues/3440]}}<br />
<br />
== Uninstallation ==<br />
<br />
Change the default shell before removing the {{Pkg|zsh}} package.<br />
<br />
{{Warning|Failure to follow the below procedure may result in users no longer having access to a working shell.}}<br />
<br />
Run following command:<br />
<br />
$ chsh -s /bin/bash ''user''<br />
<br />
Use it for every user with ''zsh'' set as their login shell (including root if needed). When completed, the {{Pkg|zsh}} package can be removed.<br />
<br />
Alternatively, change the default shell back to Bash by editing {{ic|/etc/passwd}} as root.<br />
<br />
{{Warning|It is strongly recommended to use {{ic|vipw}} when editing {{ic|/etc/passwd}} as it helps prevent invalid entries and/or syntax errors.}}<br />
<br />
For example, change the following:<br />
<br />
''username'':x:1000:1000:''Full Name'',,,:/home/''username'':/bin/zsh<br />
<br />
To this:<br />
<br />
''username'':x:1000:1000:''Full Name'',,,:/home/''username'':/bin/bash<br />
<br />
== See also ==<br />
<br />
*[http://zsh.sourceforge.net/Guide/zshguide.html A User's Guide to ZSH]<br />
*[http://zsh.sourceforge.net/Doc/Release/index-frame.html The Z Shell Manual] (different format available [http://zsh.sourceforge.net/Doc/ here])<br />
*[http://zsh.sourceforge.net/FAQ/zshfaq01.html Zsh FAQ]<br />
*{{man|1|zsh-lovers|url=https://grml.org/zsh/zsh-lovers.html}} (available as {{pkg|zsh-lovers}} package)<br />
*[http://zshwiki.org/home/ Zsh Wiki]<br />
*[https://wiki.gentoo.org/wiki/Zsh/HOWTO Gentoo Wiki: Zsh/HOWTO]<br />
*[http://www.bash2zsh.com/zsh_refcard/refcard.pdf Bash2Zsh Reference Card]</div>Hi-Angelhttps://wiki.archlinux.org/index.php?title=Debugging/Getting_traces&diff=451454Debugging/Getting traces2016-09-22T07:52:40Z<p>Hi-Angel: important note on building without optimizations</p>
<hr />
<div>[[Category:Package development]]<br />
[[ja:デバッグ - トレースを取得]]<br />
[[ru:Debug - Getting Traces]]<br />
[[zh-cn:Debug - Getting Traces]]<br />
{{Related articles start}}<br />
{{Related|General troubleshooting}}<br />
{{Related|Reporting bug guidelines}}<br />
{{Related|Step-by-step debugging guide}}<br />
{{Related articles end}}<br />
This article aims to help in creating a debugging Arch package and using it to provide trace and debug information for reporting software bugs to developers.<br />
<br />
== Package names ==<br />
<br />
{{Poor writing|"call the function", "stack trace", gdb is only mentioned later in the article -> unclear introduction}}<br />
<br />
When looking at debug messages, such as:<br />
<br />
[...]<br />
Backtrace was generated from '/usr/bin/epiphany'<br />
<br />
'''(no debugging symbols found)'''<br />
Using host libthread_db library "/lib/libthread_db.so.1".<br />
'''(no debugging symbols found)'''<br />
[Thread debugging using libthread_db enabled]<br />
[New Thread -1241265952 (LWP 12630)]<br />
(no debugging symbols found)<br />
0xb7f25410 in __kernel_vsyscall ()<br />
#0 0xb7f25410 in __kernel_vsyscall ()<br />
#1 0xb741b45b in '''??''' () from /lib/libpthread.so.0<br />
[...]<br />
<br />
{{ic|??}} shows where debugging info is missing, as well as the name of library or executable which called the function. Similarly, when {{ic|(no debugging symbols found)}} appears, you should look for the stated file names. For example, with [[pacman]]:<br />
<br />
# pacman -Qo /lib/libthread_db.so.1<br />
/lib/libthread_db.so.1 is owned by ''glibc'' 2.5-8<br />
<br />
The package is called {{Pkg|glibc}} in version 2.5-8. Repeat this step for every package that needs debugging.<br />
<br />
== PKGBUILD ==<br />
<br />
In order to build a package from source, the PKGBUILD file is required. See [[ABS]] for packages in the [[official repositories]], and [[AUR#Acquire build files]] for packages in the [[AUR]].<br />
<br />
== Compilation settings ==<br />
<br />
At this stage, you can modify the global configuration file of {{ic|makepkg}} if you will be using it only for debug purposes. In other cases, you should modify package's PKGBUILD file only for each package you would like to rebuild.<br />
<br />
=== General ===<br />
<br />
As of pacman 4.1, {{ic|/etc/makepkg.conf}} has debug compilation flags in {{ic|DEBUG_CFLAGS}} and {{ic|DEBUG_CXXFLAGS}}. To use them, enable the {{ic|debug}} makepkg option, and disable {{ic|strip}}.<br />
<br />
OPTIONS+=(debug !strip)<br />
<br />
These settings will force compilation with debugging information and will disable the stripping of debug symbols from executables. To apply this setting to a single package, modify the PKGBUILD:<br />
<br />
options=(debug !strip)<br />
<br />
{{Note| {{ic|debug}} in addition to DEBUG_* conterparts, would also add flags from CFLAGS and CXXFLAGS, which might not be what you want, as these flags usually contains optimisations. One way to mitigate this [https://bugs.archlinux.org/task/50861#comment151164 is by putting]<br />
<br />
{{ic|1=CFLAGS=""}} <br />
{{ic|1=CXXFLAGS=""}}<br />
<br />
at the beginning of the {{ic|PKGBUILD}} file. This way isn't documented, and may break at some point though.<br />
Another one is to use a separate config file instead of the {{ic|/etc/makepkg.conf}}, by pointing at it like {{ic|makepkg --config my-other-config}}.}}<br />
<br />
Alternatively you can put the debug information in a separate package by enabling both {{ic|debug}} and {{ic|strip}}, debugging information will then be stripped from the main package and placed in a separate {{ic|''foo''-debug}} package.<br />
<br />
{{Note|It is insufficient to simply install the newly compiled debug package, because the debugger will check that the file containing the debug symbols is from the same build as the associated library and executable. You must install both of the recompiled packages. In Arch, the debug symbols files are installed under {{ic|/usr/lib/debug}}. See the [https://sourceware.org/gdb/onlinedocs/gdb/Separate-Debug-Files.html GDB documentation] <br />
for more information about debug packages.}}<br />
<br />
Note that certain packages such as ''glibc'' are stripped regardless. Check the PKGBUILD for sections such as:<br />
<br />
{{bc|<nowiki><br />
strip $STRIP_BINARIES usr/bin/{gencat,getconf,getent,iconv,iconvconfig} \<br />
usr/bin/{ldconfig,locale,localedef,nscd,makedb} \<br />
usr/bin/{pcprofiledump,pldd,rpcgen,sln,sprof} \<br />
usr/lib/getconf/*<br />
[[ $CARCH = "i686" ]] && strip $STRIP_BINARIES usr/bin/lddlibc4<br />
<br />
strip $STRIP_STATIC usr/lib/*.a<br />
<br />
strip $STRIP_SHARED usr/lib/{libanl,libBrokenLocale,libcidn,libcrypt}-*.so \<br />
usr/lib/libnss_{compat,db,dns,files,hesiod,nis,nisplus}-*.so \<br />
usr/lib/{libdl,libm,libnsl,libresolv,librt,libutil}-*.so \<br />
usr/lib/{libmemusage,libpcprofile,libSegFault}.so \<br />
usr/lib/{audit,gconv}/*.so<br />
</nowiki>}}<br />
<br />
And remove them where appropriate.<br />
<br />
=== Qt4 ===<br />
<br />
In addition to the previous general settings, pass {{ic|-developer-build}} option to the {{ic|configure}} script in the {{ic|PKGBUILD}}. By default, {{ic|-developer-build}} passes {{ic|-Werror}} to the compiler, which may cause the compilation to fail. To avoid compilation errors, you may need pass {{ic|-no-warnings-are-errors}}, too.<br />
<br />
=== Qt5 ===<br />
<br />
The [[Unofficial_user_repositories#qt-debug|qt-debug]] repository contains pre-built Qt/PyQt packages with debug symbols. See also [http://doc.qt.io/qt-5/debug.html upstream] instructions.<br />
<br />
=== CMAKE (KDE) applications ===<br />
<br />
[[KDE]] and related programs typically use {{Pkg|cmake}}. To enable debug information and disable optimisations, change {{ic|-DCMAKE_BUILD_TYPE}} to {{ic|Debug}}.<br />
To enable debug information while keeping optimisations enabled, change {{ic|-DCMAKE_BUILD_TYPE}} to {{ic|RelWithDebInfo}}.<br />
<br />
== Building and installing the package ==<br />
<br />
Build the package from source using {{ic|makepkg}} while in the PKGBUILD's directory. This could take some time:<br />
<br />
# makepkg<br />
<br />
Then install the built package:<br />
<br />
# pacman -U glibc-2.5-8-i686.pkg.tar.gz<br />
<br />
== Getting the trace ==<br />
<br />
{{Expansion|Mention core dumps}}<br />
<br />
The actual backtrace (or stack trace) can now be obtained via e.g. {{Pkg|gdb}}, the GNU Debugger. Run it either via:<br />
<br />
# gdb /path/to/file<br />
<br />
or:<br />
<br />
# gdb<br />
(gdb) exec /path/to/file<br />
<br />
The path is optional, if already set in the {{Ic|$PATH}} variable.<br />
<br />
Then, within {{Ic|gdb}}, type {{Ic|run}} followed by any arguments you wish the program to start with, e.g.:<br />
<br />
(gdb) run --no-daemon --verbose<br />
<br />
to start execution of the file. Do whatever necessary to evoke the bug. For the actual log, type the lines:<br />
<br />
(gdb) set logging file trace.log<br />
(gdb) set logging on<br />
<br />
and then:<br />
<br />
(gdb) thread apply all bt full<br />
<br />
to output the trace to {{Ic|trace.log}} into the directory {{Ic|gdb}} was started in. To exit, enter:<br />
<br />
(gdb) set logging off<br />
(gdb) quit<br />
<br />
{{Tip| To debug an application written in python:<br />
# gdb /usr/bin/python<br />
(gdb) run <python application><br />
}}<br />
<br />
You can also debug an already running application, e.g.:<br />
<br />
# gdb --pid=$(pidof firefox)<br />
(gdb) continue<br />
<br />
== Conclusion ==<br />
<br />
Use the complete stack trace to inform developers of a bug you have discovered before. This will be highly appreciated by them and will help to improve your favorite program.<br />
<br />
== See also ==<br />
<br />
* [https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces Gentoo Wiki - Backtraces with Gentoo]<br />
* [http://fedoraproject.org/wiki/StackTraces Fedora - StackTraces]<br />
* [https://wiki.gnome.org/Community/GettingInTouch/Bugzilla/GettingTraces/Details#obtain-a-stacktrace GNOME - Getting Stack Traces]<br />
* [http://linux.bytesex.org/gdb.html gdb mini intro]</div>Hi-Angel