Criando pacote nvidia-legacy340-driver no Slackware -current após update de 10/03/2016
Dica publicada em Linux / Hardware
Criando pacote nvidia-legacy340-driver no Slackware -current após update de 10/03/2016
Papagaios e louros aqui do Viva o Linux, aqui começa mais uma Dica do Dino® para perturbar o juízo de vocês com informação nova e fresquinha sempre. Na Dica de hoje temos mais uma sobre as placas Nvidia no Slackware. Como até as crianças de seis anos sabem, toda vez que você atualiza o kernel no Slackware é preciso recompilar e reinstalar o módulo de kernel e o driver Nvidia.
Se você usa o SlackBuilds.org pra isso, basta executar novamente os scripts nvidia-kernel e nvidia-driver relativos à sua placa. No meu caso, o feliz (?) proprietário de uma GT9800, eu preciso do nvidia-legacy340-kernel e nvidia-legacy340-driver.
Acontece que após o update de 10/03/2016 o script para o pacote nvidia-legacy340-driver deixou de funcionar. Se você tentar criar o pacote, eis o erro que acontece:
Então, caso você queira criar o pacote nvidia-legacy340-driver, vá no arquivo nvidia-legacy340-driver.SlackBuild, localize o seguinte bloco de código:
... e comente todas essas linhas. Porém, como o Dino® é um cara bonzinho, você pode simplesmente rodar esses dois comandos no mesmo diretório em que você baixou todos os arquivos do SlackBuild do nvidia-legacy340-driver antes de executar o script:
wget http://lists.slackbuilds.org/pipermail/slackbuilds-users/attachments/20160312/add6bcd1/attachment-0001.bin -O nvidia-legacy340-driver.SlackBuild.patch
$ patch -p0 < nvidia-legacy340-driver.SlackBuild.patch
E é isso, senhoras e senhores. Com essa termina mais uma Dica do Dino®, desejando para todos vocês a salvação profunda e eterna que vem apenas pelo terminal!
Se você usa o SlackBuilds.org pra isso, basta executar novamente os scripts nvidia-kernel e nvidia-driver relativos à sua placa. No meu caso, o feliz (?) proprietário de uma GT9800, eu preciso do nvidia-legacy340-kernel e nvidia-legacy340-driver.
Acontece que após o update de 10/03/2016 o script para o pacote nvidia-legacy340-driver deixou de funcionar. Se você tentar criar o pacote, eis o erro que acontece:
/usr/lib64/gcc/x86_64-slackware-linux/5.3.0/../../../../lib64/libpci.a(names-hwdb.o): In function `pci_id_hwdb_lookup':Após xingar os Seiscentos e Sessenta e Seis Nomes Infernais (e assustar Gatanás com a quantidade de palavrões por minuto), decidi fazer a coisa mais óbvia (que sempre é a última a ser feita): ler o script nvidia-legacy340-driver.SlackBuild. E ao ler a parada, descobri que o nvidia-installer não era necessário! Comentei as linhas relacionadas a ele e funcionou como uma luva!
names-hwdb.c:(.text+0xb4): undefined reference to `udev_hwdb_get_properties_list_entry'
names-hwdb.c:(.text+0xc9): undefined reference to `udev_list_entry_get_next'
names-hwdb.c:(.text+0xd9): undefined reference to `udev_list_entry_get_name'
names-hwdb.c:(.text+0xf0): undefined reference to `udev_list_entry_get_value'
names-hwdb.c:(.text+0x214): undefined reference to `udev_new'
names-hwdb.c:(.text+0x221): undefined reference to `udev_hwdb_new'
/usr/lib64/gcc/x86_64-slackware-linux/5.3.0/../../../../lib64/libpci.a(names-hwdb.o): In function `pci_id_hwdb_free':
names-hwdb.c:(.text+0x24e): undefined reference to `udev_hwdb_unref'
names-hwdb.c:(.text+0x264): undefined reference to `udev_unref'
collect2: error: ld returned 1 exit status
Makefile:214: recipe for target '_out/Linux_x86_64/nvidia-installer' failed
make: *** [_out/Linux_x86_64/nvidia-installer] Error 1
Então, caso você queira criar o pacote nvidia-legacy340-driver, vá no arquivo nvidia-legacy340-driver.SlackBuild, localize o seguinte bloco de código:
# Compiling nvidia-installer from source
# Not really needed for this SBo package
cd $TMP/nvidia-installer-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
CFLAGS="$SLKCFLAGS" LDFLAGS="-lz" make
install -m 755 _out/Linux_$TARGET/nvidia-installer $PKG/usr/bin/
install -m 644 _out/Linux_$TARGET/nvidia-installer.1.gz $PKG/usr/man/man1/
cd -
# Not really needed for this SBo package
cd $TMP/nvidia-installer-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
CFLAGS="$SLKCFLAGS" LDFLAGS="-lz" make
install -m 755 _out/Linux_$TARGET/nvidia-installer $PKG/usr/bin/
install -m 644 _out/Linux_$TARGET/nvidia-installer.1.gz $PKG/usr/man/man1/
cd -
... e comente todas essas linhas. Porém, como o Dino® é um cara bonzinho, você pode simplesmente rodar esses dois comandos no mesmo diretório em que você baixou todos os arquivos do SlackBuild do nvidia-legacy340-driver antes de executar o script:
wget http://lists.slackbuilds.org/pipermail/slackbuilds-users/attachments/20160312/add6bcd1/attachment-0001.bin -O nvidia-legacy340-driver.SlackBuild.patch
$ patch -p0 < nvidia-legacy340-driver.SlackBuild.patch
E é isso, senhoras e senhores. Com essa termina mais uma Dica do Dino®, desejando para todos vocês a salvação profunda e eterna que vem apenas pelo terminal!
# sh /home/meuuser/N*