Distribuições Linux no Samsung Chromebook ARM (XE303C12)

Chromebooks são iguais aos poderosos Macbooks em termos de design: não tem ventoinha, liga rápido e é bem leve. Vem equipado com o Chrome OS, um Gentoo extremamente modificado. Mas aí você quer instalar o Linux nele, não? É ai que eu irei te ajudar, vamos destravar a liberdade dele!

Por: Thauan Oliveira em 28/04/2016

—————————-

Preparando o modo de desenvolvedor

Primeiramente, o Samsung Chromebook para iniciar rapidamente, usa um bootloader modificado chamado “U-Boot”, no qual só inicia kernels assinados corretamente. Google permite que desenvolvedores possam assinar kernels para o Chrome OS para que você possa instalar sua própria distribuição.

O primeiro de tudo é você fazer backup de todos os dados preciosos para você, porque ao entrar em modo de desenvolvedor, tudo será apagado.

Caso dê algo errado, use o Chromebook Recovery Utility. Depois que você salvar tudo, faça as seguintes coisas:

  • Desligue seu Chromebook.
  • Aperte as seguintes teclas todas juntas: Esc + Recarregar + Ligar/Desligar
  • Se tudo ocorreu bem, irá aparecer uma tela informando que o chrome está danificado ou “sumiu”

thumb_chrome-os-is-missing-or-damaged

Agora aperte as seguintes teclas: Ctrl + D

Irá aparecer uma mensagem informando que irá apagar tudo e entrar em modo de desenvolvedor. Aperte “Enter”.

Depois disso irá reiniciar, vai aparecer a tela “A verificação do sistema está desligada” se quiser passar a tela que demora 30 segundos para sair, aperte Ctrl + D.

Agora irá começar o processo de transferência de desenvolvedor, demora uns 30 segundos ou 15 minutos, tudo vai depender do seu Chromebook.

Depois basta esperar o reboot que aparecerá a tela inicial de configuração do sistema (sim, você vai ter que refazer os mesmos passos de quando você ligou o Chromebook na primeira vez), fazer o login (se não quiser é só entrar em visitante) e pronto, seu Chromebook já esta destravado para modificações. :D

Agora vamos prosseguir para o particionamento do Chromebook.

.

Particionando a partição do seu Chromebook

Aqui tudo ficará mais fácil, já que é só rodar um script.

Primeiro, abra o navegador.

Em seguida aperte as seguintes teclas: Ctrl + Alt + T

Isso irá abrir um terminal no próprio navegador.

Irá aparecer: crosh >

1460304131chrome2

Digite “shell”, logo depois digite “cd /tmp” já que o Chrome não permite escrever arquivos dentro do / e execute este comando:

wget http://goo.gl/s9ryd; sudo bash s9ryd

Aparecerá uma mensagem do script informando o quanto você quer particionar do Chromebook, que é entre 5 (mínimo) e 9 (máximo), você pode colocar 10 e fazer o Chrome OS não ter nenhum espaço se quiser.

Escolha quantos gigas você deseja particionar e aperte enter. O Chromebook irá reiniciar e irá aparecer “o Chrome está se auto-recuperando”. Isso significa que o particionamento está em andamento.

Depois que terminar, ele irá reiniciar novamente e voltará para o Chrome OS.

Pronto, seu Chromebook está particionado e pronto para começar a instalação da distribuição Linux!

Agora o próximo passo é a instalação.

.

Instalação do Arch Linux

Existem várias distribuições que dão suporte ao ARM, e neste artigo irei apontar 3: Arch, Ubuntu e Fedora. Mas tem um porém, as distribuições Linux não tem suporte à aceleração de hardware, já que não tem o driver ainda.

Mas você poderá usar o sistema normalmente, assistindo a vídeos em 480p (contra os 1080p 60s do chromeOS), editar documentos, modificar umas coisas aqui e ali etc.

O Arch Linux tem uma versão própria para o Chromebook Samsung, chamada de ALARM (Arch Linux ARM), então instalar ele no Chromebook é mais fácil que o Ubuntu e Fedora.

Logo após o particionamento, duas partições serão nossas casas para a instalação do Linux: ROOT-C e KERNEL-C.

Se você estiver no Chromebook da Samsung, elas serão “mmcblk0p6(kernel-c) e mmcblk0p7(root-c).

Para instalar o Arch, comece montando a partição “mmcblk0p7”, fazendo um diretório chamado “root” na pasta tmp, mas antes disso vá no navegador, aperte as teclas [Ctrl + Alt + T], digite “shell”, logo após digite “sudo su”. Se fez isso corretamente, você estará como root. Prossiga digitando esses três comandos no terminal:

# mkdir /tmp/root
# mount /dev/mmcblk0p7 /tmp/root
# cd /tmp/root

Agora é só copiar este comando:

# wget http://os.archlinuxarm.org/os/ArchLinuxARM-peach-latest.tar.gz

Dependendo da sua internet, isso deve ser rápido. Depois que terminar de baixar, extraia o pacote usando este comando:

# tar -xf *.tar.gz

Espere mais um pouco até que a extração termine e pronto!

Agora prossiga instalando o kernel. Ele já vem no Arch Linux (está na /tmp/root/boot/), mas se quiser se adiantar, aqui está o kernel:

Depois de baixar, use o dd para escrever ele na partição “mmcblk0p6”, a KERNEL-C:

# dd if=vmlinux.kpart of=/dev/mmcblk0p6

Se tudo ocorreu certinho, o Arch está instalado. :D

Coloque ele para ser o primeiro a ser iniciado no boot:

# cgpt add -i 6 -P 5 -S 1 /dev/mmcblk0

Reinicie o sistema e tadá! O Arch iniciou :)

O login é root e a senha é root. Para se conectar ao wifi, use o comando “wifi-menu“.

Quer instalar o Ubuntu em vez do Arch? Então vamos prosseguir!

.

Instalação do Ubuntu Linux

Diferente do Arch no qual você tem instalado a última versão, no Ubuntu tem um problema, pelo menos aqui comigo, todas as versões superiores a 12.04 dá um bug no qual não sai da tela preta.

Parece que o LightDM não suporta o Chromebook ou algo do tipo. Mas tem tutoriais que conseguem até fazê-lo ir até a 15.10 por meio do script que informei aqui. O problema é que terá bugs, que podem roubar seu dinheiro e matar seus gatinhos. :3

Então o 12.04 é o único que aguenta ser instalado no Chromebook.

Vamos lá? Primeiramente faça os mesmos comandos do artigo anterior: abra o terminal no navegador usando:

Ctrl + Alt + T

Digite “shell“.

Digite “sudo su“.

Se você instalou o Arch no Chromebook e deseja trocar pro Ubuntu, formate a partição mmcblk0p7, que é aonde está a “rootfs” do arch, usando este comando:

# mkfs.ext4 /dev/mmcblk0p7

Primeiro monte a partição “mmcblk0p7” criando o diretório /tmp/root:

# mkdir /tmp/root
# mount /dev/mmcblk0p7 /tmp/root
# cd /tmp/root

Agora baixe a versão “core” do Ubuntu (core é o Ubuntu sem nada, apenas com o pacote “ubuntu minimal” no qual contém apt-get etc).

Só colocar pra extrair:

# tar -xf *.tar.gz

Não precisa instalar o kernel novamente, já que o kernel do Arch é o único que consegue ativar os módulos corretamente. Mas se você quiser instalar um “mainline kernel”, saiba que nem todos os módulos do Chrome irão permanecer estáveis no Linux).

Copie o resolv.conf do Chrome para ativar a internet no Ubuntu:

# cp /etc/resolv.conf /tmp/root/etc/
# echo -e “\n127.0.1.1 ubuntu” >> /tmp/urfs/etc/hosts

Agora use o chroot para que você possa instalar seu desktop favorito. :)

# chroot /tmp/root

Lembre-se: não esquece de instalar o xorg, o driver do X11 (xserver-xorg-video-armsoc-exynos(ubuntu 14.04) ou xf86-video-armsoc/xf86-video-fbdev).

Logo após isso, coloque o Ubuntu para ser o principal no boot:

# cgpt add -i 6 -P 5 -S 1 /dev/mmcblk0

O Ubuntu está instalado! :)

Quer instalar o Fedora ao invés do Ubuntu? Vamos continuar!

.

Instalação do Fedora Linux

A instalação do Fedora Linux é igual a dos outros. Só que dessa vez você necessita do seu computador com um Linux instalado para prosseguir com a instalação.

Diferente do Ubuntu, Fedora já tem versões ARM completas com os desktops pre-compilados. Tem KDE, GNOME, SUGAR etc.

Primeiramente vá aqui e escolha sua versão de desktop:

No seu computador, abra o terminal e digite:

# cd /var/tmp

Copie o link do desktop Fedora que você escolheu e baixe com o wget dentro da pasta /var/tmp. Ex.:

# wget https://download.fedoraproject.org/pub/fedora/linux/releases/23/Images/armhfp/Fedora-KDE-armhfp-23-10-sda.raw.xz

Depois de ter baixado, extraia o Fedora usando o comando:

# unxz -v Fedora-[VERSÃO DO DESKTOP QUE VOCÊ ESCOLHEU]-armhfp-[VERSÃO DO FEDORA]-sda.raw.xz

Agora você irá montar a imagem e extrair a Rootfs (o sistema de arquivos):

# kpartx -av /var/tmp/Fedora-[VERSÃO DO DESKTOP QUE VOCÊ ESCOLHEU]-armhfp-[VERSÃO DO FEDORA]-sda.raw
# dd if=/dev/mapper/loop0p3 of=/var/tmp/Fedora-23-[VERSÃO DO DESKTOP QUE VOCÊ ESCOLHEU]-rootfs.ext4 conv=fsync
# kpartx -d /var/tmp/Fedora-[VERSÃO DO DESKTOP QUE VOCÊ ESCOLHEU]-armhfp-[VERSÃO DO FEDORA]-sda.raw

Agora vá para o Chromebook. Abra o terminal do Chrome:

Ctrl + Alt + T

Digite: shell

Digite: sudo su

Agora, grave a imagem do Fedora no disco:

# dd if=/var/tmp/Fedora-23-[VERSÃO DO DESKTOP QUE VOCÊ ESCOLHEU]-rootfs.ext4 of=/dev/mmcblk0p7 bs=2M conv=fsync status=progress

Espere um pouco, tome um café e espere a instalação terminar.

Depois que terminou, verifique se está tudo ok usando o comando:

# mkdir /tmp/fedora
# mount /dev/mmcblk0p7 /tmp/fedora
# ls

Se estiver várias pastas [usr, bin, share etc], é porque a instalação foi um sucesso. :)

Agora coloque o Fedora como primeiro no boot:

# cgpt add -i 6 -P 5 -S 1 /dev/mmcblk0

Se der boot corretamente e você ver o kernel funcionando, o boot foi um sucesso! O Fedora foi instalado.

.

Bugs, dragões e final

Como nem tudo são flores, terá problemas na instalação do Fedora, Arch e Ubuntu. Aqui irei descrevê-los.

EFEITOS (Arch/Fedora/Ubuntu)

Como não existe a aceleração de hardware e 3D, fica meio difícil ter efeitos no desktop. Então você não poderá instalar o Unity (compiz necessita de OpenGL, aqui só existe OpenGL ES), mutter, gala entre outros.

Metacity com sombras é o único que aguenta e dá um efeito bonito.

KWin aguenta efeitos, mas somente os do QT, fora isso, efeitos de minimizar etc nem pega. Fica tudo lerdo (através do XRender). Fora isso, Metacity, Openbox, *box etc são os que você poderá usar.

INTERNET/WIFI (Fedora/Ubuntu)

De primeira você não pode se conectar a nada, já que não existe o driver. Tanto que o Network Manager informa “Sem dispositivos encontrados”.

Para resolver isso, volte pro chromeOS usando este comando:

# cgpt add -i 6 -P 0 -S 1 /dev/mmcblk0p7

Repita os mesmos comando que eu informei no artigo anterior:

Ctrl + Alt + T

Digite: shell

Digite: sudo su

Agora iremos começar as coisas. Vá até a pasta “/tmp” e crie um diretório com o nome que você deseja. Baixe novamente o ALARM (Arch Linux ARM), pois o que falta aqui são os módulos e o firmware do Arch. Estamos usando o kernel do Arch e por isso necessitamos de todos os componentes dele.

Monte a partição “mmcblk0p7”:

# mount /dev/mmcblk0p7 /tmp/[NOME DA PASTA QUE VOCÊ CRIOU]

Agora vá em /tmp/[NOME DA PASTA QUE VC CRIOU]/lib/modules e execute este comando:

# rm -R /tmp/[NOME DA PASTA QUE VOCÊ CRIOU]/lib/modules

Depois de você ter baixado o Arch novamente, extraia ele na pasta que você desejar, e em seguida copie a pasta /lib/modules para a /tmp/[NOME DA PASTA QUE VOCÊ CRIOU]/lib/modules.

A internet ainda não funcionou? É porque ele não achou o firmware sd8797_uapsta_cros.bin. Baixe ele por aqui:

Baixe os três que tiver ali e passe eles para a pasta /tmp/[NOME DA PASTA QUE VOCÊ CRIOU]/firmware/mrvl. Reinicie e voilà! Internet pegando corretamente.

SOM (Fedora/Arch/Ubuntu)

O som fica mudo no Chromebook. Já vi alguns tutoriais informando que se mexer nisso pode queimar os auto falantes, mas eu estou usando aqui e está normal por enquanto. O problema é que ainda não consegui fazer o headphone funcionar.

Se você está no chromeOS, volte pro Linux usando o comando:

# cgpt add -i 6 -P 5 -S 1 /dev/mmcblk0

Depois de entrar no Linux, use o comando:

# alsamixer -c 0

e remova o mudo(pressionando M) nestes seguintes áudios:

  • Left Speaker Mixer Left DAC1
  • Left Speaker Mixer Right DAC1
  • Right Speaker Mixer Left DAC1
  • Right Speaker Mixer Right DAC1
  • Left Headhone Mixer Left DAC1
  • Left Headhone Mixer Right DAC1
  • Right Headhone Mixer Left DAC1
  • Right Headhone Mixer Right DAC1
  • Right Speaker Mixer Right DAC1

Após isso o áudio ficará normal! Mas tome cuidado.

TOUCHPAD (Arch/Ubuntu/Fedora)

O touchpad funciona, no entanto você não pode usar o “slide”, o “tap” e entre outros. Somente clicando o touchpad. Por isso, para fazer estes tais comandos funcionar, você pode usar estes comandos:

# xinput set-prop “Cypress APA Trackpad (cyapa)” “Synaptics Finger” 15 20 256
# xinput set-prop “Cypress APA Trackpad (cyapa)” “Synaptics Two-Finger Scrolling” 1 1

FLASH PLAYER (Arch/Ubuntu/Fedora)

Esse é difícil, e é bem provável que não funcione corretamente. Então nem adianta tentar :/

CHROMIUM (Arch/Ubuntu/Fedora)

Você pode instalar o Chromium nos Linux, mas comigo, pelo menos aqui, ele não funciona corretamente, fechando do nada algumas vezes. o único navegador que pegou corretamente foi o firefox (no qual estou usando agora), o problema é o Google entrando em modo mobile em vez de desktop (isso deve ter haver com o aceleramento de hardware). Ou vá neste github para fazer isso ficar permanente:

VÍDEO DRIVER (Arch/Ubuntu/Fedora)

Existe um driver non-free para vídeo da Mali, mas nunca fiz funcionar corretamente em meu Chromebook. Se quiser tentar, baixe o driver pelo site deles:

A versão da Mali do Chromebook Samsung é a Mali T-60x. Escolha a versão do driver (X11 ou FBDEV) e coloque os arquivos na pasta /usr/lib.

BATERIA (Arch/Ubuntu/Fedora)

Bateria é uma coisa que eu não consegui resolver até agora. Diferente do chromeOS, o Linux tem vários processos correndo ao mesmo tempo, então a bateria vai drenando mais rápido. só pra você ver, eu carreguei meu chromebook até 100%. Em 2 minutos já estava em 98%. Não sei se é a otimização ou coisa do tipo. :/

Bom, espero que tenha gostado do tutorial! Aqui está o resultado final em meu Chromebook.

1460303497Screenshot

[Voltar]