Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
open-vm-tools not available for ARM
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Gentoo on ARM
View previous topic :: View next topic  
Author Message
eaf
n00b
n00b


Joined: 27 Apr 2018
Posts: 6

PostPosted: Wed Jan 31, 2024 12:11 am    Post subject: open-vm-tools not available for ARM Reply with quote

Hi,

For some reason this is AMD64-only right now.

I tried pulling open-vm-tools from github, built it, and it appears to work fine, at least as far as copy/paste between host and VM is concerned.

Is there a reason why this package is AMD64-only? Can it perhaps be extended to ARM64 as well? Or can I do something just in my install to get it force-installed in order to avoid doing the manual download and build during future upgrades?

Thanks!
Back to top
View user's profile Send private message
hdcg
Tux's lil' helper
Tux's lil' helper


Joined: 07 Apr 2013
Posts: 119

PostPosted: Wed Jan 31, 2024 5:12 am    Post subject: Reply with quote

Hi eaf,

most of the time ARM is left out, because it has not been tested.
You can add your arch locally via /etc/portage/package.accept_keywords.
In your case case adding a file containing
Code:
app-emulation/open-vm-tools ~ARM64

to the above directory, should allow portage to install it on ARM64 arch (please add the arch of your choice or simply **).
If needed, you can restrict accept_keywords to suitable versions. E.g.
Code:
<app-emulation/open-vm-tools-9999 ~ARM64


Best Regards,
Holger
Back to top
View user's profile Send private message
flysideways
Guru
Guru


Joined: 29 Jan 2005
Posts: 396

PostPosted: Wed Jan 31, 2024 3:51 pm    Post subject: Reply with quote

I've been running an ~arm64 keyworded Gentoo install as a guest in Fusion on a Apple Silicon MacBook for about 8 months and forgot this was missing.

pakages.gentoo.org doesn't show it in any form other than amd64 and x86.

That means it is nowhere in the tree, correct? That means, for the Gentoo way, I need to create an overlay and an ebuild, right?
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 21374

PostPosted: Wed Jan 31, 2024 5:14 pm    Post subject: Reply with quote

No, that is not the correct interpretation. It is in the tree, but it is keyworded stable for amd64 and x86 only. It has no keywords for other architectures, so it is neither declared broken (-ARCH), declared testing (~ARCH), nor declared stable (ARCH). No one has made any conclusive statement in the ebuild, positive or negative, about non-Intel architectures.

You only need an override via /etc/portage/package.accept_keywords, as hdcg referenced. However, since there is no keyword for non-Intel platforms, accepting ~arm64 will not work (and accepting ~ARM64 is meaningless, since no such architecture exists). I think the functional choices here would be:
Code:
app-emulation/open-vm-tools **
or
Code:
app-emulation/open-vm-tools amd64
The latter is a bit weird, but has the perk that it would not accept amd64-unstable versions (of which there are currently none).
Back to top
View user's profile Send private message
flysideways
Guru
Guru


Joined: 29 Jan 2005
Posts: 396

PostPosted: Thu Feb 01, 2024 5:27 am    Post subject: Reply with quote

Thanks @Hu. That is interesting, always eager to learn.

When I try that, I unfortunately have a dependency I'm not sure how to deal with.

Code:
~ # emerge -vp app-emulation/open-vm-tools

These are the packages that would be merged, in order:

Calculating dependencies... done!
Dependency resolution took 0.49 s (backtrack: 0/20).


emerge: there are no ebuilds to satisfy "x11-libs/libdrm[video_cards_vmware]".
(dependency required by "app-emulation/open-vm-tools-12.2.5::gentoo[resolutionkms]" [ebuild])
(dependency required by "app-emulation/open-vm-tools" [argument])


x11-libs/libdrm is installed and vmware has been in make.conf VIDEO_CARDS since I first built this install.

Code:
emerge -vp x11-libs/libdrm

These are the packages that would be merged, in order:

Calculating dependencies... done!
Dependency resolution took 0.69 s (backtrack: 0/20).

[ebuild   R    ] x11-libs/libdrm-2.4.120::gentoo  USE="udev -test -tools -valgrind" VIDEO_CARDS="-amdgpu -exynos -freedreno (-intel) -nouveau (-omap) -radeon -tegra -vc4 -vivante (-vmware)" 0 KiB
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 21374

PostPosted: Thu Feb 01, 2024 4:03 pm    Post subject: Reply with quote

flysideways wrote:
x11-libs/libdrm is installed and vmware has been in make.conf VIDEO_CARDS since I first built this install.
Code:
emerge -vp x11-libs/libdrm

These are the packages that would be merged, in order:

Calculating dependencies... done!
Dependency resolution took 0.69 s (backtrack: 0/20).

[ebuild   R    ] x11-libs/libdrm-2.4.120::gentoo  USE="udev -test -tools -valgrind" VIDEO_CARDS="-amdgpu -exynos -freedreno (-intel) -nouveau (-omap) -radeon -tegra -vc4 -vivante (-vmware)" 0 KiB
That output says VIDEO_CARDS=vmware is masked for this package. It may be masked for all packages on this architecture or just for this one package. Regardless, the mask overrides your request to enable it, so you end up with it disabled, and having it disabled is not acceptable to app-emulation/open-vm-tools[resolutionkms]. Disable USE=resolutionkms on app-emulation/open-vm-tools or override the mask on x11-libs/libdrm[video_cards_vmware]. As always when overriding a mask, consider that the mask may have been put there to block a known broken configuration, so overriding it may only lead you to a different error - at compile time, or possibly as a nasty bug at run time. In this specific case, it looks like the base profile masks video_cards_vmware, then the Intel-based profiles negate that mask. As a non-Intel profile, yours does not negate it, so the mask from base prevails. The mask message states # not needed on non-x86, non-amd64 systems, so overriding it is probably safe. However, as I was not the one to write the mask and have never discussed it with the person who did, this is pure speculation on my part.
Back to top
View user's profile Send private message
eaf
n00b
n00b


Joined: 27 Apr 2018
Posts: 6

PostPosted: Thu Feb 01, 2024 10:00 pm    Post subject: Reply with quote

Thanks for all the suggestions here.

I had to use '**' for open-vm-tools because with ~amd64 alone it still wouldn't install, libdnet also required some alterations:

Code:
dev-libs/libdnet ~arm64
app-emulation/open-vm-tools **


Then I too ran into VIDEO_CARDS=vmware issues around libdrm, but overrode that and finally installed the tools via:

Code:
# emerge --nodeps -av open-vm-tools


Oh, and there was a compile error due to failure to include vmwgfx_drm.h. I saw the same even with building open-vm-tools manually, straight from github. Had to add a /usr/include/vmwgfx_drm.h with a single "#include <drm/vmwgfx_drm.h>"
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 21374

PostPosted: Fri Feb 02, 2024 12:04 am    Post subject: Reply with quote

eaf wrote:
I had to use '**' for open-vm-tools because with ~amd64 alone it still wouldn't install,
With what error did it fail? Note I suggested amd64, not ~amd64, because there are currently no unstable keyword ebuilds of that package.
eaf wrote:
libdnet also required some alterations:
Code:
dev-libs/libdnet ~arm64
You could rely on the implicit-ARCH behavior here:
/etc/portage/package.accept_keywords:
dev-libs/libdnet
eaf wrote:
Then I too ran into VIDEO_CARDS=vmware issues around libdrm, but overrode that
How did you override this?
eaf wrote:
and finally installed the tools via:
Code:
# emerge --nodeps -av open-vm-tools
This is almost always wrong. Why did you use --nodeps here?
eaf wrote:
Oh, and there was a compile error due to failure to include vmwgfx_drm.h. I saw the same even with building open-vm-tools manually, straight from github. Had to add a /usr/include/vmwgfx_drm.h with a single "#include <drm/vmwgfx_drm.h>"
This also looks incorrect to me. You probably need to add the result of pkg-config CFLAGS for the package that provides that header, which would then add /usr/include/drm to the search path.
Back to top
View user's profile Send private message
eaf
n00b
n00b


Joined: 27 Apr 2018
Posts: 6

PostPosted: Fri Feb 02, 2024 11:35 pm    Post subject: Reply with quote

If I use ~arm64 instead of **, I get this:

Code:
!!! All ebuilds that could satisfy "open-vm-tools" have been masked.
!!! One of the following masked packages is required to complete your request:
- app-emulation/open-vm-tools-12.2.5::gentoo (masked by: missing keyword)
- app-emulation/open-vm-tools-12.2.0::gentoo (masked by: missing keyword)


And --nodeps was added to avoid dealing with VIDEO_CARDS:

Code:
!!! All ebuilds that could satisfy "x11-libs/libdrm[video_cards_vmware]" have been masked.
!!! One of the following masked packages is required to complete your request:
- x11-libs/libdrm-9999::gentoo (masked by: missing keyword)
- x11-libs/libdrm-2.4.120::gentoo (masked by: ~arm64 keyword)
Back to top
View user's profile Send private message
flysideways
Guru
Guru


Joined: 29 Jan 2005
Posts: 396

PostPosted: Sat Feb 03, 2024 5:54 pm    Post subject: Reply with quote

Quote:
override the mask on x11-libs/libdrm[video_cards_vmware]


I tried everything that came to mind, and what I think I found in wiki.gentoo.org, with no success.

I have been using this vm in Fusion for eight months with no real complaint. I'm not very interested in being able to share with other vm's or the host.

My only interest with open-vm-tools would be the vmwgfx module so I get the native resolution of my laptop. The resolution I am using is quite good, just not as good as a vm that has vmwgfx and the native resolution.

It will be a while before I can get back to this.
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 21374

PostPosted: Sat Feb 03, 2024 7:21 pm    Post subject: Reply with quote

eaf wrote:
If I use ~arm64 instead of **, I get this:

Code:
!!! All ebuilds that could satisfy "open-vm-tools" have been masked.
!!! One of the following masked packages is required to complete your request:
- app-emulation/open-vm-tools-12.2.5::gentoo (masked by: missing keyword)
- app-emulation/open-vm-tools-12.2.0::gentoo (masked by: missing keyword)
That is consistent with what I said above. No package is keyworded as ~arm64, so accepting that keyword does not help.
eaf wrote:
And --nodeps was added to avoid dealing with VIDEO_CARDS:
Code:
!!! All ebuilds that could satisfy "x11-libs/libdrm[video_cards_vmware]" have been masked.
!!! One of the following masked packages is required to complete your request:
- x11-libs/libdrm-9999::gentoo (masked by: missing keyword)
- x11-libs/libdrm-2.4.120::gentoo (masked by: ~arm64 keyword)
It looks like this could have been handled by accepting the ~arm64 keyword. More importantly, when next you try to update @world, you will likely be forced to address the dependency.
flysideways wrote:
Hu wrote:
override the mask on x11-libs/libdrm[video_cards_vmware]
I tried everything that came to mind, and what I think I found in wiki.gentoo.org, with no success.
That suggests that whatever you could think of was incorrect. If you need help solving this, please show us what you did. I would expect that negating the mask via /etc/portage/profile should suffice.
Back to top
View user's profile Send private message
flysideways
Guru
Guru


Joined: 29 Jan 2005
Posts: 396

PostPosted: Fri Feb 09, 2024 7:08 pm    Post subject: Reply with quote

Quote:
That suggests that whatever you could think of was incorrect.


You are correct. :D

Anyhow, I ended up fixing the libdrm issue by adding

Code:
-video_cards_vmware


to the /var/db/repos/gentoo/profiles/arch/arm64/use.mask file for now. I expect it to get overwritten.

And, I have also separately used ** and amd64, as a look see. I have settled on ** for now.

After successfully emerging this mess I am left with this warning.
Code:
* Messages for package app-emulation/open-vm-tools-12.2.5:

 *   CONFIG_VMWARE_BALLOON:      is not set when it should be.
 *   CONFIG_VMWARE_PVSCSI:       is not set when it should be.
 *   CONFIG_X86_IOPL_IOPERM:     is not set when it should be.
 * Please check to make sure these options are set correctly.
 * Failure to do so may cause unexpected problems.


I will look into those later.

And, I still cannot select my native resolution from the click and drool Gnome menu. It is not shown. I'll keep with it a bit longer. It's an adventure, right?


Last edited by flysideways on Sun Feb 11, 2024 6:10 pm; edited 1 time in total
Back to top
View user's profile Send private message
flysideways
Guru
Guru


Joined: 29 Jan 2005
Posts: 396

PostPosted: Sat Feb 10, 2024 3:33 pm    Post subject: Reply with quote

Code:
me@build ~ $ neofetch
         -/oyddmdhs+:.                me@build
     -odNMMMMMMMMNNmhy+-`             --------
   -yNMMMMMMMMMMMNNNmmdhy+-           OS: Gentoo Linux aarch64
 `omMMMMMMMMMMMMNmdmmmmddhhy/`        Host: VMware20,1 1
 omMMMMMMMMMMMNhhyyyohmdddhhhdo`      Kernel: 6.7.4-gentoo-dist
.ydMMMMMMMMMMdhs++so/smdddhhhhdm+`    Uptime: 47 secs
 oyhdmNMMMMMMMNdyooydmddddhhhhyhNd.   Packages: 948 (emerge)
  :oyhhdNNMMMMMMMNNNmmdddhhhhhyymMh   Shell: bash 5.2.26
    .:+sydNMMMMMNNNmmmdddhhhhhhmMmy   Resolution: 3456x2160
       /mMMMMMMNNNmmmdddhhhhhmMNhs:   DE: GNOME 45.2
    `oNMMMMMMMNNNmmmddddhhdmMNhs+`    WM: Mutter
  `sNMMMMMMMMNNNmmmdddddmNMmhs/.      WM Theme: Adwaita
 /NMMMMMMMMNNNNmmmdddmNMNdso:`        Theme: Adwaita [GTK2/3]
+MMMMMMMNNNNNmmmmdmNMNdso/-           Icons: Adwaita [GTK2/3]
yMMNNNNNNNmmmmmNNMmhs+/-`             Terminal: gnome-terminal
/hMMNNNNNNNNMNdhs++/-`                CPU: Apple - (8)
`/ohdmmddhys+++/:.`                   GPU: 00:0f.0 VMware Device 0406
  `-//////:--.                        Memory: 975MiB / 39092MiB

                                                             
                                                             


It helped after I found the service name for open-vm-tools is vmware-tools.

Code:
rc-service vmware-tools -v start
rc-update add vmware-tools default
Back to top
View user's profile Send private message
flysideways
Guru
Guru


Joined: 29 Jan 2005
Posts: 396

PostPosted: Sun Feb 11, 2024 6:08 pm    Post subject: Reply with quote

I have moved the
Code:
-video_cards_vmware
declaration to a newly created /etc/portage/profile/use.mask file so it survives updates.

I will continue to use open-vm-tools on this ~arm64 install until I find a reason not to. I am liking the 3456x2160 native resolution.

Thanks for the help @Hu
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 53949
Location: 56N 3W

PostPosted: Sun Feb 11, 2024 6:13 pm    Post subject: Reply with quote

Some keyword bugs are in order here.

That will get the changes into the ::gentoo repo.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
flysideways
Guru
Guru


Joined: 29 Jan 2005
Posts: 396

PostPosted: Wed Feb 14, 2024 11:01 am    Post subject: Reply with quote

https://bugs.gentoo.org/924544
Back to top
View user's profile Send private message
flysideways
Guru
Guru


Joined: 29 Jan 2005
Posts: 396

PostPosted: Sun Feb 18, 2024 12:32 pm    Post subject: Reply with quote

In my original post in the above bug, I included the part of dmesg showing vmwgfx, the vmware driver for video.
Code:
dmesg | grep vmwgfx
[    2.388683] vmwgfx 0000:00:0f.0: [drm] Register MMIO at 0x0x000000003d000000 size is 4096 kiB
[    2.388688] vmwgfx 0000:00:0f.0: [drm] VRAM at 0x0000000070000000 size is 131072 kiB
[    2.388695] vmwgfx 0000:00:0f.0: [drm] Running on SVGA version 3.
[    2.388698] vmwgfx 0000:00:0f.0: [drm] Capabilities: cursor, cursor bypass, alpha cursor, 3D, pitchlock, irq mask, traces, command buffers, command buffers 2, gbobject, dx, hp cmd queue, no bb restriction, cap2 register,
[    2.388700] vmwgfx 0000:00:0f.0: [drm] Capabilities2: grow otable, intra surface copy, dx2, gb memsize 2, screendma reg, otable ptdepth2, non ms to ms stretchblt, cursor mob, mshint, cb max size 4mb, dx3, frame type, trace full fb, extra regs, lo staging,
[    2.388701] vmwgfx 0000:00:0f.0: [drm] DMA map mode: Caching DMA mappings.
[    2.388745] vmwgfx 0000:00:0f.0: [drm] Legacy memory limits: VRAM = 4096 kB, FIFO = 256 kB, surface = 524288 kB
[    2.388746] vmwgfx 0000:00:0f.0: [drm] MOB limits: max mob size = 1048576 kB, max mob pages = 2097152
[    2.388747] vmwgfx 0000:00:0f.0: [drm] Maximum display memory size is 262144 kiB
[    2.423454] vmwgfx 0000:00:0f.0: [drm] No GMR memory available. Graphics memory resources are very limited.
[    2.423560] vmwgfx 0000:00:0f.0: [drm] Screen Target display unit initialized
[    2.425047] vmwgfx 0000:00:0f.0: [drm] Using command buffers with DMA pool.
[    2.426044] vmwgfx 0000:00:0f.0: [drm] Available shader model: SM_5_1X.
[    2.448219] [drm] Initialized vmwgfx 2.20.0 20211206 for 0000:00:0f.0 on minor 0
[    2.451529] vmwgfx 0000:00:0f.0: [drm] fb0: vmwgfxdrmfb frame buffer device


The response from NATTkA bot was;
Code:
Sanity check failed:

> app-emulation/open-vm-tools-12.2.5
>   depend ~arm64 stable profile default/linux/arm64/17.0 (12 total)
>     x11-libs/libdrm[video_cards_vmware]
>   depend ~arm64 dev profile default/linux/arm64/17.0/hardened/selinux (1 total)
>     x11-libs/libdrm[video_cards_vmware]
>   rdepend ~arm64 stable profile default/linux/arm64/17.0 (12 total)
>     x11-libs/libdrm[video_cards_vmware]
>   rdepend ~arm64 dev profile default/linux/arm64/17.0/hardened/selinux (1 total)
>     x11-libs/libdrm[video_cards_vmware]


From what I can understand from reading about NATTkA, is that it just sees the -video_cards_vmware mask on libdrm and reports that without any critical analysis.

Being a maintainer is beyond my current skill set. I will continue to use these packages until something seems broken.

Do I also need to create a bug report for the libdrm mask?
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 21374

PostPosted: Sun Feb 18, 2024 4:03 pm    Post subject: Reply with quote

The automation assumes /etc/portage/profile is missing/empty, since no one but you will have that. Therefore, if your proposed changes are wrong when that directory is empty, then they are not acceptable to merge as-is to the Portage tree. You need to get that flag unmasked for ARM profile users. A bug report seems like the most likely way to make that happen.
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 53949
Location: 56N 3W

PostPosted: Sun Feb 18, 2024 8:33 pm    Post subject: Reply with quote

flysideways,

Looking at the profiles in ::gentoo for how video_cards_vmware is managed.

Code:
/var/db/repos/gentoo/profiles $ grep -R video_cards_vmware ./
./arch/amd64/use.mask:-video_cards_vmware
./arch/riscv/use.mask:video_cards_vmware
./arch/base/use.mask:video_cards_vmware
./arch/x86/use.mask:-video_cards_vmware
./prefix/darwin/macos/arch/x64/use.mask:-video_cards_vmware


You need an entry like that for arm64.

It would be ./arch/arm64/use.mask -video_cards_vmware

Its two commits in one PR, if you want to make it easy for maintainers :)
The first commit fixes the profile, the second adds the ~arm64 keyword.
With a PR, the CI will check that the repo is healthy if the PR were to be applied.

Your bug has been assigned
Quote:
Assignee: bug-wranglers@gentoo.org → maintainer-needed@gentoo.org

_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Gentoo on ARM All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum