http://www.zago.eti.br/video-framebuffer.txt FAQ e dicas pra configurar video pro terminal, modo texto.... Use CTRL+F para refinar a pesquisa. Linha de: **************** separa mensagens ou tópicos. ******************************************************** Zago http://www.zago.eti.br/menu.html FAQ e artigos sobre Linux veja também FAQ sobre configuração da placa de video, Xfree .... http://www.zago.eti.br/video.txt http://www.zago.eti.br/video1.txt http://www.conectiva.com.br/cpub/pt/incConectiva/suporte/pr/x.geral.framebuffer.html 1.5. Como ativo o suporte a framebuffer do meu linux ? Tabela de cores para framebuffer. http://rampex.ihep.su/Linux/linux_howto/html/tutorials/mini/Vesafb-5.html tabela dos números que pode colocar no prompt do VGA http://br.tldp.org/projetos/howto/arquivos/html/Vesafb/Vesafb.pt_BR-286.html ******************************************************** Boot em modo texto - fonte normal e sem splash Grub tem diversas opções de configuração pra exibir as mensagens no boot, aquela barra de evulução que esconde as mensagens do sistema ficou muito bom, mas pode tornar um problemão quando nonitores antigos não suportam. Pra eliminar aquela barra de evolução, tirar a parte gráfica e exibir as mensagens em 80 colunas, ou seja, o modo tradicional exibindo as mensagens de boot, edite a linha do grub que deve estar mais ou menos assim: title = Conectiva Linux 10 (SMP) [Modo texto] kernel = (hd0,2)/boot/vmlinuz-2.6.5-63077clsmp root=/dev/hde2 vga=0x314 splash=silent 3 Remova esta parte: vga=0x314 splash=silent A linha editada deve ficar assim: title = Conectiva Linux 10 (SMP) [Modo texto] kernel = (hd0,2)/boot/vmlinuz-2.6.5-63077clsmp root=/dev/hde2 3 Neste formato não exibe a barra de evolução e qualquer monitor antigo exibe os caracteres normalmente... Muitas distros configuram o Grub pra exibir uma barra de evolução da inicialização em lugar de exibir os status de cada modulo ou serviço, embora pressionando a tecla ESCAPE exibe a inicialização no modo tradicional, mas pode tornar um problema em servidores que não tem teclado pra pressionar o ESCAPE. Também configuram pra exibir os caracteres em tamanho menor utilizando o recurso de framebuffer, isto não funciona com alguns monitores antigos, normalmente utilizo monitores VGA antigos em servidores pra visualizar mensagens na inicialização, eventualmente pra manutenção em modo texto, esta configuração não combina com estes monitores. Tive problema no CL10 com esta configuração quado tentei usar monitores antigos, mesmo inicializando em modo texto, a tela fica tremendo, fica impossivel ler as mensagens e usar o terminal. A solução foi remover "vga=0x314 splash=silent" na opção de boot. Sobre Grub veja no FAQ: http://www.zago.eti.br/grub.txt ******************************************************** De:  Manoel Pinho Para:  Sydney Cc:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)vga=788 no mandrake 9.1 Data:  Sat, 09 Aug 2003 15:28:17 -0300 Sydney escreveu:   Observei que o parametro vga=788 do grub.conf eh passado para o kernel no > mandrake 9.1, gostei do parametro por ter melhorado a aparencia do console e > gostaria de saber o que significa o valor 788 e quais outros valores que > podem ser usados neste caso. > De http://sdb.suse.de/en/sdb/html/wessels_fbdev_grub.html This value specifies the resolution and color depth used by the X server later.                    Resolution in pixels Color depth      | 640x480  800x600  1024x768 1280x1024 256        (8bit)|  769      771       773      775 32000     (15bit)|  784      787       790      793 65000     (16bit)|  785      788       791      794 16.7 Mill.(24bit)|  786      789       792      795 Eu uso no meu notebook vga=791 ******************************************************** De:  Carlos H. Responder-a:  carlows@unerj.br Para:  linux-br@bazar.conectiva.com.br Assunto:  Re: (linux-br)vga=788 no mandrake 9.1 Data:  Sat, 9 Aug 2003 18:33:02 -0300 Fala colega! Este parametro é utilizado pelo VESA framebuffer, que permite determinar o padrão de cores e resolução do terminal, eis abaixo alguns valores disponíveis: # VESA framebuffer console @ 1024x768x256 # vga = 773 # Normal VGA console # vga = normal # VESA framebuffer console @ 1024x768x64k # vga=791 # VESA framebuffer console @ 1024x768x32k # vga=790 # VESA framebuffer console @ 1024x768x256 # vga=773 # VESA framebuffer console @ 800x600x64k # vga=788 # VESA framebuffer console @ 800x600x32k  vga=787 # VESA framebuffer console @ 800x600x256 # vga=771 # VESA framebuffer console @ 640x480x64k # vga=785 # VESA framebuffer console @ 640x480x32k # vga=784 # VESA framebuffer console @ 640x480x256 # vga=769 Lembrando que isto causa um acréscimo na utilização de memória, sendo não recomendado para máquinas mais antigas ou com pouca RAM, se não for seu caso, divirta-se ;) []s Carlos H. > e gostaria de saber o que significa o valor 788 e quais outros valores que > podem ser usados neste caso. -- Carlows (carlows@unerj.br) ******************************************************** ******************************************************** De: Oseias Ferreira. Para: linux-br Assunto: Re: (linux-br) Resolução modo texto Data: 20 May 2003 02:11:53 -0300 Seu kernel deverá ter suporte ao VESA framebuffer. vga=771 800x600x256 ou vga=787 800x600x32k ou vga=788 0x600x64k no final da linha de comando para o boot, ou no lilo, ou outro gerenciador de boot que esteja utilizando. -- Oseias Ferreira. Em Mon, 12 May 2003 13:41:27 -0300 Maiquel escreveu: ! como faço para mudar a minha resoluçao em modo texto, quero operar em 800x600. ******************************************************** De: Gustavo Andreoni Vieira d'Almeida Para: Rafael Azenha Aquini , Márcio[Linux] , linux-br Assunto: Re: (linux-br) Resolução modo texto Data: 27 May 2003 23:04:25 -0300 Em Seg 26 Mai 2003 09:30, Rafael Azenha Aquini escreveu: > Vejamos alguns conceitos interessantes: > > 1°) Vamos diferenciar de modo básico o MODO TEXTO e o MODO GRÁFICO: > > - No modo texto, podemos apenas apresentar caracteres de um conjunto > predefinido (que inclui letras, números, sinais de pontuação e diversos > simbolos) mas não é possível um controle sobre pixels individuais da > tela. > > - No modo gráfico teremos o controle completo sobre cada pixel da tela. > O modo gráfico permite apresentar, ALÉM DO CONJUNTO PREDEFINIDO DE > CARACTERES, desenhos complexos e caracteres de texto com tamanhos e > formas diferentes do conjunto predefinido. Sem quere me meter na discussão mas utilize frame buffer... Para ativa-lo é simples caso use LILO nas configurações globais(no inicio do /etc/lilo.conf) coloque vga=791 e no Grub no /boo/grub/menu.lst coloque no final da linha do vmlinuz vga=791 seu modo texto fica com 1024x768 -- ******************************************************** > Onde devo ir no make menuconfig para habilitar frame buffer?? > > Nao encontrei essa entrada no meu kernel (kernel 2.2.14) Esta opção pertence ao "Console Drivers". Para fazer a configuração leia o arquivo /usr/src/linux/Documentation/svga.txt ******************************************************** SiS 6326. Aproveitando a deixa! Tive um melhor desempenho ativando o FrameBuffer Se vc tem suporte a FrameBuffer adicione uma das linhas abaixo no lilo.conf a linha que vc vai adicionar depende da sua resolução... # VESA framebuffer console @ 1024x768x64k vga = 791 # Normal VGA console # vga = normal # VESA framebuffer console @ 1024x768x64k # vga=791 # VESA framebuffer console @ 1024x768x32k # vga=790 # VESA framebuffer console @ 1024x768x256 # vga=773 # VESA framebuffer console @ 800x600x64k # vga=788 # VESA framebuffer console @ 800x600x32k # vga=787 # VESA framebuffer console @ 800x600x256 # vga=771 # VESA framebuffer console @ 640x480x64k # vga=785 # VESA framebuffer console @ 640x480x32k # vga=784 # VESA framebuffer console @ 640x480x256 # vga=769 Adicionado a linha, como root digite lilo e reinicie seu computador... escrever direto executando o lilo eh um pouco perigoso, pois se algo der errado nao ha como voltar. Seria melhor primeiro tentar da seguinte maneira: No prompt do LILO aperte TAB. Escolha linux (ou um kernel qq vc compilou) e passe o parametro vga=XXX. Por ex: linux vga=790 ou linux vga=ask p/ escolher entre opcoes de vga Ai qdo funcionar a contento, altere em /etc/lilo.conf e execute linux. Lembrando q eh necessario uma placa que suporte framebuffer e q o kernel seja compilado p/ isso. Eu tentei com placas trident 96XX e nao funfou :( . Com Diamond S3 funfou :). ******************************************************** Isso colore a tela inteirta: setterm -foreground black -background blue -store O -store e pra nao voltar tudo ao normal quando vc der clear. > Tem alguma maneira de colorir o prompt (PS1) ????? *************************************************************** Chama-se frame Buffer e eu também vi lá mas foi na fenasoft para conseguir isso vc deve habilitar o Frame Buffer no LiLo se vc quiser fazer 1024x768 165 bits deve colocar a seguinte linha no seu lilo vga=0x318 se quiser outros modos consulte a revista do Linux do mes de maio a edição numero 5 no final da pagina 24. ( a edição do elefante de capa branca ) Abraços ******************************************************** Já fiz e utilizei a opção 0x318 esta otimo. Assunto: (linux-br) Frame Buffer, brinquedinhos para console. > Aqui vai a faq definitiva sobre frame buffer e algumas informaçoes uteis sobre os modos > Para usar estes modos deve-se colocar a seguinte linha no > lilo. vga=modo > ou > vga=ask > caso use o vga=ask ira aparecer na tela um opçoes que vc tem que digitar o valor correspondente. > Mas esse valores nada tem a ver com essa tabela mas sim com numeros de linhas x colunas no console. > Ex. 80x25 onde 80 são colunas e 25 são linhas. > Nada sei a respeito de desempenho se usar o modo de frame buffer diminue o desempenho na maquina > mas vale usar com cautela e sempre ter um disco de root a disposição para recuperar o lilo. > Se você tem uam placa com 2 ou 1 MB não tente, poderá se arrepender mas caso vc ache que sua placa > suporta tente usar os modos mais baixos não vá colocar 1024x768 e nem superior tente ser modesto > que até 640x 480 faz uma diferença enorme em comparação ao modo normal. > ESSA TABELA EU RETIREI DA REVISTA DO LINUX EDIÇÃO DE MAIO NO FINAL DA PAGINA 24 E FOI ESCRITA > POR EDNILSON MIURA NA MATERIA "HARDWARES COMLICADOS" > > > Cores 640x480 800x600 1024x768 1280x1024 1600x1200 > 4 Bits ? 0X302 ? ? ? > 8 Bits 0X301 0X303 0X305 0X307 0X31C > 15 Bits 0x310 0x313 0x316 0x319 0x31D > 16 Bits 0x311 0x314 0x317 0x31A 0x31E > 24 Bits 0x312 0x315 0x318 0x31B 0x31F > > Não alterem o lilo sem ter feito um backup e um disco de inicialização antes de testar esses modos > e não tente se seu monitor for antigo e placa de video com pouca memoria vc podem ficar na mão > testei essas tecnicas em Muitos Computadores e com placas de 1 MB de memoria de qualquer marca da > problema. :-) > Alguns kernels nao suportam frame Buffer e ele vai avisar na hora do boot > acabou de me bater uma ideia antes de fazer esse procedimento se vc não tem certeza se o seu > monitor ou sua placa de video vai funcionar recompile o kernel sem a opção de frame Buffer > e inclua a entrada no seu lilo.conf assim se não suportar o frame buffer vc pode entra pelo outro > kernel e desfazer a M.... :-) > Me corrijam se eu estiver errado. ******************************************************** De:  Goncalves Daniel-WDG033 Para:  'linux-br@bazar2.conectiva.com.br' Assunto:  (linux-br)Problemas com Framebuffer com i810 Data:  Tue, 24 Aug 2004 13:07:03 -0300 Pessoal, Estou com um problema com o Framebuffer com a placa "VGA compatible controller: Intel Corp. 82845G/GL [Brookdale-G] Chipset Integrated Graphics Device (rev 01)" ou i845. No meu caso tenho o seguinte erro ao tentar executar o teste de Frambuffer: The framebuffer device was opened successfully. 640x480, 4bpp Error: failed to map framebuffer device to memory. A script de teste que estou usando é: #include #include #include #include #include   int main() {     int fbfd = 0;     struct fb_var_screeninfo vinfo;     struct fb_fix_screeninfo finfo;     long int screensize = 0;     char *fbp = 0;     int x = 0, y = 0;     long int location = 0;       // Open the file for reading and writing     fbfd = open("/dev/fb0", O_RDWR);     if (!fbfd) {         printf("Error: cannot open framebuffer device.\n");         exit(1);     }     printf("The framebuffer device was opened successfully.\n");       // Get fixed screen information     if (ioctl(fbfd, FBIOGET_FSCREENINFO, &finfo)) {         printf("Error reading fixed information.\n");         exit(2);     }       // Get variable screen information     if (ioctl(fbfd, FBIOGET_VSCREENINFO, &vinfo)) {         printf("Error reading variable information.\n");         exit(3);     }       printf("%dx%d, %dbpp\n", vinfo.xres, vinfo.yres, vinfo.bits_per_pixel );       // Figure out the size of the screen in bytes     screensize = vinfo.xres * vinfo.yres * vinfo.bits_per_pixel / 8;       // Map the device to memory     fbp = (char *)mmap(0, screensize, PROT_READ | PROT_WRITE, MAP_SHARED,                        fbfd, 0);     if ((int)fbp == -1) {         printf("Error: failed to map framebuffer device to memory.\n");         exit(4);     }     printf("The framebuffer device was mapped to memory successfully.\n");       x = 100; y = 100;       // Where we are going to put the pixel       // Figure out where in memory to put the pixel     for ( y = 100; y < 300; y++ )         for ( x = 100; x < 300; x++ ) {               location = (x+vinfo.xoffset) * (vinfo.bits_per_pixel/8) +                        (y+vinfo.yoffset) * finfo.line_length;               if ( vinfo.bits_per_pixel == 32 ) {                 *(fbp + location) = 100;        // Some blue                 *(fbp + location + 1) = 15+(x-100)/2;     // A little green                 *(fbp + location + 2) = 200-(y-100)/5;    // A lot of red                 *(fbp + location + 3) = 0;      // No transparency             } else  { //assume 16bpp                 int b = 10;                 int g = (x-100)/6;     // A little green                 int r = 31-(y-100)/16;    // A lot of red                 unsigned short int t = r<<11 | g << 5 | b;                 *((unsigned short int*)(fbp + location)) = t;             }           }     munmap(fbp, screensize);     close(fbfd);     return 0; } No /etc/lilo.conf tenho:  append="hdc=ide-scsi root=/dev/hda2 vga=792 video=vesa:ywrap,mtrr" Tks, Daniel. ******************************************************** De:  Goncalves Daniel-WDG033 Para:  'Daniel Knarda' , linux-br@bazar2.conectiva.com.br Assunto:  RE: (linux-br)Problemas com Framebuffer com i810 Data:  Tue, 24 Aug 2004 16:38:57 -0300 Obrigado Daniel, mas anota esta. Depois que mandei o email, resolvi testar usando o Grub ao invés do Lilo, e para minha surpreza funcionou ! O lilo 21.4-4 deve ter alguma limitação para isso. Obrigado pelo retorno. Daniel. ------------------------------------------------ > Error: failed to map framebuffer device to memory. Que estranho... > No /etc/lilo.conf tenho: > >  append="hdc=ide-scsi root=/dev/hda2 vga=792 video=vesa:ywrap,mtrr" video=vesa? e cadê o vram? :P tente com video=i810fb e não esqueça do vram, veja como esta o meu: append="video=i810fb:vram:2,xres:1024,yres:768,bpp:8,hsync1:30,hsync2:55,\        vsync1:50,vsync2:85,accel,mtrr" Qualquer dúvida consulte o http://i810fb.sf.net Espero ter ajudado. Daniel Koch http://br.acesso.yahoo.com/ ******************************************************** De: Claudio Polegato Junior Para: Leandro de Rezende Cc: Lista de disc. conectiva Assunto: Re: (linux-br)como configurar a tela do modo texto? Data: Mon, 14 Mar 2005 14:57:35 +0000 Olá, Retirei da documentação do kernel (Documentation/fb/vesafb.txt) e talves isso possa ajudar: The graphic modes are NOT in the list which you get if you boot with vga=ask and hit return. The mode you wish to use is derived from the VESA mode number. Here are those VESA mode numbers: | 640x480 800x600 1024x768 1280x1024 ----+------------------------------------- 256 | 0x101 0x103 0x105 0x107 32k | 0x110 0x113 0x116 0x119 64k | 0x111 0x114 0x117 0x11A 16M | 0x112 0x115 0x118 0x11B The video mode number of the Linux kernel is the VESA mode number plus 0x200. Linux_kernel_mode_number = VESA_mode_number + 0x200 So the table for the Kernel mode numbers are: | 640x480 800x600 1024x768 1280x1024 ----+------------------------------------- 256 | 0x301 0x303 0x305 0x307 32k | 0x310 0x313 0x316 0x319 64k | 0x311 0x314 0x317 0x31A 16M | 0x312 0x315 0x318 0x31B To enable one of those modes you have to specify "vga=ask" in the lilo.conf file and rerun LILO. Then you can type in the desired mode at the "vga=ask" prompt. For example if you like to use 1024x768x256 colors you have to say "305" at this prompt. Leandro de Rezende escreveu: > Olá, uso o CL10. Quando executo o terminal do linux em modo texto > (CTRL+ALT+F1, por ex.) a imagem fica tremida e não consigo visualizar > todas as linhas do terminal. Eu precisaria configurar resolução e taxa > de atualização do monitor do modo texto. Alguém sabe me dizer onde e > como fazer isso para corrigir o problema? Obrigado. > -- []'s Claudio Polegato Junior Um peregrino de Problemas; Um pergaminho de Soluções. ******************************************************** De: dbm - Adrian Para: linux-br@bazar2.conectiva.com.br Assunto: Re: (linux-br)Ajustes do modo console Data: Thu, 28 Oct 2004 15:33:42 -0200 Edite o arquivo /boot/grub/menu.lst No final da linha do kernel (kernel = ....) adicione a opção vga=ask. Isso irá fazer com seu kernel lhe pergunte qual modo vga vc quer usar. Após escolher algum da lista, edite o arquivo novamente e troque o ask pelo número selecionado. Claro, isso vai requerer alguns reboots... Qto ao tamanho da fonte... Eu gosto de alta resolução, de modo q o meu está vga=789 (1024x768x32). Dificilmente algum ls ou ps aux "quebra" a linha... ;-) ******************************************************** ********************************************************