você está aqui: Home  → Arquivo de Mensagens

Recompilando Kernel 2.6.18* (arquitetura IA32) para suportar driver Nvidia

Colaboração: André Jaccon

Data de Publicação: 27 de Dezembro de 2006

Neste artigo iremos dar um exemplo de configuração de um Driver NVidia compativél com a versão do Kernel 2.6.18.

Sistema Operacional Utilizado

  • Debian 4.0 ( etch Testing
  • Kernel 2.6.18
  • Xorg 7.0.22

Hardware Utilizado

  • nVidia Corporation NV17 GeForce4 MX
  • Processador Celerom D 2.13
  • 1 GB RAM DDR 400 Mhz

Na versão testing do Debian 4.0, ele é pré-compilado com a versão 2.6.16, porém como todo Linux User quando vamos configurar o SO para uma Workstation é interessante saber o que há de mais novo em termos de recursos tanto em questão das funcionalidades do Kernel, como em recursos GL habilitados com os drivers da NVidia.

Instalando o Kernel

Primeiramente é necessário baixar a versão do kernel mais recente.

Copie o source do kernel para /usr/src, e descompacte o arquivo

  tar -zxvf linux-2.6.18.tar.gz
  ln -s linux-2.6.18 linux
  cp /boot/config-2.6.16-2-686 /usr/src/linux/.config

Feito isso verifique se você possui os pacotes:

  • dialog
  • kernel-package
  • libncurses5-dev

Caso não tenha baixe com o apt-get apontando para os mirrors do Etch. Depois de instalado entre com com comando make menuconfig dentro do diretório /usr/src/linux e selecione as opções desejadas. Uma forma prática de deixar os módulos do kernel intactos como os da instalação padrão do Debian é selecionar o arquivo .config com os módulos pré configurados do kernel anterior 2.6.16. Para isso é necessário ir na opção Load an Alternate Configuration File no menu principal e digitar simplesmente .config

Com isso Salve e saia do menuconfig. Um exemplo de módulos a serem pré-selecionados para recompilação são:

  CONFIG_X86_32=y
  CONFIG_GENERIC_TIME=y
  CONFIG_LOCKDEP_SUPPORT=y
  CONFIG_STACKTRACE_SUPPORT=y
  CONFIG_SEMAPHORE_SLEEPERS=y
  CONFIG_X86=y
  CONFIG_MMU=y
  CONFIG_GENERIC_ISA_DMA=y
  CONFIG_GENERIC_IOMAP=y
  CONFIG_GENERIC_HWEIGHT=y
  CONFIG_ARCH_MAY_HAVE_PC_FDC=y
  CONFIG_DMI=y
  CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
  #
  # Code maturity level options
  #
  CONFIG_EXPERIMENTAL=y
  CONFIG_BROKEN_ON_SMP=y
  CONFIG_INIT_ENV_ARG_LIMIT=32
  # General setup
  CONFIG_LOCALVERSION=""
  CONFIG_LOCALVERSION_AUTO=y
  CONFIG_SWAP=y
  CONFIG_SYSVIPC=y
  CONFIG_POSIX_MQUEUE=y
  CONFIG_BSD_PROCESS_ACCT=y
  # CONFIG_BSD_PROCESS_ACCT_V3 is not set
  # CONFIG_TASKSTATS is not set
  CONFIG_AUDIT=y
  # CONFIG_AUDITSYSCALL is not set
  CONFIG_IKCONFIG=y
  CONFIG_IKCONFIG_PROC=y
  CONFIG_RELAY=y
  CONFIG_INITRAMFS_SOURCE=""
  CONFIG_CC_OPTIMIZE_FOR_SIZE=y
  CONFIG_EMBEDDED=y
  CONFIG_UID16=y
  CONFIG_SYSCTL=y
  CONFIG_KALLSYMS=y
  # CONFIG_KALLSYMS_ALL is not set
  # CONFIG_KALLSYMS_EXTRA_PASS is not set
  CONFIG_HOTPLUG=y
  CONFIG_PRINTK=y
  CONFIG_BUG=y
  CONFIG_ELF_CORE=y
  CONFIG_BASE_FULL=y
  CONFIG_FUTEX=y
  CONFIG_EPOLL=y
  CONFIG_SHMEM=y
  CONFIG_SLAB=y
  CONFIG_VM_EVENT_COUNTERS=y
  CONFIG_RT_MUTEXES=y
  # CONFIG_TINY_SHMEM is not set
  CONFIG_BASE_SMALL=0
  # CONFIG_SLOB is not set
  # Loadable module support
  CONFIG_MODULES=y
  CONFIG_MODULE_UNLOAD=y
  CONFIG_MODULE_FORCE_UNLOAD=y
  CONFIG_MODVERSIONS=y
  # CONFIG_MODULE_SRCVERSION_ALL is not set
  CONFIG_KMOD=y
  # Block layer
  CONFIG_LBD=y
  # CONFIG_BLK_DEV_IO_TRACE is not set
  # CONFIG_LSF is not set
  # IO Schedulers
  CONFIG_IOSCHED_NOOP=y
  CONFIG_IOSCHED_AS=y
  CONFIG_IOSCHED_DEADLINE=y
  CONFIG_IOSCHED_CFQ=y
  CONFIG_DEFAULT_AS=y
  # CONFIG_DEFAULT_DEADLINE is not set
  # CONFIG_DEFAULT_CFQ is not set
  # CONFIG_DEFAULT_NOOP is not set
  CONFIG_DEFAULT_IOSCHED="anticipatory"
  # Processor type and features
  # CONFIG_SMP is not set
  CONFIG_X86_PC=y
  # CONFIG_X86_ELAN is not set
  # CONFIG_X86_VOYAGER is not set
  # CONFIG_X86_NUMAQ is not set
  # CONFIG_X86_SUMMIT is not set
  # CONFIG_X86_BIGSMP is not set
  # CONFIG_X86_VISWS is not set
  # CONFIG_X86_GENERICARCH is not set
  # CONFIG_X86_ES7000 is not set
  # CONFIG_M386 is not set
  # CONFIG_M486 is not set
  # CONFIG_M586 is not set
  # CONFIG_M586TSC is not set
  # CONFIG_M586MMX is not set
  CONFIG_M686=y
  # CONFIG_MPENTIUMII is not set
  # CONFIG_MPENTIUMIII is not set
  # CONFIG_MPENTIUMM is not set
  # CONFIG_MPENTIUM4 is not set
  # CONFIG_MK6 is not set
  # CONFIG_MK7 is not set
  # CONFIG_MK8 is not set
  # CONFIG_MCRUSOE is not set
  # CONFIG_MEFFICEON is not set
  # CONFIG_MWINCHIPC6 is not set
  # CONFIG_MWINCHIP2 is not set
  # CONFIG_MWINCHIP3D is not set
  # CONFIG_MGEODEGX1 is not set
  # CONFIG_MGEODE_LX is not set
  # CONFIG_MCYRIXIII is not set
  # CONFIG_MVIAC3_2 is not set
  # CONFIG_X86_GENERIC is not set
  CONFIG_X86_CMPXCHG=y
  CONFIG_X86_XADD=y
  CONFIG_X86_L1_CACHE_SHIFT=5
  CONFIG_RWSEM_XCHGADD_ALGORITHM=y
  CONFIG_GENERIC_CALIBRATE_DELAY=y
  CONFIG_X86_PPRO_FENCE=y
  CONFIG_X86_WP_WORKS_OK=y
  CONFIG_X86_INVLPG=y
  CONFIG_X86_BSWAP=y
  CONFIG_X86_POPAD_OK=y
  CONFIG_X86_CMPXCHG64=y
  CONFIG_X86_GOOD_APIC=y
  CONFIG_X86_USE_PPRO_CHECKSUM=y
  CONFIG_X86_TSC=y
  CONFIG_HPET_TIMER=y
  CONFIG_PREEMPT_NONE=y
  # CONFIG_PREEMPT_VOLUNTARY is not set
  # CONFIG_PREEMPT is not set
  CONFIG_X86_UP_APIC=y
  CONFIG_X86_UP_IOAPIC=y
  CONFIG_X86_LOCAL_APIC=y
  CONFIG_X86_IO_APIC=y
  CONFIG_X86_MCE=y
  CONFIG_X86_MCE_NONFATAL=m
  CONFIG_X86_MCE_P4THERMAL=y
  CONFIG_VM86=y
  CONFIG_TOSHIBA=m
  CONFIG_I8K=m
  # CONFIG_X86_REBOOTFIXUPS is not set
  CONFIG_MICROCODE=m
  CONFIG_X86_MSR=m
  CONFIG_X86_CPUID=m
  # Firmware Drivers
  CONFIG_EDD=m
  CONFIG_DELL_RBU=m
  CONFIG_DCDBAS=m
  # CONFIG_NOHIGHMEM is not set
  CONFIG_HIGHMEM4G=y
  # CONFIG_HIGHMEM64G is not set
  # CONFIG_VMSPLIT_3G is not set
  CONFIG_VMSPLIT_3G_OPT=y
  # CONFIG_VMSPL

Para criar o Deb com o novo kernel digite na linha de comando:

  make-kpkg --initrd kernel_image, 

Depois de alguns minutos o arquivo estará criado dentro do diretório /usr/src/ com o nome linux-image-2.6.18_2.6.18-10.00.Custom_i386.deb.

Para instalar digite:

  dpkg -i linux-image-2.6.18_2.6.18-10.00.Custom_i386.deb

Reinicie seu computador.

Baixando e instalando driver NVidia

O Driver da Nvidia compativél com a versão 2.6.18 do kernel é o NVIDIA-Linux-x86-1.0-8774-pkg1.run ( para arquiteturas Linux IA32 este driver pode ser baixado no site www.nvidia.com, na opção driver Linux IA32 (para arquiteturas Intel e AMD 32 Bits).

Para instalar é necessário fechar todas as sessões do X:

  /etc/init.d/gdm stop
  killall -TERM X

Para verificar se algum PID ainda está em execução:

  ps -aef |grep X 

Em seguida, execute comando abaixo para instalar o driver:

  sh NVIDIA-Linux-x86-1.0-8774-pkg1.run

OBS: é interessante verificar se sua máquina está com acesso a internet antes de colocar para instalar o driver da NVidia pois o driver contacta o site da NVidia para baixar módulos compativeis com o kernel em questão.

Feito isso basta seguir as instruções de instalação da interface Curses do driver e reiniciar o seu GDM, KDM, XDM ou mesmo o X com o comando xinit para verificar as alterações.



 

 

Veja a relação completa dos artigos de André Jaccon

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script