Jump to content


Photo

merge requests for PLi's git


  • Please log in to reply
1748 replies to this topic

Re: merge requests for PLi's git #801 littlesat

  • PLi® Core member
  • 56,274 posts

+691
Excellent

Posted 8 May 2015 - 17:55

Thanks betacentauri that you'te willing to test...

Edited by littlesat, 8 May 2015 - 17:56.

WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W


Re: merge requests for PLi's git #802 betacentauri

  • PLi® Core member
  • 7,185 posts

+323
Excellent

Posted 8 May 2015 - 18:03

I'm not at home at the moment. Perhaps you can build an e2 binary so that others can also test in the meantime. Then energy can be put into testing instead of discussing ;)
Xtrend ET-9200, ET-8000, ET-10000, OpenPliPC on Ubuntu 12.04

Re: merge requests for PLi's git #803 SpaceRat

  • Senior Member
  • 1,030 posts

+65
Good

Posted 8 May 2015 - 18:15

So they don't completely unload the ipv6 modules, since lo0 still has ::1 assigned.

And that doesn't make you think ...?

They probably do
sysctl -w net.ipv6.conf.eth0.disable_ipv6=1

However, as long as ipv6 support is provided as kernel modules, they can still be unloaded!
If ipv6 support is mandatory to get everything working, then ipv6 should be compiled into the kernel, so it can't be disabled completely.

That's an historically incorrect view on kernel modules.
Just unloading the kernel module ipv6 would simply load it again when needed or refuse to unload in the first place when being in use.

Linux has a monolithic kernel and all kernel modules, albeit being seperate files, are still part of the kernel, more precisely exactly that kernel for which they were compiled.
They shouldn't be seen like Windows device drivers, that's a completely different kernel concept (microkernel).

All kernel modules built are supposed to really exist, at least when they are used and the module ipv6 is used ...

Actually it's kind of abuse to only optionally ship them or not as if they were device drivers of a micro kernel.
When you look at a normal Linux distro you will see that the kernel package also includes all kernel modules and doesn't allow uninstalling some of them.

The only reason why this is somewhat "ok" for an embedded system is the fact of scarce flash space and that the kernel config is overfilled with modules for which most users probably never get the hardware.

The fact that the system and the user are still responsible to keep all components available can be seen from the fact that uninstalling kernel-module-ipv6 is normally prevented by dependencies which you have to overrule to be allowed to make that mistake.

Would you also claim your dreambox still has to work if you delete the DVB-drivers?
They are also only modules and can be deleted ...

Edited by SpaceRat, 8 May 2015 - 18:15.

1st box: Vu+ Ultimo 4k 4xDVB-S2 FBC / 2xDVB-C / 1.8 TB HDD / OpenATV 6.2
2nd box: Gigablue Quad 4k 2xDVB-S2 FBC / 2xDVB-C / 1.8 TB HDD / OpenATV 6.2
testing boxes: Vu+ Duo² + AX Quadbox HD2400 + 2x Vu+ Solo² + Octagon SF4008
Sats & Pay-TV: Astra 19.2°E + Hotbird 13°E with Redlight / SCT HD / SES Astra HD- / Sky V14 / 4th empire propaganda TV
Card-Server: Raspberry Pi + IPv6-capable oscam
Router: Linksys WRT1900ACS w/ LEDE + Fritz!Box 7390

Re: merge requests for PLi's git #804 SpaceRat

  • Senior Member
  • 1,030 posts

+65
Good

Posted 8 May 2015 - 18:27

I'm not at home at the moment. Perhaps you can build an e2 binary so that others can also test in the meantime. Then energy can be put into testing instead of discussing ;)

I'm already building as you might know ;)
1st box: Vu+ Ultimo 4k 4xDVB-S2 FBC / 2xDVB-C / 1.8 TB HDD / OpenATV 6.2
2nd box: Gigablue Quad 4k 2xDVB-S2 FBC / 2xDVB-C / 1.8 TB HDD / OpenATV 6.2
testing boxes: Vu+ Duo² + AX Quadbox HD2400 + 2x Vu+ Solo² + Octagon SF4008
Sats & Pay-TV: Astra 19.2°E + Hotbird 13°E with Redlight / SCT HD / SES Astra HD- / Sky V14 / 4th empire propaganda TV
Card-Server: Raspberry Pi + IPv6-capable oscam
Router: Linksys WRT1900ACS w/ LEDE + Fritz!Box 7390

Re: merge requests for PLi's git #805 SpaceRat

  • Senior Member
  • 1,030 posts

+65
Good

Posted 8 May 2015 - 18:54

root@solo2 ~ # netstat -tulpen
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
...
tcp 0 0 :::8001 :::* LISTEN 560/enigma2

root@solo2 ~ # rmmod ipv6
rmmod: ERROR: Module ipv6 is in use
As I said: Removing the ipv6 module is like ripping the heart of a person and expert her to live on ...

Now forcibly moving it away ...
 
root@solo2 ~ # netstat -tulpen
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:8001 0.0.0.0:* LISTEN 576/enigma2
...
netstat: /proc/net/tcp6: No such file or directory
...
netstat: /proc/net/udp6: No such file or directory
enigma2 continues to work although the system screams from pain ;)

Whatever the additional value is, as long as it works it works.

Edited by SpaceRat, 8 May 2015 - 18:54.

1st box: Vu+ Ultimo 4k 4xDVB-S2 FBC / 2xDVB-C / 1.8 TB HDD / OpenATV 6.2
2nd box: Gigablue Quad 4k 2xDVB-S2 FBC / 2xDVB-C / 1.8 TB HDD / OpenATV 6.2
testing boxes: Vu+ Duo² + AX Quadbox HD2400 + 2x Vu+ Solo² + Octagon SF4008
Sats & Pay-TV: Astra 19.2°E + Hotbird 13°E with Redlight / SCT HD / SES Astra HD- / Sky V14 / 4th empire propaganda TV
Card-Server: Raspberry Pi + IPv6-capable oscam
Router: Linksys WRT1900ACS w/ LEDE + Fritz!Box 7390

Re: merge requests for PLi's git #806 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 8 May 2015 - 19:21

Here is how you can disable/enable ipv6 on runtime:

def configure_ipv6(value):
    import glob
    ipv6conf = glob.glob("/proc/sys/net/ipv6/conf/*/disable_ipv6")
    for conf in ipv6conf:
        open(conf, "w").write("%d" % value)
config.os.ipv6 = ConfigYesNo(default = False)
config.os.ipv6.addNotifier(configure_ipv6)

 
# enable ipv6
configure_ipv6(0)
# disable ipv6
configure_ipv6(1)

Now we need a checkbox to store enable/disable and call configure_ipv6 ;)


Edited by athoik, 8 May 2015 - 19:30.

Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: merge requests for PLi's git #807 SpaceRat

  • Senior Member
  • 1,030 posts

+65
Good

Posted 8 May 2015 - 19:45

I don't see much sense in that ...

If you have an IPv6 enabled environment, you probably do not want the box not to use it.
If you don't, there is no need to disable it.
On the other hand, it could become quite handy on a per interface level.

Some NAS even have two NICs build in and can be connected to two networks at the same time.
I know about people sharing such a NAS with their neighbour ...

If one (but not your own) or both networks are IPv6 enabled, rogue router advertisments could spread through such a NAS.
That means both networks would get router advertisments from each other, so that all our own devices get addresses from the neighbours LAN ... and vice versa.

As one probably doesn't want that, it can come in handy to disable IPv6 on that interface.
On the other hand, you can probably better achieve that right on the NAS ...

Edited by SpaceRat, 8 May 2015 - 19:46.

1st box: Vu+ Ultimo 4k 4xDVB-S2 FBC / 2xDVB-C / 1.8 TB HDD / OpenATV 6.2
2nd box: Gigablue Quad 4k 2xDVB-S2 FBC / 2xDVB-C / 1.8 TB HDD / OpenATV 6.2
testing boxes: Vu+ Duo² + AX Quadbox HD2400 + 2x Vu+ Solo² + Octagon SF4008
Sats & Pay-TV: Astra 19.2°E + Hotbird 13°E with Redlight / SCT HD / SES Astra HD- / Sky V14 / 4th empire propaganda TV
Card-Server: Raspberry Pi + IPv6-capable oscam
Router: Linksys WRT1900ACS w/ LEDE + Fritz!Box 7390

Re: merge requests for PLi's git #808 betacentauri

  • PLi® Core member
  • 7,185 posts

+323
Excellent

Posted 9 May 2015 - 08:58

1. test: Only IPv4 adress available on the box.

root@et8500:/var/volatile/tmp# ifconfig 
eth0      Link encap:Ethernet  HWaddr 00:16:B4:06:22:76  
          inet addr:192.168.0.123  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

Result: E2 uses IPv4 socket:

# netstat -lnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:8001            0.0.0.0:*               LISTEN      911/enigma2

Streaming works. But I see this in the log:

[eUnixDomainSocket] can't resolve /tmp/camd.socket (getaddrinfo: ai_family not supported)

 

2. Test: With removed IPv6 module

# lsmod
Module                  Size  Used by
dvb_usb_v2             14798  0 
dvb                  8317749  29 
modloader2               492  0 
modloader                492  0 
tpm                      540  0 

E2 uses IPv4 socket:

# netstat -lnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:8001            0.0.0.0:*               LISTEN      500/enigma2

Streaming works. Now I don't see the error message in the log. :huh:

 

Next tests in new post


Xtrend ET-9200, ET-8000, ET-10000, OpenPliPC on Ubuntu 12.04

Re: merge requests for PLi's git #809 betacentauri

  • PLi® Core member
  • 7,185 posts

+323
Excellent

Posted 9 May 2015 - 09:18

Just did a little mistake. Error message is also shown after removing the module.

And you also see this message at the beginning of the log

+ (35) CA handler
[eServerSocket] getaddrinfo: ai_family not supported

I guess getaddrinfo should only be used for AF_INETx sockets and not for Unix sockets.


Xtrend ET-9200, ET-8000, ET-10000, OpenPliPC on Ubuntu 12.04

Re: merge requests for PLi's git #810 betacentauri

  • PLi® Core member
  • 7,185 posts

+323
Excellent

Posted 9 May 2015 - 09:21

3. test: With link local IPv6 address:

# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:16:B4:06:22:76  
          inet addr:192.168.0.123  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::216:b4ff:fe06:2276/64 Scope:Link
...

E2 uses IPv6 socket:

# netstat -lpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 :::8001                 :::*                    LISTEN      570/enigma2

Streaming from IPv4 client works:

# netstat -apn
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 ::ffff:192.168.0.123:8001 ::ffff:192.168.0.112:35323 ESTABLISHED 570/enigma2


Xtrend ET-9200, ET-8000, ET-10000, OpenPliPC on Ubuntu 12.04

Re: merge requests for PLi's git #811 littlesat

  • PLi® Core member
  • 56,274 posts

+691
Excellent

Posted 9 May 2015 - 09:48

So the patch from pieterg is fine? Or does it need small finetuneings?

Edited by littlesat, 9 May 2015 - 09:49.

WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W


Re: merge requests for PLi's git #812 betacentauri

  • PLi® Core member
  • 7,185 posts

+323
Excellent

Posted 9 May 2015 - 09:52

Something is wrong in my network. I can only establish IPv6 connection from my Linux PC via telnet:

telnet fe80::216:b4ff:fe06:2276%eth0 8001

Result is an established IPv6 connection:

# netstat -apn
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 fe80::216:b4ff:fe06:2276:8001 fe80::6ef0:49ff:fe02:f6ba:38038 ESTABLISHED 1125/enigma2

So this seems to work. Can't test streaming.

 

@Littlesat: No, one bug. Pieterg uses getaddrinfo for Unix sockets which is not supported. This should be changed.


Xtrend ET-9200, ET-8000, ET-10000, OpenPliPC on Ubuntu 12.04

Re: merge requests for PLi's git #813 littlesat

  • PLi® Core member
  • 56,274 posts

+691
Excellent

Posted 9 May 2015 - 10:01

Thanks for your help.... I have no idea how to solve this...


WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W


Re: merge requests for PLi's git #814 betacentauri

  • PLi® Core member
  • 7,185 posts

+323
Excellent

Posted 9 May 2015 - 12:02

I have adapted the patch from pieterg.

 

@Pieterg: I have adapted 2 procedures.

1. eServerSocket::eServerSocket(std::string path, eMainloop *ml)

 I don't use getaddrinfo. I create proper addrinfo with path and pass it to startListening

 

2. eUnixDomainSocket::connectToPath

I wanted to do the same as in 1 in this procedure. But in eSocket::connect ::connect was executed and failed all the time with "No such file or directory". I didn't find a solution, so I reverted to old code. Perhaps you have an idea why it fails.

Attached Files


Edited by betacentauri, 9 May 2015 - 12:06.

Xtrend ET-9200, ET-8000, ET-10000, OpenPliPC on Ubuntu 12.04

Re: merge requests for PLi's git #815 littlesat

  • PLi® Core member
  • 56,274 posts

+691
Excellent

Posted 9 May 2015 - 12:18

Now I wait for pieterg's comments ;)


WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W


Re: merge requests for PLi's git #816 betacentauri

  • PLi® Core member
  • 7,185 posts

+323
Excellent

Posted 9 May 2015 - 12:26

Yup.

 

@Pieterg: I mean I tried this and it don't work:
 

int eUnixDomainSocket::connectToPath(std::string path)
{
	int res;
	struct addrinfo addr;
	struct sockaddr_un serv_addr;

	memset(&serv_addr, 0, sizeof(serv_addr));
	serv_addr.sun_family = AF_LOCAL;
	strcpy(serv_addr.sun_path, path.c_str());

	memset(&addr, 0, sizeof(addr));
	addr.ai_family = AF_LOCAL;
	addr.ai_socktype = SOCK_STREAM;
	addr.ai_protocol = 0; /* any */
	addr.ai_flags = 0;
	addr.ai_addr = (struct sockaddr *) &serv_addr;
	addr.ai_addrlen = sizeof(serv_addr);
 
	res = connect(&addr);
	if (res < 0)
	{
		eDebug("[eUnixDomainSocket] can't connect to path: %s", path.c_str());
	}
	return res;
}

I always get "No such file or directory" from ::connect
 


Xtrend ET-9200, ET-8000, ET-10000, OpenPliPC on Ubuntu 12.04

Re: merge requests for PLi's git #817 SpaceRat

  • Senior Member
  • 1,030 posts

+65
Good

Posted 9 May 2015 - 16:29

1. test: Only IPv4 adress available on the box.
Streaming works. But I see this in the log:
[eUnixDomainSocket] can't resolve /tmp/camd.socket (getaddrinfo: ai_family not supported)

How did you disable IPv6?

I did this:
sysctl -w net.ipv6.conf.eth0.disable_ipv6=1
Result:
root@solo2se ~ # ifconfig
eth0      Link encap:Ethernet  HWaddr 00:1D:EC:00:12:34
          inet addr:192.168.75.18  Bcast:192.168.75.255  Mask:255.255.255.0
...

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
...
eth0 has IPv4 only, lo still has its ::1

Result:
root@solo2se ~ # netstat -tulpenx | grep enigma
tcp        0      0 0.0.0.0:45046           0.0.0.0:*               LISTEN      9032/enigma2
tcp        0      0 :::8001                 :::*                    LISTEN      9032/enigma2
tcp        0      0 :::80                   :::*                    LISTEN      9032/enigma2
tcp        0      0 :::443                  :::*                    LISTEN      9032/enigma2
unix  2      [ ACC ]     STREAM     LISTENING       5449 9032/enigma2        /tmp/.listen.camd.socket
unix  2      [ ACC ]     STREAM     LISTENING       5530 9032/enigma2        /tmp/hotplug.socket         
All sockets, incl. camd.socket, created fine.

Second variant:
sysctl -w net.ipv6.conf.eth0.disable_ipv6=0
but
sysctl -w net.ipv6.conf.eth0.accept_ra=0

ifconfig:
root@solo2se ~ # ifconfig
eth0      Link encap:Ethernet  HWaddr 00:1D:EC:00:12:34
          inet addr:192.168.75.18  Bcast:192.168.75.255  Mask:255.255.255.0
          inet6 addr: fe80::21d:ecff:fe00:1234/64 Scope:Link
...

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
...
This is exactly what you get in real life if you do not have IPv6 connectivity from your provider or via a tunnel.

Result:
Identical, all sockets create fine.

The socket creation only fails if you completely disable IPv6 (That would make an IPv6 enabled Samba fail too ...) by either doing
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
and/or
removing the ipv6 module.

That means, both patches (betacentauri and pieterg) give the same result.

Edited by SpaceRat, 9 May 2015 - 16:30.

1st box: Vu+ Ultimo 4k 4xDVB-S2 FBC / 2xDVB-C / 1.8 TB HDD / OpenATV 6.2
2nd box: Gigablue Quad 4k 2xDVB-S2 FBC / 2xDVB-C / 1.8 TB HDD / OpenATV 6.2
testing boxes: Vu+ Duo² + AX Quadbox HD2400 + 2x Vu+ Solo² + Octagon SF4008
Sats & Pay-TV: Astra 19.2°E + Hotbird 13°E with Redlight / SCT HD / SES Astra HD- / Sky V14 / 4th empire propaganda TV
Card-Server: Raspberry Pi + IPv6-capable oscam
Router: Linksys WRT1900ACS w/ LEDE + Fritz!Box 7390

Re: merge requests for PLi's git #818 SpaceRat

  • Senior Member
  • 1,030 posts

+65
Good

Posted 9 May 2015 - 16:38

BTW:
It would be more interesting where this socket is created:
tcp 0 0 0.0.0.0:45046 0.0.0.0:* LISTEN 9032/enigma2

That means there is a second socket creation routine which is
a.) probably code duplication
b.) preventing switching to IPv6 only
1st box: Vu+ Ultimo 4k 4xDVB-S2 FBC / 2xDVB-C / 1.8 TB HDD / OpenATV 6.2
2nd box: Gigablue Quad 4k 2xDVB-S2 FBC / 2xDVB-C / 1.8 TB HDD / OpenATV 6.2
testing boxes: Vu+ Duo² + AX Quadbox HD2400 + 2x Vu+ Solo² + Octagon SF4008
Sats & Pay-TV: Astra 19.2°E + Hotbird 13°E with Redlight / SCT HD / SES Astra HD- / Sky V14 / 4th empire propaganda TV
Card-Server: Raspberry Pi + IPv6-capable oscam
Router: Linksys WRT1900ACS w/ LEDE + Fritz!Box 7390

Re: merge requests for PLi's git #819 betacentauri

  • PLi® Core member
  • 7,185 posts

+323
Excellent

Posted 9 May 2015 - 16:42

 

1. test: Only IPv4 adress available on the box.
Streaming works. But I see this in the log:
[eUnixDomainSocket] can't resolve /tmp/camd.socket (getaddrinfo: ai_family not supported)

How did you disable IPv6?
 

 

I used

ifconfig eth0 del <ipv6 address>

 

I think OpenATV guys had the same problem. That's why they reverted the patch.


Xtrend ET-9200, ET-8000, ET-10000, OpenPliPC on Ubuntu 12.04

Re: merge requests for PLi's git #820 SpaceRat

  • Senior Member
  • 1,030 posts

+65
Good

Posted 9 May 2015 - 16:59

Our problem is that we still have 3 machines w/o IPv6 in kernel:
- AzBox HD
- AzBox mini
- AzBox mini me

For the first (your) patch, captain simply added a revert for these three machines to the build-machine's meta-local.
captain just switched back to your patch (That one is still active) as pieterg's doesn't offer any added value yet and doesn't match that local revert I guess.

Instead of dealing with legacy shit, I'll now concentrate on getting the AzBox kernels to compile again so that we can add IPv6 to them.
HDMU has IPv6 on AzBox HD, so it can be done. In the end, it was even possible on DM800HD ...
1st box: Vu+ Ultimo 4k 4xDVB-S2 FBC / 2xDVB-C / 1.8 TB HDD / OpenATV 6.2
2nd box: Gigablue Quad 4k 2xDVB-S2 FBC / 2xDVB-C / 1.8 TB HDD / OpenATV 6.2
testing boxes: Vu+ Duo² + AX Quadbox HD2400 + 2x Vu+ Solo² + Octagon SF4008
Sats & Pay-TV: Astra 19.2°E + Hotbird 13°E with Redlight / SCT HD / SES Astra HD- / Sky V14 / 4th empire propaganda TV
Card-Server: Raspberry Pi + IPv6-capable oscam
Router: Linksys WRT1900ACS w/ LEDE + Fritz!Box 7390


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users