Eu tenho um kernel Surface Pro 4 razoavelmente bom rodando na minha instalação do Ubuntu.
O resumo
O que funciona:
- wifi / bluetooth
- multitoque
- caneta
- trackpad na capa de digitação
O que funciona um pouco:
- hibernar - depois do currículo não há toque ou caneta
O que não faz:
- suspender (veja a nota sobre economia de energia abaixo)
- congelar (quanto mais versão de suspensão / suspensão da bateria não funcionar de forma confiável)
- a capa de digitação
O que eu não tentei:
- as câmeras
Idéia geral
A idéia geral por trás deste kernel é fazer as mudanças feitas por Hyungwoo Yang no link e aplique-os ao kernel do Ubuntu 4.9rc3. Aqui estão os passos para colocar o kernel em ordem. O processo de compilação leva cerca de 45 minutos usando todos os núcleos do Surface 4. A clonagem dos repositórios do kernel requer cerca de 1,5 GB de espaço em disco.
Etapas para produzir o kernel
-
instale o Ubuntu 16.10 yakkety. Para fazer isso, você precisará de um hub USB que possa manipular tanto o ubuntu live-USB quanto o teclado / mouse.
-
boot linux com um teclado USB.
-
prepare o kernel do Ubuntu 4.9rc3.
-
clone o kernel do Ubuntu 4.9rc3 (requer ~ 1.5gig de espaço):
git clone git://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack v4.9-rc3
-
baixe 6 correções: Patch1 Patch2 Patch3 Patch4 Patch5 Patch6
-
aplique os patches no kernel em ordem: do
git am /path/to/THEPATCH.patch
para cada um dos patches.
-
-
crie um patch com suporte a touch / pen do kernel ipts-linux-new.
-
clone o kernel (requer ~ 1.5gig de espaço) em outro diretório:
git clone https://github.com/ipts-linux-org/ipts-linux-new.git
-
crie o patch:
git diff 0c183d92b20b5c84ca655b45ef57b3318b83eb9e > /path/to/ipts-linux-new_patch.txt
-
-
aplique o patch ipts-linux-new na v4.9rc3
'cd /path/to/v4.9rc3' 'patch -p1 < /path/to/ipts-linux-new_patch.txt' 'git add .' 'git commit -m 'Patch for Surface Pro 4 taken from ipts-linux-new.''
-
compile o kernel e faça os pacotes .deb do Ubuntu (copiados de Compilação do Kernel do Ubuntu )
cd /path/to/v4.9rc3
-
inicialize os arquivos debian:
fakeroot debian/rules clean
-
configure o kernel que você irá construir:
fakeroot debian/rules editconfigs
- Diga sim apenas para a pergunta amd64. Isso mostrará a interface de curses "menuconfig". ative as duas opções a seguir:
- Drivers de dispositivos - & gt; Dispositivo de bloqueio expresso NVM (y)
- Drivers de dispositivos - & gt; Dispositivos diversos - & gt; Intel Precise Touch & amp; Estilete (m)
- Diga sim apenas para a pergunta amd64. Isso mostrará a interface de curses "menuconfig". ative as duas opções a seguir:
-
comente ou remova "do_zfs = true" em "/path/to/v4.9rc3/debian.master/rules.d/amd64.mk"
-
renomeie o kernel editando "/path/to/v4.9rc3/debian.master/changelog"
-
-
compile o kernel (use mais threads do que processadores para torná-lo mais rápido)
'fakeroot debian/rules clean' #necessary, but I don't know why 'DEB_BUILD_OPTIONS=parallel=5 fakeroot debian/rules binary-headers binary-generic binary-perarch'
-
quatro novos .debs devem ser criados no diretório próximo a v4.9rc3. Instale o .debs com o seguinte comando:
'sudo dpkg -i linux-image-* linux-headers-4.9.0-040900rc3*'
-
copie os arquivos do driver do windows para o linux:
-
copie os arquivos do driver de "\ Windows \ INF \ PreciseTouch \ Intel" para o diretório linux "/ lib / firmware / intel / ipts". Deve haver pelo menos 4 arquivos com nomes semelhantes a estes:
- iaPreciseTouchDescriptor.bin
- SurfaceTouchServicingSFTConfigMSHW0078.bin
- SurfaceTouchServicingDescriptorMSHW0078.bin
- SurfaceTouchServicingKernelSKLMSHW0078.bin
-
Crie links simbólicos para esses arquivos:
cd /lib/firmware/intel/ipts
ln -s iaPreciseTouchDescriptor.bin intel_desc.bin
ln -s SurfaceTouchServicingSFTConfigMSHW0078.bin config.bin
ln -s SurfaceTouchServicingDescriptorMSHW0078.bin vendor_desc.bin
ln -s SurfaceTouchServicingKernelSKLMSHW0078.bin vendor_kernel.bin
-
Você deve ser capaz de inicializar o novo kernel agora. Se os links estiverem no lugar certo, o toque e a caneta funcionarão bem.
Nota sobre economia de energia
A funcionalidade de suspensão ausente é uma grande desvantagem. Isso se deve ao fiasco "standby conectado" da Microsoft: link . Congelar usa mais bateria (drena a bateria talvez metade da velocidade do que se você tivesse deixado o computador ligado) e não parece ser confiável. Com o modo de hibernação, o estado é mantido com sucesso, mas, infelizmente, as funcionalidades de toque e stylus não funcionam após o reinício.