Menu

jambox: Jamulus on Raspberry Pi 4 - an easy to use, pre built microSD card image

2020-11-23
2021-02-28
<< < 1 2 3 4 > >> (Page 2 of 4)
  • Vincenzo

    Vincenzo - 2020-12-09

    I did some homework, which let me in part happy, in part not.
    I have put a Raspberry OS "base", as from their web site, on a microSD; booted from this card, lsusb as well as aplay and arecord recognize the UM2 but also my mixer. I am happy: USB is not broken.
    I burnt again Jambox, and they are not recognised (nor a USB drive).
    However, there is an additional difference that might help in debugging.
    With Jambox, lsusb lists only:
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    While the base OS shows:

    Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 001 Device 002: ID 2109:3431 VIA LAbs, Inc. hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    

    So, while I am confident there will be a solution, I do not know where to look for :)

     
  • Kevin Doren

    Kevin Doren - 2020-12-09

    Now that is interesting. My image is in use on dozens of Pi's running Jamulus and yours is the only one reporting this problem. My image was built using same process as official Raspberry Pi OS, although kernel is different (realtime kernel), also some different installed packages, but those should not affect USB operation.

    The current default eeprom, is 2020-09-03 release, which you are almost certainly running.
    One of the changes in that release was to address your very issue on R1.3 and older boards:

    2020-07-31 Standardize USB port power control across board revisions - BETA
    Turn off USB port power for 1-second regardless of boot-mode. This appears to resolve an issue on R1.3 and older board revisions where some USB devices would fail upon reboot. On R1.4 USB port power is turned off automatically by the PMIC so this is just held in reset for longer. For earlier board revisions the USB port power is explicitly turned off via XHCI. This can be overridden via USB_MSD_PWR_OFF_TIME in the EEPROM config.
    

    You can list hardware and firmware info:

    sudo rpi-eeprom-update
    cat /proc/cpuinfo | tail -n4
    

    I have 4 Pi 4's here and they all report Revision c03112, Model B Rev 1.2, and current firmware of Thu 03 Sep 2020.

    What values are you seeing?
    according to this:
    https://www.raspberrypi.org/documentation/hardware/raspberrypi/booteeprom.md
    the booteeprom config settings can be listed (and changed):
    rpi-eeprom-config

    Unfortunately I can't reproduce your problem on my hardware.
    I'll look into this some more tonight. let me know what you are seeing.

     

    Last edit: Kevin Doren 2020-12-16
  • Vincenzo

    Vincenzo - 2020-12-09

    Thanks, this is the output:

    pi@jambox:~ $ sudo rpi-eeprom-update
    BCM2711 detected
    VL805 firmware in bootloader EEPROM
    BOOTLOADER: up-to-date
    CURRENT: Thu 03 Sep 2020 12:11:43 PM UTC (1599135103)
     LATEST: Thu 03 Sep 2020 12:11:43 PM UTC (1599135103)
     FW DIR: /lib/firmware/raspberrypi/bootloader/critical
    VL805: up-to-date
    CURRENT: 00000000
     LATEST: 00000000
    
    pi@jambox:~ $ cat /proc/cpuinfo | tail -n4
    Hardware    : BCM2835
    Revision    : b03114
    Serial      : 100000001bab0b5d
    Model       : Raspberry Pi 4 Model B Rev 1.4
    
    pi@jambox:~ $ rpi-eeprom-config
    [all]
    BOOT_UART=0
    WAKE_ON_GPIO=1
    POWER_OFF_ON_HALT=0
    DHCP_TIMEOUT=45000
    DHCP_REQ_TIMEOUT=4000
    TFTP_FILE_TIMEOUT=30000
    TFTP_IP=
    TFTP_PREFIX=0
    BOOT_ORDER=0x1
    SD_BOOT_MAX_RETRIES=3
    NET_BOOT_MAX_RETRIES=5
    [none]
    FREEZE_VERSION=0
    
     
  • Erich Krahmer

    Erich Krahmer - 2020-12-09

    have the same problem with pi4 & um2.
    see https://sourceforge.net/p/llcon/discussion/533517/thread/e520d50c60/#0930
    checked the power presented by pi with a usb fan :-) : all 4 ports make the fan rotate.
    As Vincenzo advised, I ran a lsusb from the jambox console. The result was
    "Bus 001 Device001: ID 1d6b:0002 Linux Foundation 2.0 root hub" and nothing else.
    and, no matter what i plug into any usb port, the reading is the same. I connected a hard disk, it was spinning up, the disk power led shining bright but lsusb does not report anything

    The rpi-eeprom-update report is identical to that Vincenzo posted.

    So, while we are confident there will be a solution, we do not know where to look for :)

     
  • Kevin Doren

    Kevin Doren - 2020-12-10

    I believe the issue is an incompatibility between the realtime kernel I am using (4.19.71-rt24-v7l+) and the 8GB version of Raspberry Pi. That kernel is the most recent official RT kernel build for the PI. If I can't use a newer version, I'll build an image with the standard kernel, I expect it should be OK for Jamulus.

     
    • Vincenzo

      Vincenzo - 2020-12-10

      Actually, my RPi is 2GB. And, ehm, I bricked it by tring to force install the last VL805 firmware (because of such CURRENT: 00000000 LATEST: 00000000). Now I am recovering it :)

       
  • Kevin Doren

    Kevin Doren - 2020-12-10

    I've mainly read reports of USB issues on 8GB Pi's with older kernel. But I think it's actually due to a chipset difference that showed up first in 8GB units, not the memory; maybe 2GB units are now shipping with the newer chip. I'm building a new image right now that uses the (newer) stock kernel (there's no easy way to include a newer realtime kernel).

     
    • Vincenzo

      Vincenzo - 2020-12-10

      Thanks, when you have ready something to try, I will test it.

       
  • Kevin Doren

    Kevin Doren - 2020-12-10

    I tried a build with newer 5.4 (non-realtime) kernel. I expect this will work on your rev of Raspberry Pi. Couple of things I see:

    1) Device names are a bit different (USB interface is now card 2 instead of 1. I need to do a minor startup script change to account for this. I can do this tonight and post a build for you to try.

    2) Jamulus seems to work fine. But if you i.e. drag windows around while playing, you can hear the audio degrade due to increased jitter. With realtime kernel, Jamulus & jack get priority, so other processes such as window dragging don't hurt the audio.

    There's no packaged realtime kernel available for Raspberry Pi since 4.19.71. I might take a stab at building one, but if it were easy, newer realtime kernels would already be available. Looking at the message traffic from the last one, it looks like they went through a lot of iterations getting the hardware compatibility right. But they were trying to make it work on all earlier Pi hardware, which is not an issue for me.

     
    • Vincenzo

      Vincenzo - 2020-12-10

      Thanks. 2) is not an issue, while playing my hands are 200% busy :) .

       
  • Erich Krahmer

    Erich Krahmer - 2020-12-10

    oops. fine. despite of real time kernels, this seems to be a real time fix :-)
    when the new build is avalable, I will test it asap and provide a feedback.

     
  • Kevin Doren

    Kevin Doren - 2020-12-11

    Vincenzo & Erich,

    Here's a download link for a new image build that uses the stock (5.4) kernel. I expect this will solve the USB issues, but I don't have a problem Pi to test it on.

    { link deleted as it is now obsoleted by release version ]

    Please give it a try and let me know how it works. If it solves the USB problem I'll publish it as a release on github.

    No new functionality but a couple of settings changes.

    The preempt-rt kernel is a "nice to have" feature, but it mainly impacts what else your Raspberry Pi can do while you run Jamulus. If you aren't dragging windows around or running a zoom call, you likely won't notice a difference.

    The updated files are in the jambox-8gb branch. README.md is here:
    https://github.com/kdoren/jambox-pi-gen/blob/jambox-8gb/README.md

     

    Last edit: Kevin Doren 2021-01-05
  • Erich Krahmer

    Erich Krahmer - 2020-12-11

    Chapeau! up and running from scratch
    UM2 is working, connections to servers are working.
    further testing will take place.....:-)

     
    • Vincenzo

      Vincenzo - 2020-12-11

      Me too! no issues, it successfully recognizes also my Ammoon mixer. Thank you very much.
      I will have to choose 128 like on my computer (for both interfaces).

       
  • Vincenzo

    Vincenzo - 2020-12-16

    Kevin: I tried to modify PERIOD and NPERIODS because of too much crackling (not knowing what I am doing of course), I found 64 and 8 as decent values, however: why the buffer delay options 128 and 256 are always disabled in Jamulus? Just to understand. Thanks.

     
    • Gilgongo

      Gilgongo - 2020-12-16

      why the buffer delay options 128 and 256 are always disabled in Jamulus?

      I think changing those values from Jamulus itself may be platform specific. You may need to change them in your driver instead (that is, Jack)

       
      • Vincenzo

        Vincenzo - 2020-12-16

        This is what I suppose to have done: changed them in /etc/jackdrc.conf .... but maybe there is something more to do?

         
        • Gilgongo

          Gilgongo - 2020-12-16

          The jack service needs to be restarted maybe?

           
          • Vincenzo

            Vincenzo - 2020-12-16

            done, of course :)

             
  • Kevin Doren

    Kevin Doren - 2020-12-16

    jack is always restarted when you use the "Jamulus Start" desktop icon. So it will always pick up any changes to /etc/jackdrc.conf

    I am guessing the 64 and 8 are for your USB mixer?

    I have it default to PERIOD=64 because that is required for "enable small network buffers" to work, which can reduce delay.

    NPERIODS is the number of PERIODs per buffer (so, byte-wise, 64 x 8 is equivalent to 128 x 4). I have default set to 64 x 5 but some USB audio interfaces need more. If 64 x 8 works reliably with your mixer I wouldn't worry about it.

     
    • Vincenzo

      Vincenzo - 2020-12-16

      64 and 8 or 10 for the UM2 ... regarding small network buffers, I am unable to use it also on Mac (the network is so so - ADSL 20/1).

       
  • Kevin Doren

    Kevin Doren - 2020-12-16

    Hmmm.. UM2 should not need 8 running Jamulus on Raspberry Pi, we have lots of them running fine at 64 and 5. I would not expect the kernel to make a difference there, but if you want to try it, here's a link to a jambox beta release.

    This one uses a 64-bit realtime 5.4 kernel (I figured out how to build it). Also can run as a Jamulus server with GUI ("systemctl start jamulus-server"), and also has a SonoBus peer-to-peer jamming client.

    https://jambox-project.s3-us-west-2.amazonaws.com/releases/image_2020-12-09-Jambox_pi-gen_v1.2.0b1.zip

     

    Last edit: Kevin Doren 2020-12-16
    • Vincenzo

      Vincenzo - 2020-12-17

      Thanks, I will try it. However, I suspect the more bandwidth needed goes closer to my network limit, thus giving issues.

       
  • Kevin Doren

    Kevin Doren - 2020-12-17

    If network bandwidth is your problem, that's fixed by using less (lower audio quality, mono signal, disable small network buffers). Changing the PERIOD and NPERIODS settings for jack audio won't help.

    If you're getting crackling that is fixed by increasing NPERIODS, that means the data from your USB interface isn't always there when jack needs it. If it were any other interface, I would say 64 x 8 is nothing to worry about. But we have a bunch of UM2's working reliably at 64 x 5, which makes me ask "what's different?". We know you have a different Pi4 hardware version, that's why you needed the newer kernel. The kernel is also different. I doubt that the kernel is making the difference, but in this case it's easy enough to check.

     
  • Erich Krahmer

    Erich Krahmer - 2020-12-18

    Here's my promised further testing:
    Had meanwhile the first (barbershop) singing session via jambox. My 16MBit DSL line required the following config:
    -Jack PERIOD 128,
    -no small buffers,
    -network buffers no auto, local5, server5
    -audio: mono, quality: low
    That yielded in about 50ms latency, fine for singing barbershop tags etc
    But: a config file is made for being changed. Why have I to ask internet during the JamSession and afterwards struggle with nerd issues like makinng invisible dirs visible, sudoing changemods etc to change jack period setting? Please make it more easy for musicians to find and edit the config files :-)
    Conclusion:
    1. You made a great job!
    2. With 16MBit DSL line every home office launching a Zoom video kills the jam session

    Meanwhile Jamulus starts with the message "new version available". Any advise how to perform the update?

    .. just downloaded the rev 1.2.0b1
    I will check it out the next days

     
<< < 1 2 3 4 > >> (Page 2 of 4)