Articles

Surface Pro 7 come portable Linux Dev Machine

Posted by admin

Per un bel po ‘ di tempo sto cercando un piccolo ingombro portatile per viaggiare che supporta il mio Linux-based workflow.So naturalmente, ho deciso di utilizzare una macchina Windows senza supporto Linux di prima classe: Surface Pro 7.

Trovare il miglior hardware

L’hardware che usiamo quotidianamente dovrebbe essere il migliore che possiamo giustificare per permetterci ed è adeguato per il nostro uso professionale.Un artigiano non comprerebbe un martello economico o uno strumento elettrico a “Home Depot”, comprerebbe attrezzi di livello professionale, e così dovremmo.

Ma è più facile a dirsi che a farsi

Ognuno ha priorità diverse quando si tratta di hardware.La potenza grezza non è necessariamente più la parte più importante, IMHO le ultime generazioni di CPU Intel non hanno migliorato le prestazioni in modo significativo per il mio carico di lavoro personale.

Affidabilità e usabilità sono più importanti per me.Ecco perché odio il mio Touchbar MacBook Pro così tanto.

MacBook Pro

Per anni l’unico laptop accettabile per me era un MacBook Pro.

Migliore qualità costruttiva grazie al telaio metallico, grande durata della batteria, abbastanza potenza e per lo più compatibile con il mio flusso di lavoro basato su Linux grazie al BSD sottostante.

Ma poi Apple ha deciso di renderlo ancora più sottile e di sbarazzarsi di alcune delle sue migliori caratteristiche:

  • Niente più MagSafe.
  • Niente più tasti di fuga e funzione, ma ecco una touchbar schifosa che attiverai per caso tutto il tempo.
  • Tastiera non più utilizzabile, ed essere pronti a visitare un “Partner di servizio Apple” per farlo riparare, almeno temporaneamente.
  • Non più parti intercambiabili, pagare in anticipo o essere fuori di fortuna.
  • E non più porte diversità, USB-C è sufficiente per tutti. TUTTO.
  • macOS è ora anche un pasticcio, con caratteristiche non funzionanti e un sacco di grandi nuovi bug con ogni rilascio.

E senza avere un Apple Store vicino a me (il prossimo è ~100 km di distanza) Devo portare la macchina a un fornitore di servizi autorizzato, che deve ordinare la parte sostitutiva mantenendo il dispositivo.Grazie a tutti i computer portatili MacBook Pro in mancanza potrebbe anche prendere un paio di settimane.Come quando la tastiera ha fallito su di me.O il tempo il display ha iniziato a ottenere colorazione gialla su di esso.

L’unica ragione per cui ho sopportato tutto ciò è la necessità di essere in grado di creare app iOS.Vendor lock – in al suo meglio.

Oltre a ciò, si trova sul mio tavolo, nemmeno acceso.

So che Apple ha rilasciato il MacBook Pro da 16 pollici di recente per cercare di risolvere alcuni dei suoi numerosi problemi, e ma non sono disposto a sborsare un altro 3k+€, soprattutto con la degradante qualità del software di macOS se non userò una macchina come il mio driver quotidiano.

Dell

Per il mio vero lavoro (aka non-iOS) Uso un Dell XPS 15 9560 con un display FullHD dal 2017 in esecuzione con Ubuntu 18.04 LTS.It ‘ s più pesante, più brutto, bassa qualità costruttiva, trackpad più piccolo, e schermo a bassa risoluzione rispetto al MacBook Pro.Ma è affidabile, indistruttibile, un sacco di porte, e si può ottenere il supporto on-site a prezzi accessibili.

Volendo un laptop più piccolo ho pensato di sostituirlo con un XPS da 13 pollici.Anche se sembra che Dell non sia in grado o non si preoccupi di risolvere i problemi di lamento della bobina con l’XPS 13 per un bel po ‘ di anni, e questo non è accettabile.Il 15 pollici può anche avere problemi di bobina-piagnucolare, ma sembra essere più raro rispetto al 13 pollici.

Quasi ogni piccolo laptop / fattore di forma ultrabook ha alcuni problemi di lamento della bobina, ma devi premere l’orecchio sulla tastiera per ascoltarlo.Con un Dell, è roulette russa quanto forte potrebbe essere, da “nessuno a tutti” a “udibile in un normale ambiente di ufficio”.

Lenovo

IMHO l’unico altro produttore di laptop di livello aziendale è IBM, ehm, intendo Lenovo con la loro linea di prodotti Thinkpad.Potrebbero avere un design discutibilmente datato, ma sono dall’aspetto neutro, sono altamente personalizzabili, gli ultrabook non sono riparabili e sono per lo più compatibili con Linux.

Il mio più grande problema con Lenovo è la tastiera: anche se è ottimo per la digitazione, hanno smarrito il tasto fn.Di tanto in tanto uso una tastiera USB Lenovo Thinkpad e oltre ad essere ottimo ho problemi reali con le scorciatoie grazie al cambio fn/ctrl.

Un punto più piccolo contro Lenovo è anche il pricing.It è più alto rispetto ad altre opzioni come Dell, ma alla fine, non mi importerebbe se raggiungesse tutti gli altri requisiti.Non dovresti risparmiare sugli strumenti di cui hai più bisogno nel tuo lavoro quotidiano.

Surface Pro 7

Ho posseduto un Surface Pro prima, Model 3, e in realtà mi è piaciuto, ma non mi piace Windows per la mia configurazione di lavoro.Ma questo (si spera) è cambiato con l’introduzione del sottosistema Window per Linux Versione 2.

Un dispositivo portatile e potente che può essere utilizzato come tablet con un Linux quasi reale in esecuzione su di esso, con supporto Docker e persino app X11 in esecuzione su Windows?

Suono troppo bello per essere vero, quindi cerchiamo di check it out!

Impostazione di Surface Pro 7

Aggiornamento a Windows 10 Pro (o Enterprise)

Per prima cosa, si desidera avere almeno Windows 10 Pro, o meglio ancora, Enterprise.È possibile eseguire WSL2 su Windows 10 Home, ma non sono sicuro di Docker.

Diventa un Insider

In questo momento WSL2 è disponibile solo nelle build di Windows Insider. Sembra essere rilasciato sul ring lento, al momento in cui ho iniziato era disponibile solo nel veloce ring.So potrebbero esserci alcuni problemi generali, ma è un prerequisito.

La superficie non è la mia macchina principale, quindi sto bene con il rischio, YMMV.

  1. Registra il tuo account Microsoft per il programma Insider a https://insider.windows.com/.
  2. Apri Windows Insider settings (sul tuo PC Windows 10 vai su Start > Settings > Update & Security.
  3. Fai clic su Inizia e collega il tuo account.
  4. Selezionare Anello lento.
  5. Vai a Impostazioni > Aggiornamento & Sicurezza e fai clic su Controlla aggiornamenti per scaricare l’ultima build.

Funzionalità di Windows

Esegui questo in un PowerShell con privilegi di amministratore e riavvio in seguito per installare le caratteristiche richieste:

12
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatformEnable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Installare Ubuntu 18.04

Attivare WSL2 e scaricare l’ultima versione di Ubuntu 18.04 app immagini dall’App Store, tutti con PowerShell:

123
wsl --set-default-version 2Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1804 -OutFile ubuntu.appx -UseBasicParsingAdd-AppxPackage .\ubuntu.appx

naturalmente, è possibile utilizzare un’altra distro, se ti piace, è solo che tutte le mie altre macchine Linux in esecuzione Ubuntu 18.04.

Bordo del desktop Docker

Il bordo del desktop Docker supporta WSL2:

  1. Scaricare e installare https://download.docker.com/win/edge/40807/Docker%20Desktop%20Installer.exe.
  2. Avvia Finestra mobile dal menu start.
  3. In Impostazioni > Generale attivare il motore sperimentale WSL2.
  4. Fare clic su Applica & Riavvia.

Configurazione Linux

Installa il tuo Linux come faresti su qualsiasi altra macchina.

Per configurare le nostre macchine di sviluppo Linux (ZSH, strumenti aggiuntivi, ecc.) abbiamo creato una serie di script per automatizzare il processo.

X11 vs. native

X11

Uno dei vantaggi della mia configurazione di sviluppo è l’utilizzo delle app X11 nei contenitori Docker in modo che l’installazione non differisca indipendentemente dalla macchina o dalla distribuzione Linux utilizzata.Volevo fare lo stesso con WSL2.

Ci sono più server X11 disponibili per Windows (X410, VcXsrv e altro) e puoi usarli con WSL2.

Ho deciso di usare X410, puoi farlo direttamente da Windows Store.To in realtà utilizzare X11 e WSL2 è necessario attivare Consentire l’accesso pubblico tramite la voce barra delle applicazioni.

E devi esportare l’indirizzo IP corretto per il DISPLAY variabile di ambiente in WSL2, ad esempio, in .bashrc sono alcuni era simile:

1
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print ; exit;}'):0.0

Ora è possibile utilizzare X11-enabled Mobile contenitori, come prima.

Così ho eseguito il mio contenitore Eclipse, e ha succhiato…il disegno dell’interfaccia utente era orrendo, il ridimensionamento HiDPI era inutilizzabile/non configurabile.Più prova di concetto di driver quotidiano.

Nativo

A causa dei cattivi risultati con X11 ho deciso di controllare un mix di WSL2 e applicazioni native di Windows.

I server di cui ho bisogno (Mysql, MongoDB, RabbitMQ, Nginx) sono stati dockerizzati, ma Eclipse sarà un’app Windows installata nativamente.

Il mio spazio di lavoro deve risiedere nel WSL2 per utilizzare tutta la grandezza di Linux.L’accesso avverrà attraverso il filesystem 9P, a cui è possibile accedere dal percorso UNC \WSL$\<your distro>.

Così ho mappato il percorso UNC su un’unità per un facile accesso Eclipse ed Eclipse non è riuscito a usarlo.Dopo alcune ricerche, sembra che a Eclipse non piaccia avere uno spazio di lavoro su un’unità di rete a causa dei meccanismi di blocco coinvolti sul lato di Eclipse.Ma puoi disattivarlo, alla fine ha funzionato.

Finché non ho importato i miei progetti Until e ho aspettato… e aspettato and e aspettato.Dopo poche ore, ho rinunciato a causa della sorprendente cattiva prestazione, che lo ha reso inutilizzabile.

Una soluzione avrebbe potuto essere quella di mettere tutti i miei file in Windows, ma poi avrei usato WSL2 per alcuni contenitori docker, tutto il resto avrebbe vissuto in Windows, e non è quello che volevo.

Il WSL2-Linux-setup che ho sognato potrebbe non essere (ancora) la soluzione che speravo.

Conclusione / tl;dr

Surface Pro 7 è una grande macchina, essere in grado di usare Linux in modo quasi nativo è incredibile, ma non ha funzionato (per me).

Sapevo in anticipo che le prestazioni di IO non erano alla pari o quasi native, ma questo era totalmente deludente, anche se sospetto che Eclipse fosse il principale colpevole.

Molte persone costruiscono configurazioni WSL2-Linux e ha funzionato alla grande per loro, ma con la mia toolchain/dev-setup, avrei bisogno di costruire un Windows con solo una piccola spolverata di Linux-setup.Voglio sostituire il mio altro laptop con un’opzione quasi altrettanto buona,non una sub-par dev-experience.

Related Post

Leave A Comment