-
Notifications
You must be signed in to change notification settings - Fork 17
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
Pi Zero Build not working #29
Comments
BTW: nymea network manager is running file on Pi Zero. But the functionality as described above is the issue. |
Hey, So just as side note on the beginning. Our buster repo now also has builds compatible to the Pi0. You can add this repository:
and then you should be able to apt-get install working builds. Anyhow, as you apparently managed to build already, that likely won't solve your problem. My suggestion would be to use
and watch the logs it prints... Perhaps it helps clarifying what's going on... Post the log here if you think there is a bug somewhere. |
Thank you for trying to help ! I have taken the logs when the same SD card (nymea build with Pi Zero) working well on Pi3 and not working so well on Pi Zero. I have attached both logs. There is not much information in the logs other than the fact that the bluetoothserver seems not started on Pi Zero. Does that give any clues? |
Indeed... There is a bug... Seems to have been introduced in the latest update. On slow systems, the networkmanager exposes its interface too slow. Because of that a workaround has been added in libnymea-networkmanager which gives it a bit more time to start up. However, turns out, this now introduces a race condition because now the Bluetooth part is checking too early... |
Rework the setup sequence to not rely on timers anymore but instead always react to wifi state changes only. Fixes #29
Rework the setup sequence to not rely on timers anymore but instead always react to wifi state changes only. Fixes #29
The attached branch should hopefully fix this, however, note that it is not fully tested yet. I'll report back when I've done some more testing. Feel free to help with testing. It's building it in the experimental repository atm...
|
Rework the setup sequence to not rely on timers anymore but instead always react to wifi state changes only. Fixes #29
Oh, that makes tons of sense! I have not reported but I too thought there may be a race condition. I have tried this about 20 times on Pi Zero, and it worked once! I will try the fix and report if it working for me. Thank you very much! |
Ok, I have tested the experimental builds including this fix (nymea-networkmanager 0.5.2 and libnymea-networkmanager 0.3.0) as well as the experimental berrylan image with those package versions (https://downloads.nymea.io/images/berrylan/experimental/berrylan-image-raspbian-buster-2020-03-21.zip) on a RPi3 and a RPi0 and it seems to work fine for me. I'd appreciate if you could let me know if it works for you too now. |
Just finished testing both with RPi3 and RPi0 multiple times. And it is working for me too. Thank you very much! Just one clarification. This is perhaps a newbie question. I am building my own because I need one minor change in the network manager to write something to the SD. When I build on Pi3, I know the package doesn't run on Pi0 (perhaps pi zero arch is not forward compatible?). When I build on Pi0, it does run well on Pi3 (arch is backward compatible?) as well. Not withstanding my own experience, Is it considered safe to use the packages built on Pi0 on Pi3 as well? |
Thank you for confirming the fix, for your own builds you will want to use the branches "fix-wifi-bt-race" for both repositories for now. My branches will be merged to master when the next nymea release is made (I'd estimate 2 - 3 weeks from now, no promise tho). I'm building those packages on a Pi4, they run just fine on all the Raspberries, from Pi0 to Pi4... You're right that one can't just cross-compile to armhf easily, as those packages won't run on the Pi0 and Pi1. But when building on the Pi3/4 directly it works fine for me... I think there was a change in upstream Raspbian. IIRC this wasn't working with stretch yet but works with buster now. I didn't dig deeper why that's the case tho... |
Well, actually I did dig a bit deeper but I must admit I did not get through it 100%... Here's what I figured out: Pi0 and Pi1 are some weird architecture, something between armv6 and armv7, while Pi2, 3 and 4 are proper armv7 machines... One can build packages working for all of them using the compiler flag Cross-compiling for -march=arm6 isn't easily possible because gcc-cross (amd64 to arm) has some stuff for that not implemented, it'll just crash with some "not implemented" message. I haven't managed to figure out a way to cross compile with buster now, which is why I resorted to build on a Pi4 natively. Not sure how they're doing it themselves, but as they apparently fixed the compiler in the image at least, I'd hope the situation will improve over time. |
May I ask what changes you need? Perhaps we could use that too? |
Oh, I see. Thank you for the explanation. About the changes, they are quite simple -
I will be glad to share if those are interesting, but I am assuming they are not generic enough to be broadly useful. We appreciate these tools. We will definitely give credits as required when we release. |
Sorry, the advertised name perhaps is not compiled in. But the second change for sure. |
Ali Pi have weird proprietary Videocore architecture which runs ARM cores, version this and that: https://wiki.debian.org/RaspberryPi first generation is just a bit more weird due to armv6. |
Thanks for addressing the issue. |
FWIW, the fix is not yet released to stable (it's in the testing repository atm). Normally github would close bugs automatically when the fix is merged to master. Anyhow, just watch the linked pull request. Once that's merged the packages including the fix will also be released to stable. |
I have followed the build and deploy instructions of nymea for Pi Zero. But I am having trouble using Berry Lan on a Pi Zero.
I have done this using a fresh buster install on a Pi Zero
sudo apt install qt5-default qtbase5-dev qtbase5-dev-tools libqt5bluetooth5 qtconnectivity5-dev git
sudo apt install debhelper dh-systemd
git clone
libnymea-networkmanager
and nymea-gpio
and nymea-networkmanager
First I have built and installed libnymea-networkmanager
dpkg-buildpackage -us -uc -tc
sudo apt install ./libnymea-networkmanager_0.2.3_armhf.deb
sudo apt install ./libnymea-networkmanager-dev_0.2.3_armhf.deb
Then I have done the same for libnymea-gpio
And finally, I have built and installed
nymea-networkmanager_0.5.1_armhf.deb
I have also done -
sudo systemctl disable dhcpcd
After all that ... when I fire up Berry Lan, first time, I see the advertisement from Pi Zero, but moving on to the second screen, it keeps spinning without showing any networks. I restart Berry Lan, after that I don't even see the advertisement. I restart Pi Zero, any number of times ... no advertisement.
The same SD card when booting a Pi 3 works perfect with BerryLan.
This is reproducible on multiple Pi Zero and multiple Pi 3 cards.
Am I missing anything in the process?
I know about
nymea/berrylan#10
https://forum.nymea.io/t/berrylan-on-pi-zero-w/120
#25
But those instructions I thought only applies to when you are not building yourself.
BTW: I have sone similar build that worked fine on Pi Zero and Pi 3 for Stretch. I am having issues because I want to upgrade to Buster and to the latest nymea code.
Help appreciated!
The text was updated successfully, but these errors were encountered: