35 lines
1.4 KiB
Bash
35 lines
1.4 KiB
Bash
#!/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
|