From 343ccad06ec85da46a194be39989a67f3e75d8fa Mon Sep 17 00:00:00 2001 From: hschang Date: Thu, 16 Nov 2017 18:57:45 +0900 Subject: [PATCH] [udev] fix device mount point. --- .../recipes-core/udev/udev-182/automount.py | 55 +++++++++++++++------- .../recipes-core/udev/udev_182.bbappend | 2 +- 2 files changed, 40 insertions(+), 17 deletions(-) diff --git a/meta-openvuplus/recipes-core/udev/udev-182/automount.py b/meta-openvuplus/recipes-core/udev/udev-182/automount.py index 01695b6..22f81e2 100755 --- a/meta-openvuplus/recipes-core/udev/udev-182/automount.py +++ b/meta-openvuplus/recipes-core/udev/udev-182/automount.py @@ -1,10 +1,25 @@ #!/usr/bin/python import os import sys +import glob def readFile(fn): return open(fn, "r").read() +def getLabelFromDevName(dev_kernel): + for label in glob.glob("/dev/disk/by-label/*"): + realPath = os.path.realpath(label) + if realPath == dev_kernel: + return os.path.basename(label) + return None + +def getModel(dev_base): + model = None + modelpath = "/sys/block/%s/device/model" % dev_base + if os.access(modelpath, os.F_OK): + model = open(modelpath, "r").read().strip().replace(' ','-') + return model + def isMountedByDevName(devName): ismounted = False mounts = file('/proc/mounts').read().split('\n') @@ -19,6 +34,13 @@ def isMountedByDevName(devName): return ismounted +def isUsbDevice(dev_base): + phyPath = os.path.realpath('/sys/block/' + dev_base) + for x in glob.glob("/sys/bus/usb/devices/usb*"): + if phyPath.find(os.path.realpath(x)) != -1: + return True + return False + def automount(): kernel = sys.argv[1] dev_kernel = os.path.join("/dev/", kernel) @@ -26,30 +48,31 @@ def automount(): dev_base = os.path.basename(kernel)[:-1] removable=readFile("/sys/block/%s/removable" % dev_base).strip() == "1" dev_real_path = os.path.realpath("/sys/block/%s/device" % dev_base) - external = False - if (dev_real_path.find("pci") != -1) or (dev_real_path.find("ahci") != -1) or (dev_real_path.find("sata") != -1): - external = True if isMountedByDevName(dev_kernel): return - deviceType = "hdd" -# if removable or external: - if removable: - deviceType = "usb" - + mountPoint = None if dev_index == "1": - mountPoint = "/media/" + deviceType + usbDevice = removable or isUsbDevice(dev_base) + if not usbDevice: + mountPoint = "/media/hdd" - if os.path.ismount(mountPoint): - mountPoint = "/media/" + kernel + if (mountPoint == None) or (os.path.ismount(mountPoint)): + label = getLabelFromDevName(dev_kernel) + if label: + mountPoint = "/media/" + label + if dev_index and dev_index != '1': + mountPoint += "_%s" % dev_index - elif not os.access(mountPoint, os.F_OK): - os.mkdir(mountPoint) - if not os.access(mountPoint, os.F_OK): - mountPoint = "/media/" + kernel + if (mountPoint == None) or (os.path.ismount(mountPoint)): + model = getModel(dev_base) + if model: + mountPoint = "/media/" + model + if dev_index and dev_index != '1': + mountPoint += "_%s" % dev_index - else: + if (mountPoint == None) or (os.path.ismount(mountPoint)): mountPoint = "/media/" + kernel if not os.access(mountPoint, os.F_OK): diff --git a/meta-openvuplus/recipes-core/udev/udev_182.bbappend b/meta-openvuplus/recipes-core/udev/udev_182.bbappend index 4e285d8..f6a4d97 100644 --- a/meta-openvuplus/recipes-core/udev/udev_182.bbappend +++ b/meta-openvuplus/recipes-core/udev/udev_182.bbappend @@ -1,4 +1,4 @@ -PR .= "-vuplus3" +PR .= "-vuplus4" SRC_URI += " \ file://99_vuplus.rules \ -- 2.7.4