blob: d728aeb35057fd097fc63ae8e04b0f7e1c124ca5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
#!/bin/sh
# Autogenerated udev bootstrap for Silicon Motion USB Display
start_service() { systemctl start smiusbdisplay; }
stop_service() { systemctl stop smiusbdisplay; }
create_siliconmotion_symlink() {
root=$1; device_id=$2; devnode=$3
mkdir -p "$root/siliconmotion/by-id"
ln -sf "$devnode" "$root/siliconmotion/by-id/$device_id"
}
unlink_siliconmotion_symlink() {
root=$1; devname=$2
for f in "$root/siliconmotion/by-id/"*; do
{ [ ! -e "$f" ] || { [ -L "$f" ] && [ "$f" -ef "$devname" ]; }; } && unlink "$f" 2>/dev/null || true
done
(cd "$root" && rmdir -p --ignore-fail-on-non-empty siliconmotion/by-id 2>/dev/null) || true
}
main() {
action=$1; root=$2; devnode=$4
case "$action" in
add)
device_id=$3
create_siliconmotion_symlink "$root" "$device_id" "$devnode"
start_service
;;
remove)
devname=$3
unlink_siliconmotion_symlink "$root" "$devname"
;;
START)
start_service
;;
esac
}
main "$@"
|