View previous topic :: View next topic |
Author |
Message |
yayo Tux's lil' helper
Joined: 19 May 2014 Posts: 99
|
Posted: Tue Jan 23, 2024 8:59 pm Post subject: [RISOLTO] installkernel, dracut, initramfs e grub |
|
|
ciao!
Sono un po' confuso. =D
Mi serve una mano per far chiarezza.
Dovrei fare l'aggiornamento al kernel (6.6.13, che rispetto al precedente 6.1.67 salta qualche numero, sospetto che ci dovrò perdere del tempo).
E avrei anche una certa premura, devo approfittarne per reimpostare il blutùt e il joypad, che attualmente vanno poco o male o per niente.
Il fatto è che contemporaneamente è saltata fuori la news sul pacchetto installkernel, io neanche sapevo che roba è, figurati...
Mi dice che c'è da impostare la use flag se uso systemd, ma io ho sempre usato openrc, quindi non dovrebbe essere cosa per me.
Poi anche che devo "migrare" eventuali configurazioni personalizzate, ma se non sapevo nemmeno che dovevo/potevo farle...
Quindi pensavo di essere a posto così.
Poi sfogliando il forum trovo 'sta discussione qui:
https://forums.gentoo.org/viewtopic-t-1167006.html?sid=262f06d4081b158bb88116e5fd1906b0
dove sembra abbiano attivato una useflag sull'installkernel, che dovrebbe essere opzionale ma per via di un bug tocca averla di default (poi la disattiveranno, ma intanto c'è).
https://forums.gentoo.org/viewtopic-p-8813981.html?sid=0abd23375c10a3573a0a5aa1d74cf3d4#8813981
La use flag è "dracut", che supponevo tirasse dentro il pacchetto omonimo, usato per fare le initramfs.
Quindi vado a vedere.
La use flag infatti c'è, e attiva, ma il pacchetto no. (?!)
Code: | [ebuild R ] sys-kernel/installkernel-12::gentoo USE="dracut -grub -uki -ukify" 0 KiB
[ebuild N ] sys-kernel/dracut-059-r7::gentoo USE="(-selinux) (-test)" 476 KiB |
Forse installkernel usa delle routine di dracut ma interne, senza bisogno di installarle separatamente? boh...
(Ma allora invece di chiamare la useflag "dracut" non era meglio chiamarla "initramfs"?)
Quindi con questa impostazione mi si produrrebbe appunto un initramfs, che però io non uso.
Ma vabè, se è innocuo, lo possiamo lasciare. È innocuo? hmm...
Leggo che questo potrebbe non andar d'accordo con grub, il quale trovando la initramfs prende iniziative (!) e la carica senza chiedere permesso, col risultato che poi il pc potrebbe piantarsi, ma anche no, non ho capito... E siccome io ho il grub, comincio a preoccuparmi.
Quindi nella discussione di cui sopra salta fuori il buon pietinger che fa notare che se disattivi la useflag "dracut" non compare nessun initramfs.
(Ma non doveva essere attiva temporaneamente come pezza per un bug?)
E come se non bastasse, sempre pietinger aggiunge che c'è pure una discreta incomprensione tra il kernel, l'initramfs e il grub.
Perché l'initramfs, secondo come la fai (dracut come la fa? cioè no, installkernel come la fa?), potrebbe usare comandi mount diversi, uno che monta la partizione di root solo con UUID, oppure un'altro che usa il PARTUUID, ma il grub interviene e "aggiusta" il PARTUUID in UUID perchè il mount riesca a trovarla comunque, peccato che però il kernel capisce solo il PARTUUID... e si pianta tutto.
https://wiki.gentoo.org/wiki/User:Pietinger/Tutorials/Confusion_with_root%3DPARTUUID%3D_and_root%3DUUID%3D
Riassumendo, al netto della sensazione di cosa venuta male,
mi par di capire che secondo i post di pietinger e sMueggli dovrebbe bastare togliere a installkernel la useflag incriminata _E_ contemporaneamente non avere un dracut installato.
E non si crea nessun initramfs. E va tutto a posto.
Ho capito bene?
Vorrei evitare di far danni se posso. :/
Last edited by yayo on Sat Jan 27, 2024 8:00 pm; edited 1 time in total |
|
Back to top |
|
|
fedeliallalinea Administrator
Joined: 08 Mar 2003 Posts: 31255 Location: here
|
Posted: Wed Jan 24, 2024 6:37 am Post subject: |
|
|
Fino ad ora cosa usavi per compilare il kernel? Avevi un initramfs? Puoi postare il tuo grub.cfg?
Il pacchetto sys-kernel/installkernel è composto da una serie di script che permettono di installare il kernel nella /boot e fare altre operazioni come creare un initramfs e/o aggiornare anche grub in automatico.
Se non hai mai creato un initramfs (genkernel lo creava automaticamente) ponso che tu possa disabilitare la use flag dracut.
Ad esempio io uso lvm sulla partizione di root quindi ho bisogno un initramfs che abbia i comandi lvm prima di partire altrimenti non saprà come montare le partizioni. _________________ Questions are guaranteed in life; Answers aren't. |
|
Back to top |
|
|
yayo Tux's lil' helper
Joined: 19 May 2014 Posts: 99
|
Posted: Wed Jan 24, 2024 8:57 pm Post subject: |
|
|
Per compilare il kernel seguo una procedura manuale (come l'ho presa da una pagina della wiki di gentoo alcuni anni fa).
La sequenza dei comandi è questa:
Code: | emerge -uD --with-bdeps=y @world
mount /boot
cd /usr/src/linux
cp .config ~/kernel-config-`uname -r`
eselect kernel list
eselect kernel set <#>
cd /usr/src/linux
zcat /proc/config.gz > /usr/src/linux/.config
make oldconfig
make modules_prepare
make -j6
make modules_install
emerge --ask @module-rebuild
make install
grub-mkconfig -o /boot/grub/grub.cfg |
Di solito contemporaneamente al "make oldconfig" lancio anche un "make menuconfig" in una finestra separata, ma solo per cercare informazioni sulle nuove impostazioni per decidere se attivarle o meno, poi da lì esco senza modificare e senza salvare nulla. Il comando oldconfig mi pare scarsino in termini di informazioni utili, e siccome ho visto che si può fare...
Come dicevo nel primo post io NON uso la initramfs. Non credo di averne bisogno, e il computer così com'è funziona bene (a parte qualche messaggio d'errore nell'output di dmesg, non necessariamente gravi, ma ci guarderò appena posso.)
Ho usato genkernel solo le prime volte, circa 10 anni fa, poi basta.
il mio grub.cfg è questo:
Code: | #
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
load_env
fi
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="0"
fi
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
fi
export menuentry_id_option
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
if [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root cea64f2b-f17a-4b8e-b5b3-023333fec1cc
font="/usr/share/grub/unicode.pf2"
fi
if loadfont $font ; then
set gfxmode=1366x768
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=it_IT
insmod gettext
fi
terminal_output gfxterm
insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set=root B0A8-C45C
insmod gfxmenu
loadfont ($root)/grub/themes/yayo/Dejavu-Bold_12.pf2
loadfont ($root)/grub/themes/yayo/Dejavu-Bold_16.pf2
loadfont ($root)/grub/themes/yayo/Liberation-Mono_14.pf2
loadfont ($root)/grub/themes/yayo/LiberationMono_12.pf2
insmod png
set theme=($root)/grub/themes/yayo/theme.txt
export theme
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=5
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Gentoo GNU/Linux' --class gentoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-cea64f2b-f17a-4b8e-b5b3-023333fec1cc' {
load_video
if [ "x$grub_platform" = xefi ]; then
set gfxpayload=keep
fi
insmod gzio
insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set=root B0A8-C45C
echo 'Loading Linux 6.1.67-gentoo ...'
linux /vmlinuz-6.1.67-gentoo root=PARTUUID=cd6a799f-ccb4-8a4d-bf5c-711ca90da7bd ro
}
submenu 'Advanced options for Gentoo GNU/Linux' $menuentry_id_option 'gnulinux-advanced-cea64f2b-f17a-4b8e-b5b3-023333fec1cc' {
menuentry 'Gentoo GNU/Linux, with Linux 6.1.67-gentoo' --class gentoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.1.67-gentoo-advanced-cea64f2b-f17a-4b8e-b5b3-023333fec1cc' {
load_video
if [ "x$grub_platform" = xefi ]; then
set gfxpayload=keep
fi
insmod gzio
insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set=root B0A8-C45C
echo 'Loading Linux 6.1.67-gentoo ...'
linux /vmlinuz-6.1.67-gentoo root=PARTUUID=cd6a799f-ccb4-8a4d-bf5c-711ca90da7bd ro
}
menuentry 'Gentoo GNU/Linux, with Linux 6.1.67-gentoo (recovery mode)' --class gentoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.1.67-gentoo-recovery-cea64f2b-f17a-4b8e-b5b3-023333fec1cc' {
load_video
if [ "x$grub_platform" = xefi ]; then
set gfxpayload=keep
fi
insmod gzio
insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set=root B0A8-C45C
echo 'Loading Linux 6.1.67-gentoo ...'
linux /vmlinuz-6.1.67-gentoo root=PARTUUID=cd6a799f-ccb4-8a4d-bf5c-711ca90da7bd ro single
}
menuentry 'Gentoo GNU/Linux, with Linux 6.1.57-gentoo' --class gentoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.1.57-gentoo-advanced-cea64f2b-f17a-4b8e-b5b3-023333fec1cc' {
load_video
if [ "x$grub_platform" = xefi ]; then
set gfxpayload=keep
fi
insmod gzio
insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set=root B0A8-C45C
echo 'Loading Linux 6.1.57-gentoo ...'
linux /vmlinuz-6.1.57-gentoo root=PARTUUID=cd6a799f-ccb4-8a4d-bf5c-711ca90da7bd ro
}
menuentry 'Gentoo GNU/Linux, with Linux 6.1.57-gentoo (recovery mode)' --class gentoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.1.57-gentoo-recovery-cea64f2b-f17a-4b8e-b5b3-023333fec1cc' {
load_video
if [ "x$grub_platform" = xefi ]; then
set gfxpayload=keep
fi
insmod gzio
insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set=root B0A8-C45C
echo 'Loading Linux 6.1.57-gentoo ...'
linux /vmlinuz-6.1.57-gentoo root=PARTUUID=cd6a799f-ccb4-8a4d-bf5c-711ca90da7bd ro single
}
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/30_uefi-firmware ###
menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
fwsetup
}
### END /etc/grub.d/30_uefi-firmware ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg
fi
### END /etc/grub.d/41_custom ### |
|
|
Back to top |
|
|
fedeliallalinea Administrator
Joined: 08 Mar 2003 Posts: 31255 Location: here
|
Posted: Thu Jan 25, 2024 6:28 am Post subject: |
|
|
La versione 18 di sys-kernel/installkernel, appena stabilizzata, non abilita più default la use flag dracut quindi puoi installare il kernel come hai sempre fatto. _________________ Questions are guaranteed in life; Answers aren't. |
|
Back to top |
|
|
yayo Tux's lil' helper
Joined: 19 May 2014 Posts: 99
|
Posted: Thu Jan 25, 2024 10:54 pm Post subject: |
|
|
Ottimo!
Ho appena aggiornato tutto il resto. Il kernel lo faccio domani.
Appena verifico che è tutto ok, posto conferma.
Intanto grazie! |
|
Back to top |
|
|
yayo Tux's lil' helper
Joined: 19 May 2014 Posts: 99
|
Posted: Sat Jan 27, 2024 7:59 pm Post subject: |
|
|
Fatto.
Ho aggiornato il pc nuovo e anche quello vecchio.
Non ho visto comparire initramfs indesiderati e sembra tutto ok.
Ne ho approfittato anche per correggere un paio di settaggi: adesso il joypad funziona meglio (dovrò provarlo un po', ma pare che funzioni anche sui software che prima non lo riconoscevano), mentre il bluetooth funzionaaa... mm... ni... quasi.
Ha dei problemi a connettersi ai dispositivi, ma da quanto ho capito dovrebbe essere un bug di bluez. Comunque almeno la scheda adesso funziona ed è attiva, è già qualcosa.
Grazie ancora! |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|