-
Notifications
You must be signed in to change notification settings - Fork 397
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
Switching from rocko to master on rpi-0w breaks wifi #184
Comments
hi @keeslinp ,
It adds the missing firmware and the wpa-supplicant package to the built image. Then, after booting, I just need to customise I'm not sure if this is by design (to keep the image minimal) or is a bug. Any comments @agherzan ? |
That is correct, HWUP image doesn't install the linux firmware for the wifi device. The part that I am confused now about is the wpa. Isn't only the linux firmware sufficient? |
Sorry, I should have included my
I'm honestly not super sure what some of those firmware packages being installed are, so those could maybe be problematic. |
@agherzan : to bring the Wifi device itself, the linux firmware is sufficient. However, to connect it to something you need a supplicant such as wpa supplicant. I think another alternative is networkmanager. This should be further selected by the user. So I think the only requirement to bring the radio device itself up is to include the linux firmware package. If you need a supplicant you also need to add wpa-supplicant or another alternative. Is using @keeslinp : it looks like you should be using I just built a test image using |
I'll give that a try. Just to clarify, it does work perfectly fine on |
Oh I see. I will try master now then. |
I tried that and it didn't work :/. Here is my new
Would it be worthwhile to try clearing my cache and doing a fresh build? |
Firmware is actually added in the machine configuration file with MACHINE_EXTRA_RRECOMMENDS See https://github.com/agherzan/meta-raspberrypi/blob/master/conf/machine/raspberrypi0-wifi.conf#L9 Do not know why it would work on rocko and not in master because the configuration is present in booth Try:
To check if it is set correctly, might be something removing or clearing the variable. |
@keeslinp : maybe is worth a try. Disclaimer: I'm very new to Yocto and no expert at all =). I'm currently having trouble trying to create an image using master, something changed since yesterday and I can't add the openembedded layer anymore (failing with a parsing error on base_conditional). @mirzak : I also noticed that configuration. I think it just declares that the rpi-based machines have the firmware but does not install it into the image without |
From Yocto docs
What actually decides if it is installed is if the image being built includes "packagroup-base" where the MACHINE_EXTRA_RRECOMMENDS are expanded, so basically if the image inherits from "core-image.bbclass" it should be installed. |
thanks for that @mirzak , I tested this with a completely clean build environment, just adding the required meta-openembedded layers and then meta-raspberrypi. The output image builds, but no linux firmware is added to it. is this a bug then? |
Oki not a bug (at least not in Yocto/OE-core). Looked in to it a bit more. core-image-minimal.bb", even though it inherits from core-image.bbclass it sets Even the Yocto docs mentions this (if you read it all :))
So it depends on what the intentions of the One way to make sure it is included by default is to use the
variable instead of the
in the machine configuration files or just change the "rpi-hwup-image" to inherit directly from |
interesting, @mirzak . |
I would agree with you @hhromic |
Hi guys, In I will try to debug it anyway and provide feedback or a PR accordingly. @keeslinp : if you want your image built using master to work, no need to rebuild. Just copy the binary file ( |
Hi all again.
Is not adding the
it works too. I'm not sure what would be the correct solution. The Perhaps BitBake is parsing this in a way we are not considering? Also, if we mirror this block:
We perhaps should keep both files in What do you suggest @kraj , @agherzan , @mirzak , @martingkelly (original commit author) ? I can create a PR according to your comments and we can merge it. This will fix bringing up Wifi (and potentially bluetooth) in |
seems to be correct. |
@hhromic could you post the output of If you can't run bitbake because of the base_conditional issue, it's a known bug fixed by commit |
hi @martingkelly, I already sorted out the base_conditional issue, as you say I just pulled the latest commits and all is fine, thanks for the suggestion!. Regarding the firmware issue, after your comments I did the following tests: (1) Recipe as-is from the master branch. In Recipe:
Output:
(2) Recipe modified to include the binary file. In Recipe:
Output:
(3) Recipe modified to not add In Recipe:
Output:
(4) Recipe modified to use In Recipe:
Output:
This last result is what I think is the expected and proper solution. The first and second tests create an additional If you agree with this behaviour and solution, I can create a PR to fix it. Thanks a million for your help! |
I see your test results and am fine with your proposal if it works. I am, however, confused. The linux-firmware recipe already includes:
I'm not sure why adding the bin file is required since it should already be present. |
Is should be _append_rpi instead of _rpi += |
@kraj why does += overwrite any prior value? Doesn't that break its purpose? |
Its the override that’s causing it with append that gets addresses |
@hhromic Your option 4 worked like a charm for me :). I had looked into that commit but I couldn't make heads or tails of it, yocto configs are witchcraft 80% of the time for me, I'm glad you could figure it out! |
Maybe I spoke too soon, my bluetooth isn't working anymore.
Is this related to this issue or should I make a different ticket? |
@martingkelly: in my last proposal (test 4) I'm not adding anymore the binary file because using @keeslinp : I'm happy the solution number four worked for you. This is the correct solution for the firmware missing problem. |
@hhromic yes, when I tried master the first time the bluetooth worked fine but the wifi did not. Now, the opposite is true after applying option 4 |
@keeslinp , that is very weird indeed. Adding the firmware shouldn't nullify bluetooth. |
I posted it a little further up in this thread. When I get back to work on
Monday I'll check again to make such I'm doing everything right.
…On Sat, Feb 3, 2018, 4:24 AM Hugo Hromic ***@***.***> wrote:
@keeslinp <https://github.com/keeslinp> , that is very weird indeed.
Adding the firmware shouldn't nullify bluetooth.
I was checking my image and by default it doesn't come with hciattach.
This means you are adding it into your local config. Can you share your
current local.conf file? Perhaps there is something else that is
interfering.
Before making the PR for the linux-firmware I would like to confirm it
doesn't interfere with bluetooth as you suggest.
I'm going to build another test image for this purpose, that will take a
while as you know.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#184 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AC6-bIVZSVbI_EJPRPqJLeHyOb58CRxGks5tREHlgaJpZM4RuYXr>
.
|
Hi @keeslinp , try to add |
Hi again @keeslinp , I just tested an image using:
And I can confirm I get bluetooth and Wifi working both fine at the same time. Of course this image is minimal, so you need to attach the HCI manually:
In your systemd configuration, the bluez package comes with a service to do this operation automatically. After that, the BT device is correctly initialised and you can discover devices:
So BT is not affected by the Wifi firmware fix. I'm going to issue a PR soon. |
I'm OK in starting to include the firmware as part of machine essential - sounds like there are many people confused by the current behavior. If anyone is interested, please push a patch. |
I agree @agherzan for rpi3 especially, where wifi/bt is on board |
Yes. For RPI3 and RPI0wifi. |
@hhromic That did the trick :). Can anyone think of a reason that my bluetooth mac address would change between branches? That seems to be what I am experiencing. I mean, it's definitely not the end of the world as long as it is consistent between reboots, but just seems a little odd. |
Signed-off-by: Hugo Hromic <hhromic@gmail.com>
Hi all, I know I advocated for the inclusion of the firmware as default, however after thinking more about it (and learning more about Yocto too), I now think that the way it is done currently is actually the more correct approach.
We should always take the position of "providing the bare minimum functional building block" and then users to extend the image/layer with their own requirements. For example, Wifi/BT are not always wanted by every user. I believe is best to ask users to add what they want than to ask users to remove what they don't. With all that, I strongly believe that the correct thing to do is to better document these things (enable Wifi, enable BT) instead of bloating the base image by default. I can volunteer to update the current documentation to add sections to clarify how to enable those extra machine features. If you agree, please let me know if modifying the documentation folder in this repository is all is needed to update the ReadTheDocs documentation. @keeslinp : it might be that the firmware for BT (the |
I know this. The problem is that many new users get into this and not knowing this nuance they will obviously think of it as an issue. If we want to stick to the rule, what we can do is include MACHINE_EXTRA_RRECOMMENDS in our images. That would keep everyone happy. |
Exactly, hence we need to inform/document better to the new users.
And this is not including the firmware in the basic Then, we shouldn't touch the current image config (keeping the behaviour as it is) and just document that users must include the firmware (and BT packages) explicitly in their |
No. What I mean is having hwup include it by default. See here. |
If they are using the rpi-hwup-image. Other images will probably include the firmware, e.g. "SUMMARY = "A console-only image that fully supports the target device And I would agree that we should instead just document:
|
Also the problem we have today is that all the "rpi" images inherit from Suggestion:
If someone wants a "hwup" image they can use Edit: This way we will hold only ONE image in meta-raspberrypi that is good to for testing out RPi boards |
Hi all. The whole idea of Yocto is that the same recipes adapt depending on the layers being used. So a I just tried using these standard images and indeed I totally support the proposal of @mirzak to clean-up the redundant images (such as Question: it is possible for a time to leave If everyone agrees on this, how can we implement this change? I can help but I'm not an expert on Yocto, hence there could be things I might not be considering. Edit: and, of course, document all this properly for users to be clear on how to use the layer. |
you could turn rpi-hwup-image.bb to have just
|
True, but that would not instruct users that this is not the correct way and that they should be using core-image-base/minimal directly instead. I noticed that Edit: oh and I strongly suggest we add information about the linux-firmware for Wifi in the documentation, much like how overcloking is documented. |
Signed-off-by: Hugo Hromic <hhromic@gmail.com>
Description
Changing from latest on rocko to latest on master makes it so that the
wlan0
interface doesn't show up anymore.Steps to reproduce the issue:
rpi-hwup-image
ip link
or anything that lists the interfaces, onlyl0
shows upDescribe the results you received:
wlan0
isn't connectedDescribe the results you expected:
wlan0
should be present.Additional information you deem important (e.g. issue happens only occasionally):
Switching back to rocko without changing anything makes it work again.
Additional details (revisions used, host distro, etc.):
I also tried updating poky to master and it didn't improve anything.
The reason I'm updating to master is to make use of #183
The text was updated successfully, but these errors were encountered: