RACHEL-Kolibri on Linux Mint

Hi @andrewc,

The forums seem to have been updated to block file upload links from new users. I had to review your first posts with them and approve/restore them but I didn’t see your latest post at all. I just updated your forum membership from “new user” to “regular” so hopefully that doesn’t happen again. If it does let me know and I’ll look at those settings again.

I read through and it looks like our remaining issues are

  1. Persistent GUI hotspot
  2. Internet forwarding
  3. Accessing domain names
  4. Two ip ranges are available

I don’t have much experience with Network Manager so it’s going to take some googling/researching to figure these out. Once the hotspot is persistent we can check the other settings

From this post there’s a comment that says to open /etc/NetworkManager/system-connections/Hotspot and change “autoconnect=false” to “autoconnect=true”. Maybe try editing that with “sudo nano /etc/NetworkManager/system-connections/Hotspot”.

If that works can you paste the output of “sudo iptables --list”. That would tell me if the internet forwarding rules are there and what they are. The internet domain names not being accessible is likely related to internet forwarding not working. When the http://rachel.pi address didn’t work, did you write in the “http://” or just “rachel.pi” ? I’ve noticed on some devices you have to put in the http://.

This post I found talks about that 10.42.0.1 IP. It seems like it’s a DHCP setting that’s set through the network manager interface for connection sharing.

Hope that works.

James

Hi James

change “autoconnect=false” to “autoconnect=true”
Well done. Hotspot is now persistent!

did you write in the “http://” or just “rachel.pi”
I typed it in full. if you don’t Firefox does an internet search for rachel.com.

It seems like it’s a DHCP setting that’s set through the network manager interface for connection sharing.
I can’t see where to change that. The only interfaces I see for Network Manager are from the Network icon and that just gives Network Settings and Network Connections.

I have posted the output “iptables list” on the Google Drive link.

IPtables List

Regards
Andrew

Hi @andrewc ,

Great! The hotspot is the biggest thing to tackle so that’s perfect. Can you send me the “/etc/NetworkManager/system-connections/Hotspot” file? I would like to add it to the installer and take a look at the settings in it so I can see if we can automate the creation of it.

I’d like to avoid people going to rachel.com when the internet is working. Seems like a weird site. We can change the domain name in /etc/dnsmasq/dnsmasq.conf to anything you want so let me know if you have another name you think would be good.

I’m going to do some more research on that 10.42 IP to better understand what’s going on. It looks like there are some iptables rules set for that connection and I’m wondering if that’s interfering or the commands at runtime are set for that instead of the other range. I’ll let you know when I find something.

James

Hi James

I don’t seem to have permissions to copy the file but here are the contents:-
GNU nano 2.9.3 /etc/NetworkManager/system-connections/Hotspot

[connection]
id=Hotspot
uuid=e973b865-9ee8-4a73-a7ad-a9f1100a9605
type=wifi
autoconnect=true
permissions=
timestamp=1592920741

[wifi]
mac-address=CC:3D:82:4E:E9:CC
mac-address-blacklist=
mode=ap
seen-bssids=CC:3D:82:4E:E9:CC;
ssid=rachel

[wifi-security]
group=ccmp;
key-mgmt=wpa-psk
pairwise=ccmp;
[ Read 30 lines ]

FWIW that MAC address is the WiFi adaptor.

For my part I would not worry too much about the search going to rachel.com as our schools are unlikely to be internet connected for some time. But if you want we could make it reachelfriends.org :slight_smile:

Regards
Andrew

Hi @andrewc,

Great. We can try adding that to the installer if you want. If copying that file over works to set up the wifi manualy, then I can start adding some code and settings to make it work automatically.

For the 10.42 issue. Can you try the following.

  1. Click the network icon in the task bar
  2. Click Network connections
  3. Select your wired ethernet connection and click the gear icon
  4. Click IPv4 Settings
  5. Take note of what the “method is”. If it says “share to other computers” or not
  6. Change the method to Automatic ( DHCP ) and save
  7. reboot
  8. Check if the 10.42. IP is in the output of an ifconfig command

That should have fixed the weird ip to be one assigned from your router. Then we can try setting the iptables rules if that ip isn’t there anymore.

What I think I’ll do is add an option to change the rachel home page in the installer. That should be helpful.

James

Hi James

Checked that, but the wired connection is already set to Automatic (DHCP)

The WiFi adaptor is set to “share to other computers” as soon as I make it a Hotspot.

Strangely, the ifconfig only shows the address being shared as 10.42.0.1

user1@rachel:~$ ifconfig
enp0s25: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.38 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::2f99:3cb9:434:a830 prefixlen 64 scopeid 0x20
ether 68:f7:28:7a:34:2a txqueuelen 1000 (Ethernet)
RX packets 121126 bytes 39889384 (39.8 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 39585 bytes 7931566 (7.9 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 20 memory 0xf0600000-f0620000

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 2224 bytes 611133 (611.1 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2224 bytes 611133 (611.1 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.42.0.1 netmask 255.255.255.0 broadcast 10.42.0.255
inet6 fe80::5359:c2ec:621e:c9b prefixlen 64 scopeid 0x20
inet6 fe80::60ef:f222:4d9f:fc0 prefixlen 64 scopeid 0x20
ether cc:3d:82:4e:e9:cc txqueuelen 1000 (Ethernet)
RX packets 19814 bytes 4379264 (4.3 MB)
RX errors 0 dropped 2 overruns 0 frame 0
TX packets 19089 bytes 12931581 (12.9 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

So I don’t know how the Dell laptop is able to connect also on 10.10.10.10 - but it still does!

Regards
Andrew

James

This is really weird. I have not changed anything (apart from shutting down the machines overnight) but they are all now able to access internet sites via the rachel hotspot!

That applies to my android phone and tablet, the Dell laptop on Mint and the X240 on Mint.

Trying to get my head round this. I use a little network tool called Fing that shows all the devices on the LAN. It sees the 10.10.10.10 host, the tablet and phone on 10.10.10.x IPs but does not seem to see the 10.42.0.1. As these are two different subnets I can’t see how RACHEL is accessible on both (although I think it is valid for an adaptor to have 2 IPs).

???
Regards
Andrew

Hey Andrew,

The 10.42.0.1 address seems to be something that routes the network to share the wired connection. I was hoping to get rid of it with changing those settings. Did you go through those steps above before getting this result or did it happen before you tried those? Also, is the 10.42 address in the output of an ifconfig command still?

I’ve used fing on ios before and saw some strange results so it’s possible that it’s the app itself too.

James

Hi James

Well I didn’t actually change anything following your steps above as the ethernet adaptor was already set for DHCP.

And firing it up again tonight the hotspot is still happily sharing internet access. It definitely was not doing that previously so unless Mint has some element of self-repair built in I don’t know what changed that.

Whilst I am happy that it is working I always want to know why something is so, and thus whether it will be replicated when we do another install.

ifconfig still shows the 10.42. IP range but not the 10.10.

user1@rachel:~$ ifconfig
enp0s25: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.38 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::2f99:3cb9:434:a830 prefixlen 64 scopeid 0x20
ether 68:f7:28:7a:34:2a txqueuelen 1000 (Ethernet)
RX packets 12863 bytes 13682288 (13.6 MB)
RX errors 4 dropped 0 overruns 0 frame 2
TX packets 3780 bytes 705196 (705.1 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 20 memory 0xf0600000-f0620000

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 436 bytes 47904 (47.9 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 436 bytes 47904 (47.9 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.42.0.1 netmask 255.255.255.0 broadcast 10.42.0.255
inet6 fe80::60ef:f222:4d9f:fc0 prefixlen 64 scopeid 0x20
inet6 fe80::5359:c2ec:621e:c9b prefixlen 64 scopeid 0x20
ether cc:3d:82:4e:e9:cc txqueuelen 1000 (Ethernet)
RX packets 775 bytes 173846 (173.8 KB)
RX errors 0 dropped 1 overruns 0 frame 0
TX packets 898 bytes 434938 (434.9 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

user1@rachel:~$

Just doing a bit more digging…

The x240 is allocating client addresses to all the devices on the hotspot in the 10.10.10.x range despite the RACHEL menu saying that it is connected to 10.42.0.1. (and showing LAN correctly as 192.168.1.38). Is there some kind of alias IP going on here?

Some info here: Link that does not seem to tie up with the IP range we are getting on DHCP.

" By default wifi hotspot get 10.42.0.1 IP address and the network is 10.42.0.0/24 . In the background NetworkManager runs a DHCP server through dnsmasq which will provide IP address to all wifi users from 10.42.0..0/24 network."

Regards
Andrew

Hi Andrew,

The main page of RACHEL parses the output of an ifconfig command to show the lan/wifi interface’s assigned IP addresses, so that is correct. DHCP addresses are all set in the 10.10.10.100 - 10.10.10.199 range in the dnsmasq.conf file used as part of the RACHEL install. The wifi adapter has an ip of 10.42.0.1 because it’s being set by Network Manager and because the static ip setting from our dhcpcd file is being ignored by it. The reason the network is working is anything on the network is being forwarded through the iptables rules to “anywhere”.

So the only thing to do is figure out how to override Network Manager and set the IP to 10.10.10.10 for the wifi interface. This could be editable in the ipv4 settings menu for the hotspot connection like from above. If not, you can try /etc/network/interfaces and see if the 10.42.0.1 IP is set there and change it to 10.10.10.10.

When this is all figured out you should definitely do another fresh install with an updated installer to make sure it’s all working.

James

Hi James

I have not found anything in the GUI Network Connections interface yet that displays and allows me to change that IP.

interfaces currently reads as follows:-

interfaces(5) file used by ifup(8) and ifdown(8)

auto lo
iface lo inet loopback

So the 10.42.0.1 must be held somewhere else.
I can try ADDing that IP in the IP4 Settings tab and see what happens.

UPDATE That worked! And it still routes through to internet.
user1@rachel:~$ ifconfig
enp0s25: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.38 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::2f99:3cb9:434:a830 prefixlen 64 scopeid 0x20
ether 68:f7:28:7a:34:2a txqueuelen 1000 (Ethernet)
RX packets 416 bytes 129907 (129.9 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 305 bytes 70517 (70.5 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 20 memory 0xf0600000-f0620000

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 354 bytes 125672 (125.6 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 354 bytes 125672 (125.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.10.10.10 netmask 255.255.255.0 broadcast 10.10.10.255
inet6 fe80::5359:c2ec:621e:c9b prefixlen 64 scopeid 0x20
inet6 fe80::60ef:f222:4d9f:fc0 prefixlen 64 scopeid 0x20
ether cc:3d:82:4e:e9:cc txqueuelen 1000 (Ethernet)
RX packets 309 bytes 66361 (66.3 KB)
RX errors 0 dropped 1 overruns 0 frame 0
TX packets 385 bytes 249277 (249.2 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

user1@rachel:~$

We are there, I think.

Regards
Andrew

Hi Andrew,

Okay great. So to confirm, is everything working now? I’d like to look at automating more of this but it would take some testing.

James

One more thing I should mention. Versions are hardcoded right now in the RACHEL admin interface. The installed Kolibri version is likely 0.13.3, while the interface says 0.13.2. This is set in /etc/kolibri-version. You may want to change that for clarity. In the future I’d like all versioning to be automatic in the version page.

James

Hi James

I’m happy to continue testing it if you want to automate a bit more.

Would you be able to replicate in your install routine what I did in the Network Manager to set up the 10.10.10.10 IP for the hotspot?

What we probably ought to do also is retest it all from a clean install, including the change to make the hotspot persistent and make sure everything runs OK.

Let me now how you want to proceed.

UPDATE
Successfuly edited kolibri-version to reflect current version as 0.13.3. Needed root permissions.

Regards
Andrew

Hi Andrew,

I’m going to work on getting it all completely automated. I’m just clearing off a hard drive that I can use to boot Mint from and then go from there. These are the things I plan to do.

  1. Automatic interface naming in files to avoid having to hard code them. Currently if you run the installer on any other device it won’t work because of this. I also want that interface naming working before the iptables rules are set.

  2. Automated hotspot configuration. This is going to require me testing a lot. I need to test code that replaces network manager files and make sure they are set to default. This will include the 10.10.10.10 static ip setting.

  3. Changing Individual wifi settings like channel/SSID

  4. Changing DNS settings like the default web page for RACHEL

If you have any other suggestions let me know. I will probably have this ready in a few days but you never know with Network Manager haha.

James

Hi James

That’s fine. I don’t have any specific additions to your list for now but it seems enough for you to be going on with!

Regards
Andrew

James

On further thought…

  1. Is it possible to run the install script when Mint is installed? If so it would allow us to send out a USB stick with the MInt installation on it and follow on automatically with it installing RACHEL-Kolibri.

Also, after discussion with a colleague today:-

  1. Currently the X240s will be providing DHCP service. Could that be configurable as On or Off in the script as we have a few schools with servers/networks already and Cisco APs that we might send out to add later?
  2. For the RACHEL part of the system we will install at minimum Wikipedia and GCF LearnFree which are at least 9GB each. Our local partners in Malawi have limited internet bandwidth. Is it possible to get RACHEL to install modules from a local repository on HDD or another machine (in the same way that Kolibri can?

Regards
Andrew

Hi Andrew,

Sorry, I didn’t get a notification for this so I had assumed that last message was the last one and didn’t see this. Okay so lots of questions here to tackle.

  1. To run a completely offline install script would require a new installer. I would need to figure out every package that gets installed in the current process, download them and place them in a folder, then install them in a different way ( using dpkg ) in the script. This is possible, but it is really tough to be sure it will work in the field unless the mint installation is exactly the same as the one the installer was configured on. I will look at this though once the online installer is complete.

  2. I can definitely disable the dhcp setup. Does that mean they wouldn’t require any networking and would just require the other services? These kinds of things are easy to add to the script with options like --no-kiwix, --no-kolibri, --no-hotspot, --no-dhcp, which just tell the installer to skip those installation functions. Then the question “do you want to install dhcp?” can be asked in the GUI installer. I can also make a separate script/GUI for configuring a system any time after the initial installation to enable/disable all of these things easily. That way all of the functionality is there but the ability to turn it off is easy.

  3. There is an option that was removed for the RACHEL-Pi, which this is based off of, that can install from another rsync server in the RACHEL admin user interface’s install page. I can get this working for you. What you would need is an rsync server running on your local network that is configured the same way that the world possible’s server is with a json file listing the available modules. I could also look at writing a different utility that does this using another method. I’ll have to think about this a bit more though.

I have the predictive interface naming stuff done. I’m just working on getting the hotspot set up automatically and setting it as the default.

James

Hi James

Sorry, I didn’t get a notification for this

I am not getting any notifications at all from the forum no matter how I change the settings but I can’t seem to find a way to ask the Administrators to look at it. Can you?

To run a completely offline install script would require a new installer.
OK. Don’t bother. I will incorporate copying and running the installer into our instructions.

I can definitely disable the dhcp setup. Does that mean they wouldn’t require any networking and would just require the other services?
No, it just means that there may already be another DHCP server on the wired or wireless network. I guess to be precise we could need DHCP on either network. There are three scenarios I can envisage:-

  1. Schools has no existing network. DHCP server therefore required on both wired and wireless subnets.
  2. School has an existing wired network and DHCP server. DHCP required on WiFi only. X240 will get IP allocation over wired subnet from existing server.
  3. We add a Cisco wireless AP to the wired network from a donation we have had of several hundred of these. As they are more powerful we would probably make the Cisco the DHCP server for the WiFi (only).

So an option to ask the question on the X240 for each of the subnets would be fine. If it is not a server it needs to be a DHCP client to get an allocation of network details.

There is an option that was removed for the RACHEL-Pi, which this is based off of, that can install from another rsync server in the RACHEL admin user interface’s install page

We could probably have the RACHEL Master content on another laptop. I’m not sure how to set that up as an rsync server but I guess you could cover that? Ideally we would just have the required modules on an external HDD or memory stick - I have purchased 10 x 64GB SanDisk ones that should arrive today to use for rolling out some Windows 10 Pro Client images on the X240s and possibly also this Linux stuff with the Mint installer and your installer both on them.

One further thing I should mention is that on our RPi build for RACHEL on the SolarBerry one of my colleagues set up a DNS service so the users just need to type “rachel” into the browser client address bar to access it on the server. Just a nice little touch I think.

Keep up the great work!

Regards
Andrew

Hi Andrew,

Currently DHCP is provided over wlan through a setting at the end of the dnsmasq.conf file. Dnsmasq is handling DHCP and assigning IP addresses in the 10.10.10.x range set there for the wlan interface. I believe adding wired DHCP is as simple as adding a similar setting in that file but with the ethernet interface and another range like 11.11.11.11. This is something I can automate and add into the installer and we can test.

It looks ilke the best way to set these devices up is to install everything and then configure what is or isn’t needed afterwards with a separate utility. That way everything is always available if needed, but not always turned on when not. Turning this stuff on and off is generally as simple as a few systemctl commands so it really shouldn’t be hard to create a script with a user interface to make it easy.

Looking at the question again, transfering modules to the main device that’s hosting RACHEL from a USB stick would be the easiest. All you would need to do is transfer the modules from USB to /var/www/modules and run “sudo chown -R www-data:www-data /var/www/modules” and it should be done. An rsync server would only be useful for updating many RACHEL main devices.

If you have content that’s very large and over the size of your USB sticks, you can turn ssh on for the RACHEL device and then transfer it from another device using WinSCP. This would be over the network. I think the last resort would be the rsync server if those don’t work.

James