Raspberry Pi - Instalando Funtoo Linux a partir do stage3 oficial: mudanças entre as edições
Sem resumo de edição |
Sem resumo de edição |
||
(2 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 125: | Linha 125: | ||
=== Configure o timezone === | === Configure o timezone === | ||
Ative o timezone atual: | Ative o timezone atual: | ||
{{console|body= | |||
###i## cp /tmp/funtoo-raspberrypi/usr/share/zoneinfo/America/Sao_Paulo /tmp/funtoo-raspberrypi/etc/localtime | |||
}} | |||
ou: | ou: | ||
{{console|body= | |||
###i## echo "America/Sao_Paulo" > /tmp/funtoo-raspberrypi/etc/timezone | |||
}} | |||
=== Ative acesso de root sem senha === | |||
{{console|body= | |||
###i## vi /tmp/funtoo-raspberrypi/etc/shadow | |||
}} | |||
Remova o asterisco, e deixe dessa forma a linha referente ao usuário '''root''': | Remova o asterisco, e deixe dessa forma a linha referente ao usuário '''root''': | ||
{{console|body= | |||
root::10770:0::::: | root::10770:0::::: | ||
}} | |||
==== Ou crie uma senha de root (opcional) ==== | ==== 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. | Em primeiro lugar, gere um hash de senha. A saída deste comando será usado para modificar o arquivo /etc/shadow. | ||
{{console|body= | |||
###i## openssl passwd -1 | |||
}} | |||
ou | ou | ||
{{console|body= | |||
###i## python -c "import crypt, getpass, pwd; print crypt.crypt('password', '\$6\$SALTsalt\$')" | |||
}} | |||
Adicione o hash em '''SUA_PASSWORD_MD5''' | Adicione o hash em '''SUA_PASSWORD_MD5''' | ||
{{console|body= | |||
###i## vi /tmp/funtoo-raspberrypi/shadow | |||
}} | |||
{{console|body= | |||
root:SUA_PASSWORD_MD5:14698:0::::: | root:SUA_PASSWORD_MD5:14698:0::::: | ||
}} | |||
=== Configure a rede (opcional) === | === Configure a rede (opcional) === | ||
Configure seguindo a documentação oficial Funtoo: | Configure seguindo a documentação oficial Funtoo: | ||
https://www.funtoo.org/wiki/Funtoo_Linux_Networking | |||
==== Desative o controle da eth0 pelo NetworkManager ==== | ==== Desative o controle da eth0 pelo NetworkManager ==== | ||
Caso deseje, desative o controle da eth0 pelo NetworkManager, para que só seja gerenciada a interface wifi: | Caso deseje, desative o controle da eth0 pelo NetworkManager, para que só seja gerenciada a interface wifi: | ||
{{console|body= | |||
###i## echo -e '[keyfile]\nunmanaged-devices=interface-name:eth*,except:interface-name:eth0'[keyfile] >> /etc/NetworkManager/NetworkManager.conf | |||
}} | |||
=== Copie os arquivos para o SD Card === | === Copie os arquivos para o SD Card === | ||
Monte o SD Card: | Monte o SD Card: | ||
{{console|body= | |||
###i## mkdir -p /mnt/sdcard | |||
###i## mount /dev/mmcblk0p3 /mnt/sdcard | |||
###i## mount /dev/mmcblk0p1 /mnt/sdcard/boot | |||
}} | |||
Sincronize os arquivos para o cartão: | Sincronize os arquivos para o cartão: | ||
{{console|body= | |||
###i## rsync -avzh /tmp/funtoo-raspberrypi/ /mnt/sdcard/ | |||
}} | |||
Desmonte e remova o cartão: | Desmonte e remova o cartão: | ||
{{console|body= | |||
###i## sync && umount /mnt/sdcard/boot /mnt/sdcard | |||
}} | |||
Linha 183: | Linha 205: | ||
The Raspberry Pi does not have a hardware clock, so you need to disable the hwclock daemon and enable swclock. | The Raspberry Pi does not have a hardware clock, so you need to disable the hwclock daemon and enable swclock. | ||
{{console|body= | |||
###i## rc-update add swclock boot | |||
###i## rc-update del hwclock boot | |||
}} | |||
Linha 196: | Linha 217: | ||
==== Crontab ==== | ==== Crontab ==== | ||
{{console|body= | |||
###i## emerge sys-process/vixie-cron | |||
}} | |||
Adicione ao boot: | Adicione ao boot: | ||
{{console|body= | |||
###i## rc-update add vixie-cron && /etc/init.d/vixie-cron start | |||
}} | |||
Atualização automática de data e hora | Atualização automática de data e hora | ||
{{console|body= | |||
###i## emerge net-misc/ntp | |||
}} | |||
Adicione a rotina de atualiação de hora ao crontab: | Adicione a rotina de atualiação de hora ao crontab: | ||
{{console|body= | |||
###i## 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 ==== | ==== cpufrequtils ==== | ||
Compile o cpufrequtils para gerenciar a frequencia da CPU | Compile o cpufrequtils para gerenciar a frequencia da CPU | ||
{{console|body= | |||
###i## emerge --ask cpufrequtils | |||
}} | |||
Adicione ao boot: | Adicione ao boot: | ||
{{console|body= | |||
###i## rc-update add cpufrequtils default | |||
}} | |||
Configure o arquivo /etc/conf.d/cpufrequtils: | Configure o arquivo /etc/conf.d/cpufrequtils: | ||
{{console|body= | |||
START_OPTS="--governor ondemand" | |||
STOP_OPTS="--governor performance" | |||
}} | |||
Confirme se está corretamente configurado: | Confirme se está corretamente configurado: | ||
{{console|body= | |||
###i## cpufreq-info | |||
}} | |||
Linha 236: | Linha 266: | ||
https://sourceforge.net/projects/kankin/files/arm-v6/raspberry-pi/sources/kernel-rpi/3.11.6-area31-hackerspace/ | 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: | Descompacte o kernel oficial após o download:{{console|body= | ||
###i## mkdir -p /usr/src && tar xjvpf linux-rpi-3.11.y.tar.bz2 -C /usr/src | |||
###i## mv config-linux-rpi-3.11.y /usr/src/linux-rpi-3.11.y/.config | |||
}} | |||
Crie o link simbólico: | Crie o link simbólico: | ||
{{console|body= | |||
###i## cd /usr/src && ln -s linux-rpi-3.11.y linux | |||
}} | |||
Acesse o diretório do kernel e edite suas preferências: | Acesse o diretório do kernel e edite suas preferências: | ||
{{console|body= | |||
###i## cd /usr/src/linux && make oldconfig && make menuconfig | |||
}} | |||
Saia salvando, e compile o kernel: | Saia salvando, e compile o kernel: | ||
{{console|body= | |||
###i## make | |||
}} | |||
Instale o kernel e os modulos: | Instale o kernel e os modulos: | ||
{{console|body= | |||
###i## 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: | Edite o arquivo de configuração de boot caso seja necessário, e altere a flag '''kernel=''' do arquivo: | ||
{{console|body= | |||
###i## vi /boot/config.txt | |||
}} | |||
==== Atualize para uma versão específica do kernel (opcional) ==== | ==== 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: | Para atualizar para um ramo em específico da árvore do kernel do projeto oficial do raspberry pi: | ||
{{console|body= | |||
###i## cd /opt | |||
###i## git clone --branch rpi-3.11.y git://github.com/raspberrypi/linux.git | |||
###i## ego sync | |||
}} | |||
Seja feliz! :D | Seja feliz! :D |
Edição atual tal como às 21h14min de 1 de fevereiro de 2019
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
root # 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
root # mkfs.vfat /dev/mmcblk0p1 root # mkswap /dev/mmcblk0p2 root # mkfs.ext4 /dev/mmcblk0p3
Monte as partições
root # mkdir -p /tmp/funtoo-raspberrypi root # mount /dev/mmcblk0p3 /tmp/funtoo-raspberrypi root # mkdir -p /tmp/funtoo-raspberrypi/boot root # mount /dev/mmcblk0p1 /tmp/funtoo-raspberrypi/boot
Descompacte o stage 3 oficial
root # 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:
root # cd /tmp/ root # git clone --depth 1 git://github.com/raspberrypi/firmware/ root # cp -r firmware/boot/* /tmp/funtoo-raspberrypi/boot root # 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).
root # 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
root # 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
root # vi /tmp/funtoo-raspberrypi/boot/config.txt
kernel=kernel.img disable_overscan=0 config_hdmi_boost=4 hdmi_force_hotplug=1 root #hdmi_group=2 root #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".
root # vi /tmp/funtoo-raspberrypi/etc/inittab
root # 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:
root # cp /tmp/funtoo-raspberrypi/usr/share/zoneinfo/America/Sao_Paulo /tmp/funtoo-raspberrypi/etc/localtime
ou:
root # echo "America/Sao_Paulo" > /tmp/funtoo-raspberrypi/etc/timezone
Ative acesso de root sem senha
root # 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.
root # openssl passwd -1
ou
root # python -c "import crypt, getpass, pwd; print crypt.crypt('password', '\$6\$SALTsalt\$')"
Adicione o hash em SUA_PASSWORD_MD5
root # vi /tmp/funtoo-raspberrypi/shadow
root:SUA_PASSWORD_MD5:14698:0:::::
Configure a rede (opcional)
Configure seguindo a documentação oficial Funtoo:
https://www.funtoo.org/wiki/Funtoo_Linux_Networking
Desative o controle da eth0 pelo NetworkManager
Caso deseje, desative o controle da eth0 pelo NetworkManager, para que só seja gerenciada a interface wifi:
root # echo -e '[keyfile]\nunmanaged-devices=interface-name:eth*,except:interface-name:eth0'[keyfile] >> /etc/NetworkManager/NetworkManager.conf
Copie os arquivos para o SD Card
Monte o SD Card:
root # mkdir -p /mnt/sdcard root # mount /dev/mmcblk0p3 /mnt/sdcard root # mount /dev/mmcblk0p1 /mnt/sdcard/boot
Sincronize os arquivos para o cartão:
root # rsync -avzh /tmp/funtoo-raspberrypi/ /mnt/sdcard/
Desmonte e remova o cartão:
root # 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.
root # rc-update add swclock boot root # rc-update del hwclock boot
Compile algumas ferramentas importantes
Ferramentas do SoC
Crontab
root # emerge sys-process/vixie-cron
Adicione ao boot:
root # rc-update add vixie-cron && /etc/init.d/vixie-cron start
Atualização automática de data e hora
root # emerge net-misc/ntp
Adicione a rotina de atualiação de hora ao crontab:
root # 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
root # emerge --ask cpufrequtils
Adicione ao boot:
root # 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:
root # 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:
root # mkdir -p /usr/src && tar xjvpf linux-rpi-3.11.y.tar.bz2 -C /usr/src root # mv config-linux-rpi-3.11.y /usr/src/linux-rpi-3.11.y/.config
Crie o link simbólico:
root # cd /usr/src && ln -s linux-rpi-3.11.y linux
Acesse o diretório do kernel e edite suas preferências:
root # cd /usr/src/linux && make oldconfig && make menuconfig
Saia salvando, e compile o kernel:
root # make
Instale o kernel e os modulos:
root # 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:
root # 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:
root # cd /opt root # git clone --branch rpi-3.11.y git://github.com/raspberrypi/linux.git root # ego sync
Seja feliz! :D
Qualquer dúvida, nos procure no IRC ou na lista de discussão.