15.0-alpha1

Se avete problemi con l'installazione e la configurazione di Slackware64 postate qui. Non usate questo forum per argomenti che trattano la Slackware32 o generali... per quelli usate rispettivamente il forum Slackware e Gnu/Linux in genere.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware64 usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware64, se l'argomento è Slackware32 o generale usate rispettivamente il forum Slackware o Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
gian_d
Linux 2.x
Linux 2.x
Messaggi: 364
Iscritto il: mer 16 lug 2014, 17:35
Nome Cognome: Giancarlo Dessì
Slackware: 64 current
Kernel: 5.10.xx
Desktop: KDE 5.20
Località: Sardinia
Contatta:

Re: 15.0-alpha1

Messaggio da gian_d »

è uno script che ho costruito io in base alle mie esigenze e configurazione. Questo è il codice:

Codice: Seleziona tutto

#!/bin/sh

echo "Avvio dell'aggiornamento del kernel ..."
cd /packages/current/kernel
VERSION=$( uname -r 2>/dev/null)
MAJOR=${VERSION%\.*\.*}
MINOR=${VERSION#*.}
MINOR=${MINOR%\.*}
PATCH=${VERSION##*.}
BUILD="0"
OLD=$MAJOR.$MINOR.$PATCH 
MAJOR=$((MAJOR - 3))
MINOR="0"
PATCH="0"
echo ""
echo "Rilevamento della versione corrente del kernel: "$OLD
echo ""
echo "Rilevamento della versione da installare ..."
until [ -f ./kernel-generic-$MAJOR*txz ]; do
	if [ -f ./kernel-generic-$MAJOR*txz ]; then
		echo "pirla"
	else
		MAJOR=$((MAJOR + 1))
	fi
done
until [ -f ./kernel-generic-$MAJOR.$MINOR.*txz ]; do
	if [ -f ./kernel-generic-$MAJOR.$MINOR.*txz ]; then
		echo "pirla"
	else
		MINOR=$((MINOR + 1))
	fi
done
until [ -f ./kernel-generic-$MAJOR.$MINOR.$PATCH-*txz ]; do
	if [ -f ./kernel-generic-$MAJOR.$MINOR.$PATCH-*txz ]; then
		echo "pirla"
	else
		PATCH=$((PATCH + 1))
	fi
done
until [ -f ./kernel-generic-$MAJOR.$MINOR.$PATCH-x86_64-$BUILD.txz ]; do
	if [ -f ./kernel-generic-$MAJOR.$MINOR.$PATCH-x86_64-$BUILD.txz ]; then
		echo "pirla"
	else
		BUILD=$((BUILD + 1))
	fi
done
echo ""
echo "Il kernel $OLD sarà aggiornato alla versione $MAJOR.$MINOR.$PATCH-$BUILD"

upgradepkg kernel-generic-$MAJOR.$MINOR.$PATCH-x86_64-$BUILD.txz

upgradepkg kernel-huge-$MAJOR.$MINOR.$PATCH-x86_64-$BUILD.txz

upgradepkg kernel-modules-$MAJOR.$MINOR.$PATCH-x86_64-$BUILD.txz

upgradepkg kernel-headers-$MAJOR.$MINOR.$PATCH-x86-$BUILD.txz

upgradepkg kernel-source-$MAJOR.$MINOR.$PATCH-noarch-$BUILD.txz

VERSION=$MAJOR.$MINOR.$PATCH

echo "Installazione dei nuovi pacchetti completata"
mv -v kernel *.txz ../done

echo "Uscita dalla directory /packages/current/kernel"
echo "Ingresso nella directory /boot"
cd /boot
echo ""
echo "Esecuzione di mkinitrd ..."
mkinitrd -c -k $VERSION -m ext4 -l it -o /boot/initrd-generic-$VERSION.gz

echo ""
echo "Rimozione del vecchio initial ramdisk ..."
rm -v /boot/initrd-generic-$OLD.gz

echo "Aggiornamento dei link simbolici"
rm initrd-generic
ln -s initrd-generic-$VERSION.gz initrd-generic 
rm vmlinuz-generic
ln -s vmlinuz-generic-$VERSION vmlinuz-generic

echo "Aggiornamento del kernel completato"
echo ""
echo "Uscita dalla directory /boot"
echo "Ingresso nella directory /packages/sbo/sistema/sbo/nvidia-kernel"
cd /packages/sbo/sistema/sbo/nvidia-kernel
echo ""
echo "Aggiornamento dei moduli del driver nvidia ..."
echo "Avvio dello slackbuild nvidia-kernel.SlackBuild"
KERNEL=$VERSION ./nvidia-kernel.SlackBuild
echo ""
echo "Aggiornamento del pacchetto nvidia-kernel ..."
upgradepkg /tmp/nvidia-kernel*tgz

echo ""
echo "Uscita dalla directory /packages/sbo/sistema/sbo/nvidia-kernel"
echo "Ingresso nella directory /packages/sbo/sistema/sbo/virtualbox-kernel"
cd ../virtualbox-kernel

echo ""
echo "Aggiornamento dei moduli di virtualbox ..."
echo "Avvio dello slackbuild virtualbox-kernel.SlackBuild"
KERNEL=$VERSION ./virtualbox-kernel.SlackBuild
echo ""
echo "Aggiornamento del pacchetto virtualbox-kernel ..."
upgradepkg /tmp/virtualbox-kernel*tgz

echo ""
echo "Rimozione dei pacchetti generati dalla directory /tmp ..."
rm -v /tmp/*kernel*tgz

echo ""
echo "Aggiornamento della configurazione del sistema completata"
echo "ATTENZIONE! Se il kernel è stato aggiornato ad una nuova MAJOR release o una nuova MINOR release"
echo "prima di riavviare il sistema aggiorna i template in /etc/grub.d, poi esegui grub-mkconfig "
echo "e grub-install per aggiornare la configurazione del bootloader."
echo "Al termine puoi riavviare il sistema."

stendi un velo pietoso sulle righe "echo pirla". Di solito uso quell'output per intercettare degli errori nei debug, poi mi sono dimenticato di rimuoverli :-D

I percorsi che fanno capo alle directory /packages/current/kernel /packages/sbo/sistema/sbo/nvidia-kernel e /packages/sbo/sistema/sbo/virtualbox-kernel si devono al fatto che pacchetti e slackbuild li gestico e li conservo in una partizione dedicata che monto in una directory /packages

Le varie reiterate righe di output (echo) sono finalizzate a individuare agevolmente la fase in cui si verifica un eventuale intoppo imprevisto. In ogni caso lo sto usando ormai da parecchi mesi e ormai è ben collaudato. L'unico imprevisto che ho incontrato relativamente recente si è verificato in un caso in cui il nuovo kernel scaricato era in realtà una ricompilazione del kernel già installato. Si trattava di un'eventualità che non avevo previsto. Se non ricordo male l'avevo corretto, ma non sono sicuro. In ogni caso l'imprevisto portava alla rimozione del initial ramdisk appena installato

Avatar utente
uboot
Linux 0.x
Linux 0.x
Messaggi: 26
Iscritto il: lun 24 dic 2007, 20:17
Nome Cognome: Sandro M
Slackware: 14.2
Kernel: 4.4.14
Desktop: KDE 4.14.21
Località: Attimis-Buja

Re: 15.0-alpha1

Messaggio da uboot »

super .... grazie mille !

Avatar utente
conraid
Staff
Staff
Messaggi: 13567
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: 15.0-alpha1

Messaggio da conraid »

Se posso permettermi di dare un suggerimento, meglio non fare upgradepkg del kernel, se quello nuovo per qualche motivo non va ti ritrovi senza kernel funzionante.
Io faccio installpkg e mi ritrovo così anche il vecchio kernel installato. Faccio il boot con il nuovo, e se tutto è ok allora rimuovo il vecchio.

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5346
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: 15.0-alpha1

Messaggio da ZeroUno »

Io ho preso un'altra strada.
In /boot ho messo un vmlinuz sicuramente funzionante così se mi dimentico qualsiasi pezzo su lilo o altro o se non funge il pacchetto o il penultimo kernel è fallato, comunque ho una release certificata (da me stesso)

Così non devo gestire duplicati in /var/log/packages
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Avatar utente
conraid
Staff
Staff
Messaggi: 13567
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: 15.0-alpha1

Messaggio da conraid »

Facevo anche io così, ma ora ho smesso di ricompilarmi i kernel, mi bastano quelli di Pat, quindi faccio in quel modo. L'importante è avere sempre un kernel sicuramente funzionante

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5346
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: 15.0-alpha1

Messaggio da ZeroUno »

In verità qui abbiamo tutti le competenze per fare ognuno il suo :) in attesa che Pat si decida a fare qualcosa. (per esempio, da tanti anni sul readme della distribuzione c'è scritto "usa il kernel-generic e fatti un initrd e non usare l'huge" ma di fatto l'installer mette l'huge; solo recentemente l'installer ha uno script per creare un initrd in automatico e fa puntare vmlinuz a generic sotto alcune condizioni; tuttavia un upgradepkg kernel* fa ripuntare vmlinuz ad huge e se non fai azioni manuali con quello ti ritrovi)

Personalmente ho passato diverse fasi. Una di queste prevedeva la modifica di mkinitrd.conf per l'iniezione di roba custom.
Da un po' di tempo mi affido al plugin zlookkernel di slackpkg+ per manutenere l'initrd.

Il vmlinuz certificato altro non è che una versione huge di quello di Pat rinominato in vmlinuz-funzionante con relativa entry statica in lilo.conf che non varia nel tempo così se faccio qualche upgrade fallato quello c'è. In lilo ho una sezione con kernel-generic (default), una con kernel-huge e una con kernel-funzionante
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Avatar utente
conraid
Staff
Staff
Messaggi: 13567
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: 15.0-alpha1

Messaggio da conraid »

Vero, anche che slackpkg possa gestire una cosa simile. Ora si limita a consigliare di mettere in blacklist il kernel.

Comunque io ho questi script

/boot/initrd.sh

Codice: Seleziona tutto

#!/bin/bash
#
# Script to automate kernel compilation
#
# Place this script in /usr/src, chmod +x it to make it executable
# This script must be run as root
#
set -eu


if [ ${1:-""} ]; then
  KERNELVERSION=$1
else
  KERNELVERSION=$(ls -l /boot/vmlinuz-generic | cut -d">" -f2 | cut -d- -f3)
fi

if [ -x /usr/sbin/iucode_tool ]; then
 if ! [ -e /boot/intel-ucode.cpio ]; then
  iucode_tool -v --write-earlyfw=/boot/intel-ucode.cpio /lib/firmware/intel-ucode{,-with-caveats}
 fi
fi
mkinitrd -F -k $KERNELVERSION
mv /boot/initrd.gz /boot/initrd-$KERNELVERSION.gz
ln -s /boot/initrd-$KERNELVERSION.gz /boot/initrd.gz

grub-mkconfig -o /boot/grub/grub.cfg
installkernel.sh

Codice: Seleziona tutto

#!/bin/sh

set -eu


MIRROR="/mnt/hd/mirror/slackware/slackware64-current/slackware64"

if ! [ -d $MIRROR ]; then
  mount /mnt/hd
  if ! [ -d $MIRROR ]; then
    echo "/mnt/hd non è montata"
    exit
  fi
fi

KV=$(echo $MIRROR/a/kernel-generic-*-x86_64-*.txt | rev | cut -d- -f3 | rev)
KR=$(echo $MIRROR/a/kernel-generic-*-x86_64-*.txt | rev | cut -d- -f1 | rev | cut -d. -f1)

echo Installo KERNEL $KV-x86_64-$KR
sleep 2

if [ -f "/var/lib/pkgtools/packages/kernel-generic-$KV-x86_64-$KR" ]; then
  echo "Kernel già installato"
else
  installpkg "$MIRROR/a/kernel-*-$KV-x86_64-$KR.txz"
  /boot/initrd.sh "$KV"
fi

sleep 3


DIRKT=$( ls /mnt/hd/mirror/slackware/slackware64-current/testing/packages/linux-* 2> /dev/null | wc -l)

if [ "$DIRKT" = 0 ]; then
  echo "Testing KERNEL DIR non esiste"
  exit
fi

MIRRORT="/mnt/hd/mirror/slackware/slackware64-current/testing"

KVT=$(echo $MIRRORT/packages/linux-*/kernel-generic-*-x86_64-*.txt | rev | cut -d- -f3 | rev)
KRT=$(echo $MIRRORT/packages/linux-*/kernel-generic-*-x86_64-*.txt | rev | cut -d- -f1 | rev | cut -d. -f1)
DIRVER=$(echo $MIRRORT/packages/linux-* | rev | cut -d- -f1 | rev)

echo Installo KERNEL $KVT-x86_64-$KRT
sleep 2

if [ -f "/var/lib/pkgtools/packages/kernel-generic-$KVT-x86_64-$KRT" ]; then
  echo "Kernel testing già installato"
else
  installpkg "$MIRRORT/packages/linux-$DIRVER/kernel-*-$KVT-x86_64-$KRT.txz"
  /boot/initrd.sh "$KVT"
fi

come vedi sono molto personali, hanno i percorsi che uso io etc... ho modificato ultimamente da quando ha messo il nuovo kernel in testing

gli sleep ci sono per darmi tempo di annullare se vedo che c'è un errore :)

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5346
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: 15.0-alpha1

Messaggio da ZeroUno »

Per la cronaca sono in fase di fixing / improvements di slackpkg+, quindi ogni suggerimento è ben accetto.

Mi è balzata pure in testa l'idea di supportare pacchetti duplicati in lista proprio per gestire un multikernel o cose così senza dover blacklistare e fare a mano.

Da capire - prima della fattibilità - se può essere utile.

Poi zlookkernel ora gestisce lilo ed elilo e nella prossima release sarà abilitabile in configurazione. Potrebbe essere utile metterci pure grub ma non me lo sono mai studiato
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Rispondi