Superb quality and spec AB-Com PULSe 4K SE. Crazy offer! Only £99! FREE UK DELIVERY! 4K UHD, Enigma 2, Multiboot 4 images & more!...
Superb quality and spec AB-Com PULSe 4K Rev II Twin Satellite tuner only £149! FREE UK DELIVERY! 4K UHD, Enigma 2, SATA HDD facility, Multiboot 4 images & more!...

[VU+ Duo4K SE] Cannot move up and down in a Setup screen

I don't know, but it is not related to Recordings.py.
It's still a bug. The acceptable list contains ntfs, but the fstab (or /proc/mounts) entry has ntfs-3g.
And that supported_filesystems list is in Recordings.py (in isValidPartition()).
 
Last edited:
Well earlier /proc/mounts was returning "/media/sda2/", so something must have changed in the mean time.
 
Well earlier /proc/mounts was returning "/media/sda2/", so something must have changed in the mean time.
The detection of "ntfs" to allow it to be mounted was changed.
But it shows up in /proc/mounts as ntfs-3g (since "ntfs" is the kernel-verson, not the fuseblk one). And that ("ntfs-3g") isn't on the list of things that can be used for the movies location.
 
The detection of "ntfs" to allow it to be mounted was changed.
But it shows up in /proc/mounts as ntfs-3g (since "ntfs" is the kernel-verson, not the fuseblk one). And that ("ntfs-3g") isn't on the list of things that can be used for the movies location.

Code:
<  7374.9796> [Setup] DEBUG: Config list has changed!
<  7374.9960> partition.mountpoint /
<  7375.0121> partition.filesystem() ext4
<  7375.0281> partition.mountpoint /media/sda2/
<  7375.0440> partition.filesystem() ntfs
<  7375.0602> [RecordingSettings] valid partitions ['/', '/media/sda2/']

Happy New Year.
 
Code:
<  7374.9796> [Setup] DEBUG: Config list has changed!
<  7374.9960> partition.mountpoint /
<  7375.0121> partition.filesystem() ext4
<  7375.0281> partition.mountpoint /media/sda2/
<  7375.0440> partition.filesystem() ntfs
<  7375.0602> [RecordingSettings] valid partitions ['/', '/media/sda2/']

Happy New Year.
And the relevance is?

The user still has a problem.
 
Last edited:
And the relevance is?

The user still has a problem.
No, he does not have a problem. He was trying to use a name that was not the partition name. But as the log shows the correct partition name is present and file system is ntfs. Later he managed to change the partition name to what he wanted in MountManager.
 
No, he does not have a problem. He was trying to use a name that was not the partition name. But as the log shows the correct partition name is present and file system is ntfs. Later he managed to change the partition name to what he wanted in MountManager.
But has not yet reported being able to use it for the default movie location.
Which I reckon should be checking "ntfs-3g" against a list that doesn't contain it (it contains "ntfs").
 
I did just manage to get a "Partition must be ext or nfs" message. But it went away when I restarted the GUI so might just have been an artefact of moving a different disk into the /media/hdd position.

I suspect I confused myself by asking for the contents of /etc/fstab (which actually now contains auto, but did at one point contain ntfs-3g), but the code actually looks at /proc/mounts (which makes sense, as that won't ever contain "auto").

So yes, it does seem to be working, although it might take a few restarts to get it in place.
Also, how can you create the initial movie directory?
 
Last edited:
The important thing is to make sure the disc is properly mounted and with the right name before trying to set up recording locations. The reason the OP had failures was because that was not the case.
 
To OP, try this: Menu -> Setup -> System -> User interface -> Settings: Sort settings screens alphabetically YES
 
< 7307.9526> [InfoBarGenerics] Key: 399 (Make) KeyID='KEY_GREEN' Binding='('GREEN',)'.
< 7307.9530> [ActionMap] Keymap 'ConfigListActions' -> Action = 'save'.
< 7307.9554> [Skin] Processing screen 'MessageBox', position=(380, 355), size=(520 x 10) for module 'MessageBox'.
< 7307.9611> [ePNG] loadSVG /usr/share/enigma2/skin_default/icons/input_question.svg 53x53 from 53x53
< 7307.9633> [ePNG] loadSVG /usr/share/enigma2/skin_default/icons/input_info.svg 53x53 from 53x53
< 7307.9650> [ePNG] loadSVG /usr/share/enigma2/skin_default/icons/input_error.svg 53x53 from 53x53
< 7307.9660> [Screen] Warning: Skin is missing element 'icon' in <class 'Screens.MessageBox.MessageBox'>(Directory '/media/sda2/' not valid. Partition must be ext or nfs


Sorry, out of ideas. Might be related to this commit
https://github.com/OpenViX/enigma2/commit/2420492d17a236c6f7629c50e3061a66b1e3894f

Funnily enough, I'm getting the "partition must be ext or nfs" error on OpenVix 6 2 010 on my Formuler F1 box (previously posted here)

I'm trying to save to a mounted ZFS partition - I've had to mount using nfsvers=4 option in /etc/fstab so I can get at all my datasets.

Looking at that commit, I notice the supported filesystem includes "nfs" but not the "nfs4" that df -Th shows me - could this be the reason for my problem?
 
Funnily enough, I'm getting the "partition must be ext or nfs" error on OpenVix 6 2 010 on my Formuler F1 box (previously posted here)

I'm trying to save to a mounted ZFS partition - I've had to mount using nfsvers=4 option in /etc/fstab so I can get at all my datasets.

Looking at that commit, I notice the supported filesystem includes "nfs" but not the "nfs4" that df -Th shows me - could this be the reason for my problem?

Why don't you try?
 
Why don't you try?

Fair point! To be honest, I thought compiling the Python was a bit more difficult.

I did give it a go but it didn't work. I did a bit more debugging. Specifically, I added this to Timeshift.py as part of the isValidPartition function:

print("[Timeshift] DEBUG: mountpoint %s and filesystem %s" % (partition.mountpoint, partition.filesystem()))

Results I got as I was cycling through the various partitions was:
[Timeshift] DEBUG: mountpoint / and filesystem ubifs

I read that as it not actually checking the actually directory, but rather always / which is failing (because it's always ubifs)

Will do a bit more digging tomorrow hopefully
 
This is what I get on my working system:

Code:
			for partition in Components.Harddisk.harddiskmanager.getMountedPartitions():
				print("[Timeshift] DEBUG: mountpoint %s and filesystem %s" % (partition.mountpoint, partition.filesystem()))
				print("Valid", partition.filesystem() in supported_filesystems)
				if partition.filesystem() in supported_filesystems:

Code:
< 41323.0026> 10:21:58.5063 [Timeshift] DEBUG: mountpoint / and filesystem rootfs
< 41323.0034> 10:21:58.5071 Valid False
< 41323.0044> 10:21:58.5080 [Timeshift] DEBUG: mountpoint /media/hdd/ and filesystem ext4
< 41323.0050> 10:21:58.5087 Valid True
< 41323.0060> 10:21:58.5096 [Timeshift] DEBUG: mountpoint /media/usb/ and filesystem ext4
< 41323.0067> 10:21:58.5103 Valid True
 
I get a different result. I tweaked the code:

Code:
for partition in Components.Harddisk.harddiskmanager.getMountedPartitions():     
       print("[Timeshift] DEBUG: path %s, mountpoint %s and filesystem %s" % (path, partition.mountpoint, partition.filesystem()))
       print("Valid", partition.filesystem() in supported_filesystems)                                                            
       if partition.filesystem() in supported_filesystems:                                                                        
             valid_partitions.append(partition.mountpoint)

These are the results in my log:

Code:
<   210.0182> [Timeshift] DEBUG: path /beast/, mountpoint / and filesystem ubifs
<   210.0202> Valid False
<   221.3488> [Timeshift] DEBUG: path /media/, mountpoint / and filesystem ubifs
<   221.3506> Valid False
<   224.8464> [Timeshift] DEBUG: path /e2/timeshift/, mountpoint / and filesystem ubifs
<   224.8483> Valid False
<   228.7765> [Timeshift] DEBUG: path /beast/enigma2/timeshift/, mountpoint / and filesystem ubifs
<   228.7786> Valid False

So the getMountedPartitions() function is not picking up my mounted NFS partition (/beast). Not sure why - trying to track down the getMountedPartitions function to see what's going on.

For reference, the partition does show up in mount:

Code:
172.30.1.2:/beast on /beast type nfs4 (rw,relatime,vers=4.0,rsize=8192,wsize=8192,namlen=255,soft,proto=tcp,port=0,timeo=14,retrans=2,sec=sys,clientaddr=172.30.1.18,local_lock=none,addr=172.30.1.2)

(and equivalent in df)
 
I get a different result. I tweaked the code:


Code:
for partition in Components.Harddisk.harddiskmanager.getMountedPartitions():     
       print("[Timeshift] DEBUG: path %s, mountpoint %s and filesystem %s" % (path, partition.mountpoint, partition.filesystem()))
       print("Valid", partition.filesystem() in supported_filesystems)                                                            
       if partition.filesystem() in supported_filesystems:                                                                        
             valid_partitions.append(partition.mountpoint)

These are the results in my log:

Code:
<   210.0182> [Timeshift] DEBUG: path /beast/, mountpoint / and filesystem ubifs
<   210.0202> Valid False
<   221.3488> [Timeshift] DEBUG: path /media/, mountpoint / and filesystem ubifs
<   221.3506> Valid False
<   224.8464> [Timeshift] DEBUG: path /e2/timeshift/, mountpoint / and filesystem ubifs
<   224.8483> Valid False
<   228.7765> [Timeshift] DEBUG: path /beast/enigma2/timeshift/, mountpoint / and filesystem ubifs
<   228.7786> Valid False

So the getMountedPartitions() function is not picking up my mounted NFS partition (/beast). Not sure why - trying to track down the getMountedPartitions function to see what's going on.

For reference, the partition does show up in mount:

Code:
172.30.1.2:/beast on /beast type nfs4 (rw,relatime,vers=4.0,rsize=8192,wsize=8192,namlen=255,soft,proto=tcp,port=0,timeo=14,retrans=2,sec=sys,clientaddr=172.30.1.18,local_lock=none,addr=172.30.1.2)

(and equivalent in df)

Harddisk.py

Code:
	def getMountedPartitions(self, onlyhotplug=False, mounts=None):
		if mounts is None:
			mounts = getProcMounts()
		parts = [partition for partition in self.partitions if (partition.is_hotplug or not onlyhotplug) and partition.mounted(mounts)]
		devs = set([partition.device for partition in parts])
		for devname in devs.copy():
			if not devname:
				continue
			dev, part = self.splitDeviceName(devname)
			if part and dev in devs:  # If this is a partition and we still have the wholedisk, remove wholedisk.
				devs.remove(dev)
		# Return all devices which are not removed due to being a wholedisk when a partition exists.
		return [partition for partition in parts if not partition.device or partition.device in devs]

	def addMountedPartition(self, device, desc):
		for partition in self.partitions:
			if partition.mountpoint == device:
				return  # Already_mounted.
		self.partitions.append(Partition(mountpoint=device, description=desc))
 
Recording is one thing, timeshift is another. The requirements for timeshift do not need to be applied to those for recording.
 

OpenViX Feeds Status

Back
Top