[udev] fix automount.
[vuplus_openvuplus_3.0] / meta-openvuplus / recipes-core / udev / udev-182 / vuzero4k / automount.py
index c70d38e..ed34b2a 100755 (executable)
@@ -39,12 +39,25 @@ def isMountedByDevName(devName):
        return ismounted
 
 def isUsbDevice(dev_base):
-       phyPath = os.path.realpath('/sys/block/' + dev_base)
+       phyPath = os.path.realpath('/sys/block/' + dev_base + '/device')
        for x in glob.glob("/sys/bus/usb/devices/usb*"):
                if phyPath.find(os.path.realpath(x)) != -1:
                        return True
        return False
 
+def checkFilesystem(device):
+       p = os.popen("blkid %s" % device)
+       data = p.read()
+       p.close()
+
+       fs = None
+       for x in data.split():
+               if x.startswith('TYPE') and x.find('=') != -1:
+                       fs = x.split('=')[1].strip('"')
+                       break
+
+       return fs
+
 def automount():
        kernel = sys.argv[1]
        dev_kernel = os.path.join("/dev/", kernel)
@@ -83,7 +96,15 @@ def automount():
                if not os.access(mountPoint, os.F_OK):
                        return
 
-       if os.system("mount -t auto -o noatime %s %s" % (dev_kernel, mountPoint)):
+       fs = checkFilesystem(dev_kernel)
+       if fs == "ntfs":
+               cmd = "mount.ntfs-3g %s %s" % (dev_kernel, mountPoint)
+       else:
+               cmd = "mount -t auto -o noatime %s %s" % (dev_kernel, mountPoint)
+
+       ret = os.system(cmd)
+
+       if ret:
                os.rmdir(mountPoint)
        else:
                if mountPoint == "/media/hdd":