The USB is recognised at startup. But when un-plugged and re-plugged, then the USB is no longer recognised.
Whenever I run the
my_service locally, then USB unplug / re-plug works perfectly fine. (I am using the usb-detection library as well as the Serialport.io library. And it can do port recognition after un-plug / re-plug just fine.
It is only inside its own docker container under balenaOS that the USB can never re-connect. Why is that ?
I followed all hints from this earlier post, but without success.
My docker-compose.yml looks like this:
version: "2.1" services: my_service: build: my_service_folder restart: always privileged: true my_main_application: build: . shm_size: "1gb" labels: io.balena.features.dbus: "1" restart: always privileged: true environment: - DISPLAY=:0 - CURSOR=false - PULSE_SERVER=tcp:audio:4317 - PULSE_SINK=alsa_output.hda-intel.hdmi-stereo - DBUS_SYSTEM_BUS_ADDRESS=unix:path=/host/run/dbus/system_bus_socket
I had also tried with the following change - but without success…
my_service: build: my_service_folder restart: always privileged: true environment: - UDEV=1 devices: - '/dev:/dev'
Dockerfile.template of my_service, I placed:
But unfortunately, the USB re-plug does not work.
What am I missing ??
I am using an AMD64
Here is the entire
FROM balenalib/%%BALENA_MACHINE_NAME%%-node:16 # installing preconditions to build usb-detection from source RUN sudo apt-get update -y RUN sudo apt-get install -y python3 RUN sudo apt-get install -y build-essential RUN sudo apt-get install -y libudev-dev # Defines our working directory in container WORKDIR /usr/src/app # Copies the package.json first for better cache on later pushes COPY package.json yarn.lock ./ # This will copy all files in our root to the working directory in the container COPY . ./ RUN JOBS=MAX yarn install --frozen-lockfile # Build dist RUN yarn run build # Enable udevd so that plugged dynamic hardware devices show up in our container. ENV UDEV=1 # Increase to 2 GB RUN export NODE_OPTIONS="--max-old-space-size=2048" # server.js will run when container starts up on the device CMD ["yarn", "start"]