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

Add missing wifi firmware checks #2963

Closed
wants to merge 630 commits into from

Conversation

jbtrystram
Copy link
Contributor

Some wifi-firmwares will be split into sub-packages in fedora 40 We will keep them in until fedora 41, but display a warning message in the console if NetworkManager-wifi is layered without the most popular the wifi firmwares.

See coreos/fedora-coreos-tracker#1575


This is an initial draft to get some discussion.
it's probably worth moving to a separate manifest and having it be a conditional include on releasever < 41

bgilbert and others added 30 commits February 17, 2022 13:33
There are multiple live image tricks that need documenting, so give them
their own page.
Stop conflating them with install docs.

Since live-booting-ipxe.adoc now contains PXE and ISO instructions as
well, rename it to live-booting.adoc, update the nav title, and add a
redirect.
Get rid of the manual configuration cruft.  De-emphasize the distinction
between live and dest Ignition configs, since users won't have to care
about that as much.

Fixes coreos/fedora-coreos-docs#245.
In particular, --copy-network isn't limited to the ISO/PXE environment,
but also works when running coreos-installer directly on bare metal.
This one example doesn't set with_mount_unit, so the resulting filesystem
won't be mounted by default.  Fix this.
RHEL 8 ships a different implementation of mkpasswd that doesn't support
modern hashes.  For ease of use, just containerize mkpasswd.

Fixes coreos/fedora-coreos-docs#322.
Fixes:
```
$ ./build.sh

This build script is using Podman to run the build in an isolated environment.

antora: option '--html-url-extension-style <choice>' argument 'indexify site.yml' is invalid. Allowed choices are default, drop, indexify.
```

See https://pagure.io/fedora-docs/template/pull-request/21
Add new page to store documentation for major changes happening in
Fedora CoreOS.
I think the intention here was to use `#!/bin/sh` but I don't think
this line is required so let's just delete it.
Triggered by update-versions GitHub Action.
This is supported as of
coreos#1526
and allows us to recommend rootfs_url even without an HTTP(S) server.
Triggered by update-versions GitHub Action.
This should fix the substitution on the Fedora built & hosted version of
the docs.
Move the "automatically modified" comment, update the commit message,
and regenerate antora.yml.

Fixes: 87f7f6c ("Move asciidoc attributes to antora.yml")
Triggered by update-versions GitHub Action.
- add note about vultr-cli and s3cmd being in the Fedora repos
- update s3cmd docs URL
- use long options for `--acl-public` for s3cmd
- update the used plan in the example
    - the old example plan is no longer valid
- drop the note about the Vultr firewall
    - I was able to SSH in with no Firewall groups
- Add a note about how to get the IP address of your instance
- IBM Cloud now has a fedora-coreos-stable-amd64 OS type
- `--image-id` is deprecated in favor of `--image`
- `--key-ids` is deprecated in favor of `--keys`
Users may want to modify the OVA to run on older versions of VMware
products, so provide a simple example.

Co-authored-by: Benjamin Gilbert <[email protected]>
`doctl compute image create` doesn't actually support `--wait`.

This reverts commit 993137f.
dustymabe
dustymabe previously approved these changes Apr 16, 2024
@dustymabe
Copy link
Member

I guess the docs/faq needs to land first so we can make sure the link we are using is right.

@dustymabe
Copy link
Member

in CI:

Apr 16 15:25:54.013651 rpm-ostreed.service[1509]: client(id:cli dbus:1.7 unit:coreos-check-wireless-firmwares.service uid:0) added; new total=1                                              
Apr 16 15:25:54.016500 init.scope[1]: [email protected]: Deactivated successfully.                                                                                                     
Apr 16 15:25:54.018616 init.scope[1]: Finished [email protected] - OpenSSH rsa Server Key Generation.                                                                                  
Apr 16 15:25:54.033734 init.scope[1]: Reached target sshd-keygen.target.                                                                                                                     
Apr 16 15:25:54.038889 rpm-ostreed.service[1509]: client(id:cli dbus:1.7 unit:coreos-check-wireless-firmwares.service uid:0) vanished; remaining=0                                           
Apr 16 15:25:54.039581 rpm-ostreed.service[1509]: In idle state; will auto-exit in 62 seconds                                                                                                
Apr 16 15:25:54.052455 init.scope[1]: Starting console-login-helper-messages-gensnippet-ssh-keys.service - Generate SSH keys snippet for display via console-login-helper-messages...        
Apr 16 15:25:54.067790 coreos-check-wireless-firmwares.service[1403]: /usr/libexec/coreos-check-wireless-firmwares: line 38: return: can only `return' from a function or sourced script     
Apr 16 15:25:54.068766 init.scope[1]: coreos-check-wireless-firmwares.service: Main process exited, code=exited, status=2/INVALIDARGUMENT                                                    
Apr 16 15:25:54.068965 init.scope[1]: coreos-check-wireless-firmwares.service: Failed with result 'exit-code'.                                                                               
Apr 16 15:25:54.072502 init.scope[1]: Failed to start coreos-check-wireless-firmwares.service - Check For Wireless Firmware Packages.                                                        
Apr 16 15:25:54.193699 init.scope[1]: var-lib-containers-storage-overlay-volatile\x2dcheck3087635057-merged.mount: Deactivated successfully.                                                 
Apr 16 15:25:54.207598 init.scope[1]: var-lib-containers-storage-overlay-compat2047962956-lower\x2dmapped.mount: Deactivated successfully.

@dustymabe
Copy link
Member

you'll need to use exit instead of return

jbtrystram added a commit to jbtrystram/fedora-coreos-docs that referenced this pull request Apr 18, 2024
Some wifi-firmwares will be split into sub-packages in fedora 40
We will keep them in until fedora 41, but display a warning message
in the console. This messages links to this FAQ entry.

See  coreos/fedora-coreos-config#2963
See  coreos/fedora-coreos-tracker#1575
jbtrystram added a commit to jbtrystram/fedora-coreos-docs that referenced this pull request Apr 18, 2024
Some wifi-firmwares will be split into sub-packages in fedora 40
We will keep them in until fedora 41, but display a warning message
in the console. This messages links to this FAQ entry.

See  coreos/fedora-coreos-config#2963
See  coreos/fedora-coreos-tracker#1575
jbtrystram added a commit to jbtrystram/fedora-coreos-docs that referenced this pull request Apr 18, 2024
Some wifi-firmwares will be split into sub-packages in fedora 40
We will keep them in until fedora 41, but display a warning message
in the console. This messages links to this FAQ entry.

See  coreos/fedora-coreos-config#2963
See  coreos/fedora-coreos-tracker#1575
@jbtrystram jbtrystram marked this pull request as ready for review April 18, 2024 18:30
Some wifi-firmwares will be split into sub-packages in fedora 40
We will keep them in until fedora 41, but display a warning message
in the console. This messages links to this FAQ entry.

See  coreos#2963
See  coreos/fedora-coreos-tracker#1575
##########################################################################
WARNING: The NetworkManager-wifi is a requested layered package on this
system, but no Wi-Fi drivers are requested. The Wi-Fi drivers will no
longer be included by default in the future.
Copy link
Contributor

@yasminvalim yasminvalim Apr 19, 2024

Choose a reason for hiding this comment

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

Do we have a possible date/version for when this will no longer be available?
Should we warn the users about this deadline?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

good point. I think we agreed on removing the packages on F41.

bcm283x-firmware
zd1211-firmware
)
regex=$(IFS='|'; echo "${firmwares[*]}")
Copy link
Member

Choose a reason for hiding this comment

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

This is a little confusing, maybe a comment with an explanation of what this part of code does would be a nice to see.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I think an explanation in the code would be a little bit clumsy, so i'll do it here :
IFS is Internal Field Separator in bash. The default value is "".
This is how the shell separates values.
e.g. in

fruits="apple pear orange"
for i in $fruits
do
   echo "'$i' is a fruit"
done

This will loop over "apple", "pear" then "orange".
writing:

fruits="apple|pear|orange"
IFS='|'; for i in $fruits
do
   echo "'$i' is a fruit"
done

Would have the same result.

So what IFS='|'; echo "${firmwares[*]} does is echoing all the values in firmwares but instead of the default in between, the output will be a|b|c|d, which is convenient because it means OR

Copy link
Member

Choose a reason for hiding this comment

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

I was considering potential code review in the future, where it could take time for someone to understand this bit of code. It certainly took me a while - thank you for the explanation though!

Copy link
Member

Choose a reason for hiding this comment

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

rather than document in a comment what IFS does we could explain what the outcome of the following statement would be, which I think would achieve the goal:

Suggested change
regex=$(IFS='|'; echo "${firmwares[*]}")
# Get firmware names into `a|b|c|d` regex string
regex=$(IFS='|'; echo "${firmwares[*]}")

Then if the reader wants to understand how IFS works they could go look it up, but they at least understand the goal of the current code.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Oh yeah of course, i think i misunderstood Adam comment

Now we have a generic wifi enablement docs page and a FAQ entry that
explains the specific situation we have now where the firwmare
subpackages are getting dropped out of FCOS.
@dustymabe
Copy link
Member

sorry I pushed up something here by mistake.. fixing

@dustymabe
Copy link
Member

opening

@dustymabe
Copy link
Member

I guess I no longer have permissions to push to that branch in his fork :(

JB can you do a force push (or give me access to your fork and I can fix it).

@jbtrystram
Copy link
Contributor Author

jbtrystram commented Apr 20, 2024

@dustymabe I re-enabled write access to maintainer on this branch, I am not sure why it got turned off

jbtrystram added a commit to coreos/fedora-coreos-docs that referenced this pull request Apr 20, 2024
Some wifi-firmwares will be split into sub-packages in fedora 40
We will keep them in until fedora 41, but display a warning message
in the console. This messages links to this FAQ entry.

See  coreos/fedora-coreos-config#2963
See  coreos/fedora-coreos-tracker#1575
@dustymabe
Copy link
Member

@jbtrystram i'm still not able to push to it. and I can't re-open this PR because currently the branch in the fork doesn't share any history with this repo

@jbtrystram
Copy link
Contributor Author

jbtrystram commented Apr 22, 2024

@dustymabe you pushed a branch from coreos/fedora-coreos-docs here.

Sadly I realized that after I f***d my local repo trying to fix it. So i have no copies of the previous commit containing the MOTD script .
I should have let the coffee infuse more 😅

@jbtrystram
Copy link
Contributor Author

Reflog to the rescue :)

#2978

@dustymabe
Copy link
Member

@dustymabe you pushed a branch from coreos/fedora-coreos-docs here.

yeah it was a mistake on my part :(

Sadly I realized that after I f***d my local repo trying to fix it. So i have no copies of the previous commit containing the MOTD script . I should have let the coffee infuse more 😅

I see below you found it, but yeah I had a local copy I was trying to push to fix but couldn't :(

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.