Páginas

sábado, 21 de janeiro de 2012

Problemas com kernel 3.1.0-1-amd64 + Xen + Debian Wheezy

Cenário:

Tenho uma placa ATI em um note Dell Vostro 1000 (velhinho o coitado) e uso Debian Wheezy (que está bom para caramba ;) ) com kernel 3.1.0-1-amd64 e Xen 4.1 utilizando HVM.

Informações sobre a placa VGA:

$ lspci -vnn | grep -i vga01:05.0 VGA compatible controller [0300]: ATI Technologies Inc RS482 [Radeon Xpress 200M] [1002:5975] (prog-if 00 [VGA controller])

E seguindo a wiki do Debian tenho o seguinte link para configuração da minha placa VGA:

http://wiki.debian.org/AtiHowTo


Problema: 

A melhor forma de instalar o driver da minha placa foi instalar o pacote firmware-linux-nonfree, pois antes não tinha bons resultados gráficos. Com a instalação do pacote tudo ficou perfeito, um visual lindo com o Gnome 3 ;)

Porém eu uso Xen....

O Xen da erro na hora da inicialização e você não vê mais nada quando o pacote em questão está instalado!!

Solução:

O pacote firmware-linux-nonfree altera o initrd e o vmlinux do kernel 3.1.0-1-amd64 removendo o pacote em questão o kernel Xen funciona normal, porém a aceleração gráfica vai para o brejo, portanto a minha solução foi remover o pacote firmware-linux-nonfree e criei imagens diferentes para o kernel do Xen
(sem aceleração gráfica):

cp -R /boot/config-3.1.0-1-amd64{,-xen}cp -R /boot/initrd.img-3.1.0-1-amd64{,-xen}cp -R /boot/System.map-3.1.0-1-amd64{,-xen}cp -R /boot/vmlinuz-3.1.0-1-amd64{,-xen}

Ai basta alterar as configurações de boot do Xen diretamento no arquivo de
configuração do Grub ficará algo mais ou menos assim:


### BEGIN /etc/grub.d/20_linux_xen ###
submenu "Xen 4.1-amd64" {
menuentry 'Debian GNU/Linux, with Xen 4.1-amd64 and Linux 3.1.0-1-amd64-xen' --class debian --class gnu-linux --class gnu --class os --class xen {
        insmod lvm
        insmod part_msdos
        insmod ext2
        set root='(ZION-boot)'
        search --no-floppy --fs-uuid --set=root 1ac9beac-b31f-4840-9b96-d06bfda6e847
        echo    'Loading Xen 4.1-amd64 ...'
        multiboot       /xen-4.1-amd64.gz placeholder com1=9600,8n1 console=com1,vga something else
        echo    'Loading Linux 3.1.0-1-amd64-xen ...'
        module  /vmlinuz-3.1.0-1-amd64-xen placeholder root=/dev/mapper/ZION-raiz ro console=tty0 console=hvc0 quiet
        echo    'Loading initial ramdisk ...'
        module  /initrd.img-3.1.0-1-amd64-xen
}
menuentry 'Debian GNU/Linux, with Xen 4.1-amd64 and Linux 3.1.0-1-amd64-xen (recovery mode)' --class debian --class gnu-linux --class gnu --class os --class xen {
        insmod lvm
        insmod part_msdos
        insmod ext2
        set root='(ZION-boot)'
        search --no-floppy --fs-uuid --set=root 1ac9beac-b31f-4840-9b96-d06bfda6e847
        echo    'Loading Xen 4.1-amd64-xen ...'
        multiboot       /xen-4.1-amd64.gz placeholder com1=9600,8n1 console=com1,vga
        echo    'Loading Linux 3.1.0-1-amd64-xen ...'
        module  /vmlinuz-3.1.0-1-amd64-xen placeholder root=/dev/mapper/ZION-raiz ro single console=tty0 console=hvc0
        echo    'Loading initial ramdisk ...'
        module  /initrd.img-3.1.0-1-amd64-xen
}
}
### END /etc/grub.d/20_linux_xen ###

Feito isso podemos bootar com o kernel "não Xen" e instalar o pacote firmware-linux-nonfree pois ai o mesmo habilita aceleração gráfica neste kernel, a desvantagem é que o kernel do Xen não terá aceleração gráfica em minha placa de vídeo mas pelo menos agora consigo usar o Xen sem problemas ;).. e quando quiser jogar uns joguinhos uso a outra imagem do kernel com aceleração gráfica.

Bom divertimento ... ;)

terça-feira, 3 de janeiro de 2012

Renomear arquivos em massa removendo símbolos inúteis


Pessoal boa noite!

Acabei de fazer este script em Python e posto aqui pois não achei ninguém que tivesse feito algo assim e eu estava precisando muito! Este script elimina símbolos básicos (áéíóúãç ... etc) dos nomes dos arquivos e já os renomeia, usarei este para renomear uma série de arquivos antes de enviá-los a uma página web (a qual não trabalha bem com acentos e espaços). Quem quiser modificá-lo para seu uso fique a vontade! Segue a dica...


#!/usr/bin/env python
# -*- encoding: utf-8 -*-


from os import rename
from os import listdir


arquivos = listdir('.')
for arquivo in arquivos:
    rename(arquivo, arquivo.replace("á","a").replace("é","e").replace("í","i").replace("ó","o").replace("ú","u").replace("ã","a").replace("ç","c").replace(" ","_").replace(",","").replace("õ","o"))
    print arquivo.replace("á","a").replace("é","e").replace("í","i").replace("ó","o").replace("ú","u").replace("ã","a").replace("ç","c").replace(" ","_").replace(",","").replace("õ","o");


Abraço!