Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The 35network-legacy is still used even if network-scripts isn't installed in Fedora 29 #488

Open
nullr0ute opened this issue Nov 11, 2018 · 8 comments

Comments

@nullr0ute
Copy link
Contributor

commented Nov 11, 2018

In Fedora 29 there's a lot of use cases where the old initscripts/network-scripts are no longer installed and as of dracut 049 the network bits were split into 35network-legacy and 35network-manager modules but in a lot of cases the network-legacy is still used even if initscripts/network-scripts aren't present.

This seems to cause issues when there's no link on wired ethernet connections and we see timeouts where the device doesn't complete booting with the following errors:

[   20.228216] dracut-initqueue[383]: Warning: No carrier detected on interface eth0
[  195.081185] dracut-initqueue[383]: Warning: dracut-initqueue timeout - starting timeout

Looking through the modules I can't seem to work out how it chooses the network-manager module vs the network-legacy modules.

@nullr0ute

This comment has been minimized.

Copy link
Contributor Author

commented Nov 11, 2018

@lkundrak do you have any suggestions/thoughts about this?

@puiterwijk

This comment has been minimized.

Copy link

commented Nov 11, 2018

@nullr0ute I just checked the 40network module, and it does the decision between network-legacy and network-manager, based on /usr/libexec/nm-initrd-generator. But there is no RPM that provides that binary in either Fedora 29 or Rawhide at this moment.
So I am guessing that that path might be wrong, or it depends on something that's not in Fedora yet?
Both 35network-manager and 35network-legacy return 255 from their check() functions, which mean they get selected if something depends on them.

The relevant code from 40network/module-setup.sh:

depends() {
    echo -n "kernel-network-modules "
    if ! dracut_module_included "network-legacy" && [ -x "/usr/libexec/nm-initrd-generator" ] ; then
        echo "network-manager"
    else
        echo "network-legacy"
    fi
    return 0
}
@haraldh

This comment has been minimized.

Copy link
Collaborator

commented Nov 12, 2018

My understanding is, that without nm-initrd-generator no kernel cmdline parsing by NM is done, so, as soon as NM is ready, that file will be provided.

@haraldh

This comment has been minimized.

Copy link
Collaborator

commented Nov 12, 2018

Oh, and btw, network-legacy refers to dracut network-legacy and not to initscripts network-scripts.

@nullr0ute

This comment has been minimized.

Copy link
Contributor Author

commented Nov 12, 2018

So we're seeing a regression in network related stuff in recent versions of dracut if there's no network link and I'm not sure why that is then.

@haraldh

This comment has been minimized.

Copy link
Collaborator

commented Nov 12, 2018

@nullr0ute what is the kernel command line? rdsosreport.txt with rd.debug enabled?

@nullr0ute

This comment has been minimized.

Copy link
Contributor Author

commented Nov 14, 2018

Kernel command line is:
[ 0.000000] Kernel command line: BOOT_IMAGE=/ostree/fedora-iot-578355f971db3df3e514998aa6fc506bc0d99aabecff5694337fd45686ee7678/vmlinuz-4.18.16-300.fc29.aarch64 net.ifnames=0 modprobe.blacklist=vc4 root=UUID=953c1a31-ccad-4ca3-815a-585f34204601 ostree=/ostree/boot.1/fedora-iot/578355f971db3df3e514998aa6fc506bc0d99aabecff5694337fd45686ee7678/0

@haraldh

This comment has been minimized.

Copy link
Collaborator

commented Nov 15, 2018

Kernel command line is:
[ 0.000000] Kernel command line: BOOT_IMAGE=/ostree/fedora-iot-578355f971db3df3e514998aa6fc506bc0d99aabecff5694337fd45686ee7678/vmlinuz-4.18.16-300.fc29.aarch64 net.ifnames=0 modprobe.blacklist=vc4 root=UUID=953c1a31-ccad-4ca3-815a-585f34204601 ostree=/ostree/boot.1/fedora-iot/578355f971db3df3e514998aa6fc506bc0d99aabecff5694337fd45686ee7678/0

I don't see any ip= arguments here.. so no network in the initramfs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants
You can’t perform that action at this time.