Estou planejando escrever alguns drivers de dispositivo e preciso obter a fonte do kernel do Linux. Minha versão do kernel do Linux é 3.2.0-23-generic-pae e baixei a imagem disso . Em muitos dos artigos que li, ele me diz que preciso ter toda a árvore do kernel para começar a inserir novos módulos.
É o suficiente se eu baixar esta imagem e colá-la na usr/src/
pasta ou preciso fazer outra coisa?
Respostas:
Isso obterá a fonte do kernel padrão:
Você pode verificar qual versão do kernel está executando assim:
O que imprimirá algo como:
Você pode encontrar uma lista das versões atuais do pacote de origem disponíveis no seu sistema através de:
Para obter a versão upstream do kernel:
No link acima, 'confiável' é o codinome da versão do Ubuntu. Você pode descobrir o codinome da versão do Ubuntu que você instalou via:
fonte
apt-get source
nãoapt-get install
. Então a árvore de origem terminará no seu caminho atual .é a maneira mais fácil. Ele fará o download da fonte do seu repositório - e será igual à versão que você está executando (supondo que você ainda não a tenha customizado).
Mas se você quiser descobrir onde a fonte é mantida, você pode executar:
Procure o atributo 'Vcs-' (sistema de controle de versão). Geralmente será um repositório git (Vcs-Git) ou mercurial.
Nota - esses comandos funcionam com qualquer pacote. Apenas substitua 'linux' pelo pacote em que você está interessado. E também observe que 'apt-get source' não precisa de acesso ao sudo e irá despejar a fonte no seu diretório atual.
fonte
/usr/src
- não a fonte do kernel completo - no Ubuntu 16.04Baixar fonte diretamente do Launchpad
Estranhamente, todo mundo recomenda o
apt-get source
que não funciona na maioria das vezes, se você estiver procurando por uma versão específica do kernel:Digamos que você precise da fonte do kernel para 3.19.0-58:
apt-get source linux-image-3.19.0-58-generic
obterá a fonte para o kernel mais recente da série: 3.19.0-80 nesse caso, que não é o que você solicitou.Então você tem duas opções:
1) Desista, instale o kernel 3.19.0-80 e use
apt-get source
2) Obtenha a fonte diretamente da barra de ativação:
Site do Google : launchpad.net "linux-image-3.19.0-58-generic"
Isso deve fornecer a Página de Pacote da Barra de Ativação para essa versão.
Role para baixo, clique no link "Fonte:", você está na Página de origem do pacote agora.
Role para baixo e descarga
.tar.gz
,.diff.gz
,.dsc
arquivos:dpkg-source -x *.dsc
Notas:
fonte
Basta escolher um dentre:
Se você for solicitado a fornecer URLs de 'fontes' no seu
sources.list
, vá editar seu/etc/apt/sources.list
arquivo e descomente adeb-src
linha desejada , por exemplo (se você estiver executando o Xenial):A remoção
#
desta última linha permite repositórios de fontes para download, incluindo fontes de kernel.Observações:
apt-get
.4.4.0-75-generic
por exemplo)./usr/src/linux-source-4.4.0/
(por exemplo).fonte