23 de fevereiro de 2007

Blog a 4 mãos

Galera, não sei se perceberam mas agora tem outro "cabra" postando aqui no blog. O Cláudio é um grande amigo meu e vai falar principalmente sobre linux e opensource. Provavelmente ele vai postar muito mais coisa do que eu, e isso é bom porque vai me forçar a correr atraz do prejuízo ;-)

Em breve vou postar mais umas coisas interessantes aqui no blog, e tambem vou dar uma variada, estou preparando um post sobre Oracle Text e uns testes que eu fiz, e aproveitar e falar da instalação do 10g express no ubuntu, aguardem.

22 de fevereiro de 2007

Acessando um servidor Citrix via Linux

O procedimento a seguir é indicado para instalar o Citrix Client no linux, e acessar um servidor. O SAP R/3 de treinamento será utilizado como exemplo.

  1. Baixar o ICA Client última versão para linux, e o certificado TC Trust Center Class 2 CA no Download Center do site http://mywts.sap.com .
  2. Executar com o root o comando rpm -i ICAClient-9.0-1.i386.rpm .
    Obs.: No momento de criação deste manual, a versão mais nova do Citrix Client era a 9.0-1.
  3. Copie com o root o arquivo TCTrustCenterClass2CA.crt para o diretório /usr/lib/ICAClient/keystore/cacerts.

    Obs.: Certifique-se que os usuários comuns tenham permissão de leitura desse arquivo. Execute o comando abaixo com o root:
    chmod +r /usr/lib/ICAClient/keystore/cacerts/TCTrustCenterClass2CA.crt
  4. Acesse o site http://mywts.sap.com/ e, após se logar no sistema de treinamento e clicar no link Common Training, indique o programa /usr/lib/ICAClient/wfica para tratar o arquivo de extensão ICA.

A partir de agora, sempre que clicar um link com extensão ICA, o Citrix Client será acionado.

Atenção: dependendo do servidor a ser acessado, um novo arquivo de certificado deverá ser armazenado no diretório indicado no passo 3 do procedimento acima.

Instalando o Wine pelo código-fonte

Este processo é útil para quem pretende criar um arquivo .deb do zero.

Primeiro se deve incluir os repositórios em seu arquivo /etc/apt/sources.list. É interessante verificar primeiro se os repositórios do Ubuntu já não atendem essa necessidade.

sudo echo deb http://wine.budgetdedicated.com/apt dapper main >> /etc/apt/sources.list
sudo echo deb-src http://wine.budgetdedicated.com/apt dapper main >> /etc/apt/sources.list

A seguir, atualizar as informações de pacotes disponíveis pelo APT, baixar os pacotes necessários para compilar o wine, e efetuar a compilação propriamente dita:

sudo apt-get update
sudo apt-get build-dep wine
sudo apt-get --build source wine

Ao terminar a compilação, execute o comando abaixo para instalar o pacote criado:

sudo dpkg -i wine*.deb

Uma outra forma de compilar o wine é, ao invés de usar o apt-get para compilar os fontes, compilá-los usando make:

sudo apt-get update

sudo apt-get build-dep wine

cd wine*

./configure CFLAGS=-fno-stack-protector
make && sudo make install

O gcc no Ubuntu agora tem stack-protector habilitado, ocasionando falhas de segmentação no wine-preloader. A configuração -fno-stach-protector deve ser utilizada para evitar falhas de segmentação.

Para desinstalar o wine instalado dessa forma:

cd wine*

sudo make uninstall

Em ambas as opções, penso eu, é possível aplicar patches (http://wiki.winehq.org/InterestingPatches).

gunzip -c patch-file | patch -p1

Configuração de som

Rodar winecfg e ajustar o som para usar ALSA e OSS.

  • Para usuários de KDE, uma alternativa é usar aRts.
  • Para usuários de Gnome, uma alternativa é usar EsounD.
  • O uso de Jack e NAS é recomendado apenas para usuários avançados.

Utilizar emulação para DirectSound e para driver. Essa medida vai evitar erros de DSound underrun, ainda não solucionado na árvore principal do Wine.

Rodando programas em um novo display (exemplo com X-Men Legends 2: Rise of Apocalypse)

Arquivo xmen2.sh (game.sh):

#!/bin/sh

# Game parameters.
PROGRAM="c:/Arquivos de programas/Activision/X-Men Legends 2/Data/XMen2.exe -opengl"
SCREEN_RES="1024x768" # Must match screen identifier in XF86Config
SCREEN_BPP="24" # Must be defined for screen in XF86Config
GAMMA="1.75"

~/winerun.sh "$PROGRAM" $SCREEN_RES $SCREEN_BPP $GAMMA

Para cada jogo deve-se criar um arquivo como esse acima deve ser criado.


Arquivo winerun.sh:

#!/bin/sh

PROGRAM=$1
SCREEN_RES=$2
SCREEN_BPP=$3
GAMMA=$4

# Sensitivity works according to "xset mouse"
MOUSE_SENSITIVITY="1.15/15"
# Display number to use
DISPLAY_NUMBER=":1"
# Nice priority to give to wine. Note some games (ex Starcraft) do not like -20.
PRIORITY=-5

GAME_PLAYER=$USER

# extract
APPDIR=${PROGRAM%/*}
APPEXE=./${PROGRAM##*/}

SCRIPT="xgamma -gamma $GAMMA
xset mouse $MOUSE_SENSITIVITY
cd "$HOME/.wine/dosdevices/$APPDIR"
sudo -u $GAME_PLAYER nice $PRIORITY wine $APPEXE $*
wait"

# Run full screen on display 1.
export DISPLAY=$DISPLAY_NUMBER

# Make sure user is allowed to use display 1.
[ "`xauth list $DISPLAY_NUMBER`" ] || xauth add $DISPLAY_NUMBER . `mcookie`

sudo xinit /bin/sh -c "$SCRIPT" -- $DISPLAY -screen $SCREEN_RES -depth $SCREEN_BPP

Acrescentar as seções abaixo ao /etc/X11/xorg.conf:

Section "Screen"
Identifier "800x600"
# Ajuste essa parte conforme definido no seu /etc/X11/xorg.conf [início]
Device "NVIDIA Corporation NV34 [GeForce FX 5200]"
Monitor "SyncMaster"
# Ajuste essa parte conforme definido no seu /etc/X11/xorg.conf [fim]
DefaultDepth 24
SubSection "Display"
Depth 8
Modes "800x600"
EndSubSection
SubSection "Display"
Depth 16
Modes "800x600"
EndSubSection
SubSection "Display"
Depth 24
Modes "800x600"
EndSubSection
EndSection

Section "Screen"
Identifier "1024x768"
# Ajuste essa parte conforme definido no seu /etc/X11/xorg.conf [início]
Device "NVIDIA Corporation NV34 [GeForce FX 5200]"
Monitor "SyncMaster"
# Ajuste essa parte conforme definido no seu /etc/X11/xorg.conf [fim]
DefaultDepth 24
SubSection "Display"
Depth 8
Modes "1024x768"
EndSubSection
SubSection "Display"
Depth 16
Modes "1024x768"
EndSubSection
SubSection "Display"
Depth 24
Modes "1024x768"
EndSubSection
EndSection

Note que identifier e depth se adequam aos parâmetros dos scripts.

Atalhos de teclado:

...

CTRL+ALT+F7 accesses the desktop (display :0)
CTRL+ALT+F8 accesses the game display (assuming it stays on :1)
CTRL+ALT+F9 goes on :2

CTRL+ALT+BACKSPACE terminates desktop

Sugestão de uso: criar um diretório bin em $HOME, e mover os scripts (*.sh) para lá. Executar:

$sh ~/bin/xmen2.sh

Lembrar de ajustar os diretórios para adequar ao seu sistema.