Как я могу построить ядро ​​4.15.7 с LLVM / clang и драйвером Nvidia 390.25 x86_64 на Ubuntu 17.10 x86_64?

Это о моем успешном опыте создания Ubuntu 17.10 x86_64 на clang-built Linux 4.15.7 kernel (последняя стабильная версия на данный момент) и проприетарного Nvidia 390.25 (последнего по настоящее время) драйвера для моей видеокарты Nvidia GTX GeForce 860M .

Задача

Ядро Linux 4.15.7 было построено с использованием clang в качестве хост-и целевого компилятора и установлено вместе с модулями на основе по умолчанию Конфигурация ядра. Мне пришлось отключить модуль exofs, поскольку он имел нестандартные «VLA, встроенные в структуры», которые clang не поддерживает. Затем я также скомпилировал источник драйвера Nvidia 390.25 после извлечения его из своего утилизационного установщика - мне пришлось игнорировать несоответствие версии компилятора psuedo-warning, поскольку заголовки ядра включали модель потока, а также информацию о платформе, в то время как проверка скрипта драйвера Nvidia приводила только к версии ,

После установки встроенных модулей драйвера Nvidia я перезагрузил свою систему, загрузка Ubuntu 17.10 не завершилась - она ​​застряла в Loading ... 4.15.7.

Чтобы дополнительно изолировать проблемы совместимости (если они есть) ядра с gcc / clang vs драйвер Nvidia с gcc / clang, ядро ​​компиляции Linux 4.15.7 с драйверами gcc и Nvidia 390.25 с clang и наоборот. Во-первых, процесс загрузки прошел фазу Loading ... 4.15.7 и перешел на некоторую услугу systemd, но застрял там. Для второго, опять же, он снова застрял на фазе Loading ... 4.15.7. Система journalctl / logs не помогла.

1
задан 10 April 2018 в 11:09

2 ответа

этап 1: проработав с qemu/KVM в начале, я хотел заиметь фактически не дело в воспитании лязг-построены ядра вверх. Итак, я попытался поднять лязг-построен ядре Linux изображения 4.15.7 используя архитектуру x86_64 по умолчанию config, чтобы начать с, а также лязг-причине busybox x86_64 для корневой файловой системы (файловой), на qemu/KVM в архитектуру x86_64. Это сработало. У меня есть Shell и busybox утилиты работали и так далее.

этап 1:

$ strings -a defconfig-linux-4.15.7/linux-4.15.7/vmlinux | grep "clang version" | head -1 Linux version 4.15.7 (exp@exp) (clang version 5.0.0-3 (tags/RELEASE_500/final)) #1 SMP Fri Mar 2 21:15:24 PST 2018 $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 17.10 Release: 17.10 Codename: artful $ clang -v clang version 5.0.0-3 (tags/RELEASE_500/final) Target: x86_64-pc-linux-gnu Thread model: posix InstalledDir: /usr/bin

в эмуляторе qemu/KVM и оценки, 4.15.7 ядра Linux(x86_64 с defconfig)/busybox и 64-бит :

/ # cat /proc/version Linux version 4.15.7 (exp@exp) (clang version 5.0.0-3 (tags/RELEASE_500/final)) #1 SMP Fri Mar 2 21:15:24 PST 2018 / # / # uname -arv Linux (none) 4.15.7 #1 SMP Fri Mar 2 21:15:24 PST 2018 x86_64 GNU/Linux / # / # / # strings -a bin/busybox | grep "clang version" clang version 5.0.0-3 (tags/RELEASE_500/final) / # / # / # dmesg | grep QEMU [ 0.000000] DMI: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.9.3-0-ge2fc41e-prebuilt.qemu-project.org 04/01/2014 [ 0.024000] smpboot: CPU0: Intel QEMU Virtual CPU version 2.5+ (family: 0x6, model: 0x6, stepping: 0x3) [ 0.337415] ata2.00: ATAPI: QEMU DVD-ROM, 2.5+, max UDMA/100 [ 0.339072] scsi 1:0:0:0: CD-ROM QEMU QEMU DVD-ROM 2.5+ PQ: 0 ANSI: 5 / # / #

в эмуляторе qemu/KVM и оценки, 4.15.7 ядра Linux(x86_64 с defconfig)/busybox и 64-бит : с выше первоначального успеха с ядром defconfig, я взял хост в Ubuntu ядра 17.10 config и восстановлен ядром Linux изображения 4.15.7. С этим я все остальное busybox и том же и пытался вывести их на qemu/KVM как раньше - это не работает. В результате [F8] и [F9] и kernel panic. Я заглянул в дамп стека ядра.

я заметил, что первый выпуск был в пределах kernel irq work tick логика. Тогда следующий вопрос был с kernel live instruction update логика. Я работала на них обоих. Перестройка ядра. Попробовал еще раз с qemu/KVM-переключателей - есть оболочка, никакой паники на этот раз. Следующий шаг-установка модулей ядра и модулей драйвера nvidia. Я сделал это, но в этот раз, все модули ядра, модуль драйвера nvidia в Ubuntu и в qemu/KVM и показали некоторые цветные точки и застрял - в основном из-за разницы между аппаратной и виртуальной гостя. Итак, я хотел бы попробовать только с драйвер nvidia, так как он был больше всего беспокоит, как та, что я использую на моем хосте для графики. Так что я включил (не установить) модули драйверов NVIDIA в busybox и и файловой системы пытались воспитать в qemu/KVM как обычно - в этот раз, была некоторая паника ядра из-за файловой системы-не нашли, хотя было файловой системы.

Итак, я попытался сжать все драйвера nvidia модулей на молнию и включить его в образ rootfs. Но, когда я попытался извлечь zip С В qemu/KVM в гостях, там был [от f13]. Так, я пытался построить 10г виртуального диска qemu и установить образ rootfs в том, что диск, чтобы рассмотреть пространство озабоченности, но, через некоторое время мне позвонил этот, как я был больше заинтересован в получении лязг-встроенный драйвер для nvidia на реальной системе, скобяными, чем на эмулироваться в qemu/KVM в среду (я знаю, что это не имеет реального видеокарт NVIDIA доступен через GPU-сквозной, так что он может проверить лязг-встроенный в NVIDIA 390.25 водителя, прежде чем я мог попробовать, что на хозяина реальной системе аппаратно видеокартой но все равно дал ему шанс просто, чтобы увидеть, если лязг-встроенный драйвер nvidia проявляет каких-либо проблем в эмуляторе qemu/KVM и при загрузке).

в эмуляторе qemu/KVM и оценки, 4.15.7 ядра Linux(x86_64 с defconfig)/busybox и 64-бит :

/ # cat /proc/version Linux version 4.15.7 (exp@exp) (clang version 5.0.0-3 (tags/RELEASE_500/final)) #20 SMP Sat Mar 3 20:46:15 PST 2018 / # / # / # uname -arv Linux (none) 4.15.7 #20 SMP Sat Mar 3 20:46:15 PST 2018 x86_64 GNU/Linux / # / # / # / # dmesg | grep QEMU [ 0.000000] DMI: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.9.3-0-ge2fc41e-prebuilt.qemu-project.org 04/01/2014 [ 0.024000] smpboot: CPU0: Intel QEMU Virtual CPU version 2.5+ (family: 0x6, model: 0x6, stepping: 0x3) [ 0.340776] ata2.00: ATAPI: QEMU DVD-ROM, 2.5+, max UDMA/100 [ 0.343135] scsi 1:0:0:0: CD-ROM QEMU QEMU DVD-ROM 2.5+ PQ: 0 ANSI: 5 / # / # strings -a bin/busybox | grep "clang version" clang version 5.0.0-3 (tags/RELEASE_500/final) / #

в эмуляторе qemu/KVM и оценки, 4.15.7 ядра Linux(x86_64 с defconfig)/busybox и 64-бит : как мой основной и реальной целью был мой хозяин (убунту 17.10), я установил этот лязг-собранное ядро (с выше вопросы, работали по) и драйверы NVIDIA 390.25 на мой хост-системы непосредственно. Перезагружается моя система. БАМ! У меня в Ubuntu x86_64 с 17.10 и работает с лязгом построенный ядра 4.15.7 и clang-встроенный драйвер nvidia 390.25 без каких-либо проблем.

[dиода d17]на хост в Ubuntu x86_64 с 17.10 с лязгом построен ядре Linux 4.15.7 и clang-причине драйвер nvidia geforce для видеокарты GTX 860М 390.25 вещно - моя успешных исследований и опыт : [!dиода d17] $ dmesg | grep clang [ 0.000000] Linux version 4.15.7 (exp@exp) (clang version 5.0.0-3 (tags/RELEASE_500/final)) #20 SMP Sat Mar 3 20:46:15 PST 2018 $ cat /proc/version Linux version 4.15.7 (exp@exp) (clang version 5.0.0-3 (tags/RELEASE_500/final)) #20 SMP Sat Mar 3 20:46:15 PST 2018 $ uname -arv Linux exp 4.15.7 #20 SMP Sat Mar 3 20:46:15 PST 2018 x86_64 x86_64 x86_64 GNU/Linux $ nvidia-smi Sun Mar 4 18:15:39 2018 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 390.25 Driver Version: 390.25 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 GeForce GTX 860M Off | 00000000:01:00.0 Off | N/A | | N/A 54C P0 N/A / N/A | 370MiB / 4046MiB | 0% Default | +-------------------------------+----------------------+----------------------+ exp@exp:~$ dmesg | grep NVIDIA | grep 390.25 [ 17.643496] NVRM: loading NVIDIA UNIX x86_64 Kernel Module 390.25 Wed Jan 24 20:02:43 PST 2018 (using threaded interrupts) [ 17.689835] nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms 390.25 Wed Jan 24 19:29:37 PST 2018 $ lsmod | grep nvidia nvidia_uvm 815104 0 nvidia_drm 24576 2 nvidia_modeset 1097728 5 nvidia_drm nvidia 14352384 334 nvidia_uvm,nvidia_modeset ipmi_msghandler 61440 2 nvidia,ipmi_devintf drm 454656 6 nvidia_drm,i915,drm_kms_helper # clang-built Linux kernel 4.15.7 image and Nvidia 390.25 driver modules having clang compiler specific # metadata within them. # $ eclang /lib/modules/4.15.7/build/vmlinux | grep "Linux" ++ strings -a /lib/modules/4.15.7/build/vmlinux ++ grep clang Linux version 4.15.7 (exp@exp) (clang version 5.0.0-3 (tags/RELEASE_500/final)) #20 SMP Sat Mar 3 20:46:15 PST 2018 exp@exp:~$ eclang /lib/modules/4.15.7/kernel/drivers/video/nvidia.ko | head -1 ++ strings -a /lib/modules/4.15.7/kernel/drivers/video/nvidia.ko ++ grep clang clang version 5.0.0-3 (tags/RELEASE_500/final) $ eclang /lib/modules/4.15.7/kernel/drivers/video/nvidia-drm.ko | head -1 ++ strings -a /lib/modules/4.15.7/kernel/drivers/video/nvidia-drm.ko ++ grep clang clang version 5.0.0-3 (tags/RELEASE_500/final) $ eclang /lib/modules/4.15.7/kernel/drivers/video/nvidia-uvm.ko | head -1 ++ strings -a /lib/modules/4.15.7/kernel/drivers/video/nvidia-uvm.ko ++ grep clang clang version 5.0.0-3 (tags/RELEASE_500/final) $ eclang /lib/modules/4.15.7/kernel/drivers/video/nvidia-modeset.ko | head -1 ++ strings -a /lib/modules/4.15.7/kernel/drivers/video/nvidia-modeset.ko ++ grep clang clang version 5.0.0-3 (tags/RELEASE_500/final) # DMI specific hardware information - verifies and confirms the physical hardware used # instead of QEMU or any other virtual platform for running clang-built kernel and # Nvidia 390.25 driver. # $ sudo dmidecode -t bios | grep Vendor Vendor: LENOVO $ sudo dmidecode -t system | grep "Manufacturer:\|Version" Manufacturer: LENOVO Version: Lenovo Y50-70 Touch $ sudo dmidecode -t processor | grep Version Version: Intel(R) Core(TM) i7-4710HQ CPU @ 2.50GHz

на хост в Ubuntu x86_64 с 17.10 с лязгом построен ядре Linux 4.15.7 и clang-причине драйвер nvidia geforce для видеокарты GTX 860М 390.25 вещно - моя успешных исследований и опыт : для всех подробные журналы (на каждом этапе), вы можете прочитать мой ответ для кода llvm-clang в/ядра Linux вопрос здесь :строение ядра Linux с помощью llvm/clang в.

Примечание 2: предупреждение лязгом более педантичны, чем GCC как я видел. Но на данный момент, чтобы получить драйвера ядра/Видеокарта NVIDIA и работает, я игнорировал их, чтобы увидеть, если они не серьезные (пока их нет).

Примечание 2: ради универсальности, я повторил выше с последующими версиями ядра (4.15.10 и [с f15], что последний по состоянию на середину марта 2018 года) и последние графические драйвера nvidia geforce для видеокарты GTX v390.42 что последний по состоянию на середину марта 2018 года - оба они построены с использованием clang как ранее после обновления ядра 4.15.11 код в прерывание работы тик логикой и видео инструкция по обновлению логики, как я сделал выше для 4.15.7, и, наконец, установлен на моей системе оборудования напрямую (не в qemu/KVM в экспериментах это время, так как ранее 4.15.7 ядра пришли успешно проработав на прерывание работы тик логикой и видео инструкция по обновлению логики). С этим, опять же, в Ubuntu x86_64 с 17.10 удачно подошел на мой аппаратная система, на clang-причине ядра 4.15.11 и clang-построен последний драйвер nvidia v390.42, как это делали в предыдущем случае 4.15.7 ядра и драйвера v390 от NVIDIA.25.

на хост в Ubuntu x86_64 с 17.10 с лязгом построен ядре Linux 4.15.7 и clang-причине драйвер nvidia geforce для видеокарты GTX 860М 390.25 вещно - моя успешных исследований и опыт :

$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 17.10 Release: 17.10 Codename: artful $ cat /proc/version Linux version 4.15.11 (exp@exp) (clang version 5.0.0-3 (tags/RELEASE_500/final)) #2 SMP Tue Mar 20 05:37:06 PDT 2018 $ eclang /lib/modules/4.15.11/build/vmlinux | grep Linux ++ strings -a /lib/modules/4.15.11/build/vmlinux ++ grep clang Linux version 4.15.11 (exp@exp) (clang version 5.0.0-3 (tags/RELEASE_500/final)) #2 SMP Tue Mar 20 05:37:06 PDT 2018 $ sudo dmidecode -t system | grep "Manufacturer:\|Version" Manufacturer: LENOVO Version: Lenovo Y50-70 Touch $ dmesg | grep NVIDIA [ 19.491452] nvidia: module license 'NVIDIA' taints kernel. [ 19.499360] NVRM: loading NVIDIA UNIX x86_64 Kernel Module 390.42 Sat Mar 3 04:10:22 PST 2018 (using threaded interrupts) [ 19.542830] nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms 390.42 Sat Mar 3 03:30:48 PST 2018 $ nvidia-smi Tue Mar 20 22:15:00 2018 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 390.42 Driver Version: 390.42 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 GeForce GTX 860M Off | 00000000:01:00.0 Off | N/A | | N/A 52C P8 N/A / N/A | 451MiB / 4046MiB | 0% Default | +-------------------------------+----------------------+----------------------+ $ glxinfo | grep NVIDIA server glx vendor string: NVIDIA Corporation client glx vendor string: NVIDIA Corporation OpenGL vendor string: NVIDIA Corporation OpenGL core profile version string: 4.5.0 NVIDIA 390.42 OpenGL core profile shading language version string: 4.50 NVIDIA OpenGL version string: 4.6.0 NVIDIA 390.42 OpenGL shading language version string: 4.60 NVIDIA OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 390.42 $ lsmod | grep nv nvidia_uvm 815104 0 nvidia_drm 24576 2 nvidia_modeset 1105920 5 nvidia_drm nvidia 14368768 334 nvidia_uvm,nvidia_modeset ipmi_msghandler 61440 2 nvidia,ipmi_devintf drm 454656 6 nvidia_drm,i915,drm_kms_helper $ ~/nvidia-driver-compiler.sh ++ head -1 +++ uname -r ++ eclang /lib/modules/4.15.11/kernel/drivers/video/nvidia.ko +++ strings -a /lib/modules/4.15.11/kernel/drivers/video/nvidia.ko +++ grep clang clang version 5.0.0-3 (tags/RELEASE_500/final) ++ head -1 +++ uname -r ++ eclang /lib/modules/4.15.11/kernel/drivers/video/nvidia-drm.ko +++ strings -a /lib/modules/4.15.11/kernel/drivers/video/nvidia-drm.ko +++ grep clang clang version 5.0.0-3 (tags/RELEASE_500/final) +++ uname -r ++ head -1 ++ eclang /lib/modules/4.15.11/kernel/drivers/video/nvidia-modeset.ko +++ strings -a /lib/modules/4.15.11/kernel/drivers/video/nvidia-modeset.ko +++ grep clang clang version 5.0.0-3 (tags/RELEASE_500/final) +++ uname -r ++ head -1 ++ eclang /lib/modules/4.15.11/kernel/drivers/video/nvidia-uvm.ko +++ strings -a /lib/modules/4.15.11/kernel/drivers/video/nvidia-uvm.ko +++ grep clang clang version 5.0.0-3 (tags/RELEASE_500/final) $ ~/nvidia_driver_modules_version.sh ++ grep '^version=' +++ uname -r ++ strings -a /lib/modules/4.15.11/kernel/drivers/video/nvidia.ko version=390.42 ++ grep '^version=' +++ uname -r ++ strings -a /lib/modules/4.15.11/kernel/drivers/video/nvidia-drm.ko version=390.42 ++ grep '^version=' +++ uname -r ++ strings -a /lib/modules/4.15.11/kernel/drivers/video/nvidia-uvm.ko +++ uname -r ++ grep '^version=' ++ strings -a /lib/modules/4.15.11/kernel/drivers/video/nvidia-modeset.ko version=390.42
1
ответ дан 17 July 2018 в 19:28

этап 1: проработав с qemu/KVM в начале, я хотел заиметь фактически не дело в воспитании лязг-построены ядра вверх. Итак, я попытался поднять лязг-построен ядре Linux изображения 4.15.7 используя архитектуру x86_64 по умолчанию config, чтобы начать с, а также лязг-причине busybox x86_64 для корневой файловой системы (файловой), на qemu/KVM в архитектуру x86_64. Это сработало. У меня есть Shell и busybox утилиты работали и так далее.

этап 1:

$ strings -a defconfig-linux-4.15.7/linux-4.15.7/vmlinux | grep "clang version" | head -1 Linux version 4.15.7 (exp@exp) (clang version 5.0.0-3 (tags/RELEASE_500/final)) #1 SMP Fri Mar 2 21:15:24 PST 2018 $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 17.10 Release: 17.10 Codename: artful $ clang -v clang version 5.0.0-3 (tags/RELEASE_500/final) Target: x86_64-pc-linux-gnu Thread model: posix InstalledDir: /usr/bin

в эмуляторе qemu/KVM и оценки, 4.15.7 ядра Linux(x86_64 с defconfig)/busybox и 64-бит :

/ # cat /proc/version Linux version 4.15.7 (exp@exp) (clang version 5.0.0-3 (tags/RELEASE_500/final)) #1 SMP Fri Mar 2 21:15:24 PST 2018 / # / # uname -arv Linux (none) 4.15.7 #1 SMP Fri Mar 2 21:15:24 PST 2018 x86_64 GNU/Linux / # / # / # strings -a bin/busybox | grep "clang version" clang version 5.0.0-3 (tags/RELEASE_500/final) / # / # / # dmesg | grep QEMU [ 0.000000] DMI: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.9.3-0-ge2fc41e-prebuilt.qemu-project.org 04/01/2014 [ 0.024000] smpboot: CPU0: Intel QEMU Virtual CPU version 2.5+ (family: 0x6, model: 0x6, stepping: 0x3) [ 0.337415] ata2.00: ATAPI: QEMU DVD-ROM, 2.5+, max UDMA/100 [ 0.339072] scsi 1:0:0:0: CD-ROM QEMU QEMU DVD-ROM 2.5+ PQ: 0 ANSI: 5 / # / #

в эмуляторе qemu/KVM и оценки, 4.15.7 ядра Linux(x86_64 с defconfig)/busybox и 64-бит : с выше первоначального успеха с ядром defconfig, я взял хост в Ubuntu ядра 17.10 config и восстановлен ядром Linux изображения 4.15.7. С этим я все остальное busybox и том же и пытался вывести их на qemu/KVM как раньше - это не работает. В результате [F8] и [F9] и kernel panic. Я заглянул в дамп стека ядра.

я заметил, что первый выпуск был в пределах kernel irq work tick логика. Тогда следующий вопрос был с kernel live instruction update логика. Я работала на них обоих. Перестройка ядра. Попробовал еще раз с qemu/KVM-переключателей - есть оболочка, никакой паники на этот раз. Следующий шаг-установка модулей ядра и модулей драйвера nvidia. Я сделал это, но в этот раз, все модули ядра, модуль драйвера nvidia в Ubuntu и в qemu/KVM и показали некоторые цветные точки и застрял - в основном из-за разницы между аппаратной и виртуальной гостя. Итак, я хотел бы попробовать только с драйвер nvidia, так как он был больше всего беспокоит, как та, что я использую на моем хосте для графики. Так что я включил (не установить) модули драйверов NVIDIA в busybox и и файловой системы пытались воспитать в qemu/KVM как обычно - в этот раз, была некоторая паника ядра из-за файловой системы-не нашли, хотя было файловой системы.

Итак, я попытался сжать все драйвера nvidia модулей на молнию и включить его в образ rootfs. Но, когда я попытался извлечь zip С В qemu/KVM в гостях, там был [от f13]. Так, я пытался построить 10г виртуального диска qemu и установить образ rootfs в том, что диск, чтобы рассмотреть пространство озабоченности, но, через некоторое время мне позвонил этот, как я был больше заинтересован в получении лязг-встроенный драйвер для nvidia на реальной системе, скобяными, чем на эмулироваться в qemu/KVM в среду (я знаю, что это не имеет реального видеокарт NVIDIA доступен через GPU-сквозной, так что он может проверить лязг-встроенный в NVIDIA 390.25 водителя, прежде чем я мог попробовать, что на хозяина реальной системе аппаратно видеокартой но все равно дал ему шанс просто, чтобы увидеть, если лязг-встроенный драйвер nvidia проявляет каких-либо проблем в эмуляторе qemu/KVM и при загрузке).

в эмуляторе qemu/KVM и оценки, 4.15.7 ядра Linux(x86_64 с defconfig)/busybox и 64-бит :

/ # cat /proc/version Linux version 4.15.7 (exp@exp) (clang version 5.0.0-3 (tags/RELEASE_500/final)) #20 SMP Sat Mar 3 20:46:15 PST 2018 / # / # / # uname -arv Linux (none) 4.15.7 #20 SMP Sat Mar 3 20:46:15 PST 2018 x86_64 GNU/Linux / # / # / # / # dmesg | grep QEMU [ 0.000000] DMI: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.9.3-0-ge2fc41e-prebuilt.qemu-project.org 04/01/2014 [ 0.024000] smpboot: CPU0: Intel QEMU Virtual CPU version 2.5+ (family: 0x6, model: 0x6, stepping: 0x3) [ 0.340776] ata2.00: ATAPI: QEMU DVD-ROM, 2.5+, max UDMA/100 [ 0.343135] scsi 1:0:0:0: CD-ROM QEMU QEMU DVD-ROM 2.5+ PQ: 0 ANSI: 5 / # / # strings -a bin/busybox | grep "clang version" clang version 5.0.0-3 (tags/RELEASE_500/final) / #

в эмуляторе qemu/KVM и оценки, 4.15.7 ядра Linux(x86_64 с defconfig)/busybox и 64-бит : как мой основной и реальной целью был мой хозяин (убунту 17.10), я установил этот лязг-собранное ядро (с выше вопросы, работали по) и драйверы NVIDIA 390.25 на мой хост-системы непосредственно. Перезагружается моя система. БАМ! У меня в Ubuntu x86_64 с 17.10 и работает с лязгом построенный ядра 4.15.7 и clang-встроенный драйвер nvidia 390.25 без каких-либо проблем.

[dиода d17]на хост в Ubuntu x86_64 с 17.10 с лязгом построен ядре Linux 4.15.7 и clang-причине драйвер nvidia geforce для видеокарты GTX 860М 390.25 вещно - моя успешных исследований и опыт : [!dиода d17] $ dmesg | grep clang [ 0.000000] Linux version 4.15.7 (exp@exp) (clang version 5.0.0-3 (tags/RELEASE_500/final)) #20 SMP Sat Mar 3 20:46:15 PST 2018 $ cat /proc/version Linux version 4.15.7 (exp@exp) (clang version 5.0.0-3 (tags/RELEASE_500/final)) #20 SMP Sat Mar 3 20:46:15 PST 2018 $ uname -arv Linux exp 4.15.7 #20 SMP Sat Mar 3 20:46:15 PST 2018 x86_64 x86_64 x86_64 GNU/Linux $ nvidia-smi Sun Mar 4 18:15:39 2018 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 390.25 Driver Version: 390.25 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 GeForce GTX 860M Off | 00000000:01:00.0 Off | N/A | | N/A 54C P0 N/A / N/A | 370MiB / 4046MiB | 0% Default | +-------------------------------+----------------------+----------------------+ exp@exp:~$ dmesg | grep NVIDIA | grep 390.25 [ 17.643496] NVRM: loading NVIDIA UNIX x86_64 Kernel Module 390.25 Wed Jan 24 20:02:43 PST 2018 (using threaded interrupts) [ 17.689835] nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms 390.25 Wed Jan 24 19:29:37 PST 2018 $ lsmod | grep nvidia nvidia_uvm 815104 0 nvidia_drm 24576 2 nvidia_modeset 1097728 5 nvidia_drm nvidia 14352384 334 nvidia_uvm,nvidia_modeset ipmi_msghandler 61440 2 nvidia,ipmi_devintf drm 454656 6 nvidia_drm,i915,drm_kms_helper # clang-built Linux kernel 4.15.7 image and Nvidia 390.25 driver modules having clang compiler specific # metadata within them. # $ eclang /lib/modules/4.15.7/build/vmlinux | grep "Linux" ++ strings -a /lib/modules/4.15.7/build/vmlinux ++ grep clang Linux version 4.15.7 (exp@exp) (clang version 5.0.0-3 (tags/RELEASE_500/final)) #20 SMP Sat Mar 3 20:46:15 PST 2018 exp@exp:~$ eclang /lib/modules/4.15.7/kernel/drivers/video/nvidia.ko | head -1 ++ strings -a /lib/modules/4.15.7/kernel/drivers/video/nvidia.ko ++ grep clang clang version 5.0.0-3 (tags/RELEASE_500/final) $ eclang /lib/modules/4.15.7/kernel/drivers/video/nvidia-drm.ko | head -1 ++ strings -a /lib/modules/4.15.7/kernel/drivers/video/nvidia-drm.ko ++ grep clang clang version 5.0.0-3 (tags/RELEASE_500/final) $ eclang /lib/modules/4.15.7/kernel/drivers/video/nvidia-uvm.ko | head -1 ++ strings -a /lib/modules/4.15.7/kernel/drivers/video/nvidia-uvm.ko ++ grep clang clang version 5.0.0-3 (tags/RELEASE_500/final) $ eclang /lib/modules/4.15.7/kernel/drivers/video/nvidia-modeset.ko | head -1 ++ strings -a /lib/modules/4.15.7/kernel/drivers/video/nvidia-modeset.ko ++ grep clang clang version 5.0.0-3 (tags/RELEASE_500/final) # DMI specific hardware information - verifies and confirms the physical hardware used # instead of QEMU or any other virtual platform for running clang-built kernel and # Nvidia 390.25 driver. # $ sudo dmidecode -t bios | grep Vendor Vendor: LENOVO $ sudo dmidecode -t system | grep "Manufacturer:\|Version" Manufacturer: LENOVO Version: Lenovo Y50-70 Touch $ sudo dmidecode -t processor | grep Version Version: Intel(R) Core(TM) i7-4710HQ CPU @ 2.50GHz

на хост в Ubuntu x86_64 с 17.10 с лязгом построен ядре Linux 4.15.7 и clang-причине драйвер nvidia geforce для видеокарты GTX 860М 390.25 вещно - моя успешных исследований и опыт : для всех подробные журналы (на каждом этапе), вы можете прочитать мой ответ для кода llvm-clang в/ядра Linux вопрос здесь :строение ядра Linux с помощью llvm/clang в.

Примечание 2: предупреждение лязгом более педантичны, чем GCC как я видел. Но на данный момент, чтобы получить драйвера ядра/Видеокарта NVIDIA и работает, я игнорировал их, чтобы увидеть, если они не серьезные (пока их нет).

Примечание 2: ради универсальности, я повторил выше с последующими версиями ядра (4.15.10 и [с f15], что последний по состоянию на середину марта 2018 года) и последние графические драйвера nvidia geforce для видеокарты GTX v390.42 что последний по состоянию на середину марта 2018 года - оба они построены с использованием clang как ранее после обновления ядра 4.15.11 код в прерывание работы тик логикой и видео инструкция по обновлению логики, как я сделал выше для 4.15.7, и, наконец, установлен на моей системе оборудования напрямую (не в qemu/KVM в экспериментах это время, так как ранее 4.15.7 ядра пришли успешно проработав на прерывание работы тик логикой и видео инструкция по обновлению логики). С этим, опять же, в Ubuntu x86_64 с 17.10 удачно подошел на мой аппаратная система, на clang-причине ядра 4.15.11 и clang-построен последний драйвер nvidia v390.42, как это делали в предыдущем случае 4.15.7 ядра и драйвера v390 от NVIDIA.25.

на хост в Ubuntu x86_64 с 17.10 с лязгом построен ядре Linux 4.15.7 и clang-причине драйвер nvidia geforce для видеокарты GTX 860М 390.25 вещно - моя успешных исследований и опыт :

$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 17.10 Release: 17.10 Codename: artful $ cat /proc/version Linux version 4.15.11 (exp@exp) (clang version 5.0.0-3 (tags/RELEASE_500/final)) #2 SMP Tue Mar 20 05:37:06 PDT 2018 $ eclang /lib/modules/4.15.11/build/vmlinux | grep Linux ++ strings -a /lib/modules/4.15.11/build/vmlinux ++ grep clang Linux version 4.15.11 (exp@exp) (clang version 5.0.0-3 (tags/RELEASE_500/final)) #2 SMP Tue Mar 20 05:37:06 PDT 2018 $ sudo dmidecode -t system | grep "Manufacturer:\|Version" Manufacturer: LENOVO Version: Lenovo Y50-70 Touch $ dmesg | grep NVIDIA [ 19.491452] nvidia: module license 'NVIDIA' taints kernel. [ 19.499360] NVRM: loading NVIDIA UNIX x86_64 Kernel Module 390.42 Sat Mar 3 04:10:22 PST 2018 (using threaded interrupts) [ 19.542830] nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms 390.42 Sat Mar 3 03:30:48 PST 2018 $ nvidia-smi Tue Mar 20 22:15:00 2018 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 390.42 Driver Version: 390.42 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 GeForce GTX 860M Off | 00000000:01:00.0 Off | N/A | | N/A 52C P8 N/A / N/A | 451MiB / 4046MiB | 0% Default | +-------------------------------+----------------------+----------------------+ $ glxinfo | grep NVIDIA server glx vendor string: NVIDIA Corporation client glx vendor string: NVIDIA Corporation OpenGL vendor string: NVIDIA Corporation OpenGL core profile version string: 4.5.0 NVIDIA 390.42 OpenGL core profile shading language version string: 4.50 NVIDIA OpenGL version string: 4.6.0 NVIDIA 390.42 OpenGL shading language version string: 4.60 NVIDIA OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 390.42 $ lsmod | grep nv nvidia_uvm 815104 0 nvidia_drm 24576 2 nvidia_modeset 1105920 5 nvidia_drm nvidia 14368768 334 nvidia_uvm,nvidia_modeset ipmi_msghandler 61440 2 nvidia,ipmi_devintf drm 454656 6 nvidia_drm,i915,drm_kms_helper $ ~/nvidia-driver-compiler.sh ++ head -1 +++ uname -r ++ eclang /lib/modules/4.15.11/kernel/drivers/video/nvidia.ko +++ strings -a /lib/modules/4.15.11/kernel/drivers/video/nvidia.ko +++ grep clang clang version 5.0.0-3 (tags/RELEASE_500/final) ++ head -1 +++ uname -r ++ eclang /lib/modules/4.15.11/kernel/drivers/video/nvidia-drm.ko +++ strings -a /lib/modules/4.15.11/kernel/drivers/video/nvidia-drm.ko +++ grep clang clang version 5.0.0-3 (tags/RELEASE_500/final) +++ uname -r ++ head -1 ++ eclang /lib/modules/4.15.11/kernel/drivers/video/nvidia-modeset.ko +++ strings -a /lib/modules/4.15.11/kernel/drivers/video/nvidia-modeset.ko +++ grep clang clang version 5.0.0-3 (tags/RELEASE_500/final) +++ uname -r ++ head -1 ++ eclang /lib/modules/4.15.11/kernel/drivers/video/nvidia-uvm.ko +++ strings -a /lib/modules/4.15.11/kernel/drivers/video/nvidia-uvm.ko +++ grep clang clang version 5.0.0-3 (tags/RELEASE_500/final) $ ~/nvidia_driver_modules_version.sh ++ grep '^version=' +++ uname -r ++ strings -a /lib/modules/4.15.11/kernel/drivers/video/nvidia.ko version=390.42 ++ grep '^version=' +++ uname -r ++ strings -a /lib/modules/4.15.11/kernel/drivers/video/nvidia-drm.ko version=390.42 ++ grep '^version=' +++ uname -r ++ strings -a /lib/modules/4.15.11/kernel/drivers/video/nvidia-uvm.ko +++ uname -r ++ grep '^version=' ++ strings -a /lib/modules/4.15.11/kernel/drivers/video/nvidia-modeset.ko version=390.42
1
ответ дан 23 July 2018 в 20:13
  • 1
    Рагхаван, я всегда оставляю комментарий перед тем, как я делаю это, так что вот: 1. TL; DR 2. много лишней информации: Пожалуйста, не говорите пользователям, почему вы сделали это таким образом (за исключением, может быть, одной строки внизу) ни то, что результат, просто , что вы сделали с точными командами. Пожалуйста, отредактируйте как ваши Q, так и A (попробовали пойти на ваш Q, чтобы на самом деле сделать это Q, но не удалять 80% вашего «ответа»), поскольку на самом деле не хватит на самом деле сделайте это ответом. Пожалуйста, просмотрите и напишите мне @Fabby, и я вернусь и вернусь. – Fabby 7 April 2018 в 22:26
  • 2
    или запустите chat и пингуйте меня там ... – Fabby 7 April 2018 в 22:30

Другие вопросы по тегам:

Похожие вопросы: