Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[RISOLTO] installkernel, dracut, initramfs e grub
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian)
View previous topic :: View next topic  
Author Message
yayo
Tux's lil' helper
Tux's lil' helper


Joined: 19 May 2014
Posts: 100

PostPosted: Tue Jan 23, 2024 8:59 pm    Post subject: [RISOLTO] installkernel, dracut, initramfs e grub Reply with quote

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
View user's profile Send private message
fedeliallalinea
Administrator
Administrator


Joined: 08 Mar 2003
Posts: 31288
Location: here

PostPosted: Wed Jan 24, 2024 6:37 am    Post subject: Reply with quote

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
View user's profile Send private message
yayo
Tux's lil' helper
Tux's lil' helper


Joined: 19 May 2014
Posts: 100

PostPosted: Wed Jan 24, 2024 8:57 pm    Post subject: Reply with quote

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
View user's profile Send private message
fedeliallalinea
Administrator
Administrator


Joined: 08 Mar 2003
Posts: 31288
Location: here

PostPosted: Thu Jan 25, 2024 6:28 am    Post subject: Reply with quote

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
View user's profile Send private message
yayo
Tux's lil' helper
Tux's lil' helper


Joined: 19 May 2014
Posts: 100

PostPosted: Thu Jan 25, 2024 10:54 pm    Post subject: Reply with quote

Ottimo!
Ho appena aggiornato tutto il resto. Il kernel lo faccio domani.
Appena verifico che è tutto ok, posto conferma.

Intanto grazie! :)
Back to top
View user's profile Send private message
yayo
Tux's lil' helper
Tux's lil' helper


Joined: 19 May 2014
Posts: 100

PostPosted: Sat Jan 27, 2024 7:59 pm    Post subject: Reply with quote

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. :P

Grazie ancora! :)
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) All times are GMT
Page 1 of 1

 
Jump to:  
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