Testando e usando o systemd em Sabayon Linux

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

[ Hits: 6.365 ]

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

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

Pendrive que não é reconhecido, nem formata? Truque para... RESOLVER!

Sistema simples e econômico de resfriamento para CPUs

Seu compilador GCC não funciona mais, como solucionar?

Brincar com Linux - Inutilitários de Linux!

Leitura recomendada

Logitech Marble Mouse no Linux

Instalando webcam no OpenSuSE 10.2 em menos de 10 segundos

Broadcom BCM4312 com driver nativo do Linux

Linux no AMD64 com SATA

Linux Mint 11 e wifi Ralink

  

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