Fix error Possible missing firmware /lib/firmware/i915

 

Fix error Possible missing firmware /lib/firmware/i915Fix error Possible missing firmware /lib/firmware/i915

 

Questi tipo di errori sono presente oramai da qualche anno e si presentano quando si lancia il comando:

sudo update-initramfs -u

questi errori segnalano che ci sono dei firmware mancanti e si riferiscono alle microarchitetture intel come:

Sky Lake, Broxton, Kaby Lake, Commet Lake, Ice Lake, Elkhart Lake, Tiger Lake, Gemini Lake, Alder Lake,Arc Alchemist.

Per risolvere il problema su Debian, SysLinuxOS ed altre distro, basta scaricare da GitHub il mio script bash, che si occuperà di scaricare tutti i firmware .bin, compararli con quelli già presenti, per poi copiare solamenti quelli mancanti in /lib/firmware/i915.

Per utilizzare fixi915.sh eseguire i seguenti comandi:

$ git clone https://github.com/fconidi/fix-firmware-i915.git
$ cd fix-firmware-i915/
$ chmod +x fixi915.sh
$ ./fixi915.sh

questo è tutto!

 

Di seguito lo script completo:

 

#!/bin/bash

# Source: https://francoconidi.it/fix-error-possible-missing/
# Source: https://syslinuxos.com

# Install curl, wget, lynx

sudo apt update; sudo apt install -y wget curl lynx

# folder creation
mkdir /home/$USER/i915; cd /home/$USER/i915

# Download the web page and use lynx to extract the HTTP/HTTPS links

lynx -dump "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/i915/" | grep -o 'https\?://[^ ]*\.bin' > /home/$USER/i915/links.txt

# Download the .bin files from the list of links
while read -r line
do
# Extract the filename from the link
filename=$(basename "$line")

# Download the file from the link using curl
curl -OJL "$line"

# Rename the downloaded file to its original name
mv "$filename" "${filename%.*}.bin"
done < "links.txt"

# Two folders to compare
folder1="/home/$USER/i915"
folder2="/lib/firmware/i915/"

# Check folders
if [ ! -d "$folder1" ]; then
echo "Error: First folder does not exist."
exit 1
fi

if [ ! -d "$folder2" ]; then
echo "Error: Second folder does not exist."
exit 1
fi

# Cycle through the files in the first folder
for file1 in "$folder1"/*.bin; do
# Extract the filename without the path
filename="$(basename "$file1")"
# Check if the file exists in the second folder
if [ ! -f "$folder2/$filename" ]; then
# Copy the missing file into the second folder
sudo cp "$file1" "$folder2"
echo "The file $filename has been copied to the second folder."
fi
done

echo "The check has been completed."

# Update initramfs
sudo update-initramfs -u

echo "Fix missing firmware has been completed."

 

Fix error Possible missing firmware /lib/firmware/i915

 

enjoy 😉

 

How to compile kernel 5.11 on Debian 11

How to compile kernel 5.11 on Debian 11

How to compile kernel 5.11 on Debian 11

Nei giorni scorsi ho più volte ricompilato il kernel poichè volevo risolvere il problema del lettore “Alcor Micro AU6625”, che su un notebook HP Pavillion 15-dk000nl, non viene riconosciuto, sia su Debian che su tutte le altre distro. Da quello che ho visto e letto, fin dal kernel 5.6, è stato inserito questo driver, ma per quanto mi riguarda non sembra funzionare. Io stesso ho fatto dei cambiamenti, ma senza nessun risultato al momento. Ad ogni modo questa è una altra storia.

Il kernel si può compilare direttamente, come moduli, oppure attraverso la creazione di un pacchetto in formato .deb, installabile.

Prerequisiti:

$ sudo apt-get install build-essential libncurses-dev bison flex libssl-dev libelf-dev dwarves bc rsync wget

Metodo 1

Scaricare il kernel direttamente dalla pagina ufficiale, oppure con wget:

$ mkdir kernel; cd kernel
$ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.11.18.tar.xz
$ tar -xvf linux*
$ cd linux-5.11.18/

a questo punto utilizzare, “localmodconfig“, per un kernel minimale/leggero, che provvederà a caricare ed utilizzare solo i driver strettamente necessari per il funzionamento del computer, oppure “menuconfig“, per abilitare nuove funzionalità.

$ make localmodconfig
$ make -j $(nproc)
$ make -j $(nproc) modules
$ sudo make modules_install

il processo prenderà un pò di tempo, tutto dipende dalla potenza dei processori, il mio è un 12 core, quindi ha fatto relativamente presto. Per utilizzare al massimo i processori ho utilizzato “make -j $(nproc)“, che sfrutta tutti i processori esistenti. In fine riavviare.

Metodo 2

$ mkdir kernel; cd kernel
$ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.11.18.tar.xz
$ tar -xvf linux*
$ cd linux-5.11.18/

per non avere l’errore seguente:

make[4]: *** No rule to make target 'debian/certs/test-signing-certs.pem', needed by 'certs/x509_certificate_list'.  Stop.
make[4]: *** Waiting for unfinished jobs...

modificare CONFIG_SYSTEM_TRUSTED_KEYS utilizzando sed:

$ sed -ri '/CONFIG_SYSTEM_TRUSTED_KEYS/s/=.+/=""/g' .config

costruzione linux-image e linux-headers:

$ make localmodconfig
$ time nice make -j`nproc` bindeb-pkg
$ cd ..
$ sudo dpkg -i linux-image-* linux-headers-*

How to compile kernel 5.11 on Debian 11

enjoy 😉

 

Debian 10 freeze random

 

Debian 10 freeze random

Debian 10 freeze random

Su Debian 10 si verificano dei freeze randomici, dove praticamente l’unica cosa che funziona è il mouse, e questo mi è capitato sia con scheda grafica Nvidia, sia con la solo Intel, di conseguenza ho escluso che fosse un problema grafico. La mia attenzione successivamente è andata al kernel installato, e mi sono ricordato che con il kernel di default Debian, il 4.19, non avevo questi problemi. Aggiornando alla versione 5.8 e 5.9, si presenta randomicamente questo freeze. Praticamente puoi accedere solo in tty ed eseguire il reboot. Ho anche eseguito l’accesso via ssh, ma nei log non ho notato nulla di strano. Verificando la versione dei firmware ho notato che sono tutti alla versione 2019, compresi i firmware-nonfree. Quindi, con kernel aggiornato, servono per forza gli ultimi driver. Si risolve con i repository buster-backports:

$ sudo su
# echo 'deb http://deb.debian.org/debian/ buster-backports main contrib non-free' > /etc/apt/sources.list.d/buster-backports.list.list
# apt update
# apt install -t buster-backports firmware-linux-nonfree firmware-misc-nonfree amd64-microcode firmware-intel-sound firmware-iwlwifi
Debian 10 freeze random

 

enjoy 😉

 

How to compile kernel 4.15.0-rc6 on Debian 9.3

 

How to compile kernel 4.15.0-rc6 on Debian 9.3

How to compile kernel 4.15.0-rc6 on Debian 9.3

Il kernel 4.15 porta con se diverse novità, e ad oggi siamo ancora alla rc6, ma comunque si può provare a compilarlo direttamente da Debian Stretch 9.3. L'unico problema è la mancanza del pacchetto kernel-package che bisogna procurarselo dai repo testing:

# echo 'deb https://ftp.it.debian.org/debian/ testing main' > /etc/apt/sources.list.d/testing.list
# apt update
# apt install git fakeroot build-essential ncurses-dev libssl-dev bc libelf-dev
# apt --no-install-recommends install -t testing kernel-package
# rm /etc/apt/sources.list.d/testing.list
# apt update

How to compile kernel 4.15.0-rc6 on Debian 9.3

Compilazione ed installazione:

$ wget https://git.kernel.org/torvalds/t/linux-4.15-rc6.tar.gz
$ tar xvf linux-4*
$ cd linux-4.15-rc6/
$ cp /boot/config-$(uname -r) .config
$ make menuconfig
$ make-kpkg clean
$ fakeroot make-kpkg --initrd --revision=1.0.edm kernel_image kernel_headers -j8
$ cd ..
$ sudo dpkg -i linux-image-* linux-headers-*

How to compile kernel 4.15.0-rc6 on Debian 9.3

enjoy 😉

 

How to compile kernel 4.13.7 on Debian 9.2

 

How to compile kernel 4.13.7 on Debian 9.2

How to compile kernel 4.13.7 on Debian 9.2

Il kernel 4.13 porta con se diverse novità, e ad oggi si può ottenere installandolo da Debian Testing, oppure provare a compilarlo direttamente su Debian Stretch 9.2. L'unico problema è la mancanza del pacchetto kernel-package che bisogna procurarselo dai repo testing:

# echo 'deb https://ftp.it.debian.org/debian/ testing main' > /etc/apt/sources.list.d/testing.list
# apt update
# apt install git fakeroot build-essential ncurses-dev libssl-dev bc
# apt --no-install-recommends install -t testing kernel-package

una volta installato kernel package andare a commentare il repo testing che non ci servirà più!

How to compile kernel 4.13.7 on Debian 9.2

Compilazione ed installazione:

$ wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.13.7.tar.xz
$ tar xvf linux-4*
$ cd linux-4.13.7/
$ cp /boot/config-$(uname -r) .config
$ make menuconfig
$ make-kpkg clean
$ fakeroot make-kpkg --initrd --revision=1.0.edm kernel_image kernel_headers -j8
$ cd ..
$ sudo dpkg -i linux-image-* linux-headers-*

How to compile kernel 4.13.7 on Debian 9.2

enjoy 😉

(Solved) /proc/devices: No entry for device-mapper found

 

(Solved) /proc/devices: No entry for device-mapper found 

(Solved) /proc/devices: No entry for device-mapper found. Dopo aver compilato il kernel 4.8 su Debian Stretch/Sid, l'ho installato anche su Debian Jessie, e mi sono ritrovato lanciando il comando update-grub, con l'errore "No entry for device-mapper found". Per risolvere il problema bisogna ricompilare il kernel ed abilitare il modulo device-mapper. Per verificare se è presente:

# lsmod | grep -i dm-mod
# modinfo dm-mod

riepilogando:

$ wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.8.12.tar.xz
$ tar xvf linux-4.8.12.tar.xz
$ cd linux-4.8.12/
$ cp /boot/config-$(uname -r) .config
$ make menuconfig

poi abilitare il modulo in Device Drivers –> Multiple devices driver support (RAID and LVM) –> Device mapper support

(Solved) /proc/devices: No entrfor device-mapper found (Solved) /proc/devices: No entry for device-mapper found(Solved) /proc/devices: No entry for device-mapper found

salvare, e dopo aver ricompilato, riavviare:

# make -j8;make modules -j8;make modules_install -j8;make install
# reboot

enjoy 😉

 

How to compile kernel 4.8.12 on Debian Stretch/Sid

 

How to compile kernel 4.8.12 on Debian Stretch/Sid

How to compile kernel 4.8.12 on Debian Stretch/Sid. Nella categoria Kernel ci sono diverse guide su come ricompilare un kernel, ma dopo qualche anno che non lo facevo più, ho dovuto rimetterci mano perchè mi serve abilitato il modulo UFS, per la scrittura delle partizioni con Debian Gnu/kFreeBSD e FreeBSD. Al momento della compilazione si è verificato un errore, che successivamente ho capito essere un bug, quindi di seguito anche la soluzione:

Installare l'occorrente per la compilazione:

$ sudo apt-get install git fakeroot build-essential ncurses-dev libssl-dev bc
$ sudo apt-get --no-install-recommends install kernel-package

Scaricare l'ultimo kernel, da kernel.org, al momento il 4.8.12:

$ wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.8.12.tar.xz
$ tar xvf linux-4.8.12.tar.xz
$ cd linux-4.8.12/
$ cp /boot/config-$(uname -r) .config
$ make menuconfig
$ make-kpkg clean
$ fakeroot make-kpkg --initrd --revision=1.0.UFS kernel_image kernel_headers -j12
$ cd ..
$ sudo dpkg -i linux-image-* linux-headers-*

Quello sopra è il metodo standard per la compilazione del kernel, ma attualmente per un bug la compilazione fallisce restituendo un errore del tipo:

"make[2]: *** No rule to make target 'debian/certs/benh@debian.org.cert.pem', needed by 'certs/x509_certificate_list'.  Stop"

"No rule to make target 'debian/certs/benh@debian.org.cert.pem')"

A questo punto ho provato a commentare senza successo nel .config le voci:

CONFIG_MODULE_SIG_KEY=""
CONFIG_SYSTEM_TRUSTED_KEYRING=y
CONFIG_SYSTEM_TRUSTED_KEYS=""

ma al momento di lanciare il comando make menuconfig, in automatico la stringa CONFIG_SYSTEM_TRUSTED_KEYRING=y, viene attivata. Per risolvere il problema bisogna modificare il file .config abilitando quello di cui si ha bisogno, nel mio caso il modulo UFS, e poi lanciare make localmodconfig

$ make localmodconfig 

invece di:

$ make menuconfig

How to compile kernel 4.8.12 on Debian Stretch/Sid.

enjoy 😉

 

Compilare kernel 3.6.x vanilla alla Debian way

 

 

 

Compilare kernel 3.6.x vanilla alla Debian way:

 

# apt-get install -y git-core kernel-package fakeroot build-essential ncurses-dev

# cd /usr/src

# wget -c https://www.kernel.org/pub/linux/kernel/v3.0/linux-3.6.tar.bz2

# tar jxvf linux-3.6.tar.bz2

# cd linux-3.6

# cp /boot/config-`uname -r` ./.config

# make menuconfig

# make-kpkg clean

# fakeroot make-kpkg --initrd --append-to-version=-vanilla kernel_image kernel_headers

# cd ..

# dpkg -i linux-image-* linux-headers-*

# init 6

 

enjoy 😉

 

Velocizzare boot e prestazioni su Debian Squeeze con e4rat 0.2.3

 

 

 

 

Un anno e mezzo fa circa avevo fatto una guida divisa in due parti, qua e qua, su come velocizzare il boot e le prestazioni su Debian Squeeze, a distanza di tempo ho provato anche la soluzione e4rat (Reducing Access Times), che promette di velocizzare il boot di ben 3 volte. Questo è un tool che si occupa della riallocazione dei blocchi dei programmi caricati all'avvio, e precaricare i programmi usati frequentemente. Questa è una guida semplice, che è fatta di 3 fasi:

 

  1. e4rat-collect – raccoglie informazione sui file caricati (default 120 secondi)
  2. e4rat-realloc – riallocazione files
  3. e4rat-preload – precaricamento programmi

 

Download ed installazione di e4rat_0.2.3_amd64.deb oppure e4rat_0.2.3_i386.deb

 

$ sudo nano /boot/grub/grub.cfg

 

e dopo ro quiet passare il parametro seguente al kernel:

 

init=/sbin/e4rat-collect

 

salvare e riavviare. Da questo momento si hanno 120 secondi per usare i programmi di proprio interesse, e nel contempo e4rat raccoglierà le informazioni in /var/lib/e4rat/startup.log. Se 120 secondi per qualcuno non sono abbastanza, si possono modificare editando il file /etc/e4rat.conf. Adesso bisogna andare a rimuovere il parametro precedente inserito, e poi:

 

$ sudo init 1

 

inserire password di root, e poi lanciare il comando:

 

# e4rat-realloc  /var/lib/e4rat/startup.log

 

una volta finita la reallocozione:

 

init 2

 

loggarsi ed inserire permanentemente il parametro e4rat-preload:

 

$ sudo nano /etc/default/grub

 

e modificare la stringa in questo modo:

 

GRUB_CMDLINE_LINUX_DEFAULT="init=/sbin/e4rat-preload"

 

salvare, aggiornare grub e riavviare:

 

$ sudo update-grub

$ sudo init 6

 

questo è tutto.

 

 

enjoy 😉

Kernel 3.2.0 backports su Debian Squeeze

 

Installando Debian Squeeze su uno dei miei Acer Aspire One  (AO110), mi sono accorto che nei repo backports, è arrivato il kernel 3.2.0.

 

# apt-get install -t squeeze-backports linux-image-3.2.0-0.bpo.1-686-pae linux-headers-3.2.0-0.bpo.1-686-pae

 

enjoy 😉