Como já foi mencionado, você precisa instalar um chroot compatível com o ARM no seu dispositivo e instalar todos os pacotes requeridos nesse chroot. No entanto, fazer isso em seu diretório pessoal desperdiça muito espaço valioso. Em vez disso, isso pode ser feito em seu cartão SD usando um computador rodando em um sistema operacional Linux (testado no Linux Mint 17 e Ubuntu Trusty). Como não encontrei nenhuma informação sobre isso em nenhum outro lugar, coloquei aqui como uma resposta para uma pergunta antiga.
As seguintes instruções assumem que você deseja instalar um debian jessie chroot no diretório jessie.
Criando e preenchendo o arquivo de imagem em um computador desktop
Criando um arquivo de imagem vazio
Para criar uma imagem de 1GB chamada IMAGE.img no diretório de trabalho atual, faça:
dd if=/dev/zero of=IMAGE.img bs=1G count=1
Observe que o B em GB é deixado de fora. "if" significa "arquivo de entrada", "de" para
"arquivo de saída" e "bs" para "tamanho de bloco".
Existem comandos mais eficientes por aí, mas esses funcionam apenas em certos
tipos de sistemas de arquivos, tanto quanto eu sei. Este também funciona em um cartão SD ou
um tempfs. Por favor, note o uso de / dev / zero e não / dev / random ou / dev / urandom
como isso levaria muito mais tempo e fazer demorar muito mais para transferir o
imagem entre dispositivos mais tarde.
Criando um sistema de arquivos na imagem
Sem o sistema de arquivos, o telefone não poderia armazenar nenhum dado no
imagem. Sem um sistema de arquivos, você ainda não pode montar a imagem em um diretório,
apenas para um dispositivo de bloco.
Este bash-command irá mostrar o próximo dispositivo de loop vazio na variável LOOP
:
$LOOP=$(sudo losetup -f)
Em seguida, atribua a imagem a um dispositivo de bloco:
sudo losetup $LOOP IMAGE.img
Em seguida, crie o sistema de arquivos ext4:
sudo mkfs -t ext4 $LOOP
Em seguida, retire a imagem do dispositivo de loop:
sudo losetup -d $LOOP
Se você obtiver erros de comando não encontrados, basta instalar os programas ausentes.
Monte o arquivo de imagem no computador para acessá-lo
Agora, crie um diretório temporário no diretório de trabalho:
mkdir jessie
e monte o arquivo de imagem IMAGE.img para ele:
sudo mount -o loop IMAGE.img $(pwd)/jessie
O comando pwd
garantirá que você forneça um caminho absoluto para o seu
diretório de trabalho atual.
Preenchendo a imagem com o novo sistema operacional com o qemu-debootstrap
O próximo passo será usar o qemu-debootstrap para baixar os arquivos necessários.
Isto é fácil se o qemu-debootstrap estiver disponível como é o caso no Ubuntu e
SOs derivados. Se você obtiver erros de comando não encontrados ao executar
qemu-debootstrap --help
, tente instalar o pacote apropriado, que pode ser
feito no Ubuntu via:
sudo apt-get install qemu-user-static
Para baixar todos os arquivos necessários e preparar o novo sistema operacional, execute o seguinte comando:
sudo qemu-debootstrap --arch=armhf jessie ./jessie http://http.debian.net/debian
Por favor, note que o primeiro jessie
representa a versão do SO, enquanto o
O segundo jessie
representa o diretório onde os arquivos serão instalados. Agora você pode desmontar a imagem, pois o restante do trabalho deve ser feito
telefone. Faça isso via:
sudo umount $(pwd)/jessie
Se você não puder instalar o qemu-debootstrap, veja a próxima seção.
Preenchendo a imagem com o novo sistema operacional sem o qemu-debootstrap
Por favor, pule esta seção se você tiver o qemu-debootstrap disponível. Você ainda vai
precisa de um debootstrap nativo para sua arquitetura, no entanto. Se isso acontecer,
armhf, apenas use a linha de comando acima, mas substitua qemu-debootstrap
por
%código%. Caso contrário, siga esta seção.
Para baixar todos os arquivos necessários para o novo sistema operacional, execute o seguinte comando:
sudo debootstrap --arch=armhf --foreign jessie ./jessie \
http://http.debian.net/debian
Agora você pode desmontar a imagem, pois o restante do trabalho precisa ser feito
telefone. Faça isso via:
debootstrap
Transferir imagem para o telefone
Agora é melhor criar um arquivo TAR a partir do qual você copia para o seu
telefone. Não importa se o arquivo é colocado no cartão SD ou
o armazenamento interno. Crie o arquivo na área de trabalho usando:
sudo umount $(pwd)/jessie
Agora, no seu telefone, ative o suporte ssh para copiar a imagem. Você também pode
faça isso usando um cabo USB. Como o servidor ssh é redefinido a cada
reinicialize, inicie o serviço ssh no telefone via:
tar -cvzf jessie.tar.gz IMAGE.img
Em seguida, copie a imagem via:
sudo service ssh start
onde a variável scp jessie.tar.gz phablet@ubuntu-phablet:$COPYDIR
contém o diretório onde a imagem deve ser
armazenado. Este comando assume que seu nome de usuário no telefone é phablet e
o nome do host do telefone é ubuntu-phablet. Você pode descobrir ambos emitindo COPYDIR
e echo $USER
no telefone, respectivamente.
Agora você só precisa extrair o arquivo onde quer que a imagem resida. Suponha que o diretório onde você deseja que a imagem seja localizada
é armazenado na variável echo $HOSTNAME
.Extraia a imagem lá através do bash
comando:
IMAGEDIR
Agora você pode remover o arquivo:
( cd $IMAGEDIR; tar -xvzf $COPYDIR/jessie.tar.gz; )
Finalizando e usando a imagem no telefone
Se você não ativou o servidor ssh no telefone, faça isso agora:
rm $COPYDIR/jessie.tar.gz
Em seguida, monte sua imagem em um diretório de sua escolha (neste caso, "jessie"):
sudo service ssh start
Agora, digite seu chroot pela primeira vez:
sudo mount -o loop $IMAGEDIR/IMAGE.img $(pwd)/jessie
Se você tiver o qemu-debootstrap disponível no seu computador, tudo estará pronto. Usar
os 2 comandos acima para se conectar ao seu chroot. Se não, você ainda tem que
execute o seguinte comando quando estiver dentro do seu chroot, a fim de
configurar corretamente o sistema operacional:
ssh localhost "sudo chroot $(pwd)/jessie /bin/bash"
Resumo de como acessar o chroot
Se você seguiu as etapas acima, poderá acessar seu chroot usando
este simples script no telefone:
#!/bin/bash
sudo service ssh start
ssh localhost "sudo chroot jessie /bin/bash"
Você precisa primeiro fazer o ssh em seu próprio telefone a partir do telefone devido às restrições do aplicativo do terminal. O aplicativo terminal só tem permissão para executar binários em determinados locais e nem o diretório base nem o cartão SD estão entre eles. O serviço ssh, no entanto, não tem essas restrições.