Fórum Ubuntu Linux - PT
Suporte Técnico => Programação e Scripts => Tópico iniciado por: Cálcio em 31 de Dezembro de 2009, 15:25
-
Boa tarde galera...
com um pouco de ajuda do pessoal aki e pesquisa fiz um script para automatizar a webcam no skype.
Mas estou com um problema em uma parte...
#! /bin/bash
sudo chmod +x /usr/bin/skype
echo "Deseja executar o script de configuração da webcam no Skype? [S/N]"
read resp
test "$resp" = "N" && exit
### Renomeia o skype para skype.bkp
sudo mv /usr/bin/skype /usr/bin/skype.bkp
### Cria e Atribui o conteúdo abaixo no arquivo skype
sudo cat /usr/bin/skype
sudo echo "#!/bin/bash" > /usr/bin/skype
sudo echo "LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype.bkp" >> /usr/bin/skype
### Permissão para execução
sudo chmod +x /usr/bin/skype
o problema é nessa parte:
### Cria e Atribui o conteúdo abaixo no arquivo skype
sudo cat /usr/bin/skype
sudo echo "#!/bin/bash" > /usr/bin/skype
sudo echo "LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype.bkp" >> /usr/bin/skype
O que preciso com essa parte é criar um arquivo chamado skype em /usr/bin e adicionar essas 2 linhas de comando.
Agradeço desde já!
UA,
Cálcio
-
sudo cat /usr/bin/skype
Vai querer exibir um arquivo que não existe mais?
errado
sudo echo "#!/bin/bash" > /usr/bin/skype
certo
sudo echo '#!/bin/bash' > /usr/bin/skype
Note as aspas simples.
Aqui sim cria o arquivo já com o conteúdo do echo
sudo echo "LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype.bkp" >> /usr/bin/skype
Vai adicionar esse conteúdo no echo ao anterior
Obs. Se você executar o script com sudo não precisa do "sudo" em todos os comandos no script, pois já vai ter permissão de super usuário (root).
-
jeflui, Obrigado pela ajuda!
Mas ainda sim ele cria o arquivo skype.
O uso do Cat foi uma forma desesperada de forçar a criação do arquivo. rs
Existe um comando que crie um arquivo, tipo que existe no PHP, ASP, .NET?
Eu fiz uma gambiarra digna de uma certificação Gambi Pattener Designer. kkkkk
Foi a seguinte criar o aquivo no local onde o script é executado e depois mover. O + estranho é q da forma que fiz ele cria o arquivo. só q qnd tento criar direto em /usr/bin ñ vai.
Seria o caso de no momento que rodo o script dar permissão de escrita nessa pasta para o usuário que está logado e depois voltar a permissão pro root?
Segue a gambi que fiz
#! /bin/bash
#sudo chmod +x /skype
echo "Deseja executar o script de configuração da webcam no Skype? [S/N]"
read resp
test "$resp" = "N" && exit
### Cria e Atribui o conteúdo abaixo no arquivo skype
sudo echo "#!/bin/bash" > skype
sudo echo "LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype.bkp" >> skype
sudo chmod +x skype
### Renomeia o skype para skype.bkp
sudo mv /usr/bin/skype /usr/bin/skype.bkp
### Move aquivo criado para a pasta certa
sudo mv skype /usr/bin/skype
### Permissão para execução
#sudo chmod +x /usr/bin/skype
Só que msm assim a webcam ñ funciona... rs
-
Então o comando touch cria um arquivo.
Exemplo:
touch teste
Não entendi uma coisa, qual o problema do
sudo echo '#!/bin/bash' > /usr/bin/skype
??
-
Então o comando touch cria um arquivo.
Exemplo:
touch teste
Cria o arquivo mas ñ adiciona nenhum conteúdo
Não entendi uma coisa, qual o problema do
sudo echo '#!/bin/bash' > /usr/bin/skype
??
Cara sinceramente ñ sei. Simplesmente ele ñ cria o arquivo dentro de /usr/bin. Se eu colocar o caminho pra onde executo o arquivo ele cria numa boa.
Como na bambiarra que mostrei mais acima.
-
Então o comando touch cria um arquivo.
Exemplo:
touch teste
Cria o arquivo mas ñ adiciona nenhum conteúdo
...
Não entendo o porque de se criar um arquivo usando o touch.
Para criar um arquivo eu uso o seguinte:
> Teste
ou
echo "" > Teste
ou
echo "Conteúdo" > Teste
Inclusive gasta menos processamento e tempo criando assim.
-
Ola clcampos!
Então esse é meu problema. estou usando o codigo abaixo para isso e simplesmente na pasta que quero que execute ñ funciona.
### Cria e Atribui o conteúdo abaixo no arquivo skype
sudo echo "#!/bin/bash" > /usr/bin/skype
sudo echo "LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype.bkp" >> /usr/bin/skype
Repare que esta como foi exemplificado. veja também que fiz uma gambiarra em um post acima. mas ñ queria deixar o script com gambiarra rs
-
Porque você coloca um sudo em cada comando?
Porque não chamar o script com sudo de uma vez? Assim todos os comandos serão executados assim.
E se seu usuário é admin do sistema não tem porque não funcionar.
-
Finalmente consegui fazer funcionar..
Para variar o erro é o típico caso de T&C.
Eu ñ estava conseguindo executar pelo terminal e estava indo direto na pasta e executando pela opção executar pelo terminal e isso ñ sei por que ñ deixava a criação da pasta ser executada.
Então tentei executar direto pelo terminal mais uma vez, e ñ conseguia de jeito nenhum, por isso tentava rodar pelo método acima, só que lembrei que eu estava chamando o caminho errado.
valeu galera pela ajuda de vcs e irei colocar o script na área de scripts úteis.
Irei agora estudar ele para fazer algumas validações e deixar ele + organizado e estruturado!
#! /bin/bash
echo "Deseja executar o script de configuração da webcam no Skype? [S/N]"
read resp
test "$resp" = "N" && exit
### Renomeia o skype para skype.bkp
mv /usr/bin/skype /usr/bin/skype.bkp
echo "#!/bin/bash" > /usr/bin/skype
echo "LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype.bkp" >> /usr/bin/skype
### Permissão para execução
chmod +x /usr/bin/skype
-
Peço desculpas pela minha ignorância, pois não sou programador, apenas um aficionado do Ubuntu.
Estou com problemas para fazer a minha webcam funcionar no skype e vi esta solução de script. só que não sei o que fazer com ele.
Isto é, o script está desenvolvido, mas o que fazer ? qual n ome dar ? acrescentar em que local ? vai ser um lançador ? ou toda vez que quiser utilizar o skype é necessário entrar no terminal e digitar tudo ?
às vezes as conversas de vocês ficam num nível por demais elevado e no final com a solução, nunca há uma dica utilizável por idiotas como eu.
Será que não há como vocês lembrarem destas pobres bactérias do universo Linux, que desejam utilizar o sistema, mas que nada entendem de linguagem e programação ?
Agradeço a atenção.
-
camelotl esse script você só vai utilizar uma vez. Pode dar o nome que você quiser, como "cameraskype", por exemplo. Pode salvar o programa dentro da sua pasta pessoal também.
Então vamos passo a passo:
1- Abra o Gedit e cole :
#! /bin/bash
echo "Deseja executar o script de conficuração da webcam no Skype? [S/N]"
read resp
test "$resp" = "N" && exit
### Renomeia o skype para skype.bkp
mv /usr/bin/skype /usr/bin/skype.bkp
echo "#!/bin/bash" > /usr/bin/skype
echo "LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype.bkp" >> /usr/bin/skype
### Permissão para execução
chmod +x /usr/bin/skype
Salve na sua pasta principal (/home/camelotl - se for esse seu usuario) com o nome cameraskype.
2- Dê permissão de execução para o arquivo:
Vamos fazer isso graficamente? Clique com o botão direito no arquivo recem criado e vá em propriedades. Depois, na aba permissões, marque a caixa "Permitir execução do arquivo como programa"
4- Rodando o programa:
Agora abra o terminal (Acessórios>Consola ou Acessórios>Terminal) e digite: sudo ./cameraskype
Responda "S" para a pergunta e está feito.
-
Agradeço pelo tutorial, vocês deveriam fazer isso mais vezes. Funcionou perfeitamente.
Obrigado pela atenção às pobres bactérias do Universo Linux.
-
Demais!
Valeu, resolveu o problema do meu skype!
[]'s
-
Muito bom cara, parabéns mesmo! Simples e funcional, de lambuja ainda ganhamos uma aula grátis de script!!!
-
Ola companheiros, aqui eu fiz assim;
criei um arquivo de texto simples e dei o nome de .skype-start na minha home e colei o conteudo;
#!/bin/bash
export XLIB_SKIP_ARGB_VISUALS=1
env LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype
cliquei com o direito do mouse em propriedades e dei as permissoes
Depois fui nos menus e criei um novo lançador ocultando o original;
nome Skype
comando /home/seu nome aqui/.skype-start
cometario Voip
icone /usr/share/icons/skype.png
-
Muito bom mesmo..fazia um tempo....
-
Fiz uma modificação no arquivo para automatizar o skype para webcam. Não está exatamente como eu queria, mas está mais amigável.
Abra o gedit Aplicativos > Acessórios > Editor de texto gedit ou qq editor de texto de sua preferência, e cole o comando abaixo:
#! /bin/bash
# Autor: Cálcio Heavy Metal em 21 de Fevereiro de 2010
# Última Modificação por Cálcio Heavy Metal em 03 de Novembro de 2011
# Última Modificação por Cálcio Heavy Metal & platao em 04 de Novembro de 2011
#
#
# Esse script pode ser utilizado e modificado desde que mantenha
# o nome do(s) autore(s)
echo
echo -e "\033[0;31mPor favor, feche seu Skype antes de continuar.\033[0m"
echo
echo "Deseja executar o script de configuração da webcam no Skype? [Digite S ou N]"
read confirmaInstalacao
if [ $confirmaInstalacao = 's' ] || [ $confirmaInstalacao = 'S' ]; then
### Renomeia o skype para skype.bkp
mv /usr/bin/skype /usr/bin/skype.bkp
echo "#!/bin/bash" > /usr/bin/skype
#Ubuntu até 10.04 - 32 bits (PADRÃO)
echo "LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype.bkp" >> /usr/bin/skype
### Ubuntu até 10.04 - 64 bits
#echo "LD_PRELOAD=/usr/lib32/libv4l/v4l1compat.so skype.bkp" >> /usr/bin/skype
### Ubuntu 11.10 - 32 bits
#echo "LD_PRELOAD=/usr/lib32/libv4l/v4l1compat.so skype.bkp" >> /usr/bin/skype
### Permissão para execução
chmod +x /usr/bin/skype
echo
echo "Configuração, executada com sucesso."
echo "Deseja abrir o Skype? [S ou N]"
##e fechar o terminal
##echo -e "\033[0;31mOBS: Esse comando fecha todas as janelas de terminal abertas.\033[0m"
read confirmaAbreSkypeFechaTerminal
if [ $confirmaAbreSkypeFechaTerminal = "s" ] || [ $confirmaAbreSkypeFechaTerminal = "S" ]; then
skype &
else
echo "Você digitou 'N' ou um valor diferente de 'S'."
echo
echo
exit
fi
else
echo "Você digitou 'N' ou um valor diferente de 'S'. "
echo
echo
exit
fi
Salve seu arquivo com o nome cameraskype.
Abra o Nautilus Locais > Pasta Pessoal (gerenciador de arquivos e pasta do Ubuntu) e vá até onde salvou o arquivo cameraskype, clique com o botão direito nele, propriedades, aba permissões e marque a opção execução.
Abra o terminal Aplicativos > Acessórios > Terminal e digite sudo ./camino_do_arquivo/cameraskype e responda as perguntas e fim.
-
Muito legal o seu script Calcio, ja copiei pra mim :) para o Ubuntu 64 bits eu ja vi de tres modos.
desse modo;
sudo gedit /usr/share/applications/skype.desktop
Agora edite a linha 4 substituindo,
Exec=skype
Por:
Exec=bash -c 'LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype'
Para sistemas 64 bits:
Exec=bash -c 'LD_PRELOAD=/usr/lib32/libv4l/v4l1compat.so skype'
Para Ubuntu 11.10:
Exec=bash -c 'LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so skype'
Mas pra mim o Skype depois da versao 10.04 no Ubuntu 64bits nao tive mais que fazer a correção, foi direto. O curioso tbm que funciona aqui no meu note com os dois comandos, tanto com o lib32 quanto com o lib somente...funciona normal a camera.
-
@Platão, tentei usar dessa forma Exec=bash -c 'LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype' porem aquela tela de teste ñ exibiu a cam.
Eu testei esse script ontem no 11.04 e reconheceu ao fazer o teste, mas qnd fui usar a cam deu um chabu, reiniciei o PC e qnd testei de novo foi de boa. rs.
Na versão 64bits realmente precisa usar o LD_PRELOAD=/usr/lib32/libv4l/v4l1compat.so (não tinha testado ontem).
Modifiquei o script com sua dica. Foi de grande ajuda ela.
Valeu ;)
Coloquei seu nick daqui, sinta-se a vontade para colocar o seu nome lá certinho.
-
Obrigado Calcio, eu estou usando o 64bit 11.04 e aqui nesse hardware tanto os comandos usando lib32 quando somente lib ligam a webcam e funciona, o ultimo comando;
Exec=bash -c LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so skype
Eu nao testei ainda no 11.10, esse comando vi no forum skype(e acho que aqui no forum tbm tem) e o que relataram e que funciona...eu vou testar aqui, tenho o 11.10 no pen e reporto para ver funciona desse outro modo.
O ideal e pegar uma instalação em que o skype nao esta funcionando com video, aqui no 11.04 esta funcional entao nao sei se ele esta "ignorando" os comandos e simplesmente estartando a aplicação....o que posso afirmar para ajudar e que nessa camera descrita ai no lsusb esta funcional das tres formas tanto com o lib32,somente lib e i386-linux-gnu todas funcionam......no 11.04.
platao@platao-laptop:~$ sudo lshw -short
[sudo] password for platao:
H/W path Device Class Description
======================================================
system Crestline & ICH8M Chipset ()
/0 bus SANTA ROSA CRB
/0/0 memory 100KiB BIOS
/0/4 processor Intel(R) Core(TM)2 Duo CPU T7700
/0/4/5 memory 64KiB L1 cache
/0/4/6 memory 4MiB L2 cache
/0/16 memory 4GiB System Memory
/0/16/0 memory 2GiB SODIMM DDR2 Synchronous 667 MHz
/0/16/1 memory 2GiB SODIMM DDR2 Synchronous 667 MHz
/0/100 bridge Mobile PM965/GM965/GL960 Memory Contr
/0/100/2 display Mobile GM965/GL960 Integrated Graphic
/0/100/2.1 display Mobile GM965/GL960 Integrated Graphic
/0/100/1a bus 82801H (ICH8 Family) USB UHCI Control
/0/100/1a.1 bus 82801H (ICH8 Family) USB UHCI Control
/0/100/1a.7 bus 82801H (ICH8 Family) USB2 EHCI Contro
/0/100/1b multimedia 82801H (ICH8 Family) HD Audio Control
/0/100/1c bridge 82801H (ICH8 Family) PCI Express Port
/0/100/1c/0 wlan0 network AR242x / AR542x Wireless Network Adap
/0/100/1c.1 bridge 82801H (ICH8 Family) PCI Express Port
/0/100/1c.1/0 eth0 network 88E8039 PCI-E Fast Ethernet Controlle
/0/100/1c.2 bridge 82801H (ICH8 Family) PCI Express Port
/0/100/1c.5 bridge 82801H (ICH8 Family) PCI Express Port
/0/100/1d bus 82801H (ICH8 Family) USB UHCI Control
/0/100/1d.1 bus 82801H (ICH8 Family) USB UHCI Control
/0/100/1d.2 bus 82801H (ICH8 Family) USB UHCI Control
/0/100/1d.7 bus 82801H (ICH8 Family) USB2 EHCI Contro
/0/100/1e bridge 82801 Mobile PCI Bridge
/0/100/1e/9 bridge PCIxx12 Cardbus Controller
/0/100/1e/9.1 bus PCIxx12 OHCI Compliant IEEE 1394 Host
/0/100/1e/9.2 storage 5-in-1 Multimedia Card Reader (SD/MMC
/0/100/1e/9.3 generic PCIxx12 SDA Standard Compliant SD Hos
/0/100/1f bridge 82801HEM (ICH8M) LPC Interface Contro
/0/100/1f.2 scsi0 storage 82801HBM/HEM (ICH8M/ICH8M-E) SATA IDE
/0/100/1f.2/0 /dev/sda disk 250GB TOSHIBA MK2555GS
/0/100/1f.2/0/1 /dev/sda1 volume 44GiB Windows NTFS volume
/0/100/1f.2/0/2 /dev/sda2 volume 188GiB Extended partition
/0/100/1f.2/0/2/5 /dev/sda5 volume 144GiB HPFS/NTFS partition
/0/100/1f.2/0/2/6 /dev/sda6 volume 11GiB Linux filesystem partition
/0/100/1f.2/0/2/7 /dev/sda7 volume 32GiB Linux filesystem partition
/0/100/1f.2/1 /dev/cdrom disk DVD RW AD-7530B
/0/100/1f.3 bus 82801H (ICH8 Family) SMBus Controller
/1 power Intel Corporation
/2 system
platao@platao-laptop:~$
platao@platao-laptop:~$ lsusb
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 002: ID 1bcf:0007 Sunplus Innovation Technology Inc. Optical Mouse
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 003: ID 05c8:0100 Cheng Uei Precision Industry Co., Ltd (Foxlink)
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub