Sziasztok!

Egy ideje nem foglalkoztam a problémával, miszerint a VirtualBox nem hajlandó elindulni a gépemen. Most azonban mindennél fontosabb lenne, hogy vindózt futtassak Ubuntu alatt.

Rendszer adatai:
Ubuntu 22.04 LTS, kernel: 5.15.0-43-generic

Hibaüzenetek egymás után:

Kernel driver not installed (rc=-1908)
The VirtualBox Linux kernel driver is either not loaded or not set up correctly. Please try setting it up again by executing
'/sbin/vboxconfig'
as root.
If your system has EFI Secure Boot enabled you may also need to sign the kernel modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) before you can load them. Please see your Linux system's documentation for more information.
where: suplibOsInit what: 3 VERR_VM_DRIVER_NOT_INSTALLED (-1908) - The support driver is not installed. On linux, open returned ENOENT. ```
root@glsmith-Aspire-F5-771G:/home/glsmith# /sbin/vboxconfig 
vboxdrv.sh: Stopping VirtualBox services.
vboxdrv.sh: Starting VirtualBox services.
vboxdrv.sh: Building VirtualBox kernel modules.
vboxdrv.sh: failed: modprobe vboxdrv failed. Please use 'dmesg' to find out why.
There were problems setting up VirtualBox.  To re-start the set-up process, run
  /sbin/vboxconfig
as root.  If your system is using EFI Secure Boot you may need to sign the
kernel modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) before you can load
them. Please see your Linux system's documentation for more information.

Ez után a modulok szignózása, majd a következő történik:

root@glsmith-Aspire-F5-771G:~/module-signing# modprobe vboxdrv
modprobe: ERROR: could not insert 'vboxdrv': Exec format error

Friss telepítés után is ez a helyzet, szignózás nélkül is az utolsó hibát írja a modprobe parancsra.

Segítségeteket előre is köszönöm!

  • [törölve]

  • Szerkesztve

Hey!

Lehetséges, hogy nem jól telepítetted fel vagy nincs fent minden csomag pl dkms kernel headers etc.
Próbáld meg így:
apt install linux-headers-$(uname -r)
apt install virtualbox virtualbox-dkms virtualbox-ext-pack virtualbox-guest-additions-iso

Alternativ megoldásként ott van a qemu/libvirt is ami a kernel része így ehhez hasonló problémákba nem ütközhetsz.
https://www.linuxtechi.com/how-to-install-kvm-on-ubuntu-22-04/

    Több helyen még azt írták, hogy lehet érdemes kikapcsolni a Secure Bootot a BIOS-ban, ha még nem tetted meg. (Meta: végre egy szépen feltett és formázott kérdés! 😊 )

      [törölve]

      A posztolás a válaszod között keresgéltem a fórumon. Egyik felhasználóknak elég kitartóan segítettél, ami eredményre vezetett. Ennek nyomán az apt install --reinstall paranccsal újratelepítettem a kernel image-t, headers-t, modules-t illetve a dkms-t, build-essentialts-t meg a többit. Mellé a .46 végű kernelre frissült a rendszer. A fentebb írt csomagokat is felraktam.

      A telepítés vége a következő eredménnyel zárult:

      depmod...
      Job for virtualbox.service failed because the control process exited with error code.
      See "systemctl status virtualbox.service" and "journalctl -xeu virtualbox.service" for details.
      invoke-rc.d: initscript virtualbox, action "restart" failed.
      × virtualbox.service - LSB: VirtualBox Linux kernel module
      Loaded: loaded (/etc/init.d/virtualbox; generated)
      Active: failed (Result: exit-code) since Wed 2022-08-10 19:28:30 CEST; 6ms ago
      Docs: man:systemd-sysv-generator(8)
      Process: 16941 ExecStart=/etc/init.d/virtualbox start (code=exited, status=1/FAILURE)
      CPU: 49ms
      aug 10 19:28:30 glsmith-Aspire-F5-771G systemd[1]: Starting LSB: VirtualBox Linux kernel module...
      aug 10 19:28:30 glsmith-Aspire-F5-771G virtualbox[16941]: * Loading VirtualBox kernel modules...
      aug 10 19:28:30 glsmith-Aspire-F5-771G virtualbox[16941]: * modprobe vboxdrv failed. Please use 'dmesg' to find out why
      aug 10 19:28:30 glsmith-Aspire-F5-771G virtualbox[16941]: ...fail!
      aug 10 19:28:30 glsmith-Aspire-F5-771G systemd[1]: virtualbox.service: Control process exited, code=exited, status=1/FAILURE
      aug 10 19:28:30 glsmith-Aspire-F5-771G systemd[1]: virtualbox.service: Failed with result 'exit-code'.
      aug 10 19:28:30 glsmith-Aspire-F5-771G systemd[1]: Failed to start LSB: VirtualBox Linux kernel module.

      systemctl status virtualbox.service parancs eredménye:

      × virtualbox.service - LSB: VirtualBox Linux kernel module
      Loaded: loaded (/etc/init.d/virtualbox; generated)
      Active: failed (Result: exit-code) since Wed 2022-08-10 19:00:57 CEST; 1min 39s ago
      Docs: man:systemd-sysv-generator(8)
      Process: 1582 ExecStart=/etc/init.d/virtualbox start (code=exited, status=1/FAILURE)
      CPU: 85ms
      aug 10 19:00:57 glsmith-Aspire-F5-771G systemd[1]: Starting LSB: VirtualBox Linux kernel module...
      aug 10 19:00:57 glsmith-Aspire-F5-771G virtualbox[1582]: * Loading VirtualBox kernel modules...
      aug 10 19:00:57 glsmith-Aspire-F5-771G virtualbox[1582]: * modprobe vboxdrv failed. Please use 'dmesg' to find out why
      aug 10 19:00:57 glsmith-Aspire-F5-771G virtualbox[1582]: ...fail!
      aug 10 19:00:57 glsmith-Aspire-F5-771G systemd[1]: virtualbox.service: Control process exited, code=exited, status=1/FAILURE
      aug 10 19:00:57 glsmith-Aspire-F5-771G systemd[1]: virtualbox.service: Failed with result 'exit-code'.
      aug 10 19:00:57 glsmith-Aspire-F5-771G systemd[1]: Failed to start LSB: VirtualBox Linux kernel module.

      journalctl -xeu virtualbox.service parancs eredménye a linken látható:

      error.txt

      A dmesg parancsot sajnos nem tudom milyen paraméterekkel kell kiadni, hogy a megfelelő kimenetet kapjuk meg. Bocsi!

        meskobalazs

        Próbáltam kikapcsolni a Secure Bootot, nem használt. Az egyébként elvileg csak a szignózás alól ad felmentést.
        PS: igyekszik az ember normális posztolni, ha fontos témában kell neki segítség. Én se szeretem ha a magyar meg az angol szöveg keveredik.

        • [törölve]

        • Szerkesztve

        GLSmith86

        Hát mivel annyira írja, hogy nézd meg azt a dmesg-et, akkor nézzük már meg mit takar.
        Nyugodtan feltöltheted az egésszet egy pastebinre.
        Pl itt az enyém: https://paste.unixit.org/

        Ha csak az utolsó 100 sort szeretnéd látni, akkor pl így:
        dmesg | head -100

          • [törölve]

          [törölve]

          Ki kell javítsam magam sorry.
          A head az első 100 sort mutatja.

          Így mutatja az utolsó 100-at:
          dmesg | tail -100

            • [törölve]

            • Szerkesztve

            Annyira nem volt kommunikatív de köszi, hogy megosztottad!
            A lényeg ez:
            module: x86/modules: Skipping invalid relocation target, existing value is nonzero for type 1

            1)
            Próbáld meg a következőt:

            apt remove --purge linux-headers-*
            apt install linux-headers-generic dkms
            dpkg-reconfigure virtualbox-dkms

            2)
            Ha nem lesz jó, akkor próbáld meg az unsigned kernellel:
            apt install linux-image-unsigned-5.15.0-46-generic

            Az ötletet innen vettem:
            https://unix.stackexchange.com/questions/539738/virtualbox-error-kernel-driver-not-installed-rc-1908-on-debian-10
            https://www.virtualbox.org/ticket/18904

            Itt debianon volt ugyanez a probléma és ez megoldotta neki, legalábbis azt írja.

            3)
            A BIOS-ban gondolom engedélyezve van a virtualizáció..

            4)
            Marad a qemu/libvirt..

              Én vagyok itt az egyszerű asztali felhasználó. Egyszer, amikor hasonlóan nem akart muzsikálni nálam az ubuntus tárolóban lévő VirtualBox felraktam helyette az Oracle VM VirtualBox-ot, oszt az meg elindult. Nem tudományos, nem fantasztikus, de én akkor megelégedtem ezzel.
              https://www.virtualbox.org/wiki/Linux_Downloads

              [törölve]
              Az apt install linux-headers-generic dkms parancs eredménye:

              Building module:
              cleaning build area...
              make -j4 KERNELRELEASE=5.15.0-46-generic KVERSION=5.15.0-46-generic....(bad exit status: 2)
              ERROR (dkms apport): binary package for rts_pstor: 1.11 not found
              Error! Bad return status for module build on kernel: 5.15.0-46-generic (x86_64)
              Consult /var/lib/dkms/rts_pstor/1.11/build/make.log for more information.
                 ...done.
              Beállítás: linux-headers-generic (5.15.0.46.46) ...

              Ide már egyszer eljutottam, az rts_pstor modul nem fordul le, a make parancs megáll a fenébe:
              (azért make debug a parancs, mert a make defaultnál át van írva a SUBDIRS=$(PWD) M=$(shell pwd)-re)

              root@glsmith-Aspire-F5-771G:/home/glsmith/rts_pstor-1.11# make debug
              sed "s/RTSX_MK_TIME/`date +%y.%m.%d.%H.%M`/" timestamp.in > timestamp.h
              cp -f ./define.debug ./define.h
              make -C /lib/modules/5.15.0-46-generic/build/ SUBDIRS=/home/glsmith/rts_pstor-1.11 modules
              make[1]: Entering directory '/usr/src/linux-headers-5.15.0-46-generic'
              make[2]: *** No rule to make target 'arch/x86/entry/syscalls/syscall_32.tbl', needed by 'arch/x86/include/generated/uapi/asm/unistd_32.h'.  Stop.
              make[1]: *** [arch/x86/Makefile:217: archheaders] Error 2
              make[1]: Leaving directory '/usr/src/linux-headers-5.15.0-46-generic'
              make: *** [Makefile:43: debug] Error 2

              make default:

              root@glsmith-Aspire-F5-771G:/home/glsmith/rts_pstor-1.11# make
              sed "s/RTSX_MK_TIME/`date +%y.%m.%d.%H.%M`/" timestamp.in > timestamp.h
              cp -f ./define.release ./define.h
              make -C /lib/modules/5.15.0-46-generic/build/ M=/home/glsmith/rts_pstor-1.11 modules
              make[1]: Entering directory '/usr/src/linux-headers-5.15.0-46-generic'
                CC [M]  /home/glsmith/rts_pstor-1.11/rtsx.o
              In file included from /home/glsmith/rts_pstor-1.11/rtsx.c:28:
              /home/glsmith/rts_pstor-1.11/rtsx.h: In function ‘get_current_time’:
              /home/glsmith/rts_pstor-1.11/rtsx.h:172:24: error: storage size of ‘tv’ isn’t known
                172 |         struct timeval tv;
                    |                        ^~
              /home/glsmith/rts_pstor-1.11/rtsx.h:178:9: error: implicit declaration of function ‘do_gettimeofday’; did you mean ‘do_settimeofday64’? [-Werror=implicit-function-declaration]
                178 |         do_gettimeofday(&tv);
                    |         ^~~~~~~~~~~~~~~
                    |         do_settimeofday64
              /home/glsmith/rts_pstor-1.11/rtsx.h:172:24: warning: unused variable ‘tv’ [-Wunused-variable]
                172 |         struct timeval tv;
                    |                        ^~
              In file included from /home/glsmith/rts_pstor-1.11/rtsx.c:29:
              /home/glsmith/rts_pstor-1.11/rtsx_chip.h: At top level:
              /home/glsmith/rts_pstor-1.11/rtsx_chip.h:330: warning: "SG_END" redefined
                330 | #define SG_END                  0x02
                    | 
              In file included from ./include/linux/blkdev.h:23,
                               from /home/glsmith/rts_pstor-1.11/rtsx.c:23:
              ./include/linux/scatterlist.h:65: note: this is the location of the previous definition
                 65 | #define SG_END          0x02UL
                    | 
              /home/glsmith/rts_pstor-1.11/rtsx.c:273:10: error: ‘struct scsi_host_template’ has no member named ‘use_clustering’
                273 |         .use_clustering =               1,
                    |          ^~~~~~~~~~~~~~
              /home/glsmith/rts_pstor-1.11/rtsx.c: In function ‘rtsx_probe’:
              /home/glsmith/rts_pstor-1.11/rtsx.c:937:27: error: implicit declaration of function ‘ioremap_nocache’; did you mean ‘ioremap_cache’? [-Werror=implicit-function-declaration]
                937 |         dev->remap_addr = ioremap_nocache(dev->addr, pci_resource_len(pci,0));
                    |                           ^~~~~~~~~~~~~~~
                    |                           ioremap_cache
              /home/glsmith/rts_pstor-1.11/rtsx.c:937:25: warning: assignment to ‘void *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
                937 |         dev->remap_addr = ioremap_nocache(dev->addr, pci_resource_len(pci,0));
                    |                         ^
              cc1: some warnings being treated as errors
              make[2]: *** [scripts/Makefile.build:297: /home/glsmith/rts_pstor-1.11/rtsx.o] Error 1
              make[1]: *** [Makefile:1881: /home/glsmith/rts_pstor-1.11] Error 2
              make[1]: Leaving directory '/usr/src/linux-headers-5.15.0-46-generic'
              make: *** [Makefile:39: default] Error 2

              Ide meg már nem találtam segítséget. Az rts_pstor az sd kártya foglalatért felelős modul. Letiltani az eszközt nem tudom (vagy legalábbis nem találtam erre vonatkozó beállítást a BIOS-ban).

                • [törölve]

                • Szerkesztve

                GLSmith86

                Köszi az infót!

                Hát ennek aztán van baja.
                Ezeknek az utóbbi hibáknak meg semmi közük a virtualboxhoz.

                Nem értem, hogy ez most hogyan jön ide?
                /home/glsmith/rts_pstor-1.11

                Kézzel próbálod feltenni a kártyaolvasó drivert?
                Nem kell letiltani a BIOS-ban, egyszerűen hagyd a fenébe egyenlőre, mert most meg ez miatt nem fut le a dkms és nem buildel virtualbox modulokat.

                Szerintem ez okozza a hibát..

                Ha ez lenne az:
                https://github.com/chrisnew/rts_pstor

                Akkor tényleg hagyd, mert amint látod ez már 8 éves!
                Kb esélytelen..
                Az issues-ban írják, hogy az 5.4-es kernellel még működött, de az sem garantált, mert másnál az 5.3-al sem ment.
                Visszatérni 4-5 éves verziókra meg nem szerencsés, főleg ha utána sem működne.

                  Ha nem használod a kártyaolvasót, akkor én letúrnám a dinamikus kernelmodult:

                  sudo dkms remove rts_pstor/1.11 --all

                  Utána meg megpróbálhatod újra a apt install linux-headers-generic dkms futtatását.

                    [törölve]

                    Nem én akarom felrakni a drivert. Az apt install linux-headers-generic dkms akarja befordítani, mert létező hardver.
                    Innen visszafelé nézve nincs header, amiért nem bír VBox modulokat fordítani. Egyébként igen, a linkelt githubról akar dolgozni valamit.

                    Ergo: ha nincs a kártyaolvasó, valószínű nem írok ide, hogy nem tudom felrakni a VBoxot 😉

                    Az unsigned kernellel most nem is hajlandó bebootolni a rendszer, szerencse, hogy a 43-as végű még fent van.

                    meskobalazs

                    Megpróbálom, aztán jelzek, hogy mi történt.

                    • [törölve]

                    • Szerkesztve

                    GLSmith86
                    Nem pazaroltad, lehet, hogy másnak is hasznára lesz és szívesen segítek! +1
                    A "hagyd a fenébe egyenlőre" alatt én is ezt értettem, hogy töröld le nyoma se legyen a rts_pstor-nak.