Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add IA32 and Display support #246

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Add IA32 and Display support #246

wants to merge 1 commit into from

Conversation

xhejtman
Copy link

@xhejtman xhejtman commented Mar 8, 2024

Moving my original PR from gitlab here.

This PR injects i386 libs that are neede by e.g., The Witcher 2 game, and injects Xorg modules nvidia_drv.so and libglxserver_nvidia.so that are needed for running Xserver in container.

Additional patch to the driver image is needed as well, will send another PR to the different repo.

The container with Xserver needs to copy or symlink the nvidia_drv.so and libglxserver_nvidia.so files. The nvidia_drv.so is renamed to libnvidia_drv.so so that standard injection mechanisms can be used. If there is a better way, let me know.

Of course, it would be far better to inject these two files directly to /usr/lib/xorg/driver and /usr/lib/xorg/modules, but I do not know, how to currently do it.

Signed-off-by: Lukas Hejtmanek <[email protected]>
@elezar
Copy link
Member

elezar commented Mar 12, 2024

@xhejtman would making these changes to the NVIDIA Container Runtime in https://github.com/NVIDIA/nvidia-container-toolkit be an option instead?

@xhejtman
Copy link
Author

@xhejtman would making these changes to the NVIDIA Container Runtime in https://github.com/NVIDIA/nvidia-container-toolkit be an option instead?

what do you mean here? the display part is depending on requested display capability. Do you want ia32 libs to be depending on some ia32 capability? Or something completely different?

@elezar
Copy link
Member

elezar commented Mar 12, 2024

The NVIDIA Container Runtime already includes functionality to discover and inject graphics libraries that are not covered by libnvidia-container: https://github.com/NVIDIA/nvidia-container-toolkit/blob/14ecacf6d1b21e07ece583d4fc432f393919f505/internal/discover/graphics.go#L273-L286

Going forward, we are moving away from using libnvidia-container to do injection and moving to CDI to define what is required. Making the change in the NVIDIA Container Runtime (especially handling 32-bit libs) whould allow that to be used too.

@xhejtman
Copy link
Author

Ah, so using the Xserver in container should be already possible? Or is this for upcomming release? Is it anywere in documentation?

Btw, I think also driver needs to be changed so that Xorg libs are included in /run/nvidia/driver. Is this already done?

@elezar
Copy link
Member

elezar commented Mar 14, 2024

Ah, so using the Xserver in container should be already possible? Or is this for upcomming release? Is it anywere in documentation?

Most of the functionality should already be there, but our documentation is a little lacking at present. We are looking at updating this once we have sorted out some rough edges.

Btw, I think also driver needs to be changed so that Xorg libs are included in /run/nvidia/driver. Is this already done?

Yes, this is a known limitation. We are working with internal teams that also require this and will look at the impact of making these changes available as an opt-in feature at some point. Unfortunately I can't comment on the timeline at this point.

@xhejtman
Copy link
Author

Ah, so using the Xserver in container should be already possible? Or is this for upcomming release? Is it anywere in documentation?

Most of the functionality should already be there, but our documentation is a little lacking at present. We are looking at updating this once we have sorted out some rough edges.

so for Xserver, this PR is basically obsolete, right?

Btw, I think also driver needs to be changed so that Xorg libs are included in /run/nvidia/driver. Is this already done?

Yes, this is a known limitation. We are working with internal teams that also require this and will look at the impact of making these changes available as an opt-in feature at some point. Unfortunately I can't comment on the timeline at this point.

so this part is on your own? No need to create PR for this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants