x86 and VMs #251
Replies: 31 comments 117 replies
-
I am running BirdNET-Pi in a x86_64 VM (Debian Bullseye in a LXC container hosted on a Proxmox install), only minor updates were needed to the install scripts to add the support for x86_64. Detection via RTSP stream and the web interface both work, but one part I haven't updated yet is gotty. The commit message for the gotty in BirdNET-Pi says it was custom complied for reverse_proxy paths. Do you know the gotty version and build options used? |
Beta Was this translation helpful? Give feedback.
-
I would LOVE a x86 VM ! I run Bird pi, however, I have lots of security cameras all over my land, and would much rather run this on a VM the way I do Home assistant, pfsense , freenas , plex , ect and just feed it lots of audio rstp feeds |
Beta Was this translation helpful? Give feedback.
-
Howdy. I'm new here. Was super keen when I found out about this project, but of course can't get an RPi to set it up. I do however have a SFF PC running Proxmox, so I thought I'd give Japi42's approach a go and try to install in Debian Bullseye LXC container. I've gotten BirdNET-Pi to install - "exit 0" and rebooted. But trying to access the webui via the ip address results in HTTP ERROR 403. Caddy is running and I can't see any errors. Not sure what to check next? I suspect I may be in over my head, my linux game is weak. |
Beta Was this translation helpful? Give feedback.
-
The Raspberry Pi 400 is for sale and runs BirdNET-Pi software without problems. So, if you do not mind having a larger form factor, the RPi 400 is available . . . |
Beta Was this translation helpful? Give feedback.
-
Yeah muti rstp feeding in to a VM would be great . But bird weather will
aggregate across instances via the API id number. So you could just spin up
more VMs / rpi until the code supports it . Honestly I did not know it
currently only supports 1 rstp stream are you sure about that?
…On Sat, Feb 4, 2023, 1:07 AM Matthew Burton ***@***.***> wrote:
More than one rtsp would be nice, currently using one and the stability
issues have been sorted out
—
Reply to this email directly, view it on GitHub
<#251 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ALFB6DG54HIA24V3BTQHETLWVX5ZZANCNFSM5VKM67DQ>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
I too am trying to get BirdNET-Pi to run on an HP T520 thin client (amd64, 30 euros on ebay). Starting from a DietPi Debian Bullseye, I have got the installer to run with exit code 0, the main stumbling block being finding the appropriate tflite runtime wheel. However so far the web interface is unresponsive except for the Settings page. I suspect that I need to change a reference to the tflite runtime wheel in the code. Any pointers please? |
Beta Was this translation helpful? Give feedback.
-
UPDATED ! Firstly if you buy a s/h HP box it will probably come with 4 GB RAM (which is enough) and a 4 or 8 GB M2 SSD card, 16GB if you are lucky. You will need to source a 32GB or better card for long-term use, though you can install (and run) on a 16GB. The T520 takes shorter 2242 and 2260 cards only, the T620 takes full length too. I found 64GB cards on Amazon for 19€ (GamerKing SSD M.2 2242 64Go). If you need WiFi you can order an Edimax EW-7811Un V2 USB dongle at the same time (check inside your HP first, it might already have WiFi). Before you start, make sure that the HP is set up to use legacy BIOS rather than EFI, The T520 sailed through the Debian installation on EFI, but the T620 refused to boot after installation via EFI. You can see which you are using from the Debian install startup page. I initially installed without a GUI to save space, this led to many vital bits being missing and catastrophic audio behaviour. Microphone (both USB and Analogue) inputs worked for one recording and then fell over or just recorded silence. Unplugging and replugging cures the problem but that's far from ideal (note USB mics had to change socket for it work again). I then installed with the LXDE GUI and everything worked out of the box.
Footnote: Once Debian is installed on an HP thin client, you might notice a couple of warnings in dmesg about missing firmwares for the Radeon Graphics and Realtek NIC. Despite these warning graphics and network will be OK. Currently all the 'fixes' I have found via Google don't work, but there is a way... If you are OCD like me and need to get rid of them, bung me PM and I'll send you the details. |
Beta Was this translation helpful? Give feedback.
-
I wanted to report my success in standing an X86 Birdnet VM on my Proxmox server. More or less followed the previous posting by @Clumpton with the addition of setting the CPU flags to include "flags +sse4.1" so that tensorflow would work properly. I also correct the "@st.cache" errors, see related posting in discussion on how I did that. A small VM with 2 CPU 4GB VM works just great, with about 10% CPU on average. I see about 20-50 detections per hour in my backyard which is backed up by woods. I'm using an RTSP audio stream from one of my Unifi security cameras. If you have questions let me know. |
Beta Was this translation helpful? Give feedback.
-
Ah right - I added a custom CPU type. The file doesn't exist initially. Here are the steps (do the on the proxmox server):
cpu-model: cpu1
qm set --cpu=custom-cpu
|
Beta Was this translation helpful? Give feedback.
-
Correct. This just adds new ones. |
Beta Was this translation helpful? Give feedback.
-
Great work everyone!!!
Has there been any work done on feeding in multiple RSTP streams for audio
? Now the more powerful hardware is an option. This is really great news
I was needing a Rpi and this will let me free two up.
…On Fri, Feb 24, 2023, 7:32 AM lloydbayley ***@***.***> wrote:
Perfect. It has all the trappings of a working install. I've backed up the
VM in case I bugger it :) Will test it out tomorrow (12:32am here and no
'boids' yet. I have a USB->Ethernet->USB set of adapters, so I'll chuck a
mic outside on the end of a long ethernet cable and see what it picks up!
Thanks for your help on the flags! I've learnt something today (which is
always a good thing!).
—
Reply to this email directly, view it on GitHub
<#251 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ALFB6DCLQQKWRRYUE3WQRA3WZCZ7XANCNFSM5VKM67DQ>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
Tried it on M1 Mac with virtualized arm64 Debian but could not get it to record or analyze. Spectrogram worked and showed input but arecord was off and could not restart a BirdNET server service. I mean, it was worth a shot. Would be great to run it on a ARM Mac indoors and on a Pi outdoors. My knowledge is not enough to grasp how to make it work. In theory it seems like it should be possible? ARM64 computer, no emulation, just virtualization. |
Beta Was this translation helpful? Give feedback.
-
Well Well Well! After testing today, it works - however, it has a curios impediment, which I'm going to need to test/research. |
Beta Was this translation helpful? Give feedback.
-
NEWSFLASH: It VERKS! It's been running all day and collecting thousands of calls. I'm still testing but it hasn't missed a beat so-far. If it continues, how can we blend into the sterling work that Patrick, Ethan and Co. have done in updates recently? |
Beta Was this translation helpful? Give feedback.
-
After my initial success of getting an x86 VM up on Proxmox thanks to the work of others here, I decided to take a look at docker. Getting a docker image built off this is not impossible, and I'm about 90% of the way there. However, the code is not easily maintainable and doesn't lend itself to portability, with hard coded paths and creation of needed files from within scripts. For example, the system services are creating files from the deployment script "install_services.sh". If you need a tweak to one of those, you end up changing the script rather than installing a new version of the service file itself. When you're working with a single platform for and deployment process, it's fine but when you start to branch out other platforms and deployment methods it's not ideal. With that in mind, I'm going to spend a bit of time trying to make things a bit more portable before I go ahead an proceed with a docker image. I've created a fork, and will be working on this over the coming weeks (I do have a day job!). When I have something that I feels others could try, I'll let you know. I'll do my best to pull in any changes that occur here. |
Beta Was this translation helpful? Give feedback.
-
Agreed. I did a little test here locally on re-defining paths in a full restructure to test things but I got so caught out with the hard-coded pathways that I must admit, I gave up in disgust! :) I wonder if I kept that....must have a look.. Found a rough draft: Parent: (/opt/birdnet?)
Also was thinking either a "run" directory for ini files like thisrun and lastrun but there could even use "config" for their home. These are just passing thoughts but this huge restructure means a LOT of code in a LOT of files. This is how I f'ed things up whilst testing. :) |
Beta Was this translation helpful? Give feedback.
-
I just got mine running on a libvirt x86_64 guest. Seems to be working great, or rather at least as well as my crappy Amazon electret capsule will allow. |
Beta Was this translation helpful? Give feedback.
-
Got mine working on proxmox using ubiquiti cameras. Really great! Will updating through the GUI break everything? What's the best method to keep this up to date? |
Beta Was this translation helpful? Give feedback.
-
Hi All - I just installed per @Clumpton 's instructions above in a VirtaulBox VM with 4GB of RAM running Debian Bullseye. An odd thing about the install - after the reboot at the end, it come up without the graphical environment. It isn't really a problem, just odd. So, the web UI came up, and I set the input to an RTSP stream. I can hear Live Audio and the Spectrogram works but it looks like no analyzing is happening. When I look at the log via "View Log" it is almost empty. There's a line at the end that says "18:17:43---The birdnet.conf file has changed" and there's nothing after that, even after rebooting the VM (and refreshing the WebUI of course). Any suggestions? update - running dmesg I'm seeing a bunch of errors like "python3 trap invalid opcode" blah blah blah. I'm going to start over and try again with more RAM assigned to the VM. update 2 - install was cleaner the second time through (previously I started with 2GB of ram and later upped to 4. This time I started with 4). However, the outcome is the same - no detection, and lots of errors in the dmesg output.
update 3 - apparently I needed to disabled Hyper-V on my host Windows PC. See here if you are trying to install in a virtualbox VM: Still not detecting anything though - going to try installing again as I was messing around with stuff. update 4 - Spectrogram works. However the recording / analysis loop isn't perpetuating. If I restart the "Recording" service I'll get a new wav file in the StreamData directory - but just one. Then, if I restart the Analysis Client service, it'll analyze that wav file and it will get deleted from the StreamData directory and I'll see some analysis output in the log file. But it doesn't keep going. update 5 - That seemed to be the fault of the rtsp stream from my camera. I switched to an rtsp stream made from the rtmp stream from my camera by Frigate and I seem to be getting further. However, now I'm getting an error that module "resampy" was not found in the log. Ugh. update 6 - I activated the birdnet virtual environment (source ~/BurdNET-Pi/birdnet/bin/activate), installed resampy (pip3 install resampy), and rebooted and now I'm detecting birds. Well, I'm detecting the really loud birds - the mic in my camera isn't great. Apparently there's a scarlet tanager in my backyard somewhere! |
Beta Was this translation helpful? Give feedback.
-
UPDATE: This is now testing and working well. Please see https://github.com/MatthewBCooke/BirdNET-Pi With some inspiration from Japi42 I've managed to fork a newer version of BirdNET-Pi that supports multiple RTSP streams and make the required changes to allow installation in a debian environment. |
Beta Was this translation helpful? Give feedback.
-
I stumbled over your dialog while trying to get it running on an IGEL M310c Thin Client (barematel) while I was googling for the "-P" issue with gotty. |
Beta Was this translation helpful? Give feedback.
-
I'm on a ThinClient 1GB RAM, Via EDEN CPU 800MHz, sse3 flag. My services run, but I have an error in my log on tensorflow. It seems to be related to the tflite I used during installation (2.7.0). I tried to replace the according folder also with v.2.11.0 but the same log entry appeared (see below). Which tflite do I need ?
|
Beta Was this translation helpful? Give feedback.
-
The live stream does not work in my installation on Debian 11 in a KVM virtual machine. My rtsp stream is tcp based, and I've discovered that in the ffmpeg command in livestream.sh, a change needs to be made. Where it says...
... add the -rtsp_transport tcp option right after ffmpeg:
I'm still getting an error when running the script, but not the one about illegal transport.
But that seems like a completely separate issue. The ffmpeg command in birdnet_recording.sh could also use the -rtsp_transport tcp option if you have rtsp streams. Otherwise it defaults to UDP and waits for a timeout before switching to TCP. |
Beta Was this translation helpful? Give feedback.
-
If your PC has spare capacity, and you have a camera pointing somewhere bird-ish anyway, you might check out this little bird species identifier app I've been working on: It is docker-ized and the image is on Docker Hub so should be easy to deploy. It requires that you have Frigate running and looking for birds. I have a 10 year old PC running Frigate, BirdNET, my identification app and a bunch of other things with no problem. If you have any problems, open an issue or drop me a line or whatever. |
Beta Was this translation helpful? Give feedback.
-
This discussion is becoming very disjointed. Just a suggestion, perhaps matters pertaining to any other forks ought to be relegated to that particular fork discussions should they become beyond the scope of BirdNetPi? It is becoming very difficult to follow what is a problem with this repo and what pertains to other installations. |
Beta Was this translation helpful? Give feedback.
-
I'm taking a crack at doing a partial containerization. The BirdNET-Analyzer repo contains a python based server with an API, and it was super easy to containerize. Clone that repo, and replace the Dockerfile that is in there with this:
Then build with this: And here is a super simple docker-compose file you can use to make it go:
Do a My plan is to dig into the BirdNET-Pi code to see how to make it call out to the container instead of doing the analysis in-house. That, I hope, should remove the pain of dealing with labels. It is using the newer BirdNET_GLOBAL_3K_V2.3 model that is apparently focused on birds in America and Europe. |
Beta Was this translation helpful? Give feedback.
-
So I have been having some trouble with my analysis using the v2.3 model. Currently I have been getting a ton of bogus species, Canada geese are detected as Coscoroba Swan and Tree pipits. I am in Chicago. Changing the site location and threshold to 0.0005 does not help, neither does disabling it. Running through the cornell birdnet demo I get spot on results. Also when attempting to preview the species list I also get a box asking me to login again and am not able to bypass it. I do not have a password set up. Not sure if this is specific to the x86 thread but I am running on debian 11 via proxmox. |
Beta Was this translation helpful? Give feedback.
-
Is this the right place to discuss docker and other container approaches? I haven't really found anywhere else active that might be relevant. I can see one or two people have gone down the route of doing whole rewrites, but it might be nice to get the original containerized as well? I run my own homebrew container system and have managed to get BirdNET-Pi running in it OK, and it should be fairly easy to translate the build script into a Dockerfile. For the moment I have managed to convert the result image to docker format and I'm pushing it to github packages as we speak. I've tested it with podman in rootless mode and it seems to work with only minor tweaking (docker may be a little tougher as I gather it's not quite so friendly towards containers that use systemd, at least by default.) |
Beta Was this translation helpful? Give feedback.
-
I've been running Birdnet Pi on Proxmox since last year with barely a hitch
using Mathew Cooke's fork. Try checking it out at
https://github.com/MatthewBCooke/BirdNET-Pi The site I am running is at
https://birdnetpi.bcardi.org/ Works really well but I do run it using the
sound from my Reolink video camera that looks at the nest for youtube. The
rtsp works very well.
…On Sun, Oct 22, 2023 at 12:47 AM breimann ***@***.***> wrote:
Hey @DemBones78 <https://github.com/DemBones78> , I am running HA on a
VM, and would love to work out how to run birdnet on that VM, and yes, I
had birdnet installed on a Rpi 3 a year or so ago, and i managed to get
rstp feed from one of my security cameras to work just fine! Multiple rstp
feeds would be cool, but not sure how to go about that either.
—
Reply to this email directly, view it on GitHub
<#251 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AD4K3TEJC4EEOZN65WX5HALYASQMHAVCNFSM5VKM67D2U5DIOJSWCZC7NNSXTOKENFZWG5LTONUW63SDN5WW2ZLOOQ5TOMZUHEZDGNY>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
Hi all, |
Beta Was this translation helpful? Give feedback.
-
This is the place to discuss porting BirdNET-Pi to x86 for VMs and server installations.
Beta Was this translation helpful? Give feedback.
All reactions