[Testers wanted] New Gladys Raspberry Pi OS image for Bullseye

Hello everyone!

The Raspberry Pi Foundation released a new version of Raspberry Pi OS last month, this time based on Debian Bullseye.

https://www.raspberrypi.com/news/raspberry-pi-os-debian-bullseye/

On the Gladys side, @VonOx has launched a new build of the official Gladys Raspberry Pi image based on Bullseye so that Gladys users can upgrade to this new version :slight_smile:

Given that this is a major system update, I am taking precautions before putting this online on the site as the default image. First, it would be great to have testers, especially for integrations that call on OS « hardware Â» functions (Bluetooth, Zigbee2mqtt via USB, Z-Wave via USB, USB camera).

So for those who would like to help us, the new image is available here:

WARNING: This image is intended for experienced users and is not « production ready Â». For now, it’s just for testing, do not transfer your production instance to it!!

EDIT: After the first feedback, the Bullseye image has many issues, for now I do not recommend using it. The Buster image on the site is still the recommended image.

EDIT: new build below.

(The .zip file)

To install it, it’s the same as usual, you need to follow the same installation tutorial from the documentation :slight_smile:

If this version is stable enough according to feedback, I will update the image on the Gladys site.

Thanks to everyone who will provide feedback!

Hello Pierre Gilles,
I just installed your new image V0.2.1 under bullseye.
First, my Zigbee2mqtt USB dongle is not recognized, it’s a CC2652R. I rebooted, removed it, plugged it back in… but to no avail.
The USB port is properly detected (/dev/ttyUSB0-1a86-1a86).
I don’t see where I could have made a mistake.
I tested it again with my official production image (same RPI), it works fine.
For now, I haven’t tested other integrations.
Jean Paul

Thanks for your feedback and the test @jparbel! :slight_smile:

Weird this port, it should be /dev/ttyUSB0

I’ve always had this behavior on Ubuntu (18.04 & 20.04), had to wait for the host to start before plugging in the dongle. (never found a solution)

Could you return these info for me?

  • lsusb
  • ls /dev
  • ls /dev/serial/by-id
  • udevadm info --name=/dev/ttyUSB0
  • docker inspect gladys
  • apt -qq list linux-image-rpi

Thanks

@VonOx Can I send you the results in a file?
Thanks

No problem, I will format it on the forum

I don’t have the ability to send a text file?

For information, I’m sending you a screenshot of the Zigbee2mqtt settings page

Do you know how to connect via SSH to your Raspberry Pi? (The different commands are to be executed on the Pi)

You can copy the text to the forum without any problem or, in the worst case, take screenshots.

@VonOx
Oui pas de pb avec ssh.
Ah ok, c’était juste pour faire plus propre, et ne pas polluer le forum, voici donc le texte brut :

lsusb avant branchement dongle

Bus 001 Device 004: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter
Bus 001 Device 003: ID 0424:ec00 Microchip Technology, Inc. (formerly SMSC) SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Microchip Technology, Inc. (formerly SMSC) SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

lsusb après branchement dongle

Bus 001 Device 004: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter
Bus 001 Device 006: ID 1a86:7523 QinHeng Electronics CH340 serial converter
Bus 001 Device 003: ID 0424:ec00 Microchip Technology, Inc. (formerly SMSC) SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Microchip Technology, Inc. (formerly SMSC) SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

ls /dev

autofs         loop-control  raw      tty28  tty56                 vcsa1
block          mapper        rfkill   tty29  tty57                 vcsa2
btrfs-control  media0        serial   tty3   tty58                 vcsa3
bus            media1        serial0  tty30  tty59                 vcsa4
cachefiles     mem           shm      tty31  tty6                  vcsa5
cec0           mmcblk0       snd      tty32  tty60                 vcsa6
char           mmcblk0p1     stderr   tty33  tty61                 vcsm-cma
console        mmcblk0p2     stdin    tty34  tty62                 vcsu
cuse           mqueue        stdout   tty35  tty63                 vcsu1
disk           net           tty      tty36  tty7                  vcsu2
dma_heap       null          tty0     tty37  tty8                  vcsu3
dri            ppp           tty1     tty38  tty9                  vcsu4
fb0            ptmx          tty10    tty39  ttyAMA0               vcsu5
fd             pts           tty11    tty4   ttyprintk             vcsu6
full           ram0          tty12    tty40  ttyUSB0               vhci
fuse           ram1          tty13    tty41  tty-usb-arduino-nano  video10
gpiochip0      ram10         tty14    tty42  uhid                  video11
gpiomem        ram11         tty15    tty43  uinput                video12
hwrng          ram12         tty16    tty44  urandom               video13
initctl        ram13         tty17    tty45  v4l                   video14
input          ram14         tty18    tty46  vchiq                 video15
kmsg           ram15         tty19    tty47  vcio                  video16
log            ram2          tty2     tty48  vc-mem                video18
loop0          ram3          tty20    tty49  vcs                   watchdog
loop1          ram4          tty21    tty5   vcs1                  watchdog0
loop2          ram5          tty22    tty50  vcs2                  zero
loop3          ram6          tty23    tty51  vcs3
loop4          ram7          tty24    tty52  vcs4
loop5          ram8          tty25    tty53  vcs5
loop6          ram9          tty26    tty54  vcs6
loop7          random        tty27    tty55  vcsa

ls /dev/serial/by-id

usb-1a86_USB_Serial-if00-port0

udevadm info --name=/dev/ttyUSB0

P: /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/ttyUSB0/tty/ttyUSB0
N: ttyUSB0
L: 0
S: serial/by-id/usb-1a86_USB_Serial-if00-port0
S: serial/by-path/platform-3f980000.usb-usb-0:1.2:1.0-port0
S: tty-usb-arduino-nano
E: DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/ttyUSB0/tty/ttyUSB0
E: DEVNAME=/dev/ttyUSB0
E: MAJOR=188
E: MINOR=0
E: SUBSYSTEM=tty
E: USEC_INITIALIZED=411420474
E: ID_PATH=platform-3f980000.usb-usb-0:1.2:1.0
E: ID_PATH_TAG=platform-3f980000_usb-usb-0_1_2_1_0
E: ID_VENDOR=1a86
E: ID_VENDOR_ENC=1a86
E: ID_VENDOR_ID=1a86
E: ID_MODEL=USB_Serial
E: ID_MODEL_ENC=USB\x20Serial
E: ID_MODEL_ID=7523
E: ID_REVISION=0264
E: ID_SERIAL=1a86_USB_Serial
E: ID_TYPE=generic
E: ID_BUS=usb
E: ID_USB_INTERFACES=:ff0102:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=ch341
E: DEVLINKS=/dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 /dev/serial/by-path/platform-3f980000.usb-usb-0:1.2:1.0-port0 /dev/tty-usb-arduino-nano
E: TAGS=:systemd:
E: CURRENT_TAGS=:systemd:

docker inspect gladys

[
    {
        "Id": "d3ed0186bf1c6ab287f38c6251483577712195aadd77060256aff9f35b28e2af"                                                                                                                                                             ,
        "Created": "2021-12-07T16:36:24.990719676Z",
        "Path": "docker-entrypoint.sh",
        "Args": [
            "npm",
            "run",
            "start:prod"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 932,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2021-12-09T18:03:25.061679071Z",
            "FinishedAt": "2021-12-09T19:03:16.274495163+01:00"
        },
        "Image": "sha256:0b6844316e0e4983271f3441a3c0092fb453dc30896316b0342615e                                                                                                                                                             d0756cb2d",
        "ResolvConfPath": "/var/lib/docker/containers/d3ed0186bf1c6ab287f38c6251                                                                                                                                                             483577712195aadd77060256aff9f35b28e2af/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/d3ed0186bf1c6ab287f38c625148                                                                                                                                                             3577712195aadd77060256aff9f35b28e2af/hostname",
        "HostsPath": "/var/lib/docker/containers/d3ed0186bf1c6ab287f38c625148357                                                                                                                                                             7712195aadd77060256aff9f35b28e2af/hosts",
        "LogPath": "/var/lib/docker/containers/d3ed0186bf1c6ab287f38c62514835777                                                                                                                                                             12195aadd77060256aff9f35b28e2af/d3ed0186bf1c6ab287f38c6251483577712195aadd770602                                                                                                                                                             56aff9f35b28e2af-json.log",
        "Name": "/gladys",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": [
                "/dev:/dev",
                "/run/udev:/run/udev:ro",
                "/sys/class/gpio:/sys/class/gpio",
                "/var/run/docker.sock:/var/run/docker.sock",
                "/var/lib/gladysassistant:/var/lib/gladysassistant"
            ],
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {
                    "max-size": "10m"
                }
            },
            "NetworkMode": "host",
            "PortBindings": {},
            "RestartPolicy": {
                "Name": "always",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "CapAdd": [
                "SYS_RAWIO"
            ],
            "CapDrop": null,
            "CgroupnsMode": "private",
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "private",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": true,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": [
                "label=disable"
            ],
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": [],
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [],
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "KernelMemory": 0,
            "KernelMemoryTCP": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": null,
            "PidsLimit": null,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "MaskedPaths": null,
            "ReadonlyPaths": null
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/d4d5ca949cfd6f6559c5ede0c4                                                                                                                                                             1f3efe4f9504515ebe9dcead5c2aa9738f4dfc-init/diff:/var/lib/docker/overlay2/7889c7                                                                                                                                                             aaeab1f642a1b7830571413e3e590398a11ab44cd7790debc4956500db/diff:/var/lib/docker/                                                                                                                                                             overlay2/2c2ceefa783fa17b19f041c013bbb728c9f6eebad7178cb76db4ad25d2a3dd05/diff:/                                                                                                                                                             var/lib/docker/overlay2/686b23dd703254abc983dbe1cb17dad19881d76f26f11d7c1a04f5a2                                                                                                                                                             a09b0130/diff:/var/lib/docker/overlay2/7e3d517be55c534854ac0d1f585b3941d8b73c558                                                                                                                                                             e6a80e1c2da1c4e0deda0c5/diff:/var/lib/docker/overlay2/580c49746035e3e3b67b27559b                                                                                                                                                             7306701355b7d4ab9794f3cf208bc07d98cfb3/diff:/var/lib/docker/overlay2/7fabce3dd2c                                                                                                                                                             0f19017e69d5a5ae6395286fb25dd3d22c8271ce7e75012f796bc/diff:/var/lib/docker/overl                                                                                                                                                             ay2/3daeb66b469762e0655dd9442fd129974bf93bdff5813563234b2e08bbdd2251/diff:/var/l                                                                                                                                                             ib/docker/overlay2/fe289df30523cecbdb56a0ff434adf861a3231233064ca4f76fea6b025ea3                                                                                                                                                             798/diff:/var/lib/docker/overlay2/a0682d9bc97dbbf59ff4b1e82aff0a81fc706609a3c56d                                                                                                                                                             1bdae29801910b2bb3/diff:/var/lib/docker/overlay2/d16f6f016a0198f99786286b92119be                                                                                                                                                             782f7749e7f3c62662119037062a32ff8/diff:/var/lib/docker/overlay2/1d1d40e6035610e4                                                                                                                                                             116b372e6af2b307ec3497a9069ef4d19feb5540533393e4/diff:/var/lib/docker/overlay2/3                                                                                                                                                             3df0e09450568870c2844b7835f70b74fa57f4fefac53213a25dcf8096feb8b/diff",
                "MergedDir": "/var/lib/docker/overlay2/d4d5ca949cfd6f6559c5ede0c                                                                                                                                                             41f3efe4f9504515ebe9dcead5c2aa9738f4dfc/merged",
                "UpperDir": "/var/lib/docker/overlay2/d4d5ca949cfd6f6559c5ede0c4                                                                                                                                                             1f3efe4f9504515ebe9dcead5c2aa9738f4dfc/diff",
                "WorkDir": "/var/lib/docker/overlay2/d4d5ca949cfd6f6559c5ede0c41                                                                                                                                                             f3efe4f9504515ebe9dcead5c2aa9738f4dfc/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [
            {
                "Type": "bind",
                "Source": "/dev",
                "Destination": "/dev",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/run/udev",
                "Destination": "/run/udev",
                "Mode": "ro",
                "RW": false,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/sys/class/gpio",
                "Destination": "/sys/class/gpio",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/var/lib/gladysassistant",
                "Destination": "/var/lib/gladysassistant",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/var/run/docker.sock",
                "Destination": "/var/run/docker.sock",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],
        "Config": {
            "Hostname": "raspberrypi",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "80/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "NODE_ENV=production",
                "SERVER_PORT=80",
                "TZ=Europe/Paris",
                "SQLITE_FILE_PATH=/var/lib/gladysassistant/gladys-production.db"                                                                                                                                                             ,
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/b                                                                                                                                                             in",
                "NODE_VERSION=14.18.1",
                "YARN_VERSION=1.22.15",
                "LD_LIBRARY_PATH=/lib"
            ],
            "Cmd": [
                "npm",
                "run",
                "start:prod"
            ],
            "Image": "gladysassistant/gladys:v4",
            "Volumes": null,
            "WorkingDir": "/src/server",
            "Entrypoint": [
                "docker-entrypoint.sh"
            ],
            "OnBuild": null,
            "Labels": {}
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "14acb5506d83b7e13f678db2e27b7e0dc4203ba44c865b222b8a42                                                                                                                                                             cae5a201d4",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {},
            "SandboxKey": "/var/run/docker/netns/default",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "",
            "Gateway": "",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "",
            "IPPrefixLen": 0,
            "IPv6Gateway": "",
            "MacAddress": "",
            "Networks": {
                "host": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "a3d6ac6eff080c263c66a928a717ab020d06f1211770ab                                                                                                                                                             8e7217fb63c56bd869",
                    "EndpointID": "a4d7f2dc2e2b67da356512e2760e1c860045cb55f271b                                                                                                                                                             7029ca4aa392a6d7e31",
                    "Gateway": "",
                    "IPAddress": "",
                    "IPPrefixLen": 0,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "",
                    "DriverOpts": null
                }
            }
        }
    }
]

apt -qq list linux-image-rpi

Pas de retour ?

Thanks @jparbel, no it doesn’t pollute, you can format (I edited your message)

@VonOx

Have you found anything, or am I the only one having this problem?

Good evening.

I don’t have much time but I’m still on it. :wink:

I edited the post to say that for now the Bullseye image is really not recommended for production use given the issues encountered with it :slight_smile:

The Buster image on the site (Commencer avec Gladys | Gladys Assistant) remains the recommended image.

I need your help, I really don’t understand

In my container, I create testDocker.js (server folder), without touching the dependencies

var Docker = require('dockerode');
var docker = new Docker();

docker.listContainers(function (err, containers) {
  containers.forEach(function (containerInfo) {
    console.log(containerInfo.Names);
  });
});

By default, dockerode uses the Unix socket

This file works!!!
image


However, in Gladys, there’s a glitch somewhere but I can’t find it. Why would dockerode be null/undefined?

dockerode is initialized here: Gladys/server/lib/system/system.init.js at master · GladysAssistant/Gladys · GitHub

Maybe there is an error at this moment or we never reach this line :thinking:

Hello,

I just tested the new bullseye image. In addition to the issues encountered by @jparbel and myself (RPI4 config), it is impossible to use a USB camera


and MQTT cannot be started

I made a new build, I think the problem is resolved but I didn’t have time to test. If anyone feels like it and has the courage.

I see your commit, what was the problem in the end?

cgroup v2 was introduced in bullseye, which broke quite a few containerized applications because of it.

Let’s see if this is enough (cgroupns argument when creating the container)

We use it to determine the container IDs

@VonOx I just installed your latest build, unfortunately, the issue is not resolved for me, my Zigbee2mqtt USB dongle (Simplelink – 2.4G USB key, CC2652P/CC2652) is still not recognized, see my message from 21/12.

Good evening.