Debian'a Nvidia sürücü nasıl kurulur?

Durum
Mesaj gönderimine kapalı.
Kesinlikle her zaman olduğu gibi başka bir APT bugı. Sisteme sürücüden önce kurulmuş paketlerden bir tanesinin sistemde bozulmaya sebep olması. APT'nin fine grained dependency resolution yapamamasının ve son derece basit bir paket yöneticisi olmasının sonucu. Oracle, Gentoo, Red Hat, Fedora, Cent OS gibi dağıtımlarda kesinlikle karşılaşılmayan problemlerden bir tanesi. Nerden mi biliyorum autoremove attığımızda birbiriyle uyumsuz 418, 390, 450 gibi farklı NVIDIA modüllerinin kaldırıldığını gördüm bu modüllerin bir arada bulunması ismini saydığım dağıtımlarda mümkün değil, izin vermezler çünkü. APT her zamanki bozuk APT, gerçekten güvenli olsaydı öncelikle bu birbiriyle uyumsuz modüller kurulurken bir uyarı verirdi. Güvenlikle uzaktan yakından alakası yok bunun.
 
390 farklı bir bir legacy sürücüsü serisidir, Debian'da sürücü modülü bile farklı eklenir DKMS ile. Autoremove komutu ile paketler kaldırılırken, eski çekirdeklerdeki sürücü modüllerinin kaldırılmasını görmüşsünüz. Nvidia-418 ve Nvidia-450 aynı paketin (nvidia-driver) farklı sürümleridir. Yani Nvidia-418 kurulu olan bir sisteme, Backports deposundan Nvidia-450 kurulurken herhangi bir sorun yaşatmaz. VLC'nin x sürümünün üstüne x+1 sürümün kurulması gibidir.

Ayrıca paketleri apt-get purge --autoremove paket-adı şablonu ile kaldırırsanız, tüm bağımlılıkları ile kaldırılır. Mesela nvidia-legacy-390xx-driver sürücüsünü aşağıdaki komutla kaldırsaydınız, hiç bir sorun yaşamazdınız.

Kod:
sudo apt purge --autoremove nvidia-legacy-390xx-driver

LMDE'ye Nvidia-390 sürücüsünü kurdum, sonra kaldırıp 418 sürümü kurdum (LMDE deposunda Nvidia-450 olduğu için paket=sürüm-no komutu ile kurudum.) Sonra sistemi güncelledim, depoda olan 450 sürüm sorunsuzca bunun üstüne yüklendi. Mesa'yı da Backports'tan güncelledim. Hiç bir sorun da yaşanmadı.

Xorg güncel sürümünü de (1.20.10) Testing deposundaki kaynaktan indirip LMDE'de paketleyip, yerel depo oluşturup rahatça güncelledim. Şu an tıkır tıkır çalışıyor. Paketleme dahil tüm düzenlemeler 1 saatimi almadı. Yani yapabilen işini kolayca yapıyor.
 
390 farklı bir bir legacy sürücüsü serisidir, Debian'da sürücü modülü bile farklı eklenir DKMS ile. Autoremove komutu ile paketler kaldırılırken, eski çekirdeklerdeki sürücü modüllerinin kaldırılmasını görmüşsünüz. Nvidia-418 ve Nvidia-450 aynı paketin (nvidia-driver) farklı sürümleridir. Yani Nvidia-418 kurulu olan bir sisteme, Backports deposundan Nvidia-450 kurulurken herhangi bir sorun yaşatmaz. VLC'nin x sürümünün üstüne x+1 sürümün kurulması gibidir.

Ayrıca paketleri apt-get purge --autoremove paket-adı şablonu ile kaldırırsanız, tüm bağımlılıkları ile kaldırılır. Mesela nvidia-legacy-390xx-driver sürücüsünü aşağıdaki komutla kaldırsaydınız, hiç bir sorun yaşamazdınız.

Kod:
sudo apt purge --autoremove nvidia-legacy-390xx-driver

LMDE'ye Nvidia-390 sürücüsünü kurdum, sonra kaldırıp 418 sürümü kurdum (LMDE deposunda Nvidia-450 olduğu için paket=sürüm-no komutu ile kurudum.) Sonra sistemi güncelledim, depoda olan 450 sürüm sorunsuzca bunun üstüne yüklendi. Mesa'yı da Backports'tan güncelledim. Hiç bir sorun da yaşanmadı.

Xorg güncel sürümünü de (1.20.10) Testing deposundaki kaynaktan indirip LMDE'de paketleyip, yerel depo oluşturup rahatça güncelledim. Şu an tıkır tıkır çalışıyor. Paketleme dahil tüm düzenlemeler 1 saatimi almadı. Yani yapabilen işini kolayca yapıyor.
Deneyeceğim.
 
390 farklı bir bir legacy sürücüsü serisidir, Debian'da sürücü modülü bile farklı eklenir DKMS ile. Autoremove komutu ile paketler kaldırılırken, eski çekirdeklerdeki sürücü modüllerinin kaldırılmasını görmüşsünüz. NVIDIA-418 ve NVIDIA-450 aynı paketin (NVIDIA-driver) farklı sürümleridir. Yani NVIDIA-418 kurulu olan bir sisteme, Backports deposundan NVIDIA-450 kurulurken herhangi bir sorun yaşatmaz. VLC'nin X sürümünün üstüne X+1 sürümün kurulması gibidir.

Ayrıca paketleri apt-get purge --autoremove paket-adı şablonu ile kaldırırsanız, tüm bağımlılıkları ile kaldırılır. Mesela NVIDIA-lEGACY-390XX-driver sürücüsünü aşağıdaki komutla kaldırsaydınız, hiçbir sorun yaşamazdınız.

Kod:
sudo apt purge --autoremove nvidia-legacy-390xx-driver

LMDE'ye NVIDIA-390 sürücüsünü kurdum, sonra kaldırıp 418 sürümü kurdum (LMDE deposunda NVIDIA-450 olduğu için paket=sürüm-no komutu ile kurudum.) Sonra sistemi güncelledim, depoda olan 450 sürüm sorunsuzca bunun üstüne yüklendi. Mesa'yı da Backports'tan güncelledim. Hiçbir sorun da yaşanmadı.

Xorg güncel sürümünü de (1.20.10) Testing deposundaki kaynaktan indirip LMDE'de paketleyip, yerel depo oluşturup rahatça güncelledim. Şu an tıkır tıkır çalışıyor. Paketleme dahil tüm düzenlemeler 1 saatimi almadı. Yani yapabilen işini kolayca yapıyor.

NVIDIA ile ilgili her şeyi purgeledim ve birbirini bloklayan versiyonlar kaldırıldı. Size fine grained dependency resolution örneği göstereyim. 450.46 sürücüsünün üstüne 390.138 kurmaya çalıştığınızda bakın Gentoo nasıl bir tepki veriyor. Gördüğünüz gibi iki sürücüyü aynı sistemde bulunduramıyorsunuz çünkü modülleri çakışıyor sisteminizin sağlığı bozulmasın diye portage buna izin vermiyor. Ama APT kardeşimiz kurduğu paketin hesabını tutamayacak kadar beceriksiz bir paket yöneticisi olduğu için birbiriyle çakışan rastgele modüllerin aynı anda bir sistemde bulunmasına izin veriyor.

Screenshot from 2020-12-31 14-15-17.png
 
NVIDIA ile ilgili her şeyi purgeledim ve birbirini bloklayan versiyonlar kaldırıldı. Size fine grained dependency resolution örneği göstereyim. 450.46 sürücüsünün üstüne 390.138 kurmaya çalıştığınızda bakın Gentoo nasıl bir tepki veriyor. Gördüğünüz gibi iki sürücüyü aynı sistemde bulunduramıyorsunuz çünkü modülleri çakışıyor sisteminizin sağlığı bozulmasın diye portage buna izin vermiyor. Ama apt kardeşimiz kurduğu paketin hesabını tutamayacak kadar beceriksiz bir paket yöneticisi olduğu için birbiriyle çakışan rastgele modüllerin aynı anda bir sistemde bulunmasına izin veriyor.

Eki Görüntüle 809891

Aynı şey Fedora'da da oluyordu galiba.
 
Debian'da bir paketin control dosyasındaki Replaces kısmına çakışan paketler eklenirse elbetteki diğer paket kaldırılır. Diğer dağıtımların paket yöneticilerinde de işlev benzer şekilde işliyordur. Yani iş paket bakımcısında bitiyor. Debian'da Nvidia sürücüsü yüklenmesi öncesinde genellikle nvidia-detect kullanıldığı için böyle ek yapmamış olabilirler.

Biraz önce normal Linux Mint'te Nvidia-390 sürücüsü kurup, ardından Nvidia-450 sürücüsü kurdum. Burada paket bakımcıları ilgili işlemi yapmışlar ve otomatik olarak olarak Nvidia-390 kaldırılıp yerine Nvidia-450 sürücüsü kuruldu.

apt-nvidia-390-450.png



Debian tabanında nvidia-legacy-390 sürücüsü farklı bir modül olarak derlenerek çekirdeğe eklenir, nvidia-driver ile gelen sürücü ise doğrudan nvidia modülü derlenerek çekirdeğe eklenir. Bu sebeple teknik olarak bir çakışma olmaz, hatta istenirse bu sürücüler arasında basit bir xorg.conf düzenlemesi ile geçiş yapılabilir. Debian'da Nvidia-418 sürücü ile Nvidia-450 sürücüsü aynı paketin farklı versiyonlarıdır. Yani biri kurulurken diğeri otomatik olarak kaldırılır.

Debian 10 tabanında yaşadığınız senoryanın tamamını denedim ve hiç bir paket çakışması yaşamadım. Hatta Nvidia-390 sürücüsü kuruluyken, Nvidia-450 sürücüsü kurulumunda bile paket çakışması sorunu yaşatmadı. Ama Nvidia-390 sürücü ve current sürücüleri, paket bakımcıları tarafından Replaces kısmına eklenmeli. Neden eklenmediği ile ilgili belki makul bir açıklama vardır, onlar da "nvidia-detect zaten hangi sürücünün kurulması gerektiğini gösteriyor, bu sebeple buna gerek yok" şeklinde düşünmüş olabilirler.

Yani apt ile ilgili bahsettiğin hususlar kısaca gerçek değil, sadece sizin algılamak istediğiniz bir durum gibi görünüyor.
 
Debian'da bir paketin Control dosyasındaki Replaces kısmına çakışan paketler eklenirse elbetteki diğer paket kaldırılır. Diğer dağıtımların paket yöneticilerinde de işlev benzer şekilde işliyordur. Yani iş paket bakımcısında bitiyor. Debian'da NVIDIA sürücüsü yüklenmesi öncesinde genellikle NVIDIA-detect kullanıldığı için böyle ek yapmamış olabilirler.

Biraz önce normal Linux Mint'te NVIDIA-390 sürücüsü kurup, ardından NVIDIA-450 sürücüsü kurdum. Burada paket bakımcıları ilgili işlemi yapmışlar ve otomatik olarak olarak NVIDIA-390 kaldırılıp yerine NVIDIA-450 sürücüsü kuruldu.

Eki Görüntüle 810445

Debian tabanında NVIDIA-lEGACY-390 sürücüsü farklı bir modül olarak derlenerek çekirdeğe eklenir, NVIDIA-driver ile gelen sürücü ise doğrudan NVIDIA modülü derlenerek çekirdeğe eklenir. Bu sebeple teknik olarak bir çakışma olmaz, hatta istenirse bu sürücüler arasında basit bir xorg. Conf düzenlemesi ile geçiş yapılabilir. Debian'da NVIDIA-418 sürücü ile NVIDIA-450 sürücüsü aynı paketin farklı versiyonlarıdır. Yani biri kurulurken diğeri otomatik olarak kaldırılır.

Debian 10 tabanında yaşadığınız senoryanın tamamını denedim ve hiçbir paket çakışması yaşamadım. Hatta NVIDIA-390 sürücüsü kuruluyken, NVIDIA-450 sürücüsü kurulumunda bile paket çakışması sorunu yaşatmadı. Ama NVIDIA-390 sürücü ve current sürücüleri, paket bakımcıları tarafından Replaces kısmına eklenmeli. Neden eklenmediği ile ilgili belki makul bir açıklama vardır, onlar da "NVIDIA-detect zaten hangi sürücünün kurulması gerektiğini gösteriyor, bu sebeple buna gerek yok" şeklinde düşünmüş olabilirler.

Yani apt ile ilgili bahsettiğin hususlar kısaca gerçek değil, sadece sizin algılamak istediğiniz bir durum gibi görünüyor.

NVIDIA sürücüsü tek kernelde iki farklı sürücünün kullanılmasına izin vermez. Eğer apt buna izin verirse iki sürücü ve bağlı paketler aynı yere kopyalanır yani üst üste, bu başlı başına bir facia zaten. Bir de neden autoremove kullanıyoruz? İki sürücüyü kurup basit bir xorg değişkeniyle aynı anda kullandığını görebilir miyiz?
İşin güzel yanı bana yıllarca kullandığım bir paket yöneticisini anlatıyorsun. Bozukluk APT'nin doğasında var. Gentoo için de aynısı söylenir ancak ne yaptığını bilirsen tereyağından kıl çekmek kadar kolaydır Debug işlemi. Anca şöyle olmuştur, 12 yıl içinde APT biraz düzeltilmiştir. Hala yeterince düzelmemiş orası kesin.
 
NVIDIA sürücüsü tek kernelde iki farklı sürücünün kullanılmasına izin vermez. Eğer apt buna izin verirse iki sürücü ve bağlı paketler aynı yere kopyalanır yani üst üste, bu başlı başına bir facia zaten. Bir de neden autoremove kullanıyoruz?

Debian'da Nvidia-390 sürücüsü Nvidia-450 sürücüsünü bir arada kurabilirsin. Debian'da update-alternatives diye bir araç var, bununla istediğin kurulmuş sürücülerden istediğin sürücüyü seçebilirsin. Sonra X'i yeniden başlatırsın. Nvidia-390 sürücüsünün farklı bir modül olarak derlendiğini zaten söylemiştim, geriye kalanı update-alternatives halleder. Update-alternatives öncelik desteğine de sahiptir, yani Nvidia-450'nin yani nvidia-drivers paketindeki sürücünün önceliği daha yüksek olduğu için, otomatik olarak bu varsayılan olur.

Autoremoves paket ile kurulan tüm bağımlılıkları temizler, Gentoo'daki deep-clean bunun karşılığı sanırım.

Update-alternatives gibi bir özelliğe, başka hiçbir dağıtımda rastlamadım. Bununla sistemdeki birçok ögeyi değiştirebilirsin, Java sürümünden, sistem genelinde kullanacağın imlece kadar...
 
Debian'da NVIDIA-390 sürücüsü NVIDIA-450 sürücüsünü bir arada kurabilirsin. Debian'da Update-alternatives diye bir araç var, bununla istediğin kurulmuş sürücülerden istediğin sürücüyü seçebilirsin. Sonra X'i yeniden başlatırsın. NVIDIA-390 sürücüsünün farklı bir modül olarak derlendiğini zaten söylemiştim, geriye kalanı Update-alternatives halleder. Update-alternatives öncelik desteğine de sahiptir, yani NVIDIA-450'nin yani NVIDIA-drivers paketindeki sürücünün önceliği daha yüksek olduğu için, otomatik olarak bu varsayılan olur.

Autoremoves paket ile kurulan tüm bağımlılıkları temizler, Gentoo'daki Deep-clean bunun karşılığı sanırım.

Update-alternatives gibi bir özelliğe, başka hiçbir dağıtımda rastlamadım. Bununla sistemdeki birçok ögeyi değiştirebilirsin, Java sürümünden, sistem genelinde kullanacağın imlece kadar...

Peki öyle olsun hocam. Ayrıca bunun için Gentoo'da slotting sistemi var zaten. İster clang kullanırsın ister GCC ister GCC10 kullanırsın veya 11, onlarca Wine sürümü kurabilirsin eselect-Wine ile aralarından istediğini aktive edebilirsin falan. Innovatiflik konusunda APT son geçeceğim paket yöneticilerinden biri açıkcası. Bu arada Update-alternatives ile çift NVIDIA sürücüsü nasıl kuruluyor bir how-to sitesine yönlendirebilir misin?
 
Durum
Mesaj gönderimine kapalı.

Geri
Yukarı