Raspberry Pi - Instalando Funtoo Linux a partir do stage3 oficial

De Área31 Hackerspace
Revisão de 20h27min de 14 de agosto de 2015 por Coffnix (discussão | contribs)

Instalação

Instalando Funtoo Linux em Raspberry Pi a partir do stage3 oficial

Recomendamos que todo o processo seja realizado no disco local, e apenas no final seja copiado para o SD Card em si. Por questões de praticidade e desempenho. ;)

Obtenha o stage3 oficial do Funtoo Linux compilado para ARM

wget http://ftp.osuosl.org/pub/funtoo/funtoo-current/arm-32bit/armv6j_hardfp/stage3-latest.tar.xz


Particione o SDcard

Device                      Boot   Start          End               Sectors          Size   Id     Type
/dev/mmcblk0p1 *          32              194559       194528         95M   b      W95 FAT32
/dev/mmcblk0p2             194560     1193983     999424       488M  82  Linux swap / Solaris
/dev/mmcblk0p3             1193984  31268863  30074880   14.3G 83  Linux


Dica:

/dev/mmcblk0p1 equivale a /dev/sda1

/dev/mmcblk1p3 equivale a /dev/sdb3

/dev/mmcblk2p2 equivale a /dev/sdc2


Formate as partições

mkfs.vfat /dev/mmcblk0p1
mkswap /dev/mmcblk0p3
mkfs.ext4 /dev/mmcblk0p3

Monte as partições

mkdir -p /tmp/funtoo-raspberrypi
mount /dev/mmcblk0p3 /tmp/funtoo-raspberrypi
mkdir -p /tmp/funtoo-raspberrypi/boot
 mount /dev/mmcblk0p1 /tmp/funtoo-raspberrypi/boot


Descompacte o stage 3 oficial

tar xavpf stage3-armv6j_hardfp-funtoo-current-*.tar.xz -C /tmp/funtoo-raspberrypi

Obtenha o firmware e a imagem do kernel oficial raspberry pi

Instale o Kernel Linux e os modulos

A Fundação Raspberry Pi mantém uma árvore do kernel do Linux que pode ser executado no Raspberry Pi (hardware), incluindo uma versão pré-compilada que usamos aqui. siga os passos abaixo:

cd /tmp/
git clone --depth 1 git://github.com/raspberrypi/firmware/
cp -r firmware/boot/* /tmp/funtoo-raspberrypi/boot
cp -r firmware/modules /tmp/funtoo-raspberrypi/lib


Edite o /etc/fstab

Configure o seu de forma parecida. Respeitando o seu esquema de particionamento e o(s) sistema(s) de arquivo(s) utilizado(s).

vi /tmp/funtoo-raspberrypi/etc/fstab
/dev/mmcblk0p1        /boot	     vfat		noauto,noatime	    1 2
/dev/mmcblk0p2        none         swap         sw                               0 0
/dev/mmcblk0p3	  /		     ext4		nobarrier,noatime  0 1


Crie o arquivo cmdline.txt

Crie a linha com os parâmetros de boot do kernel

vi /tmp/funtoo-raspberrypi/boot/cmdline.txt

Com o seguinte conteúdo:

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p3 rootfstype=ext4 elevator=deadline rootwait


Crie o arquivo config.txt

Crie a linha com os parâmetros de boot do kernel

vi /tmp/funtoo-raspberrypi/boot/config.txt
kernel=kernel.img
disable_overscan=0
config_hdmi_boost=4
hdmi_force_hotplug=1
#hdmi_group=2
#hdmi_mode=48
hdmi_drive=2
hdmi_ignore_cec=1


force_turbo=0

arm_freq=900
core_freq=333
sdram_freq=450
over_voltage=2

Desative o console s0

Comente a linha do console s0 (serial) para correção da mensagem no dmesg: "INIT: Id "s0" respawning too fast".

vi /tmp/funtoo-raspberrypi/etc/inittab


# SERIAL CONSOLES
#s0:12345:respawn:/sbin/agetty 9600 ttyS0 vt100
#s1:12345:respawn:/sbin/agetty 9600 ttyS1 vt100


Configure o timezone

Ative o timezone atual:

cp /tmp/funtoo-raspberrypi/usr/share/zoneinfo/America/Sao_Paulo /tmp/funtoo-raspberrypi/etc/localtime

Configure o timezone default:

echo "America/Sao_Paulo" > /tmp/funtoo-raspberrypi/etc/timezone



Ative acesso de root sem senha

vi /tmp/funtoo-raspberrypi/etc/shadow

Remova o asterisco, e deixe dessa forma a linha referente ao usuário root:

root::10770:0:::::

Ou crie uma senha de root (opcional)

Em primeiro lugar, gere um hash de senha. A saída deste comando será usado para modificar o arquivo /etc/shadow.
 openssl passwd -1

ou

python -c "import crypt, getpass, pwd; print crypt.crypt('password', '\$6\$SALTsalt\$')"

Adicione o hash em SUA_PASSWORD_MD5

vi /tmp/funtoo-raspberrypi/shadow 
root:SUA_PASSWORD_MD5:14698:0:::::

Configure a rede (opcional)

Configure seguindo a documentação oficial Funtoo:

http://www.funtoo.org/wiki/Funtoo_Linux_Networking


Copie os arquivos para o SD Card

Monte o SD Card:

mkdir -p /mnt/sdcard
mount /dev/mmcblk0p3 /mnt/sdcard
mount /dev/mmcblk0p1 /mnt/sdcard/boot

Sincronize os arquivos para o cartão:

rsync -avzh /tmp/funtoo-raspberrypi/ /mnt/sdcard/

Desmonte e remova o cartão:

sync && umount /mnt/sdcard/boot /mnt/sdcard


Pós boot

Configure o relógio

Desative o hwclock e ative o swclock:

The Raspberry Pi does not have a hardware clock, so you need to disable the hwclock daemon and enable swclock.

rc-update add swclock boot
 rc-update del hwclock boot



Compile algumas ferramentas importantes

Ferramentas do SoC

Crontab

emerge sys-process/vixie-cron

Adicione ao boot:

rc-update add vixie-cron && /etc/init.d/vixie-cron start


Atualização automática de data e hora

emerge net-misc/ntp


Adicione a rotina de atualiação de hora ao crontab:

echo '*/2 00 * * * root sntp -s  a.st1.ntp.br b.st1.ntp.br c.st1.ntp.br d.st1.ntp.br a.ntp.br b.ntp.br c.ntp.br gps.ntp.br > /dev/null' >> /etc/crontab


cpufrequtils

Compile o cpufrequtils para gerenciar a frequencia da CPU

emerge --ask cpufrequtils

Adicione ao boot:

rc-update add cpufrequtils default


Configure o arquivo /etc/conf.d/cpufrequtils:

START_OPTS="--governor ondemand"
STOP_OPTS="--governor performance"

Confirme se está corretamente configurado:

cpufreq-info



Compilação de kernel (opcional)

Nosso kernel tem suporte aos mais populares hardwares do mercado, porém se você acha necessário recompilar ou adicionar suporte a algum hardware, ou mesmo modificar o código ao seu bel prazer, obtenha o código fonte do nosso kernel oficial compactado (linux-rpi-*.tar.bz2) e o arquivo de configuração (config-linux-rpi-*):

https://sourceforge.net/projects/kankin/files/arm-v6/raspberry-pi/sources/kernel-rpi/3.11.6-area31-hackerspace/

Descompacte o kernel oficial após o download:

mkdir -p /usr/src && tar xjvpf linux-rpi-3.11.y.tar.bz2 -C /usr/src
mv config-linux-rpi-3.11.y /usr/src/linux-rpi-3.11.y/.config

Crie o link simbólico:

cd /usr/src && ln -s linux-rpi-3.11.y linux

Acesse o diretório do kernel e edite suas preferências:

cd /usr/src/linux && make oldconfig && make menuconfig

Saia salvando, e compile o kernel:

make

Instale o kernel e os modulos:

mount /boot && make install && make modules_install

Edite o arquivo de configuração de boot caso seja necessário, e altere a flag kernel= do arquivo:

vi /boot/config.txt


Atualize para uma versão específica do kernel (opcional)

Para atualizar para um ramo em específico da árvore do kernel do projeto oficial do raspberry pi:

cd /opt
git clone --branch rpi-3.11.y  git://github.com/raspberrypi/linux.git


Pacotes oficiais do area31 hackerspace

Configure seu /etc/make.conf

PORTAGE_BINHOST="http://packages.funtoo.arm32.area31.net.br/funtoo/portage/packages"
FEATURES="-distcc buildpkg parallel-fetch -ccache getbinpkg"
EMERGE_DEFAULT_OPTS="--binpkg-respect-use=n"
emerge --sync

Seja feliz! :D

Qualquer dúvida, nos procure no IRC ou na lista de discussão.

Cookies nos ajudam a entregar nossos serviços. Ao usar nossos serviços, você concorda com o uso de cookies.