celaxodon / buildroot

Other
20 stars 6 forks source link

tegra_udrm module not found on startup #3

Open celaxodon opened 3 years ago

celaxodon commented 3 years ago

Seeing the runtime error on start up:

modprobe: can't load module tegra_udrm (kernel/drivers/gpu/drm/tegra_udrm/tegra-udrm.ko

Confirmed this does not affect the NVIDIA-provided SD card image.

To investigate:

hmbedded commented 3 years ago

Hello, Firstly I wanted to say thanks for making this buildroot port available for the Jetson Nano. I'm working on an embedded product where an Ubuntu based system is just too cumbersome so you've given me a great head start!

I've investigated the issue with the tegra_udrm module and found that in fact it's nothing to do with LOCALVERSION. Looking at the NVIDIA-provided SD card image 'lsmod' shows that the module is not inserted after boot. Trying to manually insert without any parameters produces an error. Looking in /etc/modprobe.d there is: tegra_udrm.conf which has the following:

# DRM KMS support is still considered experimental and only works
# with libdrm_nvdc.so. It doesn't work with libdrm.so. It is
# disabled by default, uncomment below line to enable it.
# Gnome-wayland needs DRM KMS support to be enabled.

#options tegra-udrm modeset=1

And indeed modprobing with 'modeset=1' on either the NVIDIA or buildroot images succeeds. However, from the comment it looks like we probably don't want it inserting anyhow. To remove the warning a possible solution would be to blacklist the module. Unfortunately, by default, busybox modprobe does not support blacklisting but it's fairly easy to fix by adding a busybox config fragment containing:

CONFIG_FEATURE_MODPROBE_BLACKLIST=y

And also adding a file in /etc/modprobe.d containing:

blacklist tegra_udrm
paralin commented 3 years ago

@hmbedded Some users are using Buildroot with Tx2 via SkiffOS here: https://github.com/skiffos/SkiffOS/tree/master/configs/jetson/tx2

And nano here: https://github.com/skiffos/SkiffOS/tree/master/configs/jetson/nano

There is support for it merged into the buildroot tree available there as a sub-module.

celaxodon commented 3 years ago

Hi @hmbedded,

I'm so glad you've found it useful, and thank you for looking into this issue! I've been short on time lately, but I will look into incorporating your suggestions this weekend.

I would also be very interested to hear about any benefits of or potential use cases you have for a more minimalist base OS for the Jetson platform. No pressure, but if you can talk about it but feel more comfortable speaking in private, feel free to reach out to me at "gleva" nvidia.com.

I've also recently heard about issues building this software on different platforms. If you or others run into issues compiling the L4T kernel and U-Boot directly from NVIDIA's repositories (like is done here), I just heard about the Open Embedded for Tegra project, which combines all of the individual kernel repositories into one, and may have support for newer versions of the software, like U-Boot and GCC.

hmbedded commented 3 years ago

Hello @celaxodon,

In case you haven't had a chance to look into this issues take a look at this commit in my fork: https://github.com/hmbedded/buildroot/commit/b6d14e85a3258ecc3b34c933c3977401c1a55201

I'd be happy to talk about the use case I have for a minimalist base OS for the nano but as this is for a new product development I'd prefer to converse privately, so I'll take up your offer to contact you via email.

So far I've been using gcc 7.3.1 and haven't run into any compiler related build issues. Looking at the Open Embedded kernel commits it looks like there were issues with gcc 8+. Although I'd ideally like to use the most recent gcc I'm holding off because I heard it could cause system issues with the pre-compiled binaries provided by nvidia. My plan is to get the system to where I want it with 7.3.1 and then try to upgrade gcc.

I did run into a dependency issue with your buildroot patches but I'll post a new issue rather than pollute this thread.