Archive for the ‘ linux ’ Category

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

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

Porta paralela no Shell do Linux

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.

$ cd /bin
$ ln -s ioport outb
$ 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

Configurando MRTG para gerar grafico de uso de banda

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

Vamos partir do ponto que sua maquina já esta com snmp configurando e funcionando.

Para gerar o arquivo de configuração do mrtg devemos usar:

$ cfgmaker –global ‘WorkDir: /var/www/mrtg’ –output /etc/mrtg/mrtg.cfg public@localhost

Onde:
- WorkDir é pasta que ficara salvo todos os arquivos referente aos gráficos.
- output o arquivo de configuração do mrtg.
- public@localhost é a comunidade @ maquina. Parâmetro configurado no snmp.

Esse comando vai gerar o arquivo de configuração com todas as interfaces de rede da maquina. Depois você pode ir nesse arquivo e editar, deixar somente o que interessa para você.

Agora vamos gerar o index.html da pasta:

$ indexmaker –output=/var/www/html/mrtg/index.html /etc/mrtg/mrtg.cfg

Agora verifique se existe um arquivo chamado mrtf.conf na pasta /etc/httpd/conf.d/ se existir apague.
Entre na pasta /var/www/html e crie um link simbólico para a pasta do mrtg:

$ ln -s /var/www/mrtg /var/www/html/mrtg

Faça um agendamento no cron para que o gráfico seja atualizado de tempos em tempos:

$ contab -e

Na ultima linha adicione:
*/15 * * * * env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg

Essa linha agenda para a cada 15 minutos executar o mrtg
Salve e pode da um restart no crond

Gravando bootloader ARDUINO

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

WebCam no Mplayer

Visualizar webcam pelo mplayer:

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

Recuperando sistema

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.

Maquina Linux Client do Active Diretory

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.

Restaurar o grub

A tempos atrás instalei o fedora aqui na maquina, e o grub dele ficou no lugar do grub do arch, hoje precisei restaurar o grub, colocar de volta o do arch. Mais quando executo o comando:

$ grub-install /dev/sda3

Ele da mensagem de sucesso, mais quando reinicio a maquina tudo do mesmo jeito.

Em pesquisas achei isso:

$ grub

Vai abrir o cli do grub.

grub> find /boot/grub/stage1
(hd0,2)
(hd0,5)

grub> root (hd0,2)
Filesystem type is ext2fs, partition type 0×83

grub> setup (hd0)
Checking if “/boot/grub/stage1″ exists… yes
Checking if “/boot/grub/stage2″ exists… yes
Checking if “/boot/grub/e2fs_stage1_5″ exists… yes
Running “embed /boot/grub/e2fs_stage1_5 (hd0)”… 16 sectors are embedded.
succeeded
Running “install /boot/grub/stage1 (hd0) (hd0)1+16 p (hd0,2)/boot/grub/stage2
/boot/grub/menu.lst”… succeeded
Done.

grub> quit

$ reboot

Pronto, já esta funcionando como o esperado

Colocando samba como cliente de Active Directory.

Vou explicar minha necessidade aqui: Precisei colocar um servidor de impressão na rede da empresa, e em nossa rede já existe um windows 2003 server gerenciando o active directory.

Aqui só irie abordar como fiz para colocar o samba pra funcionar no AD existente, somente a configuração do samba.

Sessão global do arquivo de configuração do samba:

[global]
netbios name = SRVPRINT
server string = Servidor de impressao
workgroup = seu_AD
security = domain

encrypt password = yes
password server = ip_do_seu_servidor_AD
username map = /etc/samba/smbusermap
wins server = servidor_wins

log file = /var/log/samba/log.%m
max log size = 50
debug level = 1

Agora você deve criar o arquivo /etc/samba/smbusermap
Nele vai estar associado os usuários do AD com usuário da sua maquina, vou mostrar como esta o meu:

admin = seu_ADadministrador
usr_geral = seu_AD*

Onde admin é usuário válido no meu servidor linux e seu_ADadministrador usuário válido do AD.

Agora você deve adicionar essa maquina na rede:

$ net join -U administrador

Vai pedir a senha do usuario administrador do AD e se tudo correr bem vai apresentar uma mensagem de sucesso.
Aqui aconteceu que o servidor AD não esta sendo encontrado pelo nome, então adicionei o mesmo no /etc/hosts:

192.168.0.250 SRVWIN

Apos fazer isso a maquina foi adicionada com sucesso.

Reinicie o seu samba e teste se as maquinas do AD acessam ele sem problema.

Servindo impressora e seu driver para windows pelo samba.

A instalação da impressora não será abordada aqui. Vamos partir do ponto de que sua impressora esta instalada em seu servidor e já funcionando corretamente.

Primeiro temos que baixar alguns pacotes que são necessários.

PostScript printer drivers for windows – http://www.adobe.com/support/downloads/product.jsp?product=44&platform=Windows
cups-devel – http://www.cups.org/software.php
cups-windows – http://www.cups.org/software.php

Crie a seguinte pasta: /usr/share/cups/drivers

$ mkdir /usr/share/cups/drivers

Descompacte o PostScript printer drivers for windows. Aqui eu baxei o arquivo winstbrz.exe que tem aproximadamente 7mb. Vai ser necessário copiar alguns arquivos para a pasta que criamos. São eles:

ADFONTS.MFM
ADOBEPS4.DRV
ADOBEPS4.HLP
DEFPRTR2.PPD
ICONLIB.DLL
ADOBEPS5.DLL
ADOBEPSU.DLL
ADOBEPSU.HLP

Depois de copiar os arquivos você tem que alterar os nomes, todos devem estar em caixa baixa.

O cups-devel para muitos pode não ser necessário. Aqui estou usando CentOS e só consegui instalar o cups-windows após instalar o cups-devel.
Instalação do cups-windows:
Descompacte o pacote, entre na pasta descompactada e instale.

$ tar jxvf cups-windows-6.0-source.tar.bz2
$ cd cups-windows-6.0
$ make install

Depois de instalar o cups-windows verifique se foram criados alguns arquivos novos na pasta /ush/share/cups/drivers

Essa pasta que criamos deve estar compartilhada no samba com o nome de “print$” e a impressora deve estar la compartilhada também. Vou mostrar como ficou a sessão aqui que compartilha os dois:

[print$]
comment = Driver da impressora.
path = /usr/share/cups/drivers
browsable = yes
write list = admin

[printers]
comment = Impressoras.
path = /var/spool/samba
browsable = yes
writable = yes
printable = yes
read only = yes

Foi necessário adicionar algumas coisas na sessão global do smb.conf:

printcap name = /etc/printcap
load printers = yes
printing = cups

Depois só startar o samba e executar o comando que gera os drivers.

$ cupsaddsmb -H localhost -U admin -v -a

Se tudo correr como o desejado vai ser apresentada uma mensagem de sucesso.

Succesfully set SuaImpressora to driver SuaImpressora.