Skip to content

feat(live): Added new boot option "live.net_config_tui=1"#2923

Merged
lslezak merged 6 commits intomasterfrom
interactive_network_config
Jan 9, 2026
Merged

feat(live): Added new boot option "live.net_config_tui=1"#2923
lslezak merged 6 commits intomasterfrom
interactive_network_config

Conversation

@lslezak
Copy link
Copy Markdown
Contributor

@lslezak lslezak commented Dec 1, 2025

Problem

  • Manual network configuration using the dracut boot options is not easy

Solution

  • Added new boot option live.net_config_tui=1 to interactively configure network settings using the nmtui tool.
  • Additional features:
    • Allow configuring the HTTP proxy
    • Display the network configuration summary
    • Added network test button which tries connecting to www.suse.com to check that the network setup is correct.

Testing

  • Tested manually

Notes

  • It turned out that configuring the Wifi network is not possible because the drivers are missing in the initrd. In theory after adding the Wifi drivers (and firmware if required) it should be possible to configure also the Wifi cards and use them for downloading the self-updates.

Screenshots

The initial summary screen:
agama-net-config-summary-devices

After pressing "Edit" button the nmtui tool is started
agama-net-config-edit

Then the user is asked to optionally configure the HTTP proxy:
agama-net-config-proxy

Then the summary dialog is displayed again. After pressing the "Test connection" button a request to https://www.suse.com is sent and the result is displayed on the screen:
agama-net-config-test

When the "Continue" button is pressed in the summary the boot process continues as usually.

A proof that the configured network proxy is used in the self-update step later:
nmtui7

to interactively configure network settings using the "nmtui" tool.
@mvidner
Copy link
Copy Markdown
Contributor

mvidner commented Dec 9, 2025

This is nice!
Regarding the name of the boot option, maybe we want to use live.net_config_tui=1 to say in what the point is, otherwise the name is IMHO too generic.

@teclator
Copy link
Copy Markdown
Contributor

Apart of the already commented issue about missing WiFi drivers, I also miss some screen / view with the current devices, it allows you to add new connections or edit existing ones, you added the nmcli show screen which is nice, but if you try to edit the existing default connection which is not bind to an specific device and you want to assign it to some device you need to know in advance the interface names because it is an empty input.

There is also no devices list which allows you to generate a connection per device, but in general it looks good for adding or editing connections and also for setting the hostname and proxy.

@lslezak
Copy link
Copy Markdown
Contributor Author

lslezak commented Dec 18, 2025

Thanks for the feedback!

I also miss some screen / view with the current devices

I updated the workflow to first display the summary and then allow changing the configuration.

@lslezak lslezak changed the title feat(live): Added new boot option "live.net_config=1" feat(live): Added new boot option "live.net_config_tui=1" Jan 2, 2026
@Martin-Weiss
Copy link
Copy Markdown

Just found this issue and it seems I need exactly this feature to "replace" what we have been doing in the past with this:

netsetup=hostip,gateway,nameserver netmask=255.255.255.0 gateway=10.1.1.1 nameserver=10.1.1.1 netwait=10

Would it be possible to implement this simlarly so that a user is just prompted for what we want and with pre-defined / prefilled content for the variables?

@lslezak
Copy link
Copy Markdown
Contributor Author

lslezak commented Jan 8, 2026

Would it be possible to implement this simlarly so that a user is just prompted for what we want and with pre-defined / prefilled content for the variables?

Um, that would require to implement such tool from scratch, that's not trivial. The point here is that I basically just wrapped the nmtui and nmcli tools into a systemd service. This change is trivial and already provides quite a lot of needed functionality.

The network settings from the boot command line, like you used above, are still applied. E.g. if you use live.net_config_tui=1 nameserver=8.8.8.8 options then the nameserver value is used as a pre-configured value and you can still change it in the nmtui tool interactively. The only drawback is that the nmtui tool allows setting many options so it is more difficult to navigate there. But in general it does what you need.

Example with the live.net_config_tui=1 nameserver=8.8.8.8 boot options:
agama-net-config-dns

@teclator
Copy link
Copy Markdown
Contributor

teclator commented Jan 8, 2026

Looks good, maybe we could also a Devices button which list the devices available just showing the nmcli d output.

@lslezak
Copy link
Copy Markdown
Contributor Author

lslezak commented Jan 8, 2026

Unfortunately the dialog tool does not allow adding more buttons, the maximum is 3. At least it is possible to change the default labels "OK", "Cancel" and "Help" to "Continue", "Edit" and "Test connection" (or whatever you need).

So I added the device list to the beginning of the summary.

@Martin-Weiss
Copy link
Copy Markdown

I guess there are even some further requirements for the installation media - we might need proxy settings and proxy authentication as well as ssl certificate trust before downloading the squashfs image and/or autoinstall control files in case self-signed certificates are used and the repos / internet etc. are only reachable via ssl-terminating proxy with authentication... but that comes after initial interactive network config at least for for IPv4 (ip/mask/gateway/dns-server/dns zone - search..)

One other thing - not sure if this is a bit out of scope, here - ntp-server - we also need time-sync in air-gapped scenarios in cases where we can not control the time in bios / firmware and where we do not have DHCP providing NTP server info.. not sure if that NTP thing is possible in nmtui? (otherwise SSL certificate validation will fail and timestamps in logs will be wrong)

Copy link
Copy Markdown
Contributor

@teclator teclator left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@lslezak
Copy link
Copy Markdown
Contributor Author

lslezak commented Jan 9, 2026

not sure if that NTP thing is possible in nmtui?

No, the nmtui can only configure network devices/connections. The network services like NTP are not handled there.

@lslezak lslezak merged commit f9da98e into master Jan 9, 2026
10 checks passed
@lslezak lslezak deleted the interactive_network_config branch January 9, 2026 15:08
imobachgs added a commit that referenced this pull request Jan 10, 2026
Merge the new HTTP API. Each PR has been already reviewed, so it should
be safe to merge it.

* #1829
* #2508
* #2772
* #2826
* #2848
* #2860
* #2863
* #2866
* #2867
* #2869
* #2870
* #2871
* #2872
* #2873
* #2874
* #2875
* #2876
* #2877
* #2880
* #2881
* #2882
* #2884
* #2885
* #2886
* #2891
* #2892
* #2893
* #2894
* #2895
* #2896
* #2897
* #2898
* #2899
* #2900
* #2901
* #2902
* #2903
* #2904
* #2908
* #2909
* #2910
* #2912
* #2913
* #2914
* #2915
* #2916
* #2917
* #2918
* #2920
* #2921
* #2923
* #2924
* #2926
* #2928
* #2929
* #2930
* #2933
* #2934
* #2935
* #2936
* #2938
* #2939
* #2942
* #2943
* #2944
* #2945
* #2946
* #2947
* #2948
* #2950
* #2951
* #2952
* #2954
* #2955
* #2956
* #2957
* #2958
* #2959
* #2960
* #2961
* #2963
* #2964
* #2965
* #2967
* #2968
* #2969
* #2970
* #2971
* #2972
* #2974
* #2975
* #2977
* #2978
* #2980
* #2982
* #2983
* #2984
* #2988
* #2989
* #2991
* #2992
* #2993
* #2994
* #2995
* #2996
* #2997
* #2999
bmwiedemann pushed a commit to bmwiedemann/openSUSE that referenced this pull request Jan 17, 2026
https://build.opensuse.org/request/show/1327362
by user IGonzalezSosa + dimstar_suse
- Version 19.pre

- Hide the data sharing notification in the Firefox browser
  (bsc#1252961)

- Added new boot option "live.net_config=1" to interactively
  configure network settings (gh#agama-project/agama#2923)

- Version 18

- Fixed creating the /LiveOS/.packages.json.gz file in SLE builds
  (gh#agama-project/agama#2771)

- Dump some Live ISO root image data directly to the ISO image,
  added files:
  /LiveOS/.info - a copy of the /var/log/build/info file from
    the root image
  /LiveOS/.packages.gz - list of installed package (plain text,
    basically a `rpm -qa` dump)
  /LiveOS/.packages.json.gz - list of installed packages (JSON
    format, better suitable for processing by scripts or tools)
  (gh#agama-project/agama#2717)

- live-root: update final EULAs with the June 2024 deliv
@imobachgs imobachgs mentioned this pull request Mar 17, 2026
imobachgs added a commit that referenced this pull request Mar 17, 2026
Prepare to release version 19.

* #1829
* #2508
* #2772
* #2818
* #2826
* #2848
* #2860
* #2863
* #2864
* #2866
* #2867
* #2869
* #2870
* #2871
* #2872
* #2873
* #2874
* #2875
* #2876
* #2877
* #2880
* #2881
* #2882
* #2884
* #2885
* #2886
* #2891
* #2892
* #2893
* #2894
* #2895
* #2896
* #2897
* #2898
* #2899
* #2900
* #2901
* #2902
* #2903
* #2904
* #2908
* #2909
* #2910
* #2912
* #2913
* #2914
* #2915
* #2916
* #2917
* #2918
* #2920
* #2921
* #2923
* #2924
* #2926
* #2928
* #2929
* #2930
* #2933
* #2934
* #2935
* #2936
* #2937
* #2938
* #2939
* #2942
* #2943
* #2944
* #2945
* #2946
* #2947
* #2948
* #2949
* #2950
* #2951
* #2952
* #2954
* #2955
* #2956
* #2957
* #2958
* #2959
* #2960
* #2961
* #2963
* #2964
* #2965
* #2967
* #2968
* #2969
* #2970
* #2971
* #2972
* #2974
* #2975
* #2977
* #2978
* #2980
* #2981
* #2982
* #2983
* #2984
* #2988
* #2989
* #2990
* #2991
* #2992
* #2993
* #2994
* #2995
* #2996
* #2997
* #2998
* #2999
* #3000
* #3001
* #3002
* #3004
* #3005
* #3006
* #3007
* #3008
* #3009
* #3011
* #3012
* #3013
* #3014
* #3015
* #3016
* #3018
* #3019
* #3020
* #3021
* #3022
* #3023
* #3024
* #3025
* #3026
* #3027
* #3028
* #3029
* #3030
* #3031
* #3033
* #3034
* #3035
* #3036
* #3037
* #3039
* #3040
* #3041
* #3042
* #3043
* #3044
* #3045
* #3046
* #3047
* #3048
* #3049
* #3050
* #3051
* #3052
* #3053
* #3054
* #3055
* #3056
* #3057
* #3058
* #3060
* #3061
* #3062
* #3063
* #3064
* #3065
* #3066
* #3067
* #3068
* #3069
* #3070
* #3071
* #3072
* #3073
* #3074
* #3075
* #3076
* #3077
* #3078
* #3079
* #3086
* #3087
* #3088
* #3089
* #3090
* #3091
* #3092
* #3093
* #3094
* #3095
* #3096
* #3097
* #3098
* #3099
* #3100
* #3101
* #3102
* #3103
* #3104
* #3105
* #3106
* #3107
* #3108
* #3109
* #3110
* #3112
* #3113
* #3114
* #3115
* #3116
* #3117
* #3118
* #3119
* #3120
* #3122
* #3123
* #3124
* #3127
* #3128
* #3129
* #3130
* #3131
* #3133
* #3134
* #3135
* #3136
* #3137
* #3138
* #3139
* #3140
* #3141
* #3142
* #3143
* #3144
* #3145
* #3146
* #3147
* #3148
* #3149
* #3150
* #3151
* #3152
* #3153
* #3154
* #3155
* #3157
* #3158
* #3159
* #3160
* #3161
* #3162
* #3163
* #3164
* #3165
* #3166
* #3167
* #3168
* #3169
* #3170
* #3174
* #3175
* #3176
* #3177
* #3178
* #3179
* #3181
* #3182
* #3184
* #3185
* #3186
* #3188
* #3189
* #3190
* #3191
* #3192
* #3194
* #3195
* #3196
* #3197
* #3198
* #3199
* #3200
* #3201
* #3202
* #3203
* #3205
* #3206
* #3208
* #3209
* #3210
* #3213
* #3214
* #3215
* #3216
* #3217
* #3218
* #3219
* #3220
* #3222
* #3223
* #3224
* #3225
* #3226
* #3227
* #3228
* #3229
* #3230
* #3231
* #3232
* #3233
* #3234
* #3235
* #3236
* #3237
* #3238
* #3239
* #3240
* #3241
* #3242
* #3243
* #3244
* #3246
* #3247
* #3248
* #3250
* #3251
* #3252
* #3253
* #3254
* #3255
* #3256
* #3257
* #3258
* #3259
* #3260
* #3261
* #3262
* #3263
* #3265
* #3266
* #3267
* #3268
* #3269
* #3270
* #3271
* #3272
* #3273
* #3274
* #3275
* #3276
* #3277
* #3278
* #3279
* #3280
* #3281
* #3282
* #3283
* #3284
* #3285
* #3286
* #3287
* #3288
* #3289
* #3290
* #3291
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants