Testando e usando o systemd em Sabayon Linux

Publicado por Alberto Federman Neto. em 06/05/2013

[ Hits: 6.597 ]

Blog: https://ciencialivre.blog/

 


Testando e usando o systemd em Sabayon Linux



Introdução

Em Windows, drivers executáveis e bibliotecas DLL são usadas para reconhecer o hardware. Em GNU/Linux e Unix, módulos de kernel reconhecem cada periférico ou dispositivo, que depois será controlado por arquivos de texto especiais e scripts. Drivers executáveis são usados apenas em casos especiais, como placas de vídeo.

No boot, a interação entre o hardware e software é feita pela camada de abstração de hardware, em inglês, HAL - Hardware Abstraction Lawer.

Nos Sabayons antigos, isso era feito através do pacote hal, que hoje é considerado obsoleto em GNU/Linux (foi incorporado no udev), e nos Sabayons novos foi substituído pelos pacotes udisk e upower.

A informação da camada de hardware é repassada a outros pacotes que, por sua vez, irão montar os dispositivos. O mais usado desses pacotes é o udev, mas às vezes, são usados outros ou mais de um, como o mdev, eudev, devicekit, sysfs, evdev, dbus, etc.

Montados os dispositivos, chega a fase do boot de iniciar os serviços residentes em memória e os daemons e depois disso, o "nível de inicialização" (runlevel) definido na distribuição é carregado.

Isso é feito pelo pacote OpenRC (ou em certos casos, pelos pacotes init, sysvinit, upstart ou lauchd) e controlado por arquivos de configuração como: "inittab", "rc.conf", etc.

Nas atuais versões de Sabayon (11, 12 e Experimental 13), como em muitos outros GNU/Linux moderníssimos, há a tendência a substituir o OpenRC e o udev, por um só pacote, o systemd:
Ele trabalha com a carga em processamento paralelo e incorpora as funções do udev e do OpenRC, acelerando muito o boot.

Testando o systemd

Justos créditos do procedimento a Fábio Erculiani e Joost Ruis, Time do Sabayon.

1. Você deve ter um Sabayon instalado. Atualize-o usando Rigo, Sulfur ou comandos. Para isso, veja esta minha dica e links citados nela:
2. Se estiver totalmente atualizado, vai ter os pacotes do systemd instalados. Verifique com este comando:

equo s systemd

Se não estiver instalado, instale o pacote systemd e seu suporte e dependências:

sudo equo i systemd eselect-syvinit eselect-settingsd virtual/udev

3. Agora, troque o controlador de inicialização para o systemd:

sudo eselect sysvinit set systemd
$ sudo eselect settingsd set systemd


4. Edite o arquivo do GRUB, e troque (se houver) o parâmetro antigo de Kernel "init=/linuxrc" por este:

real_init=/sbin/init.d/sysvinit/init


Complementos

1. Não é necessário trocar o kernel, mas se quiser pode fazê-lo.

A maneira mais fácil em Sabayon é com Kernel-Switcher:

sudo equo up && sudo equo u
$ equo s linux-sabayon
$ kernel-switcher list


E veja qual o kernel mais novo. Troque o kernel assim:

sudo kernel-switcher switch "nome completo do kernel mais novo"

Os drivers de vídeo serão reinstalados manualmente.

2. Certos comandos clássicos em GNU/Linux poderão não funcionar mais:
Exemplos: setar direto os níveis de inicialização, parar serviços, etc:

sudo init 0
$ sudo init 6

# service "serviço" stop
# reboot


Acostume-se aos novos tempos, novos comandos. Exemplo para parar um serviço:

# systemctl stop "serviço".service

Se "init 0" não funcionar, tente:

# shutdown -h -P now
Ou:
# poweroff

Para resetar o micro, se "reboot" não funcionar, tente:

systemctl reboot

3. Não remova os serviços udev do boot, nem os pacotes do udev nem do OpenRC, nem modifique o inittab "conf.d", "init.d", porque são dependências e porque se o fizer, não poderá voltar atrás e perderá o reconhecimento do hardware, essencial para o seu boot.

Voltando atrás

Não funcionou, ou não gostou de systemd. Voltar ao udev e ao Open-RC.

Execute estes comandos:

sudo eselect sysvinit set sysvinit
$ sudo eselect settingsd set open-rc


Reedite o arquivo do GRUB, recolocando o parâmetro: init=/linuxrc
Resete o micro. Deve funcionar.

Caso não funcione, reinstale os pacotes do udev e seu suporte e tente resetar:

sudo equo i udev-init-scripts virtual/udev xf86-input-evdev dbus

Se ainda não der, reinstale também o OpenRC e o dbus. No udev, use a opção sem dependências, para não apagar o udev virtual:

sudo equo i dbus
$ sudo emerge -av --nodeps sys-fs/udev


Testes e conclusão

Estou testando e usando em dois computadores meus, com Sabayon:
  1. AMD Atlhon X2, 64 bits, 8 G de RAM, múltiplo boot, múltiplos ambientes gráficos, Sabayon Linux 11, 64 bits, atualizado. O gerenciador de login é KDM. Boot até a tela de login ocorre em 10 segundos.
  2. AMD Phenon X8, 64 bits, 16 G de RAM, duplo boot, múltiplos ambientes gráficos, Sabayon Linux 11, 64 bits atualizado. O gerenciador de Login é GDM. Boot até a tela de login ocorre em 6 segundos.

Em ambos os casos, considerável ganho de tempo.

Testei em Gentoo também (computador descrito no item 1, acima). Nele, o procedimento é basicamente o mesmo, mas deve-se usar obrigatoriamente o Portage para instalar os pacotes e o systemd está mascarado.

Outras dicas deste autor

Como usar Looking Glass sem alterar seu sistema Linux

Compilando/Instalando o novo Cairo-Dock no Sabayon

Suas partições Linux encheram? Não tem mais espaço? Veja o que você pode fazer!

KDE 5 - Não abre Centro de Controle do KDE [Resolvido]

Checando a aceleração 3D - Algumas opções

Leitura recomendada

Montando um pen drive no Linux

Regulando velocidade e energia gasta pelos processadores. Método moderno. cpupower

hdparm - Aumente a velocidade do HD

Configurando placa de rede Atheros no FreeBSD 8.0 para redes WPA-TKIP

Fixar o device da placa de rede

  

Comentários
[1] Comentário enviado por albfneto em 20/06/2013 - 11:03h

atualização em 21 se julho de 2018.

DICA AGORA OBSOLETA. TODOS OS SABAYONS NOVOS VEM COM SYSTEMD COMO PADRÃO

IMPORTANTES COMPLEMENTOS E ATUALIZAÇÔES DA DICA:

RESOLVENDO PROBLEMA DE PERDA DE BOOT COM Systemd:

Se você está usando Systemd, após algumas atualizações, a nova versão (no meu caso,pelo menos), "trocou" o Caminho, o Path do executável INIT e com isso,não há mais Boot.

a mensagem de erro é:

"/sbin/init.d/sysvinit/init not found"

A Solução é simples. Editando o Grub:

http://www.vivaolinux.com.br/dica/Editando-diretamente-o-arquivo-controlador-do-GRUB-2/

Troque na linha do boot do kernel:

real_init=/sbin/init.d/sysvinit/init

por:

real_init=/sbin/init.d/sysvinit/final/init

Atualizado a 23 de Agosto 2013;

APOS ATUALIZAÇÂO NOVA PERDA DE BOOT DO KERNEL:


Ocorre tanto com Systemd como com Sysvinit clássico!

Solução, não é o pacote Systemd versão nova, é o Kernel, faça downgrade do kernel ao 3.10.6 ou ao 3.9.11, em condições de chroot.

Procedimento de Elduderino, Itália:

https://forum.sabayon.org/viewtopic.php?f=57&t=30617&p=165746#p165746

No meu caso, deixei o kernel 3.9.11, mascarei, e vou deixar assim até o kernel 4 ! rsrsrsrsrsrsr






Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts