Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. iobroker zeschossen

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    iobroker zeschossen

    This topic has been deleted. Only users with topic management privileges can see it.
    • Glasfaser
      Glasfaser @Krisiun last edited by

      @krisiun sagte in iobroker zeschossen:

      ist zwar schon alt aber egal

      Mhh ...
      ich wollte jetzt nicht in eine offene Wunde rumbohren .

      Aber ein Backup ist das A und O und auch vor Veränderungen an ioBroker / System

      Krisiun 1 Reply Last reply Reply Quote 0
      • Krisiun
        Krisiun @Thomas Braun last edited by

        @thomas-braun

        Skript v.2023-06-20
        
        *** BASE SYSTEM ***
        Failed to connect to bus: Host is down
        
        model name      : Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
        Docker          : false
        Virtualization  : wsl
        Kernel          : x86_64
        Userland        : amd64
        
        Systemuptime and Load:
         20:04:03 up  1:45,  0 users,  load average: 0.52, 0.58, 0.59
        CPU threads: 8
        
        
        *** Time and Time Zones ***
        System has not been booted with systemd as init system (PID 1). Can't operate.
        Failed to connect to bus: Host is down
        
        *** User and Groups ***
        root
        /root
        root
        
        *** X-Server-Setup ***
        X-Server:       false
        Desktop:
        Terminal:
        Boot Target:    graphical.target
        
        *** MEMORY ***
                       total        used        free      shared  buff/cache   available
        Mem:             16G        7.6G        8.5G         17M        223M        8.6G
        Swap:            30G         11M         30G
        Total:           46G        7.6G         38G
        
        Error: /proc must be mounted
          To mount /proc at boot you need an /etc/fstab line like:
              proc   /proc   proc    defaults
          In the meantime, run "mount proc /proc -t proc"
        
        *** FILESYSTEM ***
        Filesystem     Type   Size  Used Avail Use% Mounted on
        rootfs         lxfs   238G  195G   43G  83% /
        none           tmpfs  238G  195G   43G  83% /dev
        none           tmpfs  238G  195G   43G  83% /run
        none           tmpfs  238G  195G   43G  83% /run/lock
        none           tmpfs  238G  195G   43G  83% /run/shm
        none           tmpfs  238G  195G   43G  83% /run/user
        tmpfs          tmpfs  238G  195G   43G  83% /sys/fs/cgroup
        C:\            drvfs  238G  195G   43G  83% /mnt/c
        D:\            drvfs  932G  541G  391G  59% /mnt/d
        
        Messages concerning ext4 filesystem in dmesg:
        
        Show mounted filesystems (real ones only):
        TARGET   SOURCE FSTYPE OPTIONS
        /        rootfs lxfs   rw,noatime
        |-/mnt/c C:\    drvfs  rw,noatime,uid=0,gid=0,case=off
        `-/mnt/d D:\    drvfs  rw,noatime,uid=0,gid=0,case=off
        
        Files in neuralgic directories:
        
        /var:
        457M    /var/
        329M    /var/lib
        157M    /var/lib/snapd/seed/snaps
        157M    /var/lib/snapd/seed
        157M    /var/lib/snapd
        
        No journal files were found.
        Archived and active journals take up 0B in the file system.
        
        /opt/iobroker/backups:
        103M    /opt/iobroker/backups/
        
        /opt/iobroker/iobroker-data:
        431M    /opt/iobroker/iobroker-data/
        285M    /opt/iobroker/iobroker-data/files
        107M    /opt/iobroker/iobroker-data/backup-objects
        72M     /opt/iobroker/iobroker-data/files/telegram.admin
        52M     /opt/iobroker/iobroker-data/files/javascript.admin
        
        The five largest files in iobroker-data are:
        21M     /opt/iobroker/iobroker-data/files/web.admin/static/js/main.edf7552a.js.map
        19M     /opt/iobroker/iobroker-data/files/iot.admin/static/js/main.2975a411.js.map
        15M     /opt/iobroker/iobroker-data/objects.jsonl
        15M     /opt/iobroker/iobroker-data/files/telegram.admin/rules/static/js/vendors-node_modules_iobroker_adapter-react-v5_assets_devices_parseNames_d_ts-node_modules_io-1d9f06.44fe4a3f.chunk.js.map
        8.9M    /opt/iobroker/iobroker-data/files/scenes.admin/static/js/2.7de3299d.chunk.js.map
        
        *** NodeJS-Installation ***
        
        /home/iobroker/.diag.sh: line 177: /usr/bin/nodejs: cannot execute binary file: Exec format error
        /usr/bin/nodejs
        /home/iobroker/.diag.sh: line 178: /usr/bin/node: cannot execute binary file: Exec format error
        /usr/bin/node
        /mnt/c/Windows/system32/npm
        : not foundram Files/nodejs/npx: 2:
        : not foundram Files/nodejs/npx: 5:
        : not foundram Files/nodejs/npx: 7:
        : not foundram Files/nodejs/npx: 9:
        /mnt/c/Program Files/nodejs/npx: 10: Syntax error: word unexpected (expecting "in")
        /mnt/c/Program Files/nodejs/npx
        /home/iobroker/.diag.sh: line 186: /usr/bin/nodejs: cannot execute binary file: Exec format error
        /home/iobroker/.diag.sh: line 187: /usr/bin/node: cannot execute binary file: Exec format error
        : not foundram Files/nodejs/npx: 2:
        : not foundram Files/nodejs/npx: 5:
        : not foundram Files/nodejs/npx: 7:
        : not foundram Files/nodejs/npx: 9:
        /mnt/c/Program Files/nodejs/npx: 10: Syntax error: word unexpected (expecting "in")
        *** nodejs is NOT correctly installed ***
        
        E: Malformed line 1 in source list /etc/apt/sources.list.d/nodesource.list (type)
        E: The list of sources could not be read.
        
        Temp directories causing npm8 problem: 0
        No problems detected
        
        Errors in npm tree: 0
        
        *** ioBroker-Installation ***
        
        ioBroker Status
        /usr/bin/node: 1: cannot create : Permission denied
        /usr/bin/node: 2: : not found
        /usr/bin/node: 4: Syntax error: Unterminated quoted string
        
        /usr/bin/node: 1: cannot create : Permission denied
        /usr/bin/node: 2: : not found
        /usr/bin/node: 4: Syntax error: Unterminated quoted string
        
        Core adapters versions
        /usr/bin/node: 1: cannot create : Permission denied
        /usr/bin/node: 2: : not found
        /usr/bin/node: 4: Syntax error: Unterminated quoted string
        js-controller:
        /usr/bin/node: 1: cannot create : Permission denied
        /usr/bin/node: 2: : not found
        /usr/bin/node: 4: Syntax error: Unterminated quoted string
        admin:
        /usr/bin/node: 1: cannot create : Permission denied
        /usr/bin/node: 2: : not found
        /usr/bin/node: 4: Syntax error: Unterminated quoted string
        javascript:
        
        Adapters from github:   0
        
        Adapter State
        /usr/bin/node: 1: cannot create : Permission denied
        /usr/bin/node: 2: : not found
        /usr/bin/node: 4: Syntax error: Unterminated quoted string
        
        Enabled adapters with bindings
        /usr/bin/node: 1: cannot create : Permission denied
        /usr/bin/node: 2: : not found
        /usr/bin/node: 4: Syntax error: Unterminated quoted string
        
        ioBroker-Repositories
        /usr/bin/node: 1: cannot create : Permission denied
        /usr/bin/node: 2: : not found
        /usr/bin/node: 4: Syntax error: Unterminated quoted string
        
        Installed ioBroker-Instances
        /usr/bin/node: 1: cannot create : Permission denied
        /usr/bin/node: 2: : not found
        /usr/bin/node: 4: Syntax error: Unterminated quoted string
        
        Objects and States
        Please stand by - This may take a while
        Objects:        0
        States:         0
        
        *** OS-Repositories and Updates ***
        E: Malformed line 1 in source list /etc/apt/sources.list.d/nodesource.list (type)
        E: The list of sources could not be read.
        E: Malformed line 1 in source list /etc/apt/sources.list.d/nodesource.list (type)
        E: The list of sources could not be read.
        E: Malformed line 1 in source list /etc/apt/sources.list.d/nodesource.list (type)
        E: The list of sources could not be read.
        Pending Updates:
        
        *** Listening Ports ***
        Active Internet connections (only servers)
        Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      PID/Program name
        
        *** Log File - Last 25 Lines ***
        
        2023-10-07 21:49:27.501  - info: host.Marek2 instance system.adapter.kodi.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
        2023-10-07 21:49:27.502  - info: host.Marek2 instance system.adapter.tr-064.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
        2023-10-07 21:49:27.502  - info: host.Marek2 instance system.adapter.shelly.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
        2023-10-07 21:49:27.502  - info: host.Marek2 stopInstance system.adapter.pushover.0 killing pid 9396
        2023-10-07 21:49:27.537  - info: host.Marek2 instance system.adapter.discovery.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
        2023-10-07 21:49:27.538  - info: host.Marek2 instance system.adapter.backitup.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
        2023-10-07 21:49:27.539  - info: host.Marek2 instance system.adapter.javascript.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
        2023-10-07 21:49:27.634  - info: host.Marek2 stopInstance system.adapter.web.0 killing pid 10344
        2023-10-07 21:49:27.635  - info: host.Marek2 stopInstance system.adapter.philips-tv.0 killing pid 10481
        2023-10-07 21:49:27.647  - info: host.Marek2 instance system.adapter.sonoff.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
        2023-10-07 21:49:27.668  - info: host.Marek2 instance system.adapter.iot.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
        2023-10-07 21:49:27.668  - info: host.Marek2 instance system.adapter.broadlink2.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
        2023-10-07 21:49:27.730  - info: host.Marek2 instance system.adapter.info.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
        2023-10-07 21:49:27.730  - info: host.Marek2 instance system.adapter.yahka.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
        2023-10-07 21:49:27.730  - info: host.Marek2 instance system.adapter.tankerkoenig.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
        2023-10-07 21:49:27.765  - info: host.Marek2 instance system.adapter.firetv.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
        2023-10-07 21:49:27.765  - info: host.Marek2 instance system.adapter.parcel.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
        2023-10-07 21:49:27.839  - info: host.Marek2 instance system.adapter.web.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
        2023-10-07 21:49:27.840  - info: host.Marek2 instance system.adapter.philips-tv.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
        2023-10-07 21:49:27.901  - info: host.Marek2 instance system.adapter.pushover.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
        2023-10-07 21:49:29.473  - info: tuya.0 (9456) terminating
        2023-10-07 21:49:29.475  - info: tuya.0 (9456) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
        2023-10-07 21:49:30.080  - info: host.Marek2 instance system.adapter.tuya.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
        2023-10-07 21:49:30.081  - info: host.Marek2 All instances are stopped.
        2023-10-07 21:49:30.150  - info: host.Marek2 terminated
        
        Thomas Braun 1 Reply Last reply Reply Quote 0
        • Krisiun
          Krisiun last edited by

          ======================= SUMMARY =======================
                               v.2023-06-20
          
          
          Failed to connect to bus: Host is down
          
          Installation:           wsl
          Kernel:                 x86_64
          Userland:               amd64
          System has not been booted with systemd as init system (PID 1). Can't operate.
          Failed to connect to bus: Host is down
          Timezone:
          User-ID:                0
          X-Server:               false
          Boot Target:            graphical.target
          
          Pending OS-Updates:
          /usr/bin/node: 1: cannot create : Permission denied
          /usr/bin/node: 2: : not found
          /usr/bin/node: 4: Syntax error: Unterminated quoted string
          Pending iob updates:    0
          
          /home/iobroker/.diag.sh: line 374: /usr/bin/nodejs: cannot execute binary file: Exec format error
          Nodejs-Installation:    /usr/bin/nodejs
          /home/iobroker/.diag.sh: line 375: /usr/bin/node: cannot execute binary file: Exec format error
                                  /usr/bin/node
                                  /mnt/c/Windows/system32/npm
          : not foundram Files/nodejs/npx: 2:
          : not foundram Files/nodejs/npx: 5:
          : not foundram Files/nodejs/npx: 7:
          : not foundram Files/nodejs/npx: 9:
          /mnt/c/Program Files/nodejs/npx: 10: Syntax error: word unexpected (expecting "in")
                                  /mnt/c/Program Files/nodejs/npx
          
          Recommended versions are nodejs 18.x.y and npm 9.x.y
          *** nodejs is NOT correctly installed ***
          
          MEMORY:
                         total        used        free      shared  buff/cache   available
          Mem:             16G        7.6G        8.4G         17M        223M        8.5G
          Swap:            30G         11M         30G
          Total:           46G        7.6G         38G
          
          /usr/bin/node: 1: cannot create : Permission denied
          /usr/bin/node: 2: : not found
          /usr/bin/node: 4: Syntax error: Unterminated quoted string
          Active iob-Instances:   0
          /usr/bin/node: 1: cannot create : Permission denied
          /usr/bin/node: 2: : not found
          /usr/bin/node: 4: Syntax error: Unterminated quoted string
          
          /usr/bin/node: 1: cannot create : Permission denied
          /usr/bin/node: 2: : not found
          /usr/bin/node: 4: Syntax error: Unterminated quoted string
          ioBroker Core:          js-controller
          /usr/bin/node: 1: cannot create : Permission denied
          /usr/bin/node: 2: : not found
          /usr/bin/node: 4: Syntax error: Unterminated quoted string
                                  admin
          
          /usr/bin/node: 1: cannot create : Permission denied
          /usr/bin/node: 2: : not found
          /usr/bin/node: 4: Syntax error: Unterminated quoted string
          ioBroker Status:
          
          Status admin and web instance:
          /usr/bin/node: 1: cannot create : Permission denied
          /usr/bin/node: 2: : not found
          /usr/bin/node: 4: Syntax error: Unterminated quoted string
          
          Objects:                0
          States:                 0
          
          Size of iob-Database:
          
          15M     /opt/iobroker/iobroker-data/objects.jsonl
          5.6M    /opt/iobroker/iobroker-data/objects.json.migrated
          5.6M    /opt/iobroker/iobroker-data/objects.json.bak.migrated
          2.3M    /opt/iobroker/iobroker-data/states.jsonl
          808K    /opt/iobroker/iobroker-data/states.json.migrated
          808K    /opt/iobroker/iobroker-data/states.json.bak.migrated
          
          1 Reply Last reply Reply Quote 0
          • Krisiun
            Krisiun @Glasfaser last edited by

            @glasfaser sagte in iobroker zeschossen:

            @krisiun sagte in iobroker zeschossen:

            ist zwar schon alt aber egal

            Mhh ...
            ich wollte jetzt nicht in eine offene Wunde rumbohren .

            Aber ein Backup ist das A und O und auch vor Veränderungen an ioBroker / System

            Ich weiß. Wenn wir das mal wieder zum laufen bringen sollten dann werde ich bestimmt als erstes ein Backup machen

            1 Reply Last reply Reply Quote 0
            • Thomas Braun
              Thomas Braun Most Active @Krisiun last edited by

              @krisiun

              Du hampelst ja immer noch als root da rum. Du lernst es nicht, oder?
              ROOT IST VERBOTEN!!!

              Gerade wenn man keinen Plan hat, dann ist das doppelt verboten.

              E: Malformed line 1 in source list /etc/apt/sources.list.d/nodesource.list (type)

              E: The list of sources could not be read.

              Der Eintrag in Zeile 1 der Datei hat das falsche Format. Was steht denn da nun drin?

              cat /etc/apt/sources.list.d/nodesource.list
              
              Krisiun 2 Replies Last reply Reply Quote 1
              • Krisiun
                Krisiun @Thomas Braun last edited by

                @thomas-braun sagte in iobroker zeschossen:

                @krisiun

                Du hampelst ja immer noch als root da rum. Du lernst es nicht, oder?
                ROOT IST VERBOTEN!!!

                Gerade wenn man keinen Plan hat, dann ist das doppelt verboten.

                E: Malformed line 1 in source list /etc/apt/sources.list.d/nodesource.list (type)

                E: The list of sources could not be read.

                Der Eintrag in Zeile 1 der Datei hat das falsche Format. Was steht denn da nun drin?

                cat /etc/apt/sources.list.d/nodesource.list
                

                Das war nicht mein Absicht. Sag mir einfach wie ich den root los werden kann?

                1 Reply Last reply Reply Quote 0
                • Krisiun
                  Krisiun @Thomas Braun last edited by

                  @thomas-braun sagte in iobroker zeschossen:

                  cat /etc/apt/sources.list.d/nodesource.list

                  === Mark text until here for copying ===
                  root@Marek2:~# cat /etc/apt/sources.list.d/nodesource.list
                  ^c
                  ^x
                  x
                  Xdeb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x nodistro main
                  root@Marek2:~#
                  
                  Homoran Thomas Braun 2 Replies Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators @Krisiun last edited by

                    @krisiun hast du da die Steuerzeichen reingeschrieben?

                    Krisiun 1 Reply Last reply Reply Quote 0
                    • Thomas Braun
                      Thomas Braun Most Active @Krisiun last edited by Thomas Braun

                      @krisiun sagte in iobroker zeschossen:
                      Zuerst

                      adduser krisiun
                      

                      Wenn der angelegt ist

                      usermod -a -G sudo,adm,iobroker,dialout krisiun
                      

                      Den root ausloggen per

                      exit
                      

                      Dann als krisiun anmelden.

                      1 Reply Last reply Reply Quote 0
                      • Krisiun
                        Krisiun @Homoran last edited by

                        @homoran sagte in iobroker zeschossen:

                        @krisiun hast du da die Steuerzeichen reingeschrieben?

                        nichts habe ich reingeschrieben

                        Thomas Braun 1 Reply Last reply Reply Quote 0
                        • Thomas Braun
                          Thomas Braun Most Active @Krisiun last edited by

                          @krisiun

                          In der /etc/apt/sources.list.d/nodesource.list steht nur das drin:

                          deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x nodistro main
                          

                          Nicht mehr, nicht weniger.

                          Krisiun 1 Reply Last reply Reply Quote 0
                          • Krisiun
                            Krisiun @Thomas Braun last edited by

                            @thomas-braun sagte in iobroker zeschossen:

                            deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x nodistro main

                            Sorry Thomas aber ich habe deine Anleitung befolgt und da passiert einfach nichts. Ich bin nach wie vor als root unterwägs

                            root@Marek2:~# adduser krisiun
                            adduser: The user `krisiun' already exists.
                            root@Marek2:~# usermod -a -G sudo,adm,iobroker,dialout krisiun
                            root@Marek2:~#
                            
                            Thomas Braun 1 Reply Last reply Reply Quote 0
                            • Thomas Braun
                              Thomas Braun Most Active @Krisiun last edited by

                              @krisiun sagte in iobroker zeschossen:

                              adduser: The user `krisiun' already exists.

                              Und warum verwendest du den dann nicht?

                              Krisiun 1 Reply Last reply Reply Quote 1
                              • Krisiun
                                Krisiun @Thomas Braun last edited by

                                @thomas-braun sagte in iobroker zeschossen:

                                @krisiun sagte in iobroker zeschossen:

                                adduser: The user `krisiun' already exists.

                                Und warum verwendest du den dann nicht?

                                Pass auf, wenn ich die Konsole öffne steht bei mir das

                                root@Marek2:~#
                                
                                Krisiun 1 Reply Last reply Reply Quote 0
                                • Krisiun
                                  Krisiun @Krisiun last edited by

                                  @krisiun
                                  was soll ich damit anfangen?

                                  Thomas Braun 1 Reply Last reply Reply Quote 0
                                  • Thomas Braun
                                    Thomas Braun Most Active @Krisiun last edited by

                                    @krisiun

                                    exit
                                    

                                    führt zu einem Login?
                                    Dann da als krisiun anmelden.
                                    Oder per

                                    su krisiun
                                    

                                    den user wechseln.

                                    Krisiun 1 Reply Last reply Reply Quote 0
                                    • Krisiun
                                      Krisiun @Thomas Braun last edited by

                                      @thomas-braun

                                      root@Marek2:~# su krisiun
                                      To run a command as administrator (user "root"), use "sudo <command>".
                                      See "man sudo_root" for details.
                                      
                                      krisiun@Marek2:/root$
                                      
                                      Krisiun 1 Reply Last reply Reply Quote 0
                                      • Krisiun
                                        Krisiun @Krisiun last edited by

                                        @krisiun
                                        nur wenn ich erneut die konsole öffne steht schon wieder

                                        root@Marek2:~#
                                        

                                        da

                                        Krisiun Thomas Braun 2 Replies Last reply Reply Quote 0
                                        • Krisiun
                                          Krisiun @Krisiun last edited by

                                          @krisiun
                                          und ich denke da ist echt alles hin

                                          krisiun@Marek2:/root$ iobroker start
                                          /usr/bin/node: 1: cannot create : Permission denied
                                          /usr/bin/node: 2: : not found
                                          /usr/bin/node: 4: Syntax error: Unterminated quoted string
                                          krisiun@Marek2:/root$
                                          
                                          1 Reply Last reply Reply Quote 0
                                          • Thomas Braun
                                            Thomas Braun Most Active @Krisiun last edited by

                                            @krisiun sagte in iobroker zeschossen:

                                            nur wenn ich erneut die konsole öffne steht schon wieder

                                            Man kann dem komischen

                                            wsl mit Sicherheit einen Standarduser mitgeben.
                                            Ansonsten ist deine erste Handlung von nun an:

                                            su krisiun
                                            cd
                                            

                                            einzugeben und dann erst weiterzumachen.
                                            Die nodesource.list passt nun?

                                            sudo apt update
                                            apt policy nodejs
                                            

                                            sagt?

                                            Krisiun 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            649
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

                                            9
                                            175
                                            18454
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo