View previous topic :: View next topic |
Author |
Message |
mrfree Veteran
Joined: 15 Mar 2003 Posts: 1303 Location: Europe.Italy.Sulmona
|
Posted: Tue Dec 13, 2005 9:57 am Post subject: [HOWTO] suspend2 e filewriter su lvm2 (usando genkernel) |
|
|
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 |
|
|
saffsd Tux's lil' helper
Joined: 03 Mar 2006 Posts: 139
|
Posted: Sun Jun 18, 2006 11:56 am Post subject: |
|
|
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 |
|
|
mrfree Veteran
Joined: 15 Mar 2003 Posts: 1303 Location: Europe.Italy.Sulmona
|
Posted: Wed Dec 13, 2006 10:45 am Post subject: |
|
|
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 |
|
|
|
|
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
|
|