1 de set. de 2010

Video RAM info - Verificando a quantidade de memória de vídeo (atualizado em 21/03/2011)

Infelizmente, ao contrário do Windows, o Linux não tem jeito fácil de ver a quantidade de memória de vídeo. E acredite: comandos como o "lspci -vvv" nem sempre exibem a informação correta.

Um exemplo: tenho 256 MB de RAM de vídeo no meu notebook, mas o resultado do comando "lspci | grep VGA | awk '{ print $1 }' | xargs lspci -v -s | grep prefetchable" diz o seguinte:
Memory at a0000000 (32-bit, prefetchable) [size=512M]
Memory at c8000000 (32-bit, non-prefetchable) [size=16M]

Assim, a visualização do arquivo de log do X Window System (/var/log/Xorg.0.log) parece dar a única resposta confiável. E o comando abaixo talvez seja a forma mais simples e eficiente de verificar a quantidade de memória de vídeo disponível:
grep -i ram /var/log/Xorg.0.log; grep -i mem /var/log/Xorg.0.log

Apenas para ilustrar, vejamos as duas situações abaixo, onde os dados sobre a memória de vídeo estão destacados em negrito.

1 - Um usuário que possua um adaptador de vídeo VIA teria a seguinte resposta:
$ grep -i ram /var/log/Xorg.0.log; grep -i mem /var/log/Xorg.0.log
(II) FBDEV: driver for framebuffer: fbdev
(==) CHROME(0): Depth 24, (--) framebuffer bpp 32
(--) CHROME(0): Probed amount of VideoRAM = 262144 kB
(==) CHROME(0): Shadow framebuffer is disabled.
(==) CHROME(0): Will not impose a limit on video RAM reserved for DRI.
(II) Loading sub module "ramdac"
(II) LoadModule: "ramdac"
(II) Module "ramdac" already built-in
(--) CHROME(0): mapping framebuffer @ 0xa0000000 with size 0x10000000
(--) CHROME(0): Frame buffer start: 0x978d6000, free start: 0x3e8000 end: 0x10000000
(II) CHROME(0): VIAAdjustFrame 0x0
(II) CHROME(0): VIAAdjustFrame 0x0
(II) CHROME(0): Frame Buffer From (0,0) To (1280,3200)
(II) Initializing built-in extension XINERAMA
(--) PCI:*(0:1:0:0) 1106:3371:1509:1e30 VIA Technologies, Inc. CN896/VN896/P4M900 [Chrome 9 HC] rev 1, Mem @ 0xa0000000/536870912, 0xc8000000/16777216
(==) CHROME(0): Will try to allocate 32768 kB of AGP memory.
(II) CHROME(0): Detected MemClk 8
(II) CHROME(0): ViaGetMemoryBandwidth. Memory type: 8
(II) CHROME(0): VIAUnmapMem
(II) CHROME(0): Using 2400 lines for offscreen memory.

2 - Já um usuário que possua um adaptador de vídeo NVIDIA obteria os seguintes dados:
grep -i ram /var/log/Xorg.0.log; grep -i mem /var/log/Xorg.0.log
(II) Loading sub module "ramdac"
(II) LoadModule: "ramdac"
(II) Module "ramdac" already built-in
(**) NVIDIA(0): Depth 24, (--) framebuffer bpp 32
(II) Loading extension XINERAMA
(II) Initializing built-in extension XINERAMA
(--) PCI:*(0:5:0:0) 10de:0402:10de:0439 nVidia Corporation G84 [GeForce 8600 GT] rev 161, Mem @ 0xfa000000/16777216, 0xd0000000/268435456, 0xf8000000/33554432, I/O @ 0x00009c00/128, BIOS @ 0x????????/131072
(--) Aug 30 19:19:56 NVIDIA(0): Memory: 524288 kBytes
(II) Aug 30 19:19:56 NVIDIA: Using 768.00 MB of virtual memory for indirect memory access.
(==) NVIDIA(0): Disabling shared memory pixmaps

Com o objetivo de exibir essa informação de forma mais amigável, criamos um script com duas versões, uma em modo texto e outra com interface gráfica. Esperamos que o script suporte, pelo menos, os chipsets/adaptadores de vídeo NVIDIA, INTEL, ATI, VIA e SIS (de acordo com testes efetuados nas distribuições Debian e Ubuntu).

UPDATE 21/03/2011: Video RAM info 1.4

Link para DOWNLOAD:


ou:


O Video RAM info é um software livre; você pode redistribui-lo e/ou modifica-lo dentro dos termos da Licença Pública Geral GNU.

Caso a informação sobre a memória de vídeo não seja exibida, ou seja exibida de forma incorreta, copie a saída do comando lspci e o conteúdo do arquivo /var/log/Xorg.0.log e envie para linuxlike.blogspot@gmail.com. Assim poderemos efetuar as devidas adaptações e/ou correções.

Referência:
How-to view the amount of Video RAM on Linux

2 comentários

Anônimo disse...

lspci | grep VGA | awk '{ print $1 }' | xargs lspci -v -s | grep prefetchable

Rodrigo Miguel disse...

Re: Anônimo acima

Como já disse no post, o comando lspci nem sempre exibe a informação correta.

Tenho 256 MB de RAM de vídeo, e veja o resultado do comando:

lynx@lynx-laptop:~$ lspci | grep VGA | awk '{ print $1 }' | xargs lspci -v -s | grep prefetchable
Memory at a0000000 (32-bit, prefetchable) [size=512M]
Memory at c8000000 (32-bit, non-prefetchable) [size=16M]