Çerçeve oluşturma aygıtı yok: nasıl etkinleştirilir?


23

Debian Squeeze ile PCMCIA tuner kartının başsız ev sunucumda çalışmasını sağlamaya çalışıyorum. Şimdi, yakalamak için doğru komut satırını bulma konusunda büyük sorun yaşıyorum, videoyu VLC kullanarak ağa aktarıyordum, adım adım ilerlemeye ve ilk önce yerel çıktıda çalışmaya karar verdim.

Sorunun geldiği yer burası: ekli ekranda grafik görüntülemek için erişilebilecek hiçbir çerçeve oluşturucu aygıt (/ dev / fb0) yok! Gerçekten de açılışta Linux penguen görüntüsünün olmadığını farkettim (ekran takılıyken daha önce dikkat etmedi, ancak her zaman kapalı, ve yine de bilgisayar her zaman açık).

Linux grafiklerine pek aşina olmadığım için şunu bilmek istiyorum:

  • Bu benim özel donanımımla mı ilgili (aşağıya bakınız)? Yoksa Debian Squeeze / a çekirdek sürümü / ... 'e özgü mü?
  • Manuel olarak kurmak / yüklemek için gereken bazı sürücüler var mı?

Şimdi bazı genel bilgiler:

  • Bilgisayarda özel bir grafik kartı yok, ancak ana kartta (Gigabyte G31M-ES2L) yerleşik bir grafik yonga seti (Intel G31 Express) var
  • Tam özellikli bir X sunucusu kurmak istemiyorum, sadece bu test için bir framebuffer aygıtı var.

Konuyla ilgili herhangi bir fikir / yorumunuz var mı?


1
/dev/fb0Ayağa kalktıktan sonra , lütfen cevabımı kabul ettiğinizden emin olun. Nadiren daha az yaygın bir konuda gerçek deneyime sahip insanlar, bir HQ cevabı vermek için etrafında olsun. UNIX-SE'de var olan, nispeten nadir bir konudur, bu yüzden daha az uzman vardır.
JM Becker

Yanıtlar:


36

Linux FB ile daha önce çalışmış olduğunuz sorunuzu ele alabilirim.

Linux FB'sini Nasıl Yapar?

  1. Öncelikle, çekirdeğinizde, donanımınıza karşılık gelen FrameBuffer desteğine ihtiyacınız var. Modern dağıtımların çoğu çekirdek modülleri aracılığıyla desteklenir. Dağıtımınız bir önyükleme logosu ile önceden yapılandırılmış olarak gelirse farketmez, birini kullanmam ve FB desteği kullanmam.

  2. Özel bir grafik kartına sahip olmanız farketmez, Entegre Donanım Çerçeve Desteği desteklendiği sürece çalışacaktır.

  3. FrameBuffer'a sahip olmanın en cazip yanı olan X'e ihtiyacınız yok. Bazı insanlar daha iyisini bilmiyor, bu yüzden yanlış anlamalarını gidermek için bir çeşit X formunu savundu.

  4. Birçok insanın yanlış olarak kabul ettiği doğrudan FB ile çalışmak zorunda değilsiniz. FrameBuffer ile geliştirmek için çok harika bir kütüphane, DirectFBhatta bazı temel hızlandırma desteğine sahip olmasıdır. Tam özellikli bir FB tabanlı projeye (Web Tarayıcı, Oyun, GUI ...) başlıyorsanız, en azından her zaman kontrol etmenizi öneririm.

Donanımınıza Özel

  1. Vesa Generic FrameBuffer'ı kullanın, modülleri çağırılır vesafb. Kullanabiliyorsanız, komutlarla yükleyebilirsiniz modprobe vesafb. birçok dağıtım onu ​​devre dışı bırakarak önceden yapılandırır, kontrol edebilirsiniz /etc/modprobe.d/. Bir veya diğer kara liste dosyasında , a blacklist vesafbile yorumlanması gerekebilir .#blacklist-framebuffer.conf

  2. En iyi seçenek, donanıma özgü bir KMS sürücüsüdür. Intel için ana olanı Intel GMA'dır, modüllerinin adının ne olduğundan emin değil. Bu konuyu dağıtım belgelerinizden okumanız gerekecektir. Bu en iyi performans gösteren FB seçeneği, mümkünse ilk önce KMS'ye giderdim.

  3. Eski donanım özel FB sürücüleri kullanın, bazen buggy gibi tavsiye edilmez. Son çare gerekli olmadıkça, bu seçeneği önleyeceğim.

Bunun tüm sorularınızı kapsadığını ve bu /dev/fb0cihazın kullanıma sunulması için gerekli bilgileri sağladığını düşünüyorum . Daha spesifik olan her şey dağıtım detaylarına ihtiyaç duyar ve eğer biraz tecrübeli iseniz, RTFM ihtiyacınız olan her şey olmalıdır. (bunu okuduktan sonra).

Umarım yardım etmişimdir, şanslısınız konularımdan birini soruyorsunuz! Bu herkes UNIX-SE'deki ihmal edilen bir konudur, çünkü herkes (bilerek) Linux FrameBuffer'ı kullanmaz.

NOT: UvesaFB veya VesaFB?

Sen okuma kullanıcıların kullandığı olabilir uvesafbüzerinde vesafbdaha iyi bir performans vardı. Bu WAS genellikle doğrudur, ancak modern Donanım ile modern bir dağıtımda değil. Grafik Donanımınız korumalı modu VESA'yı destekliyorsa (VESA> = 2.0) ve biraz yeni bir çekirdeğiniz varsa vesafb, şimdi daha iyi bir seçimdir.


1
Cevabınız için çok teşekkürler !!! Derinlik ve kalite açısından beklediğimden çok daha fazlası !! Sizinkine benzer postalar / cevaplar bulabildiğim için gerçekten minnettarım, çünkü sadece belirli konuya çözüm üretmiyorlar, aynı zamanda daha önemlisi aynı veya ilgili durumlar için başkalarına yardımcı olabilecek içsel çalışma hakkında genel bilgi veriyorlar !!
Federico

1
Sorunumla ilgili olarak, girdilerinize dayanarak inceleyeceğim ve tatmin edici sonuçlar elde ettiğimde buraya rapor edeceğim ...
Federico

3
Bu yüzden denedim modprobe vesa(buradaki soruyu sormadan önce denediğimi hatırladım) modülün sistemimde bulunmadığından başarısız oldu ( FATAL: Module vesafb not found.) -> bunun donanımımla mı yoksa Linux dağıtımımla mı ilgili olduğunu anlamak zorunda kalacak (Debian Squeeze) ). İyi haber şu ki modprobe uvesafb, bu /dev/fb0cihaz çalışıyor ve çalışıyor . Ancak, şimdi cevabınızı okuduğumda, işleri doğru şekilde ayarlamaya ve KMS sürücüsünü bulmaya çalışacağım ...
Federico

1
Yorumlarınızı oyladım, yardımcı olabileceğim için heyecanlıyım! Son yorumunuza değinmek için, çözüm 2 konusunda yanlıştırsınız. KESİNLİKLE X'siz KMS alabilirsiniz, ancak söylediğim gibi gerçek cevaplar tam anlamıyla çöpte boğuluyor. Doğru donanım modülünün adı denir inteldrmfb, biraz hızlı araştırma yaparak öğrendim. Her zaman ATI'ye sahibim, bu nedenle Intel GPU ile ilgili destek en güçlü noktam değil. Bunun için bir paket yüklemeniz gerekebilir , ancak öğrenebilir miyim bakarım.
JM Becker

1
Bekle, bir hata yaptım ... Intel netbook'umu kontrol ettim ve modül şu anda kontrol etti i915, ancak inteldrmfb olarak bilinen Framebuffer'ı yüklüyor. Paketi yüklemeniz libdrm-intel1veya yüklenip yüklenmediğini kontrol etmeniz gerekebilir .
JM Becker,

10

Sonunda benim sorunun çözümü buldum!

Her şeyden önce, katkıda bulunan herkese, özellikle TechZilla'ya ve uzun zaman önce vazgeçeceğimi düşündüğüm ayrıntılı açıklamalarına çok teşekkürler!

Temel olarak, yapılması gereken tek şey, çekirdek modül yüklendiğinde modeetting ( modeset=1) işlevini etkinleştirmeki915 . Bu her zamanki gibi yapılabilir:

  • GRUB'un çekirdek parametresi ile,
  • Bir yapılandırma dosyası aracılığıyla /etc/modprobe.d
  • veya komut satırında:

    # rmmod i915
    # modprobe i915 modeset=1
    

Aslında, içeren bir paket yüklerseniz xserver-xorg-video-intel, hiçbir şey yapmanız gerekmez . Ancak, birisi X'i yüklemek istemiyorsa (benim durumumdaki gibi), KMS otomatik olarak etkinleştirilmez, bu da FrameBuffer aygıtının neden oluşturulmadığını açıklar .../etc/modprobe.d/i915-kms.confoptions i915 modeset=1


2
Yine de cevabımı kabul etmelisin, çünkü "KMS'yi nasıl sıkıştırabilirim?" İlk sorunun değildi. Başlangıçtaki cevabını cevapladığımı ve sizi hedeflenen yola yönlendirdiğime inanıyorum. Diğer sebep ise, sadece 'diğer' insanlara cevaplar verdiğiniz için puan alırsınız. Kimse yaklaşmazsa, kendini ödüllendirmenin iyi olmasına rağmen, bu durumda bir anlam ifade etmiyor. Cevabınızı yine de haberi tutmaya devam etmeniz veya söz konusu bilgileri entegre etmeniz yeterlidir. Her iki durumda da iyi olurdu. gerçekten yardım etsem de yardımcı oldum! KMS çözümünü çalıştığınız için çok mutluyum, çünkü VESA'dan daha hızlı olması gerektiği gibi.
JM Becker

1
Ben sadece kabul ettiğin cevabı sana verdim! Burada biraz yeni olduğum için tam olarak ne yapacağımı bilemedim: Sorunu kendi içine, kabul ettiğin cevabın yorumuna koy ya da yeni bir cevap olarak gönder. Yeni bir kabul edilmiş cevap oluşturarak, insanların önce soruyu, daha sonra en üste çıkan cevabınızı ve daha sonra benim cevabımı, sonra da cevabımı okuyacağını düşündüm ...
Federico

Diğer cevap tam olmakla birlikte, bu kabul edilen cevap olmalıdır. Yazarın ne kadar yalın olduğuna bakılmaksızın.
Moog


-2

Bu, fantezi ve standart bir çekirdeğe sahip standart bir debian yüklemesi olduğu sürece, framebuffer aygıtını "vga = 792" (24 bit 1024 × 768 gibi) bir çekirdek parametresiyle kullanan bir işe VGA konsolu alabilmeniz gerekir. ). Çekirdeğin kullanımdan kaldırıldığı bildirir, ancak çalışır.

Çekirdek parametreleri için http://www.kernel.org/doc/Documentation/kernel-parameters.txt adresine bakınız . İlginçtir ki "vga =" paremeter, kullanımdan kaldırılmış olarak görünmüyor.

Değişiklikten sonra güncelleme grubunu (2) ve benzerlerini tekrar çalıştırdığınızdan emin olun.

Ayrıca, http://packages.debian.org/squeeze/svgalib-bin adresine bir göz atın, bu mükemmel değildir ancak konsolda bazı süslü grafik şeyler yapmanıza olanak sağlar.


3
Hayır, MANY koşullarında artık çalışmıyor. Bu her zaman bahsettiğim cevap aping. GRUB2 kullanıyorsanız, bu yalnızca eski 16yavaşlamalarla önyükleme yaparken çalışır . Ayrıca, en azından kabul ettiğiniz, pratik olarak, bu IT İLE YENİ AYARLAR YAPMAYIN demek anlamına gelir. vga=Donanım modüllerini devre dışı bıraktıysanız /etc/modprobe.d/ve birçok dağıtıcının önceden yapılandırılmış şekilde gelmesi durumunda, eski çöpler önyüklenemez .
JM Becker

Bir sonraki sorun, svgalib-bin '/ dev / fb0' olmayan bir kütüphanedir. Svgalib isteyen her şey, svgalib ile geliştirilmelidir. Bir FB'nin yerini almak için kullanılabilir, ancak FB'in yerine “kelimenin tam anlamıyla” gelmez. Aslında "yorum yapamam" derken, "FB'yi yüklemem, muhtemelen standart vga'ya geri dönecek" derken son bir hata yaptım
JM Becker

3
Bu gerçekten senin suçun bile değil, topluluğumuz korkunç modası geçmiş belgeleri bırakıyor. Herkes internet üzerinden eski cevapları alır ve hayvandaki modern anlayışı zorlaştırır. Hatta birçok kişi pes eder, çünkü asıl cevap yıllarca süren itiraz edilmiş çözümlerin altında yeni ve gömülüdür.
JM Becker

1
Sıkma kullanılırken "vga =" parametresi çalışır. Ben bunun yerine ne olduğunu araştırmak yerine, kolay ve hızlı bir çözüm olduğu için önerdim. kernel.org/doc/Documentation/kernel-parameters.txt , kullanımdan kaldırıldığı şekliyle "vga =" göstermiyor. Bildiğim tek neden çekirdek tarafından okunaklı bir şekilde okunabilir önyükleme iletisinden kaynaklanıyor ... karışıklık ortaya çıkıyor ... bu nedenle kernel.org'daki metne göre "vga =" itiraz edilmedi. Neye inanıyoruz?
aseq

1
Bu arada svgalib kullanma önerim, kullanıcının X kullanmak istememesinden kaynaklanıyor. Svgalib'in suçlularını anlıyorum, fakat daha az seçenek var.
aseq
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.