Na maioria dos casos e provavelmente no seu caso, você precisará construir um kernel personalizado. Alguns módulos podem ser construídos separadamente, mas não tenho medo neste caso.
Mas construir um kernel não é tão difícil. A Ajuda da comunidade do Ubuntu e o Wiki têm um artigo útil que abrange todos, menos o aplicativo de patch:
- Kernel / Compile
- Crie seu próprio kernel
Você pode fazer isso e se referir aos recursos acima se estiver preso em algum lugar (eles tendem a ser mais detalhados):
-
Instalar os pacotes necessários:
sudo apt-get install git build-essential fakeroot kernel-package libncurses5-dev libssl-dev sudo apt-get build-dep linux-image-$(uname -r)
Você pode precisar de alguns outros pacotes. Não me lembro da lista completa.
-
Clone o repositório de código-fonte do kernel do Ubuntu:
git clone git://kernel.ubuntu.com/ubuntu/ubuntu-wily.git
Substitua
wily
pelo seu nome de lançamento do Ubuntu. -
Navegue no terminal até o diretório de origem.
cd ubuntu-wily
-
Encontre o arquivo que você precisa alterar e fazer alguma edição ou aplicar um patch.
-
Se os patches estiverem disponíveis como uma série de commits do Git, como neste caso, você pode "escolher-os" por seus IDs (depois de buscar o repositório de origem):
git fetch git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git git cherry-pick a6ad2a6b9cc1d9d791aee5462cfb8528f366f1d4
-
Caso contrário, baixe o arquivo de correção e diga ao Git para aplicá-lo (você pode fazer o download com o seu navegador da Web em vez de
wget
, se preferir):wget -O bluetooth-unpairing-fix.patch 'https://git.kernel.org/cgit/linux/kernel/git/bluetooth/bluetooth-next.git/patch/?id=a6ad2a6b9cc1d9d791aee5462cfb8528f366f1d4' git am bluetooth-unpairing-fix.patch
-
Se o arquivo de patch não estiver no formato "mailbox" (ou seja, ele não foi enviado (corretamente) para a lista de discussão do Kernel) use
git apply bluetooth-unpairing-fix.patch
em vez de
git am
.
Se o patch não puder ser aplicado devido a alterações conflitantes, o patch é incompatível com a versão atual do kernel. Você pode tentar "mesclar" pequenos conflitos com as ferramentas do Git, mas geralmente você deve tentar encontrar uma versão do patch que deve funcionar com a sua versão do kernel.
-
-
Executar
fakeroot debian/rules clean
-
Edite o arquivo
debian/changelog
. Você pode apenas adicionar algo à versão para ver a diferença com os kernels oficiais.Exemplo:
linux (4.2.0-17.21) wily; urgency=low
mude para:
linux (4.2.0-17.21btpatch) wily; urgency=low
Você verá este número de versão em debs e no Grub também.
-
Construa o kernel
fakeroot debian/rules DEB_BUILD_OPTIONS=parallel=5 binary-headers binary-generic
parellel=5
é para uma CPU de 4 núcleos ou uma CPU de 4 segmentos. Seu número pode ser diferente. É o número de núcleos ou threads + 1.A criação de um kernel pode levar muito tempo - de 15 minutos a algumas horas, dependendo do desempenho do sistema!
-
Você receberá os pacotes deb do seu kernel que podem ser instalados. Você pode removê-lo, se você não gosta de algo.