Kind of a weird VM setup. A keyboard/mouse with wifi/bluetooth connectivity. When all wifi I got terrible feedback through the speakers, so I moved just the mouse to blue tooth. This is on a Windows 11 host. Then I have installed four Linux VMs - and it solved it for all the guests and host. Did an update to MX Linux 25.2 VM, and after the reboot I could no longer see the mouse cursor. I know it is there, because I can get items to highlight, and then use the keyboard to navigate. I thought it might be a graphics driver issue, but now think some setting is corrupt or incorrect. Any idea what might cause this?
If the mouse still moves and highlights things, but the pointer itself is invisible, I’d look at the cursor theme/settings. try:
xfconf-query -c xsettings -p /Gtk/CursorThemeName
check Settings > Mouse and Touchpad > Theme. Switching to another cursor theme and back may be enough?
Other than that maybe look at the Bluetooth/USB device handling inside the VM as well.
Thanks, Gave your suggestions a try, and it doesn’t fix it. I added themes too, but no good. So I looked at where it exactly happened. It was the kernel upgrade from 7.1.6 to 7.1.8 - I’ve done about five more upgrades since then, but fortunately all those older ones were available. I’m seeing that the bluetooth panel is grayed out, so I looked at the Virtualbox controls. It’s seems to claim I have to install the guest addons to capture the mouse? I don’t think I have ever had to do that in MX - so I add the guest CD, it shows up, and nothing happens. No run as a program, permissions query - nothing?
Edit - I updated virtualbox and made a complete mess of everything. All four VMs refused to boot. I see some changes in networking and usb in the newer VB version. So I went back to VB 7.2.6. BTW there are two versions of VB 7.2.6 one that has a suffix of “a”, and a file size about 25% larger. The larger version refused to install over VB 7.2.18, but the old version of VB 7.2.6 installed just fine - and everything is working again. Looks like my MX box is stuck at the 7.1.6 kernel.
Not an expert on MX specifically but I’ve messed with enough VMs to have a guess.
First, I wouldn’t worry about the Bluetooth panel being grayed out. The VM can’t see your Bluetooth adapter at all. VirtualBox just gives the guest its own fake mouse no matter how it’s hooked up on the Windows side, so that’s normal.
The fact that it broke right on the kernel update is the big clue for me. I’m pretty sure it’s the Guest Additions. When mouse integration is on, the guest hides its own cursor and lets the host draw it instead. If the vbox modules didn’t get rebuilt for 7.1.8, VirtualBox still thinks integration is working but nothing is actually handing it a cursor. So the mouse works, stuff highlights, you just can’t see it. And every kernel after that would have the same problem, which is probably why you’re stuck on 7.1.6.
Easy way to check: boot into the newer kernel and hit Right Ctrl + I to turn mouse integration off. If the cursor pops back up, that’s probably it.
If so, I’d run these on the new kernel and see what comes back:
uname -r
lsmod | grep -i vbox
dkms status
My guess is the headers for the new kernel never got installed, so DKMS had nothing to build with. This should cover that:
sudo apt install linux-headers-$(uname -r) dkms build-essential
Then reinstall your vbox guest packages (dpkg -l | grep -i vbox shows what you’ve got) and reboot. Just don’t mix the MX packages and the ISO version, from what I’ve read they fight each other.
Also the Guest CD not doing anything is normal on Linux, it doesn’t autorun like Windows does. Open the disc in a terminal and run sudo sh ./VBoxLinuxAdditions.run.
Couple other things I’d check. Under Settings > Display, the Graphics Controller should be VMSVGA for Linux guests. And when all your VMs wouldn’t boot after the VirtualBox update, my first thought is the Extension Pack. It has to match your VirtualBox version exactly, and if it doesn’t and you’ve got USB 2.0 or 3.0 turned on in the VM, none of them will start.
Sticking with 7.1.6 is fine for now, but I’d try getting the modules to build so you’re not stuck on an old kernel forever. Let us know what the Right Ctrl + I test does.
Thank you Itachixkurosaki for taking the time to try and help me out here.
ctrl + l invokes something called “seamless mode” no effect on the cursor or mouse integration
I ran the cl’s and everything looks to be correct except two things
uname -r = 7.2.6.1-liquorix-amd64
lsmod | grep -i vbox = vboxquest 569344 5 {That don’t look right?}
every kernel claims to be installed on the status cl
The header install says they already are installed
I’ve installed the addons by command lone before, but some distros add a popup, or even a button when you insert the CD (usually Caja file mangers instead of Thunar) - so I was lazy I guess. Anyway, trying to re-install gave multiple errors for each kernel. I can hardly read the log file, because of the crappy light gray font on a blinding white background, but it specifically mentions the mouse cursor. That it is “incompatible” - thing is, I have tried out other cursor sets? Here is a bit of the log towards the end after I did an “error” search
gcc -Wp,-MMD,./.VBoxGuestR0LibHGCM.o.d -nostdinc -I/usr/src/linux-headers-7.2.6-1-liquorix-amd64/arch/x86/include -I/usr/src/linux-headers-7.2.6-1-liquorix-amd64/arch/x86/include/generated -I/usr/src/linux-headers-7.2.6-1-liquorix-amd64/include -I/usr/src/linux-headers-7.2.6-1-liquorix-amd64/include -I/usr/src/linux-headers-7.2.6-1-liquorix-amd64/arch/x86/include/uapi -I/usr/src/linux-headers-7.2.6-1-liquorix-amd64/arch/x86/include/generated/uapi -I/usr/src/linux-headers-7.2.6-1-liquorix-amd64/include/uapi -I/usr/src/linux-headers-7.2.6-1-liquorix-amd64/include/generated/uapi -include /usr/src/linux-headers-7.2.6-1-liquorix-amd64/include/linux/compiler-version.h -include /usr/src/linux-headers-7.2.6-1-liquorix-amd64/include/linux/kconfig.h -include /usr/src/linux-headers-7.2.6-1-liquorix-amd64/include/linux/compiler_types.h -D__KERNEL__ -fshort-wchar -funsigned-char -fno-common -fno-PIE -fno-strict-aliasing -std=gnu11 -fms-extensions -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -mno-sse4a -mno-avx2 -fno-tree-vectorize -fcf-protection=branch -fno-jump-tables -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -march=x86-64 -mtune=generic -mno-red-zone -mcmodel=kernel -mstack-protector-guard-reg=gs -mstack-protector-guard-symbol=ref_stack_chk_guard -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -mindirect-branch-cs-prefix -mfunction-return=thunk-extern -fno-jump-tables -mharden-sls=all -fpatchable-function-entry=16,16 -fno-delete-null-pointer-checks -O3 -fno-allow-store-data-races -fstack-protector-strong -ftrivial-auto-var-init=zero -fno-stack-clash-protection -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -fmin-function-alignment=16 -fstrict-flex-arrays=3 -fno-strict-overflow -fno-stack-check -fconserve-stack -fno-builtin-wcslen -Wall -Wextra -Wundef -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Werror=strict-prototypes -Wno-format-security -Wno-trigraphs -Wno-frame-address -Wno-address-of-packed-member -Wmissing-declarations -Wmissing-prototypes -Wframe-larger-than=2048 -Wno-main -Wno-type-limits -Wno-dangling-pointer -Wvla-larger-than=1 -Wno-pointer-sign -Wcast-function-type -Wno-array-bounds -Wno-stringop-overflow -Wno-alloc-size-larger-than -Wimplicit-fallthrough=5 -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wenum-conversion -Wunused -Wno-unused-but-set-variable -Wno-unused-const-variable -Wno-packed-not-aligned -Wno-format-overflow -Wno-format-truncation -Wno-stringop-truncation -Wno-override-init -Wno-missing-field-initializers -Wno-shift-negative-value -Wno-maybe-uninitialized -Wno-sign-compare -Wno-unused-parameter -g -Wno-declaration-after-statement -fno-pie -include .//include/VBox/VBoxGuestMangling.h -fshort-wchar -I/usr/src/linux-headers-7.2.6-1-liquorix-amd64/include -I./ -I./include -I./r0drv/linux -D__KERNEL -DMODULE -DRT_WITHOUT_PRAGMA_ONCE -DRT_OS_LINUX -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DVBOX_WITH_HGCM -DIN_MODULE -DIN_GUEST -DIN_GUEST_R0 -DRT_NO_EXPORT_SYMBOL -DRT_ARCH_AMD64 -DMODULE -DKBUILD_BASENAME=‘“VBoxGuestR0LibHGCM”’ -DKBUILD_MODNAME=‘“vboxsf”’ -D__KBUILD_MODNAME=vboxsf -c -o VBoxGuestR0LibHGCM.o VBoxGuestR0LibHGCM.c
No problem, glad to help. Quick thing first, it’s Right Ctrl + I (the letter i), not L. Right Ctrl + L is seamless mode like you found. Give the i one a try, that’s the mouse integration toggle.
But I think your uname output is the real answer here. You’re on a Liquorix kernel, and 7.2 at that. That’s a very new kernel, and my guess is the Guest Additions you have just don’t know how to build against it yet. VirtualBox usually lags behind brand new kernels for a bit, so the modules fail to compile and you end up with a half working setup. That would also explain why it broke right when the kernel updated.
The vboxguest line in lsmod is actually fine. The mainline kernel ships its own vboxguest driver now, so that’s probably the kernel’s built in one loading, not the one from the Additions. That’s why some things work and the cursor doesn’t.
Also that chunk of the log is just the compiler command, not the error itself. If you want to see what actually failed, try:
grep -i “error” /var/log/vboxadd-setup.log | head -20
That should pull the real error lines out without having to read the whole thing. And don’t worry about cursor themes, I don’t think that has anything to do with it.
Honestly though, if it were me I’d just boot the regular MX kernel instead of Liquorix inside the VM. Liquorix is tuned for desktop responsiveness on real hardware, and in a VM you don’t really get anything out of it, just more chances for the Guest Additions to break. If the cursor comes back on the stock kernel, that pretty much confirms it. The other option is updating VirtualBox and the Guest Additions to the newest release so they support the newer kernel, but I’d try the stock kernel first since it’s the quicker test.
Post the error lines if the grep turns anything up and we can go from there.
Ok Itachixkurosaki, I once had to remove newer problematic kernels (one at a time) on some old hardware in a Ubuntu Studio media box (because of graphics driver issues), but I don’t have experience switching to a “regular” kernel. I wasn’t aware I was using a special kernel. I just dl the latest iso and created a vm. If I update/upgrade one more time I see in the list of changes that all the old kernels are going to be tossed. Can you explain switching to this “regular” kernel using the command line?
Try:
sudo apt update
sudo apt install linux-image-amd64 linux-headers-amd64
sudo reboot # pick the Debian kernel under GRUB > Advanced options
uname -r # confirm it's not liquorix
sudo sh /media/$USER/VBox*/VBoxLinuxAdditions.run # or reinstall the MX vbox packages, not both
But hold off on the upgrade that purges old kernels until the stock kernel is confirmed working. After that you can remove Liquorix;
sudo apt remove 'linux-image-*liquorix*' 'linux-headers-*liquorix*'
Thanks Hayden. I already decided to hold off on upgrades for a bit. I have an eye appt tomorrow, and will be out of commission for a while.
btw - the ctrl + i toggle doesn’t have any reaction out of this vm. I tried the ctrl + l because a lower case i looks a lot like a lower case l (L), and upper case I (i)
Wishing everything went smoothly today.