#Configuring wifi for WPA2-Enterprise network

1 messages · Page 1 of 1 (latest)

glacial knot
#

I'm trying to connect to an WPA-2 Enterprise network and Xochitl's UI isn't providing any more information. Is there any way to configure wifi in Oxide's Wifi manager or anything other than messing with wpa_supplicant?

crisp patrol
#

Any more details? (e.g. what you tried doing, what does not work etc.)

ornate jewel
#

Oxide only can handle open WiFi networks, or WiFi networks that you've already registered in xochitl so far. You would need to write a script that injects the network configuration into wpa_supplicant after it starts up using DBus to have it play nice with oxide and xochitl.

glacial knot
#

@crisp patrol so far I've tried following the setup instructions from the provider, which specify TTLS authentication and PAP inner authentication. I get an EAP authentication failure, here are the logs. It seems like @ornate jewel unfortunately has the answer here, I was hoping there was something easier

glacial knot
#

That worked! It doesn't seem to be playing nicely with Xochitl just yet-- wpa_supplicant looks to have been disabled before I enabled it, and Xochitl seems to be periodically disabling and reenabling the connection. What's that dbus step I am missing @ornate jewel ?

ornate jewel
#

xochitl doesn't load wpa_supplicant in a way that it loads any configuration from disk, instead it uses the dbus API to load networks in from it's own configuration file

#

Oxide mimics this as well

glacial knot
#

I've never dealt with dbus before, would the Oxide repo be a good place to look for how to do that, or is there a forum post I've missed?

ornate jewel
glacial knot
#

Oh so this isn't something I'm gonna be able to write into a bash script, throw into a directory, and put some sort of hook on?

ornate jewel
#

Correct

glacial knot
#

If there's any prayer you have the spare time to help me get this done I'd appreciate it; I can work in whatever language except Perl

glacial knot
#

Seems like the path of least resistance would be to add a step there to load configs from /etc/wpa_supplicant, but will Xochitl play nice with that?

ornate jewel
#

You may be able to get it to play nice by overriding the service to load from that config file, but I'm not sure what it will do to configuration while it loads

#

Especially if you have had issues with the configuration being cleared already

glacial knot
#

I've rewritten the service, and it's not that it's clearing the config, it's that it's kinda connecting and disconnecting with a period of every second or two

ornate jewel
#

Since xochitl doesn't know about the network, that might be part of the issue

#

I don't know too much about how it manages the networks internally, I've only sorted out that how it's registering them into wpa_supplicant is over dbus, and where it stores it's settings

#

Also, I do recommend against rewriting services that come with the OS, and instead writing override files

#

It makes your changes much more explicit and transferrable

#

systemctl edit wpa_supplicant will create an override file for you by default

glacial knot
#

I think that Xochitl not knowing about the network is the biggest issue

#

I do have another idea though-- the thing that made the network work was using the default proto, do Remarkable's settings expose that at all?

#

The config that got a successful connection is

network={
    ssid="CICS"
    key_mgmt=WPA-EAP
    eap=TTLS

    identity="[cics_username]"


    password="[cics_password]"

    phase2="auth=PAP"
}
ornate jewel
#

Take a look at your xochitl.conf file to see how it stores settings

glacial knot
#

It looks to be encoded in... some way

ornate jewel
#

Yes, it's using QSettings

#

It's just a QVariantMap of values IIRC

glacial knot
#

This is the constructor you use

    WifiNetworks XochitlSettings::wifinetworks(){
        beginGroup("wifinetworks");
        QMap<QString, QVariantMap> wifinetworks;
        for(const QString& key : allKeys()){
            QVariantMap network = value(key).toMap();
            wifinetworks[key] = network;
        }
        endGroup();
        return wifinetworks;
    }
ornate jewel
#

Ah right, QMap<QString, QVariantMap>

#

Where QString is the name of the network, and then it's a QVariantMap of the values

#

You can think of QVariantMap as a dict in python, or a {} in JavaScript

glacial knot
#

And I'm guessing that one of the various QT libraries has some sort of parser that I could use to read it

ornate jewel
#

The file is parsed by QSettings

#

I can't remember if I exposed any of this with rot into a json format

#

But it wouldn't be too difficult to write something that takes the values and spits out json

forest solstice
#

I'm using a modified version of this script: https://github.com/pascalw/remarkable-wifi-conf/blob/master/remarkable_wifi_conf.py
I've just added the settings (peap etc.) and a prompt for the username - then I get an encoded version of the settings that I can add to xochitl.conf. It probably depends on your network, how this works, but for me on a wpa enterprise network, I nly have to do this (no changes to wpa_supplicant etc.).

GitHub

Utility to configure WiFi on the Remarkable paper tablet via the CLI. For WiFi networks with password characters unsupported by the Remarkable software keyboard. - pascalw/remarkable-wifi-conf

glacial knot
#

Do you need to manually set any of these settings?

ornate jewel
ornate jewel
glacial knot
ornate jewel
forest solstice
#

@ornate jewel , I know, that's why I don't share my modified script - but nobody can stop us from being inspired by the publically available script. I'm using the following json-snippet for my enterprise network:
'eap': 'PEAP',
'identity': identity,
'password': password,
'phase2': 'MSCHAPv2',
'protocol': 'eap',
'ssid': ssid

ornate jewel
#

If only someone would open a PR to add support for this kind of thing to oxide 😦

#

I don't have a network like this to test with

glacial knot
#

If I ever finish up this paper I've been working on for the past year then I'll volunteer to do that

ornate jewel
#

Wifi support in oxide basically is only known to work with psk authentication

#

as that's all I've tested with

glacial knot
#

eh whatever I'll try this

#

I'm reading the value from the QSettings object and unfortunately it all looks kosher, I really wonder what the space of possible keys that it can have are

ornate jewel
#

I do wish they used a standard format for storing these values so we can just use whatever wpa_supplicant uses

glacial knot
#

Really all I want is Xochitl but a bit more open source

#

Okay I've confirmed that pascalw's approach works a bit, but I still need to figure out what settings are valid in Remarkable's config