Can't Connect to Hidden Wifi

Hello all,
Total raspberry pi noob here, but I am attempting to configure a raspberry pi 3 model b+ with screenly ose 0.17 (i tried 0.18 but it made no difference in the issue im facing, plus it would never boot to the splash screen/hotspot information like 0.17). I am not able to connect to the hidden wifi network i need to use.
I have tried configuring the connection in the wpa_supplicant.conf, nmtui, nmcli. with no luck.
I can access the hotspot and connect to a visible network with no issue. (i have even tried connecting to the visible network, and then going in and changing the ssid to the network i want in the wpa_supplicant.conf, but that doesnt work either.) numerous online resources all seem to say the same thing, but there is no difference in the outcome and they all seem to be a couple years old.
I flashed another sd card with an image of raspbian buster and was able to connect to the hidde network with out any issue, then i mirrored the information in that wpa_supplicant.conf file to the file on the sd card with the screenly ose image, but it does not connect.

where are some up to date resources that i can check out when attempting to configure wifi on screenly ose?
what else can i try to get connected to this hidden network?

secondary question: would it be possible to install a version of raspbian with a desktop, get the wifi connected, and then install screenly ose and configure it to boot to screenly instead of the desktop?

Yes, download Raspbian Desktop (Stretch version):

the 1.1GB .zip file
use something like balenaEtcher to easily install the image, then sun the Screenly OSE install script when you are done configuring the Raspbian Stretch OS…

I dont know why your wpa_supplicant.conf is not picking up your hidden SSID, did you add the scan ssid option to it?

scan_ssid=1 to /etc/wpa_supplicant/wpa_supplicant.conf 

Thank you for the reply @ealmonte 32. yes, I have added the scan_ssid=1 to the supplicant.conf. i will try flashing an sd with raspbian stretch and see how that goes.

if you dont mind and can obviously obfuscate the contents, but can you paste here the contents of your wpa_supplicant.conf file?

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev


(i’ve changed the contents, but kept it similar as to illustrate capitalization/format of the network ssid.)

can you type
on the outside of the network { } block , in other words, underneath “country=US”

and reboot? i just want to make sure we cover all possibilities because the scan_ssid=1 should have been enough…

also, can you paste the outcome of:
journalctl | grep wpa_supplicant


added the ap_scan=1 to the wpa_supplicant and rebooted. the screenly splash screen then began showing the ‘manage content’ info and i could connect to it from a browser and get it to display assets!
strangely though, i am unable to verify the connection through ‘sudo nmcli connection show’, it doesnt list the wireless connection, but it is pulling and ip address and i can connect to it from a browser on another pc.
was unable to produce the journalct1 info as requested. my \ key is not producing the correct input. i’ll have to figure out why my keyboard layout isn’t correct. i had previously set it using raspi-config.

next comes trying to configure a static IP, so hopefully that wont be as much trouble. =P

Thank you much, @ealmonte32, i never saw the “ap_scan” in any of the searching i did online, but it seems to have done the trick.

you’re welcome, sometimes you have to search for like almost kernel/driver type manuals on the actual process/binary that is taking care of the task, in this case wpa_supplicant, so if you research for wpa_supplicant manuals one of the links you will get is this one:

I know it should not be expected for the regular user to have to read this and find out but this is linux after all and if you’re going to use it you should expect this sort of not-so-easy to do type of thing… :grimacing:

Anyhow, basically the wifi driver debian/raspbian/etc uses is what determines all of this, so if you search for the word “hidden” in that link, you will see that when it comes to hidden SSIDs, you want the wireless driver to first do a scan for all APs , which makes option 1 the correct one to use, and then inside the actual network block you tell the driver to scan for the SSID…

With regards to your keyboard, you simply need to change the settings from en_GB (if you’re in the US), by running:

sudo raspi-config

Number 4, localisation is the one you need to complete in its entirety, timezone, locale > this needs to be en_US.UTF, country, keyboard layout should be 104 or 105 keys, English US, and rest is default… if you dont see English US, and only see English UK, click Other…

hope that helps…

that did the trick for the keyboard! thank you!
static ip isn’t setting correctly to what i specified in the dhcpcd.conf, but i will dig around on the forums and see what i can find out about that before i bother you with yet another problem as you have helped me alot already. thanks again.

1 Like

i have added:

“interface wlan0
static ip_address=
static routers=
static domain_name_servers=”

…to the end of my /etc/dhcpcd.conf, but after the reboot, the pi is still pulling a different address. is there something else i need to configure or do for the pi to set the static address?
Thank you.

hmm… let me ask a stupid question, are you putting those quotes on the actual file or that was just you letting me know that quote/unquote this is the content…?
or , can you take a screenshot of the text of your dhcpcd.conf and send it?

also, i assume you did not edit your /etc/network/interfaces file?

not a stupid question at all. I did not include the quotation marks in the dhcpcd file.
i have not modified the interfaces file.


is network manager installed/controlling your connection? this was the issue for someone i helped a long time ago with the same issue of static ip stuff:

can you check the service via systemctl status

should get long list and one of them is dhcpcd service.

             │ ├─383 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan0 -Dnl80211,wext
             │ └─468 /sbin/dhcpcd -q -w
               └─23277 /usr/sbin/cups-browsed
pi@screenlypi:~ $ systemctl status | grep dhcp
           │     ├─ 3742 grep --color=auto dhcp
             │ └─468 /sbin/dhcpcd -q -w
pi@screenlypi:~ $

just wanting to cover all bases for this…

also, this might help:

that could be what it was. the NetworkManager was running as well as the dhcpcd.

i went into interfaces and tried to add the following:
auto wlan0
iface wlan0 inet static
static ip_address=
static routers=
static domain_name_servers=

and then disabled the NetworkManager service, but after a reboot it failed to connect to any network at all. so i removed the new entries from interfaces and restarted the NetworkManager service and then rebooted, it was back to connecting and was listing the address i was trying to set from dhcpcd. so i dunno what has changed, but it appears to be using dhcpcd now instead of networkmanager.

finally with this network stuff looking like it’s sorted i can actually start playing with and configuring screenly.

so the reason why it failed to connect is because once you start using the network interfaces file you need to specify it to use the wpa_supplicant config file by writing one line under the iface you’re configuring like this:

wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

But yeah once you remove those entries, especially the iface wlan0 inet one, you are then giving back the process to handle the connection to network manager and dhcpcd…
so everything is good now?

Yes! it is connected and using the ip address that i was trying to set in the dhchpcd. thank you so much for your help @ealmonte32. not going to mess with anything else in case I break it haha!