On Mon, 18 Mar 2024 11:15:36 +0900 Dominique Martinet <dominique.martinet@xxxxxxxxxxxxxxxxx> wrote: > David Lechner wrote on Fri, Mar 15, 2024 at 10:53:36AM -0500: > > How about using udev rules to create symlinks for each device based on > > the label attribute? No changes to the kernel are needed. > > Right, it's definitely possible to make symlinks for each "device" -- my > patch comment links to such an udev script "solution": > https://git.toradex.com/cgit/meta-toradex-bsp-common.git/tree/recipes-core/udev/files/verdin-imx8mm/toradex-adc.sh?h=kirkstone-6.x.y > (the script is launched by udev here: > https://git.toradex.com/cgit/meta-toradex-bsp-common.git/tree/recipes-core/udev/files/verdin-imx8mm/99-toradex.rules > ) > > My conceptual problem with this is that this makes symlinks in /dev to > files in /sys and it feels like we're crossing boundaries. > As far as I can tell there is no way for userspace to create arbitrary > symlinks in /sys, so I think we could have an interface more > user-friendly by allowing paths to be static for users with multiple > devices. > (I guess that's a weak argument given e.g. disks etc will also have an > unreliable name in /sys in the general case, but simple programs don't > interact with them in /sys and can use stable links in /dev so my > expectations here aren't quite the same) > > > Ultimately, the problem might run deeper in that we're having userspace > interact with the device through /sys and not the /dev char dev... As > far as I could see /dev/iio:deviceX only allows reading buffered values > and doesn't have any ioctl or other way of reading immediate values as > is possible in /sys though, so that'd require quite a bit of work to > duplicate the interface there... Don't. The sysfs interface as only control is entirely intentional and we do not want IOCTL based duplication. Just addressing this bit as I'm still a bit snowed under to think about this more generally.