você está aqui: Home  → Arquivo de Mensagens Curso Gratuito sobre Expressões Regulares, com o Prof.  Julio Neves

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