#!/bin/sh # Create all static nodes kmod static-nodes --format=devname | while read -r line; do path=/dev/$(echo "$line" | awk '{print $2}') type=$(echo "$line" | awk '{print $3}' | cut -c1-1) major=$(echo "$line" | awk '{print $3}' | cut -c2- | cut -d':' -f1) minor=$(echo "$line" | awk '{print $3}' | cut -c2- | cut -d':' -f2) # Skip node if it already exists [ -e "$path" ] && continue install -d $(dirname $path) mknod "$path" "$type" "$major" "$minor" done # Set permissions for static nodes according to udev rules in 50-udev-default.rules [ -e /dev/snd/seq ] && chmod 0660 /dev/snd/seq [ -e /dev/snd/timer ] && chmod 0660 /dev/snd/timer [ -e /dev/loop-control ] && chmod 0660 /dev/loop-control [ -e /dev/net/tun ] && chmod 0666 /dev/net/tun [ -e /dev/fuse ] && chmod 0666 /dev/fuse [ -e /dev/vfio/vfio ] && chmod 0666 /dev/vfio/vfio [ -e /dev/kvm ] && chmod 0666 /dev/kvm [ -e /dev/vhost-net ] && chmod 0666 /dev/vhost-net [ -e /dev/vhost-vsock ] && chmod 0666 /dev/vhost-vsock # Set ownership for static nodes according to udev rules in 50-udev-default.rules [ -e /dev/snd/seq ] && chgrp audio /dev/snd/seq [ -e /dev/snd/timer ] && chgrp audio /dev/snd/timer [ -e /dev/loop-control ] && chgrp disk /dev/loop-control [ -e /dev/kvm ] && chgrp kvm /dev/kvm [ -e /dev/vhost-net ] && chgrp kvm /dev/vhost-net [ -e /dev/vhost-vsock ] && chgrp kvm /dev/vhost-vsock