# [solved] Umstieg von udev/openrc auf systemd: udev blockiert

## haegar87

Hallo alle zusammen,

ich versuche gerade mein System von udev/openrc auf systemd umzustellen.

Leider klappt das nicht so wie ich erhofft habe...  :Sad: 

Ich bin dem Wiki zum Umstieg gefolgt, allerdings scheitere ich an dem Punkt der systemd Installation.

Das sagt emerge (emerge -v1 systemd) dazu:

```

These are the packages that would be merged, in order:

Calculating dependencies       ... done!       

[ebuild  N     ] sys-apps/systemd-208-r2:0/1  USE="acl filecaps firmware-loader kmod pam tcpd -audit -cryptsetup -doc -gcrypt -gudev -http -introspection -lzma -policykit -python -qrcode (-selinux) {-test} -vanilla -xattr" ABI_X86="(64) -32 (-x32)" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7" 0 kB

[ebuild  N     ] sys-apps/gentoo-systemd-integration-2  0 kB

[blocks B      ] sys-fs/udev ("sys-fs/udev" is blocking sys-apps/systemd-208-r2)

[blocks B      ] sys-apps/systemd ("sys-apps/systemd" is blocking sys-fs/udev-208)

Total: 2 packages (2 new), Size of downloads: 0 kB

Conflict: 2 blocks (2 unsatisfied)

 * Error: The above package list contains packages which cannot be

 * installed at the same time on the same system.

  (sys-apps/systemd-208-r2::gentoo, ebuild scheduled for merge) pulled in by

    systemd

    >=sys-apps/systemd-207 required by (sys-apps/gentoo-systemd-integration-2::gentoo, ebuild scheduled for merge)

  (sys-fs/udev-208::gentoo, installed) pulled in by

    >=sys-fs/udev-206-r2[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,gudev?,introspection?,kmod?,selinux?,static-libs?] (>=sys-fs/udev-206-r2[abi_x86_64(-),kmod,static-libs]) required by (virtual/udev-206-r3::gentoo, installed)

```

Das leuchtet mir ehrlich gesagt gerade nicht ein, udev sollte doch durch systemd ersetzt werden. 

Daher kann/darf es nicht installiert sein... soweit klar, aber warum kann es dann auch nicht ausgetauscht werden?

Das sagt equery (equery depends virtual/udev) zu den Abhänigkeiten:

```

 * These packages depend on virtual/udev:

dev-libs/libusbx-1.0.17 (udev ? >=virtual/udev-200[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?])

media-libs/mesa-9.2.1 (gbm ? virtual/udev[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?])

net-misc/dhcpcd-6.1.0 (udev ? virtual/udev)

sys-apps/hwids-20130915.1 (udev ? >=virtual/udev-206)

sys-apps/usb_modeswitch-2.0.1_p20130807 (virtual/udev)

sys-apps/util-linux-2.23.2-r2 (udev ? virtual/udev)

sys-auth/consolekit-0.4.6 (acl ? >=virtual/udev-200)

sys-fs/lvm2-2.02.103 (udev ? >=virtual/udev-200[static-libs?])

                     (udev ? virtual/udev[static-libs])

sys-fs/multipath-tools-0.4.9-r5 (>=virtual/udev-171)

sys-fs/udev-208 (>=virtual/udev-206-r2)

sys-fs/udev-init-scripts-26 (>=virtual/udev-180)

virtual/dev-manager-0 (virtual/udev)

x11-base/xorg-server-1.14.3-r2 (udev ? >=virtual/udev-150)

```

Wie soll ich da jemals udev aus dem System kriegen um systemd zu emergen?

Habe auch schon die Holzhammer-Methode probiert: 

- udev per emerge -C raus

- systemd rein (klappt dann ja auch)

- restliche pakete mit useflag Änderung neubauen

  (und da bin ich raus, weil dann wieder udev gepullt wird, was nicht geht, da ja systemd schon da ist -.-)

Ich hoffe jemand von euch kann mir den Klaps in die richtige Richtung geben, ich bin gerade völlig ratlos!

Viele Grüße,

haegar87

----------

## musv

Die Gentoo-Maintainer haben da noch 'ne kleine Gemeinheit eingebaut. Es gibt noch eine Profile-Mask, die dazu führt, dass das Setzen des Systemd-Useflags einfach ignoriert wird. 

1. Profile-Mask "korrigieren":

```
consolekit

-systemd
```

2. USE-Flags setzten:

```
- consolekit

+ gudev

+ introspection

+ systemd
```

3. Systemupdate:

```
emerge --unmerge consolekit udev

emerge -puND world
```

Anmerkung:

Sofern du nfs benutzt, solltest du /etc/mtab nicht auf /proc/self/mounts linken sondern so lassen, wie es ist. Ansonsten kannst du die NFS-Shares als Nutzer nicht mehr unmounten.

----------

## haegar87

Erstmal danke für die Hilfe.

Habe es jetzt probiert, scheitere aber immernoch.

1. Profile-Mask korrigieren

	Die Datei gabs bei mir garnicht, also mit dem angegebenen Inhalt erstellt.

Klappt

2. USE-Flags setzten:

erledigt

3. Systemupdate

emerge --unmerge udev consolekit Klappt

emerge -puDN world

```

 emerge -puND world 

These are the packages that would be merged, in order:

Calculating dependencies         ... done!                      

[ebuild   R    ] sys-apps/busybox-1.21.1  USE="systemd*" 

[ebuild   R    ] media-libs/harfbuzz-0.9.20  USE="introspection*" 

[ebuild  N     ] sys-fs/udev-208  USE="acl firmware-loader gudev introspection kmod openrc static-libs -doc (-selinux)" ABI_X86="(64) -32 (-x32)" 

[ebuild  N     ] virtual/udev-206-r3  USE="gudev introspection kmod static-libs (-selinux)" ABI_X86="(64) -32 (-x32)" 

[ebuild   R    ] sys-auth/pambase-20120417-r3  USE="systemd* (-consolekit*)" 

[ebuild   R    ] sys-apps/dbus-1.6.16  USE="systemd*" 

[ebuild   R    ] app-admin/syslog-ng-3.4.4  USE="systemd*" 

[blocks B      ] sys-fs/udev ("sys-fs/udev" is blocking sys-apps/systemd-208-r2)

[blocks B      ] sys-apps/systemd ("sys-apps/systemd" is blocking sys-fs/udev-208)

 * Error: The above package list contains packages which cannot be

 * installed at the same time on the same system.

  (sys-apps/systemd-208-r2::gentoo, installed) pulled in by

    >=sys-apps/systemd-207 required by (sys-apps/gentoo-systemd-integration-2::gentoo, installed)

    sys-apps/systemd required by (app-admin/syslog-ng-3.4.4::gentoo, ebuild scheduled for merge)

    sys-apps/systemd required by (sys-apps/dbus-1.6.16::gentoo, ebuild scheduled for merge)

    >=sys-apps/systemd-44-r1[pam] required by (sys-auth/pambase-20120417-r3::gentoo, ebuild scheduled for merge)

  (sys-fs/udev-208::gentoo, ebuild scheduled for merge) pulled in by

    >=sys-fs/udev-206-r2[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,gudev?,introspection?,kmod?,selinux?,static-libs?] (>=sys-fs/udev-206-r2[abi_x86_64(-),gudev,introspection,kmod,static-libs]) required by (virtual/udev-206-r3::gentoo, ebuild scheduled for merge)

For more information about Blocked Packages, please refer to the following

section of the Gentoo Linux x86 Handbook (architecture is irrelevant):

http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?full=1#blocked

```

Ergo, er hat zwar die USE-Flag Änderungen geschluckt, systemd habe ich nachdem entfernen von udev manuell emerged.

Allerdings will er immernoch udev wieder aufspielen, (gepullt durch virtual/udev).

virtual/udev hat auch immernoch Abhänigkeiten:

equery depends virtual/udev

```

 * These packages depend on virtual/udev:

dev-libs/libusbx-1.0.17 (udev ? >=virtual/udev-200[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?])

media-libs/mesa-9.2.1 (gbm ? virtual/udev[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?])

net-misc/dhcpcd-6.1.0 (udev ? virtual/udev)

sys-apps/hwids-20130915.1 (udev ? >=virtual/udev-206)

sys-apps/usb_modeswitch-2.0.1_p20130807 (virtual/udev)

sys-apps/util-linux-2.23.2-r2 (udev ? virtual/udev)

sys-fs/lvm2-2.02.103 (udev ? >=virtual/udev-200[static-libs?])

                     (udev ? virtual/udev[static-libs])

sys-fs/multipath-tools-0.4.9-r5 (>=virtual/udev-171)

sys-fs/udev-init-scripts-26 (>=virtual/udev-180)

virtual/dev-manager-0 (virtual/udev)

x11-base/xorg-server-1.14.3-r2 (udev ? >=virtual/udev-150)

```

Also leider keine Verbesserung der Situtation.

Woran liegt das nur?

Anbei noch meine make.conf, wobei ich nicht glaube, dass da ein Fehler drin ist:

```

# These settings were set by the catalyst build script that automatically

# built this stage.

# Please consult /usr/share/portage/config/make.conf.example for a more

# detailed example.

CFLAGS="-O2 -pipe -march=native"

CXXFLAGS="${CFLAGS}"

# WARNING: Changing your CHOST is not something that should be done lightly.

# Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.

CHOST="x86_64-pc-linux-gnu"

# These are the USE flags that were used in addition to what is provided by the

# profile used for building.

USE="-bluetooth -consolekit systemd introspection gudev alsa dbus jpeg lock session startup-notification mmx sse sse2 smp"

MAKEOPTS="-j9"

ACCEPT_KEYWORDS="~amd64"

LINGUAS="de"

GRUB_PLATFORMS="efi-64"

FEATURES="candy buildpkg"

VIDEO_CARDS="nouveau"

INPUT_DEVICES="evdev synaptics"

PKGDIR="/opt/portage/packages"

DISTDIR="/opt/portage/distfiles"

GENTOO_MIRRORS="ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo ftp://mirror.netcologne.de/gentoo/ ftp://ftp.halifax.rwth-aachen.de/gentoo/ ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo ftp://ftp.spline.inf.fu-berlin.de/mirrors/gentoo/ ftp://ftp.tu-clausthal.de/pub/linux/gentoo/ ftp://ftp.uni-erlangen.de/pub/mirrors/gentoo ftp://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/ ftp://ftp.join.uni-muenster.de/pub/linux/distributions/gentoo ftp://ftp6.uni-muenster.de/pub/linux/distributions/gentoo"

SYNC="rsync://rsync.de.gentoo.org/gentoo-portage"

# Using wget, ratelimiting downloads

#FETCHCOMMAND="/usr/bin/wget -t 5 --passive-ftp --limit-rate=128k \${URI} -P \${DISTDIR}"

#RESUMECOMMAND="/usr/bin/wget -c -t 5 --passive-ftp --limit-rate=128k \${URI} -P \${DISTDIR}"

# Set PORTDIR for backward compatibility with various tools:

#   gentoo-bashcomp - bug #478444

#   euse - bug #474574

#   euses and ufed - bug #478318

PORTDIR="/usr/portage"

```

Viele Grüße,

haegar87

----------

## musv

 *haegar87 wrote:*   

> 1. Profile-Mask korrigieren
> 
> 	Die Datei gabs bei mir garnicht, also mit dem angegebenen Inhalt erstellt.

 

Ist korrekt so. Die Datei ist per default nicht vorhanden. 

 *haegar87 wrote:*   

> virtual/udev hat auch immernoch Abhänigkeiten:

 

virtual/udev ist bei mir auch installiert. Das ist korrekt so. Udev wurde ja nur in Systemd integriert. Das virtuelle Paket stellt ja nur sicher, dass eine Udev-Implementierung (Udev, Systemd, eudev) installiert ist. 

```
[N] sys-fs/udev ((~)208): Linux dynamic and persistent device naming support (aka userspace devfs)

[I] virtual/udev (206-r3@15.10.2013): Virtual to select between sys-fs/udev and sys-fs/eudev

2 Treffer.
```

Ich glaub, ich hatte ein ähnliches Problem. Eventuell kriegst du eine bessere Fehlermeldung, wenn du sys-fs/udev in package.mask einträgst:

```

sys-fs/udev
```

Desweiteren probier mal die Pakete einzeln (erst busybox, dann harfbuzz, pambase, dbus, syslog-ng, virtual/udev) zu installieren, um zu sehen, bei welchem Paket die Abhängigkeit gefordert wird. Allerdings sieht es bei Dir eher nach einem globalen Problem aus, was meist durch irgendein Use-Flag hervorgerufen wird. 

Ansonsten hab ich noch mal meine Konfiguration durchgesehen. Ich finde eigentlich keinen Unterschied mehr.

----------

## Josef.95

 *haegar87 wrote:*   

> Allerdings will er immernoch udev wieder aufspielen, (gepullt durch virtual/udev).

 

Hallo haegar87, es liegt wahrscheinlich am static-libs Useflag welches bei virtual/udev gesetzt ist. Dieses kann nicht von systemd erfüllt werden, daher wird immer wieder sys-fs/udev verlangt (welches static-libs erfüllen könnte).

----------

## py-ro

profile.mask ist die "falsche" Lösung, wechsel einfach auf eines der systemd Sub-Profile.  :Wink: 

----------

## haegar87

Hallo alle zusammen,

so jetzt habe ich Neuigkeiten! Es funktioniert...  :Wink: 

Es lag tatsächlich an der static-libs USE-Flag von udev, kaum war die draußen, schon ging es sofort.

@musv:

Ich bedanke mich für die ausführliche Hilfe, wir sind ja schließlich (fast) drauf gekommen.

@Josef.95:

Danke für die Hilfe, das mit der USE-Flag war der entscheidende Hinweis.

@py-ro:

Ich fürchte das ist nicht möglich. systemd-Subprofile gibt es nur für kde und gnome (soweit ich das gesehen habe).

Da ich aber eine andere Oberfläche nutze, nutze ich das amd64/13.0/desktop Profil.

Dafür gibts leider kein systemd Sub-Profil.

EDIT: Vielleicht verwechsel ich dich, aber hatten wir uns nicht mal über XEN und VGA-Passthrough unterhalten?

Nochmals danke an alle für die Hilfe!

Viele Grüße,

haegar87

----------

