10-02-2010, 04:09 PM
Non sei l'unico che ha avuto questo problema.... Io tempo fa, mi sono ammazzato per il tuo stesso problema, ma la mia serie di chiptes grafici era tra 800 e 900 non ricordo bene... cmq a suo tempo trovai una soluzione.... magari non tutti i passaggi potrai attuarli ma a grandi linee ti potrà dare una mano.... Allora...
1. Innanzitutto Un pò di aggiornamenti bios/driver ;-) (specie il bios, poi vedrai il xk)
2. Sull'Intel i driver installati che si installano automaticamente o manualmente: vanno in conflitto con il pacchetto 915resolution che bisognerà installare.
3. Metodo 915resolution:
Innanzitutto c'è da dire che le modifiche 915resolution del BIOS sono modifiche transitorie. Non ci sono rischi "permanenti" del BIOS. O almeno io non ho avuto problemi, ma non mi assumo responsabilità nel caso di guasti o pasticci... ma andiamo a noi:
Auttualmente l'ultima versione è la 0.5.3 -> http://depositfiles.com/files/g5kapo43r
E' necessario impostare il BIOS video con 915resolution prima di avviare il server X. Non è necessario impostare tutti. Basta scegliere una modalità e utilizzarla con il giusto numero di bit per pixel. Inoltre, l'impostazione non è permanente. È necessario impostare il VBIOS ogni volta che si avvia la macchina.
È inoltre necessario che almeno la versione di Xserver sia la 6.8.2 (o superiore che trovi su internet) e sarà probabilmente necessario creare una modeline e modificare orizzontale / frequenze di scansione verticale.
4. Utilizzo di 915resolution all'interno di un Xserver
915resolution sta per essere incorporati nel driver da X.org. (credo che in bt4 siano incorporati) In questo caso decade la necessità di eseguire manualmente 915resolution, la sintassi per eseguire l'override di un BIOS risoluzione è inferiore, ad esempio:
Questo riprogramma il vecchio 1024x768 per diventare 1400x1050 uno.
C'è cmq un apposita sezione per il funzionamento di 915resolution [spoiler]h__p://groups.google.com/group/915resolution
su internet ho trovato: Il metodo 915resolution include il 830, 845G, 855G, 865G e chipset, così come 915G, 915GM, 945G, 946GZ, G965, e chipset Q965. Questa modifica è necessaria per consentire la visualizzazione di alcune risoluzioni grafica per un server Xorg o XFree86 grafica.[/spoiler]
4.2 Di seguito questa è la procedura per gli eeePc del "Frame buffer": ovvero il modulo uvesafb (o netbook in generale) in Spoiler poichè MOLTO lungo: N.B. Non testato da me poichè non ho un netbook..
[spoiler]Con il kernel 2.6.25 di Debian, uvesafb non è compilato di default. Così, la prima cosa da fare è ottenere il sorgente del kernel. Non c'è bisogno di ricostruire l'intero pacchetto, solo il modulo, ma in ogni caso, sarà necessario un compilazione del kernel in seguito per ricostruire alcuni altri pacchetti. Ricompilando il kernel sul vostro Eee PC richiede un sacco di spazio libero e richiede molto tempo. Pertanto, vi consigliamo di costruire su un'altra macchina.
FIXME: rivedere le seguenti istruzioni per l'uso di Debian kernel stesso che sarebbe stato usato con module-assistant, se possibile. Ciò semplificherà le cose.
Ora copiare il file di configurazione del kernel che sotto l'albero di origine e avviare il menu di configurazione del kernel:
Ora vai a Device Driver -> Graphics Support -> Supporto per dispositivi frame buffer e selezionare "userspace VESA VGA supportare la grafica", come <M> modulo.
Uscire e salvare la configurazione del kernel.
Costruite il vostro kernel. Non c'è bisogno di ricostruire il pacchetto, basta avere un albero dei sorgenti compilati con questa opzione abilitata.
Quando la compilazione è terminata, copiare il modulo uvesafb.ko di Eee PC. Il modulo è in / usr/src/linux-source-2.6.25/driver/video / e si chiama uvesafb.ko.
risoluzione 800x480 Eee PC è che non è una risoluzione standard VGA in modo uvesafb non lo supporta. Per farlo funzionare come previsto, abbiamo anche bisogno di utilizzare 915resolution binario per farlo riconoscere la risoluzione di diritto. In Sid, il pacchetto 915resolution è stata abbandonata perché è obsoleto. Non può essere installato perché in conflitto con xserver-xorg-video-intel che è necessario per far funzionare X sulla Eee PC.
La soluzione è scaricare il pacchetto tarball di 915resolution
Se si desidera, è possibile ricompilare con un semplice make. Tuttavia, non abbiamo bisogno di compilarlo in quanto all'interno del pacchetto vi è un funzionale binario precompilato per noi. Copiare da qualche parte nel vostro percorso:
Ora è possibile testare il framebuffer!
Si vedrà ora un lavoro di fantasia frame buffer.
framebuffer inizializzazione Metti in initramfs
Come dicevo prima, alcuni pacchetti hanno bisogno di essere ricompilato per supportare il frame buffer nel nostro initramfs. Questo perché uvesafb deve essere caricato in userspace con v86d, ma per far funzionare v86d in initramfs abbiamo bisogno di klibc compilato con un kernel compilato con uvesafb abilitato.
Quindi, consente di ricompilare i nostri pacchetti:
Un po 'sporco hack per punto klibc alla sorgente del kernel destra: Modifica debian / rules con il vostro editor di testo preferito, andare alla linea di partenza con la pre-compilazione:: e modificare questa sezione:
Salvare e uscire, e ora ricostruire il pacchetto:
e installare i nuovi pacchetti:
Ricostruire anche v86d.
Qui abbiamo bisogno di un cambiamento molto piccolo, sotto il "config-bollo: configure". Line, dove vi è un / linea di configurazione, modificarla in:
Salvare e ricostruire il pacchetto:
ed installarlo:
Ora abbiamo tutti abbiamo bisogno per il nostro initramfs. Prima di tutto, è necessario installare gli strumenti di initramfs:
e fare qualche modifica sulla nostra immagine initramfs.
I miei script sono sporchi e non sono così ben fatto, ma funzionano. Sentitevi liberi di riscrivere gli script però che preferisci!
Abbiamo bisogno di:
includono uvesafb.ko, v86d, 915resolution a tua immagine
fare start frame buffer, se passiamo il diritto di opzione alla riga di comando del kernel
Per includere uvesafb.ko, basta aggiungere al file / etc / initramfs-tools / modules
Per includere 915resolution e v86d, abbiamo bisogno di creare uno script di aggancio, quindi, modificare / etc/initramfs-tools/hooks/915resolution e mettere questo in esso:
Abbiamo bisogno anche di ottenere uvesafb caricato nel modo giusto quando è necessario, quindi dovremo creare un altro script all'interno del nostro initramfs. Non mi piace utilizzare il video = qualcosa nella mia linea di comando del kernel, perché ho l'impressione che lo script all'interno framebuffer initramfs può rompere qualcosa nel nostro hack, quindi uso un'altra opzione. Ho chiamato "fbhack".
Creare il file / etc / initramfs-tools / scripts / init-top / framebuffer e mettere dentro questo:
Ora prova se tutto funziona. Ricostruire il tuo initramfs con:
Modifica il tuo menu.lst grub, duplicare la voce del kernel e aggiungere fbhack per l'opzione del kernel, come questo:
Riavviate il sistema, selezionare la voce "FB" kernel, e ora il frame buffer dovrebbe lavorare sin dalla fase iniziale in initramfs e alla risoluzione giusta!
Splashy in initramfs con dmcrypt
Ora è il momento di installare splashy. È sufficiente eseguire:
Se hai appena ricostruito l'initramfs e hai aggiunto i giusti parametri per la linea di comando di avvio, splashy inizialmente sembra funzionare, ma, visto che hai anche un servizio criptato file system radice, non è possibile inserire la propria password fs. Il risultato è che non puoi avviare il sistema. Questo perché il cryptmount script initramfs di default non è possibile gestire splashy. Utilizza askpass per avere la password utilizzata da cryptsetup, ma askpass non funziona con splashy, almeno nel modo in cui splashy è gestito da script predefinito initramfs.
Faremo alcune modifiche in entrambi gli script per far funzionare il tutto come vogliamo.
Prendi lo script originale splashy e metterlo dentro la tua initramfs:
Creare un nuovo file chiamato patch splashy.patch e metterlo dentro questo file:
Salvare il file di patch, applicarla a splashy e rimuovere il file patch:
Ora dobbiamo lavorare su dmcrypt. Si può apportare di alcune modifiche al fine di far utilizzare cryptsetup splashy_update invece di askpass per ottenere la password di root file di sistema.
Copiare lo script originale:
Copia e incolla il contenuto qui sotto in cryptroot.patch:
Salvarlo, applicare e rimuovere il file patch:
Ora ricostruire il tuo initramfs:
Ri-edita il menu.lst di GRUB e apporta queste modifiche alla voce "FB" kernel nella linea di kernel:
Infine... dopo tanto lavoro, riavviare il sistema![/spoiler]
Risoluzione dei problemi:
Un xorg.conf di base dovrebbe essere tutto ciò che serve se si ottiene 915resolution per aggiungere la risoluzione nativa. Prima Ero solo in grado di ottenere la console per l'avvio di sempre in 800x600-24 come il fbhack mai effettivamente avvenuta prima KMS creato il framebuffer (e utilizzando uvesafb, 1024x600-24 sarebbe sempre fuori sync), tuttavia, si sarà in grado di entrare in X a 1024x600-24 con VESA.
N.B. Questa mini-guida personale (anzi forse meglio dire "promemoria") l'avevo fatta prendendo pezzi qua e la tra i vari siti... perchè avevo parecchie noie con i chipset intel (maledetti) Non so fino a che punto possa esserti utile, ma vedi un pò tu a grandi linee se potrà servirti a qualcosa..
1. Innanzitutto Un pò di aggiornamenti bios/driver ;-) (specie il bios, poi vedrai il xk)
2. Sull'Intel i driver installati che si installano automaticamente o manualmente:
Codice:
xserver-xorg-video-intel
oppure
apt-get install xorg
3. Metodo 915resolution:
Innanzitutto c'è da dire che le modifiche 915resolution del BIOS sono modifiche transitorie. Non ci sono rischi "permanenti" del BIOS. O almeno io non ho avuto problemi, ma non mi assumo responsabilità nel caso di guasti o pasticci... ma andiamo a noi:
Auttualmente l'ultima versione è la 0.5.3 -> http://depositfiles.com/files/g5kapo43r
E' necessario impostare il BIOS video con 915resolution prima di avviare il server X. Non è necessario impostare tutti. Basta scegliere una modalità e utilizzarla con il giusto numero di bit per pixel. Inoltre, l'impostazione non è permanente. È necessario impostare il VBIOS ogni volta che si avvia la macchina.
È inoltre necessario che almeno la versione di Xserver sia la 6.8.2 (o superiore che trovi su internet) e sarà probabilmente necessario creare una modeline e modificare orizzontale / frequenze di scansione verticale.
4. Utilizzo di 915resolution all'interno di un Xserver
915resolution sta per essere incorporati nel driver da X.org. (credo che in bt4 siano incorporati) In questo caso decade la necessità di eseguire manualmente 915resolution, la sintassi per eseguire l'override di un BIOS risoluzione è inferiore, ad esempio:
Codice:
Option "ForceBIOS" "1024x768 1400x1050 ="
C'è cmq un apposita sezione per il funzionamento di 915resolution [spoiler]h__p://groups.google.com/group/915resolution
su internet ho trovato: Il metodo 915resolution include il 830, 845G, 855G, 865G e chipset, così come 915G, 915GM, 945G, 946GZ, G965, e chipset Q965. Questa modifica è necessaria per consentire la visualizzazione di alcune risoluzioni grafica per un server Xorg o XFree86 grafica.[/spoiler]
4.2 Di seguito questa è la procedura per gli eeePc del "Frame buffer": ovvero il modulo uvesafb (o netbook in generale) in Spoiler poichè MOLTO lungo: N.B. Non testato da me poichè non ho un netbook..
[spoiler]Con il kernel 2.6.25 di Debian, uvesafb non è compilato di default. Così, la prima cosa da fare è ottenere il sorgente del kernel. Non c'è bisogno di ricostruire l'intero pacchetto, solo il modulo, ma in ogni caso, sarà necessario un compilazione del kernel in seguito per ricostruire alcuni altri pacchetti. Ricompilando il kernel sul vostro Eee PC richiede un sacco di spazio libero e richiede molto tempo. Pertanto, vi consigliamo di costruire su un'altra macchina.
FIXME: rivedere le seguenti istruzioni per l'uso di Debian kernel stesso che sarebbe stato usato con module-assistant, se possibile. Ciò semplificherà le cose.
Codice:
apt-get install linux-source-2.6.25
cd /usr/src/
tar xfj linux-source-2.6.25.tar.bz2
cd linux-source-2.6.25
Codice:
cp /boot/config-2.6.25-2-686 .config
make menuconfig
Uscire e salvare la configurazione del kernel.
Costruite il vostro kernel. Non c'è bisogno di ricostruire il pacchetto, basta avere un albero dei sorgenti compilati con questa opzione abilitata.
Codice:
make
Codice:
cp driver/video/uvesafb.ko /lib/modules/`uname -r`/kernel/driver/video/
depmod -a
La soluzione è scaricare il pacchetto tarball di 915resolution
Codice:
cd /usr/src
wget http://www.geocities.com/stomljen/915resolution-0.5.3.tar.gz
tar xfz 915resolution-0.5.3.tar.gz
cd 915resolution-0.5.3
Codice:
cp 915resolution /usr/sbin
Codice:
915resolution 5c 800 480 32
modprobe uvesafb mode=800x480-32@60
framebuffer inizializzazione Metti in initramfs
Come dicevo prima, alcuni pacchetti hanno bisogno di essere ricompilato per supportare il frame buffer nel nostro initramfs. Questo perché uvesafb deve essere caricato in userspace con v86d, ma per far funzionare v86d in initramfs abbiamo bisogno di klibc compilato con un kernel compilato con uvesafb abilitato.
Quindi, consente di ricompilare i nostri pacchetti:
Codice:
cd /usr/src
apt-get source v86d libklibc
cd klibc-1.5.12
Codice:
pre-build::
if [ ! -e linux ]; then \
rm -rf linux/include; \
mkdir -p linux/include ;\
ln -s /usr/src/linux-source-2.6.25/include/linux/ linux/include; \
for x in /usr/src/linux-source-2.6.25/include/asm*; do \
ln -s $${x} linux/include; \
done ;\
fi ; \
Codice:
debuild
Codice:
cd ..
dpkg -i klibc-utils-1.5.12-1_i386.deb libklibc_1.5.12-1_i386.deb
Codice:
cd v86d-0.1.5
vim debian/rules
Codice:
./configure --with-klibc
Codice:
debuild
Codice:
cd ..
dpkg -i v86d_0.1.5-1_i386.deb
Codice:
apt-get install initramfs-tools
I miei script sono sporchi e non sono così ben fatto, ma funzionano. Sentitevi liberi di riscrivere gli script però che preferisci!
Abbiamo bisogno di:
includono uvesafb.ko, v86d, 915resolution a tua immagine
fare start frame buffer, se passiamo il diritto di opzione alla riga di comando del kernel
Per includere uvesafb.ko, basta aggiungere al file / etc / initramfs-tools / modules
Codice:
echo uvesafb >> /etc/initramfs-tools/modules
Codice:
#!/bin/sh
PREREQ=""
prereqs()
{
echo "$PREREQ"
}
case $1 in
# get pre-requisites
prereqs)
prereqs
exit 0
;;
esac
. /usr/share/initramfs-tools/hook-functions
copy_exec /usr/sbin/915resolution /sbin
copy_exec /sbin/v86d /sbin
Creare il file / etc / initramfs-tools / scripts / init-top / framebuffer e mettere dentro questo:
Codice:
#!/bin/sh
PREREQ=""
prereqs()
{
echo "$PREREQ"
}
case $1 in
# get pre-requisites
prereqs)
prereqs
exit 0
;;
esac
echo "FBHACK FOR EeePC"
for x in $(cat /proc/cmdline); do
case $x in
fbhack|video=*)
echo "creating /dev/mem file"
mknod /dev/mem c 1 1
if [ -e /dev/zero ] ; then
echo "Dev Zero Exists"
else
mknod /dev/zero c 1 5
fi
if [ -e /dev/tty1 ] ; then
echo "tty1 exists"
else
mknod /dev/tty1 c 4 1
fi
if [ -e /dev/console ] ; then
echo "console exists"
else
mknod /dev/console c 5 1
fi
echo "Set 915resolution to 800x480"
/sbin/915resolution 5c 800 480 32
depmod -a
#/sbin/modprobe fbcon
echo "modprobe uvesafb"
chk=`cat /proc/modules | grep uvesafb`
if [ "x$chk" != "x" ] ; then
rmmod uvesafb
fi
/sbin/modprobe uvesafb mode=800x480-32@60
echo "Done!"
;;
esac
done
Codice:
update-initramfs -u -k `uname -r`
Codice:
title Debian GNU/Linux, kernel 2.6.25-2-686 fb
root (hd0,0)
kernel /vmlinuz root=/dev/mapper/rootfs ro fbhack
initrd /initrd.img
Splashy in initramfs con dmcrypt
Ora è il momento di installare splashy. È sufficiente eseguire:
Codice:
apt-get install splashy
Faremo alcune modifiche in entrambi gli script per far funzionare il tutto come vogliamo.
Prendi lo script originale splashy e metterlo dentro la tua initramfs:
Codice:
cd /etc/initramfs-tools/scripts/init-top
cp /usr/share/initramfs-tools/scripts/init-top/splashy .
Codice:
--- splashy.old 2008-07-17 20:49:09.000000000 +0000
+++ splashy 2008-07-17 15:26:18.000000000 +0000
@@ -1,6 +1,6 @@
#!/bin/sh
-PREREQ=""
+PREREQ="framebuffer"
prereqs()
{
echo "$PREREQ"
@@ -37,7 +37,7 @@
nosplash)
SPLASH=false
;;
- vga=*|video=*)
+ vga=*|video=*|fbhack)
FBMODESET=true
;;
esac
@@ -46,9 +46,9 @@
test $SPLASH = "true" || exit
test $FBMODESET = "true" || exit
-depmod -a
-silent modprobe fbcon
-silent modprobe vesafb
+#depmod -a
+#silent modprobe fbcon
+#silent modprobe vesafb
if [ -s /proc/fb ]; then
while read fbno desc; do
Codice:
patch -p0 < splashy.patch
rm splashy.patch
Copiare lo script originale:
Codice:
cd /etc/initramfs-tools/scripts/local-top
cp /usr/share/initramfs-tools/scripts/local-top/cryptroot .
}}
Copia e incolla il contenuto qui sotto in cryptroot.patch:
Codice:
{{{
--- cryptroot.old 2008-07-17 20:54:12.000000000 +0000
+++ cryptroot 2008-07-17 16:28:18.000000000 +0000
@@ -29,6 +29,8 @@
{
if [ -p /dev/.initramfs/usplash_outfifo ] && [ -x /sbin/usplash_write ]; then
usplash_write "TEXT-URGENT $@"
+ elif [ -x /sbin/splashy_update ] && [ ! -z "`pidof splashy`" ] ; then
+ /sbin/splashy_update "print $@"
else
echo "$@" >&2
fi
@@ -224,16 +226,27 @@
fi
if [ -z "$cryptkeyscript" ]; then
- cryptkeyscript="/lib/cryptsetup/askpass"
+ if [ -x /sbin/splashy_update ] && [ ! -z "`pidof splashy`" ] ; then
+ cryptkeyscript="/sbin/splashy_update"
+ else
+ cryptkeyscript="/lib/cryptsetup/askpass"
+ fi
cryptkey="Enter passphrase to unlock the disk $cryptsources ($crypttarget): "
fi
-
- if ! crypttarget="$crypttarget" cryptsource="$cryptsource" \
- $cryptkeyscript "$cryptkey" | $cryptcreate --key-file=- ; then
- message "cryptsetup: cryptsetup failed, bad password or options?"
- continue
- fi
+ if [ -x /sbin/splashy_update ] && [ ! -z "`pidof splashy`" ] ; then
+ if ! crypttarget="$crypttarget" cryptsource="$cryptsource" \
+ $cryptkeyscript "getpass $cryptkey" | $cryptcreate --key-file=- ; then
+ message "cryptsetup: cryptsetup failed, bad password or options?"
+ continue
+ fi
+ else
+ if ! crypttarget="$crypttarget" cryptsource="$cryptsource" \
+ $cryptkeyscript "$cryptkey" | $cryptcreate --key-file=- ; then
+ message "cryptsetup: cryptsetup failed, bad password or options?"
+ continue
+ fi
+ fi
if [ ! -e "$NEWROOT" ]; then
message "cryptsetup: unknown error setting up device mapping"
Codice:
patch -p0 < cryptroot.patch
rm cryptroot.patch
Codice:
update-initramfs-u-k `uname-r`
Codice:
title Debian GNU / Linux, kernel 2.6.25-2-686 root fb (hd0, 0) kernel / vmlinuz root = / dev / mapper / rootfs ro splash video = calma uvesafb: 800x480-32 @ 60 initrd / initrd.img
Infine... dopo tanto lavoro, riavviare il sistema![/spoiler]
Risoluzione dei problemi:
Un xorg.conf di base dovrebbe essere tutto ciò che serve se si ottiene 915resolution per aggiungere la risoluzione nativa. Prima Ero solo in grado di ottenere la console per l'avvio di sempre in 800x600-24 come il fbhack mai effettivamente avvenuta prima KMS creato il framebuffer (e utilizzando uvesafb, 1024x600-24 sarebbe sempre fuori sync), tuttavia, si sarà in grado di entrare in X a 1024x600-24 con VESA.
N.B. Questa mini-guida personale (anzi forse meglio dire "promemoria") l'avevo fatta prendendo pezzi qua e la tra i vari siti... perchè avevo parecchie noie con i chipset intel (maledetti) Non so fino a che punto possa esserti utile, ma vedi un pò tu a grandi linee se potrà servirti a qualcosa..