Ubuntu 9.10 Leitor de Cartão da direita não funciona

5, março, 2010

Como já é conhecido de todos no Acer Aspire One quando instalado o Ubuntu os leitores de cartão nem sempre funcionam direito. Aqui no meu o “Storage Expansion” que é o leitor da esquerda funciona tranquilo tranquilo. Mais já o da direita que fica próximo ao botão power só funciona quando eu inicio a maquina com um cartão já inserido no slot.

Para ele funcionar tenho que passar um parâmetro para a imagem do kernel no boot de maquina. pciehp.pciehp_force=1

Mais nessa versão do linux não vai ser simplemente editar o menu.lst do grub. No ubuntu agora esta vindo o grub2, que muda um pouco as coisas. O que você via no menu.lst agora esta no /boot/grub/grub.cfg e não aconselho editar ele não, essa configuração dele é toda feita automaticamente.

Para adicionar o parâmetro editei o arquivo /etc/default/grub
Na linha: GRUB_CMDLINE_LINUX_DEFAULT
Editei e ela ficou assim:
GRUB_CMDLINE_LINUX_DEFAULT=”pciehp.pciehp_force=1 quiet splash”

Depois tu só faz executar a atualização do grub.cfg e tudo lindo.

$ update-grub

Sem categoria , ,

Porta paralela no Shell do Linux

24, fevereiro, 2010

Bom no Slack que tava usando aqui na maquina já tinha dois comandos que me acostumei a usar, inb e outb. Como eles foram parar no slack e de onde vieram eu não tenho a menor ideia.

Formatei a maquina e instalei o Debian, fiz uma instalação bem limpa e não veio meu inb e outb, mais preciso deles. O que fazer? Andei pesquisando e não achei nada e com uma conversa com Danilo Cesar<roboticalivre.org> ele me falou que no histórico da lista do robótica livre tinha algo que ele postou em outubro de 2007.

Então vamos ao que interessa colocar os comandos de volta.
** LEMBRANDO USAR root ***

Tem que baixar o binário do ioport<http://www.tuy.com.br/download/ioport>.
Salvar ele na pasta /bin

Depois criar links simbólicos para ele.

$ ln -s ioport outb (aperte enter)
$ ln -s ioport outl
$ ln -s ioport outw
$ ln -s ioport inb
$ ln -s ioport inl
$ ln -s ioport inw

Pronto agora pode botar fé que vai funcionar os outb e inb.

Créditos http://listas.softwarelivre.org/pipermail/roboticalivre/2007-October/000035.html

Programação, linux , , , ,

Brinquedo novo

19, dezembro, 2009

Até que fim chegou, um mês depois do pedido que fiz via internet chegou o meu arduino Duemilanove.

Funcionou beleza no ubuntu, só plugar e usar. No gentoo reconheceu depois de compilar o kernel com o ftdi, mais não consegui ainda instalar o gcc-avr no gentoo.

Programação , ,

Python + xml.dom – Editar um xml

15, dezembro, 2009

Ler e editar um xml Existente

Carregar o objeto.

>>> xml0 = xml.dom.minidom.parse(“c:\\teste\\novo.xml”)

Imprima na tela para ver se foi carregado mesmo e verifique o conteudo

>>> print xml0.toxml()
<?xml version=”1.0″ ?><usuarios><user id=”1″ login=”bruno-tuy”>Bruno Tuy</user><user id=”2″ login=”bruno.reis”>Bruno Reis</user><user id=”3″ login=”lucas.mendes”>Lucas Mendes</user><user id=”4″ login=”bruno”>_Bruno_</user></usuarios>

Aqui ele retornou desse jeito ai, sem quebra de linha e indentação, é a maneira ideal de salvar o xml pois assim o programa trabalha com ele perfeitamente bem, se o seu retornou um xml com quebras de linhas e indentação vai acontecer o seguinte, o python vai entender que o enter(\n) são filhos também, ai você vai ter que tratar isso.

Agora vamos ler os atributos da primeira tag do xml.

>>> print “Id: ” + xml0.firstChild.childNodes[0].getAttribute(“id”)
Id: 1
>>> print “Login: ” + xml0.firstChild.childNodes[0].getAttribute(“login”)
Login: bruno-tuy
>>> print “Nome: ” + xml0.firstChild.childNodes[0].firstChild.data
Nome: Bruno Tuy

Imprimir o atributo login da tag de id 2

>>> for filho in xml0.firstChild.getElementsByTagName(“user”):
if (filho.getAttribute(“id”) == “2″):
print filho.getAttribute(“login”)

bruno.reis

– getElementsByTagName(“user”) pode ser substituido por childNodes

Apagar alguma tag

>>> xml0.firstChild.removeChild( xml0.firstChild.childNodes[2] )
<DOM Element: user at 0×23c16c0>
>>> print xml0.toxml()
<?xml version=”1.0″ ?><usuarios><user id=”1″ login=”bruno-tuy”>Bruno Tuy</user><user id=”2″ login=”bruno.reis”>Bruno Reis</user><user id=”4″ login=”bruno”>_Bruno_</user></usuarios>

– Repare que o usuario com id 3 foi removido

Mudar atributos de uma tag

>>> xml0.firstChild.childNodes[0].setAttribute(“login”, “bruno.tuy”)
>>> print xml0.toxml()

<?xml version=”1.0″ ?><usuarios><user id=”1″ login=”bruno.tuy”>Bruno Tuy</user><user id=”2″ login=”bruno.reis”>Bruno Reis</user><user id=”4″ login=”bruno”>_Bruno_</user></usuarios>

– Veja que o atributo login da tag com id 1 foi alterado.

Mudar texto contido entre as tags

>>> xml0.firstChild.childNodes[2].firstChild.nodeValue = “Bruno”
>>> print xml0.toxml()
<?xml version=”1.0″ ?><usuarios><user id=”1″ login=”bruno.tuy”>Bruno Tuy</user><user id=”2″ login=”bruno.reis”>Bruno Reis</user><user id=”4″ login=”bruno”>Bruno</user></usuarios>

salvar tudo

>>> arq = file(“c:\\teste\\novo.xml”, “w”)
>>> xml0.writexml(arq)
>>> arq.close()

Programação ,

Criar xml com Python + xml.dom

14, dezembro, 2009

Post rapido para salvar algo que fiz hoje e preciso lembrar durante um bom tempo. Trabalhando com XML usando python.

Criando um XML.

>>> NewXml = xml.dom.minidom.Document()

Criando o elementos root do XML(TAGS).

>>> tag = NewXml.createElement(“lista”)
>>> NewXml.appendChild(tag)

Criando elementos do XML(TAGS).

>>> tag = NewXml.createElement(“usuario”)

Criando atributos

>>> tag.setAttribute(“login”, “burno.tuy”)
>>> tag.setAttribute(“senha”, “123456″)

Colocar um texto entre as tags.

>>> texto = NewXml.createTextNode(“Bruno Tuy”)
>>> tag.appendChild(texto)

Agora colocar o elemento criado no XML

>>> NewXml.firstChild.appendChild(tag)

Só pra confirmar é bom imprimir o xml

>>> print NewXml.toxml()

Agora vamos salvar

>>> arq = file(“c:\\teste\\novo.xml”, “w”)
>>> NewXml.writexml(arq)
>>> arq.close()

O arquivo já vai aparecer la salvo, mais meio complicado pra leitura, se quiser deixar ele mais legível pode usar alguns parâmetros no write. Exemplo:

>>> NewXml.writexml(arq, ” “, ” “, “\n”, “UTF-8″)

- Primeiro argumento o arquivo
- Segundo a indentação inicial.
- Terceiro a indentação adicional.
- Quarto argumento o que vai ser usado no final da tag.
- Quinto a codificação

Programação ,

Configurando MRTG para gerar grafico de uso de banda

2, setembro, 2009

Somente um lembrete para os passos da configuração…

Mais…

Servidor, linux , ,

Gravando bootloader ARDUINO

25, agosto, 2009

Minha primeira aventura com o arduino foi a gravação do boot dele, que pra variar comecou com problemas, inicialmente minha maquina não tinha a porta paralela, tive que descobrir o modulo responsavel por ela, depois da porta subir tento gravar e recebo esse erro de presente:

avrdude: AVR device not responding
avrdude: initialization failed, rc=-1
avrdude: Yikes! Invalid device signature.
avrdude: Expected signature for ATMEGA168 is 1E 94 06
avrdude: AVR device not responding
***failed;
avrdude: verification error, first mismatch at byte 0×0000
0×00 != 0×07
avrdude: verification error; content mismatch

Lembrando, eu estou usando conexão icsp passada la pelo proprio site do arduino.

A solução para esse problema foi, retirar todos os resistores.
Realmente meu atmega não respondia ao arduino, mais isso por que?
A porta paralela de minha maquina por algum motivo esta trabalhando com voltagem abaixo do que deveria, o nivel alto dela segundo o meu multimetro esta em 3,45v. Essa voltagem já baixa com os resistores ficava direto em nivel logico 0 para o atmega então ele não recebia informação nenhuma =P

linux , ,

WebCam no Mplayer

24, agosto, 2009

Visualizar webcam pelo mplayer:

$ mplayer tv:// -tv driver=v4l2:fps=90:device=/dev/video0 -nosound

Desktop, linux , ,

Recuperando sistema

29, abril, 2009

Não sei como, fazendo o que, consegui deixar o sistema ruin. Não iniciava o xfce4, o linpus carregava normal, chegava a carregar o X, mais nada de xfce4. Tentei algumas coisas, coloquei o archlinux no pendrive pra dar boot e examinar os arquivos do Linpus, mais como não encontrei nada logo então como peguei o netbook antes de ontem vou restaurar o sistema mesmo.
Pensei que seria um pouco trabalhoso por não ter nenhum drive de dvd externo, mais é só dar boot com o dvd em qualquer outro computador que vai ter a opção gerar usb recovery, gerei um e consegui restaurar. Na verdade ele instala o sistema todo novamente.

linux ,

Maquina Linux Client do Active Diretory

4, fevereiro, 2009

Samba + Kerberos + LDAP + Windows AD

Partindo do ponto que samba, Kerberos e LDAP estão instalados. Vamos adicionar uma estação linux ao Active Directory da MS.

Arquivo de configuração do samba. /etc/smb.conf

[global]
;Nome do nosso client
netbios name = SRVTESTE
server string = Servidor de Testes
;Grupo de trabalho, deve ser o nome do dominio
workgroup = mw
security = ads
domain master = no
encrypt passwords = yes
;IP do servidor AD
password server = 192.168.0.250
wins server = 192.168.0.250
;Nome completo do Dominio
realm = SSA.MEDICWARE.COM.BR
passdb expand explicit = no
ldap ssl = no
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
log file = /var/log/samba/log.%m
max log size = 50
debug level = 1
[geral]
comment = Arquivos
path = /srv/samba/geral
read only = no

Arquivo /etc/nsswitch.conf

passwd: files winbind
group: files winbind
shadow: files
hosts: files dns winbind

Arquivo de configuração do Kerberos

[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = SSA.MEDICWARE.COM.BR
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24000
clockskew = 300
kdc_timesync = 1

[realms]
SSA.MEDICWARE.COM.BR = {
kdc = 192.168.0.250:88
}
MW = {
kdc = 192.168.0.250:88
}

Apos editar esses arquivos adicione no /etc/hosts o nome da maquina com o dominio completo.
Exemplo:

192.168.0.26 srvteste.ssa.medicware.com.br srvteste

Agora confirme o funcionamento correto do kerberos:

$ kinit administrador

Após digitar a senha correta ele não retorna mensagem nenhuma.

Adicionar maquina ao dominio:

$ net ads join -U Administrador

No arquivo de configuração do samba para ter seu compartilhamento acessado somente por determinados usuários adicione o parametro valid user.
Exemplo:

[HP1020]
comment = Impressora CIC
path = /var/spool/samba
print ok = yes
guest ok = no
valid users = @mw\suporte mw\administrador mw\marcel mw\elisson

Esse compartilhamento é acessado pelo grupo suporte do sominio mw, e pelos usuarios administrador, elisson e marcel.

Desktop, Servidor, linux ,