Announcement

Collapse
No announcement yet.

NetworkManager Merges An Initrd Generator For Early Boot Handling

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • NetworkManager Merges An Initrd Generator For Early Boot Handling

    Phoronix: NetworkManager Merges An Initrd Generator For Early Boot Handling

    Days following the NetworkManager 1.14 release, feature activity on the next release is progressing and the newest addition is nm-initrd-generator...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    I am trying to figure out the use cases for this, the main one I have come up with is the PXE boot process that would help out the initial OS load.

    what else?

    Comment


    • #3
      Originally posted by boxie View Post
      I am trying to figure out the use cases for this, the main one I have come up with is the PXE boot process that would help out the initial OS load.

      what else?
      Yes, exactly this. Currently, the early boot network configuration is usually pretty hacky and distro-specific. Typically a bunch of shell scripts crunch the command line and configure (create, in case of bonds, vlans, etc.) the interfaces, bring them up and eventually start and stop dhclient. After the real init is run and NetworkManager is started, guesswork is needed to identify the connections activated on early boot (so that DHCP addresses are renewed and so on.)

      The part that has now been merged parses the same command line arguments (in a compatible manner) but instead of applying things it generates NetworkManager configuration in /run. Then an instance of NetworkManager can be run to apply the configuration, write a state file in /run, and exit. After the root is mounted and the real init runs the NetworkManager service, it can get an idea of what has been configured already by reading stuff from there. No guesswork needed.

      The aim is to clean up the network boot process and reuse the broad network device support NetworkManager has. A nice side-advantage is that NetworkManager can do DHCP without dhclient with its internal (systemd-networkd based) DHCP client, that for some reason ends up being faster.

      Comment


      • #4
        Originally posted by lkundrak View Post

        Yes, exactly this. Currently, the early boot network configuration is usually pretty hacky and distro-specific. Typically a bunch of shell scripts crunch the command line and configure (create, in case of bonds, vlans, etc.) the interfaces, bring them up and eventually start and stop dhclient. After the real init is run and NetworkManager is started, guesswork is needed to identify the connections activated on early boot (so that DHCP addresses are renewed and so on.)

        The part that has now been merged parses the same command line arguments (in a compatible manner) but instead of applying things it generates NetworkManager configuration in /run. Then an instance of NetworkManager can be run to apply the configuration, write a state file in /run, and exit. After the root is mounted and the real init runs the NetworkManager service, it can get an idea of what has been configured already by reading stuff from there. No guesswork needed.

        The aim is to clean up the network boot process and reuse the broad network device support NetworkManager has. A nice side-advantage is that NetworkManager can do DHCP without dhclient with its internal (systemd-networkd based) DHCP client, that for some reason ends up being faster.
        Thank you for explaining that! It now makes more sense as to why it is.

        Comment


        • #5
          Originally posted by lkundrak View Post

          Yes, exactly this. Currently, the early boot network configuration is usually pretty hacky and distro-specific. Typically a bunch of shell scripts crunch the command line and configure (create, in case of bonds, vlans, etc.) the interfaces, bring them up and eventually start and stop dhclient. After the real init is run and NetworkManager is started, guesswork is needed to identify the connections activated on early boot (so that DHCP addresses are renewed and so on.)

          The part that has now been merged parses the same command line arguments (in a compatible manner) but instead of applying things it generates NetworkManager configuration in /run. Then an instance of NetworkManager can be run to apply the configuration, write a state file in /run, and exit. After the root is mounted and the real init runs the NetworkManager service, it can get an idea of what has been configured already by reading stuff from there. No guesswork needed.

          The aim is to clean up the network boot process and reuse the broad network device support NetworkManager has. A nice side-advantage is that NetworkManager can do DHCP without dhclient with its internal (systemd-networkd based) DHCP client, that for some reason ends up being faster.
          I thought some distros already used systemd and systemd-networkd for this. NetworkManager only seems worth using if you need complex wireless set up, but those machines rarely do PXE boot, I'd guess.

          Comment

          Working...
          X