# [SOLVED] udev-212-r1 there is no /sbin/udevd

## zhaleks

Hi.

May be i've missed something, but there in no udevd in the /sbin, so /etc/init.d/udev won't start.

I've downgraded back to udev-208, where udevd still exist.

```

Portage 2.2.8-r1 (default/linux/amd64/13.0/desktop/kde, gcc-4.7.3, glibc-2.17, 3.12.13-gentoo x86_64)

=================================================================

System uname: Linux-3.12.13-gentoo-x86_64-AMD_Athlon-tm-_7550_Dual-Core_Processor-with-gentoo-2.2

KiB Mem:     4048836 total,   2458964 free

KiB Swap:    4194300 total,   4194300 free

Timestamp of tree: Sat, 10 May 2014 08:00:01 +0000

ld GNU ld (GNU Binutils) 2.23.2

app-shells/bash:          4.2_p45

dev-lang/python:          2.7.5-r3

dev-util/cmake:           2.8.12.2

dev-util/pkgconfig:       0.28

sys-apps/baselayout:      2.2

sys-apps/openrc:          0.12.4

sys-apps/sandbox:         2.6-r1

sys-devel/autoconf:       2.13, 2.69

sys-devel/automake:       1.11.6, 1.12.6, 1.13.4

sys-devel/binutils:       2.23.2

sys-devel/gcc:            4.7.3-r1

sys-devel/gcc-config:     1.7.3

sys-devel/libtool:        2.4.2

sys-devel/make:           3.82-r4

sys-kernel/linux-headers: 3.9 (virtual/os-headers)

sys-libs/glibc:           2.17

Repositories: gentoo local

ACCEPT_KEYWORDS="amd64"

ACCEPT_LICENSE="* -@EULA PUEL"

CBUILD="x86_64-pc-linux-gnu"

CFLAGS="-march=amdfam10 -O2 -pipe"

CHOST="x86_64-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"

CXXFLAGS="-march=amdfam10 -O2 -pipe"

DISTDIR="/home/distfiles"

FCFLAGS="-O2 -pipe"

FEATURES="assume-digests binpkg-logs buildpkg config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"

FFLAGS="-O2 -pipe"

GENTOO_MIRRORS="http://distfiles.gentoo.org"

INSTALL_MASK="/lib/systemd /lib32/systemd /lib64/systemd /usr/lib/systemd /usr/lib32/systemd /usr/lib64/systemd /etc/systemd"

LANG="ru_RU.utf8"

LDFLAGS="-Wl,-O1 -Wl,--as-needed"

MAKEOPTS="-j3"

PKGDIR="/home/packages/amd64/amdfam10/kde"

PORTAGE_CONFIGROOT="/"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY="/usr/local/portage"

USE="3dnow 3dnowext X a52 aac acl acpi ads alsa amd64 avcodec berkdb bittorrent bluetooth branding bzip2 cairo cdda cddb cdr cli consolekit cracklib crypt cups cxx dbus declarative dhcp dhcpcd djvu dri dts dvd dvdr ebook emboss encode exif extensions extras faac faad fam ffmpeg firefox flac fortran g3dvl gallium gif git gpm gsm h323 iconv icq iproute2 iptables ipv6 jabber jingle jpeg kde kdepim kerberos kipi lame lcms ldap lm_sensors mad matroska melt mercurial minizip mmx mmxext mng modemmanager modules mp3 mp4 mpeg mtp multilib musepack mysql ncurses networkmanager nls nptl ogg opengl openmp openrc oscar pam pango pcre pdf perl phonon plasma png policykit ppds qt3support qt4 rar rdesktop readline rpm samba schroedinger sctp sdl semantic-desktop session sip skype spandsp speex spell sqlite sse sse2 sse3 sse4 ssl startup-notification svg taglib tcpd theora tiff truetype twolame udev udisks unicode upcall upower usb v4l video vlc vnc vorbis wav wavpack winbind x264 xcb xcomposite xinerama xml xv xvid zlib" ABI_X86="64" ALSA_CARDS="emu10k1 hda-intel" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="adc65 agfa_cl20 aox barbie canon casio_qv clicksmart310 digigr8 digita dimagev dimera3500 directory enigma13 fuji gsmart300 hp215 iclick jamcam jd11 jl2005a kodak_dc120 kodak_dc210 kodak_dc240 kodak_dc3200 kodak_ez200 konica konica_qm150 largan lg_gsm mars mustek panasonic_coolshot panasonic_dc1000 panasonic_dc1580 panasonic_l859 pccam300 pccam600 polaroid_pdc320 polaroid_pdc640 polaroid_pdc700 ptp2 ricoh ricoh_g3 samsung sierra sipix_blink sipix_blink2 sipix_web2 smal sonix sony_dscf1 sony_dscf55 soundvision spca50x sq905 stv0674 stv0680 sx330z template topfield toshiba_pdrm11" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="evdev mouse keyboard" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="ru en ru_RU" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7" RUBY_TARGETS="ruby19 ruby20" USERLAND="GNU" VIDEO_CARDS="fbdev nouveau vesa" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"

Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, SYNC, USE_PYTHON

```

```

# tar -tjf udev-212-r1.tbz2

./

./usr/

./usr/include/

./usr/include/gudev-1.0/

./usr/include/gudev-1.0/gudev/

./usr/include/gudev-1.0/gudev/gudevenums.h

./usr/include/gudev-1.0/gudev/gudevtypes.h

./usr/include/gudev-1.0/gudev/gudevdevice.h

./usr/include/gudev-1.0/gudev/gudev.h

./usr/include/gudev-1.0/gudev/gudevclient.h

./usr/include/gudev-1.0/gudev/gudevenumtypes.h

./usr/include/gudev-1.0/gudev/gudevenumerator.h

./usr/include/libudev.h

./usr/share/

./usr/share/pkgconfig/

./usr/share/pkgconfig/udev.pc

./usr/share/bash-completion/

./usr/share/bash-completion/udevadm

./usr/share/gir-1.0/

./usr/share/gir-1.0/GUdev-1.0.gir

./usr/share/doc/

./usr/share/doc/udev-212-r1/

./usr/share/doc/udev-212-r1/TODO.bz2

./usr/share/doc/udev-212-r1/DISTRO_PORTING.bz2

./usr/share/doc/udev-212-r1/NEWS.bz2

./usr/share/doc/udev-212-r1/README.bz2

./usr/share/man/

./usr/share/man/man8/

./usr/share/man/man8/udevadm.8.bz2

./usr/share/man/man8/systemd-udevd.8.bz2

./usr/share/man/man7/

./usr/share/man/man7/udev.7.bz2

./usr/share/man/man5/

./usr/share/man/man5/systemd.link.5.bz2

./usr/lib64/

./usr/lib64/pkgconfig/

./usr/lib64/pkgconfig/libudev.pc

./usr/lib64/pkgconfig/gudev-1.0.pc

./usr/lib64/libudev.so

./usr/lib64/libgudev-1.0.so

./usr/lib64/girepository-1.0/

./usr/lib64/girepository-1.0/GUdev-1.0.typelib

./usr/lib64/libgudev-1.0.so.0.2.0

./usr/lib64/libgudev-1.0.so.0

./lib/

./lib/systemd/

./lib/systemd/systemd-udevd

./lib/systemd/network/

./lib/systemd/network/99-default.link

./lib/udev/

./lib/udev/collect

./lib/udev/rules.d/

./lib/udev/rules.d/60-cdrom_id.rules

./lib/udev/rules.d/75-tty-description.rules

./lib/udev/rules.d/60-persistent-alsa.rules

./lib/udev/rules.d/78-sound-card.rules

./lib/udev/rules.d/60-persistent-serial.rules

./lib/udev/rules.d/50-udev-default.rules

./lib/udev/rules.d/80-net-setup-link.rules

./lib/udev/rules.d/50-firmware.rules

./lib/udev/rules.d/64-btrfs.rules

./lib/udev/rules.d/60-keyboard.rules

./lib/udev/rules.d/75-net-description.rules

./lib/udev/rules.d/60-drm.rules

./lib/udev/rules.d/61-accelerometer.rules

./lib/udev/rules.d/42-usb-hid-pm.rules

./lib/udev/rules.d/60-persistent-storage-tape.rules

./lib/udev/rules.d/95-udev-late.rules

./lib/udev/rules.d/60-persistent-storage.rules

./lib/udev/rules.d/80-drivers.rules

./lib/udev/rules.d/60-persistent-input.rules

./lib/udev/rules.d/40-gentoo.rules

./lib/udev/rules.d/75-probe_mtd.rules

./lib/udev/rules.d/60-persistent-v4l.rules

./lib/udev/v4l_id

./lib/udev/cdrom_id

./lib/udev/mtd_probe

./lib/udev/scsi_id

./lib/udev/accelerometer

./lib/udev/ata_id

./etc/

./etc/systemd/

./etc/systemd/network/

./etc/udev/

./etc/udev/rules.d/

./etc/udev/hwdb.d/

./etc/udev/udev.conf

./lib64/

./lib64/libudev.so.1

./lib64/libudev.so.1.4.0

./bin/

./bin/udevadm

```

Last edited by zhaleks on Sun May 11, 2014 6:39 am; edited 1 time in total

----------

## aCOSwt

 *zhaleks wrote:*   

> there in no udevd in the /sbin, so /etc/init.d/udev won't start.
> 
> ```
> 
> # tar -tjf udev-212-r1.tbz2
> ...

 

As far as I understand, this is the command you are looking for.

my /etc/init.d/udev says:

```
    bins="/sbin/udevd /lib/systemd/systemd-udevd /usr/lib/systemd/systemd-udevd"

    for f in ${bins}; do

        if [ -x "$f" -a ! -L "$f" ]; then

            command="$f"

        fi

    done

    if [ -z "$command" ]; then

        eerror "Unable to find udev executable."

        return 1

    fi
```

I don't get the 212-r1 installed on the machine I am on now.

If you are sure having run etc-update command (or equivalent) after updating udev, perhaps you could check for occurrences of "udevd" and report.

----------

## zhaleks

Hi!

So, this is it, the time has come. I should remove "/lib/systemd" from INSTALL_MASK?

May be should be some sort of checks inside ebuild for this matter, or some noobs, like me, will bricks his systems?

----------

## SamuliSuominen

 *zhaleks wrote:*   

> Hi!
> 
> So, this is it, the time has come. I should remove "/lib/systemd" from INSTALL_MASK?
> 
> May be should be some sort of checks inside ebuild for this matter, or some noobs, like me, will bricks his systems?

 

INSTALL_MASK is users own responsibility, it was overwhelmingly voted in the mailing list there should be no warnings of anykind from it.

See this thread, http://www.mail-archive.com/gentoo-dev@lists.gentoo.org/msg63099.html

Except there still was a warning Portage printed out as a critical news message:

http://sources.gentoo.org/gitweb/?p=proj/gentoo-news.git;a=blob_plain;f=2014/2014-02-25-udev-upgrade/2014-02-25-udev-upgrade.en.txt;hb=HEAD

----------

## zhaleks

Hi!

Sorry for inconvenience and thanks for patience.

But, there are no lines about INSTALL_MASK...

And anyway, thanks for teaching.

```

>>> Installing (1 of 1) sys-fs/udev-212-r1

 * Removing /lib/systemd

 * Removing /lib32/systemd

 * Removing /lib64/systemd

 * Removing /usr/lib/systemd

 * Removing /usr/lib32/systemd

 * Removing /usr/lib64/systemd

 * Removing /etc/systemd

 *

 * Starting from version >= 197 the new predictable network interface names are

 * used by default, see:

 * http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames

 * http://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c

 *

 * Example command to get the information for the new interface name before booting

 * (replace <ifname> with, for example, eth0):

 * # udevadm test-builtin net_id /sys/class/net/<ifname> 2> /dev/null

 *

 * You can use either kernel parameter "net.ifnames=0", create empty

 * file /etc/systemd/network/99-default.link, or symlink it to /dev/null

 * to disable the feature.

 *

 * You need to restart udev as soon as possible to make the upgrade go

 * into effect.

 * The method you use to do this depends on your init system.

 * For sys-apps/openrc users it is:

 * # /etc/init.d/udev --nodeps restart

 *

 * For more information on udev on Gentoo, upgrading, writing udev rules, and

 * fixing known issues visit:

 * http://wiki.gentoo.org/wiki/Udev

 * http://wiki.gentoo.org/wiki/Udev/upgrade

```

Last edited by zhaleks on Sun May 11, 2014 7:10 am; edited 1 time in total

----------

## SamuliSuominen

 *zhaleks wrote:*   

> Hi!
> 
> Sorry for inconvenience and thanks for patience.
> 
> But, there is no lines about INSTALL_MASK...
> ...

 

Postinst message is not the same thing as critical news message.

```

# eselect news list

# eselect news read <item>

```

----------

## Hu

The linked mailing list post seems disingenuous at best.  I use INSTALL_MASK and its sibling PKG_INSTALL_MASK to strip out systemd garbage because I already know that I will never run systemd.  The documentation for these flags makes no mention of how unsupported they are, but that is not a problem if packages commit to keeping their files in a consistent place.  Upgrading to a new version should not suddenly migrate an important file from a location that was permitted to a location that is commonly masked.

I consider it a mistake by upstream that they keep moving udev around like this.  My current settings work fine with the version of udev I have installed, and will break when I upgrade to the version where upstream put it somewhere stupid.  In my opinion, it should have stayed in /sbin//usr/sbin like other system-service daemons (acpid, syslog-ng, rpcbind, rpc.statd, rpc.mountd, automount, nscd, ntpd, cron, dhcpd, sshd, to name just the common ones I see running right now).  Fortunately for me, I did see the news message and took the only logical response: locally masking the broken versions of udev before they get keyworded for my system.

----------

## Anon-E-moose

 *Hu wrote:*   

> I consider it a mistake by upstream that they keep moving udev around like this.  In my opinion, it should have stayed in /sbin//usr/sbin like other system-service daemons....

 

It's not a mistake. They're deliberately doing it.

And yet another reason for using something like eudev that isn't under the control of malicious morons.

----------

## SamuliSuominen

 *Hu wrote:*   

> In my opinion, it should have stayed in /sbin//usr/sbin like other system-service daemons (acpid, syslog-ng, rpcbind, rpc.statd, rpc.mountd, automount, nscd, ntpd, cron, dhcpd, sshd, to name just the common ones I see running right now).  Fortunately for me, I did see the news message and took the only logical response: locally masking the broken versions of udev before they get keyworded for my system.

 

No, upstream started installing file /lib/systemd/network/99-default.link as network interface name configuration which is critical, so directory structure /lib/systemd/ was created anyway, thus, it made no longer sense to move udevd out from there. Now it has

2 purposes, the daemon, and the network interface name configuration.

Alternative would have been diverging even more from upstream, but that's generally a bad idea, better to stick to upstream locations for documentation/man pages/and so forth.

----------

## aCOSwt

 *Hu wrote:*   

> Fortunately for me, I did see the news message and took the only logical response: locally masking the broken versions of udev before they get keyworded for my system.

 

So, your problem is solved, isn't it ?

 *Anon-E-moose wrote:*   

> And yet another reason for using something like eudev

 

So, your problem is solved, isn't it ?

 *zhaleks wrote:*   

> [SOLVED] udev-212-r1 there is no /sbin/udevd

 

So, this very problem is solved, isn't it ?

So... apart from helping the maintainers of the Miscellaneous Charming Qualifiers Thesaurus... what is the yet unsatisfied help request we are trying to address in there ?

----------

## Hu

 *Anon-E-moose wrote:*   

>  *Hu wrote:*   I consider it a mistake by upstream that they keep moving udev around like this.  In my opinion, it should have stayed in /sbin//usr/sbin like other system-service daemons.... 
> 
> It's not a mistake. They're deliberately doing it.
> 
> And yet another reason for using something like eudev that isn't under the control of malicious morons.

 Perhaps I was unclear.  I consider it a mistake in the sense that it is a stupid decision / bad idea, not in the sense that it was an accident that they will recognize and fix on their own.

aCOSwt: my only problem is that I have not yet taken the time to migrate all my systems away from a package with an upstream that, as Anon-E-moose nicely put it, are malicious morons.  OP's problem was already solved when I found the thread, but I thought it appropriate to point out that not everyone on the forums thinks this mess is a good idea.

----------

## aCOSwt

 *Hu wrote:*   

> I thought it appropriate to point out that not everyone on the forums thinks this mess is a good idea.

 

Fair enough.

So you can understand when I think it appropriate to point out that not everyone on the forums thinks that messing this help thread is a good idea.

----------

