https://wiki.archlinux.org/api.php?action=feedcontributions&user=Paraknight&feedformat=atomArchWiki - User contributions [en]2024-03-28T23:05:52ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Talk:Neovim&diff=458320Talk:Neovim2016-12-03T12:23:59Z<p>Paraknight: Suggest info on Python support</p>
<hr />
<div>== Info on Python support ==<br />
<br />
In a new section? I do believe it is useful to have on this page in one form or other.<br />
<br />
-- [[User:Paraknight|Paraknight]] ([[User talk:Paraknight|talk]]) 12:23, 3 December 2016 (UTC)</div>Paraknighthttps://wiki.archlinux.org/index.php?title=Neovim&diff=458318Neovim2016-12-03T12:00:13Z<p>Paraknight: /* Configuration */ Add useful info on Python support that isn't documented anywhere else</p>
<hr />
<div>[[Category:Development]]<br />
[[Category:Text editors]]<br />
[[ja:Neovim]]<br />
Neovim is a fork of [[Vim]] aiming to improve user experience, plugins, and GUIs.<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{Pkg|neovim}} package. <br />
<br />
== Configuration ==<br />
<br />
=== Transition from vim ===<br />
<br />
Neovim uses {{ic|$XDG_CONFIG_HOME/nvim}} instead of {{ic|~/.vim}} as its main configuration directory and {{ic|$XDG_CONFIG_HOME/nvim/init.vim}} instead of {{ic|~/.vimrc}} as its main configuration file.<br />
<br />
See [https://neovim.io/doc/user/nvim.html#nvim-from-vim nvim-from-vim] or the {{ic|:help nvim-from-vim}} neovim command to use your vim configuration in neovim.<br />
<br />
==== Loading vim addons ====<br />
<br />
If you would like to use plugins, syntax definitions, or other addons that are installed for vim, you can add the default vim runtime path to neovim by adding it to the {{ic|rtp}}. For example, you could run the following within nvim or add it to your neovim config:<br />
<br />
set rtp^=/usr/share/vim/vimfiles/<br />
<br />
==== Python support ====<br />
<br />
Certain plugins (e.g. {{ic|YouCompleteMe}}) require that vim be compiled with python support. There are instructions for using python plugins in neovim under {{ic|:help provider-python}}, but a simpler alternative is to install {{Pkg|python-neovim}} from the official repo.<br />
<br />
== Tips and tricks ==<br />
<br />
=== Replacing vi and vim with neovim ===<br />
<br />
Setting {{ic|$VISUAL}} and {{ic|$EDITOR}} [[environment variables]] should be sufficient in most cases. <br />
<br />
Some applications may hardcode vi or vim as default editor, to use ''neovim'' in their place, install {{AUR|neovim-drop-in}}.<br />
<br />
== See also ==<br />
<br />
* [https://neovim.io/ Homepage]<br />
* [https://github.com/neovim/neovim Github repository]<br />
* [https://github.com/neovim/neovim/wiki Github wiki]</div>Paraknighthttps://wiki.archlinux.org/index.php?title=Wireshark&diff=448667Wireshark2016-08-29T23:23:49Z<p>Paraknight: Add caveat on Qt vs GTK to help troubleshooting</p>
<hr />
<div>[[Category:Security]]<br />
[[Category:Networking]]<br />
[[fr:Wireshark]]<br />
[[ja:Wireshark]]<br />
[[ru:Wireshark]]<br />
[[zh-CN:Wireshark]]<br />
Wireshark is a free and open-source packet analyzer. It is used for network troubleshooting, analysis, software and communications protocol development, and education. Originally named Ethereal, in May 2006 the project was renamed Wireshark due to trademark issues.<br />
<br />
==Installation==<br />
<br />
The wireshark package has been split into the CLI version as well as GTK and Qt frontends, which depend on the CLI.<br />
<br />
{{Warning | The Qt frontend, along with missing some features, is also not as stable as the GTK frontend. If you have issues with listing network interfaces, enabling monitor mode, and/or permissions, even after setting everything up correctly, try using the GTK version and see if your issues persist.}}<br />
<br />
* CLI version - [[pacman|Install]] package {{Pkg|wireshark-cli}}.<br />
* GTK frontend - [[pacman|Install]] package {{Pkg|wireshark-gtk}}.<br />
* Qt frontend - [[pacman|Install]] package {{Pkg|wireshark-qt}}.<br />
<br />
== Capturing as normal user ==<br />
<br />
Running Wireshark as root is insecure.<br />
<br />
Arch Linux uses<br />
[http://wiki.wireshark.org/CaptureSetup/CapturePrivileges#Other_Linux_based_systems_or_other_installation_methods method from Wireshark wiki]<br />
to separate privileges. When {{Pkg|wireshark-cli}} is installed, [[PKGBUILD#install|install script]] sets {{ic|/usr/bin/dumpcap}} capabilities.<br />
<br />
{{hc|$ getcap /usr/bin/dumpcap|2=<br />
/usr/bin/dumpcap = cap_net_admin,cap_net_raw+eip<br />
}}<br />
<br />
{{ic|/usr/bin/dumpcap}} is the only process that has privileges to<br />
capture packets. {{ic|/usr/bin/dumpcap}} can only be run by root and<br />
members of the {{ic|wireshark}} group.<br />
<br />
There are two methods to capture as a normal user :<br />
=== Add the user to the wireshark group===<br />
To use wireshark as a normal user, add user to the {{ic|wireshark}} [[group]].<br />
<br />
=== Use sudo ===<br />
You can use [[sudo]] to temporarily change group to <br />
{{ic|wireshark}}. The following line allows all users in the wheel<br />
group to run programs with GID set to wireshark GID:<br />
<br />
{{bc|1=%wheel ALL=(:wireshark) /usr/bin/wireshark, /usr/bin/tshark}}<br />
<br />
Then run wireshark with<br />
{{bc|$ sudo -g wireshark wireshark}}<br />
<br />
==A few capturing techniques==<br />
<br />
There are a number of different ways to capture exactly what you are looking for in Wireshark, by applying filters.<br />
<br />
{{Note|To learn the filter syntax, see man pcap-filter(7).}}<br />
<br />
===Filtering TCP packets===<br />
If you want to see all the current TCP packets, type {{ic|tcp}} into the "Filter" bar or in the CLI, enter:<br />
<br />
$ tshark -f "tcp"<br />
<br />
===Filtering UDP packets===<br />
If you want to see all the current UDP packets, type {{ic|udp}} into the "Filter" bar or in the CLI, enter:<br />
<br />
$ tshark -f "udp"<br />
<br />
===Filter packets to a specific IP Address===<br />
* If you would like to see all the traffic going to a specific address, enter {{ic|<nowiki>ip.dst == 1.2.3.4</nowiki>}}, replacing {{ic|1.2.3.4}} with the IP address the outgoing traffic is being sent to.<br />
<br />
* If you would like to see all the incoming traffic for a specific address, enter {{ic|<nowiki>ip.src == 1.2.3.4</nowiki>}}, replacing {{ic|1.2.3.4}} with the IP address the incoming traffic is being sent to.<br />
<br />
* If you would like to see all the incoming and outgoing traffic for a specific address, enter {{ic|<nowiki>ip.addr == 1.2.3.4</nowiki>}}, replacing {{ic|1.2.3.4}} with the relevant IP address.</div>Paraknighthttps://wiki.archlinux.org/index.php?title=Talk:Wireshark&diff=448666Talk:Wireshark2016-08-29T23:19:13Z<p>Paraknight: /* Qt interface */ Comment on Qt vs GTK</p>
<hr />
<div>==Capturing as normal user==<br />
I also had to run:<br />
# setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap<br />
But I'm not quite sure what it does... I just copy & paste the command from this [http://wiki.wireshark.org/CaptureSetup/CapturePrivileges#line-85 Wireshark Wiki Page.] --[[User:Humbapa|Humbapa]] 15:33, 7 March 2012 (EST)<br />
<br />
<br />
eip : effective, inheritable, and permitted bitmaps, more details see<br />
https://www.kernel.org/pub/linux/libs/security/linux-privs/kernel-2.2/capfaq-0.2.txt [[User:Romainc|Romainc]] ([[User talk:Romainc|talk]]) 15:52, 15 December 2014 (UTC)<br />
<br />
== Qt interface ==<br />
<br />
The Qt interface is in development and have much less features than GTK interface. I think the article should recomend the GTK version even in KDE desktop.--[[User:Kizar|Kizar]] ([[User talk:Kizar|talk]]) 15:18, 6 February 2015 (UTC)<br />
<br />
:Such recommendations are inherently subjective, but if you want to add a short but objective phrase describing potential issues with the Qt client, feel free. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 15:47, 6 February 2015 (UTC)<br />
<br />
::Not is subjective, the QT interface is new and many features are still missing. I have problems with english language. I you can write it for me I appreciate. --[[User:Kizar|Kizar]] ([[User talk:Kizar|talk]]) 15:53, 6 February 2015 (UTC)<br />
<br />
:::Ok, but it will take me some time as I'd also want to add [[Template:App]]. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 19:19, 6 February 2015 (UTC)<br />
<br />
:Beyond missing features, objective issues include a bug where network interfaces (especially when it comes to using monitor mode) glitch out and the list resets incessantly. Get past that and you might have issues enabling monitor mode through Wireshark on an interface to begin with. Then there are all sorts of permission issues even if you set things up right with the wireshark group etc, and if you sudo to fix those, a whole host of other stuff breaks. I'll go ahead and add a short caveat to the page. Please feel free to edit it. [[User:Paraknight|Paraknight]] ([[User talk:Paraknight|talk]]) 23:18, 29 August 2016 (UTC)</div>Paraknighthttps://wiki.archlinux.org/index.php?title=User:Paraknight&diff=414342User:Paraknight2016-01-03T22:19:30Z<p>Paraknight: </p>
<hr />
<div>[http://amar.io Hi there!]</div>Paraknighthttps://wiki.archlinux.org/index.php?title=User:Paraknight&diff=414341User:Paraknight2016-01-03T22:18:51Z<p>Paraknight: Created page with "[Hi there.](http://amar.io)"</p>
<hr />
<div>[Hi there.](http://amar.io)</div>Paraknighthttps://wiki.archlinux.org/index.php?title=Talk:MacBookPro9,x&diff=414340Talk:MacBookPro9,x2016-01-03T22:18:19Z<p>Paraknight: /* Sound on MacBookPro9,2 */</p>
<hr />
<div>== Sound on MacBookPro9,2 ==<br />
<br />
I've followed the special instructions on how to get Arch running on my MacBook Pro 9,2 (Mid 2012) and they have proven to be very useful.<br />
But on my model, the audio doesn't sound right: Compared to OS X it sounds a little bit like heard through an old telephone.<br />
Does anyone else have / had the problem, or better, has a fix for it? If it's not only me, maybe the fix or notice could then be added to the page.<br />
<br />
:Does this happen both over speakers and the headphone jack? Could you give some more details? Alsa? PulseAudio?<br />
:--[[User:Paraknight|Paraknight]] ([[User talk:Paraknight|talk]]) 22:17, 3 January 2016 (UTC)</div>Paraknighthttps://wiki.archlinux.org/index.php?title=Polipo&diff=391194Polipo2015-08-15T11:31:01Z<p>Paraknight: /* Tor */ Warn against using routing potentially arbitrary traffic through Tor</p>
<hr />
<div>[[Category:Proxy servers]]<br />
[[zh-CN:Polipo]]<br />
{{Related articles start}}<br />
{{Related|Squid}}<br />
{{Related articles end}}<br />
<br />
From [http://www.pps.jussieu.fr/~jch/software/polipo/ Polipo's site]:<br />
<br />
:"''Polipo is a small and fast caching web proxy (a web cache, an HTTP proxy, a proxy server). While Polipo was designed to be used by one person or a small group of people, there is nothing that prevents it from being used by a larger group.''"<br />
<br />
Unlike [[Squid]], Polipo is very light on resources and simple to configure. This makes it ideal for single user systems and other uncomplicated setups. Do keep in mind, however, that this versatility comes at a cost: Polipo will increase its space usage without restriction as it is not aware of how big its disk cache grows. This perceived fault is by design, since omitting these sanity checks drastically reduces Polipo's memory usage and overall toll on the system. A practical way of restricting disk usage is by making Polipo run as its own user and employing [[disk quota]].<br />
<br />
The following covers installing and setting up Polipo.<br />
<br />
== Installation ==<br />
<br />
Install {{Pkg|polipo}}, available in the [[Official repositories]].<br />
<br />
Alternatively, install the newer development branch {{AUR|polipo-git}} from the [[AUR]] instead.<br />
<br />
== Starting the daemon ==<br />
<br />
To start the polipo daemon:<br />
<br />
# systemctl start polipo<br />
<br />
To start it automatically at boot:<br />
<br />
# systemctl enable polipo<br />
<br />
=== Multiple instances ===<br />
<br />
Polipo can also run without super user privileges. To do so, first copy {{ic|/etc/polipo/config.sample}} to a suitable directory:<br />
<br />
$ cp /etc/polipo/config.sample ~/.poliporc<br />
<br />
Edit it so that it points at a writable location, instead of {{ic|/var/cache/polipo}}:<br />
<br />
# Uncomment this if you want to put the on-disk cache in a<br />
# non-standard location:<br />
diskCacheRoot = "~/.polipo-cache/"<br />
<br />
Create the cache directory:<br />
<br />
$ mkdir ~/.polipo-cache<br />
<br />
Finally, launch Polipo with the new configuration:<br />
<br />
$ polipo -c ~/.poliporc<br />
<br />
== Configuration ==<br />
<br />
Management is mostly performed in {{ic|/etc/polipo/config}}. Most users can opt for using the sample configuration file, which is sufficient for most situations and well documented.<br />
<br />
# cd /etc/polipo; cp config.sample config<br />
<br />
One element of configuration that warrants mentioning is polipo's default behavior of blocking outbound connections by port. There are two variables in polipo's config file that control allowed outbound ports. {{Ic|allowedPorts}} specifies ports for outbound HTTP connections. It defaults to 80-100 and 1024-65535. {{Ic|tunnelAllowedPorts}} specifies ports polipo will allow tunnel traffic to as well as HTTPS traffic. By default it is much more restricted: "''It defaults to allowing ssh, HTTP, https, rsync, IMAP, imaps, POP, pops, Jabber, CVS and Git traffic.''"<br />
<br />
If you see a "403 Forbidden Port" error message from polipo when attempting to browse to a host:port, you need to configure polipo to accept traffic to more ports for either HTTP or HTTPS. To set them wide open, add the following to {{ic|/etc/polipo/config}}:<br />
<br />
allowedPorts = 1-65535<br />
tunnelAllowedPorts = 1-65535<br />
<br />
Unlike other proxies, Polipo needs to be restarted after alterations.<br />
<br />
=== Browser ===<br />
<br />
Set the browser so that it uses {{Ic|localhost:8123}} for proxying. Be sure to disable the browser's disk cache to avoid redundant IO operations and bad performance.<br />
<br />
=== Tunneling ===<br />
<br />
{{note|According to the [http://www.pps.jussieu.fr/~jch/software/polipo/faq.html Polipo FAQ] on "intercepting proxy" this is not possible/supported!}}<br />
<br />
{{note|this requires to run Polipo as its own user.}}<br />
<br />
Instead of manually configuring each browser or other utilities that might benefit from Polipo's caching, one can also use [[iptables]] to route traffic through polipo.<br />
<br />
After installing iptables, add the appropiate rules to {{ic|/etc/iptables/iptables.rules}}:<br />
<br />
*nat<br />
:PREROUTING ACCEPT [0:0]<br />
:POSTROUTING ACCEPT [0:0]<br />
:OUTPUT ACCEPT [0:0]<br />
''-A OUTPUT -p tcp --dport 80 -m owner ! --uid-owner polipo -j ACCEPT''<br />
''-A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 8123''<br />
COMMIT<br />
<br />
This routes HTTP traffic through Polipo. Remove all proxy settings from browsers, if any, and restart iptables.<br />
<br />
=== Privoxy ===<br />
<br />
[[Privoxy]] is a proxy useful for intercepting advertisement and other undesirables.<br />
<br />
According to Polipo's developer, in order to get the privacy enhancements of Privoxy and much (but not all) of the performance of Polipo, one should place Polipo upstream of Privoxy.<br />
<br />
In other words:<br />
<br />
* point the browser at Privoxy: {{Ic|localhost:8118}}<br />
<br />
* and direct Privoxy traffic to Polipo: {{Ic|forward / localhost:8123}} in the Privoxy configuration file.<br />
<br />
=== Tor ===<br />
<br />
{{Warning|The Tor Project advises against transparently routing traffic through Tor [https://www.torproject.org/docs/faq.html.en#TBBOtherBrowser] [https://www.torproject.org/docs/faq.html.en#TBBSocksPort], and strongly recommends using only the Tor Browser [https://www.torproject.org/download/download.html.en#warning]. Consider instead using an [https://trac.torproject.org/projects/tor/wiki/doc/TorifyHOWTO/IsolatingProxy Isolating Proxy].}}<br />
<br />
[[Tor]] is an anonymizing proxy network.<br />
<br />
To use Polipo with Tor, uncomment or include the following in {{Ic|/etc/polipo/config}}:<br />
<br />
socksParentProxy = localhost:9050<br />
socksProxyType = socks5<br />
<br />
=== DansGuardian ===<br />
<br />
[[DansGuardian]] is a web content filter. The only difference to using [[DansGuardian]] with Polipo (rather than squid or tinyproxy) is that in {{ic|dansguardian.conf}} the proxyport needs to be set to polipo's 8123:<br />
<br />
# the port DansGuardian connects to proxy on<br />
proxyport = 8123<br />
<br />
== Troubleshooting ==<br />
<br />
=== DNS Error ===<br />
<br />
If the network is started in background there could be a error like this in the Polipo log:<br />
<br />
Couldn't send DNS query: Connection refused<br />
Falling back on gethostbyname.<br />
Getaddrinfo failed: Temporary name server failure<br />
Host ***.com lookup failed: Getaddrinfo failed: Temporary name server failure (131072).<br />
<br />
This error occurs because in background mode the network hasn't initialised before Polipo wants to connect to the DNS server (especially using DHCP). Solving this error is possible on three ways:<br />
<br />
* Do not start the net-profiles in background mode (probably not wanted).<br />
* Set {{ic|dnsNameServer}} manually on the wanted DNS server.<br />
* Or add {{ic|sleep 10}} (or more, it depends) near the beginning of the Polipo daemon script {{ic|/etc/rc.d/polipo}} in the start section. This will make Polipo start after the network has initialised.<br />
<br />
See [https://bbs.archlinux.org/viewtopic.php?id=86452 this thread] for more information on this topic.<br />
<br />
== See also ==<br />
<br />
*[http://www.pps.jussieu.fr/~jch/software/polipo/faq.html Polipo FAQ]<br />
*[http://www.pps.jussieu.fr/~jch/software/polipo/manual/index.html The Polipo Manual]</div>Paraknighthttps://wiki.archlinux.org/index.php?title=MacBookPro9,x&diff=317279MacBookPro9,x2014-05-30T21:53:58Z<p>Paraknight: /* b43 */ Added link to newer drivers</p>
<hr />
<div>[[Category:Apple]]<br />
{{Article summary start}}<br />
{{Article summary text|Running Arch on Mid-2012 hardware}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|MacBook}}<br />
{{Article summary wiki|MacBook Pro 7,1}}<br />
{{Article summary wiki|MacBook Pro 8,1 / 8,2 / 8,3 (2011)}}<br />
{{Article summary wiki|MacBook Pro 9,2 (Mid-2012)}}<br />
{{Article summary end}}<br />
<br />
This guide outlines special information on installing and configuring Arch on the more recent Macbook 9,x (Mid-2012) hardware alongside a pre-existing OSX operating system. This requires adequate free disk space, install media (such as a USB or CD), and a wired connection for the initial steps of the install procedure. <br />
<br />
This article is written with a dual-boot setup in mind, and does ''not'' cover how to replace OSX with Arch.<br />
<br />
For general help on the install preocedure see the [[Beginners' guide]]<br />
<br />
{{note|Remember to back up your pre-existing OSX installation before proceeding!}}<br />
<br />
==Preparation==<br />
<br />
===Recording UIDs===<br />
If you want to access your OSX user directories from Linux, write down the UID and GID for the users.<br />
<br />
{{Note|OSX begins with the first user's UID at 501 while Arch defaults to 1000.}}<br />
<br />
{{Warning | Never, ''ever'' change any file permissions in your OSX partition from Linux. Doing so can and will lead to serious repercussions.}}<br />
<br />
===Install Boot Manager===<br />
'''Optional.''' The easiest way to begin is by [http://www.rodsbooks.com/refind/ installing rEFInd] on Mac OSX before moving on to Arch. This will place a boot menu on startup. The config will be in your OSX partition - if this is not desirable it is possible to install it later in Arch. For more information consult [[UEFI]].<br />
<br />
===Shrinking Macintosh HD===<br />
Although nowadays Boot Camp requires a Windows installation disc before altering partitions, it is possible to do this using Mac OSX's disk utility. Create a new partition, calculate the amount of free space required for all new partitions and shrink Macintosh HD to accommodate for this amount. Leave the new partition as free space for now.<br />
<br />
==Installation==<br />
<br />
===Preparing Installation Media===<br />
[https://archlinux.org/download/ Download Arch] and burn it to a USB, CD or DVD, and boot into the Arch install.<br />
<br />
===Running the Arch Installation===<br />
Proceed from the Installation section in either [[Beginners' guide/Installation]] or [[Installation guide#Installation]]. Note that you'll need a wired connection to continue for now.<br />
<br />
The following differences will apply to MacBooks:<br />
<br />
====Sample partition layout====<br />
{{note|Apple prefers having 128MB of unallocated space between partitions. Whether or not this is completely necessary is uncertain, but if it seems like there is more than enough space available, then creating this buffer of free space may be a good idea.}}<br />
<br />
partition mountpoint size type label<br />
/dev/sda1 /boot/efi 200MiB vfat EFI<br />
/dev/sda2 - ? hfs+ Mac OS X<br />
/dev/sda3 - ? hfs+ Recovery<br />
/dev/sda4 /boot 100MiB boot boot<br />
/dev/sda5 / 10GiB ext4 root<br />
/dev/sda6 /home remaining ext4 home (optional)<br />
/dev/sda7 ? ? ? shared (optional)<br />
<br />
For sharing files between OSX and Linux, a number of filesystem options exist. FAT32 is natively supported on all systems - however, it lacks support for filesystems larger than 2TB or files larger than 4GB. Journaled HFS+ partitions, such as the Macintosh HD partition, will only mount read-only in Linux. Full read-write support is available for unjournaled HFS+ filesystems. ExFAT support can be made available by installing {{Pkg|fuse-exfat}} and {{Pkg|exfat-utils}}.<br />
<br />
====Install Bootloader====<br />
Use [[GRUB2#UEFI_systems_2]] for more information.<br />
<br />
After setting up the base system, do the following in your chrooted environment:<br />
# pacman -S grub-efi-x86_64<br />
<br />
# mkdir -p /boot/efi<br />
# mount -t vfat /dev/sda1 /boot/efi<br />
<br />
# modprobe dm-mod<br />
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck --debug<br />
# mkdir -p /boot/grub/locale<br />
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo<br />
<br />
====Note about Macbook Pro 9,1====<br />
For Macbook Pro 9,1 users, the process is similar.<br />
# pacman -S grub-efi-x86_64 efibootmgr<br />
<br />
# mkdir -p /boot/efi<br />
# mount -t vfat /dev/sda1 /boot/efi<br />
<br />
# modprobe dm-mod<br />
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck --debug<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
# mkdir -p /boot/grub/locale<br />
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo<br />
<br />
The only difference is installing efibootmgr and running grub-mkconfig<br />
<br />
==Post Installation==<br />
Continue with [[Beginners' guide/Post-installation]] or [[Installation guide#Post-installation]], noting the following modifications:<br />
<br />
===Users===<br />
If you wrote down your OSX uid's and gid's eariler, new users can be created by running:<br />
<br />
# useradd -m -u [uid] -g [gid] -G [additional_groups] -s [login_shell] [username]<br />
<br />
In order to be able to access a OSX user's directory, only the uid and gid need to match. (usernames can differ)<br />
<br />
===Wireless===<br />
Macbooks 8,1 to 9,2 (and possibly newer) use BCM4331 for Wifi. As of June 2013 two options are available, the open source b43 driver and Broadcom's proprietary wl driver.<br />
<br />
====b43====<br />
{{warning|compat-drivers is outdated and was renamed to [http://wireless.kernel.org/en/users/Download/stable/ backports].}}<br />
<br />
$ curl -O https://www.kernel.org/pub/linux/kernel/projects/backports/2013/03/28/compat-drivers-2013-03-28-5.tar.bz2<br />
$ tar xjf compat-drivers-2013-03-28-5.tar.bz2<br />
$ cd compat-drivers-2013-03-28-5<br />
<br />
$ scripts/driver-select b43<br />
$ make<br />
$ sudo make install<br />
<br />
Create {{ic|/etc/modules-load.d/b43.conf}} and write {{ic|b43}} to load wireless at startup.<br />
<br />
Install {{AUR|b43-firmware}} from [[AUR]] and reboot. From here on in, wifi configuration should proceed normally - once it's working the wired connection may be disconnected.<br />
<br />
====wl====<br />
''more to come.''<br />
<br />
Download, extract, and install {{AUR|broadcom-wl}} from [[AUR]] and reboot.<br />
<br />
===Xorg===<br />
Main Page: [[Xorg]]<br />
<br />
Install {{Pkg|xf86-video-intel}} and setup Xorg as you normally would.<br />
<br />
The built-in keyboard and most usb input devices will work out-of-the-box, but {{Pkg|xf86-input-synaptics}} is needed in order to use the built-in touchpad.<br />
<br />
==Bells & Whistles==<br />
<br />
===Emulating OSX Touchpad Gestures===<br />
With a little bit of work it's possible to tweak the multitouch options on the trackpad. This can be achieved with a combination of X11 driver settings and open source software.<br />
<br />
====Using synclient====<br />
{{ic|synclient}} is included with the {{pkg|xf86-input-synaptics}} driver. It is useful for experimenting with settings as they take effect immediately and expire at the end of an X session. Many OSX options can be emulated without any additional software.<br />
<br />
Run {{ic|synclient -l}} to have a look at all the available options. Here are some suggestions which resemble the options found in OSX's System Preferences:<br />
<br />
* By default synaptics is configured to use a double-tap drag gesture found on older touchpads - one may argue that this is not necessary on a clickpad. {{ic|1=synclient TapAndDragGesture=0}} will turn this off.<br />
* TapButtonX and ClickFingerX sets the mouse button triggered by tapping or clicking with X fingers. set {{ic|1=TapButton2=3}} and {{ic|1=ClickFinger2=3}} to assign two-finger click to the right mouse button.<br />
* Setting the bottom-right corner click to right mouse button can be done by subtracting about 500 from {{ic|RightEdge}} and {{ic|BottomEdge}} and plugging the new values into {{ic|RightButtonAreaLeft}} and {{ic|RightButtonAreaTop}}. If the last two options are not visible, set {{ic|1=Clickpad=1}}.<br />
<br />
To make settings permanent, just modify {{ic|/etc/X11/xorg.conf.d/10-synaptics.conf}}.<br />
<br />
{{note|Right/Middle ButtonArea options are only recognized once the X fully loads the driver. To work around this, create a script file {{ic|/usr/local/bin/synarea.sh}} with the required synclient commands, and add the script to the X startup sequence.}}<br />
<br />
====Using Touchegg====<br />
{{AUR|touchegg}} is an application that can recognize additional gestures. To use this you'll need to replace the synaptics driver with {{AUR|xf86-input-synaptics-mtpatch}}.<br />
<br />
{{Hc|head=$(HOME)/.config/touchegg/touchegg.conf|output=<br />
...<br />
<application name="All"><br />
...<br />
<gesture type="DRAG" fingers="3" direction="ALL"><br />
<action type="DRAG_AND_DROP"></action><br />
</gesture><br />
...<br />
</application><br />
...<br />
}}</div>Paraknighthttps://wiki.archlinux.org/index.php?title=MacBookPro9,x&diff=317278MacBookPro9,x2014-05-30T21:44:18Z<p>Paraknight: /* wl */ Changed link to working module</p>
<hr />
<div>[[Category:Apple]]<br />
{{Article summary start}}<br />
{{Article summary text|Running Arch on Mid-2012 hardware}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|MacBook}}<br />
{{Article summary wiki|MacBook Pro 7,1}}<br />
{{Article summary wiki|MacBook Pro 8,1 / 8,2 / 8,3 (2011)}}<br />
{{Article summary wiki|MacBook Pro 9,2 (Mid-2012)}}<br />
{{Article summary end}}<br />
<br />
This guide outlines special information on installing and configuring Arch on the more recent Macbook 9,x (Mid-2012) hardware alongside a pre-existing OSX operating system. This requires adequate free disk space, install media (such as a USB or CD), and a wired connection for the initial steps of the install procedure. <br />
<br />
This article is written with a dual-boot setup in mind, and does ''not'' cover how to replace OSX with Arch.<br />
<br />
For general help on the install preocedure see the [[Beginners' guide]]<br />
<br />
{{note|Remember to back up your pre-existing OSX installation before proceeding!}}<br />
<br />
==Preparation==<br />
<br />
===Recording UIDs===<br />
If you want to access your OSX user directories from Linux, write down the UID and GID for the users.<br />
<br />
{{Note|OSX begins with the first user's UID at 501 while Arch defaults to 1000.}}<br />
<br />
{{Warning | Never, ''ever'' change any file permissions in your OSX partition from Linux. Doing so can and will lead to serious repercussions.}}<br />
<br />
===Install Boot Manager===<br />
'''Optional.''' The easiest way to begin is by [http://www.rodsbooks.com/refind/ installing rEFInd] on Mac OSX before moving on to Arch. This will place a boot menu on startup. The config will be in your OSX partition - if this is not desirable it is possible to install it later in Arch. For more information consult [[UEFI]].<br />
<br />
===Shrinking Macintosh HD===<br />
Although nowadays Boot Camp requires a Windows installation disc before altering partitions, it is possible to do this using Mac OSX's disk utility. Create a new partition, calculate the amount of free space required for all new partitions and shrink Macintosh HD to accommodate for this amount. Leave the new partition as free space for now.<br />
<br />
==Installation==<br />
<br />
===Preparing Installation Media===<br />
[https://archlinux.org/download/ Download Arch] and burn it to a USB, CD or DVD, and boot into the Arch install.<br />
<br />
===Running the Arch Installation===<br />
Proceed from the Installation section in either [[Beginners' guide/Installation]] or [[Installation guide#Installation]]. Note that you'll need a wired connection to continue for now.<br />
<br />
The following differences will apply to MacBooks:<br />
<br />
====Sample partition layout====<br />
{{note|Apple prefers having 128MB of unallocated space between partitions. Whether or not this is completely necessary is uncertain, but if it seems like there is more than enough space available, then creating this buffer of free space may be a good idea.}}<br />
<br />
partition mountpoint size type label<br />
/dev/sda1 /boot/efi 200MiB vfat EFI<br />
/dev/sda2 - ? hfs+ Mac OS X<br />
/dev/sda3 - ? hfs+ Recovery<br />
/dev/sda4 /boot 100MiB boot boot<br />
/dev/sda5 / 10GiB ext4 root<br />
/dev/sda6 /home remaining ext4 home (optional)<br />
/dev/sda7 ? ? ? shared (optional)<br />
<br />
For sharing files between OSX and Linux, a number of filesystem options exist. FAT32 is natively supported on all systems - however, it lacks support for filesystems larger than 2TB or files larger than 4GB. Journaled HFS+ partitions, such as the Macintosh HD partition, will only mount read-only in Linux. Full read-write support is available for unjournaled HFS+ filesystems. ExFAT support can be made available by installing {{Pkg|fuse-exfat}} and {{Pkg|exfat-utils}}.<br />
<br />
====Install Bootloader====<br />
Use [[GRUB2#UEFI_systems_2]] for more information.<br />
<br />
After setting up the base system, do the following in your chrooted environment:<br />
# pacman -S grub-efi-x86_64<br />
<br />
# mkdir -p /boot/efi<br />
# mount -t vfat /dev/sda1 /boot/efi<br />
<br />
# modprobe dm-mod<br />
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck --debug<br />
# mkdir -p /boot/grub/locale<br />
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo<br />
<br />
====Note about Macbook Pro 9,1====<br />
For Macbook Pro 9,1 users, the process is similar.<br />
# pacman -S grub-efi-x86_64 efibootmgr<br />
<br />
# mkdir -p /boot/efi<br />
# mount -t vfat /dev/sda1 /boot/efi<br />
<br />
# modprobe dm-mod<br />
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck --debug<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
# mkdir -p /boot/grub/locale<br />
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo<br />
<br />
The only difference is installing efibootmgr and running grub-mkconfig<br />
<br />
==Post Installation==<br />
Continue with [[Beginners' guide/Post-installation]] or [[Installation guide#Post-installation]], noting the following modifications:<br />
<br />
===Users===<br />
If you wrote down your OSX uid's and gid's eariler, new users can be created by running:<br />
<br />
# useradd -m -u [uid] -g [gid] -G [additional_groups] -s [login_shell] [username]<br />
<br />
In order to be able to access a OSX user's directory, only the uid and gid need to match. (usernames can differ)<br />
<br />
===Wireless===<br />
Macbooks 8,1 to 9,2 (and possibly newer) use BCM4331 for Wifi. As of June 2013 two options are available, the open source b43 driver and Broadcom's proprietary wl driver.<br />
<br />
====b43====<br />
$ curl -O https://www.kernel.org/pub/linux/kernel/projects/backports/2013/03/28/compat-drivers-2013-03-28-5.tar.bz2<br />
$ tar xjf compat-drivers-2013-03-28-5.tar.bz2<br />
$ cd compat-drivers-2013-03-28-5<br />
<br />
$ scripts/driver-select b43<br />
$ make<br />
$ sudo make install<br />
<br />
Create {{ic|/etc/modules-load.d/b43.conf}} and write {{ic|b43}} to load wireless at startup.<br />
<br />
Install {{AUR|b43-firmware}} from [[AUR]] and reboot. From here on in, wifi configuration should proceed normally - once it's working the wired connection may be disconnected.<br />
<br />
====wl====<br />
''more to come.''<br />
<br />
Download, extract, and install {{AUR|broadcom-wl}} from [[AUR]] and reboot.<br />
<br />
===Xorg===<br />
Main Page: [[Xorg]]<br />
<br />
Install {{Pkg|xf86-video-intel}} and setup Xorg as you normally would.<br />
<br />
The built-in keyboard and most usb input devices will work out-of-the-box, but {{Pkg|xf86-input-synaptics}} is needed in order to use the built-in touchpad.<br />
<br />
==Bells & Whistles==<br />
<br />
===Emulating OSX Touchpad Gestures===<br />
With a little bit of work it's possible to tweak the multitouch options on the trackpad. This can be achieved with a combination of X11 driver settings and open source software.<br />
<br />
====Using synclient====<br />
{{ic|synclient}} is included with the {{pkg|xf86-input-synaptics}} driver. It is useful for experimenting with settings as they take effect immediately and expire at the end of an X session. Many OSX options can be emulated without any additional software.<br />
<br />
Run {{ic|synclient -l}} to have a look at all the available options. Here are some suggestions which resemble the options found in OSX's System Preferences:<br />
<br />
* By default synaptics is configured to use a double-tap drag gesture found on older touchpads - one may argue that this is not necessary on a clickpad. {{ic|1=synclient TapAndDragGesture=0}} will turn this off.<br />
* TapButtonX and ClickFingerX sets the mouse button triggered by tapping or clicking with X fingers. set {{ic|1=TapButton2=3}} and {{ic|1=ClickFinger2=3}} to assign two-finger click to the right mouse button.<br />
* Setting the bottom-right corner click to right mouse button can be done by subtracting about 500 from {{ic|RightEdge}} and {{ic|BottomEdge}} and plugging the new values into {{ic|RightButtonAreaLeft}} and {{ic|RightButtonAreaTop}}. If the last two options are not visible, set {{ic|1=Clickpad=1}}.<br />
<br />
To make settings permanent, just modify {{ic|/etc/X11/xorg.conf.d/10-synaptics.conf}}.<br />
<br />
{{note|Right/Middle ButtonArea options are only recognized once the X fully loads the driver. To work around this, create a script file {{ic|/usr/local/bin/synarea.sh}} with the required synclient commands, and add the script to the X startup sequence.}}<br />
<br />
====Using Touchegg====<br />
{{AUR|touchegg}} is an application that can recognize additional gestures. To use this you'll need to replace the synaptics driver with {{AUR|xf86-input-synaptics-mtpatch}}.<br />
<br />
{{Hc|head=$(HOME)/.config/touchegg/touchegg.conf|output=<br />
...<br />
<application name="All"><br />
...<br />
<gesture type="DRAG" fingers="3" direction="ALL"><br />
<action type="DRAG_AND_DROP"></action><br />
</gesture><br />
...<br />
</application><br />
...<br />
}}</div>Paraknight