Comunidade OSDevBrasil.net
Maio 22, 2012, 06:45:33 *
Bem-vindo, Visitante. Por favor faça o Login ou Registro.

Login com nome de usuário, senha e duração da sessão
Notícias: Anuncie a nossa comunidade a amigos, fóruns...
 
   Home   Ajuda Pesquisa Login Registrar  
Páginas: 1 [2]
  Imprimir  
Autor Tópico: Driver VESA básico  (Lida 1077 vezes)
gnomo
Moderador Global
OS Full Member
*****

Karma: 6
Mensagens: 173


gnomo_86@linuxmail.org
Ver Perfil WWW Email
« Responder #15 : Março 02, 2010, 11:13:28 »

@zMad:

Estamos (eu e o Mounter) tentando criar uma padronização para ser usada futuramente no sistema de drivers ODMI, a ideia inicialmente é criar um módulo central built-in no kernel que controle o video de uma forma geral (modulo necessário enquanto não houver um modulo para ODMI), ao carregar um novo driver (arquivo elf relocavel, como os *.ko do linux) o modulo de video padrão (built-in) passa o controle para o novo driver, "informando" ao kernel quais os endereços das funções do novo driver carregado. Seria interessante se você pudesse participar disso, já que citou uma padronização, assim poderiamos tentar padronizar VGA, sVGA e BGA como os primeiros drivers .ko do SOmBRA, e além de tudo dar um pontapé inicial à estrutura de drivers.

.

Se tiver algum instant messenger e estiver interessado, poderia me passa via MP.
Registrado

Projeto SOmBRA - http://code.google.com/p/projeto-sombra
E-Mail: gnomo@projeto-sombra.org

S.O.: Debian 6.0 "Squeeze"

zMad
OS Newbie
*

Karma: 1
Mensagens: 30


Ver Perfil Email
« Responder #16 : Março 08, 2010, 11:18:40 »

Não sei nada sobre padrões xD mas o certo seria criarmos uma mail-list pra fazermos isso...
Registrado
zMad
OS Newbie
*

Karma: 1
Mensagens: 30


Ver Perfil Email
« Responder #17 : Março 11, 2010, 11:50:46 »

Pensei em algo assim:

O driver de video contém uma estrutura principal que descreve o "dispositivo" esta teria uma subestrutura que contém algumas funções que podem ser especificas (aceleradas por hardware), como desenhar quadrados, scroll, essas coisas simples.
E esta estrutura conteria também um ponteiro para uma lista de modos suportados.

Logo seria escrito um console universal que poderia trabalhar sobre qualquer driver de video.

Bem a lá linux fb...
Registrado
Mounter
Administrador
OS Sr. Member
*****

Karma: 12
Mensagens: 432


mrjostz@hotmail.com
Ver Perfil WWW Email
« Responder #18 : Março 13, 2010, 04:01:38 »

Jah estou vendo objetos de interface no ODMI, então isso vai ser transparente na linguagem que estou criando! Mas já é um rumo a seguir!
Registrado

╔╗╔╦══╦╗╔╦══╦╗
║╚╝║╔╗║╚╝║╔╗║║
║╔╗║╠╣║╔╗║╠╣╠╣
╚╝╚╩╝╚╩╝╚╩╝╚╩╝

Projeto SOmBRA - http://code.google.com/p/projeto-sombra

S.O.: Ubuntu 10.04
Browser: Google Chrome 10

bigorenski
OS Newbie
*

Karma: 0
Mensagens: 1


Ver Perfil Email
« Responder #19 : Setembro 14, 2011, 10:10:16 »

Bom, eu sempre me interessei pelo desenvolvimento de drivers, mas nunca havia feito nada antes, e agora com o sombra que é bem simples da pra fazer algumas brincadeiras  Sorriso forçado
Esses dias comecei a tentar escrever um de video para a cirrus, consegui fazer um mode-setting de várias resoluções mas estranhamente o sistema parava de responder e muitos outros problemas com o PCI... e no mais é mazoquismo escrever drivers para VGA's  Indeciso então desisti e fui tentar algo mais simples.
Comecei a escrever um do VESA, mas não queria ter que mudar pro modo real e depois voltar pro PM,
tentei usar a vm86, tive muitos problemas para usar a combinação nos registradores ES:DI que as funções da INT 10 necessitam pra escrever os dados, só depois fui pensar em escrever estes dados no endereço baixo de 0x8000 onde o grub instala o stage2, bem poderia ser até outro mais baixo, mas este está bom, até porque posso copiar o dados de lá e escrever novamente depois que pegar os dados que me interessam, e o melhor é que não precisa ir até o modo real (quer dizer em partes xD vm86)...
Aqui estão os primeiros resultados, consigo mostrar os modos, as informações, e fazer o mode-setting. Mas agora estou tendo problemas em escrever no Framebuffer (estou usando o modo linear), o framebuffer fica em 0xC0000000, mas mesmo que eu escreva lá não aparece nada na tela...

Mostrando as informações:


Mostrando os modos:


Nem adianta mostrar com o modo ligado pois só aparece coisa preta xD

Sobre o Framebuffer em 0xC0000000, tentei usar o page_map com um ponteiro mas ele não consegue alocar as páginas, se alguem tiver alguma idéia de como dá pra resolver isto...


 Me desculpem por ressucitar o tópico, encontrei o sombra a alguns dias. Estou trabalhando no driver VESA.
 Já tenho ele funcionando(apenas modo 0x103 800*600*256cores). é possivel fazer os outros modos funcionarem, só não fiz ainda por falta de tempo.
 O driver já tem o mode_set e o putPixel funcionando.

 
 plotando uma linha azul:
 
« Última modificação: Setembro 14, 2011, 10:13:17 por bigorenski » Registrado
Páginas: 1 [2]
  Imprimir  
 
Ir para:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2006-2009, Simple Machines XHTML 1.0 Válido! CSS Válido!