Por que esse comando Autologin funciona?

3

Eu instalei o mínimo do Ubuntu 12.10 . Eu quero que esse ambiente ocupe o menor espaço em disco possível, então não instalei um desktop e estou fazendo tudo via console. Eu quero fazer login automático no sistema quando ele é inicializado. Eu descobri um método para login automático, mas não entendo completamente.

Eu editei o arquivo /etc/init/tty1.conf e mudei a última linha de

exec /sbin/getty -8 38400 tty1

para

exec /bin/login -f username < /dev/tty1 > /dev/tty1 2>&1

... onde "username" é o nome do usuário para fazer o login. Isso funciona perfeitamente, mas por quê? Eu entendo "login -f username" e redirecionamento, mas não vejo onde a mágica de login automático está acontecendo.

Obrigado.

    
por SpaceRook 22.11.2012 / 06:41

1 resposta

1

A maior parte da resposta encontra-se na página man: man login .

Em seu comando original, getty faz alguma configuração (consulte a página do manual) solicita um nome de login e chama login . Em seu novo comando, você está ignorando getty e invocando o login diretamente. A chave é a opção -f . O manual diz sobre isso:

Do not perform authentication, user is authenticated. Note: In that case, username is mandatory.

Como login é o programa que lida com logins, ele pode facilmente ignorar a autenticação, se necessário.

    
por Scott Severance 23.11.2012 / 14:03
___ tag123kernel ___ Questões relacionadas ao kernel do Linux no Ubuntu. Os problemas podem incluir a atualização e instalação de kernels, compilação, patches e módulos do kernel. ___ qstntxt ___

Esta não é uma questão teórica, pois muitos fizeram isso, embora haja muito pouca informação sobre os processos subjacentes.

Estou desenvolvendo um processador personalizado baseado em MIPS no qual gostaria de executar o Ubuntu. Estou bastante perplexo sobre o que fazer depois de projetar o conjunto de instruções e a própria arquitetura do computador. Eu preciso ser capaz de rodar um kernel e sistema operacional, mas como isso tudo se encaixa? No momento, estou pesquisando sobre como criar um compilador para o kernel do Linux para gerar a linguagem de montagem apropriada. Esse é um bom caminho a percorrer? O que eu preciso fazer depois disso?

    
___ answer221556 ___

Para ter alguma chance de conseguir isso, primeiro você precisa que o GCC seja capaz de produzir o código objeto para sua CPU alvo, o kernel foi escrito usando o GCC e também assumimos que o GCC é usado para construir muito espaço do usuário aplicações também.

Você também precisa escrever as partes específicas da arquitetura no kernel para sua CPU e plataforma. Se você tiver baseado sua CPU em projetos MIPS existentes, isso tornará a vida um pouco mais fácil, por exemplo, o gerenciamento de gerenciamento de memória virtual já pode existir para sua CPU de destino se você tiver sorte, mas pode ser necessário um novo design.

Se você está escrevendo seu próprio compilador, então você precisa fazê-lo suportar todas as extensões específicas do GCC que o kernel suporta, e existem algumas. É muito mais fácil portar o GCC do que escrever o seu próprio a partir do zero.

Portar o kernel é o primeiro passo, mas para uma nova CPU você precisa pensar em como projetará a maneira como o espaço do usuário chama o sistema no kernel e você precisará escrever um hander de chamada do sistema para o kernel e também a chamada de sistema da biblioteca C do espaço do usuário também é ajustada. Você descobrirá que há uma enorme quantidade de esforço necessária apenas para chegar ao ponto em que você é capaz de obter o primeiro processo de inicialização do processo de inicialização do usuário. Você precisará então compilar todas as bibliotecas e utilitários principais apenas para obter uma inicialização básica do sistema. Não é trivial. O primeiro passo é ser capaz de construir ferramentas como o busybox, que fornecem um conjunto mínimo de ferramentas do Linux para conseguir um shell rodando com um conjunto mínimo de ferramentas para interagir com o sistema.

De volta aos tempos do kernel 2.2, eu portei o Linux e o busybox para uma nova arquitetura (um processador de mídia VLIW) como parte de um projeto de pesquisa (que ficou enlatado) e levou cerca de um ano para chegar ao ponto poderia inicializar o kernel, executar o init e iniciar o busybox em um TTY serial. E isso não estava contando o esforço para obter um toolchain estável. Apenas esteja avisado, pode levar algum esforço.

    
___
Problema de brilho mudando gradualmente a cada reinício