Habilitar kms para as placas Intel, aceleração no Chromium e habilitar o módulo i915. Mas quero saber se o que estou a fazer é certo ou errado

Olá todo o mundo,

Também convido @drakofrost, @Keviny, @Lavrudinho e outros utilziadores a analisar e corrigir os comandos!

Já instalei o Arch Linux, meu kernel padrão é linux (/etc/mkinitcpio.d/linux.preset ou 5.1.7-arch1-1-ARCH). Minha inicialização é BIOS (não UEFI). Possuo dois discos – um SSD, /dev/sdb e um HDD, /dev/sda. Observai bem que instalei /boot no /dev/sdb2, em que / também está instalado. Também instalei o bootloader no /dev/sdb.

Observai bem que eu já tenho git instalado e utilizo o trizen ao invés de yay.

  1. Não sei se minha inicialização é grub ou systemd;
  2. Quero habilitar kms para as placas Intel;
  3. Quero acelerar o hardware no Chromium, senão não terei nenhuma aceleração de hardware e acabrei utilizando duas vezes a soma do processador, o que não é bom para velhos hardwares.

Tambem partilho-vos meus detalhes para facilitar a vossa análise e vossas correcções:

$ inxi -Fxz
System:    Host: gusbemacbe-hp Kernel: 5.1.7-arch1-1-ARCH x86_64 bits: 64 compiler: gcc v: 8.3.0 Desktop: KDE Plasma 5.15.5 
           Distro: Arch Linux 
Machine:   Type: Laptop System: Hewlett-Packard product: HP EliteBook 8460p v: A0001D02 serial: <filter> 
           Mobo: Hewlett-Packard model: 161C v: KBC Version 97.4E serial: <filter> BIOS: Hewlett-Packard v: 68SCF Ver. F.65 
           date: 04/06/2017 
Battery:   ID-1: BAT0 charge: 25.1 Wh condition: 30.3/30.3 Wh (100%) model: Hewlett-Packard Primary status: Charging 
CPU:       Topology: Dual Core model: Intel Core i5-2520M bits: 64 type: MT MCP arch: Sandy Bridge rev: 7 L2 cache: 3072 KiB 
           flags: avx lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 19961 
           Speed: 798 MHz min/max: 800/3200 MHz Core speeds (MHz): 1: 798 2: 798 3: 798 4: 798 
Graphics:  Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics vendor: Hewlett-Packard driver: i915 
           v: kernel bus ID: 00:02.0 
           Display: x11 server: X.Org 1.20.5 driver: intel unloaded: fbdev,modesetting,vesa resolution: 1600x900~60Hz 
           OpenGL: renderer: Mesa DRI Intel Sandybridge Mobile v: 3.3 Mesa 19.0.6 direct render: Yes 
Audio:     Device-1: Intel 6 Series/C200 Series Family High Definition Audio vendor: Hewlett-Packard driver: snd_hda_intel 
           v: kernel bus ID: 00:1b.0 
           Sound Server: ALSA v: k5.1.7-arch1-1-ARCH 
Network:   Device-1: Intel 82579LM Gigabit Network vendor: Hewlett-Packard driver: e1000e v: 3.2.6-k port: 4060 
           bus ID: 00:19.0 
           IF: enp0s25 state: down mac: <filter> 
           Device-2: Intel Centrino Advanced-N 6205 [Taylor Peak] driver: iwlwifi v: kernel port: 4040 bus ID: 24:00.0 
           IF: wlo1 state: up mac: <filter> 
Drives:    Local Storage: total: 530.98 GiB used: 7.50 GiB (1.4%) 
           ID-1: /dev/sda vendor: Hitachi model: HTS723232A7A364 size: 298.09 GiB 
           ID-2: /dev/sdb vendor: Samsung model: SSD 860 EVO 250GB size: 232.89 GiB 
Partition: ID-1: / size: 220.89 GiB used: 7.08 GiB (3.2%) fs: ext4 dev: /dev/sdb2 
           ID-2: /home size: 175.08 GiB used: 330.5 MiB (0.2%) fs: ext4 dev: /dev/sda3 
           ID-3: /opt size: 58.41 GiB used: 51.8 MiB (0.1%) fs: ext4 dev: /dev/sda2 
           ID-4: swap-1 size: 7.45 GiB used: 0 KiB (0.0%) fs: swap dev: /dev/sdb1 
Sensors:   System Temperatures: cpu: 39.0 C mobo: N/A 
           Fan Speeds (RPM): N/A 
Info:      Processes: 172 Uptime: 1h 21m Memory: 7.70 GiB used: 1.62 GiB (21.1%) Init: systemd Compilers: gcc: 8.3.0 
           Shell: zsh v: 5.7.1 inxi: 3.0.34

Agora analisai meus comandos ou o que estou a fazer, mas se achar algo errado, corrige-os:

  1. Instalarei os pacotes chromium-vaapi-bin, chromium-widevine, libva-utils e libva-intel-driver;
  2. Adicionarei as linhas ao /etc/environment:
LIBVA_DRIVERS_PATH=/usr/lib/dri/
LIBVA_DRIVER_NAME=i965
QT_LOGGING_RULES=’*=false’
  1. Instalarei o pacote reflector;
  2. Executarei os comandos seguintes:
sudo reflector --latest 50 --protocol http --protocol https --sort rate --save /etc/pacman.d/mirrorlist
sudo reflector --latest 50 --sort rate --save /etc/pacman.d/mirrorlist
  1. Executarei o comando sudo nano /etc/mkinitcpio.conf e adicionarei em seguinte:
MODULES=(i915)
  1. Executarei o comando sudo mkinitcpio -p linux.
  2. Como não sei qual inicialização utiliza: systemd ou grub. Mas o inxi falou que é systemd. Tentei executar o comando o sudo bootctl update, mas recebei o erro em seguinte: Couldn't find EFI system partition. It is recommended to mount it to /boot or /efi. Alternatively, use --esp-path= to specify path to mount point. Por isso, relei acima no início e vereis os meus discos. Mas também executei o comando sudo grub-mkconfig -o /boot/grub/grub.cfg, mas este último comando é realmente perigoso porque causou a distribuição a parar no Starting version 242.29-1-arch, por isso, utilizei o kernel linux-zen. Estava muito interessado no linux-zen do que linux.

Como um resultado, acabei reinstalando o Arch Linux e selecionei apenas linux em vez de linux-zen.

Eu fiz tudo errado? Se sim, por favor, corrige meu guia. Não quero estragar novamente o Arch.

Sua instalação é bem diferente do que eu costumo fazer, então não vou ser de grande ajuda, mas vou tentar.

O systemd-boot só funciona em UEFI, então muito provavelmente você está utilizando o Grub. Se você utilizou os comandos abaixo, então está utilizando o Grub.

pacman -S grub
grub-install --target=i386-pc /dev/sd **X**
grub-mkconfig -o /boot/grub/grub.cfg

Não tenho experiência com KMS, mas esta é a entrada apropriada na wiki.

https://wiki.archlinux.org/index.php/kernel_mode_setting

O Chromium com os patches do VAAPI está disponível apenas no AUR.

https://aur.archlinux.org/packages/chromium-vaapi/

Para utilizar o AUR é necessário instalar as bibliotecas de desenvolvimento.

sudo pacman -S --needed base-devel

Você pode instalar o Git para clonar o repositório e instalar o Chromium manualmente, ou utilizar algum front-end para o Aur, como o Yay. Recomendo o Yay, ele torna o processo de atualização mais prático, basta executar yay no terminal.

Você vai precisar do Git.

sudo pacman -S git

A seguir será necessário clonar o repositório do Yay.

git clone https://aur.archlinux.org/yay.git

Vá até o diretório recém clonado.

cd yay

E instale o Yay.

makepkg -si

Após a conclusão da instalação, você pode utilizar o Yay para instalar o Chromium (e qualquer outro programa no Aur).

yay -S chromium-vaapi

O Yay também é um front-end para o Pacman, você pode utilizá-lo para atualizar o sistema, bastar digitar yay no terminal.

2 Curtidas

Esqueci-me de aderir o comentário que eu já tinha instalado git e utilizo o trizen ao invés de yay. Vou actualizar agora.

1 Curtida

Isto é o que fiz nas etapas 2, 5, 6 e 7.

1 Curtida

Se você não fez nenhuma alteração no arquivo /boot/grub/grub.cfg não vejo motivos para o comando grub-mkconfig -o /boot/grub/grub.cfg quebrar o sistema, provavelmente foi outra coisa que impediu o boot.

2 Curtidas

OK, @drakofrost, como corrigiste o guia, vou reajustar o guia, vê se está correcto e alguns comandos são desnecessários, e há ainda alguns comandos perdidos que preciso fazer:

trizen -S chromium-vaapi-bin chromium-widevine libva-intel-driver libva-utils
sudo pacman -S xf86-video-{fbdev,intel,vesa}
sudo echo "LIBVA_DRIVERS_PATH=/usr/lib/dri/ \nLIBVA_DRIVER_NAME=i965 \nQT_LOGGING_RULES=’*=false’" >> /etc/environment
sudo pacman -S reflector
sudo reflector --latest 50 --protocol http --protocol https --sort rate --save /etc/pacman.d/mirrorlist
sudo reflector --latest 50 --sort rate --save /etc/pacman.d/mirrorlist
sudo echo "options i915 modeset=1" >> /etc/modprobe.conf
sudo sed --in-place --follow-symlinks 's/MODULES=()/MODULES=(intel_agp i915)/g' /etc/mkinitcpio.conf
sudo sed --in-place --foloww-symlinks 's/FILES=()/FILES=(/etc/modprobe.d/modprobe.conf)/g"'/etc/mkinitcpio.conf
sudo touch /etc/X11/xorg.conf.d/20-intel.conf
sudo echo 'Section "Device"
    Identifier "card0"
    Driver "intel"
    VendorName  "Intel Corporation"
    BoardName   "Intel Corporation N10 Family Integrated Graphics Controller"
    BusID       "PCI:0:2:0"
    Option      "SwapbuffersWait"    "false"
EndSection' >> /etc/X11/xorg.conf.d/20-intel.conf
sudo mkinitcpio -p linux
sudo grub-install --target=i386-pc /dev/sdb
sudo grub-mkconfig -o /boot/grub/grub.cfg

O guia está correcto?

Aparentemente sim, mas como tinha dito, não tenho experiência com KMS.

1 Curtida

OK, para evitar o estrago no Arch, tenho de criar um boot separado e customizado; Intel 945GM, Xorg, Kernel - performance (Page 3) / [testing] Repo Forum / Arch Linux Forums.

Actualizei o guia, @drakofrost. Esperamos as repostas doutros utilizadores.

1 Curtida

@drakofrost

Achei o tutorial:
https://carlosbecker.com/posts/how-to-enable-kms-on-i915-graphiccard-archlinux/

Actualização

@drakofrost, actualizei o guia, não sei se os últimos comandos são necessários.

1 Curtida

Eu desisti destes guias, porque já arrisquei seguindo-os e a inicialização quebrou. Eu reinstallei sem reformatar, mas tinha de reformatar a raiz porque instalei o bootloader e o directório /boot nessa raiz.

Tenho uma dúvida, @drakofrost: Se eu quiser reinstalar o sistema sem formatar a raiz (partição de root ou /), basta remover o directório /boot e reinstalar o /boot? E o kernel e o bootloader continuariam a funcionar?

Não sei dizer, nunca tentei fazer isso.