Estou escrevendo um script bash para configurar todo o software necessário após instalar o Ubuntu. Se o computador for um laptop, desejo instalar o tlp para gerenciamento de energia. Se for um desktop, o tlp não é necessário.
Existe um comando com o qual posso descobrir se o computador é um desktop ou um laptop/tablet?
Talvez detectar a presença de uma bateria seja a assinatura que devo procurar.
Não acho que verificar a bateria seja uma boa solução: um desktop pode ter UPS que aparece como bateria.
Você pode usar o comando:
A saída será
Ver
man hostnamectl
.Outra opção seria usar:
Observe que neste caso, a saída pode ser algo como “Laptop”, “Notebook”, “Portátil”, “Portátil” ou “Sub Notebook” dependendo da designação do fabricante.
Também existe um script chamado:
Você pode inspecionar seu
/bin/laptop-detect
conteúdo ( ) para uma abordagem mais detalhada.Verificar se o sistema possui ou não bateria não é confiável - um no-break conectado ao sistema pode aparecer como uma bateria (que apareceu quando verifiquei).
Então uma maneira é usar
dmidecode
para obter o tipo de chassi do sistema:Mas este comando requer
sudo
. Para evitar o uso desudo
, você pode imprimir o conteúdo de/sys/class/dmi/id/chassis_type
, que retornará o valor decimal do tipo de chassi.Mas quando verifiquei, ambos os comandos forneceram resultados onde meu desktop foi considerado como "Rack Mount Chassis" (valor decimal 23) e meu laptop como "Notebook" (valor decimal 10). Portanto, pode variar de acordo com o sistema que estamos manipulando.
Foi então que usei o
hostnamectl
comando e obtive valores melhores do nome do chassi e do ícone :Como minha máquina desktop não tinha nenhuma opção de chassi , usei o valor do nome do ícone :
Então no meu laptop o resultado foi " computador-laptop ", no desktop é apenas " computador " e no meu servidor é " computador-vm ". Você pode usar esses valores para instalar o tlp no sistema.