Autor Tópico: Kernel 3.18 no Ubuntu 14.04 + Nvidia 340 + Bumblebee  (Lida 6190 vezes)

Offline Sergio Benjamim

  • Usuário Ubuntu
  • *
  • Mensagens: 2.902
    • Ver perfil
Kernel 3.18 no Ubuntu 14.04 + Nvidia 340 + Bumblebee
« Online: 11 de Janeiro de 2015, 15:39 »
Instalei o kernel 3.18 (baixar desse link) e logo de cara já deu alguns problemas com o virtualbox e driver da nvidia.

Em relação ao driver da nvidia, parece que o 331 do repositório é incompatível com esse novo kernel. A solução foi atualizar o driver, de preferência para um "Long Lived Branch", ou seja, o 340 (340.65 atualmente).

Instalei o ppa do xorg-edgers:

Código: [Selecionar]
sudo add-apt-repository ppa:xorg-edgers/ppa
sudo apt-get update

Desinstalei os pacotes da Nvidia que tinha aqui no sistema (libcuda1-331-updates, nvidia-331-updates, nvidia-opencl-icd-331-updates, nvidia-settings) e instalei/atualizei somente esses pacotes:

Código: [Selecionar]
sudo apt-get purge libcuda1-331-updates nvidia-331-updates nvidia-opencl-icd-331-updates nvidia-settings
sudo apt-get install libcuda1-340 nvidia-340 nvidia-340-uvm nvidia-opencl-icd-340 nvidia-settings

E atualizei também o pacote bumblebee, já que o do PPA tem suporte aos drivers 340 e 343, e é claro, eu tenho hardware com tecnologia Optimus, que faz uso da placa onboard da Intel e da placa offboard da Nvidia (GT 740M no meu caso) - ou seja, placa gráfica híbrida, que você acha em alguns notebooks.

Para fazer o Bumblebee funcionar, segui as orientações desse site: Nvidia Optimus on Linux. Como eu já tinha feito isso com o kernel 3.14 + nvidia 331, só tive que mudar algumas coisas no arquivo /etc/bumblebee/bumblebee.conf

Após isso, eu desativei o PPA do xorg-edgers, já que ele tem vários outros pacotes para atualizar no sistema (libdrm, mesa, xorg...), e sei que a chance de quebrar o sistema é alto com essas atualizações. Você pode desativar no programa Software & Updates, via Central de Programas no menu Editar --> Fontes de Software, aba Outros Softwares.

Em relação ao virtualbox, os pelo que vi no launchpad, parece que você tem que instalar os pacotes do 14.10 para fazê-lo funcionar.


Edit: Não esqueça de instalar o pacote headers do kernel! Você tem que instalar 3 pacotes, por exemplo:
* linux-headers-3.18.2-031802-generic_3.18.2-031802.201501082011_amd64.deb
* linux-headers-3.18.2-031802_3.18.2-031802.201501082011_all.deb
* linux-image-3.18.2-031802-generic_3.18.2-031802.201501082011_amd64.deb
« Última modificação: 11 de Janeiro de 2015, 18:01 por Sergio Benjamim »
É novo no Ubuntu? Já leu o Ubuntu – Guia do Iniciante 2.0 ?
Experimente o Xubuntu 14.04 !

Offline Sergio Benjamim

  • Usuário Ubuntu
  • *
  • Mensagens: 2.902
    • Ver perfil
Re: Kernel 3.18 no Ubuntu 14.04 + Nvidia 340 + Bumblebee
« Resposta #1 Online: 11 de Janeiro de 2015, 17:53 »
Estava tudo 1000 maravilhas, até reiniciar... daí o bumblebee parou de funcionar :o

Depois de um tempão tentando resolver o problema, consegui fazer voltar funcionar. Desinstalei tudo relacionado ao driver da nvidia e bumblebee e instalei novamente:

Código: [Selecionar]
sudo apt-get purge nvidia-340 nvidia-340-uvm nvidia-opencl-icd-340 libcuda1-340
sudo apt-get install nvidia-340 nvidia-340-uvm nvidia-opencl-icd-340 libcuda1-340

Código: [Selecionar]
sudo apt-get purge bbswitch-dkms bumblebee bumblebee-nvidia primus primus-libs primus-libs-ia32
sudo apt-get install bbswitch-dkms bumblebee primus primus-libs primus-libs-ia32
(usando o ppa do xorg-edgers habilitado, para instalar o pacote bumblebee atualizado)

Verifiquei se o meu usuário estava ainda no grupo do bumblebee, com o comando:

Código: [Selecionar]
groups
A resposta:

Código: [Selecionar]
sergio adm dialout cdrom sudo dip plugdev lpadmin sambashare vboxusers sbuild bumblebee
Se não estivesse, teria que rodar esse comando:

Código: [Selecionar]
sudo su -c "useradd -G bumblebee USERNAME"onde USERNAME é seu usuário, no meu caso é sergio  :)

Daí modifiquei o arquivo /etc/bumblebee/bumblebee.conf, modifiquei as linhas 22, 55, 58 e 61:

Código: [Selecionar]
Driver=nvidia
KernelDriver=nvidia-340
LibraryPath=/usr/lib/nvidia-340:/usr/lib32/nvidia-340
XorgModulePath=/usr/lib/nvidia-340/xorg,/usr/lib/xorg/modules

Obs: pra saber o que colocar no KernelDriver, você pode rodar o comando:

Código: [Selecionar]
find /lib/modules/$(uname -r) -name 'nvidia*.ko*'
Vai aparecer algo como:

Código: [Selecionar]
/lib/modules/3.18.2-031802-generic/updates/dkms/nvidia_340.ko
/lib/modules/3.18.2-031802-generic/updates/dkms/nvidia-340-uvm.ko
/lib/modules/3.18.2-031802-generic/kernel/drivers/video/fbdev/nvidia/nvidiafb.ko

Olhando a primeira linha, dá para ter uma ideia que será nvidia-340.

O arquivo completo fica assim:

Código: [Selecionar]
# Configuration file for Bumblebee. Values should **not** be put between quotes

## Server options. Any change made in this section will need a server restart
# to take effect.
[bumblebeed]
# The secondary Xorg server DISPLAY number
VirtualDisplay=:8
# Should the unused Xorg server be kept running? Set this to true if waiting
# for X to be ready is too long and don't need power management at all.
KeepUnusedXServer=false
# The name of the Bumbleblee server group name (GID name)
ServerGroup=bumblebee
# Card power state at exit. Set to false if the card shoud be ON when Bumblebee
# server exits.
TurnCardOffAtExit=false
# The default behavior of '-f' option on optirun. If set to "true", '-f' will
# be ignored.
NoEcoModeOverride=false
# The Driver used by Bumblebee server. If this value is not set (or empty),
# auto-detection is performed. The available drivers are nvidia and nouveau
# (See also the driver-specific sections below)
Driver=nvidia
# Directory with a dummy config file to pass as a -configdir to secondary X
XorgConfDir=/etc/bumblebee/xorg.conf.d

## Client options. Will take effect on the next optirun executed.
[optirun]
# Acceleration/ rendering bridge, possible values are auto, virtualgl and
# primus.
Bridge=auto
# The method used for VirtualGL to transport frames between X servers.
# Possible values are proxy, jpeg, rgb, xv and yuv.
VGLTransport=proxy
# List of paths which are searched for the primus libGL.so.1 when using
# the primus bridge
PrimusLibraryPath=/usr/lib/x86_64-linux-gnu/primus:/usr/lib/i386-linux-gnu/primus
# Should the program run under optirun even if Bumblebee server or nvidia card
# is not available?
AllowFallbackToIGC=false


# Driver-specific settings are grouped under [driver-NAME]. The sections are
# parsed if the Driver setting in [bumblebeed] is set to NAME (or if auto-
# detection resolves to NAME).
# PMMethod: method to use for saving power by disabling the nvidia card, valid
# values are: auto - automatically detect which PM method to use
#         bbswitch - new in BB 3, recommended if available
#       switcheroo - vga_switcheroo method, use at your own risk
#             none - disable PM completely
# https://github.com/Bumblebee-Project/Bumblebee/wiki/Comparison-of-PM-methods

## Section with nvidia driver specific options, only parsed if Driver=nvidia
[driver-nvidia]
# Module name to load, defaults to Driver if empty or unset
KernelDriver=nvidia-340
PMMethod=auto
# colon-separated path to the nvidia libraries
LibraryPath=/usr/lib/nvidia-340:/usr/lib32/nvidia-340
# comma-separated path of the directory containing nvidia_drv.so and the
# default Xorg modules path
XorgModulePath=/usr/lib/nvidia-340/xorg,/usr/lib/xorg/modules
XorgConfFile=/etc/bumblebee/xorg.conf.nvidia

## Section with nouveau driver specific options, only parsed if Driver=nouveau
[driver-nouveau]
KernelDriver=nouveau
PMMethod=auto
XorgConfFile=/etc/bumblebee/xorg.conf.nouveau

E modifiquei também o /etc/bumblebee/xorg.conf.nvidia, tirei o comentário (#) da linha 19:

Código: [Selecionar]
BusID "PCI:01:00:0"
Esse número (01:00:0) você pode verificar através do lspci, que no meu caso retorna:

Código: [Selecionar]
01:00.0 3D controller: NVIDIA Corporation GK208M [GeForce GT 740M] (rev ff)

Links úteis:
http://www.linux.org/threads/nvidia-optimus-on-linux.4415/
https://github.com/Bumblebee-Project/Bumblebee/wiki/Troubleshooting
http://forums.netrunner-os.com/showthread.php?tid=1215
« Última modificação: 11 de Janeiro de 2015, 18:09 por Sergio Benjamim »
É novo no Ubuntu? Já leu o Ubuntu – Guia do Iniciante 2.0 ?
Experimente o Xubuntu 14.04 !

Offline Sergio Benjamim

  • Usuário Ubuntu
  • *
  • Mensagens: 2.902
    • Ver perfil
Re: Kernel 3.18 no Ubuntu 14.04 + Nvidia 340 + Bumblebee
« Resposta #2 Online: 16 de Janeiro de 2015, 23:51 »
Esse novo kernel está dando tela preta no retorno da suspensão, se eu suspender fechando a tampa do note (mas dá para voltar à área de trabalho, só digitar a senha nas escuras e apertar Enter). Se eu suspender pelo botão de Log Out do xubuntu, funciona normal.

Asus R751JB:

Código: [Selecionar]
ASUSTeK COMPUTER INC.
baseboard-product-name: X750JB
baseboard-version     : 1.0       
system-manufacturer   : ASUSTeK COMPUTER INC.
system-product-name   : X750JB
system-version        : 1.0       
bios-vendor           : American Megatrends Inc.
bios-version          : X750JB.208
bios-release-date     : 08/14/2013
É novo no Ubuntu? Já leu o Ubuntu – Guia do Iniciante 2.0 ?
Experimente o Xubuntu 14.04 !

Offline Sergio Benjamim

  • Usuário Ubuntu
  • *
  • Mensagens: 2.902
    • Ver perfil
Re: Kernel 3.18 no Ubuntu 14.04 + Nvidia 340 + Bumblebee
« Resposta #3 Online: 08 de Fevereiro de 2015, 17:53 »
Retirei o kernel 3.18 e voltei ao 3.14, usando nvidia 340.76. O kernel novo estava dando muito problema com a suspensão e não dava para usar o VirtualBox, desisti.
É novo no Ubuntu? Já leu o Ubuntu – Guia do Iniciante 2.0 ?
Experimente o Xubuntu 14.04 !

Offline galactus

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.683
    • Ver perfil
Re: Kernel 3.18 no Ubuntu 14.04 + Nvidia 340 + Bumblebee
« Resposta #4 Online: 08 de Fevereiro de 2015, 22:16 »
Também não gostei do 3.18. Deu alguns paus nas minhas máquinas também. Para o hardware que possuo hoje o 3.16 está muito melhor.
Kubuntu 21.10 / Linux Mint XFCE 20.2