summaryrefslogtreecommitdiff
path: root/testing/udev/udev.install
blob: 272ab60c0a87b3adf8fd66464a14c0ecb01d3aa1 (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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# arg 1:  the new package version
# arg 2:  the old package version

post_upgrade() {
  if [ "$(vercmp $2 172)" -lt 0 ]; then
    echo "ATTENTION UDEV:"
    echo "----------"
    if [ "$(vercmp $2 168)" -lt 0 ]; then
      echo "Kernel 2.6.32 or newer is now required."
      echo "  --"
      echo "OSS emulation modules are not loaded by default, add to rc.conf if needed."
      echo "  --"
      echo "Arch specific cd symlinks are now no longer created."
      echo "  --"
      echo "cd and net persistent rules will no longer be autogenerated,"
      echo "see <https://wiki.archlinux.org/index.php/Udev> for details."
      echo "  --"
      echo "Errors are now logged (possibly to the console) by default."
      echo "  --"
    fi
    if [ "$(vercmp $2 171)" -lt 0 ]; then
      echo "Arch's custom blacklisting logic has been removed. MOD_AUTOLOAD and"
      echo "blacklisting in MODULES no longer works."
      echo "See 'man modprobe.conf' for a replacement to blacklisting."
      echo "To disable a module mod1 on the kernel command line, use"
      echo "mod1.disable=1"
      echo "or"
      echo "modprobe.blacklist=mod1"
      echo "  --"
      echo "The following modules are no longer unconditionally loaded:"
      echo "  pcspkr irtty-sir analog lp ppdev ide-generic"
      echo "Add them to MODULES in rc.conf if you need them."
      echo "  --"
    fi
    echo "Support for non-devtmpfs self-compiled kernels have been moved to udev-compat."
    echo "  --"
    echo "Blacklisting of framebuffer devices has moved from /etc/modprobe.d to"
    echo "/lib/modprobe.d. Any customizations shoud be done to the file in /etc, as it"
    echo "takes precedence."
    echo "  --"
    echo "kbd and rtc devices are no longer world readable."
    echo "  --"
    echo "rtc is no longer in the audio group and fb devices are no longer in"
    echo "the video group, as permissions and ownership of fb devices are controlled"
    echo "by X."
    echo "---------------"
  fi
}

post_install() {
  # If a ramfs is mounted, we still need to make sure that /dev/{console,null,zero} exist
  # The Archlinux installer bind-mounts /dev to /mnt/dev, thus making the real /dev invisible
  ROOTDIR=""
  [ "$(stat -c %D /)" != "$(stat -c %D /dev)" ] && ROOTDIR=$(mktemp -d /tmp/udevinstall.XXXXXX)
  [ -n "${ROOTDIR}" ] && mount --bind / ${ROOTDIR}
  if [ ! -c ${ROOTDIR}/dev/console ]; then
    rm -f ${ROOTDIR}/dev/console
    mknod -m600 ${ROOTDIR}/dev/console c 5 1
  fi
  if [ ! -c ${ROOTDIR}/dev/null ]; then
    rm -f ${ROOTDIR}/dev/null
    mknod -m644 ${ROOTDIR}/dev/null c 1 3
  fi
  if [ ! -c ${ROOTDIR}/dev/zero ]; then
    rm -f ${ROOTDIR}/dev/zero
    mknod -m644 ${ROOTDIR}/dev/zero c 1 5
  fi
  if [ -n "${ROOTDIR}" ]; then
    umount ${ROOTDIR}
    rmdir ${ROOTDIR}
  fi
}