Infra - Linux
Utilize seu iPad/iPhone/IPod Touch na plataforma GNU/Linux
Ao receber o iPad fiquei frustrado ao perceber que o iTune (software utilizado para transferência de dados com iPad e outros devices da APPLE) não está disponível para a versão Linux. Então não restou outra saída a não ser pesquisar as soluções alternativas no mundo open source.
por Alessandro de Oliveira FariaIntrodução
Download dos pacotes
Mão na massa
Ao receber o iPad fiquei frustrado ao perceber que o iTune (software utilizado para transferência de dados com iPad e outros devices da APPLE) não está disponível para a versão Linux. Então não restou outra saída a não ser pesquisar as soluções alternativas no mundo open source.
A seguir dicas para não precisar recorrer aos sistemas operacionais proprietários. Vale a pena mencionar que para o iPod Touch e iPhone podemos contar com o software Rhythmbox, gtkpod e Amarok (vide vídeo abaixo).
Sobre o iPad:
iPad é um dispositivo em formato tablet produzido pela Apple Inc. O aparelho foi anunciado em 27 de janeiro de 2010, em uma conferência para imprensa no Yerba Buena Center for the Arts em São Francisco.[1] Meses antes de seu anúncio, surgiram rumores do nome do aparelho: iSlate, iBook e iTablet, entre outros.
O iPad foi apresentado como um dispositivo situado a meio caminho entre um notebook e um smartphone. O dispositivo utiliza o mesmo sistema operacional do iPhone e é voltado para o público leigo, devido ao tipo de interface oferecido.
A recepção inicial do iPad foi bastante misturada, com muitos entusiastas ficando contra o aparelho devido ao que percebem como limitações e com outros tantos demonstrando grande empolgação com facilidade de interação que a interface demonstra.
As especificações técnicas incluem redes sem fio Wi-Fi 802.11n e Bluetooth 2.1, tela touch de 9,7 polegadas, acelerômetro e bússola. O chip foi identificado pela Apple como A4, de 1GHz. Seu peso é de 680 gramas e sua espessura é de 0,5 polegadas (1, 27cm). Bateria para 10 horas de vídeo e 1 mês de standby. Possui diferentes versões com espaços de 16, 32 e 64 GB.
Fonte: IPad - Wikipédia
A seguir dicas para não precisar recorrer aos sistemas operacionais proprietários. Vale a pena mencionar que para o iPod Touch e iPhone podemos contar com o software Rhythmbox, gtkpod e Amarok (vide vídeo abaixo).
Sobre o iPad:
iPad é um dispositivo em formato tablet produzido pela Apple Inc. O aparelho foi anunciado em 27 de janeiro de 2010, em uma conferência para imprensa no Yerba Buena Center for the Arts em São Francisco.[1] Meses antes de seu anúncio, surgiram rumores do nome do aparelho: iSlate, iBook e iTablet, entre outros.
O iPad foi apresentado como um dispositivo situado a meio caminho entre um notebook e um smartphone. O dispositivo utiliza o mesmo sistema operacional do iPhone e é voltado para o público leigo, devido ao tipo de interface oferecido.
A recepção inicial do iPad foi bastante misturada, com muitos entusiastas ficando contra o aparelho devido ao que percebem como limitações e com outros tantos demonstrando grande empolgação com facilidade de interação que a interface demonstra.
As especificações técnicas incluem redes sem fio Wi-Fi 802.11n e Bluetooth 2.1, tela touch de 9,7 polegadas, acelerômetro e bússola. O chip foi identificado pela Apple como A4, de 1GHz. Seu peso é de 680 gramas e sua espessura é de 0,5 polegadas (1, 27cm). Bateria para 10 horas de vídeo e 1 mês de standby. Possui diferentes versões com espaços de 16, 32 e 64 GB.
Fonte: IPad - Wikipédia
Download dos pacotes
Requisitos de software:
A seguir os programas necessários para prosseguir neste tutorial e alguma dicas para instalação para as distribuições SUSE, Mandriva, Ubuntu e Fedora.
Fuse: http://fuse.sourceforge.net
FUSE ou Filesystem in Userspace. Ele é um projeto que permite o roteamento do pedidos do sistema de arquivos através do VFS (abstração do sistema de arquivos). Um bom exemplo sobre o Fuse é o GmailFS, que permite "montar" sua conta do Gmail, acessando-a como se fosse um HD externo.
libimobiledevice e iFUSE: http://www.libimobiledevice.org
É uma biblioteca com protocolo de comunicação para iPhone, iPod Touch e iPad sem dependência de biblioteca da Apple. O iFuse permite montar o seu iPad no seu sistema de arquivos.
Calibre: http://calibre-ebook.com/
Uma suíte completa para criar, manipular e publicar ePub (livro eletrônico), ou seja, conversor, leitor e editor de arquivos ePub.
Dicas de download:
Abaixo os links para download dos códigos fonte:
Mais informações em: http://www.libimobiledevice.org/
Download para as principais distros:
A seguir os programas necessários para prosseguir neste tutorial e alguma dicas para instalação para as distribuições SUSE, Mandriva, Ubuntu e Fedora.
Fuse: http://fuse.sourceforge.net
FUSE ou Filesystem in Userspace. Ele é um projeto que permite o roteamento do pedidos do sistema de arquivos através do VFS (abstração do sistema de arquivos). Um bom exemplo sobre o Fuse é o GmailFS, que permite "montar" sua conta do Gmail, acessando-a como se fosse um HD externo.
libimobiledevice e iFUSE: http://www.libimobiledevice.org
É uma biblioteca com protocolo de comunicação para iPhone, iPod Touch e iPad sem dependência de biblioteca da Apple. O iFuse permite montar o seu iPad no seu sistema de arquivos.
Calibre: http://calibre-ebook.com/
Uma suíte completa para criar, manipular e publicar ePub (livro eletrônico), ou seja, conversor, leitor e editor de arquivos ePub.
Dicas de download:
Abaixo os links para download dos códigos fonte:
- libimobiledevice-1.0.2.tar.bz2
- ifuse-1.0.0.tar.bz2
- libplist-1.3.tar.bz2
- usbmuxd-1.0.4.tar.bz2
- nautilus-ideviceinfo-0.1.0.tar.bz2
Mais informações em: http://www.libimobiledevice.org/
Download para as principais distros:
- Ubuntu (Karmic, Lucid)
- OpenSUSE openSUSE 11.0, 11.1, 11.2, Factory ou 1-Click Install
- Fedora (já disponível na repositório da versão 12+)
- Madriva (já disponível na versão oficial Cooker)
Mão na massa
Acredito que em breve o software Rhythmbox, gtkpod e Amarok serão 100% funcionais com iPad como são atualmente compatíveis com os telefone iPhone e iPod Touch. Veja o vídeo a seguir para entenderem onde quero chegar. Mas por enquanto vamos aos recursos disponíveis.
Conversão de vídeos: se você possui vídeos no padrão WMV, DIVX, XVID e outros, utilize a linha abaixo para torná-lo compatível com o formato de reprodução do iPad.
$ ffmpeg -i [NOME-ARQ] -s 640x480 -vcodec mpeg4 -b 2000k -acodec aac -ac 1 -ar 16000 -r 13 -ab 32000 -aspect 3:2 [NOME-ARQ-FINAL.mp4]
Transferindo fotos: utilize o utilitário iFuse para montar o iPad na pasta especificada do filesystem. Para tal operação, basta criar a pasta e executar o comando conforme o exemplo a seguir.
$ mkdir iPad
$ ifuse iPad
Verifique se a montagem ocorre com sucesso.
$ df
$ cp /home/cabelo/imagem/*.JPG iPad/DCIM/100APPLE/
ATENÇÃO: As imagens devem possuir obrigatoriamente o nome IMG_[NUMERO_SEQUENCIAL].JPG. Vejam a saída do comando ls logo a seguir.
$ ls iPad/DCIM/100APPLE/
IMG_0001.JPG
IMG_0004.JPG
IMG_0007.JPG
IMG_0011.JPG
IMG_0014.JPG
IMG_0017.JPG
IMG_0020.JPG
IMG_0023.JPG
IMG_0026.JPG
IMG_0002.JPG
IMG_0005.JPG
IMG_0008.JPG
IMG_0012.JPG
IMG_0015.JPG
IMG_0018.JPG
IMG_0021.JPG
IMG_0024.JPG
IMG_0003.JPG
IMG_0006.JPG
IMG_0009.JPG
IMG_0013.JPG
IMG_0016.JPG
IMG_0019.JPG
IMG_0022.JPG
IMG_0025.JPG
Backup e restore:
$ /usr/bin/idevicebackup backup /home/cabelo/iPad/
$ /usr/bin/idevicebackup restore /home/cabelo/iPad/
Gerando screenshots:
$ /usr/bin/idevicescreenshot
Screenshot saved to screenshot-2010-06-28-17-21-24.tiff
Exibindo log de operações:
$ /usr/bin/idevicesyslog
=====================
ASL is here to serve you
>
> Jun 28 14:24:00 unknown Stanza[2683] <Warning>: Stanza exiting cleanly
Listando o device conectado:
$ /usr/bin/idevice_id -l
1f0970a04333c665050d608aef364d1ed1c03636
Informações sobre o device:
$ /usr/bin/ideviceinfo
ActivationPublicKey: LS0tLw1CRUdJwiBeU0rgUFVWTEl
ActivationState: Activated
ActivationStateAcknowledged: true
BluetoothAddress: e8:03:83:90:21:e2
BuildVersion: 7B367
CPUArchitecture: armv7
DeviceCertificate: LS0tLS1CRUdJTiBDIO
DeviceClass: iPad
DeviceColor: unknown
DeviceName: iPad de Ricardo Alexandre Lemos Valverde
DevicePublicKey: AaS0tLS1CRUdJTiBSU0EgUFV
DieID: 3747037828049680404
FirmwareVersion: iBoot-817.28
HardwareModel: K48AP
HostAttached: true
MLBSerialNumber: J60152510G9YG
ModelNumber: MB293
PasswordProtected: false
ProductType: iPad1,1
ProductVersion: 3.2
ProductionSOC: true
ProtocolVersion: 2
RegionInfo: LL/A
SBLockdownEverRegisteredKey: false
SDIOManufacturerTuple:
IOSDIOManufacturerID: 720
IOSDIOProductID: 17193
SDIOProductInfo: P=K48 m=u80
SIMStatus: kCTSIMSupportSIMStatusReady
SerialNumber: V5016EVDZ39
SoftwareBehavior: EQAAAAAAAAAQAAAAABBBBB==
SoftwareBundleVersion:
SomebodySetTimeZone: true
SupportedDeviceFamilies[2]:
0: 1
1: 2
TimeIntervalSince1970: 1277742526
TimeZone: America/Sao_Paulo
TimeZoneOffsetFromUTC: -10800.000000
TrustedHostAttached: true
UniqueChipID: 223922014622
UniqueDeviceID: 1f0972a04222c665050d608aef364d1ed2c23611
Uses24HourClock: false
WiFiAddress: e8:06:82:90:21:e2
iTunesHasConnected: true
Com o programa Calibre em execução, adicione e/ou selecione os livros ou gibis que serão enviados para o iPad ou iPhone e logo em seguida clique no botão preferências. No formulário preferências, selecione o item Servidor de Conteúdo, define a porta de comunicação, login, senha e clique no botão "Iniciar Servidor".
Agora entre no ícone APP Store no iPad, selecione e instale o programa Stanza. Após a instalação, execute-o e clique no ícone "Get Books" conforme a ilustração a seguir.
Agora, na aba "Share", clique no ícone "+" para adicionar um servidor de conteúdo.
Preencha os campos Name e URL com um nome para o seu servidor de conteúdo, na URL o IP seguido da porta seleciona e configurada anteriormente no software calibre.
Se tudo estiver funcionando corretamente, teremos na lista de "Sources Books" do novo servidor cadastrado. Para conectar, clique no servidor recém cadastrado.
Informe no formulário "Secure Catalog" o login e senha definida nos parâmetros do servidor de conteúdo no software calibre.
Após a autenticação, visualizaremos a lista dos livros e gibis disponíveis. Selecione o documento desejado, clique em Download e pronto!
Opções como iBook só funcionará com o iTune no Mac e Linux (por enquanto). Pretendo desenvolver um aplicativo inserir mídias no iPad na linha de comando, pois as mídias inseridas no iPad são registro inclusos em bancos SQLite3. Para inserir mídias MP3 ou MP4 foi preciso utilizar os comando insert manualmente. A seguir uma breve explicação.
Entrando na pasta iTunes Library.itlp, encontramos diversos bancos, entre eles o Locations.itdb com as tabelas base_location (path da localização da mídia) e location (as mídias na integra).
$ cd IPAD/iTunes_Control/iTunes/iTunes\ Library.itlp/
$ sqlite3 Locations.itdb
sqlite> .table
base_location location
sqlite>
Abaixo a estrutura da tabela location e base_location:
sqlite> .schema location
CREATE TABLE location (
item_pid INTEGER NOT NULL,
sub_id INTEGER NOT NULL DEFAULT 0,
base_location_id INTEGER DEFAULT 0,
location_type INTEGER,
location TEXT,
extension INTEGER,
kind_id INTEGER DEFAULT 0,
date_created INTEGER DEFAULT 0,
file_size INTEGER DEFAULT 0,
file_creator INTEGER,
file_type INTEGER,
num_dir_levels_file INTEGER,
num_dir_levels_lib INTEGER,
PRIMARY KEY (item_pid,sub_id));
sqlite> .schema base_location
CREATE TABLE base_location (id INTEGER NOT NULL, path TEXT, PRIMARY KEY (id));
O iTunes é todo baseado nestas tabelas, reparem que mídias mp3, vídeo mp4 e livros são incluso no aparelho com um simples comando insert.
sqlite> select * from location;
4610245287509869689|0|1|1179208773|F36/JJHG.mp3|1297101600|1|298737443|4473555||||
-6283167265674541040|0|1|1179208773|F45/IJDM.mp3|1297101600|1|298737443|4063119||||
-5642726876562733935|0|1|1179208773|F41/IIAE.mp4|1297101856|2|298952628|21454398||||
sqlite> select * from base_location;
1|iTunes_Control/Music
4|Podcasts
Com estas dicas é possível tornar o seu iPad mais independente... Como sempre menciono: Colaborar atrai amigos, competir atrai inimigos...
Sobre o autor: http://www.netitec.com.br/alessandro
Conversão de vídeos: se você possui vídeos no padrão WMV, DIVX, XVID e outros, utilize a linha abaixo para torná-lo compatível com o formato de reprodução do iPad.
$ ffmpeg -i [NOME-ARQ] -s 640x480 -vcodec mpeg4 -b 2000k -acodec aac -ac 1 -ar 16000 -r 13 -ab 32000 -aspect 3:2 [NOME-ARQ-FINAL.mp4]
Transferindo fotos: utilize o utilitário iFuse para montar o iPad na pasta especificada do filesystem. Para tal operação, basta criar a pasta e executar o comando conforme o exemplo a seguir.
$ mkdir iPad
$ ifuse iPad
Verifique se a montagem ocorre com sucesso.
$ df
Sist. Arq. 1K-blocos Usad Dispon. Uso% Montado em /dev/sda6 22705980 14327520 7224996 67% / udev 2028528 684 2027844 1% /dev /dev/sda3 65538604 36285228 29253376 56% /windows ifuse 30443104 1333056 29110048 5% /home/cabelo/iPadSe tudo estiver funcionando corretamente, copie as fotos para a pasta 100APPLE como no exemplo abaixo:
$ cp /home/cabelo/imagem/*.JPG iPad/DCIM/100APPLE/
ATENÇÃO: As imagens devem possuir obrigatoriamente o nome IMG_[NUMERO_SEQUENCIAL].JPG. Vejam a saída do comando ls logo a seguir.
$ ls iPad/DCIM/100APPLE/
IMG_0001.JPG
IMG_0004.JPG
IMG_0007.JPG
IMG_0011.JPG
IMG_0014.JPG
IMG_0017.JPG
IMG_0020.JPG
IMG_0023.JPG
IMG_0026.JPG
IMG_0002.JPG
IMG_0005.JPG
IMG_0008.JPG
IMG_0012.JPG
IMG_0015.JPG
IMG_0018.JPG
IMG_0021.JPG
IMG_0024.JPG
IMG_0003.JPG
IMG_0006.JPG
IMG_0009.JPG
IMG_0013.JPG
IMG_0016.JPG
IMG_0019.JPG
IMG_0022.JPG
IMG_0025.JPG
Comandos úteis
A seguir comandos úteis para utilizar na linha de comando. Função de backup, restore, listagem do dispositivo conectado, e até obter screenshot é possível na linha de comando.Backup e restore:
$ /usr/bin/idevicebackup backup /home/cabelo/iPad/
$ /usr/bin/idevicebackup restore /home/cabelo/iPad/
Gerando screenshots:
$ /usr/bin/idevicescreenshot
Screenshot saved to screenshot-2010-06-28-17-21-24.tiff
Exibindo log de operações:
$ /usr/bin/idevicesyslog
=====================
ASL is here to serve you
>
> Jun 28 14:24:00 unknown Stanza[2683] <Warning>: Stanza exiting cleanly
Listando o device conectado:
$ /usr/bin/idevice_id -l
1f0970a04333c665050d608aef364d1ed1c03636
Informações sobre o device:
$ /usr/bin/ideviceinfo
ActivationPublicKey: LS0tLw1CRUdJwiBeU0rgUFVWTEl
ActivationState: Activated
ActivationStateAcknowledged: true
BluetoothAddress: e8:03:83:90:21:e2
BuildVersion: 7B367
CPUArchitecture: armv7
DeviceCertificate: LS0tLS1CRUdJTiBDIO
DeviceClass: iPad
DeviceColor: unknown
DeviceName: iPad de Ricardo Alexandre Lemos Valverde
DevicePublicKey: AaS0tLS1CRUdJTiBSU0EgUFV
DieID: 3747037828049680404
FirmwareVersion: iBoot-817.28
HardwareModel: K48AP
HostAttached: true
MLBSerialNumber: J60152510G9YG
ModelNumber: MB293
PasswordProtected: false
ProductType: iPad1,1
ProductVersion: 3.2
ProductionSOC: true
ProtocolVersion: 2
RegionInfo: LL/A
SBLockdownEverRegisteredKey: false
SDIOManufacturerTuple:
IOSDIOManufacturerID: 720
IOSDIOProductID: 17193
SDIOProductInfo: P=K48 m=u80
SIMStatus: kCTSIMSupportSIMStatusReady
SerialNumber: V5016EVDZ39
SoftwareBehavior: EQAAAAAAAAAQAAAAABBBBB==
SoftwareBundleVersion:
SomebodySetTimeZone: true
SupportedDeviceFamilies[2]:
0: 1
1: 2
TimeIntervalSince1970: 1277742526
TimeZone: America/Sao_Paulo
TimeZoneOffsetFromUTC: -10800.000000
TrustedHostAttached: true
UniqueChipID: 223922014622
UniqueDeviceID: 1f0972a04222c665050d608aef364d1ed2c23611
Uses24HourClock: false
WiFiAddress: e8:06:82:90:21:e2
iTunesHasConnected: true
Criando a sua biblioteca ePUB (servidor de conteúdo)
Para instalar livros sem precisar da App Store, a seguir os procedimentos para montar o seu próprio servidor de livros, inclusive criados ou editados por você. Em primeiro lugar instale o software Calibre (lembra dele?). A instalação passo-a-passo encontramos no artigo publicado aqui no Linha de Código: ePub - O MP3 dos livrosCom o programa Calibre em execução, adicione e/ou selecione os livros ou gibis que serão enviados para o iPad ou iPhone e logo em seguida clique no botão preferências. No formulário preferências, selecione o item Servidor de Conteúdo, define a porta de comunicação, login, senha e clique no botão "Iniciar Servidor".
Agora entre no ícone APP Store no iPad, selecione e instale o programa Stanza. Após a instalação, execute-o e clique no ícone "Get Books" conforme a ilustração a seguir.
Agora, na aba "Share", clique no ícone "+" para adicionar um servidor de conteúdo.
Preencha os campos Name e URL com um nome para o seu servidor de conteúdo, na URL o IP seguido da porta seleciona e configurada anteriormente no software calibre.
Se tudo estiver funcionando corretamente, teremos na lista de "Sources Books" do novo servidor cadastrado. Para conectar, clique no servidor recém cadastrado.
Informe no formulário "Secure Catalog" o login e senha definida nos parâmetros do servidor de conteúdo no software calibre.
Após a autenticação, visualizaremos a lista dos livros e gibis disponíveis. Selecione o documento desejado, clique em Download e pronto!
Opções como iBook só funcionará com o iTune no Mac e Linux (por enquanto). Pretendo desenvolver um aplicativo inserir mídias no iPad na linha de comando, pois as mídias inseridas no iPad são registro inclusos em bancos SQLite3. Para inserir mídias MP3 ou MP4 foi preciso utilizar os comando insert manualmente. A seguir uma breve explicação.
Entrando na pasta iTunes Library.itlp, encontramos diversos bancos, entre eles o Locations.itdb com as tabelas base_location (path da localização da mídia) e location (as mídias na integra).
$ cd IPAD/iTunes_Control/iTunes/iTunes\ Library.itlp/
$ sqlite3 Locations.itdb
sqlite> .table
base_location location
sqlite>
Abaixo a estrutura da tabela location e base_location:
sqlite> .schema location
CREATE TABLE location (
item_pid INTEGER NOT NULL,
sub_id INTEGER NOT NULL DEFAULT 0,
base_location_id INTEGER DEFAULT 0,
location_type INTEGER,
location TEXT,
extension INTEGER,
kind_id INTEGER DEFAULT 0,
date_created INTEGER DEFAULT 0,
file_size INTEGER DEFAULT 0,
file_creator INTEGER,
file_type INTEGER,
num_dir_levels_file INTEGER,
num_dir_levels_lib INTEGER,
PRIMARY KEY (item_pid,sub_id));
sqlite> .schema base_location
CREATE TABLE base_location (id INTEGER NOT NULL, path TEXT, PRIMARY KEY (id));
O iTunes é todo baseado nestas tabelas, reparem que mídias mp3, vídeo mp4 e livros são incluso no aparelho com um simples comando insert.
sqlite> select * from location;
4610245287509869689|0|1|1179208773|F36/JJHG.mp3|1297101600|1|298737443|4473555||||
-6283167265674541040|0|1|1179208773|F45/IJDM.mp3|1297101600|1|298737443|4063119||||
-5642726876562733935|0|1|1179208773|F41/IIAE.mp4|1297101856|2|298952628|21454398||||
sqlite> select * from base_location;
1|iTunes_Control/Music
4|Podcasts
Com estas dicas é possível tornar o seu iPad mais independente... Como sempre menciono: Colaborar atrai amigos, competir atrai inimigos...
Sobre o autor: http://www.netitec.com.br/alessandro
- Login automático com SSH e Automatização da instalação (deploy) e atualização de sites com GitLinux
- Extensão Sun Presentation Minimizer para Broffice.ORGLinux
- Otimização de Desempenho em sistemas GNU/LinuxLinux
- Hardware para sistemas GNU/Linux - Dicas de Desempenho - Parte 3Hardware
- Hardware para sistemas GNU/Linux - Dicas de Desempenho - Parte 2Hardware