Utilize seu iPad/iPhone/IPod Touch na plataforma GNU/Linux

Com um iPad em mão, percebi a exclusão da Apple com usuário Linux, pois não existe um iTunes for Linux (pelo menos até o presente momento). Sendo assim deixo neste documento as técnicas de comunicação e troca de dados com o seu iPad sem a necessidade de recorrer a sistemas proprietários.

[ Hits: 185.507 ]

Por: Alessandro de Oliveira Faria (A.K.A. CABELO) em 01/07/2010 | Blog: http://assuntonerd.com.br


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
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/iPad

Se 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 Viva o Linux: ePub - O MP3 dos livros

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

Página anterior    

Páginas do artigo
   1. Introdução
   2. Download dos pacotes
   3. Mão na massa
Outros artigos deste autor

Zebra Barcode Reader: Lendo código de barras com a sua Webcam no Linux

Instalando o poderoso banco de dados IBM DB2!

Utilize qualquer Tablet/Smartphone como monitor estendido sem fio no GNU/Linux

Biblioteca VBMcgi: Crie aplicações Web CGI em C++ com acesso ao banco Interbase/Firebird sem mistério

Xtraceroute: O traceroute tridimensional

Leitura recomendada

Configurando placa de som Sound Blaster Live!

Scanner / impressora Lexmark Series 1100 / 1185 / 1195 / 1250 / 1270

Gerenciando módulos no Linux

Instalando impressoras HP

Clonagem de Hardware Hotline em Software Livre

  
Comentários
[1] Comentário enviado por removido em 01/07/2010 - 14:30h

Já tava sentindo falta dos trabalhos do Mr Hair.
Como sempre, uma novidade em alto nível técnico!
Meureceu 10!
;-))

[2] Comentário enviado por fernandoguedes em 01/07/2010 - 20:20h

Muito bom Cabelo! Em breve vou fazer um tutorial ensinando a galera a instalar iPodLinux no iPod, que acrescenta algumas funções ao iPod e tem um rico conteúdo que pode ser encontrado aqui: www.iPodLinux.org

[3] Comentário enviado por fernandoborges em 01/07/2010 - 22:35h

Caraca, que show de artigo, parabéns.

[4] Comentário enviado por jborda em 02/07/2010 - 08:54h

Grande cabelo!
Muito bom artigo irmão, pena eu não ter um iP*** pra testar, agora só falta um artigo de "Como instalar linux em aparelhos xing-ling", como o meu hehehe....

[5] Comentário enviado por Lisandro em 02/07/2010 - 13:32h

Show. Valeu o artigo.

[6] Comentário enviado por gtuxed em 03/07/2010 - 14:02h

Bom artigo.

Dias atrás também precisei <a href="http://gtuxed.blogspot.com/2010/06/copying-your-files-to-iphoneipodipad.html">fuçar</a> um pouco para poder acessar meu ipod touch através do linux.

Quando testei o ifuse vi que era util mesmo só quando o dispositivo já havia sido jailbroken, do contrario apenas acessamos uma parte do disco (não curti muito essa idéia rsrs).

Hehe, agora atualizei um dev que tenho para o iOS 4, não notei nada de mais fora o iBook.

É, uma "apple" sem "cydia" ainda não é muita coisa, para aqueles que concordam com essa opinião vou estar atualizando <a href="http://gtuxed.blogspot.com/2010/06/ios-4-jailbreak.html">este endereço</a> pois quando sair um JB estável para iOS4 vou estar publicando passo a passo em como fazer este procedimento (caso seja necessário pois as vezes o processo é totalmente automático como JB spirit).

Bom é isso ai pessoal ;P

[7] Comentário enviado por Renato_eng em 03/07/2010 - 17:22h

E quanto ao sincronismo de aplicativos?
Acho que esse é o ponto principal dos gadget's da Apple.
O único motivo que ainda dependo no Windows é o iTunes.
Vamos esperar se aparece um substituto real para o iTunes no Linux...

[8] Comentário enviado por nicolo em 03/07/2010 - 20:15h

Prezado Mestre.
Tentei baixar e compilar os pacotes indicados. No Ubuntu o nome das bibliotecas não confere. Fui para o Debian. O pacote usbmuxd-1.0.4 não compila. Há um erro de parêntesis no arquivo CMakeLists.txt linha 46. Corrigi feliz da vida. Depois disso dá erro no log do cmake:

/usr/bin/gcc -O2 -DCHECK_FUNCTION_EXISTS=pthread_create CMakeFiles/cmTryCompileExec.dir/CheckFunctionExists.c.o -o cmTryCompileExec -rdynamic -lpthreads
/usr/bin/ld: cannot find -lpthreads
collect2: ld returned 1 exit status
make[1]: Saindo do diretório `/sdb1/home/nicolo/Download/usbmuxd-1.0.4/build/CMakeFiles/CMakeTmp'
make[1]: ** [cmTryCompileExec] Erro 1
make: ** [cmTryCompileExec/fast] Erro 2

Como não sou profissional de informática, não tenho noçao do que fazer.... That is GNU/LINUX.
That is life.
Excelente artigo....

[9] Comentário enviado por cabelo em 05/07/2010 - 02:10h

Nicolo, no link abaixo os pacotes para o Ubuntu (Karmic, Lucid)

https://launchpad.net/%7Epmcenery/+archive/ppa

[10] Comentário enviado por diogoryu em 05/07/2010 - 14:19h

Mais uma vez, o cabelo sempre nos ajudando com seus ótimos artigos, value cabelo

[11] Comentário enviado por jere2001 em 18/07/2010 - 14:54h

Gostei muito do seu artigo sobre sincronizar o iPad utilizando Linux. Tenho um iPod 5.5g 80Gb. Amo totalmente ele, prá onde vou ele está comigo. Porém devido ao iTunes somente estar disponível para Windows e Mac, devido ao meu amado iPod sou o brigado a manter meu odiado Windows instalado no meu PC.
Seu artigo é interessante mais por curiosidade, porém não é nada prático utilizar esta técnica corriqueiramente para fazer o sincronismo dos gadgets...
Lógico vc pode me citar o Rhythmbox o Amarok e por aí vai. Porém convenhamos nenhum deles tem a capacidade de gerenciamento que o iTunes tem. Eu mesmo sou um total maníaco por música. Mantenho minha biblioteca de 3000 músicas totalmente organizada pelo iTunes que facilita em muito o processo. Isso sem contar o recurso que prá mim é o mais importante no iTunes. O EQUALIZADOR, no iTunes é possível montar uma equalização diferênte por música, e essas configurações o iTunes passa para o iPod.
Nenhum sincronizador de iPod na plataforma Linux tem este recurso.
Isso sem contar que com o iTunes é possível fazer o sincronismo de fotos, vídeos e tudo o mais de forma centralizada e para quem tem um dispositivo grande, é possível deixar tudo de forma automática.
Será que é tão difícil criar algum software tão completo quanto o iTunes. Ou sei lá tentar melhorar o suporte no Rhythmbox (que tem um péssimo equalizador) ou no Banshee, para que os iPod's, iPhone's e iPad's sejam completamente suportados.

[12] Comentário enviado por zezosc em 03/03/2011 - 13:23h

Só uma pequena observação, pelo menos no Kubuntu 10.10 e 10.04 (e nas versões dos programas que estou usando), o comando para converter vídeos fica assim:

ffmpeg -i [NOME-ARQ] -s 640x480 -vcodec mpeg4 -b 2000k -acodec aac -strict experimental -ac 1 -ar 16000 -r 13 -ab 32000 -aspect 3:2 [NOME-ARQ-FINAL.mp4]

[13] Comentário enviado por psychokill3r em 08/02/2012 - 14:31h

Obrigado pelas dicas cabelo.

se voce receber uma mensagem assim :

GNUTLS ERROR: A TLS packet with unexpected length was received

desconecte o idevice assim

$idevicepair unpair

agora desplug e plug denovo que ira funcionar..

só uma coisa como faz para desmontar

man ifuse ñ existe e o --help não ajuda.

Viva o GnuLinux


Contribuir com comentário