You are not logged in.
I'm trying to connect to my home wifi with a fresh arch install. The computer is in a separate room to the router and the house does not have ethernet cabling so wifi is the only connection option. During install I used ip link to set my ethernet interface (enp3s0) to down and my wireless interface (wlp8s0) to down. Then I used wifi-menu to connect to the wifi network using wlp8s0 which was fine. During install I downloaded both base and base-devel via pacstrap. I also installed iw, dialog, and wpa_supplicant via pacman once I had changed root into the system. My plan was to use wifi-menu to create a wireless connection profile to my home network again but I am unable to get it work and I'm not sure what I am doing wrong.
I've verified that the driver for my wifi device is listed
lspci -v
....
08:00.0 Network controller: Qualcomm Atheros AR93xx Wireless Network Adapter (rev 01)
Subsystem: Qualcomm Atheros AR93xx Wireless Network Adapter
Kernel driver in use: ath9k
Kernel modules: ath9kI also checked it is actually working by using:
ip link set wlp8s0 up
ip link show dev wlp8s0
3: wlp8s0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
link/ether 10:fe:ed:26:7f:d0 brd ff:ff:ff:ff:ff:ff
iw dev wlp8s0 scan | lessAnd sure enough, among a long list of ssids there is my home network listed. Great I thought. I figured that with iw, dialog and wpa_supplicant installed I should be able to use wifi-menu to connect as I did during setup from the live cd after setting my interface up. But that does not work and I just get the output:
wifi-menu -o
Scanning for networks... failed
No networks foundI've tried that with the wlp8s0 interface set both up and down (not that the latter makes sense to me) and got the same result. So I figured ok, no big deal, perhaps I forgot to install one of the packages on which wifi-menu is dependent (although I thought that was just iw, dialog and wpa_supplicant) so I figured I'd try using netctl to setup a connection using the instructions in the wiki. I've created the relevant configuration file in /etc/netctl/ copying the wireless wpa example file from the examples folder and editting it with nano to specify my details. Then I figured it was just a case of starting the profile (which I've called homewifi (the name of the config file for netctl) and the 'description' entry in the config file for the network is Home 1) - but I find that fails:
netctl start homewifi
Job for netctl@homewifi.service failed because the control process exited with error code.
See "systemctl status netctl@homewifi.service" and "journalctl -xe" for details. So after checking the suggested error log for systemctl I see:
systemctl status netctl@homewifi.service
* netctl@homewifi.service - Home 1 wifi
Loaded: loaded (/usr/lib/systemd/system/netctl@service:; enabled; vendor present: disabled)
Drop-In: /etc/systemd/system/netctl@homewifi.service.d
`-profile.conf
Active: failed (Result: exit-code) since Sat 2018-09-01 17:00:29 UTC 24s ago
Docs: man:netctl.profile(5)
Process: 495 ExecStart=/usr/lib/netctl/network start homewifi (code=exited, status=1/FAILURE)
Main PID: 495 (code=exited, status=1/FAILURE)
Sep 01 17:00:28 arch001 systemd[1]: Starting Home 1 wifi...
Sep 01 17:00:28 arch001 network[495]: Starting network profile 'homewifi'...
Sep 01 17:00:29 arch001 network[495]: The WPA supplicant did not start for interface 'wlp8s0'
Sep 01 17:00:29 arch001 network[495]: Failed to bring the network up for profile 'homewifi'
Sep 01 17:00:29 arch001 systemd[1]: netctl@homewifi.service: Main process exited, code=exited, status=1/FAILURE
Sep 01 17:00:29 arch001 systemd[1]: netctl@homewifi.service: Failed with result 'exit-code'.
Sep 01 17:00:29 arch001 systemd[1]: Failed to start Home 1 wifi.At this point I am unsure what to do. The netctl wiki page for troubleshooting suggested adding ForceConnect=yes to the profile which I tried and it made no difference. It also suggests checking that there are no other network services running using systemctl --type=service. I have run that and while I don't think there are, I cannot be sure as I'm new to arch. Nothing that was listed had "networking" in its description other than my failed netctl service. I thought I would change root into the system via the live cd and pastebin that command output but I can't as it refuses to run in the live cd environment, And I can't connect my actual install to the internet.
Is there a dependency I am missing for netctl? Did I screw up a step in the install? What other troubleshooting should I try? Thanks
Last edited by rxl_980 (2018-09-02 13:19:45)
Offline
I would suggest disabling the netctl service then starting with Wireless_network_configuration#Activate_the_interface and follow the steps for a manual connection to see if that succeeds.
Last edited by loqs (2018-09-01 18:01:43)
Offline
Thanks for replying. I disabled netctl using the systemctl disable command (so systemctl disable netctl@homewifi.service in this case). Subsequent to that I went to the wiki and tried the connection steps shown on the wpa_supplicant page for connection (is that what you mean by manual?)
I found I already had a config file set up for the wpa_supplicant package, exactly the same as the suggested example in the wiki i.e.
/etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=/run/wpa_supplicant
update_config=1Guessing that was created by netctl or is just there by default. Anyway, left it as is. I then ran the command to start wpa_supplicant as shown in the example in the wiki. Then I tried wpa_cli. The wiki says that should return a ">" prompt but I get no response at all. I also tried specifiying a path with
wpa_cli -p /run/wpa_supplicant/That also failed with no output. So then I tried running wpa_passphrase, also no response at all. So not sure what I have done wrong there. I booted the live cd and changed root into the system again with an internet connection established on the live cd. I checked if I had the latest wpa_supplicant package which pacman says I do. The wiki says that should include wpa_cli and wpa_passphrase so I figure they must be installed. pacman -S wpa_passphrase wpa_cli didn't work so guess you cannot install those components separately?
There is a section further down the wpa_supplicant wiki page saying "connection" "manual". On that I get stuck at the obtaining an ip address part. The output of dhcpcd is as follows for me:
dhcpcd wlp8s0
wlp8s0: waiting for carrier
timed out
dhcpcd exitedIs dhcpcd my problem? I checked via systemctl --type=service and there is no dhcpcd service running. There's also no other network service running now. I tried this twice with a complete cold shut down and reboot and got the same result. I can't believe that none of the suggested wireless connection methods work, at this point I think I must have inadvertently done something to break one of the required services or failed to install something during basic installation. I'm leaning towards formatting the hdd and starting again.
Last edited by rxl_980 (2018-09-01 19:35:36)
Offline
dhcp won't work before you established a connection w/ wpa_supplicant.
Please post your exact steps, ie. the commands you entered and the exact output you got in return. Especially also perform a scan. And also check/log "ip a" after every step.
Online
Right after startup and logging in as root the network interface status is as follows:
[root@arch001 ~]# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp3s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 74:d4:35:ad:14:ca brd ff:ff:ff:ff:ff:ff
3: wlp8s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 10:fe:ed:26:7f:d0 brd ff:ff:ff:ff:ff:ff
[root@arch001 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp3s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 74:d4:35:ad:14:ca brd ff:ff:ff:ff:ff:ff
3: wlp8s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 10:fe:ed:26:7f:d0 brd ff:ff:ff:ff:ff:ff Setting the wlp8s0 interface to up, and then running a scan
[root@arch001 ~]# ip link set wlp8s0 up
[root@arch001 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp3s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 74:d4:35:ad:14:ca brd ff:ff:ff:ff:ff:ff
3: wlp8s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 10:fe:ed:26:7f:d0 brd ff:ff:ff:ff:ff:ff
[root@arch001 ~]# ip dev wlp8s0 scan | lessThe scan output is about 2000 lines long in the log file I saved. There are quite a few houses close by in the area I live so it picks up lots of SSIDs. Within the list is mine, portion of the output below showing relevant SSID - could not figure out how to work the HTML form on the http://ptpb.pw, will post the full output of the scan once I've figured that out.
BSS f4:6b:ef:25:66:a2(on wlp8s0)
TSF: 212480788083 usec (2d, 11:01:20)
freq: 2437
beacon interval: 100 TUs
capability: ESS Privacy ShortSlotTime (0x0411)
signal: -52.00 dBm
last seen: 1700 ms ago
Information elements from Probe Response frame:
SSID: SKY77512
Supported rates: 1.0* 2.0* 5.5* 11.0* 18.0 24.0 36.0 54.0
DS Parameter set: channel 6
Country: GB
Environment: Indoor/Outdoor
Channels [1 - 13] @ 20 dBmThe commands I tried with wpa_supplicant were
[root@arch001 ~]# wpa_supplicant -B -i wlp8s0 -c /etc/wpa_supplicant/wpa_supplicant.confAfter which ip a shows
[root@arch001 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp3s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 74:d4:35:ad:14:ca brd ff:ff:ff:ff:ff:ff
3: wlp8s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 10:fe:ed:26:7f:d0 brd ff:ff:ff:ff:ff:ffAnd then as per the wiki I tried running wpa_cli
[root@arch001 ~]# wpa_cliThere is no output from that at all. I was expecting a ">" prompt to appear. Output of ip a is the same as before (i can paste it again if need be). I then tried wpa_passphrase using the form in the wiki
root@arch001 ~]# wpa_passphrase SKY77512 passphrase
root@arch001 ~]wpa_supplicant -B -i wlp8s0 -c <(wpa_passphrase SKY77512 passphrase)Where "passphrase" is a placeholder, I used my actual wifi password in the command I typed. There are no special characters in the wifi password, it is only letters and numbers, no spaces or any punctuation
That command also gives no update. ip a shows the same output as before. It doesn't give me an error message either or indicate i've entered something invalid. Just seems like nothing happens. I wasn't sure what to do in the 'manual connection' example. As before I entered
[root@arch001 ~]# wpa_supplicant -B -i wlp8s0 -c /etc/wpa_supplicant/wpa_supplicant.confBut then the wiki says I need a way to obtain an IP address and suggests a dhcpcd command (unless I have misunderstood)
[root@arch001 ~]# dhcpcd wlp8s0
wlp8s0: waiting for carrier
timed out
dhcpcd exitedThe only thing I've done which seems to have any effect is ip link set wlp8s0 up. And then the scanning with iw works. But nothing else yet.
Last edited by rxl_980 (2018-09-01 23:45:07)
Offline
wpa_supplicant is what establishes the wifi carrier, "-B" runs it as daemon
=> kill all running wpa_supplicant processes and run
wpa_supplicant -dd -i wlp8s0 -c <(wpa_passphrase SKY77512 your_passphrase_here)instead (the command will not exit and hopefully print some more debugging)
Online
wpa_supplicant is what establishes the wifi carrier, "-B" runs it as daemon
=> kill all running wpa_supplicant processes and runwpa_supplicant -dd -i wlp8s0 -c <(wpa_passphrase SKY77512 your_passphrase_here)instead (the command will not exit and hopefully print some more debugging)
That command gave me the exact same result, i.e. nothing at all, not even an error message. I can still scan with iw. It seems to me that everything I tried works with the exception of anything that uses wpa_supplicant. This started to make me think that maybe something had gone wrong in the install of wpa_supplicant. I did the following
pacman -Qi wpa_supplicantThat tells me I have wpa_supplicant version 1:2.6-12. But it also says "install date :None" & "Installed Size: 0.00 B". Seems like somehow what got installed was a bunch of empty folders with none of the actual wpa_supplicant files. I must have screwed up the install of wpa_supplicant. At this point I logged out, restarted the computer and booted using my live cd. I then connected that to the internet using wifi-menu as I had done during initial install. I mounted the filesystem and then changed root into it. I then tried installing wpa_supplicant again
pacman -S wpa_supplicantWhich did not work which was what I expected. It seems like the system thinks it has wpa_supplicant and actually doesn't. So then I decided to remove it and reinstall
pacman -Rs wpa_supplicantThat removed it. But then running pacman -S wpa_supplicant refused to let me install due to
error: failed to commit transaction (conflicting files)
wpa_supplicant: /etc/dbus-1/system.d/wpa_supplicant.conf
wpa_supplicant: /usr/bin/eapol_test
wpa_supplicant: /usr/bin/wpa_cli
wpa_supplicant: /usr/bin/wpa_passphrase
wpa_supplicant: /usr/bin/wpa_supplicant
wpa_supplicant: /usr/lib/systemd/system/wpa_supplicant-nl80211@.service
wpa_supplicant: /usr/lib/systemd/system/wpa_supplicant-wired@.service
wpa_supplicant: /usr/lib/systemd/system/wpa_supplicant.service
wpa_supplicant: /usr/lib/systemd/system/wpa_supplicant@.service
wpa_supplicant: /usr/share/dbus-1/system-services/fi.epitest.hostap/WPASupplicant.service
wpa_supplicant: /usr/share/dbus-1/system-services/fi.w1.wpa_supplicant1.service
wpa_supplicant: /usr/share/doc/wpa_supplicant/wpa_supplicant/conf
wpa_supplicant: /usr/share/man/man5/wpa_supplicant.conf.5.gz
wpa_supplicant: /usr/share/man/man8/eapol_test.8.gz
wpa_supplicant: /usr/share/man/man8/wpa_background.8.gz
wpa_supplicant: /usr/share/man/man8/wpa_cli.8.gz
wpa_supplicant: /usr/share/man/man8/wpa_passphrase.8.gz
wpa_supplicant: /usr/share/man/man8/wpa_supplicant.8.gzI tested all 18 of them to see whether another package owned them using
pacman -Qo filepathAll of them came back saying "error: no package owns". At this point I figured I might as well remove them. I'm totally aware that removing stuff in this way is probably a good way to break the system but given it's got so little installed I figured I might as well try as reinstalling from scratch really isn't that big a deal (although I would much prefer to understand and fix the problem I've created). So I used rm to remove them, e.g.
rm wpa_supplicant: /usr/share/man/man8/wpa_passphrase.8.gzsubsequent to that I did
pacman -S wpa_supplicantwhich now works. I then checked the output of
pacman -Qi wpa_supplicantwhich now shows version 1:2.6-12 and total installed size 4.09MiB and has an install date of today's date. Rebooting into the actual system and running the same command shows the same output. So now looks like wpa_supplicant is installed.
Now I have a different problem. Running anything that relies on wpa_supplicant (I've tried wifi-menu and wpa_supplicant with passphrase) gives an error message like the one below
[root@arch001 ~]# wifi-menu wlp8s0
Scanning for networks... wpa_supplicant: error while loading shared libraries: /usr/lib/libssl.so.1.0.0: file too short
failed
No networks foundI've changed directory into /usr/lib/ and running ls shows libssl.so.1.0.0 exists but when I examine it the file it is empty so I guess that's my problem. It wasn't on the list of stuff I removed (so far as I can see) but guess my remove actions must be responsible. Anyway to restore that file?
Offline
pacman -Qkk openssl-1.0Offline
pacman -Qkk openssl-1.0
Thanks, so is that a check to see if I have all the relevant files for the openssl-1.0 package?
[root@arch001 ~]# pacman -Qkk openssl-1.0
error: error while reading file /var/lib/pacman/local/openssl-1.0-1.0.2.p-1/mtree: Unrecognized archive format
openssl-1.0: no mtree fileIs it sensible to try and remove openssl-1.0 with pacman and reinstall it like I did with wpa_supplicant? Might that cause even more problems?
EDIT: This seems similar to the 'file not found' error in the 'common problems' sticky thread (although seems to be file not read). Would 'pacman -Syyu' fix things? I only tried 'pacman -Syu' while I was reinstalled wpa_supplicant from my live cd via change root. I did pacman -Syu after the wpa_supplicant install and it told me nothing needed updating.
Last edited by rxl_980 (2018-09-02 10:40:36)
Offline
You might want to consider backing up data now and checking the device for issues (fsck / smartct )
pacman -QkkLook for other packages with mtree issues all of those should be reinstalled. However as the mtree is missing pacman can not track files and directories belonging to the package and so will object to reinstalling the packages.
Use
pacman -S --dbonly $packagelist #fix the mtrees
pacman -S $packagelist #reinstall the package contents to fix corrupted files etcpacman -Qkk should detect changes to files from packages which do not have mtree issues.
Offline
Brilliant, really appreciate the help, it seems I have fixed this following your instructions.
You might want to consider backing up data now and checking the device for issues (fsck / smartct )
I don't believe there are any problems with the disk. It is a 250GB SSD that I have been using without issue for quite a while with windows. Regardless, the data is backed up anyway (just as part of regular backups I run). I've checked it with smartctl and get no errors:
smartctl 6.6 2017-11-05 r4594 [x86_64-linux-4.17.11-arch1] (local build)
Copyright (C) 2002-17, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed without error 00% 5994 pacman -QkkLook for other packages with mtree issues all of those should be reinstalled. However as the mtree is missing pacman can not track files and directories belonging to the package and so will object to reinstalling the packages.
The output of pacman -Qkk showed only the openssl-1.0 package to have a missing mtree file https://ptpb.pw/j8ra
Use
pacman -S --dbonly $packagelist #fix the mtrees pacman -S $packagelist #reinstall the package contents to fix corrupted files etcpacman -Qkk should detect changes to files from packages which do not have mtree issues.
Given only openssl-1.0 seemed to have the error that was the only package on my list. I booted my livecd, established an internet connection, mounted the filesystem and changed root in. Then I did the database update with pacman to fix the mtree which asked me if I wanted to delete a corrupt pkg file (which I said yes to). I then reinstalled the openssl-1.0 package. pacman didn't seem to object and it just went through.
The output of pacman -Qkk no longer shows any missing mtrees: https://ptpb.pw/Gs_L
Although there are a ton of size mismatch & modification date mismatch errors. But based on what you said I guess those are normal and just indicate files I have edited since installing?
Anyway, after doing that I have rebooted into the actual system (not the live cd) and now running wifi-menu wlp8s0 appears to work as it does in the livecd. I tried pinging 8.8.8.8 to test and it seems I have an internet connection. Therefore I am cautiously optimistic I've fixed this issue and can finally move on with my install. I guess my thread title is kind of wrong, this seems to be entirely down to a corrupt package install and not any issue with wpa_supplicant itself.
Offline