sexta-feira, 20 de abril de 2012

Instale o recurso appmenu-qt no KDE 4.8.2

Olá mundo!

Ontem experimentei o excelente recurso chamado appmenu-qt, que tem como função ocultar o conteúdo da barra de menus de um app, adaptando-o  um botão integrado à barra de título.

Pra quem possui laptop é perfeito, já que ocupa menos espaço na tela, além do visual que fica muito bonito.

Na minha tentativa de ativar esse recurso no meu KDE 4.8.2 fiz umas buscas no Google e não consegui obter respostas satisfatórias.

Resumo: Fui dormir 1h00 da manhã, tirando KDE 4.8.2, botando KDE 4.7.4, aplicando patch, compilando apps em qt pelo cmake... Tudo bem, gosto de fazer isso. A prática ajuda bastante no aprendizado, mas não obtive sucesso.

Apenas hoje, para chegar a esse resultado fiz o seguinte:

1. Instalei o KDE 4.8.2 normalmente, o git, os "patterns" de desenvolvimento devel_kerneldevel_C_C++ e devel_kde e os pacotes libdbusmenu-qt-devel e libqjson-devel para preparar o ambiente para a compilação dos plugins e softwares responsáveis pelo recurso.

2. Baixei os seguintes sources para compila-los nesta ordem:
appmenu-qt-0.2.6 pelo site oficial do projeto
plasma-widget-menubar-0.1.17 pelo site oficial do projeto
oxygen-appmenu pelo git

O appmenu-qt é o "mediador" entre o dbus e o qt que rorna possível esse processo de "exportação" da barra de menu dos apps, para um widget, botão, etc.

O plasma-widget-menubar é, como o nome já diz, um widget para o plasma do KDE que lhe permite criar um menu global como no Mac OS X. Aquele painel superior que serve como container universal para a barra de menu de qualquer app.

O oxygen-appmenu é uma versão modificada do decorador KWIN OXYGEN padrão do KDE. Tive que baixa-lo pelo git porque a versão que está no kde-look.org é definida como 4.7.3 DEPRECATED, em outras palavras, é compatível até a versão 4.7.3, considerada ultrapassada.

Tudo instalado e pronto pra compilar, extraia os sources em /usr/src e compile da seguinte forma

1. Vá ao diretório extraído ( exemplo: /usr/src/appmenu-qt-0.2.6/ ) e crie um diretório /usr/src/appmenu-qt-0.2.6/ chamado build. Ficará assim: /usr/src/appmenu-qt-0.2.6/build/

2. Acesse a pasta build e execute os comandos abaixo
# cmake -DCMAKE_INSTALL_PREFIX=/usr ..
# make
# make install

Após a compilação faça o mesmo processo com as outras fontes extraídas, seguindo a ordem citada acima.

Tudo compilado e instalado, reinicie sua sessão no KDE, vá até
Configurações do Sistema -> Aparência do Espaço de Trabalho -> Decorações da Janela
e escolha Oxygen-appmenu

Clicando em Configurar decoração, você encontra algumas opções referentes ao recurso appmenu. Clicando em Configurar botões, você define a ordem dos objetos (botões, espaços, menu, etc) apresentados na barra de título. 

O appmenu será exatamente o objeto "menu" que fica dentro de Configurar botões.




Espero que gostem da dica.

[ ] ' s e até a próxima.
Share:

quarta-feira, 18 de abril de 2012

Desativando o "Top Corner Hover" das Atividades no Gnome 3

Olá pessoal,

só pra finalizar as dicas de hoje sobre o Gnome 3, vou ensina-los como desativar o recurso de exposição ao movimentar o ponteiro do mouse para o canto superior esquerdo da tela.

Essa dica eu encontrei aqui e espero que seja útil para vocês como foi para mim.

Como root edite o arquivo  /usr/share/gnome-shell/js/ui/panel.js

Navegue até a linha 630 e substitua


hotBox.x1 = Math.round(x);
hotBox.x2 = hotBox.x1 + this._hotCorner.actor.width;
hotBox.y1 = Math.round(y);
hotBox.y2 = hotBox.y1 + this._hotCorner.actor.height;
    this._hotCorner.actor.allocate(hotBox, flags);

por


hotBox.x1 = Math.round(x);
hotBox.x2 = hotBox.x1 + this._hotCorner.actor.width;
hotBox.y1 = Math.round(y);
hotBox.y2 = hotBox.y1 + this._hotCorner.actor.height;
    //qualquercoisa this._hotCorner.actor.allocate(hotBox, flags);


Reinicie o Gnome!
No link original explica o motivo de comentar a linha e colocar algo escrito em "qualquercoisa". No momento eu não me recordo.



[ ] ' s
Share:

Alterando os status disponiveis no Menu de IM no Gnome 3

Olá, turma!!

Estou com muito sono para criar um post extenso. Vou direto ao assunto!

Eu não entendia o motivo de o "User Menu" (aquele que fica no canto superior direito do Gnome 3) só conter as opções disponível e indisponível do IM. Eu sempre fui de utilizar o status ocupado por padrão, pois nem sempre estou com tempo livre, mas costumo conectado ao Talk.

Resolvi fuçar um pouco e acabei descobrindo como colocar as opções OCUPADO e INDISPONÍVEL no menu do IM.

Abra o terminal e edite o arquivo /usr/share/gnome-shell/js/ui/userMenu.js

Vá até a linha 332 e substitua


if (i == IMStatus.AVAILABLE || i == IMStatus.OFFLINE)


por


if (i == IMStatus.BUSY || i == IMStatus.OFFLINE)


Agora, nas linhas 343 e 344 faça as seguintes modificações


if (id == IMStatus.AVAILABLE) {
        newPresence = Tp.ConnectionPresenceType.AVAILABLE;


por


if (id == IMStatus.BUSY) {
        newPresence = Tp.ConnectionPresenceType.BUSY;


Reinicie o gnome e aproveite.
Share:

sábado, 14 de abril de 2012

Recompilando o Freetype2 no OpenSUSE 12.1

Salve, pessoal!!

Ainda na busca pela melhoria da renderização das fontes no OpenSUSE 12.1 encontrei uma ótima dica (nesse blog) sobre recompilação do Freetype2 através do arquivo SPEC.

Para quem não sabe, um arquivo SPEC é um tipo de script que contém informações (especificações) sobre como o compilador deve proceder para compilar um software qualquer e estruturá-lo em um pacote RPM.

Eu já tive a experiência de recompilar o Freetype2 no Slackware com suporte ao Subpixel -  inclusive mantenho em meu disco rígido um pacote txz com esse recurso ativado - mas nunca havia feito isso em sistemas que utilizam RPM como pacote padrão.

Existem duas formas de ativar o subpixel no OpenSUSE. A primeira é instalando um repositório extra que contem esses pacotes já prontos. A segunda, é recompilando através do SPEC.

A primeira opção traz uma maior risco de falhas pois, quanto mais repositórios se habilita, mais possíveis problemas relacionados a conflitos entre pacotes oficiais e pacotes mantidos por terceiros.

Então vamos partir pra segunda opção. Primeiramente instale o arquivo de fonte (source) do Freetype2:
# zypper source-install freetype2 (ou zypper si freetype2)
Siga para o diretório /usr/src/packages/SOURCES/ e observe que ja estarão disponíveis os arquivos freetype-2.4.7.tar.bz2 e freetype-doc-2.4.7.tar.bz2, entre outros.

Instale os pacotes necessários pra compilação:
# zypper in gcc zlib-devel patch
ou, se preferir fazer como eu, instale os grupos de pacotes de desenvolvimento
# zypper in --type pattern devel_C_C++ devel_kernel
Agora siga para o diretório /usr/src/packages/SPECS/ e observe o arquivo freetype2.spec

Abra-o através do seu editor preferido (lembrando de abri-lo como root) e navegue até mais ou menos a linha 98
%define enable_subpixel_rendering 0
Nessa linha deverá ser trocado o valor 0 para 1
%define enable_subpixel_rendering 1
Salve a alteração, feche o editor e execute
# rpmbuild -bb freetype2.spec
Aguarde a compilação dos pacotes terminarem.

Por fim vá até o diretório /usr/src/packages/RPMS/x86_64 (ou i686i586, depende da arquitetura do seu sistema) e instale os pacotes gerados:
# zypper in --force freetype2-devel-2.4.7-6.1.x86_64.rpm libfreetype6-2.4.7-6.1.x86_64.rpm
Lembrando que o nome do pacote no seu sistema pode variar a arquitetura de x86_64 para qualquer outra, dependendo da versão que esteja instalada.

Depois de concluída a instalação, reinicie o PC e ative o subpixel no seu gerenciador de janelas preferido na parte de aparência ou fontes.

Agora é só curtir as belas fontes no OpenSUSE.

[ ] ' s  e até a próxima!

UPDATE

Após a instalação dos pacotes fui atualizar o sistema e percebi que o zypper estava sugerindo a substituição de ambos pela versão que está no repositório. Em outras palavras, os pacotes com o subpixel ativado seriam removidos para que a versão padrão (sem subpixel) fossem instalados novamente.

Então me lembrei que havia lido algo sobre bloqueio de pacotes através do próprio zypper. Fiz uma rápida busca no Google, dei uma olhada no manual (man) e encontrei exatamente o que eu queria.

De acordo com o man, quando você bloqueia um pacote significa que SE ESTE ESTIVER INSTALADO NÃO PODERÁ SER REMOVIDO, OU, SE NÃO ESTIVER INSTALADO, QUALQUER TENTATIVA DE INSTALA-LO SERÁ NEGADA.

Abaixo mostrarei os comandos relacionados a  bloqueio de pacotes:

BLOQUEIO DE PACOTES
# zypper al package(s)
# zypper addlock package(s)

REMOVER O BLOQUEIO DE PACOTES
# zypper rl package(s)
# zypper removelock packages(s)

LISTAR OS PACOTES BLOQUEADOS
# zypper ll
# zypper locks

REMOVER TODOS OS BLOQUEIOS DE PACOTES DE FORMA INTERATIVA
# zypper cl
# zypper cleanlocks
No caso do Freetype2, executei o comando
# zypper al freetype2-devel libfreetype6
A lista com os pacotes bloqueados pode ser vista tambem no arquivo
/etc/zypp/locks

[ ] ' s
Share:

quinta-feira, 12 de abril de 2012

Instalar o Ubuntu numa partição LVM

E aí pessoal, tudo certo?

Hoje decidi passar pela experiência de instalar o Ubuntu no meu notebook após muitos anos sem utiliza-lo (a ultima vez foi em 2006). Como não tinha exatamente nada pra fazer resolvi dar uma espiadinha nas novidades e aproveitei para testá-lo numa partição LVM.

Quando iniciei o instalador percebi que minhas partições LVM não foram reconhecidas. Aí pensei: isso é fácil! Basta instalar os pacotes referentes ao lvm2. Então, 

# apt-get install lvm2 (pra instalar o suporte ao LVM)
# partprobe /dev/sda (pra detecar as partições no disco sda)

Perfeito!!

Reconhecidas as partições, instalei o Ubuntu sem problemas. Daí veio a surpresa. Reiniciei o PC e NADA do sistema carregar. Parava no processo do initramfs.

Pensei um pouco... Se no LIVE CD não havia o suporte ao LVM instalado, obviamente no sistema que instalei não vai ter tambem.

Pra resolver isso precisei carregar novamente o LIVE, refazer o processo de instalação do LVM e detecção de partições e montar a partição raiz (/) do Ubuntu instalado em /mnt

# mount /dev/mappar/particao_root_lvm /mnt

Agora, como fazer pra alterar o conteúdo da distro instalada no disco rígido? Montando os diretorios de processos e dispositivos


# mount -o bind /dev /mnt/dev
# mount -o bind /dev/pts /mnt/dev/pts
# mount -o bind /proc /mnt/proc
# mount -o bind /sys /mnt/sys

Fazendo um chroot
# chroot /mnt /bin/bash

Carregando o profile
# source /etc/profile

Pronto!

Diretorios montados, chroot efetuado e arquivo de configurações do perfil padrão carregado, basta instalar o LVM
# apt-get install lvm

Após finalizar a instalação o próprio sistema irá se encarregar de atualizar o ramdisk pra carregar os módulos necessários para o funcionamento do LVM durante a inicialização.

Se você chegou até aqui deve saber o /boot tem que ser montado numa partição normal (fora do LVM) senão o sistema não carrega.

Por hoje é só!!

[ ] ' s
Share:

sexta-feira, 6 de abril de 2012

Melhorando as fontes no openSUSE

Que o openSUSE é uma ótima distro eu já percebi. Antigamente eu não gostava muito, achava meio pesada, confusa e tal... ficava muito preso ao YAST e achava tudo uma complicação e tanta!


Aprendendo a lidar com o "modo openSUSE" de resolver as coisas acabei por me adaptar.

No momento só tenho uma reclamação: a renderização das fontes são péssimas.

Fiz uma busca no Google e encontrei alguns resultados...
Foi necessário remover o "hint" das fontes. Estranho, hein?

Segue abaixo a configuração ideal

1. Arquivo ~/.fonts.conf

<match target="font">
  <edit name="rgba" mode="assign">
    <const>none</const>
  </edit>
</match>

<match target="font">
  <edit name="autohint" mode="assign">
    <bool>false</bool>
  </edit>
</match>

<match target="font">
  <edit name="hinting" mode="assign">
    <bool>false</bool>
  </edit>
</match>

<match target="font">
  <edit name="hintstyle" mode="assign">
    <const>hintnone</const>
  </edit>
</match>

<match target="font">
  <edit name="antialias" mode="assign">
    <bool>true</bool>
  </edit>
</match>

<match target="font">
  <edit name="lcdfilter" mode="assign">
    <const>lcddefault</const>
  </edit>
</match>

2. Arquivo ~/.Xresources

Xft.autohint: 0
Xft.lcdfilter: lcddefault
Xft.hintstyle: hintnone
Xft.hinting: 0
Xft.antialias: 1
Xft.rgba: none
Share:

terça-feira, 3 de abril de 2012

Adicionando um usuário a um grupo no OpenSUSE

Acabei de instalar o Virtualbox no OpenSUSE e na hora que tentei adicionar meu usuário ao grupo vboxusers obtive uma mensagem de erro que nunca havia visto.

# gpasswd -a usuario grupo
Eu sempre usei o comando acima, mas no OpenSUSE parece que a opção -a não existe no gpasswd. Bom, encontrei este:

# usermod -aG grupo usuario
Fica a dica.
Share:

Linux, sua segmentação e... o synaptics.

Você ja procurou entender o motivo do touchpad do seu notebook funcionar tão bem no fedora 15 e, de repente, nem ser reconhecido no fedora 16? É a mesma distro, só mudou a versão.

E quando você muda de distro, vai para o OpenSUSE 12.1 e descobre que as configurações que você fazia no fedora 15 funciona perfeitamente?

Pois é.

Cheguei a conclusão que temos que compreender a lógica da segmentação do desenvolvimento Linux (promovido pela filosofia opensource & software livre) e as particularidades de cada distribuição. Entenda que 90% do que você configura no /etc/X11/xorg.conf.d/50-synaptics.conf só vai funcionar na tela de login (KDM, GDM, etc.) e que ao entrar no ambiente de trabalho (Gnome, KDE, Xfce, etc.) algumas dessas configurações provavelmente não estarão funcionando (abstraídas por algum outro recurso).

Enrolei, enrolei, enrolei bastante para não deixar o post sem graça rsrs

Vamos configurar o touchpad?

Mão na massa:

Primeiro, edite e salve o arquivo /etc/X11/xorg.conf.d/50-synaptics.conf



Section "InputClass"
    Identifier "touchpad catchall"
    Driver "synaptics"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    Option "TapButton1" "1"
    Option "TapButton2" "3"
    Option "VertTwoFingerScroll" "on"
    Option "HorizTwoFingerScroll" "on"
    Option "VertEdgeScroll" "off"
    Option "HorizEdgeScroll" "off"
    Option "VertScrollDelta" "113"
    Option "HorizScrollDelta" "113"
EndSection



Section "InputClass"
    Identifier "touchpad ignore duplicates"
    MatchIsTouchpad "on"
    MatchOS "Linux"
    MatchDevicePath "/dev/input/mouse*"
    Option "Ignore" "on"
EndSection



O parâmetro MatchDevicePath "/dev/input/event*" deve ser utilizado em um sistema com suporte ao evdev. Combinado com o parâmetro MatchDevicePath "/dev/input/mouse*" e a opção Option "Ignore" "on" evitará que erros e conflitos ocorram devido ao reconhecimento duplicado entre dispositivos touchpad e mouse.
Veja um pouco mais sobre esse assunto aqui. [Em inglês]

Depois crie um script com qualquer nome. Por exemplo, synclient-script.sh



#!/bin/bash

synclient TapButton1=1
synclient TapButton2=3
synclient VertTwoFingerScroll=1
synclient HorizTwoFingerScroll=1
synclient VertEdgeScroll=0
synclient HorizEdgeScroll=0
synclient VertScrollDelta=113
synclient HorizScrollDelta=113

Salve e mude a permissão para +x (permissão de execução) e copie para o diretório de inicialização automática do KDE

$HOME/.kde4/env

Esse diretório tem a função de armazenar scripts que devem ser carregados antes da inicialização do ambiente grafico KDE. Diferente do $HOME/.kde4/Autostart que é utilizado para armazenar scripts que devem ser carregados após o KDE ter sido completamente iniciado, por exemplo, algum navegador de internet que vocẽ deseja que seja aberto automaticamente toda vez que você entrar no KDE.

Para finalizar, analise se não tem nenhum outro gerenciador de touchpad/synaptic correndo no ambiente gráfico. Eu tive problemas para usar meu script porque ja havia o synaptiks instalado (gerenciador de touchpad para KDE). Simplesmente minhas configurações não funcionavam. Como o synaptiks não estava funcionando bem resolvi remove-lo e ficar so com o script.

Espero ter ajudado. ;-)

[ ] ' s
Share:

segunda-feira, 26 de março de 2012

Use e abuse da área de transferência no shell

Salve, pessoal!

Para copiar uma saída de texto para a área de transferência basta utilizar o comando
xsel --clipboard --input
E para colar
xsel --clipboard --output
Exemplo:

Você deseja copiar para área de transferência uma lista com os nomes de todos os pacotes RPM instalados em seu sistema.

rpm -qa | xsel --clipboard --input
Se quiser colar o resultado no shell

xsel --clipboard --output
Ou se deseja concatenar o conteudo da área de transferência pra algum arquivo

xsel --clipboard --output > arquivo.txt
O comando xsel só funciona se estiver rodando em um terminal, dentro de uma sessão X ativa. Mas o que fazer se for no terminal puro?

Para isso temos o screen.

Dentro do terminal, execute o comando screen. Você perceberá uma piscada na tela.

Nesse momento você estará rodando um shell no modo screen.

Para iniciar o modo copy pressione Ctrl+A + [

Movimente-se pelo texto usando as setas de navegação ou as teclas H, J, K e L
H (esquerda)
J (baixo)
K (cima)
L (direita)

Inicie a seleção pressionando a tecla ESPAÇO. Depois que tiver selecionado tudo o que queria, pressione ENTER.

Para colar, basta pressionar Ctrl+A + ]

[ ] ' s
Share:

Aparência dos apps QT4 uniforme ao Gnome 3

E aí povo, beleza?

Eu estava enfrentando aquele velho dilema: KDE ou GNOME?

Bom, cada um com suas vantagens. Não sei por que, mas me adapto mais facil ao GNOME apesar de saber que o KDE é muito mais completo e customizável.

Utilizando o GNOME 3, percebi que os aplicativos escritos em QT4 utilizavam uma aparência feia padrão GTK+ e isso me incomodava muito, pois sou adepto da uniformização da interface.

Como eu gosto do K3B, VLC e VirtualBox, busquei a informação e a encontrei na wiki do ArchLinux.

Muito fácil. Instale os pacotes abaixo:
aldabra-theme-gnome
gnome-tweak-tool
libgnomeui

O aldabra-theme-gnome serve para manter a aparência uniforme entres os apps GTK2 e GTK3. Esse tema nada mais é do que uma cópia quase idêntica do ADWAITA (GTK3), baseada na engine Murrine, para GTK2.

O gnome-tweak-tool é uma ferramenta indispensável para os usuários do GNOME 3. Através dela o usuário é capaz de alterar configurações que não estão disponíveis no Centro de Controle padrão. É aqui que vamos definir o tema Aldabra para GTK.

E por fim, o libgnomeui. Este é o principal componente necessário para que os apps em QT4 consigam utilizar o tema GTK2 (no nosso caso, o Aldabra).

Por hjoje é só.

[ ] ' s
Share:

domingo, 25 de março de 2012

Saída de audio HDMI no Mplayer

E ai pessoal, tudo certo?

Você que possui um dispositivo com saída HDMI e curte utilizar o excelente mplayer pela linha de comando já deve ter se perguntado: Como direciono a saída de audio pela HDMI?


METODO 1 (recomendado)

1. Execute o comando
$ aplay -L

default
    Default
sysdefault:CARD=SB
    HDA ATI SB, ALC272X Analog
    Default Audio Device
front:CARD=SB,DEV=0
    HDA ATI SB, ALC272X Analog
    Front speakers
surround40:CARD=SB,DEV=0
    HDA ATI SB, ALC272X Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=SB,DEV=0
    HDA ATI SB, ALC272X Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=SB,DEV=0
    HDA ATI SB, ALC272X Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=SB,DEV=0
    HDA ATI SB, ALC272X Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=SB,DEV=0
    HDA ATI SB, ALC272X Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
hdmi:CARD=HDMI,DEV=0
    HDA ATI HDMI, HDMI 0
    HDMI Audio Output

Observe acima a saída hdmi:CARD=HDMI,DEV=0

O primeiro campo hdmi significa o nome (ou alias) dado pelo alsa ao dispositivo. Usaremos esse nome.

2. Execute o mplayer passando os parametros
$ mplayer -ao alsa:device=hdmi arquivo


METODO 2


1. Execute o comando
$ aplay -l

**** List of PLAYBACK Hardware Devices ****
card 0: SB [HDA ATI SB], device 0: ALC272X Analog [ALC272X Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 1: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Observe acima a saída card 1: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]

Precisaremos do campo card 1 e device 3

2. Execute o mplayer passando os parametros
$ mplayer -ao alsa:device=hw=1.3 arquivo

FACILITE SUA VIDA CRIANDO UM SCRIPT

1. Crie o arquivo com o nome desejado. Exemplo "mhdmi"
# touch /usr/local/bin/mhdmi

2. Insira o conteúdo abaixo


#!/bin/bash
mplayer -ao alsa:device=hdmi "$1"

ou

#!/bin/bash
mplayer -ao alsa:device=hw=1.3 "$1"

3. Salve o arquivo e ative a permissão de execução
# chmod +x /usr/local/bin/mhdmi

DICA PARA A RADEON

Vi num forum (infelizmente não me lembro qual) uma dica para as pessoas que possuem placas RADEON (AMD/ATI), e não conseguem de forma alguma executar o som pela saída hdmi.

Acrescente a opção radeon.audio=1 nos parametros do kernel

No caso do grub2, edite o arquivo /etc/default/grub, acrescente a opção acima em GRUB_CMDLINE_LINUX e confirme a alteração executando o comando

# grub2-mkconfig -o /boot/grub2/grub.cfg

Espero ter ajudado!

[ ] ' s
Share:

sábado, 24 de março de 2012

quinta-feira, 8 de março de 2012

SSH no Fedora 16: No route to host. WTF!!!

Hoje demorei para conseguir copiar um arquivo do meu Desktop para o Notebook, no Fedora 16.
Primeiro passo foi criar um dispositivo de rede virtual para ambas as máquinas.
Eu uso uma conexao compartilhada por um vizinho, através de uma rede sem fio, e o IP é fornecido pelo roteador dele. Ou seja, se eu fosse fazer uma troca de dados utilizando o escopo da rede fornecida por essa conexão seria muito lento.

Para criar o dispositivo virtual e colocar os dois computadores na mesma rede foi simples.
No PC
ifconfig eth0:1 10.0.0.2 up
No Notebook
ifconfig p4p1:1 10.0.0.1 up
* sendo eth0 o nome do dispositivo de rede no meu PC e p4p1 o nome do dispositivo de rede no meu notebook.

Depois disso, fui executar a conexão. BOMBA!!
Apareceu a mensagem No route to host.

Verifiquei o status do serviço sshd e estava tudo ok.
service sshd status
Reiniciei o serviço por precaução
service sshd restart
Acrescentei o IP do PC no arquivo /etc/hosts.allow no Notebook. Fiz o mesmo processo no PC.

Não funcionava. Depois descobri que não há necessidade (nesse caso) de mexer nesses arquivos.

Procurei no google e segui algumas instruções.

Verifiquei o serviço pelo netstat -an | grep :22

tcp    0   0   0.0.0.0:22   0.0.0.0:*   LISTEN
tcp    0   0   :::22             :::*   LISTEN


E analisei o IPTABLES.

iptables -L -n
Encontrado o problema:

Simplesmente não havia nenhuma regra definida para o ssh. Porta 22 bloqueada.

Chain INPUT (policy ACCEPT)
target     prot opt source       destination        
ACCEPT     all  --  0.0.0.0/0    0.0.0.0/0     state RELATED,ESTABLISHED
ACCEPT     icmp --  0.0.0.0/0    0.0.0.0/0          
ACCEPT     all  --  0.0.0.0/0    0.0.0.0/0          
REJECT     all  --  0.0.0.0/0    0.0.0.0/0     reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source       destination        
REJECT     all  --  0.0.0.0/0    0.0.0.0/0     reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source       destination

Solução:

Adicionar uma regra para a porta 22 editando o arquivo /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp -dport 22 -j ACCEPT



Antes do

-A INPUT -j REJECT --reject-with icmp-host-prohibited
Salve o arquivo e reinicie o serviço com o comando
service iptables restart
Ou reinicie o PC, se precisar.



Fonte: http://nixcraft.com/linux-hardware/6366-no-route-host.html

Dica postada pelo usuário Andrew Burdyug
Share:

Esqueça o ntsysv... agora é chkconfig!!

Só estou postando isso como um lembrete.

Acostumado a utilizar o ntsysv para definir as configurações relacionadas
aos serviços (daemons / scripts no init.d) nas versões anteriores do fedora, sempre perco
alguns minutos tentando lembrar do atual comando
padrão para tal função:

chkconfig
Share: