Archive for the Linux Category

Microfone no Debian

Posted in Linux with tags , , , , , on setembro 22, 2010 by Jack

Quando, após instalar os pacotes do alsa no Debian Lenny ou Debian Etch, o microfone continua não gravando ou o Skype continua não recebendo sua voz, tente estes comandos que configuram o amixer manualmente:

como root:

~# amixer set Capture cap 8
Simple mixer control 'Capture',0
Capabilities: cvolume cswitch
Capture channels: Front Left - Front Right
Limits: Capture 0 - 63
Front Left: Capture 8 [13%] [-79.50dB] [on]
Front Right: Capture 8 [13%] [-79.50dB] [on]

~# amixer set Mic cap
Simple mixer control ‘Mic’,0
Capabilities: pvolume pswitch cswitch cswitch-joined cswitch-exclusive
Capture exclusive group: 0
Playback channels: Front Left – Front Right
Capture channels: Mono
Limits: Playback 0 – 31
Mono: Capture [on]
Front Left: Playback 11 [35%] [-18.00dB] [on]
Front Right: Playback 11 [35%] [-18.00dB] [on]

Anúncios

Synergy compartilhando mouse e teclado entre múltiplos sistemas

Posted in Linux with tags , , on fevereiro 20, 2009 by Jack

O Synergy é um programa de código aberto que compartilha, através de uma rede, o mesmo teclado e mouse entre múltiplos computadores com diferentes sistemas operacionais. Licenciado pela GPL, possui versões binárias para Gnu/Linux, Windows e MAC OSX, além de fazer parte dos repositórios das principais distribuições Linux.

Um mesmo mouse e teclado controlam, por exemplo, um desktop com Debian e um notebook com Windows XP. A área de transferência também é compartilhada, permitindo copiar e colar  textos entre os sistemas.

Exemplo de uso do Synergy

Exemplo de uso do Synergy

http://synergy2.sourceforge.net

http://www.guiadohardware.net/tutoriais/tres-monitores/

Xchat com python script GeoIP

Posted in Linux, Planeta with tags , , , on janeiro 20, 2009 by Jack
Xchat com python script GeoIP

# cat ~/.xchat2/geoiplookup.py
try:
  import xchat
except:
  print "O modulo xchat soh roda com o xchat"

try:
  import GeoIP
except:
  print "GeoIP module not installed."

import os
import re
import time
import string
# Identificacao
__module_name__ = "xSalada - seu xchat automatico"
__module_version__ = "0.1"
__module_description__ = "Script que retorna a origem do host"
__module_author__ = "jack at icatorze dot com dot br"

###############################
# Get nick country, if possible
###############################
def ipFormatChk(ip_str):
    try:
        num = string.split(ip_str,'.')
	if not len(num) == 4:
	    return False
	else:
	    for n in num:
	    	try:
		    if int(n)  255:
		        return False
		except:
		    return False
            return True
    except:
        return False

def getCountry(word, word_eol, userdata):
    print word
    users = xchat.get_list("users")
    try:
        gi = GeoIP.new(GeoIP.GEOIP_MEMORY_CACHE)
        try:
            nicktoquery = word[1]
        except:
            print "Choose a nick"
	    nicktoquery = ""
        for user in users:
            if user.nick == nicktoquery:
	       partes_host = string.split(user.host,'@',1)
	       hostid = partes_host[1]
	       if ipFormatChk(hostid):
	           print "%s from %s" % (nicktoquery,gi.country_name_by_addr(hostid))
               elif re.match(r'.*/.*', hostid):
		   print "%s cloaked as %s" % (nicktoquery,hostid)
               else:
                   print "%s from %s" % (nicktoquery,gi.country_name_by_name(hostid))
    except:
    	print "GeoIP nao instalado"
    return xchat.EAT_ALL

def getCountryJoin(word, word_eol, userdata):
    #print word[2]
    try:
        gi = GeoIP.new(GeoIP.GEOIP_MEMORY_CACHE)
        partes_host = string.split(word[2],'@',1)
        hostid = partes_host[1]
        if ipFormatChk(hostid):
            print "%s from %s" % (word[0],gi.country_name_by_addr(hostid))
        elif re.match(r'.*/.*', hostid):
	    print "%s cloaked as %s" % (word[0],hostid)
        else:
            print "%s from %s" % (word[0],gi.country_name_by_name(hostid))
    except:
        print "GeoIP nao instalado"
    return xchat.EAT_NONE

try:
    xchat.hook_print("Join", getCountryJoin)
    xchat.hook_command("geoip",getCountry)

except:
    print "modo ajuda ou deu merda!!!"

if __name__ == '__main__':
    pass

Mencoder convertendo vídeos para .flv

Posted in Linux with tags , , , on agosto 28, 2008 by Jack

Este comando foi formatado para evitar problemas de sincronismo entre áudio e vídeo, as opções harddup no -vf e -mc 2/20, forçam o mencoder a colocar os frame duplicados no arquivo final e a sincronizar o A/V a cada 2 segundos ou 20 frames.

O arquivo de entrada pode ser qualquer formato que o mplayer conheça. Com este comando retirei 180 segundos a partir do segundo 1 de um vídeo no formato rmvb.

mencoder inputvideo.xxx -o outputvideo.flv -of lavf -oac mp3lame -lameopts abr:br=64 \
-ovc lavc \
-lavcopts vcodec=flv:vbitrate=300:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 \
-vf harddup,expand=:::::4/3,scale=440:330 \
-lavfopts i_certify_that_my_video_stream_does_not_use_b_frames \
-srate 22050 \
-mc 2/20 \ # ajustar o sincronismo A/V
-fps 29.97 -ofps 29.97 \ # acertar o frame per second de acordo com o vídeo de entrada
-noskip \
-ss 1 -endpos 180 #neste caso estava capturando a partir do segundo 1 até o segundo 180, suprima estas duas opções para converter o vídeo todo.

Comando numa linha apenas, para copiar e colar no terminal:

mencoder inputvideo.xxx -o outputvideo.flv -of lavf -oac mp3lame -lameopts abr:br=64 -ovc lavc -lavcopts vcodec=flv:vbitrate=300:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -vf harddup,expand=:::::4/3,scale=440:330 -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -srate 22050 -mc 2/20 -fps 29.97 -ofps 29.97 -noskip -ss 1 -endpos 180

Vim indentando comentários mesmo com noautoindent

Posted in Linux with tags on julho 16, 2008 by Jack

Se o Vim está deixando você louco quando ele indenta tudo que vem depois de um comentário ao colar um texto nele, mesmo com o :set noautoindent, deste jeito:

static ssize_t fpga_read (struct file *file, char *buf,
                size_t count, loff_t *ppos) {
        int len, err;
        void *address = (void *) base;
        printk("count=%i\n",count);
        //if( counter <= 0 )
        //        //        return 0;
        //                //printk("buf=%x\n",buf);
        //                        //dado = ioread32(address);
        //                                err = copy_to_user(buf,dado,count);
        //                                        if (err != 0)
        //                                                        return -EFAULT;
        //                                                                //printk("dado=%x\n",ioread32(address));
        //                                                                        len  = counter;
        //                                                                                counter = 0;
        //                                                                                        return len;

Use o :set paste antes de colar, e tudo se resolve!

Para voltar ao normal é só usar :set nopaste

%d blogueiros gostam disto: