Hi all!
I came across a problem with TDE on FreeBSD (this is the only real problem I found, BTW): - I have turned all automounters off, so nothing grabs the device before HAL can be used to mount it. - I plug in a USB storage media and then start "konqueror media:/". - The storage media shows up as "16GB" (which is the name of the msdos volume) unmounted - Now I click on the "16GB" icon. - konqueror gives the errormessage "mount_msdosfs: /dev/msdosfs/16GB: device busy"
If I understand correctly, then "/sbin/mount_msdosfs" is used to mount devices from HAL. I replaced /sbin/mount_msdosfs with a little helper and that gave me this output:
Sun Jun 3 14:23:40 CEST 2018: /sbin/mount_msdosfs -o nosuid -o noatime /dev/msdosfs/16GB /media/16GB Sun Jun 3 14:23:42 CEST 2018: /sbin/mount_msdosfs -o nosuid -o noatime /dev/msdosfs/16GB /media/16GB-1
Looks like konqueror calls "mount_msdosfs" twice for one click on the "16GB"-icon. As you might have gussed, the first call actually succeeds, the device is mounted, but the second call gives the errormessage that konqueror shows.
/dev/msdosfs/16GB on /media/16GB (msdosfs, local, noatime, nosuid)
I tried to fool konqueror by checking if the device is already mounted and then ignoring the second call to mount_msdosfs. In a second atemt I umounted the previouse monted device and mounted it agai. But both attemots lead to the errormessage 'tdelauncher: unknown protocol ""'. Konqueror shows "media:/16GB" in the url, but no content. After a reload (F5) konqueror shows the content of the device.
Oh, unmounting of the mounted device works as expected :-)
Any suggestions where and how to continue? My plan would be to take a look at tdehardwarebackend.cpp and try to figure out what happens there - if that's the right place to look.
Nik
I forgot:
mounting via tdeio_media_mounthelper works as expected:
tdeio_media_mounthelper -m /dev/msdosfs/16GB
Nik