Pegando Nome do kernel no Makefile[Duvida] [RESOLVIDO]

1. Pegando Nome do kernel no Makefile[Duvida] [RESOLVIDO]

César
dark777

(usa Debian)

Enviado em 16/05/2016 - 23:56h

moçada estou com o kernel 4.5.4 no meu slackware e queria pegar somente o nome para colocar na configuração do meu bash personalizado entao ficando assim:


Kernel Name: Blurry Fish Butt

a minha duvida é como eu faço isso para pegar direto do arquivo em /usr/src/linux/Makefile?



  


2. Re: Pegando Nome do kernel no Makefile[Duvida] [RESOLVIDO]

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 17/05/2016 - 01:22h

Desculpe se eu estiver falando bobagem, afinal não uso o slackware ... acho Linux Standard Base especifica um comando para isso poderia ser útil para você o lsb_release -si.






=====================================================================
Não existe saber mais ou saber menos, existem saberes diferentes.
ID = LPI000359879
=====================================================================





3. Re: Pegando Nome do kernel no Makefile[Duvida] [RESOLVIDO]

César
dark777

(usa Debian)

Enviado em 17/05/2016 - 05:53h

ctw6av escreveu:

Desculpe se eu estiver falando bobagem, afinal não uso o slackware ... acho Linux Standard Base especifica um comando para isso poderia ser útil para você o lsb_release -si.






=====================================================================
Não existe saber mais ou saber menos, existem saberes diferentes.
ID = LPI000359879
=====================================================================




este comando nao existe no slackware e como estou personalizando um bash_profile estou estudando formas de extrair dados usando shellscript porem a minha duvida é como fazer isso de dentro de um arquivo?


4. Re: Pegando Nome do kernel no Makefile[Duvida]

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 17/05/2016 - 11:20h

Dá uma olhada neste script:
#!/usr/bin/env bash


pattern="NAME\s\?=\s\?"
kernelVersion=$(uname -r | sed "s/-.*//g")
# strip trailing .0 version, since the git tags on kernel.org do not have them
kernelVersion=${kernelVersion/%".0"/}
cacheFile="$HOME/.kernelcodename"
if [ -f "$cacheFile" ]
then
cache=$(cat $cacheFile)
cachedVersion=$(expr "$cache" : '\([0-9.]*\)')
cachedName=$(expr "$cache" : '.*@\([-A-Za-z ]*\)')
# echo "v:$cachedVersion n:$cachedName"
if [ "$cachedVersion" = "$kernelVersion" ]
then
kernelCodename="$cachedName"
fi
fi
if [ ! "$kernelCodename" ]
then
url="http://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/plain/Makefile?id=refs/tags/v${kernelVersion}"
kernelCodename=$(grep $pattern <<<"$(curl -s "$url")" | sed "s/$pattern//g")
fi

echo "$kernelVersion@$kernelCodename" > "$cacheFile"

if [ "$1" == "-a" ]
then
echo "$kernelCodename ($kernelVersion)"
else
echo "$kernelCodename"
fi


Dê a permissão e execute.

OBS: Estude também como ele foi construído.




=====================================================================
Não existe saber mais ou saber menos, existem saberes diferentes.
ID = LPI000359879
=====================================================================





5. Re: Pegando Nome do kernel no Makefile[Duvida] [RESOLVIDO]

César
dark777

(usa Debian)

Enviado em 18/05/2016 - 02:56h

ctw6av escreveu:

Dá uma olhada neste script:
#!/usr/bin/env bash


pattern="NAME\s\?=\s\?"
kernelVersion=$(uname -r | sed "s/-.*//g")
# strip trailing .0 version, since the git tags on kernel.org do not have them
kernelVersion=${kernelVersion/%".0"/}
cacheFile="$HOME/.kernelcodename"
if [ -f "$cacheFile" ]
then
cache=$(cat $cacheFile)
cachedVersion=$(expr "$cache" : '\([0-9.]*\)')
cachedName=$(expr "$cache" : '.*@\([-A-Za-z ]*\)')
# echo "v:$cachedVersion n:$cachedName"
if [ "$cachedVersion" = "$kernelVersion" ]
then
kernelCodename="$cachedName"
fi
fi
if [ ! "$kernelCodename" ]
then
url="http://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/plain/Makefile?id=refs/tags/v${kernelVersion}"
kernelCodename=$(grep $pattern <<<"$(curl -s "$url")" | sed "s/$pattern//g")
fi

echo "$kernelVersion@$kernelCodename" > "$cacheFile"

if [ "$1" == "-a" ]
then
echo "$kernelCodename ($kernelVersion)"
else
echo "$kernelCodename"
fi


Dê a permissão e execute.

OBS: Estude também como ele foi construído.




=====================================================================
Não existe saber mais ou saber menos, existem saberes diferentes.
ID = LPI000359879
=====================================================================





legal esse script porem antes de velo eu dei uma pesquisada e consegui fazer isso:

echo "Kernel Name: `grep "NAME" /usr/src/linux/Makefile|awk '{print $3" "$4" "$5" "$6}'` "
Kernel Name: Blurry Fish Butt
--------------------------------------------------------------------------------------------------------------
porem antes de compilar o kernel 4.5.4 eu editei o Makefile alterando o EXTRAVERSION =
EXTRAVERSION =-LowLatency
assim depois de compilado ao instalar os modulos ele cria uma pasta 4.5.4-LowLatency
e ao iniciar o kernel ele vai me msotrar a seguinte saida: Linux 4.5.3-LowLatency

porem o que eu fiz foi:
echo "Extra Version: `grep "^EXTRAVERSION" /usr/src/linux/Makefile|awk '{print $2}' ` "
e me retorna a saida:
Extra Version: =-LowLatency

mas quero que ele me mostre a saida abaixo:
Extra Version: LowLatency

é isso que eu nao estou conseguindo fazer....


6. Re: Pegando Nome do kernel no Makefile[Duvida] [RESOLVIDO]

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 18/05/2016 - 10:27h

Adicione um sed que ele te mostra oque você quiser:
echo "EXTRAVERSION =-LowLatency" | sed 's/EXTRAVERSION =/Extra Version: /g; s/-//' 







=====================================================================
Não existe saber mais ou saber menos, existem saberes diferentes.
ID = LPI000359879
=====================================================================





7. Re: Pegando Nome do kernel no Makefile[Duvida] [RESOLVIDO]

César
dark777

(usa Debian)

Enviado em 18/05/2016 - 12:47h

ctw6av escreveu:

Adicione um sed que ele te mostra oque você quiser:
echo "EXTRAVERSION =-LowLatency" | sed 's/EXTRAVERSION =/Extra Version: /g; s/-//' 







=====================================================================
Não existe saber mais ou saber menos, existem saberes diferentes.
ID = LPI000359879
=====================================================================




legal e tem como adicionar um espaço entre LowLatency deixando Low Latency?


8. Re: Pegando Nome do kernel no Makefile[Duvida]

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 18/05/2016 - 12:49h

echo "EXTRAVERSION =-LowLatency" | sed 's/EXTRAVERSION =/Extra Version: /; s/-//; s/LowLatency/Low Latency/'


https://www.vivaolinux.com.br/artigo/Sed-Introducao



=====================================================================
Não existe saber mais ou saber menos, existem saberes diferentes.
ID = LPI000359879
=====================================================================









Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts