Menu

compilando_macos

Wagner Popov dos Santos

*** Nova release / nova versão ***

Foi corrigido um erro na versão para Mac. A porta não era iniciada adequadamente até a versão 0.8.4. A versão atual é a 0.8.15!

1. Instalando no Mac OS X

Nesse momento não existe um pacote pré-compilado do apcctrl para mac os. Para utilizar o software no MacOS você precisa compilar. Siga os passos abaixo.

2. Download do apcctrl e extração

2.1. Para escrever esse documento foi utilizado o apcctrl-0.8.7.tar.gz. Faça o download na seção files.

2.2. Abra um terminal clicando no seu Launchpad e procure por "terminal".

2.3. Mude a pasta atual para a pasta onde está no arquivo baixado:

MeuMac:~ fabio$ cd /Users/fabio/Downloads

2.4. Se o arquivo estiver compactado, descomprima ele com o comando gz:

MeuMac:Downloads fabio$ tar -xvvzf apcctrl-0.8.7.tar.gz

2.5. Os arquivos foram extraidos para a pasta apcctrl-0.8.7. Mude sua pasta atual para essa:

MeuMac:Downloads fabio$ cd apcctrl-0.8.7

3. Compilando e instalando

Agora você vai compilar. Como o MacOSX possui uma série de bloqueios de segurança precisamos fornecer parâmetros durante a compilação.

3.1. Crie a pasta sbin e rode o script configure:

MeuMac:apcctrl-0.8.7 fabio$ mkdir -p /usr/local/sbin
MeuMac:apcctrl-0.8.7 fabio$ ./configure --sbindir=/usr/local/sbin --disable-usb

*Você precisará do pacote XCode instalado! Caso você nunca tenha compilado um software no seu mac, ele solicitará o download das ferramentas de desenvolvimento para continuar. Pode ser necessário rodar o script configure novamente

3.2. Faça a compilação com o comando make:

MeuMac:apcctrl-0.8.7 fabio$ make

3.3. Faça a instalação com o comando make install (com uso do sudo):

MeuMac:apcctrl-0.8.7 fabio$ sudo make install

3.4. Instalação do daemon. Esse passo é necessário para que o daemon seja iniciado sempre que o computador for ligado.

MeuMac:apcctrl-0.8.7 fabio$ sudo launchctl load /Library/LaunchDaemons/org.apcctrl.apcctrl.plist

4. Configuração

Seu nobreak possui um conversor usb-serial embutido dentro dele. Quando o ApcCtrl é iniciado ele precisa saber onde o seu MacOSX colocou o acesso a ele. Os dispositivos estão listados na pasta /dev. Utilize o comando ls com o grep abaixo para facilitar identificar ele:

MeuMac:apcctrl-0.8.7 fabio$ ls -la /dev | grep usb
crw-rw-rw-  1 root   wheel      14,   3 Nov  3 09:03 cu.usbserial-9f3
crw-rw-rw-  1 root   wheel      14,   2 Nov  3 09:00 tty.usbserial-9f3

Um dispositivo usb-serial no Mac inicia com o nome cu. Então, no meu caso, o device que dá acesso ao meu nobreak é /dev/cu.usbserial-9f3

Como o MacOSX fixa os devices pelo número serial, esse conversor do nobreak não possui esse campo corrigido e isso faz com que toda vez que o computador é reiniciado ou o cabo USB é removido e inserido novamente o nome do dispositivo pode mudar. Para contornar isso foi feita uma função apenas para MacOSX que procura o nome do dispotivivo mais similar com o configurado. Com isso, o nome do device confgurado no meu caso deve ser apenas /dev/cu.usbserial

4.1. Alterando o arquivo apcctrl.conf

Esse arquivo é que configura a aplicação. Utilize esse arquivo apcctrl.conf como exemplo. Edite com o comando vim e sudo:

MeuMac:apcctrl-0.8.7 fabio$ sudo vim /etc/apcctrl/apcctrl.conf

* Você pode utilizar outro editor diferente do vim.

4.2. Exemplo dos campos no arquivo de configuração

UPSCABLE simple
UPSTYPE brazil
DEVICE /dev/cu.usbserial

5. Testando

A aplicação apctest deve ser utilizada para testar seu nobreak. Caso você tenha algum problema ao iniciar o apctest você pode tentar mudar o path atual (cd ~) ou rodar como root com o camando sudo.

MeuMac:apcctrl-0.8.7 fabio$ sudo /usr/local/sbin/apctest -d 100

2016-11-03 11:34:22 apctest 0.8.7 (27 September 2016) darwin
Checking configuration ...
sharenet.type = Network & ShareUPS Disabled
cable.type = Custom Cable Simple
mode.type = BRAZIL UPS Driver
Setting up the port ...
Doing prep_device() ...

You are using a APC Brazil type, so I'm entering BRAZIL test mode
Hello, this is the apcctrl Cable Test program.
This part of apctest is for testing APC-Microsol Brazil.
Please select the function you want to perform.

1) Query the UPS for all known values
2) Query for last events
3) Query the internal UPS clock and scheduler
4) Schedule the UPS to shutdown in 1 minutes and restart 1 minute later.
5) Cancel Schedule. Do not shutdown or start
6) Test set input turn off
7) Test set input Turn on
8) Test battery health
9) Generate data of timeleft functions
Q) Quit

Select function number: 

6. Evitando que a porta usb-serial fique bloqueada

Aparentemente é comum encontrar relatos de pessoas que ficaram com a porta usb-serial no Mac OS como bloqueada (locked, em uso). Uma sugestão é criar a pasta e mudar as permissões dela da seguinte forma:

MeuMac:apcctrl-0.8.7 fabio$ sudo mkdir /var/lock
MeuMac:apcctrl-0.8.7 fabio$ sudo chmod 777 /var/lock

Não é uma solução elegante, especialmente para um servidor, aguardo sugestões!

7. Iniciando a aplicação

Para monitorar o apcctrl no ambiente gráfico você deve utilizar o apcagent. Para isso, abra o seu launchpad e procure por apcagent.

Para iniciar ou encerrar o daemon que efetivamente controla o nobreak você deve utilizar o launchctl com o uso do sudo. Para que isso funcione você precisa ter executado a etapa 3.4.

MeuMac:apcctrl-0.8.7 fabio$ sudo launchctl stop org.apcctrl.apcctrl
MeuMac:apcctrl-0.8.7 fabio$ sudo launchctl start org.apcctrl.apcctrl

Para verificar se a aplicação foi carregada pelo launcctl na etapa 3.4 você pode utlizar o comando:

MeuMac:apcctrl-0.8.7 fabio$ sudo launchctl list | grep apc
51      126     org.apcctrl.apcctrl
414     0       com.apcctrl.apcagent.4832

Nesse exemplo, o número 51 indica o PID da aplicação servidora. indicando que o serviço está rodando. Se ao contrário de um número você tiver um hífen, significa que a aplicação servidora não está em execução.

Você também pode utilizar a aplicação apcaccess para verificar o estado do daemon.

MeuMac:apcctrl-0.8.7 fabio$ /usr/local/sbin/apcaccess 
APC      : 001,034,0858
DATE     : 2017-01-06 11:11:03 -0800  
HOSTNAME : Fabios-iMac.local
VERSION  : 0.8.7 (16 December 2016) darwin
UPSNAME  : UpsNome
CABLE    : Custom Cable Simple
DRIVER   : BRAZIL UPS Driver
UPSMODE  : Stand Alone
STARTTIME: 2017-01-06 10:48:33 -0800  
MODEL    : APC Brazil BackUPS 1200 (code 186)
STATUS   : ONLINE 
LINEV    : 217.6 Volts
LOADPCT  : 28.6 Percent
BCHARGE  : 100.0 Percent
TIMELEFT : 17.3 Minutes
MBATTCHG : 25 Percent
MINTIMEL : 10 Minutes
MAXTIME  : 0 Seconds
MAXLINEV : 253.0 Volts
MINLINEV : 187.0 Volts
OUTPUTV  : 112.8 Volts
ITEMP    : 0.0 C
BATTV    : 26.3 Volts
LINEFREQ : 59.0 Hz
LASTXFER : No transfers since turnon
NUMXFERS : 0
TONBATT  : 0 Seconds
CUMONBATT: 0 Seconds
XOFFBATT : N/A
STATFLAG : 0x04000008
NOMOUTV  : 115 Volts
NOMINV   : 220 Volts
NOMBATTV : 24.0 Volts
NOMPOWER : 600 Watts
END APC  : 2017-01-06 11:11:03 -0800  

Related

Wiki: Home
Wiki: apcctrl.conf_macosx

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.