13. Re: Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel para iniciar automaticame
aguamoleusa KUbuntu
Post recolhido
Enviado em 10/04/2024 - 21:14h
raulgrangeiro escreveu:
Bom dia, amigo. Por gentileza, o que a parte de debugação e configurações está fazendo exatamente? Não entendi essa parte.
Creia no Senhor Jesus Cristo e serás salvo!
14. Re: Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel para iniciar automaticamente?
aguamoleusa KUbuntu
Post recolhido
Enviado em 10/04/2024 - 22:54h
Tinha como melhorar:
#!/bin/bash
# Script criado para automatizar procedimento de instalação de
# módulo de saúde de bateria de notebook Acer no Kernel Linux
# quando uma nova versão for instalada.
15. Re: Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel para iniciar automaticamente?
raulgrangeirousa Fedora
Post recolhido
Enviado em 11/04/2024 - 11:17h
aguamole escreveu:
raulgrangeiro escreveu:
Bom dia, amigo. Por gentileza, o que a parte de debugação e configurações está fazendo exatamente? Não entendi essa parte.
Creia no Senhor Jesus Cristo e serás salvo!
Irei ler os links, mas uma última dúvida: porque eu iria querer mexer em configuração de cores para esse módulo? Desculpe se estiver sendo leigo aqui.
Creia no Senhor Jesus Cristo e serás salvo!
16. Re: Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel para iniciar automaticame
aguamoleusa KUbuntu
Post recolhido
Enviado em 11/04/2024 - 11:21h
Justamente por não ter motivo é que eu coloquei detecção automática, quanto menos cores da CPU usar mais demorado fica a compilação o que torna uma desvantagem diminuir. Mas se você trocar a detecção automática definindo diretamente o quanto de cores da CPU isso vai tornar o código alguns milissegundos mais eficiente. A detecção automática causa consumo de recurso.
17. Re: Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel para iniciar automaticamente?
raulgrangeirousa Fedora
Post recolhido
Enviado em 19/04/2024 - 12:12h
aguamole escreveu:
Tinha como melhorar:
#!/bin/bash
# Script criado para automatizar procedimento de instalação de
# módulo de saúde de bateria de notebook Acer no Kernel Linux
# quando uma nova versão for instalada.
Boa tarde, amigo. Fiz o teste aqui deste script criado pelo senhor após uma atualização de kernel e ele não funcionou. Acredito que seja aquele bug que relatei anteriormente: ele somente compila o novo kernel quando o git baixa o arquivo na pasta de usuário, se baixar em outro local ele dá erro de compilação. Não vi nenhum erro, não apresentou nada após executar como root, apenas não copiou o arquivo compilado para a pasta onde deveria ter ido. O senhor saberia como corrigir?
Deus o abençoe!
Creia no Senhor Jesus Cristo e serás salvo!
18. Re: Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel para iniciar automaticame
aguamoleusa KUbuntu
Post recolhido
Enviado em 19/04/2024 - 12:43h
Mais então, é por isso que existe as configurações, é para você poder alterar elas, o local onde o git vai baixar o código fonte é essa configuração "driver_battery="/tmp/acer-wmi-battery"" você pode alterar para o que quiser pó.
driver_battery="diretorio/desejado/aqui"
19. Re: Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel para iniciar automaticame
aguamoleusa KUbuntu
Post recolhido
Enviado em 19/04/2024 - 13:02h
Eu também percebe que o código tem um problema que é ele não informar ao usuário os processo de sua execuções, vê se assim fica melhor.
#!/bin/bash
# Script criado para automatizar procedimento de instalação de
# módulo de saúde de bateria de notebook Acer no Kernel Linux
# quando uma nova versão for instalada.
Toda a execução será gravada onde a variável de "log_da_execucao" apontar.
Modifiquei de novo.
20. Re: Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel para iniciar automaticamente?
raulgrangeirousa Fedora
Post recolhido
Enviado em 19/04/2024 - 17:28h
aguamole escreveu:
Eu também percebe que o código tem um problema que é ele não informar ao usuário os processo de sua execuções, vê se assim fica melhor.
#!/bin/bash
# Script criado para automatizar procedimento de instalação de
# módulo de saúde de bateria de notebook Acer no Kernel Linux
# quando uma nova versão for instalada.
Toda a execução será gravada onde a variável de "log_da_execucao" apontar.
Modifiquei de novo.
Por algum motivo estranho continua sem funcionar. Alterei as configurações para as que preciso e tentei, o log apenas fala que sou root. Percebi que faltava indicar para o git onde baixar o arquivo, coloquei, mas mesmo assim não funciona. Vou te mostrar o log depois de algumas tentativas:
Você é root!
Você é root!
Você é root!
Você é root!
Você é root!
E esse é o script que mofiquei para usar e não funcionou:
#!/bin/bash
# Script criado para automatizar procedimento de instalação de
# módulo de saúde de bateria de notebook Acer no Kernel Linux
# quando uma nova versão for instalada.
21. Re: Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel para iniciar automaticame
aguamoleusa KUbuntu
Post recolhido
Enviado em 19/04/2024 - 18:56h
Cara, quando fui responder a energia aqui acabo.
Eu consegui reproduzir o erro e ele ocorre porque eu não usei um "if", eu usei uma forma de if mais simplificado, mas que eu esquece que quando usado com um "ponto e vírgula ';'" o ponto e vírgula não é contado na condicional sendo executado o que esta após não importando o resultado da condicional, isso fazia com que o bash interpretasse o "exit 1" independente do resultado da condicional o que finaliza a execução mesmo que o usuário seja root, o que não é desejado, apenas é desejado o "exit 1" se o usuário não for root. Agora eu coloquei o if.
#!/bin/bash
# Script criado para automatizar procedimento de instalação de
# módulo de saúde de bateria de notebook Acer no Kernel Linux
# quando uma nova versão for instalada.
{
if [[ "$(id -u)" == "0" ]]
then
echo "Você é root!"
else
echo "Você não é root, execute como root!"
exit 2
fi
if [[ ! -e "${driver_battery}" ]]
then
mkdir -p "${driver_battery}"
else
if [[ ! -d "${driver_battery}" ]]
then
echo "${driver_battery} é um arquivo e deveria ser diretório, remova o arquivo e tente novamente, abortado!"
exit 3
fi
fi
Agora eu percebe que tem outro problema na condição "[[ ! -d "${driver_battery}" ]]" não é fatal mas daria erro caso não fosse um diretório como por exemplo um arquivo.
Acabei de fazer mais 2 modificação porque permitia possíveis problemas de ocorrer. Adicionei o parâmetro -p no mkdir porque sem isso poderia dar erro na criação do diretório caso o diretório pai passado a variável não existir, e a outra foi para evitar do mkdir tentasse criai diretório por cima de "dispositivo de bloco" que é por exemplo o "/dev/sda1" o que daria um erro na criação do diretório.
É isso, abraço <3
22. Re: Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel para iniciar automaticame
aguamoleusa KUbuntu
Post recolhido
Enviado em 19/04/2024 - 22:44h
#!/bin/bash
# Script criado para automatizar procedimento de instalação de
# módulo de saúde de bateria de notebook Acer no Kernel Linux
# quando uma nova versão for instalada.
## Depuração
set -e -u
#________________________________________________
## Configurações
driver_battery="/tmp/acer-wmi-battery" # Variável que determina onde será a compilação.
cpu_cores="$(grep -c "physical id" /proc/cpuinfo)" # Variável que define quantos núcleos será usada, detecta automaticamente.
log_da_execucao="/var/log/linux_bateria.log" # Variável que define onde o log será gerado.
#________________________________________________
# Tudo executado a partir daqui vai ser gravado em log_da_execucao
{
# Verifica se é superusuario e notifica, caso não seja aborta a execução
if [[ "$(id -u)" == "0" ]]
then
echo "Você é root!"
else
echo "Você não é root, execute como root!"
exit 2
fi
# Verifica se o diretório driver_battery não existe
if [[ ! -e "${driver_battery}" ]] # Verifica se o diretório driver_battery não existe.
then
mkdir -p "${driver_battery}" # Se o diretório driver_battery não existir ele será criado
else
if [[ ! -d "${driver_battery}" ]] # Verifica se o driver_battery não é diretório
then
# Existe algum arquivo no diretório driver_battery e por isso é abortado
echo "${driver_battery} é um arquivo e deveria ser diretório, remova o arquivo e tente novamente, abortado!"
exit 3
fi
fi
cd "${driver_battery}" # Entra no diretório
if [[ -f "${driver_battery}/acer-wmi-battery.ko" ]]
then
# Se o arquivo de modulo acer-wmi-battery.ko existir faz a copia do mesmo para o kernel carregado
cp "${driver_battery}/acer-wmi-battery.ko" "/lib/modules/$(uname -r)"
else
# Baixa o código fonte do driver no diretório driver_battery
git clone https://github.com/frederik-h/acer-wmi-battery.git
make -j"${cpu_cores}" # Inicia a compilação usando o numero de núcleos definido em cpu_cores
# Faz uma copia do arquivo do modulo compilado para os módulos do kernel carregado
cp "${driver_battery}/acer-wmi-battery.ko" "/lib/modules/$(uname -r)"
fi
depmod # Generate modules.dep and map files
modprobe acer_wmi_battery # Carrega o modulo do kernel
# Remove o diretório driver_battery caso ele seja um diretório
[[ -d "${driver_battery}" ]] && rm -r -d "${driver_battery}" ||
echo "Falha ao remover, não é um diretório, escolha outro lugar ou delete o arquivo."
} >>"${log_da_execucao}" 2>&1
Adicionado comentários para explicar o código.
Mais algumas mudanças e comentários e reestruturação do código.
23. Re: Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel para iniciar automaticame
aguamoleusa KUbuntu
Post recolhido
Enviado em 24/04/2024 - 00:03h
#!/bin/bash
# Script criado para automatizar procedimento de instalação de
# módulo de saúde de BATERIA de notebook Acer no Kernel Linux
# quando uma nova versão do kernel Linux for instalada.
#________________________________________________
# NEWS
# * Mudança de nomes de variáveis.
# * Remoção de código inútil.
# * Simplificação de código para detectar numero de núcleos.
# * Adicionado versionamento
# * Bloco NEWS para registrar mudanças no programa.
# * Adicionado licenciamento de acordo com as regras do site vivaolinux.
#________________________________________________
## Depuração
set -e -u
#________________________________________________
## Configurações
BATERIA="/tmp/acer-wmi-battery" # Variável que determina onde será a compilação.
CPU_CORES="$(nproc)" # Variável que define quantos núcleos será usada, detecta automaticamente.
LOG_DA_EXECUCAO="/var/log/linux_bateria.log" # Variável que define onde o log será gerado.
#________________________________________________
# Tudo executado a partir daqui vai ser gravado em LOG_DA_EXECUCAO
{
# Verifica se é superusuario e notifica, caso não seja aborta a execução
if [[ "$(id -u)" == "0" ]]
then
echo "Você é root!"
else
echo "Você não é root, execute como root!"
exit 2
fi
# Verifica se o diretório BATERIA não existe
if [[ ! -e "${BATERIA}" ]] # Verifica se o diretório driver_battery não existe.
then
mkdir -p "${BATERIA}" # Se o diretório driver_battery não existir ele será criado
else
if [[ ! -d "${BATERIA}" ]] # Verifica se o driver_battery não é diretório
then
# Existe algum arquivo no diretório BATERIA e por isso é abortado
echo "${BATERIA} é um arquivo e deveria ser diretório, remova o arquivo e tente novamente, abortado!"
exit 3
fi
fi
cd "${BATERIA}" # Entra no diretório BATERIA
if [[ -f "${BATERIA}/acer-wmi-battery.ko" ]]
then
# Se o arquivo de modulo acer-wmi-battery.ko existir faz a copia do mesmo para o kernel carregado
cp "${BATERIA}/acer-wmi-battery.ko" "/lib/modules/$(uname -r)"
else
# Baixa o código fonte do driver no diretório BATERIA
git clone https://github.com/frederik-h/acer-wmi-battery.git
make -j"${CPU_CORES}" # Inicia a compilação usando o numero de núcleos definido em cpu_cores
# Faz uma copia do arquivo do modulo compilado para os módulos do kernel carregado
cp "${BATERIA}/acer-wmi-battery.ko" "/lib/modules/$(uname -r)"
fi
depmod # Gerar arquivos modules.dep e map
modprobe acer_wmi_battery # Carrega o módulo do kernel
} >>"${LOG_DA_EXECUCAO}" 2>&1
24. Re: Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel para iniciar automaticamente?
raulgrangeirousa Fedora
Post recolhido
Enviado em 24/04/2024 - 08:12h
aguamole escreveu:
#!/bin/bash
# Script criado para automatizar procedimento de instalação de
# módulo de saúde de BATERIA de notebook Acer no Kernel Linux
# quando uma nova versão do kernel Linux for instalada.
#________________________________________________
# NEWS
# * Mudança de nomes de variáveis.
# * Remoção de código inútil.
# * Simplificação de código para detectar numero de núcleos.
# * Adicionado versionamento
# * Bloco NEWS para registrar mudanças no programa.
# * Adicionado licenciamento de acordo com as regras do site vivaolinux.
#________________________________________________
## Depuração
set -e -u
#________________________________________________
## Configurações
BATERIA="/tmp/acer-wmi-battery" # Variável que determina onde será a compilação.
CPU_CORES="$(nproc)" # Variável que define quantos núcleos será usada, detecta automaticamente.
LOG_DA_EXECUCAO="/var/log/linux_bateria.log" # Variável que define onde o log será gerado.
#________________________________________________
# Tudo executado a partir daqui vai ser gravado em LOG_DA_EXECUCAO
{
# Verifica se é superusuario e notifica, caso não seja aborta a execução
if [[ "$(id -u)" == "0" ]]
then
echo "Você é root!"
else
echo "Você não é root, execute como root!"
exit 2
fi
# Verifica se o diretório BATERIA não existe
if [[ ! -e "${BATERIA}" ]] # Verifica se o diretório driver_battery não existe.
then
mkdir -p "${BATERIA}" # Se o diretório driver_battery não existir ele será criado
else
if [[ ! -d "${BATERIA}" ]] # Verifica se o driver_battery não é diretório
then
# Existe algum arquivo no diretório BATERIA e por isso é abortado
echo "${BATERIA} é um arquivo e deveria ser diretório, remova o arquivo e tente novamente, abortado!"
exit 3
fi
fi
cd "${BATERIA}" # Entra no diretório BATERIA
if [[ -f "${BATERIA}/acer-wmi-battery.ko" ]]
then
# Se o arquivo de modulo acer-wmi-battery.ko existir faz a copia do mesmo para o kernel carregado
cp "${BATERIA}/acer-wmi-battery.ko" "/lib/modules/$(uname -r)"
else
# Baixa o código fonte do driver no diretório BATERIA
git clone https://github.com/frederik-h/acer-wmi-battery.git
make -j"${CPU_CORES}" # Inicia a compilação usando o numero de núcleos definido em cpu_cores
# Faz uma copia do arquivo do modulo compilado para os módulos do kernel carregado
cp "${BATERIA}/acer-wmi-battery.ko" "/lib/modules/$(uname -r)"
fi
depmod # Gerar arquivos modules.dep e map
modprobe acer_wmi_battery # Carrega o módulo do kernel
} >>"${LOG_DA_EXECUCAO}" 2>&1
Bom dia, amigo! Cara, esse script tá muito PRO!
Mas queria te dizer uma coisa sobre ele que, se for possível, seria bom ser corrigido: se compilar o código baixado do git em uma versão do kernel ele não ativa em outra, significando que necessita ser baixado e compilado novamente toda vez que um novo kernel é instalado, então precisa que ele apague todos os arquivos criados na compilação, deixando apenas o arquivo acer-wmi-battery.ko na pasta de módulos do kernel. E na próxima atualização do kernel ele baixa novamente do git o código fonte e recompila. O senhor me ajudaria com essa correção?
E se o senhor permitir, gostaria de escrever uma dica bem organizada sobre esse assunto para ajudar a comunidade e postar aqui no VOL referenciando esse post e o senhor nos créditos.
Usamos cookies essenciais para manter o site funcionando e Google Analytics para métricas de audiência. Cookies de anúncios só serão carregados se você permitir.