Network Connection for Arch Linux ARM
This is pretty fundamental: I just wanted to get access to WiFi, so that I could install the rest of my packages and continue setting up Pippin. I needed this to work before I could do much else; I was working without an Ethernet cable for most part. I ran everything as root for the following steps, so I have no clue which commands require superuser privileges.
Stuff I tried that didn’t work
Holy heavens. This was my first time tinkering with Arch, and people did warn me that it’d be rough. I just hadn’t imagined that it’d take me the better part of half a day to get the WiFi to work. I tried a bunch of different things, none of which worked.
The first thing I tried was running the
wifi-menu as root.
It prompted me to pick the WiFi network and enter in the password.
I tried a few different networks, all with correct passwords, but I kept getting an error message.
I also ran into other issues while trying to figure this out.
Turns out, sometimes it’ll save a network profile for you, which will make it so that that same network will not appear in the
These profiles will appear in the
/etc/netctl directory, which you’ll have to delete if you want the corresponding networks to show up in the menu.
This led me to the next thing I tried.
I spent a ridiculous number of hours in the
/etc/netctl directory; I’m sick of it.
By the way, everything in these steps was done as root, since (a) I didn’t feel like typing
sudo every time, and (b), I couldn’t even install
sudo without network connection.
I ran the command
to check if the kernel loaded the driver.
I got no result.
As I mentioned earlier, the
wifi-menu and the
netctl programs talk to each other in terms of creating profiles.
Since I’d already established that the
wifi-menu method wasn’t working to create a valid profile, I tried to make my own.
To figure out the name of my interface, so I ran the command
I saw three labels on the LHS:
eth0. Hence, my interface was called
I went to the examples and took a look. I made a copy of the
wireless-wpaprofile in the
I edited my copy of the profile and filled in the necessary components:
- Interface (in my case) is
- ESSID is name of WiFi network
- key is the WiFi password
- Interface (in my case) is
Run the command
netctl start my_profile
At this point, you should test your connection. Consider
pinging a website you like.
If it works, great! You can set it to be long-term using the command
netctl enable my_profile
Since I didn’t even get it to work (the previous two steps), I didn’t bother running this.
I tested this several times with different spellings of the WiFi networks.
I don’t think it would have made a difference either way, but it was worth a shot.
I also repeated this process with the other
wpa-related example profile to no avail.
I spend an inordinate amount of time watching videos on people setting up their machines with Arch,
and some of them set up their WiFi by setting up their
To be honest, I couldn’t really follow them easily, but here’s what I did based on the ArchWikis page.
I ran the following commands in the
touch wpa_supplicant.conf echo "ctrl_interface=/run/wpa_supplicant" >> wpa_supplicant.conf echo "update_config=1" >> wpa_supplicant.conf wpa_supplicant -B -i wlan0 -c wpa_supplicant.conf wpa_cli
After starting the program, I ran the commands
On the these commands, however, I got error messages. I didn’t proceed with the rest of the instructions, since I couldn’t even see the available networks, which was necessary to set the SSID and password of the network. However, I was a dumb frog, and didn’t realize that I just needed to read further on the page.
The solution is underwhelmingly simple, and involves the WPA supplicant method:
I had to run:
cat << EOF >> root/etc/systemd/network/wlan0.network [Match] Name=wlan0 [Network] DHCP=yes EOF wpa_passphrase "<SSID>" "<PASS>" > root/etc/wpa_supplicant/wpa_supplicant-wlan0.conf ln -s \ /usr/lib/systemd/system/wpa_supplicant@.service \ firstname.lastname@example.org
<SSID> with the name of the network, and the
<PASS> with the password.
This finally worked :)
I’m adding this at another date.
Another solution that’s substantially easier is to hook yourself up to an Ethernet connection, and install the NetworkManager, which comes with both
nmtui programs, which are pretty intuitive to use.
While I had initially tried to install this program, I hadn’t realized that being on a university campus (with the weird login page) may have been affecting my ability to login. Again, I’m not sure, but when I took Pippin back home and retried some things, I was magically able to install this. I figured this out by reflashing Pippin with Debian, but running into the same issues (not being able to install/update anything).
Moral of the story? Do this at home.
Also, on my Éowyn (my current machine running Arch Linux), I love the
iwctl program, a part of
It even works with the weird login page, although I haven’t yet tested it on a university campus.