Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[HOWTO] suspend2 e filewriter su lvm2 (usando genkernel)
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) Risorse italiane (documentazione e tools)
View previous topic :: View next topic  
Author Message
mrfree
Veteran
Veteran


Joined: 15 Mar 2003
Posts: 1303
Location: Europe.Italy.Sulmona

PostPosted: Tue Dec 13, 2005 9:57 am    Post subject: [HOWTO] suspend2 e filewriter su lvm2 (usando genkernel) Reply with quote

Quest'howto nasce come soluzione al problema che ho esposto in questo post sul forum internazionale

In breve... Il problema nasce dal fatto che attualmente sto utilizzando lvm2 per tutte le partizioni, compresa quella di root (ma esclusa quella di boot) e per utilizzare il suspend2 filewriter in questa situazione sono necessari alcuni accorgimenti.

Le istruzioni che seguono sono da intendersi come delle integrazioni alle documentazioni
genkernel
software suspend2 howto
fbsplash howto
...

Quello che faremo è:
  • creare uno script di init nell'initramfs modificato che supporti il resuming (detta così può sembrare difficile ma non è così)
  • <finezza> creare un initramfs overlay per utilizzare fbsplash per i primi 2 messaggi di suspend2 al resuming ;) </finezza>
  • impostare genkernel opportunamente

ATTENZIONE: consultare l'ultima versione dell'howto (2 post più in basso)!!!



Ma procediamo con ordine...
creazione script linuxrc con supporto suspend2
Allo stato attuale delle cose sto utilizzando sys-kernel/genkernel-3.3.6 quindi la patch si riferisce alla versione del file linuxrc fornita da questa versione
Code:
--- /usr/share/genkernel/generic/linuxrc        2005-11-16 10:18:41.000000000 +0100
+++ linuxrc     2005-12-12 23:42:35.000000000 +0100
@@ -304,6 +304,11 @@

 setup_keymap

+
+# Suspend2 resuming...
+echo /sbin/suspend2ui_fbsplash > /proc/suspend2/userui_program
+echo > /proc/suspend2/do_resume
+
 # Determine root device
 good_msg 'Determining root device...'
 while true

E' sufficiente applicare questa patch (salvandola su un file che successivamente sarà suspend2.patch) al file utilizzato di default da genkernel
a tal proposito consiglio vivamente di copiarlo da qualche parte lasciando intatto l'originale
Code:
# mkdir genkernel_script
# cd genkernel_script
# cp /usr/share/genkernel/generic/linuxrc .
# patch < suspend2.patch
patching file linuxrc


creazione dell'initramfs overlay
E' inoltre necessario rendere disponibili i tool suspend2ui nell'initramfs per utilizzare l'fbsplash fin dall'inizio (diversamente i primi 2 messaggi di suspend2 saranno visualizzati come semplice testo sul tema di splash utilizzato... bleahh :))
Code:
# pwd
/root/genkernel_script
# mkdir initramfs_overlay
# cd initramfs_overlay

# quickpkg sys-apps/suspend2-userui
# tar xvjf /usr/portage/packages/All/suspend2-userui-0.6.1.tbz2 (la versione attuale è la 0.6.1)
# rm -rf usr

# mkdir -p etc/splash
# ln -s etc/splash/livecd-2005.1 etc/splash/suspend2 (modificare a seconda del tema utilizzato)

Al questo punto dovreste aver creato una struttura del genere
Code:
.
|-- etc
|   `-- splash
|       `-- suspend2 -> livecd-2005.1
`-- sbin
    |-- suspend2ui_fbsplash
    `-- suspend2ui_text

3 directories, 3 files


parametri per genkernel
Ora non ci resta che lanciare genkernel per compilare il kernel e compagnia bella
Quello che segue è il comando che uso io, dovreste eventualmente adattarlo alle vostre esigenze ;)
Code:
genkernel --gensplash=livecd-2005.1 --gensplash-res=1024x768 --lvm2 --linuxrc=/root/genkernel_script/linuxrc --initramfs-overlay=/root/genkernel_script/initramfs_overlay --install --oldconfig all

Posto anche una delle entry del mio grub-menu che può essere utile ;)
Code:
title=Gentoo Linux (2.6.14-suspend2-r7) - Ufficio
  root (hd0,2)
  kernel /kernel-genkernel-x86-2.6.14-suspend2-r7 udev idle=halt dolvm2 libata.atapi_enabled=1 root=/dev/ram0 init=/linuxrc real_root=/dev/vg/root video=vesafb:1024x768-16@60 splash=silent,fadein,theme:livecd-2005.1 CONSOLE=/dev/tty1 quiet switchto=ufficio resume2=file:/dev/dm-0:0x44610
  initrd /initramfs-genkernel-x86-2.6.14-suspend2-r7

Non rimane che modificare il valore del paramentro resume2 opportunamente, un modo per ottenere il valore corretto è lanciare il comando hibernate (dopo aver configurato /etc/hibernate/hibernate.conf per l'uso del filewriter) questo ritornerà un errore suggerendo il valore giusto per il proprio sistema... ovviamente ci sono altri metodi più eleganti ma questo... just works :)

Per comodità ecco il mio file /etc/hibernate/hibernate.conf (al netto di buona parte dei commenti)
Code:

### suspend2 (for Software Suspend 2)
UseSuspend2 yes
Reboot no
EnableEscape yes
DefaultConsoleLevel 1
Compressor lzf
Encryptor none
## For filewriter:
FilewriterLocation /suspend_file 1000
VerifyFilewriterResume2 yes

ProcSetting userui_program /sbin/suspend2ui_fbsplash

### Some global settings
Verbosity 0
LogFile /var/log/hibernate.log
LogVerbosity 1
Distribution gentoo

### Scriptlets
SaveClock restore-only

### fbsplash (enable SwitchToTextMode if you use this)
FBSplash on
FBSplashTheme suspend2

### filesystems
UnmountFSTypes smbfs nfs vfat ntfs

### modules
UnloadModules uhci_hcd ehci_hcd
UnloadBlacklistedModules yes
LoadModules auto

### modules-gentoo
# GentooModulesAutoload yes

### xhacks
SwitchToTextMode yes



Quest'approccio mi è costato diversi giorni di ricerca e sperimentazione, spero vi sia utile ;)

Happy suspending...
_________________
Please EU, pimp my country!

ICE: /etc/init.d/iptables panic


Last edited by mrfree on Wed Dec 13, 2006 10:55 am; edited 4 times in total
Back to top
View user's profile Send private message
saffsd
Tux's lil' helper
Tux's lil' helper


Joined: 03 Mar 2006
Posts: 139

PostPosted: Sun Jun 18, 2006 11:56 am    Post subject: Reply with quote

Buonasera!
Mi trovo in una situazione simile alla sua. Sto cercando di utilizare lo swapwriter ansi che il filewriter pero non funziona. Nelle versioni piu recenti di genkernel le righe a riguardo la /do_resume ci sono gia pero non riesce a trovare la partizione swap che si trova in una delle partizioni LVM che in turno e su dmraid. Ha consigli? Grazie!
Back to top
View user's profile Send private message
mrfree
Veteran
Veteran


Joined: 15 Mar 2003
Posts: 1303
Location: Europe.Italy.Sulmona

PostPosted: Wed Dec 13, 2006 10:45 am    Post subject: Reply with quote

Le ultime versioni di genkernel supportano il resuming, per questo ho deciso di aggiornare l'howto semplificandolo.
Non è più necessario infatti patchare lo script linuxrc.


creazione dell'initramfs overlay
E' inoltre necessario rendere disponibili i tool suspend2ui nell'initramfs per utilizzare l'fbsplash fin dall'inizio (diversamente i primi 2 messaggi di suspend2 saranno visualizzati come semplice testo sul tema di splash utilizzato... bleahh :))
Code:
# pwd
/root/genkernel_script
# mkdir initramfs_overlay
# cd initramfs_overlay

# quickpkg sys-apps/suspend2-userui
# tar xvjf /usr/portage/packages/All/suspend2-userui-0.6.3-r1.tbz2 (la versione stabile attuale è la 0.6.3-r1)
# rm -rf usr

# mkdir -p etc/splash
# ln -s etc/splash/livecd-2006.1 etc/splash/suspend2 (modificare a seconda del tema utilizzato)

Al questo punto dovreste aver creato una struttura del genere
Code:
.
|-- etc
|   `-- splash
|       `-- suspend2 -> livecd-2006.1
`-- sbin
    |-- suspend2ui_fbsplash
    `-- suspend2ui_text

3 directories, 3 files


parametri per genkernel
Ora non ci resta che lanciare genkernel per compilare il kernel e compagnia bella
Quello che segue è il comando che uso io, dovreste eventualmente adattarlo alle vostre esigenze ;)
Code:
genkernel --gensplash=livecd-2006.1 --gensplash-res=1024x768 --lvm2 --initramfs-overlay=/root/genkernel_script/initramfs_overlay --install --oldconfig all

Posto anche una delle entry del mio grub-menu che può essere utile ;)
Code:
title=Gentoo Linux (2.6.18-suspend2-r1) - Ufficio
  root (hd0,2)
  kernel /kernel-genkernel-x86-2.6.18-suspend2-r1 dolvm2 processor.max_cstate=2 libata.atapi_enabled=1 root=/dev/ram0 init=/linuxrc real_root=/dev/vg/root video=vesafb:1024x768-32@60,ywrap,mtrr:3 splash=silent,theme:livecd-2006.1 CONSOLE=/dev/tty1 quiet switchto=ufficio resume2=file:/dev/dm-0:0x44050
  initrd /initramfs-genkernel-x86-2.6.18-suspend2-r1

Non rimane che modificare il valore del paramentro resume2 opportunamente, un modo per ottenere il valore corretto è lanciare il comando hibernate (dopo aver configurato i files /etc/hibernate/*.conf per l'uso del filewriter) questo ritornerà un errore suggerendo il valore giusto per il proprio sistema... ovviamente ci sono altri metodi più eleganti ma questo... just works :)

(Nota: nelle nuove versioni dell'hibernate script l'hibernate.conf è stato splittato)
Per comodità posto i miei file di configurazione (solo quelli di interesse) in /etc/hibernate/ (al netto dei commenti)
common.conf:
Verbosity 0
LogFile /var/log/hibernate.log
LogVerbosity 1
Distribution gentoo

SaveClock restore-only

FBSplash on
FBSplashTheme suspend2

UnmountFSTypes smbfs nfs vfat ntfs

UnloadBlacklistedModules yes
LoadModules auto
# GentooModulesAutoload yes

RestartServices cpufreqd
SwitchToTextMode yes

suspend2.conf:
UseSuspend2 yes
Reboot no
EnableEscape yes
DefaultConsoleLevel 1
Compressor lzf
Encryptor none

FilewriterLocation /suspend_file 1000
VerifyFilewriterResume2 yes
ProcSetting userui_program /sbin/suspend2ui_fbsplash
FullSpeedCPU yes

Include common.conf


Al prossimo aggiornamento... ;)
_________________
Please EU, pimp my country!

ICE: /etc/init.d/iptables panic
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools) 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