#!/bin/sh

#A Purism e a KDE juntaram forças para levar o Plasma Mobile aos usuários com o dispositivo móvel Purism Librem 5;

#O que isso significa? Bem, começando pela KDE, trata-se de uma comunidade internacional de desenvolvedores de softwares em código aberto e multiplataforma. As aplicações da KDE são projetadas para rodar em sistemas GNU/Linux, Solaris, Windows e Mac OS X;

#O PureOS é baseado no Debian Testing e terá o famoso Wayland e Weston, se você achou estranho estes nomes nós fizemos um artigo explicando o que é o Wayland e o Weston. Depois destes testes, já estamos ansiosos para ver a versão final do Librem 5 com tudo funcionando adequadamente;

#>-..-É necessário apenas informar ao usuário para ele que a instalação é expressa e perigosa e mais todos os detalhes necessários-..-;

#se você quiser tentar algo novo no seu smartphone Android, o Projeto KDE fornece à comunidade não um, mas dois métodos para instalar o seu Plasma Mobile, um sistema de software completo para dispositivos móveis.

ORIGEM=`cat /etc/mtab | grep " / " | grep "/dev" | cut -f1 -d ' '`

#O primeiro método oferecido pelo projeto usa PostmarketOS, uma distribuição Alpine Linux pré-configurada e otimizada para telas sensíveis ao toque, e projetada para oferecer o Plasma Mobile do KDE como uma escolha de ambiente de trabalho/interface de usuário em cima do servidor de exibição Wayland.

DESTINO=/dev/sda1

#A vantagem do método postmarketOS é que ele oferece celulares Plasma Mobile para Android que executam o kernel mainline, incluindo o LG Nexus 5, o tablet Xperia Z2 da Sony e o tablet Google Nexus 7 (2013). À desvantagem, ainda está em estágios iniciais de desenvolvimento e não recomendado aos usuários finais.

#DESTINO=/dev/sda

#Baseada no Ubuntu, a distro KDE Neon é um fork realizado pela própria comunidade de desenvolvedores do KDE Plasma.

#O objetivo é ter uma distribuição GNU/Linux para testar as versões mais atuais do ambiente.

#>-..-Assim como informar para o espectador tomar café durante um longo prazo de instalação.

#O KDE Neon possui duas versões, uma para usuários comuns e outra para desenvolvedores do KDE, sendo que a versão para desenvolvedores é a que costuma trazer as maiores novidades em tecnologias para o Plasma e tudo que o envolve. Nem tudo que entra na versão para desenvolvedores acaba indo para a versão de usuário, é parecido com o que acontece com o Firefox.

dcfldd if=$ORIGEM of=$DESTINO;

#A versão mais recente do KDE Neon Developer Edition traz o Wayland instalado por padrão, agora que o Mir está fora de questão para desktops (a Canonical ainda o utiliza em IoT), o Wayland se tornou de fato o sucessor oficial do X (x.org), os desenvolvedores do KDE estão testando o servidor para integrá-lo ao Plasma no futuro.

e2fsck -f -y -v -C 0 $DESTINO ;

#Isso ajuda os próprios desenvolvedores do Wayland a melhorar o servidor e corrigir bugs, já que existe um sistema no qual os usuários de KDE Plasma já podem utilizá-lo e dar feedbacks.

resize2fs -p $DESTINO ;

#O sistema operacional do CHIP é o Linux. O Linux, como todos os sistemas operacionais modernos, deve ser encerrado de forma ordenada. Simplesmente remover a energia abruptamente pode levar à corrupção do sistema de arquivos do disco baseado em flash do CHIP.

tune2fs -U random $DESTINO ;

#Para configurar um novo chip sem um display disponível, você precisará:

#Conecte-se a ele usando a comunicação serial pela porta micro USB de outro computador

e2label $DESTINO "$NOME"

#Definir as configurações de WiFi para que ele possa se conectar à sua LAN

mount -t $TIPO $DESTINO /mnt ;

#(Opcionalmente) Instale um servidor VNC para que você possa efetuar login na GUI de outro computador 

#Se você conectar seu CHIP em outro computador (um "host") através de um cabo conectado à porta microUSB do CHIP, ele aparecerá no host como um dispositivo de comunicação serial (especificamente, um modem conectado via USB). Em seguida, você pode usar um emulador de terminal no host para efetuar login em um shell no CHIP. O Turn on on # Página shell simples tem instruções completas.

grub-install --root-directory=/mnt $DISCO ;

#Na primavera de 2018, a confirmação oficial do fechamento da Next Thing Co. apareceu no fórum. O domínio getchip.com que incluiu toda a documentação oficial começou a retornar 403 erros em julho de 2018 e o fórum ficou offline em 2 de outubro de 2018.

DESTINO2=`echo $DESTINO | cut -c6-10` ;

#Então, você quer aprender como fazer algum hacking de hardware, hein?

#Eu acho que o computador CHIP da NTC é um dispositivo perfeito para aprender como. Note que eu digo "aprender". Existem muitos projetos para os quais o CHIP por si só não seria uma boa combinação (por exemplo, batendo um protocolo serial com requisitos de tempo apertados). Mas o CHIP é uma plataforma maravilhosa para iniciantes, em parte porque se você acidentalmente destruí-lo, você está apenas fora de US $ 9 . 

UUID=`ls -l /dev/disk/by-uuid/ | grep $DESTINO2 | awk 'NR == 1' | cut -f1 -d '>' | rev | cut -f 2 -d ' ' | rev`

#A boa notícia é que o hacking de hardware é geralmente um passatempo seguro . Os níveis de tensão e corrente com os quais você estará lidando geralmente não são perigosos. Use algum senso comum (você vai queimar seu dedo se você tocar em algo que estava fumando um momento antes) e você vai ficar bem.

DESTINO3=`echo $DESTINO | cut -c9-10` ;

#O Raspberry Pi é compatível com sistemas operativos baseados em GNU/Linux e Windows 10 IoT versão gratuita e adaptada para IoT. Além da oficial Raspbian, as distribuições Arch Linux e Debian são também oficialmente suportadas e disponíveis para download. O sistema operativo é normalmente armazenado num cartão SD;

MSDOS=`echo "msdos$DESTINO3"` ;

DESTINO4=`echo $DESTINO | cut -c8` ;
case $DESTINO4 in
"a") export HD="0" ;;
"b") export HD="1" ;;
"c") export HD="2" ;;
"d") export HD="3" ;;
"e") export HD="4" ;;
"f") export HD="5" ;;
"g") export HD="6" ;;
"h") export HD="7" ;;
"i") export HD="8" ;;
"j") export HD="9" ;;
"k") export HD="10" ;;
"l") export HD="11" ;;
"m") export HD="12" ;;
"n") export HD="13" ;;
"o") export HD="14" ;;
"p") export HD="15" ;;
"*") export HD="0" ;;
esac

#No mundo do código aberto, a palavra “Linux” é praticamente sinônimo de “Sistema Operacional”, mas ele não é o único sistema operacional UNIX® de código aberto.

#BSD é a sigla para “Berkeley Software Distribution”. É o nome do código fonte distribuído pela Universidade da Califórnia, Berkeley, que era originalmente uma extensão do UNIX® desenvolvido pela área de pesquisa da AT&T. Diversos projetos de sistemas operacionais de código aberto foram baseados em uma versão deste código, conhecido como 4.4BSD-Lite. Além disso, eles incluem vários pacotes de outros projetos de código aberto, com destaque para os do projeto GNU. 

GRUBFILE=/mnt/boot/grub/grub.cfg ;

GRUBDIR=/mnt/boot/grub/

FSTABFILE=/mnt/etc/fstab ;

FSTABDIR=/mnt/etc/

#O kernel BSD, que lida com o agendamento de processos, gerenciamento de memória, multi processamento simétrico (symmetric multi-processing ou SMP), drivers de dispositivos, entre outras interfaces importantíssimas;

GRUBSTRINGMSDOS=`cat $GRUBFILE | grep "msdos" | grep "hd" | awk 'NR == 1' | cut -f2 -d ' ' | cut -f2 -d "'" | cut -c3-10`
STRINGUUID=`cat $GRUBFILE | grep "root=UUID" | awk 'NR == 1' | cut -f2 -d ' ' | cut -c11-46`

# GNU Hurd (também conhecido como the Hurd ou apenas Hurd) é um micronúcleo multi-servidor escrito como parte do GNU, desenvolvido para substituir o Unix e publicado como software livre sobre a licença GNU General Public License. 

#Em dezembro de 1991, o arquiteto principal do Hurd, explicou que "HURD" é um acrônimo indiretamente recursivo para: "HIRD of Unix-Replacing Daemons", em que "HIRD" significa "HURD of Interfaces Representing Depth", a opinião que prevalece atualmente na equipe é de que Hurd é um substantivo concreto.

mv $GRUBFILE $GRUBDIR/bkp.grub.cfg
mv $FSTABFILE $FSTABDIR/bkp.fstab

#Ao contrário da maioria de kernels Unix-like, o Hurd utiliza uma arquitetura cliente-servidor, construída em um microkernel, que é responsável por fornecer os serviços mais básicos do kernel - em teoria o projeto microkernel permitiria a todos os drivers de dispositivo serem construídos como servidores que trabalham em espaço do usuário, mas hoje a maioria dos drivers desse tipo são ainda contida no espaço do kernel no GNU Mach.

sed "s/$GRUBSTRINGMSDOS/$HD$MSDOS/g;s/$STRINGUUID/$UUID/g;s/Debian GNU/AMPLO GNU/g" $GRUBDIR/bkp.grub.cfg > $GRUBFILE

sed "s/$STRINGUUID/$UUID/g" $FSTABDIR/bkp.fstab > $FSTABFILE

umount $DESTINO ;

#E por fim quando tudo termina... O linux está instalado, e com um aviso final que informa isso...
