Firefox browser problem in Antix23

I have 2 installs of Antix23.1

  • a hard install with sysVinit
  • a VM install with runit

The firefox-esr browser in the hard install has a problem … it will always connect to google, but it more often than not fails to connect to any other site.
for example… when I tried a few minutes ago it would load itsfoss but not itsfoss.community
It always fails to connect to github.

In contrast my VM install works perfectly. (and I have 4 other distros in which firefox works perfectly… it is not the machine or the modem or the ISP… it is this particular hard install of Antix)

So I compared config files between the two installs ---- resolv.conf, networks, nsswitch.conf … find nothing

I made sure ntpd was installed and running. The clock is not out

ufw is turned off.

I did an update/upgrade.

So I looked at Tools → Browser Console

Does anyone understand what that means and whether it is relevant.
It seems to be saying it cant find something
but
I get a similar Browser Control window when I try it in a browser that is working?


That first message is the same .

Both installs of Antix use connmand not NetworkManager

There is nothing I can see in the connman GUI that seems to be a problem. They both use DHCP for the internet connection.

There is a file /etc/default/networking
Everything in it is #'d out in both Antixes.
The last line is
#WAIT_ONLINE_TIMEOUT=300
I tried uncommenting it… no different.

It seems to me to be a DNS sort of issue, but I cant thing what else to look at.

Any ideas welcome?

2 Likes

Hi Neville, :wave:

that´s a real puzzler. :thinking:

I may provide my browser-console screenshot.
It´s not from firefox-esr but regular firefox, installed as a DEB-package on Linux Lite.

My firefox installation works well with no hiccups.

  • You might try to uninstall firefox-esr and install regular firefox. But I guess that´s not the answer you were looking for.

  • Or: run your firefox-esr installation within the firejail sandbox using the --private option, which gives you the equivalent of a complete fresh install of the browser…
    … and look if firejail still behaves the same way.

Sorry that I cannot be of some better help, Neville. :bowing_man:

Many greetings from Rosika :slightly_smiling_face:

P.S.:

Thanks for introducing us to firefox´s Parent Process Browser Console.
Never knew such a thing existed. :wink:

P.S.2:

Browser Console — Firefox Source Docs documentation provides some in-depth information about the console, it seems.

2 Likes

Yours does not have those locale errors… neither dies my working one… that is a clue… I need to check my locale

Thanks, that is a great idea… I can also experiment with different nameservers that way

2 Likes

I think I have solved it. It was a network config issue
Have a look at this routing table

$ ip r
0.0.0.0 dev eth0 scope link 
default dev eth0 scope link 
default via 192.168.0.1 dev eth1 
169.254.0.0/16 dev eth0 proto kernel scope link src 169.254.240.64 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
192.168.0.0/24 dev eth1 proto kernel scope link src 192.168.0.57 
192.168.0.1 dev eth1 scope link 

There are two default routes
eth0 is my local static network
eth1 is my dhcp link to modem and internet.
I need to remove the eth0 default route

root@trinity:/home/nevj# ip route del default
root@trinity:/home/nevj# ip r
0.0.0.0 dev eth0 scope link 
default via 192.168.0.1 dev eth1 
169.254.0.0/16 dev eth0 proto kernel scope link src 169.254.240.64 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
192.168.0.0/24 dev eth1 proto kernel scope link src 192.168.0.57 
192.168.0.1 dev eth1 scope link 

OK, now there is only one default route.
and
Firefox works normally
and I can ping things

$ ping github.com
PING github.com (4.237.22.38): 56 data bytes
64 bytes from 4.237.22.38: icmp_seq=0 ttl=114 time=40.444 ms

So, I guess because the first route listed as eth0, it was routing unresolvable packets there. Google.com must be resolved in the because firefocx could find google, but nothing else.

Now, how did it get into that state?
Maybe because I have yet to get around to configuring the local static network so connman probably could not decide which NIC to use.
I wonder if my solution will survive a reboot?
No such luck
When I reboot the 2 default routes are back
I have to do ip route del default again before I can connect or ping.
I need to configure that local net so connman will ignore it.

Tried this

root@trinity:/home/nevj# connmanctl config  ethernet_c86000cb0b6c_cable --ipv4 manual 192.168.32.6 255.255.255.0 192.168.32.6

Commands for making a wifi connections in connmanctl
----------------------------------------------------
    agent on
    enable wifi
    services
    connect wifi_<tab>
    [wait for connection to appear]
    quit
    ifconfig -s
----------------------------------------------------

It does not like it.
Connman takes a bit of getting used to
That is exactly what the man page said to do … but it sees to think it is dealing with wifi?

2 Likes

@nevj :

Hi Neville, :wave:

first of all: congratulations on your success. :+1:
Taking a look at the routing table was a splendid idea. I guess it wouldn´t have occurred to me.

Secondly:

Removing eth0 as default route did the trick. That´s great.

So this is the issue to be resolved then.

Unfortunately I have no experience with connman.
Pehaps there´s someone else on the forum who might be able to help… ?

Many greetings from Rosika :slightly_smiling_face:

2 Likes

Hi Rosika,
Neither have I.
It seems to be more automatic than NetworkManager.
It has a GUI that displays what is set, but you can not use the GUI to change any settings. You can use connmanctl or there is a config file.

One of the things I can do with NM is configure the static interface manually ( ie in /etc/network/interfaces) and that takes it out of NM’s control.
I wonder if I could do the same with connman?

Regards
Neville

2 Likes

Hi Neville, :wave:

In the meantime I asked ChatGPT for help, as your problem seems a bit too difficult for me to resolve :wink: .
I hope you don´t mind.

O.K. then, here´s what ChatGPT had to offer:

Neville’s issue boils down to ensuring that connman respects a persistent network configuration that avoids creating multiple default routes. Here’s a solution that should work:

Understanding connman and Routes

connman manages network connections dynamically, and it often resets configurations on reboot. To fix this permanently, we need to either:

  1. Configure connman to ignore specific interfaces.
  2. Set the desired route configuration explicitly in connman.

Solution Steps

  1. Mark the eth0 Interface as Ignored
    To ensure connman does not manage the eth0 interface, you can blacklist it. Create a configuration file for connman:
sudo mkdir -p /etc/connman
sudo nano /etc/connman/main.conf

Add the following content:

[General]
NetworkInterfaceBlacklist=eth0

This prevents connman from managing eth0 entirely. After making this change, restart connman:

sudo systemctl restart connman

Then verify the routes with:

ip r
  1. Set a Static IP for eth0 (Optional)
    If eth0 still needs to function but without a default route, manually configure it:
sudo connmanctl config ethernet_c86000cb0b6c_cable --ipv4 manual 192.168.32.6 255.255.255.0

This assigns an IP and subnet mask without a gateway, ensuring no default route is created for eth0.

  1. Force Default Route to eth1
    Explicitly configure eth1 as the default route by using:
sudo connmanctl config ethernet_xxx --ipv4 dhcp

Replace ethernet_xxx with the correct identifier for the eth1 interface (connmanctl services can list the interfaces).

  1. Persisting Default Route (if connman still overrides it)
    If the above doesn’t fully solve the issue, you can create a script to set the default route at boot:
    Create a script:
sudo nano /etc/network/if-up.d/fix-routing

Add the following content:

#!/bin/sh
if [ "$IFACE" = "eth1" ]; then
   ip route del default dev eth0
   ip route add default via 192.168.0.1 dev eth1
fi

Make it executable:

sudo chmod +x /etc/network/if-up.d/fix-routing
  1. Restart and Verify
    Reboot the system and confirm the routes are set correctly:
ip r

Testing and Debugging

  • Check the logs for connman to see if it’s still managing eth0:
journalctl -u connman
  • If issues persist, disable connman for debugging:
sudo systemctl stop connman

Let me know if Neville needs more help!

I´ve no idea whether any of this would help… :thinking:

Many greetings from Rosika :slightly_smiling_face:

1 Like

Hi Rosika,
It will help… except for the systemd bits.

I think I need to blacklist eth0 in connman, and manuslly configure it elsewhere.

Tganks
Neville

2 Likes

You´re right, Neville. I forgot it´s sysVinit we´re dealing with here. :blush:
Hang on. New potential help will arrive in a jiffy.

Cheers from Rosika :slightly_smiling_face:

1 Like

Hi Neville, :wave:

Here´s an update on the problem.

ChatGPT:

Ah, good point! AntiX uses sysVinit by default instead of systemd, so systemctl commands won’t work.
Neville’s approach to blacklist eth0 in connman and manually configure it outside of connman is absolutely viable. Let’s adapt the steps for a sysVinit-based system.

Updated Steps for SysVinit

  1. Blacklist eth0 in connman
    To stop connman from managing eth0, the same process applies:
  • Edit/create the main.conf file:
sudo mkdir -p /etc/connman
sudo nano /etc/connman/main.conf
  • Add:
[General]
NetworkInterfaceBlacklist=eth0
  • Restart connman using the sysVinit command:
sudo service connman restart
  1. Manually Configure eth0 Using /etc/network/interfaces
    Once connman ignores eth0, you can configure it manually via the interfaces file. Edit the file:
sudo nano /etc/network/interfaces

Add a static configuration for eth0:

auto eth0
iface eth0 inet static
   address 192.168.32.6
   netmask 255.255.255.0

Note: Since you don’t want eth0 to have a default route, do not specify gateway for this interface.

  1. Ensure eth1 is Still Managed by connman
    If eth1 is managed dynamically by connman, no additional steps are needed for it. However, confirm that connman still recognizes it:
connmanctl services

You should see eth1 listed and active.

  1. Test and Persist Routes
    After rebooting, check the routing table with:
ip r

Only one default route (eth1) should exist. If additional configurations are needed to adjust routes persistently, a custom script can be added to rc.local:

sudo nano /etc/rc.local

Add:

#!/bin/sh
ip route del default dev eth0
exit 0

Make it executable:

sudo chmod +x /etc/rc.local

Testing

After these changes, reboot and confirm:

  1. connman ignores eth0 (it won’t appear in connmanctl services).
  2. The routing table shows only one default route:
ip r

This sysVinit-compatible approach should resolve Neville’s issue. Let me know if more tweaking is needed! :blush:

Cheers from Rosika :slightly_smiling_face:

1 Like

Hi Rosika,
I think I will retire and let you run my systems.

Note: Since you don’t want eth0 to have a default route, do not specify gateway for this interface.

That taught me something.

Thanks
Neville

2 Likes

Thanks for the feedback, Neville. :heart:

Haha, that´s funny. :laughing:
I think you would regret your decision very quickly. :blush:

You know so much more about computers, Linux and network topics than I do.

I hope you can fix your problem and that the new config will survive reboots.

Many greetings from Rosika :slightly_smiling_face:

2 Likes

You have the skills @Rosika , you only need some wider experience.
Keep on looking into things.

2 Likes

Yes, it works once I blacklist eth0 .
but
I messed up eth1 somehow and connman is finding the internet via wlan0 instead of eth1. That is Ok, it works, but I would prefer it to connect via cable
I need to find where connman stores its detected interfaces and delete them all so it will start with a clean slate.

It would seem connman is set to automatically find a working internet connection and it looks first at cable, then at wifi. It gets confused in my machine with 2 ethernet ports plus a Wifi . I might have to do a purge and reinstall if I cant find where it remembers things.

I have also discovered that my connman will not respond to
connmanctl command
but if I enter
connmanctl
it comes back with a prompt
connmanctl >
and I can then interactively enter a command

2 Likes

Hi Neville, :wave:

Thanks for your praise, dear Neville. :heart:
You´re ever so kind.

As to your quest for setting up connman, here´s some news from ChatGPT:

It sounds like Neville has made great progress, but connman’s behavior with multiple interfaces (two Ethernet ports and Wi-Fi) is adding some complexity. Here’s how we can address the new concerns step by step:

1. Understanding connmanctl Interactive Prompt

Neville’s observation about connmanctl is correct. It works interactively. For example:

connmanctl
connmanctl> services
connmanctl> connect ethernet_xxx
connmanctl> quit

This is connman’s intended behavior. Commands can also be issued directly without entering the prompt using:

connmanctl <command>

However, interactive mode (connmanctl>) is sometimes easier for managing multiple steps.

2. Resetting Detected Interfaces

If connman is confused by remembered configurations and Neville wants to start fresh, clearing the state files should help.

  • Stop connman:
sudo service connman stop
  • Clear its state:
sudo rm -rf /var/lib/connman/*
  • Start connman again:
sudo service connman start

This will force connman to rescan and rediscover all interfaces.

3. Prioritizing Ethernet (eth1) Over Wi-Fi

connman automatically prioritizes wired connections over Wi-Fi by default, but if this isn’t working as expected, Neville can explicitly set priorities.

  • List all services:
connmanctl services

This will show identifiers for ethernet, wifi, and other interfaces (e.g., ethernet_abc123 and wifi_xyz456).

  • Set priority for eth1:
connmanctl config ethernet_abc123 --priority 1
connmanctl config wifi_xyz456 --priority 2

Adjust the priority values as needed (1 is highest priority).

4. Forcing connman to Use eth1

If connman still doesn’t switch to eth1, Neville can disconnect other interfaces:

connmanctl disconnect wifi_xyz456

This forces connman to use only the remaining active interface.

5. Reinstalling connman (If Needed)

If the issues persist, purging and reinstalling connman might help:

sudo apt purge connman
sudo apt install connman

After reinstalling, repeat the steps to blacklist eth0 and configure eth1.

Additional Notes for Neville

  • Static vs. DHCP for eth1: If eth1 uses DHCP, no further configuration is needed. If Neville prefers a static IP:
connmanctl config ethernet_abc123 --ipv4 manual <IP> <Netmask> <Gateway>
  • Priorities in Complex Systems: With 2 Ethernet ports and Wi-Fi, manually setting priorities ensures connman behaves predictably. The services command in connmanctl will help track which interface is active.

I hope this helps! Please let me know how things work out for Neville or if he has more questions.

Might this be of any help :question:

Many greetings from Rosika :slightly_smiling_face:

1 Like

No, that mode does not work for me.
I can only use the interactive mode

2 Likes

Hi Neville, :wave:

Yes, I understand. That´s what you had already mentioned.
I just didn´t want to omit anything ChatGPT has posted.

So just ignore that part. :wink:

Many greetings from Rosika :slightly_smiling_face:

1 Like

Hi Rosika,
Sorry, I am repeating things.

I have found connman keeps its settings in
/var/lib/connman
and one can edit the files directly instead of using its crazy interactive commands.
I should be able to clear things that way.

The daemon connmand is very pro-active. If I disconnect the internet interface, it finds another interface for the default route. It is like it wants to maintain an internet link at all costs. NetworkManager does not behave like that.

Regards
Neville

2 Likes

Hi Neville, :wave:

No need to be sorry. In fact I should´ve taken out the respective part from ChatGPT´s reply. Sorry Neville. :bowing_man:

That´s great. Yes, editing it directly seems worth a try.

I see. I hope connman´s behaviour won´t place too much obstacles in your way though.

I found some further (good) information here:
ConnMan - ArchWiki . But I guess you know most (if not all) of it already, :wink:

Cheers from Rosika :slightly_smiling_face:

2 Likes

This is a good document on connman

It fixed iteself with a reboot
I now have

# ip r
default via 192.168.0.1 dev eth1 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
192.168.0.0/24 dev eth1 proto kernel scope link src 192.168.0.56 
192.168.0.1 dev eth1 scope link 
192.168.32.0/24 dev eth0 proto kernel scope link src 192.168.32.6 

Which is correct. It only routes thru eth1.
I can ping the printer which is on eth0

# ping 192.168.32.98
PING 192.168.32.98 (192.168.32.98): 56 data bytes
64 bytes from 192.168.32.98: icmp_seq=0 ttl=60 time=5.606 ms

Firefox works, and
in /var/lib/connman I have

nevj@trinity:/var/lib/connman
$ ls -l
total 12
drwx------ 2 root root 4096 Nov 21 21:01 ethernet_c86000cb0b6c_cable
drwx------ 2 root root 4096 Nov 22 20:12 ethernet_c86000cb0e28_cable
-rw------- 1 root root  258 Jul  5 17:53 settings

settings contains

[global]
OfflineMode=false
TimeUpdates=manual
TimezoneUpdates=auto

[Wired]
Enable=true
Tethering=false

[WiFi]
Enable=true
Tethering=false

[Bluetooth]
Enable=false
Tethering=false
Tethering.Freq=2412

[P2P]
Enable=false
Tethering=false
Tethering.Freq=2412

Inside those 2 directories are further settings for each interface.

for eth0:
[ethernet_c86000cb0b6c_cable]
Name=Wired
AutoConnect=true
Modified=2024-11-21T21:01:13Z
IPv4.method=manual
IPv4.netmask_prefixlen=24
IPv4.local_address=192.168.32.6
IPv6.method=auto
IPv6.privacy=disabled
IPv6.DHCP.DUID=000100012ed1c170c86000cb0b6c

and for eth1:
[ethernet_c86000cb0e28_cable]
Name=Wired
AutoConnect=true
Modified=2024-11-22T20:12:42Z
IPv4.method=dhcp
IPv4.DHCP.LastAddress=192.168.0.56
IPv6.method=auto
IPv6.privacy=disabled

I dont know why it keeps settings for eth0 when I have it blacklisted?

conmanctl lists 2 services

connmanctl> services
*AR Wired                ethernet_c86000cb0e28_cable
    Telstraxxxxxx        wifi_0008ca33d447_54656c73747261323046383137_managed_psk
connmanctl> 

one wired, and the Wifi, which apparently can see my modem but is not UP
I suspect if I disabled the eth1 connection, connman would attempt to route to the internet via Wifi… so I expect it would ask for a key?

So much for my first real experience with connman. I have had distros with connman before, but in VM’s where is does not really matter.

I do have connman in a hard install of Artix/S6
Here it is running

trinity:[nevj]:~$ ps ax | grep connman
  418 ?        S      0:00 s6-supervise connmand-srv
  429 ?        S      0:00 s6-supervise connmand-log
  538 ?        Ss     0:00 s6-log -d3 -b -- n3 s2000000 T /var/log/connmand
  714 ?        Ss     0:00 connmand -n
  742 ?        S      0:00 /usr/bin/connman-vpnd -n
 1522 ?        Sl     0:00 connman-gtk
 1721 pts/1    S+     0:00 grep --colour=auto connman

and it seems to manage both eth0 and eth1 happily

trinity:[nevj]:~$ ip r
default via 192.168.0.1 dev eth0 
default dev eth1 metric 4294964223 
82.165.8.211 via 192.168.0.1 dev eth0 
169.254.0.0/16 dev eth1 proto kernel scope link src 169.254.110.253 
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.56 
192.168.0.1 dev eth0 scope link 

No it does not… there are 2 default routes, and I cant ping the printer … but firefox works fine in Artix… I never noticed this issue in Artix until now.
OK more to do

What does connmanctl see in Artix

trinity:[nevj]:~$ connmanctl
connmanctl> services
*AO Wired                ethernet_c86000cb0e28_cable
*AR Wired                ethernet_c86000cb0b6c_cable
connmanctl> 

It sees the 2 wired interfaces , but not the Wifi

Artix definitely sees wlan0, so it must be disabled in connman?
Yes.... in `/var/lib/connman/settings` it has

[WiFi]
Enable=false
Tethering=false
Tethering.Freq=2412

At least I can explain that ... Antix had WiFi enabled. 
Now, 
In Artix eth0 is the internet NIC and eth1 is the local network ( opposit to Antix)
So I need to blacklist eth1 in Artix, and bring it up in /etc/network interfaces.

No such luck, Artix does not have /etc/network/interfaces.   That method of configuring networks has not been installed.  
So I need to work out how to configure a static interface with connmanctl

trinity:[root]:~# connmanctl
connmanctl> services
*AO Wired ethernet_c86000cb0e28_cable
*AR Wired ethernet_c86000cb0b6c_cable
connmanctl> config ethernet_c86000cb0b6c_cable ipv4 manual 192.168.32.6 255.255.255.0
connmanctl> services
*AO Wired ethernet_c86000cb0e28_cable
*AR Wired ethernet_c86000cb0b6c_cable
connmanctl>

Now etho and eth1 both have an IP

ip a
2: eth0: <BROADCAST,MULTICAST,DYNAMIC,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether c8:60:00:cb:0e:28 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.56/24 brd 192.168.0.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 2001:8003:2c09:f600:ca60:ff:fecb:e28/64 scope global dynamic mngtmpaddr proto kernel_ra
valid_lft 57774sec preferred_lft 57774sec
inet6 fe80::ca60:ff:fecb:e28/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,DYNAMIC,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether c8:60:00:cb:0b:6c brd ff:ff:ff:ff:ff:ff
inet 192.168.32.6/24 brd 192.168.32.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::ca60:ff:fecb:b6c/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever

and I can ping the printer on the local net, 
but 
the routing table is still the same as before.
I think a reboot will fix that
.....
No a reboot does not fix it..... still 2 default routes
I need to find some way of telling connman not to default route via the local network, but to just bring it up with its static IP.
2 default routes is actually OK,  but only if they both connect to the internet.  If I plugged my local network into the modem, it would probably work, but that is crazy routing via a 10mbps local net when I have a 1000mbps direct connection.
2 Likes