Von A wie Android bis Z wie Zuse

Technik, Elektronik, Software, Hardware

LaTeX schneller kompilieren

LaTeX Dokumente zu schreiben ist wunderbar, da man sich im Gegensatz zu anderen Textverarbeitungsprogrammen kaum um die Formatierung oder das Layout kümmern muss beziehungsweise reicht es dies einmal zu tun. Wenn man sein Dokument aber mal fertig geschrieben hat, hätte möchte man dann ja auch möglichst bald das entsprechende PDF erstellen. Doch das kompilieren eines LaTeX-Dokuments kann schon mal einige Minuten in Anspruch nehmen. Nutzt man Overleaf, kann es auch vorkommen, dass es zu lange dauert und man ein compilation time-out hat. Nun muss man wohl oder übel irgendwie die benötigte Zeit reduzieren. Dies habe ich hier und hier schon einmal in englisch erläutert. Hier folgt nun die deutschsprachige Version.

Der nachfolgende Code-Ausschnitt beinhaltet bereits alles, was ich ansprechen werde:


\documentclass[english,draft]{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage{longtable}

\setcounter{LTchunksize}{300}

\makeatletter
\gdef \LT@i {\LT@entry
{1}{73.41934pt}\LT@entry
{5}{81.22511pt}\LT@entry
{5}{81.22511pt}}
\gdef \LT@ii {\LT@entry
{1}{73.41934pt}\LT@entry
{5}{81.22511pt}\LT@entry
{5}{81.22511pt}}
\gdef \LT@iii {\LT@entry
{1}{73.41934pt}\LT@entry
{5}{81.22511pt}\LT@entry
{5}{81.22511pt}}
\makeatother

\begin{document}
\include{appendix.tex}
\end{document}


Draft Modus

Während man den eigentlichen Code schreibt möchte man vielleicht hin und wieder kurz etwas überprüfen, ob es auch mehr oder weniger korrekt dargestellt wird oder ob der verwendete Befehl so auch korrekt ist. Hierbei muss nicht alles perfekt aussehen, es macht nichts wenn Verweise noch nicht vollständig sind, Zeilenumbrüche noch nicht ganz passen oder Grafiken noch nicht dargestellt werden. Dann kann man den draft Modus aktivieren – ein Entwurf genügt. Hierzu ergänzt man die Dokumenten-Klasse um die draft Option.

\documentclass[english,draft]{scrartcl}

Bild-Formate

Möchte man ein Bild oder einen Plot einbinden hat man diesen allenfalls als *.png oder *.jpeg Datei vorliegen. pdfLaTeX konvertiert dieses Bild aber bei jedem Durchgang in eine *.pdf-Datei. Macht man dies einmalig und bindet die Bilder direkt als PDF ein, spart man sich diesen Vorgang.

\begin{figure}[H]
\centering
\includegraphics[width=1\textwidth]{img.pdf}
\caption{This images is stored as a PDF-file.}
\end{figure}

Überlange Tabellen

Arbeitet man mit Tabellen die mehr als eine Seite einnehmen kann man die entsprechenden Seiten-Umbrüche entweder selbst mühsam von Hand festlegen, was insbesondere dann unpraktisch ist, wenn man noch nicht weiss wo auf der Seite die Tabelle überhaupt beginnen wird oder man nutzt ein package, welches dies automatisiert, wie zum Beispiel longtables. Longtables bestimmt dann bei jedem Durchlauf die passende Verteilung der einzelnen Zeilen der Tabelle auf verschiedene Seiten – macht also automatische Seitenumbrüche zwischen den Zeilen der Tabelle. Dies ist ein Prozess der einige Zeit in Anspruch nehmen kann. Ist man aber einmal so weit und hat für die Tabelle einen festen Anfangspunkt innerhalb des Dokuments, muss man die Seitenumbrüche nur noch ein einziges Mal bestimmen lassen. Die Information hierüber kann man dann der main.aux-Datei entnehmen und direkt in den LaTeX-Code schreiben, dann muss longtables dies nicht jedes Mal von neuem machen. Nutzt man overleaf kann man die *.aux-Dateien über den Button download input and output files herunterladen.

downloadAszip

Projekt kompett herunterladen, inklusive der erstellen Hilfsdateien.

Die *.aux-Datei kann man dann zum Beispiel mit Notepad++ lesen. Man sucht sich die Einträge die mit \LT@ starten. Diesen Teil kann man dann in sein Dokument hineinkopieren. Vor den Block aus der *.aux-Datei setzt man noch ein \makeatletter. Den Block beendet man dann mit einem \makeatother.

\makeatletter
\gdef \LT@i {\LT@entry
{1}{73.41934pt}\LT@entry
{5}{81.22511pt}\LT@entry
{5}{81.22511pt}}
\gdef \LT@ii {\LT@entry
{1}{73.41934pt}\LT@entry
{5}{81.22511pt}\LT@entry
{5}{81.22511pt}}
\gdef \LT@iii {\LT@entry
{1}{73.41934pt}\LT@entry
{5}{81.22511pt}\LT@entry
{5}{81.22511pt}}
\makeatother

Einbinden von Kapiteln

Ebenfalls hilfreich die Zeit zum Kompilieren zu reduzieren ist das Strukturieren des Dokuments.  Hat man verschiedene Kapitel, muss nicht jedes Mal jedes Kapitel kompiliert werden, insbesondere dann nicht, wenn nur in einem Kapitel Änderungen vorgenommen wurden. Der Befehl \include ermöglicht es uns einzelne Kapitel so einzubinden, dass sie immer nur dann kompiliert werden, wenn sie auch geändert wurden. Dazu werden zu jedem Kapitel jeweils eigene *.aux-Dateien angelegt. Man sollte hierbei beachten, dass Text, welcher über \includeeingefügt wird, je auf einer neuen Seite erscheint. Der Abschnitt wird (automatisch, im Hintergrund) mit einem \clearpage begonnen.

Hat man mehrere Kapitel geändert und muss nun doch alles neu kompilieren, aber es kommt immer zu einem Time-out kann es helfen die Kapitel einzeln zu kompilieren und die weiteren Kapitel Stück für Stück hinzuzufügen. Zunächst könnte man das Dokument nur mit Kapitel 1 kompilieren.

\begin{document}
\include{Kapitel1.tex}
%\include{Kapitel2.tex}
%\include{Kapitel2.tex}
\end{document}

Dann fügt man Kapitel 2 hinzu und kompiliert abermals. Jetzt werden aber nur die Änderungen berücksichtigt, also nur Kapitel 2 wird wirklich kompiliert.

\begin{document}
\include{Kapitel1.tex}
\include{Kapitel2.tex}
%\include{Kapitel2.tex}
\end{document}

Und zu guter letzt möchte man das ganze Dokument vollständig haben. Man fügt das letzte Kapitel hinzu,

\begin{document}
\include{Kapitel1.tex}
\include{Kapitel2.tex}
\include{Kapitel2.tex}
\end{document}

Hat man ein grössere Projekt mit vielen Kapiteln und möchte nur kurz überprüfen, ob Kapitel 15 und der Anhang so passen, kann man den Befehl

\includeonly{Kapitel15,Anhang}

in die Präambel schreiben. Hierbei ist zu beachten das zwischen den Dateien kein Komma kommt und auch die Endung .tex wird weggelassen. Die Seitenzahlen der nichtgenannten Kapiteln werden hierbei nicht aktualisert.

Noch zwei Bemerkungen zur Verwendung des \include{}-Befehls:

  1. Sollte man ihn nicht verwenden um eine *.tex-Datei einzubinden, die die ganzen Settings des Dokumentes enthält, wie zum Beispiel die \usepackage Befehle. Dies führt zwar nicht zwangsläufig zu Fehlern, kann aber zu welchen führen die dann schwierig zu erkennen sind. Hier nutzt man besser \input{settings.tex} (ja, hier mit der Endung .tex).
  2. Der \include-Befehl lässt sich nicht verschachteln. Bindet man eine *.tex-Datei via \include ein, kann man innerhalb dieser Datei keine weiteren via \include einbinden. Mit \input gibt es dieses Problem nicht. Schlaufen sollte man jedoch auch ja besser keine Bilden wenn man mal fertig werden will mit Kompilieren. 😉

Ich hoffe hiermit ist einigen geholfen und dem fertigen Dokument steht nun nichts mehr im Weg.

A short note on how to further reduce compilation time in overleaf.

In case you already followed these steps, and compilation still times-out, maybe the following can help you.

A short note on how to reduce compilation time in overleaf:

Lengthy but well structured LaTeX projects can be created using the \input and the \include command. Both integrate other *.tex files into the code. \input acts like the code from the specified *.tex-file would have just been written where the \input-command stands. More or less like this:

chapter.tex:

This is the chapter text written in the chapter.tex file. It can use every kind of \latex code.


Main.tex:


\input{chapter.tex}

Is exactly the same as

Main.tex:


This is the chapter text written in the chapter.tex file. It can use every kind of \latex code.

\include handles things a bit differently. It makes a \clearpage – so the content starts on a new page – and makes *.aux-files for each included *.tex-file. This can greatly reduce compilation time! Maybe chapter 1 compiles fine within the overleaf time limit. So does chapter 2 and all the other chapters. But not together! To circumvent this issue, one can compile one chapter after another. Because only chapters with changes will get thoroughly compiled in the next run.

So having a main.tex that looks as follows can eventually help to compile a project under the time limit:

Main.tex


\include{chapter1}
\include{chapter2}
\include{chapter3}
\include{chapter4}

Maybe it doesn’t compile like this, due to a time out. But if it compiles like this:

Main.tex


%\include{chapter1}
%\include{chapter2}
%\include{chapter3}
%\include{chapter4}

chances are high that it also compiles like this in the second run:

Main.tex


\include{chapter1}
%\include{chapter2}
%\include{chapter3}
%\include{chapter4}

and like this in the third run:

Main.tex


\include{chapter1}
\include{chapter2}
%\include{chapter3}
%\include{chapter4}

and so on, until finally:

Main.tex


\include{chapter1}
\include{chapter2}
\include{chapter3}
\include{chapter4}

compiles just fine! But now, don’t hit recompile from scratch. 😉


PS: If you have many chapters, you could also add a \includeonly in the preamble. Then, only the specified *.tex-files get included. Say you have a large project and you want to check if chapter 15 and the appendix compile. Then you could add \includeonly{chapter15,appendix} in the appendix. All other \include commands will get ignored. You should remove this command for your final run! Keep in mind that in doing so page numbers from the not-included chapters won’t get updated. So if you want to check something page-number-related, you should include all chapters before the chapter in questions as well. And a last remark: there is no space between the files in the \includeonly command.

LaTeX afterburner – Speed up Compilation

Working with LaTeX is a blast. Everything’s just neat and clean. However, coding a document is one thing. Compiling it is something else. I show you 3 easy tricks to reduce compilation time.

The following code examples includes everything I explain below:

\documentclass[english,draft]{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage{longtable}

\setcounter{LTchunksize}{300}

\makeatletter
\gdef \LT@i {\LT@entry
{1}{73.41934pt}\LT@entry
{5}{81.22511pt}\LT@entry
{5}{81.22511pt}}
\gdef \LT@ii {\LT@entry
{1}{73.41934pt}\LT@entry
{5}{81.22511pt}\LT@entry
{5}{81.22511pt}}
\gdef \LT@iii {\LT@entry
{1}{73.41934pt}\LT@entry
{5}{81.22511pt}\LT@entry
{5}{81.22511pt}}
\makeatother

\begin{document}
\input{appendix.tex}
\end{document}

Draft Mode

While working on a project, it is not always necessary to have all the images loaded, all the spaces and line breaks nicely set, and all the tables fully aligned. Most often it is sufficient to have a rough draft. The important keyword here is draft. Setting your project into draft mode can reduce your waiting time and still give you the confidence that your code is correct!

Just add draft as an option to your document class.

\documentclass[english,draft]{scrartcl}

Image Conversion

While working in draft mode is fast and easy, the layout isn’t as nice as it could be. We can’t stick with the draft option forever. One thing that slows down the compilation are images. When creating a PDF-file with pdfLaTeX, all the images get converted into pdf-files themselves. This is done every time you hit the compile button. An unnecessary waste of time! Do it once, and save all your pictures directly as PDF-files! You can include them afterwards as usual.

\begin{figure}[H]
\centering
\includegraphics[width=1\textwidth]{img.pdf}
\caption{This images is stored as a PDF-file.}
\end{figure}

Long tables

Long tables are another reason for hold-ups. Especially, very long tables with line breaking and everything. I am always working with Overleaf. This is super convenient, as you can collaborate on a project in real time and you don’t have to hassle with packages and configuration. With some projects a ran into a compilation timeout issue. The compilation time is restricted to 4 minutes. Long enough, usually. But in some cases, I just had some very long tables with nested packages. I knew the code to be correct, as the table alone got compiled, as well as the rest of the document. But just not together. So, how could I reduce the compilation time here? The longtable package tries to find adequate sizes for the different parts of the table. Maybe you have a title and a caption on the first page and page filling tables on the subsequent pages. Ideally, your table starts in a more or less stable environment, not long after a \newpage command. Then, it would actually be enough to determine the sizes once. You can do this by compiling just the part with the very long table, but not the rest. If this works, you can extract the sizing information from the main.aux-file. On Overleaf, you can download your project, including the .aux-files with the download input and output files button.

downloadAszip

Download your project with all the immediary files that got created during a successfull compilation.

From the main.aux-file you can extract the needed sizing information. You can read it with Notepad++, for instance.

You find the lines you need by looking for the \LT@ entries. Just copy them and add the following to your document:

\makeatletter
\gdef \LT@i {\LT@entry
{1}{73.41934pt}\LT@entry
{5}{81.22511pt}\LT@entry
{5}{81.22511pt}}
\gdef \LT@ii {\LT@entry
{1}{73.41934pt}\LT@entry
{5}{81.22511pt}\LT@entry
{5}{81.22511pt}}
\gdef \LT@iii {\LT@entry
{1}{73.41934pt}\LT@entry
{5}{81.22511pt}\LT@entry
{5}{81.22511pt}}
\makeatother

Make sure to replace the part between the \makeatletter and \makeatother with the code from your .aux-file! In doing so, LaTeX already knows the correct splicing for your longtables from the beginning on and does not waste time on figuring this out.

I hope those little tweaks helped you. If so, let me know in the comments. Happy coding.

pyLoad als Docker Container auf Synology

Mit der Verfügbarkeit von Docker für Synology ergibt sich eine weitere Möglichkeit pyLoad unter Synology laufen zu lassen. Die erste und aufwändigste Möglichkeit war pyLoad über die Kommandozeile und IPKG zu installieren. Einfacher war da schon die Installation über das Paketzentrum. Nun möchte ich eine dritte und recht elegante Möglichkeit vorstellen pyLoad unter Synology laufen zu lassen: via Docker.

Zunächst einmal muss die Docker-Applikation installiert sein. Einfach im Paketzentrum nach Docker suchen und mit einem einzigen Klick installieren.

Docker im Paketzentrum

Docker im Paketzentrum

Anschliessend kann die Docker-Anwendung aufgerufen werden und wir wollen pyLoad installieren.

pyLoad Docker Container suchen

pyLoad Docker Container suchen

Im Reiter Registrierung suchen wir nach pyLoad. Es gibt bereits einige Leute die einen passenden Container bereitgestellt haben. Dort kann man sich bedienen. Man wähle einen ansprechenden Beitrag aus und klicke auf Download.

Docker Abbild starten

Docker Abbild

Im Reiter Abbild kann man den Downloadstatus überprüfen. Die kleine Tonne am rechten Rand füllt sich.

pyLoad Docker allgemeine Einstellungen

pyLoad Docker allgemeine Einstellungen

Nach dem Download muss man den Container einrichten. An den allgemeinen Einstellungen braucht man nichts zu ändern.

pyLoad Docker Mount

pyLoad Docker Mount – direkter Zugriff via Mount

Jedoch möchte man vielleicht einen einfachen und direkten Zugriff auf die heruntergeladenen Dateien oder hat bereits einen Downloadordner auf den man mit anderen Geräten zugreift und möchte das pyLoad ebenfalls dort abspeichert. Hierzu kann man einen Mount anlegen.

Unter Datei/Ordner wählt man den Ort aus, auf den man gerne selbst zugreifen möchte.

Unter Mount gibt man /opt/pyload/Downloads an, das ist der (virtualisierte) Ort auf den pyLoad abspeichert.

Da pyLoad in einer virtuellen Umgebung läuft, hat es nicht zwingend Zugriff auf die gleiche Ordnerstruktur wie wir. Mit dem Mount kann man sich die Dateien aber quasi durchtunneln, an einen Ort, der für uns leicht zugänglich ist.

pyLoad Docker Ports

pyLoad Docker Ports

Ähnliches gilt auch für die Ports. pyLoad selbst denkt zwar es würde auf Port 8000 angesprochen, dies gilt allerdings nur gegenüber Docker. Ändert man keine Einstellungen vergibt Docker automatisch irgendwelche ungenutzten Ports hierfür. Es ist allerdings praktischer, wenn man fixe Ports vergibt. So kann man sich in seinem Browser einen Link zur pyLoad Weboberfläche setzen (http://NAS-IP:lokaler Port), ohne nach einem Neustart überprüfen zu müssen, welchen Port denn Docker nun vergeben hat.

pyLoad bietet die Weboberfläche unter dem Port 8000 an. Man setzt also den Container-Port auf 8000 und den lokalen Port auf den Port auf dem man selbst gerne auf die Weboberfläche zugreifen möchte. Irgend ein ungenutzter Port.

Möchte man Click’n’Load ebenfalls nutzen muss man auch diesen Port vergeben. pyLoad lauscht auf Port 9666. Folglich: Docker-Port: 9666. lokaler Port: Wo auch immer man gerne Click’n’Load-Befehle hinschicken möchte.

Somit wäre man bereit die Einstellungen abzuspeichern und den pyLoad Docker-Container zu starten. Die pyLoad-Weboberfläche kann man nun wie gewohnt unter der NAS-IP und dem entsprechenden lokalen Port aufrufen.

Möchte man Click’n’Load nutzen, kann man sich an meine Anleitung halten, muss allerdings den CMD-Befehl unter Windows leicht anpassen:

netsh interface portproxy add v4tov4 listenport=9666 connectaddress=<Synology-IP> connectport=<lokaler Port> listenaddress=127.0.0.1

Wobei <Synology-IP> durch die IP unseres Servers auf dem Synology läuft ersetzt werden muss und <lokaler Port> durch den Port, den wir im Docker-Container vergeben haben, also i.d.R. nicht 9666 sondern was auch immer wir gewählt haben.

Wünsche gutes Gelingen!

root Account unter Synology DSM6 wiederherstellen

Macht man ein Update auf Synology DSM 6 ist unter anderem der root Account deaktiviert. Ärgerlich, wenn man Änderungen per SSH oder SCP vornehmen möchte.

Der Account ist aber relativ schnell wieder freigeschaltet:

  • Login via SSH (z.B. PuTTY) mit einem Account mit Administrator-Rechten
  • In der Console eingeben (in dieser Reihenfolge):
    • sudo ls
    • Passwort des Accounts mit Administrator-Rechten
    • sudo synouser --setpw root [Passwort des Accounts mit Administrator-Rechten]

Nun kann man root wieder nutzen wie gewohnt. 🙂

 

kodi für die HD-Wiedergabe unter Windows einrichten

Möchte man gerne Medien mit HD-Sound via einen Computer an dazu fähige Endgeräte ausgeben, liegen hierfür zunächst einige Steine im Weg. Als erstes kann es sein, die Hardware dazu gar nicht in der Lage ist. Dann kann es aber auch sein, dass Windows dazu noch nicht bereits ist, weil beispielsweise noch kein passender Treiber installiert ist. Dies habe ich in einem ersten Teil bereits erläutert. Ist man soweit, benötigt man aber noch ein passendes Wiedergabe-Programm. Dies kann z.B. kodi sein. Nun wird erläutert, die kodi für die Wiedergabe von HD-Audio eingerichtet werden muss.

kodi und HD

Kodi kann gnädigerweise bereits mit HD-Inhalten umgehen. Jedoch geht es davon aus, dass weitere Geräte dies nicht können, weshalb es entsprechendes Material unter den Standardeinstellungen transkodiert. Das wollen wir aber natürlich nicht!

Unter System – Setting – System – Audio output finden wir die nötigen Einstellungen, wenn wir das Settings level auf Expert stellen.

Damit kodi nichts kodiert, sondern die „Arbeit“ dem Receiver überlässt, muss man passthrough aktivieren – so geht der Ton ohne Verarbeitung direkt weiter.

Als Passthrough output device haben wir jeweils DIRECTSOUND und WASAPI zur Auswahl, mit jeweils den eigentlichen Endgeräten. DIRECTSOUND ist selbst wiederum eine Art Verarbeitung des Tones von Windows selbst. Das benötigen wir aber nicht. Wir wählen WASAPI und unser Audiogerät. Hier WASAPI: default. (möglich wäre z.B. auch WASAPI: HDMI)

Dann müssen wir noch wählen, was unser Receiver denn eigentlich wirklich kann. Wählt man etwas aus, dass er nicht kann, wird dieser dann entweder keinen Ton von sich geben oder man wird eine schrecklich tiefe framerate bei der Videowiedergabe haben. Beides will man nicht. Hier haben wir aber einen Receiver, der fähig ist, z.B. TrueHD, wiederzugeben, weshalb wir TrueHD capable receiver aktivieren.

Audioeinstellungen kodi

System – Settings – System – Audio output

Hat man alles aktiviert, was der Receiver unterstützt, kann man sich sein erstes Medium in HD-Qualität zu Gemüte führen.

Hat man einen Receiver, der anzeigt welches Format ausgegeben wird, wird man jedoch feststellen, dass immer noch kein HD-Sound vorhanden ist.

Denn bei kodi muss man nun auch noch beim entsprechenden Medium auswählen, dass man wirklich gerne passthrough hätte!

Audio Settings unter Lautsprechersymbol öffnen

Klick auf Lautsprechersymbol um die Audio-Einstellungen dieses Mediums zu öffnen

Im sich öffnenden Menü noch den Haken bei enable passthrough setzen.

enable passthrough

Enable passthrough aktivieren

Und dann, schlussendlich, kommt man in den HD-Genuss.

Was tun, wenn die Netflix-App unter Windows funktioniert, aber kein Signal ausgegeben wird?

Unter Windows geschehen manchmal komische Sachen. So kann es vorkommen, dass die Netflix-App für Windows zwar läuft – man kann sich einloggen, Filme und Serien durchstöbern und so weiter – aber die Wiedergabe eines Filmes wird nur mit einem schwarzen Bildschirm quittiert. Dieses rätselhafte Verhalten kann mit dem verwendeten Treiber zusammenhängen, wenn die Signalübertragung via HDMI oder DisplayPort geschehen soll. Evtl. spielt hier die Unterstützung von HDCP nicht ganz mit – doch ob es wirklich daran liegt, ist noch ungeklärt.

Jedenfalls kann die Abhilfe für einen schwarzen Bildschirm ein neuer passender Treiber sein! Auch wenn die Bild- und Tonwiedergabe mit anderen Programmen keine Probleme bereitet.

Die nachfolgende Wegleitung orientiert sich stark am Beitrag HD-Audio unter Windows 10 ausgeben. Das dort beschriebene Prozedere löst nämlich auch dieses Problem! Es kann also sein, dass der Audio-Treiber die Wiedergabe von Netflix verhindert. Ist dies der Fall, kann man wie folgt vorgehen. Andernfalls wäre denkbar, dass der Grafik-Treiber nicht passend ist oder dass nicht jedes (Hardware)-Glied der Kette HDCP unterstützt und Netflix deshalb die Wiedergabe verhindert.

Treiber aktualisieren

#1: Wie es nicht geht:

Intels eigene Treiber-Update-Utility scheint hierbei keine Hilfe zu sein. Wahrscheinlich denkt es „Zu Gerät A ist bereits Treiber X installiert, davon gibt es keine neue Version“, merkt aber nicht, das Treiber X ein generischer Windows-Bord-Treiber ist und dass es einen viel aktuelleren und passenderen Intel-Treiber Y gäbe, der das Potential von Gerät A ausschöpfen würde.

#2: Wie es geht:

Beim vorliegenden System findet ein Intel Chip Verwendung, welcher den Intel HD Graphics Treiber verwendet. Dieser kümmert sich ebenfalls um die Soundausgabe.

Das entsprechende Paket wurde hier von station-drivers.com heruntergeladen. Es wurde ein 64-Bit Windows verwendet, also auch die x64-Version des Treibers. Bei einem 32-Bit System entsprechend den x86-Treiber nehmen. Es kann jederzeit eine aktualisierte Treiberversion veröffentlicht werden, d. h. die hier verlinkte muss nicht die aktuellste sein.

Hat man nun sein Treiberpaket zusammen, muss man den Treiber installieren. Dies erledigt man via den Gerätemanager.

Gerätemanager über Windows-Taste aufrufen

den Gerätemanager über einen Klick auf das Windowslogo aufrufen

In diesem öffnet man beim entsprechenden HD-Audiocontroller mit einem Rechtsklick das Kontextmenü und wählt dort Treibersoftware aktualisieren.

Audiocontroller wählen, welcher via HDMI verbunden ist

HD-Audiocontroller auswählen, welcher via HDMI verbunden ist

Den Treiber hat man ja bereits heruntergeladen, man kann also auf dem Computer nach Treibersoftware suchen.

Wir wissen ja, wo der Treiber ist, also manuell suchen

Treibersoftware manuell suchen

Der Treiber selbst ist die Datei IntcDAud.inf, welche im Unterordner 6.16 im Ordner DisplayAudio zu finden ist.

Fundort des Treibers

Hier im Ordner DisplayAudio ist der Treiber IntcDAud.inf zu finden

Auf diesen Ordner verweisen wir nun bei der Installation.

Treiberfundort

Fundort des Treibers angeben

Dann noch ein paar Klicke auf Weiter und die Installation ist abgeschlossen. Nun sollte für die Verwendung von Netflix zumindest ein Stein weniger im Weg liegen.

 

HD-Audio unter Windows 10 ausgeben

HD-Sound ist schon etwas feines, wenn man die entsprechenden Wiedergabemöglichkeiten hat. Wenn dies der Fall ist und man alle schön aufgebaut hat, einen AVR der die entsprechenden Tonformate wie dolby atmos, TrueHD, DTS-HD und Konsorten, klangvolle Lautsprecher und weitere digitale Schmankerl möchte man doch vielleicht auch gerne entsprechendes Material aus dem Netz direkt wiedergeben können, ohne dies auf eine Blu-ray zu brennen und dem Blu-ray-Player zu übergeben oder ähnlich umständliches. Einfach direkt über den Computer an den AVR.

Doch auch wenn der Computer via HDMI oder DisplayPort am Receiver angeschlossen ist und andere Tonformate reibungslos klappen, kann es sich bei HD-Material schwieriger gestalten. Entweder kommt gar kein Ton oder kein HD-Ton.

Im folgenden wird geschildert, wie man die direkte Wiedergabe von HD-Audio unter Windows 10 via einem fähigen AV-Receiver bewerkstelligt.

Windows für HD-Audio einrichten

HD-Audio kann nur digital ausgegeben werden. Hier bieten sich HDMI und DisplayPort an. Ist die physische Verbindung zwischen Computer und AVR mittel entsprechendem Kabel hergestellt, muss sichergestellt werden, dass Windows auch die entsprechenden Tonformate ausgeben kann. Dies ist schnell nachgeprüft.

Kontrolle, ob Windows bereits HD-Audio-Formate ausgeben kann

Nach einem Rechtsklick auf das Lautsprechersymbol in der Taskleiste öffnet man den Tab Wiedergabegeräte.

Wiedergabegeräte öffnen

Reiter Wiedergabegeräte nach Rechtsklick auf Lautsprechersymbol

Anschliessend wählt man den Ausgang / das angeschlossene Gerät aus, an welches man HD-Audio ausgeben möchte.

HD-Wiedergabegerät-Auswahl

Auswahl des HD-Audio-fähigen Wiedergabegeräts

Von diesem ruft man die Eigenschaften auf und wählt im sich öffnenden Fenster den Reiter Unterstützte Formate.

Von Windows unterstützte Audioformate

HD-Audioformate werden hier nicht unterstützt

Werden die gewünschten HD-Formate nicht aufgelistet, werden diese nicht direkt wiedergegeben. Das ist jedoch das Ziel. Vorausgesetzt, dass die verwendete Hardware dazu fähig ist, kann der eingesetzte Treiber Grund dafür sein, dass diese noch nicht angeführt werden. Hier wurde bisher der bei Windows mitgelieferte Treiber verwendet. Im Computer selbst ist ein Intel Chip verbaut, der sich im Grafik und Audio via HDMI kümmert. Der Windows-Bord-Treiber tut zwar seinen rudimentären Dienst der Medienwiedergabe, doch nutzt er nicht alle Möglichkeiten des Chips. Dazu ist der dazu passende Intel Treiber nötig.

Diesen wollen wir jetzt nachliefern!

Wird ein anderer Chip verwendet ist zu prüfen, ob es für diesen ebenfalls einen passenden Treiber gibt. Die Aktualisierung kann dann jedoch andere Zwischenschritte erfordern.

Treiber aktualisieren

#1: Wie es nicht geht:

Intel bietet selbst ein Treiber-Update-Utility an. Dieses scheint aber nicht dazu in der Lage zu sein, zu merken, dass es statt dem Windows-Bord-Treiber auch einen eigenen Treiber von Intel geben würde. Dieser Weg wäre zwar sehr komfortabel und man hätte praktischer weise auch gleich andere Treiber aktualisiert, führt aber nicht zum Ziel.

#2: Wie es geht:

Beim vorliegenden System findet ein Intel Chip Verwendung, welcher den Intel HD Graphics Treiber verwendet. Dieser kümmert sich ebenfalls um die Soundausgabe.

Das entsprechende Paket wurde hier von station-drivers.com heruntergeladen. Es wurde ein 64-Bit Windows verwendet, also auch die x64-Version des Treibers. Bei einem 32-Bit System entsprechend den x86-Treiber nehmen. Es kann jederzeit eine aktualisierte Treiberversion veröffentlicht werden, d. h. die hier verlinkte muss nicht die aktuellste sein.

Hat man nun sein Treiberpaket zusammen, muss man den Treiber installieren. Dies erledigt man via den Gerätemanager.

Gerätemanager über Windows-Taste aufrufen

den Gerätemanager über einen Klick auf das Windowslogo aufrufen

In diesem öffnet man beim entsprechenden HD-Audiocontroller mit einem Rechtsklick das Kontextmenü und wählt dort Treibersoftware aktualisieren.

Audiocontroller wählen, welcher via HDMI verbunden ist

HD-Audiocontroller auswählen, welcher via HDMI verbunden ist

Den Treiber hat man ja bereits heruntergeladen, man kann also auf dem Computer nach Treibersoftware suchen.

Wir wissen ja, wo der Treiber ist, also manuell suchen

Treibersoftware manuell suchen

Der Treiber selbst ist die Datei IntcDAud.inf, welche im Unterordner 6.16 im Ordner DisplayAudio zu finden ist.

Fundort des Treibers

Hier im Ordner DisplayAudio ist der Treiber IntcDAud.inf zu finden

Auf diesen Ordner verweisen wir nun bei der Installation.

Treiberfundort

Fundort des Treibers angeben

Dann noch ein paar Klicke auf Weiter und die Installation ist abgeschlossen. Nun sollten auch unsere digitalen HD-Audioformate unterstützt werden. Dies wollen wir nun überprüfen, indem wir wieder den Reiter Unterstützte Formate unseres verwendeten Audiogeräts unter den Wiedergabegeräten aufrufen.

Unterstützung der HD-Audioformate mit passendem Treiber

Nun sind auch DTS-HD und Dolby TrueHD unterstützt

Windows seitig sind wir nun gerüstet. Nun brauchen wir noch ein passendes Wiedergabeprogramm. Von Haus aus geeignet sind der Media Player Classic – Home Cinema und kodi. Wie man kodi hierfür einrichtet, habe ich im Beitrag kodi für die HD-Wiedergabe unter Windows einrichten erläutert.

XPenology von DSM 5.1 auf DSM 5.2 updaten

Update-Angebot

Update-Angebot

Seit einiger Zeit gibt es ein Update von Synology auf DSM 5.2, welches vom System bei jeder Anmeldung angeboten wird. Nutzter von XPenoboot schauen aber in die Röhre, wenn sie dieses Update einfach über das Webinterface durchführen. Um ordnungsgemäss upzudaten ist auch ein Update des bootloaders von nöten – hierfür muss der USB-Stick, auf welchem XPenology installiert ist, mit den entsprechenden neuen Daten gefüttert werden.

Im Folgenden werde ich Schritt-für-Schritt durch die Installation des Updates von DSM 5.1-5022 Update 5 auf DSM 5.2 5565 führen.

Ressourcen:

Um den USB-Stick zu beschreiben benötigen wir den Win32 Disk Imager.

Des Weiteren benötigen wir das entsprechende Boot-Image. Dieses finden wir hier: http://xpenology.me/downloads/ unter Boot Images -> XPenoboot DMS 5.2. Ich verwende XPEnoboot DS3615xs 5.2-5565.2.img.

Die angepassten Pattern-Files von Synology für XPEnology gibt es hier: http://xpenology.me/downloads/ unter Synology DSM. Ich habe mit dem nachfolgend Beschriebenen Prozedere das Pattern-File DSM 5.2-5565 eingespielt.

Schritte:

  1. Vorbereitung
    1. Die Diskstation sollte ausgeschaltet sein.
    2. Wir entfernen den USB-Stick
    3. Wir erstellen zur Sicherheit eine Kopie aller Daten auf dem USB-Stick.
  2. Kopieren des Boot-Images auf den USB-Stick
    1. Wir stecken den USB-Stick in den Rechner mit welchem wir den Stick-vorbereiten möchten. Ich verwende Windows 8.1, auf anderen Betriebssystemen kann das Vorgehen anders aussehen.
    2. Wir öffnen den Win32 DiskImager, wählen unser *.img-File aus und überprüfen, dass wir den richtigen USB-Stick ausgewählt haben.
      1. IMG-Schreiben

        IMG-Schreiben

    3. Auf „Write“ klicken und die Warnmeldung, dass dabei unser USB-Stick zerstört werden könnte, wahrnehmen.
    4. Nach Abschluss des Schreibvorganges können wir den Disk Imager auch schon wieder schliessen.
  3. Anpassen dersyslinux.cfg auf dem USB-Stick
    1. Haben wir das Image erfolgreich auf unseren Stick geschrieben öffnen wir diesen im Windows Explorer.
    2. Die Dateisyslinux.cfg können wir mit einem beliebigen Editor bearbeiten (auch das in Windows integrierte Notepad sollte funktionieren.)
      1. syslinux im Explorer

        syslinux im Explorer

    3. Beim ersten Label (xpenology) ergänzen wir nachdersn=B3J4N01003 die MAC-Adresse desNAS. Dieser Abschnitt sollte dann wie folgt aussehen:
      1. MAC-Adresse eintragen

        MAC-Adresse eintragen

    4. Änderungen speichern, USB-Stick entfernen und zurück in den Server damit.
  4. Installation der neuen Version
    1. Nun müssen wir Bildschirm und Tastatur an unseren Server anschliessen und diesen booten. Beim Bootvorgang wählenwirInstall/Upgrade.
      1. XPEnology Installation

        XPEnology Installation

    2. Nun können wir uns mitunseremNASviaSynologyAssistant verbinden
      1. mit Synology verbinden

        mit Synology verbinden

    3. Statt des gewohnten Anmeldefensters sollten wir das von der Erstinstallation bekannte Fenster sehen, wo wir Installieren anklicken.
      1. Installieren

        Installieren

    4. Anstelle einer kompletten Neuinstallation wählen wir die Migration
      1. Migration

        Migration

    5. Um unser System mit den heruntergeladenen *.pat-Dateien, welcheaufXPEnology angepasst wurden, zu füttern, wählen wir die manuelle Installation aus.
      1. manuelle Installation

        manuelle Installation

    6. Anschliessend wählen wir das Pattern-File aus und bestätigen mit Jetzt Installieren.
      1. Aktuellstes Pattern-File hochladen

        Aktuellstes Pattern-File hochladen

    7. Nun heisst es warten…
      1. Bitte warten...

        Bitte warten…

    8. Anschliessend können wir uns wieder mit unserem NAS verbinden. Funktioniert die alte IP aus irgend einem Grunde nicht mehr, können wir uns im Synology Assistant mit einem Doppelklick auf unser NAS verbinden. Nun sollte eigentlich alles Ready sein. 🙂
  5. Kein Internet Zugriff mehr?
    1. Nach der Installation des Updates waren meine DNS-Einstellungen weg und XPEnology konnte sich nicht mehr mit dem Internet verbinden. Um dieses Problem zu beheben einfach in der Systemsteuerung unter Netzwerk -> Allgemein -> DNS-Server manuell konfigurieren die IP des Routers (ohne Port) angeben.Dannach sollte wieder alles wie gewohnt laufenundCloudSync sollte sich auch wieder verbinden können. 🙂
      1. DNS-Server = Router-IP

        DNS-Server = Router-IP

  6. Weitere Updates?
    1. Nach dem „grossen“ Update auf DSM 5.2-5565 kommen noch zwei kleiner (DSM 5.2-5565 Update-1 und DSM 5.2-5565 Update-2). Diese habe ich direkt über die Systemsteuerung eingespielt.
      1. In der Systemsteuerung auf DSM-Aktualisierung
      2. Dort auf Manuelle DSM-Aktualisierung
      3. Dann direkt die Pattern-Files hochgeladen
      4. Installieren lassen
      5. NAS 2-Mal rebootet (beim ersten Mal blieb es jeweils beim Trigger-Event hängen.)
      6. Fertig
    2. DasUpdateDSM 5.2-5592 bereitetXPEnology zurzeit Probleme, kann also nicht direkt über die SystemsteuerungvonSynology bezogen und installiert werden. Hier heisst es Warten auf die Jungs und MädelsvonXPEnology.
      1. Von XPEnology.me geladene Pattern-Files können manuell installiert werden. Von Synology angebotene Files sollten ignoriert werden.

        Von XPEnology.me geladene Pattern-Files können manuell installiert werden. Von Synology angebotene Files sollten ignoriert werden.

 

Click’n’Load bei pyLoad aktivieren

Nebst der Synology Download Station kann auch pyLoad mit Click’n’Load umgehen.

Dies kann in wenigen Schritten aktiviert werden.

Zunächst ruft man die Einstellungen auf, wechselt in den Reiter Zusatzprogramme und wählt dort aus dem Menü ClickAndLoad aus.

Click and Load unter pyLoad

Click and Load unter pyLoad

Das Paket mit aktiviert sein, sprich bei Activated muss an ausgewählt sein.

Click'n'Load

Click’n’Load

Von nun an lauscht pyLoad auf CnL-Eingaben. Damit diese auch ankommen, müssen wir dies noch unserem Windows verklickern.

Wir öffnen die Konsole mit Admin-Rechten.

CMD mit Rechtsklick als Admin starten

CMD mit Rechtsklick als Admin starten

In der Konsole gibt man dann folgendes ein:

netsh interface portproxy add v4tov4 listenport=9666 connectaddress=<Synology-IP> connectport=9666 listenaddress=127.0.0.1

Wobei <Synology-IP> durch die IP unseres Servers auf dem Synology läuft ersetzt werden muss.

Von nun an werden Click’n’Load Befehle direkt an pyLoad weitergereicht.


Um die Weiterleitung zu beenden nutzt man folgenden Befehl:

netsh interface portproxy delete v4tov4 listenport=9666 listenaddress=127.0.0.1