Virtualbox πρόβλημα με Kernel 5.10

Ό,τι λέει ο τίτλος.

Win 10 VM που φτιάχτηκε με kernel 5.4, δεν τρέχει με kernel 5.10 (ούτε και 5.9, 5.8). Το μήνυμα που μου πετάει είναι το εξής:

Ούτε τρέχοντας sudo /sbin/vboxconfig φτιάχνει η κατάσταση

george@ryzen:~$ sudo /sbin/vboxconfig
[sudo] password for george:         
vboxdrv.sh: Stopping VirtualBox services.
vboxdrv.sh: Starting VirtualBox services.
vboxdrv.sh: Building VirtualBox kernel modules.
vboxdrv.sh: failed: Look at /var/log/vbox-setup.log to find out what went wrong.

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. 

Ούτε με secure boot disabled αλλάζει κάτι.

Εκκινώντας με kernel 5.4 τρέχει κανονικά.

Από γκουγκλάρισμα που έκανα, δεν έβγαλα άκρη, αλλά διάβασα αλληλοκατηγορίες, άλλοι ρίχνουν τις ευθύνες στον Linus που “breaks compatibility” με κάθε νέο kernel και άλλοι ορκίζονται ότι είναι θέμα του Virtualbox που αρνούνται να αποδεχτούν και να διορθώσουν.

Το θέμα είναι αν υπάρχει λύση.

Στο αρχείο /var/log/vbox-setup.log μπορείς να δεις τι έφταιξε και γιατί δεν έγιναν compile οι οδηγοί του Virtual Box. Αν ξέρεις λίγη C κάποιες φορές οι αλλαγές είναι απλές. Αλλά μάλλον δεν θα πρέπει να είναι τόσο απλό. Οπότε είτε περιμένεις λίγο, είτε χρησιμοποιείς ένα συμβατό πυρήνα.

ΥΓ Τώρα αν αναζητάς “ευθύνες”, αν έχει νόημα κάτι τέτοιο, προφανώς θα πρέπει να αλλάξει τον κώδικα του το VirtualBox. Το εσωτερικό του πυρήνα αλλάζει συνεχώς, και θέλουμε να αλλάζει και να βελτιώνετε. Αν κάτι παγώσει και γίνει stable API αυτό προκαλέι θέματα που μπορεί να σκάσουν μια δεκαετία μετά.

Στα εξωτερικά στρώματα του πυρήνα, αυτά με τα οποία μιλάνε οι εφαρμογές, υπάρχει εγγύηση σταθερότητας και προγράμματα της προηγούμενης χιλιετίας θα εξακολουθούν να τρέχουν μια χαρά, τουλάχιστον όσον αφορά τον πυρήνα. Είναι είδηση αν σπάσει κάτι. Αλλά αν θέλεις να αλληλεπιδράσεις ποιο βαθιά, όπως θέλει να κάνει το VirtualBox τότε δεν υπάρχει κάποια εγγύηση σταθερότητας και θα πρέπει να ακολουθείς τις αλλαγές.

Το πλεονέκτημα ενός πυρήνα με ελεύθερο προσβάσιμο κώδικά, είναι ακριβώς αυτό. Μπορείς να κατέβεις χαμηλά, και ο ο οδηγός σου να σκαλίσει ότι θέλει, αλλά και να αλλάξεις το λειτουργικό και να το προσαρμόσεις στις ανάγκες ενός οδηγού. Άλλα λειτουργικά που δεν το έχουν αυτό, έχουν αναγκαστικά μεν σταθερά API για τους οδηγούς, και μάλιστα έχουν 2-3 ώστε αν μπορούν να είναι συμβατά με παλιούς οδηγούς. Αυτό αυξάνει την πολυπλοκότητα και δεν μπορείς να έχεις την σχεδίαση που θέλεις. Ονόματα δεν λέμε υπολήψεις δεν θίγουμε

1 Like

Δεν συμφωνώ με την αλλαγή τίτλου. Το θέμα όπως το είχα είναι πιο ακριβές… Το πρόβλημα δεν είναι με τον kernel 5.10, αλλά με οποιοδήποτε kernel χρησιμοποιήσω, μεταγενέστερο του 5.4 με τον οποίο έφτιαξα το VM

Το πρόβλημα πάντως έχει μάλλον λυθεί πριν 2 εβδομάδες

VirtualBox 6.1.18 Released with Full Support for Linux Kernel 5.10 LTS - 9to5Linux

6.1.18 έβαλα και δεν…

Όπως γράφω πιο πάνω ούτε με kernel 5.8, ούτε και με 5.9 τρέχει το VM. Μόνο με τον 5.4 που φτιάχτηκε.

Το θεμα υπαρχει με τα DKMS modules του Virtualbox. Μετα απο καποιο kernel και μετα δεν κανουν compile. Το ιδιο συμβαινει και με τους drivers της NVidia.

Εαν καταφερουν και φτιαξουν τα modules ολα τα αλλα θα φτιαξουν.

Σαν workaround θα δοκιμαζα να βαλω το συστημα μου σε CSM mode και οχι σε σκετο UEFI και θα ξαναδοκιμαζα να κανω: sudo /sbin/vboxconfig στην περιεργη περιπτωση που το προβλημα των DKMS modules εστιαζεται στα signatures που χρειαζεται το SecureBoot (καποια UEFI implementations ειναι λιγο περιεργα σε αυτο το θεμα).

Σε Arch πάντως με πυρήνα 5.10.11-zen2-1-zen δουλεύει μια χαρά.

Αναφέρω μονάχα ότι για κάποιον λόγο στο Arch δεν φαίνεται να υπάρχει το vboxconfig αλλά η αντίστοιχη εντολή είναι modprobe vboxdrv

Οπωσδήποτε πρέπει να είναι εγκατεστημένα τα αντίστοιχα headers πχ για μένα linux-zen-headers βεβαιώσουν ότι τα έχεις και αν τα εγκαταστήσεις κάνε και μια επανεκκίνηση. Το να σού λείπουν τα αντίστοιχα headers είναι αιτία για να δουλεύει σε έναν πυρήνα και όχι σε άλλον.

2 Likes

Εννοείς ότι μπορείς να τρέξεις VM που έχουν στηθεί με προγενέστερο kernel? Ή απλά ότι σου τρέχει το virtualbox?

Τρέχω κανονικότατα VM που είχα στήσει σε παλιότερο kernel. (νομίζω 5.8 δεν έχει σημασία)

Δεν είχε σημασία ο kernel αλλά χρειάζονται τα αντίστοιχα headers (και αυτό δεν έχει σχέση με ποιον kernel είχα στήσει). Δλδ όταν έβαλα τον zen πυρήνα δεν δούλευαν τα VM με το σφάλμα που αναφέρεις και έπρεπε να εγκαταστήσω τα headers για τον zen (είχα εγκατεστημένα τα headers για τον απλό). Και τώρα αν δεν έχω εγκατεστημένα τα headers για τον lts (5.4) δεν δουλεύει το VM στον παλιό, αν θέλω να δουλεύει θα πρέπει απλά να τα εγκαταστήσω.

Έχω περάσει τον 5.10.x μέσω mainline. Τα headers πώς μπορώ να δω αν είναι εγκατεστημένα;

δεν ξέρω σε mint/ubuntu αλλά κάπως απλά πρέπει να κοιτάξεις αν είναι εγκατεστημένα τα αντίστοιχα πακέτα πχ σε Arch μπορώ να δω απλά με

pacman -Sl | grep linux | grep headers

@linuxovios ρίξε μια ματιά εδώ, νομίζω θα βγάλεις άκρη.

@lucinos Σε arch μπορείς να ψάξεις για εγκατεστημένα πακέτα έτσι:
--query -Q -- Query the package database
-s -- Search package names and descriptions

pacman -Qs headers | grep linux

Και με το -Sl μπορείς αλλά ψάχνει σε όλα τα repos ενώ στην περίπτωση παραπάνω ψάχνει μόνο στα εγκατεστημένα. Just saying!

1 Like

Ομοίως κι εγώ. Τρέχω 5.10.11-arch1-1 και το virtualbox (το οποίο έχει χρόνια που το έστησα) τρέχει μια χαρά και δεν μου έκανε ποτέ και σε καμία φάση νερά τέτοιου είδους (να μην ξεκινάει κτλ).

Τα headers μου είναι σωστά.:

george@ryzen:~$ dpkg -l | grep linux-headers-$(uname -r)
ii  linux-headers-5.10.11-051011-generic        5.10.11-051011.202101271131             amd64        Linux kernel headers for version 5.10.11 on 64 bit x86 SMP

Δεν μπορώ να βγάλω άκρη και δεν έχω χρόνο να το ψάξω και άλλο. Προς το παρόν θα αρκεστώ να μπουτάρω με kernel 5.4 για να τρέχω το VM.

Αν ρωτάς, η απάντηση είναι ναι. Λογικά ως dependency πάντα θα έχεις τα σωστά, άπαξ και μία φορά τα εγκατέστησες “σωστά”.

Παίδες το πρόβλημα λύθηκε εν μέρει εγκαθιστώντας τον kernel 5.10.9. To VM έπαιξε απευθείας.
Με μεταγενέστερο π.χ. 5.10.11 // 5.10.12 δεν παίζει.

Υποψιάζομαι ότι το τελευταίο Virtual box που εισήγαγε support για kernel 5.10, απλά δεν υποστηρίζει τα τελευταία updates του κερνελ 5.9.11, 5.9.12 . Προς το παρόν μένω με τον 5.10.9 και κάνω τη δουλειά μου.

1 Like

Δεν είναι τόσο απόλυτο. Έχει σημασία πώς εγκαθιστά κάποιος τον πυρήνα. Όταν αναβαθμίζω πυρήνα, ναι ισχύει ότι τα headers ακολουθούν αυτόματα και δεν υπάρχει θέμα. Αλλά όταν εγκατέστησα καινούργιο πυρήνα (zen) δεν συνέβη αυτό και έπρεπε να εγκαταστήσω τα headers όπως και έκανα.

δεν θέλω να κοιτάξω μόνο τα εγκατεστημένα πακέτα θέλω να δω και πιο μου λείπει και επίσης δεν θέλω να ψάξω στα desctriptions, αν δεν ξέρω τι ψάχνω θα ψάξω στο ίντερνετ. Επίσης δεν έχω καν μεγάλο ενδιαφέρον να θυμάμαι σύνταξη εντολών. μου αρκεί η less και η grep στην πιο απλή εκδοχή της. Και για την ιστορία η σωστή σύνταξη για ψάξιμο είναι

pacman -Qs headers linux
1 Like

Αυτό το νήμα έκλεισε αυτόματα 2 ημέρες μετά την τελευταία απάντηση. Δεν επιτρέπονται πλέον νέες απαντήσεις.