Dell Latitude 14 5495 & Linux (Ubuntu 18.04)

Instructions to boot Linux on the AMD Mobile Ryzen based Dell Latitude 14 5495:

  1. Connect a bootable Linux USB Device (e.g. Optical Drive, Stick, HDD, etc..)
  2. Boot
  3. Rejoice, Linux will run fine

Okay, it was not so easy. I had trouble with getting the UEFI  to boot from my USB device (the IODD). The UEFI just ignored the device and booted into Win10 from the internal SATA SSD, even when the SSD and the Win bootloader were both disabled in the boot manager. In the end I added manually the EFI bootloader from the Live-CD to the bootmanager by choosing "Add boot option" (or so) and then navigating to the *.efi boot loader on the device. Then I was able to boot via the boot manager. Afterwards I removed the boot entry. Might be an issue with the IODD.

 

Update 2018-10-07

Okay, there are more issues:

Boot Medium not found after Linux

This is rather weird, when (re-boot) after using the installed Ubuntu 18.04, the UEFI/BIOS cannot find the boot medium and I have to enter the UEFI setup. Without changing anything, on the next boot, everything is okay again, and the notebook will boot the default UEFI boot entry (which is WIndows). I have no clue what is causing this. 

PCIe Power Management Log Entry

Seems that the PCIe Power Management does not only cause issues with audio output, NVMes do not like it, too: 

Oct  7 00:51:34 notebook kernel: [  411.718618] pcieport 0000:00:01.5: AER: Multiple Corrected error received: id=0008
Oct  7 00:51:34 notebook kernel: [  411.720690] pcieport 0000:00:01.5: PCIe Bus Error: severity=Corrected, type=Data Link Layer, id=000d(Transmitter ID)
Oct  7 00:51:34 notebook kernel: [  411.720698] pcieport 0000:00:01.5:   device [1022:15d3] error status/mask=00001100/00006000
Oct  7 00:51:34 notebook kernel: [  411.720705] pcieport 0000:00:01.5:    [ 8] RELAY_NUM Rollover    
Oct  7 00:51:34 notebook kernel: [  411.720707] pcieport 0000:00:01.5:    [12] Replay Timer Timeout  
Oct  7 00:51:34 notebook kernel: [  411.720716] nvme 0000:04:00.0: PCIe Bus Error: severity=Corrected, type=Data Link Layer, id=0400(Transmitter ID)
Oct  7 00:51:34 notebook kernel: [  411.720718] nvme 0000:04:00.0:   device [126f:2262] error status/mask=00001000/0000e000
Oct  7 00:51:34 notebook kernel: [  411.720720] nvme 0000:04:00.0:    [12] Replay Timer Timeout  
 
Solution is easy, just add pcie_aspm=off to the kernel boot parameters. Source: https://www.thomas-krenn.com/de/wiki/PCIe_Bus_Error_Status_00001100_beheben 
 
Not sure if that is an issue with the NVMe I installed. I replaced the original Intel SATA M.2 with a NVMe ADATA XPG Gammix S11.

Touchpad scrolling does not always work

Haven't found a real solution for this yet. Sometimes scrolling with two fingers on the touchpad does not work. After a reboot it may (or may not) work again.  

Update 2018-12-06

The list grows longer and I renamed this article as booting is no problem, but there are still other issues. 

 

Okay, I tried to do a backup of my windows partition from my installed Ubuntu and a few seconds after pushing over 100MB/s through netcat, the transfer stalled. More precisely, the network connection was dead. Device was up, but nothing went through. In the kernel log I found the entries below. This was reproducible, it also happed in clonezilla, which I tried before and thought the failing connection was a clonezilla issue. Solution or workaround is iommu=soft which was also recommended as alternative workaround for the Lenovo E485 issue. Why can't things just work??? 

Dec  3 23:27:00 notebook kernel: [  162.778572] ------------[ cut here ]------------
Dec  3 23:27:00 notebook kernel: [  162.778604] NETDEV WATCHDOG: enp2s0 (tg3): transmit queue 0 timed out
Dec  3 23:27:00 notebook kernel: [  162.778631] WARNING: CPU: 5 PID: 0 at /build/linux-Y38gIP/linux-4.15.0/net/sched/sch_generic.c:323 dev_watchdog+0x221/0x230
Dec  3 23:27:00 notebook kernel: [  162.778632] Modules linked in: ccm rfcomm arc4 cmac bnep nls_iso8859_1 snd_hda_codec_realtek dell_laptop joydev snd_hda_codec_hdmi snd_hda_codec_generic snd_hda_intel snd_hda_codec snd_hda_core snd_hwdep snd_pcm ath10k_pci snd_seq_midi
 ath10k_core snd_seq_midi_event edac_mce_amd snd_rawmidi btusb ath dell_wmi kvm_amd mac80211 kvm dell_smbios snd_seq irqbypass input_leds hid_multitouch btrtl dcdbas btbcm wmi_bmof sparse_keymap serio_raw btintel dell_wmi_descriptor bluetooth snd_seq_device k10temp snd_t
imer ecdh_generic snd cfg80211 soundcore rtsx_pci_ms memstick shpchp ucsi_acpi typec_ucsi typec dell_rbtn dell_smo8800 mac_hid sch_fq_codel parport_pc ppdev lp parport ip_tables x_tables autofs4 xfs libcrc32c algif_skcipher af_alg dm_crypt amdkfd rtsx_pci_sdmmc amd_iommu
_v2 crct10dif_pclmul crc32_pclmul
Dec  3 23:27:00 notebook kernel: [  162.778705]  ghash_clmulni_intel pcbc amdgpu aesni_intel chash aes_x86_64 i2c_algo_bit crypto_simd ttm glue_helper cryptd drm_kms_helper ahci syscopyarea sysfillrect libahci psmouse sysimgblt fb_sys_fops tg3 drm nvme ptp i2c_piix4 nvme_core rtsx_pci pps_core wmi video i2c_hid hid
Dec  3 23:27:00 notebook kernel: [  162.778735] CPU: 5 PID: 0 Comm: swapper/5 Tainted: G        W        4.15.0-42-generic #45-Ubuntu
Dec  3 23:27:00 notebook kernel: [  162.778737] Hardware name: Dell Inc. Latitude 5495/09H2MJ, BIOS 1.2.3 06/20/2018
Dec  3 23:27:00 notebook kernel: [  162.778740] RIP: 0010:dev_watchdog+0x221/0x230
Dec  3 23:27:00 notebook kernel: [  162.778742] RSP: 0018:ffff88719f743e58 EFLAGS: 00010286
Dec  3 23:27:00 notebook kernel: [  162.778745] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
Dec  3 23:27:00 notebook kernel: [  162.778746] RDX: 0000000000040400 RSI: 00000000000000f6 RDI: 0000000000000300
Dec  3 23:27:00 notebook kernel: [  162.778748] RBP: ffff88719f743e88 R08: 0000000000000001 R09: 0000000000000458
Dec  3 23:27:00 notebook kernel: [  162.778749] R10: ffff88719f743ee0 R11: 0000000000000000 R12: 0000000000000005
Dec  3 23:27:00 notebook kernel: [  162.778751] R13: ffff88719d0cc000 R14: ffff88719d0cc478 R15: ffff88719d0c1580
Dec  3 23:27:00 notebook kernel: [  162.778753] FS:  0000000000000000(0000) GS:ffff88719f740000(0000) knlGS:0000000000000000
Dec  3 23:27:00 notebook kernel: [  162.778755] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Dec  3 23:27:00 notebook kernel: [  162.778756] CR2: 00005556bcadd018 CR3: 000000041952c000 CR4: 00000000003406e0
Dec  3 23:27:00 notebook kernel: [  162.778758] Call Trace:
Dec  3 23:27:00 notebook kernel: [  162.778761]  <IRQ>
Dec  3 23:27:00 notebook kernel: [  162.778767]  ? dev_deactivate_queue.constprop.33+0x60/0x60
Dec  3 23:27:00 notebook kernel: [  162.778773]  call_timer_fn+0x30/0x130
Dec  3 23:27:00 notebook kernel: [  162.778775]  run_timer_softirq+0x3fb/0x450
Dec  3 23:27:00 notebook kernel: [  162.778779]  ? ktime_get+0x43/0xa0
Dec  3 23:27:00 notebook kernel: [  162.778783]  ? lapic_next_event+0x20/0x30
Dec  3 23:27:00 notebook kernel: [  162.778787]  __do_softirq+0xe4/0x2bb
Dec  3 23:27:00 notebook kernel: [  162.778792]  irq_exit+0xb8/0xc0
Dec  3 23:27:00 notebook kernel: [  162.778794]  smp_apic_timer_interrupt+0x79/0x130
Dec  3 23:27:00 notebook kernel: [  162.778797]  apic_timer_interrupt+0x84/0x90
Dec  3 23:27:00 notebook kernel: [  162.778798]  </IRQ>
Dec  3 23:27:00 notebook kernel: [  162.778804] RIP: 0010:cpuidle_enter_state+0xa7/0x2f0
Dec  3 23:27:00 notebook kernel: [  162.778805] RSP: 0018:ffff95c50196be68 EFLAGS: 00000246 ORIG_RAX: ffffffffffffff11
Dec  3 23:27:00 notebook kernel: [  162.778808] RAX: ffff88719f762880 RBX: 00000025e65b82c5 RCX: 000000000000001f
Dec  3 23:27:00 notebook kernel: [  162.778809] RDX: 00000025e65b82c5 RSI: fffffff86bc6ac80 RDI: 0000000000000000
Dec  3 23:27:00 notebook kernel: [  162.778810] RBP: ffff95c50196bea8 R08: 00000000000b5a00 R09: 00000000000f13ac
Dec  3 23:27:00 notebook kernel: [  162.778812] R10: ffff95c50196be38 R11: 00000000000b3abe R12: ffff88719cdf5800
Dec  3 23:27:00 notebook kernel: [  162.778813] R13: 0000000000000002 R14: ffffffffb17806f8 R15: 0000000000000000
Dec  3 23:27:00 notebook kernel: [  162.778817]  ? cpuidle_enter_state+0x97/0x2f0
Dec  3 23:27:00 notebook kernel: [  162.778820]  cpuidle_enter+0x17/0x20
Dec  3 23:27:00 notebook kernel: [  162.778824]  call_cpuidle+0x23/0x40
Dec  3 23:27:00 notebook kernel: [  162.778827]  do_idle+0x18c/0x1f0
Dec  3 23:27:00 notebook kernel: [  162.778829]  cpu_startup_entry+0x73/0x80
Dec  3 23:27:00 notebook kernel: [  162.778832]  start_secondary+0x1ab/0x200
Dec  3 23:27:00 notebook kernel: [  162.778836]  secondary_startup_64+0xa5/0xb0
Dec  3 23:27:00 notebook kernel: [  162.778838] Code: 38 00 49 63 4e e8 eb 92 4c 89 ef c6 05 b9 d7 d8 00 01 e8 83 35 fd ff 89 d9 48 89 c2 4c 89 ee 48 c7 c7 f8 98 39 b1 e8 df 95 80 ff <0f> 0b eb c0 90 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 55 
Dec  3 23:27:00 notebook kernel: [  162.778880] ---[ end trace 6b2996ceccee82db ]---
Dec  3 23:27:00 notebook kernel: [  162.778887] tg3 0000:02:00.0 enp2s0: transmit timed out, resetting
Dec  3 23:27:00 notebook kernel: [  165.372272] tg3 0000:02:00.0 enp2s0: 0x00000000: 0x168714e4, 0x20100406, 0x02000010, 0x00000000
Dec  3 23:27:00 notebook kernel: [  165.372285] tg3 0000:02:00.0 enp2s0: 0x00000010: 0xe022000c, 0x00000000, 0xe021000c, 0x00000000
Dec  3 23:27:00 notebook kernel: [  165.372291] tg3 0000:02:00.0 enp2s0: 0x00000020: 0xe020000c, 0x00000000, 0x00000000, 0x08141028
Dec  3 23:27:00 notebook kernel: [  165.372297] tg3 0000:02:00.0 enp2s0: 0x00000030: 0x00000000, 0x00000048, 0x00000000, 0x000001ff
Dec  3 23:27:00 notebook kernel: [  165.372302] tg3 0000:02:00.0 enp2s0: 0x00000040: 0x00000000, 0xea000000, 0xc8035001, 0x16002008
Dec  3 23:27:00 notebook kernel: [  165.372308] tg3 0000:02:00.0 enp2s0: 0x00000050: 0x00005803, 0x00000000, 0x0086a005, 0x00000000
Dec  3 23:27:00 notebook kernel: [  165.372313] tg3 0000:02:00.0 enp2s0: 0x00000060: 0x00000000, 0x00000000, 0xf1000298, 0x01f802d1
[... 1000s of lines...]

Also in the news: VIDEO_TDR_FAILURE BSODs in Windows while browsing the internet with a chromium based browser.. Given enough time all devices become terrible.. 

 

Ungeschriebene Software #1: Adaptive GZip

Mir schwirren Ideen für einige Progamme im Kopf rum, die ich zwar gerne schreiben würde, aber leider keine Zeit dafür habe. Eine Idee wäre ein adaptives GZip oder auch Max-Throughput GZip.

Problem

gzip ist ein Streamkompressor, es komprimiert einfach einen Strom von Daten ohne auf eine besondere Struktur oder auf besondere Inhalte acht zu geben, kurz was es komprimiert, das ist  ihm egal. Meist wird explizit oder implizit in einer Pipe verwendet, also Quelle  | gzip  | Ziel. Beispielsweise tar -c irgendwas | gzip | netcat anderer_rechner um ein Backup auf einem anderen Rechner zu speichern. Statt tar könnte man jetzt auch dd nehmen, oder netcat einfach durch eine Datei ersetzen. Nutzt man tar mit der -z Option,  dann macht es implizit eine interne Pipe auf.

Hier hat man schon zwei Ziele:

  • Höchstmöglichste Kompression
  • Kurzmöglichste Laufzeit (aka Geschwindigkeit, Durchsatz/Throughput)

Hier ist schon der erste Gegensatz, heutige PCs sind selten schnell genug um beides zu liefern. Zu den Beschränkungen (Randbedingungen) gehören

  • Geschwindigkeit der Quelle (wie schnell kann ich lesen)
  • Geschwindigkeit des Ziel (wie schnell kann ich schreiben)
  • Geschwindigkeit der Komprimierung (wie schnell sind CPU/Speicher)
  • Art der Daten (gut komprimierbarer Text, schlecht komprimierbare Binärdaten)
  • Geschwindigkeit der Pipes, der Einfachheit halber den Geschwindigkeiten der Quelle und des Ziels zugeschlagen.
  • Einstellbarer Kompressionsgrad (bei gzip -1 bis -9)

Das bringt uns dann zu folgenden Extremen:

  • Die Quelle ist langsamer als der Kompressor -> stärkere Kompression möglich da Kompressor nicht ausgelastet ist
  • Das Ziel ist langsamer als der Kompressor -> stärkere Kompression möglich, da Kompressor nicht ausgelastet ist
  • Der Kompressor ist langsamer als die Quelle und/oder Ziel -> Kompression runterschalten um den Durchsatz nicht zu bremsen

Natürlich kann sich auch alles während der Ausführung ändern, beispielsweise weil die Daten sich ändern (Text führt zu weniger komprimierten Bytes, Ziel muss weniger entgegennehmen), andere Prozesse dem Kompressor die Rechenleistung stehlen, oder Quelle und Ziel ihre Geschwindigkeit ändern, weil beispielsweise in langsamere Bereiche der Festplatten geschrieben werden.

Der Nutzer kann zwar eine Vermutung anstellen, was die Hardware schaffen könnten und eine angemesse Kompressionsstufe wählen, aber ich bezweilfe dass er jemals das Optimum treffen wrd. Und oftmals werden Backups unter Zeitdruck angefertigt, die möglichst kurze Ausführungzeit ist da Pflicht..

Die Lösung

Adaptive gzip sollte automatisch die Kompressionsstufe anpassen können, sobald es merkt, dass die CPU nicht ausgelastet ist, weil Quelle und/oder Ziel nicht mitkommen, oder es merklich bremst und daher schneller und mit weniger Kompression laufen sollte. Optimalerweise sollte es heutzutage auch multi-threaded sein umd mehrere Prozessoren und Kerne nutzen zu können.

Meines Wissens nach sind mehrere aneinandergefügte gzip Ströme oder Dateien auch ein gültiger gzip Stream, so das man quasi  bei Änderung der Kompressionsstufe einfach den alten Stream abschliesst und einen neuen Stream anfängt und diesen bis zur nächsten Änderung bei behält. Dabei muss natürlich immer ein Blick auf den Füllstand der Ein- und Ausgabepuffer geachtet werden. Die Verarbeitung sollte dabei immer Blockweise geschehen und nach Abarbeitung eins Blocks und vor verarbeiten des nächsten Blocks sollte überprüft werden ob eine Änderung der Kompressionsstufe sinnvoll wäre, basierend auf Pufferfüllstand und wie lange die Puffer bereits gefüllt sind, also warten.  Hier könnte sich schon eine threadbasierte Lösung für Eingabe, Verarbeitung, Ausgabe anbieten.

Von gzip existiert bereits eine parallelisierte Variante namens pigz, welches auf der zlib basiert. Alle drei Programme sind von den gleichen Entwicklern. Als Weiterentwicklung von adaptive gzip könnte man die blockweise Verarbeitung auf mehrere Threads verteilen, dabei müsste die Ausgabe wieder in der korrekten Reihenfolge serialisiert werden, da durch unterschiedliche Kompressionsstufen evt. schwächer komprimierte Blöcke vorherige stärker komprimierte Blöcke überholen könnten.

Wiederholte gzip header könnten evt. den finalen Kompressionsgrad verschlechtern.

Die Entwicklung der Fomel oder des Algorithmus für die Anpassung des Kompressionsgrad könnte durchaus interessant sein....

Leider keine Zeit

Der Teufel steckt bei der Idee wie so oft im Detail und die Details oder Features könnten überhand nehmen. Vielleicht möchte man früher oder später per Parameter die Größe der Blöcke, Puffer, min threads, max  threads und einen bereich für Kompressionsgrad angeben. Wer weiss was sonst für Probleme bei der Implementierung auftreten können. Vielleicht ist die Idee auch nicht zu Ende gedacht. So oder so. Momentan hab ich leider keine Zeit dafür sad.

Blog jetzt auch verschlüsselt

So, als Teil des Wunsches doch vemehrt Verschlüsslung einzusetzen, ist jetzt das Blog SSL-verschlüsselt, sowohl http also auch https gehen. Es gibt hier zwar nichts wirklich schützenswertes, aber ich denke, dass jeder im Netz jetzt versuchen sollte soviel Kommunikation wie möglich zu verschlüsseln, egal wie unwichtig sie sein mag. Auch wenn es Gerüchte gibt, dass die Geheimdienste auch so einiges entschlüsseln können, sollte es doch ein Ziel sein, soviel Krypto-Rauschen zu erzeugen, dass evt. die Effektivität des Abhörens und Knackens runter geht. 

Technisch sind momentan zwei Punkte erwähnenswert:

Server Name Indication (SNI)

Da ich mehrere Sites auf diesem Server unter der gleichen IP hoste, kann ich eigentlich nur eine Domain verschlüsseln. Denn eigentlich wird die Verschlüsselung ausgehandelt bevor der Webserver weiss welche Site/Domain angefragt wurde. Server Name Indication (SNI) ist eine neuere Erweiterung und löst das Problem, so dass man mehre SSL-Zertifikate mit einer IP-Adresse hosten kann. Das einzige Problem ist jetzt nur, das Windows XP mit allen Internet Explorer Versionen das nicht kann. Und dann immer eine Fehlermeldung anzeigt ("There is a problem with this website's security certificate"), die man aber zumindestens wegklicken kann. Akzeptabel für mich.

Natürlich könnte man für alle Domains auf dem Server das gleiche Zertifikat (gerne auch Self-Signed) nutzen, aber dann würde viel mehr Browser Fehler anzeigen, und gerade der Firefox Dialog dürfte für DAUs Endstation sein. 

SNI einrichten ging supereinfach. Man muss einfach nur weitere Virtual Hosts mit eigenen Zertifikaten einrichten. Ich hätte mit größerem Aufwand gerechnet.

Grüne Browser-Adresszeile

Das andere Problem ist die gewünschte grüne oder auch gelbe (hauptsache "sicher") Browser-Adresszeile. Momentan kann ich die nicht bekommen, da der Blog leider "mixed content" hat, also sowohl verschlüsselten als auch unverschlüsselt Inhalt hat. An sich ist der Blog komplett "self-hosted", aber leider sind auch der Zählpixel der VG Wort und rechts der Kickstarter-Iframe eingebunden, und die sind beide unverschlüsselt. Kickstarter ist erstmal kein Problem, die können auch https, es ist nur Fleissarbeit alle URLs umzuschreiben. VG Wort ist ein anderes Problem. Die können momentan wohl kein https. Aber ich frag mal nach. Viel Hoffnung hab ich bei so einer Organisation aus dem letzten Jahrtausend ja nicht.  Da bleibt nur die Entscheidung "grüne Browserzeile" oder Zählpixel.

Ansonsten läuft evilazrael.de gerade mit einem kostenlosen 30-Tage Testzertifikat von Comodo. Ich hab gerade einen Anbieter gefunden der nur 5 USD/Jahr haben will. Da hab ich gerade eine Presales-Anfrage hingeschickt. Wenn die positiv zurück kommt, dann tausch ich das Zertifikat gegen ein richtiges aus. 

Nachtrag 07.08.2013

Eine Antwort von CheapSSLs.com habe ich zwar nicht bekommen, aber deren Comodo Zertifikate bieten zum Glück auch die Unterstützung für die Domain selber und das www. davor. Interessanterweise gehört CheapSSLs.com zu Namecheap, dort sind die gleichen CAs um einiges teurer. Für das Zertifikat selber wird 100% auf die Comodo Infrastruktur zurück gegriffen. Für ein 5-Jahres Zertifikat zahlt man nur 25USD (also 5USD/Jahr), was bislang das günstigste ist, was ich gefunden habe. 

Die Kickstarter iframes hab ich schon auf https umgebastelt, bleibt noch das VG Wort Problem. Bin mal gespannt, wann ich von denen eine Antwort kriege. 

 

Nachtrag 11.08.2013

CheapSSLs läuft einem wie ein kleines Hündchen nach und gibt noch mal 10% Rabatt mit dem Coupon-Code MissedYou. Boah, ich hasse Retargeting

Lüfterloser Midrange PC / Silent PC / Tower

Nach dem lüfterlosen Mini-PC möchte ich ein "Rezept" für einen richtigen Office-PC, der auch für gelegentliche Spiele taugt und trotzdem unhörbar ist, vorstellen. Der Mini-PC taugt zwar zum Surfen, Office und auch Full-HD Wiedergabe (solange es GPU beschleunigt ist), doch spätestens bei der Entwicklungsumgebung Eclipse ist dann Schluss, Kontextmenüs brauchen dann auch mal schon ein paar Sekunden. Da muss mehr Power her. 

Auch wieder wie ein Bekloppter hin und her gegoogelt, aber ausser ein paar Vorschlägen mit Streacom Gehäuse für 350€ und Intel-CPUs die auch nicht gerade billig sind (und ich mag Intel eh nicht), fand sich nicht viel. Zudem kamen die Streacom Gehäuse wegen ihrer Art (HTPC Box) für mich nicht in Frage. Und man muss zugeben, das AMD den Markt für CPUs mit niedriger TDP echt Intel überlässt. Wenige AMD Standard-CPUs haben 65Watt TDP, das Gros hat 95Watt TDP oder 125Watt TDP, und diese Watt müssen halt auch abgeführt werden. 

Die ersten Pläne hatten noch eine dedizierte passivgekühlte Radeon 5450 mit einer GPU-losen Trinity CPU, aber die neuen integrierten GPUs der aktuellen Trinity-CPU pusten die Radeon 5450 leistungsmässig echt weg, trotz shared Memory und CPU-Integration, also ist es dann eine standard A10-5700 mit 3,4Ghz und 4,0Ghz Turbo geworden. Das momentane High-End Modell mit 65Watt. Die A10-5800K wäre zwar noch ein Tick schneller, hat aber schon wieder 100W TDP. 

Auf Spielereien wie Undervolting oder so habe ich keine Lust und keine Zeit zu. Ich bevorzuge ein stabiles System genau nach Spezifikation. 

Komponente Preis Vorschlag 1 Preis Vorschlag 2
CPU 107€ AMD A10-5700, 4x 3.40GHz, boxed  107€ AMD A10-5700, 4x 3.40GHz, boxed 
Mainboard 56€ ASRock FM2A75 Pro4-M, A75 56€ ASRock FM2A75 Pro4-M, A75
Speicher 56€ Crucial Ballistix Tactical DIMM Kit 8GB PC3-14900U CL9-9-9-27 (DDR3-1866) 56€ Crucial Ballistix Tactical DIMM Kit 8GB PC3-14900U CL9-9-9-27 (DDR3-1866)
SSD 107€ Samsung SSD 840 Pro Series 128GB, 2.5", SATA 6Gb/s 107€ Samsung SSD 840 Pro Series 128GB, 2.5", SATA 6Gb/s
Gehäuse 40€ Enermax Ostrog schwarz 350€ Nofan Set A43, 400W ATX 2.3
Netzteil 110€ Sea Sonic X-Series Fanless X-400FL 400W ATX
CPU Kühler 100€ Nofan CR-95C Copper
Summe ~575€ Geizhals Einkaufsliste ~675€ Geizhals Einkaufsliste

Vorschlag 1 war mein ursprünglicher Plan, zufälligerweise wurde auf eBay gerade das A43 Set so günstig verkauft, dass es billiger als Vorschlag 1 war, so beschränken sich meine Erfahrungen auf den zweiten Vorschlag. 

Das Zusammenbauen ist eigentlich recht einfach, viel zu verkabeln ist nicht. Man sollte die Gegebenheiten des Gehäuses nutzen und soviele Kabel wie möglich sinnvoll auf der Rückseite des Mainboard-Trägers verlegen. Die Installation erfolgt dann wieder über das geniale iodd USB Virtual CD-ROM.

 An Betriebssystemen habe ich mal kurz Windows 7 getestet, dann aber die Ubuntu Variante Xubuntu 13.04 Beta installiert. Bei Xubuntu empfiehlt es sich auf den Open Source Radeon Treiber zu verzichten und den offiziellen Treiber von AMD zu nutzen. Dort bietet mehr Performance, unterstützt hardwarebeschleunigte Videodekodierung und vermutlich auch Powersaving. Bis auf einen "kleinen" Bug, AMD schafft es wohl nie fehlerfreie Linuxtreiber zu entwickeln, läuft das alles auch ganz gut.

Hätte ich nicht blöderweise noch eine HDD eingebaut, würde man von dem PC echt nix hören. Leider verstärkt der gekachelte Boden merkwürdigerweise die Festplattengeräusche zu einem tiefen Brummen. Das hatte ich auch noch nie. 

Benchmark / Energiemessung

Liefere ich nach sobald ich den Notizzettel wiedergefunden habe. Stromverbrauch Idle war ~27-28Watt sowohl unter Windows als auch unter Linux. Maximal Stromaufnahme war in meinen Tests 110-120 Watt.

glmark2 war der einzige Linux OpenGL Test der mit beiden Treibern lief und  wenn ich mich recht erinnere mit dem OpenSource Treiber um 400 Punkte brachte und mit dem AMD Treiber ~1300 Punkte. Unity3D Benchmarks waren unter Linux einen Tick langsamer. Die 3Dmark punkte weiss ich gerade nicht mehr. 

So, ich hab jetzt den Schmierzettel wieder gefunden:

glmark2 unter Xubuntu 13.04 Beta 1 hatte 369 Punkte mit dem Open Source Radeon Treiber, und mit dem AMD Treiber waren es 1435. 

Die Unigine Engine läuft leider nur mit dem AMD Treiber, die Punkte verteilen sich wie folgt:

  Linux Windows
Benchmark OpenGL DX 11 OpenGL
Heaven 14,0 fps 354 Punkte 19,4 fps 489 Punkte 12,5 fps 366 Punkte
Valley 16,1 fps 674 Punkte 21,5 fps 898 Punkte 12,0 fps 504 Punkte

Die Auflösung war 1366*768 sofern einstellbar. 

Ein paar Bilderchen vom Zusammenbau

CR-95C Lüfter im GehäuseKnappe Sache mit dem StromsteckerSo sieht es geschlossen ausEingebaute Komponenten, NahansichtEingebaute Komponenten ohne Kühler

 

Lüfterloser PC / Full-HD HTPC / Billig-PC

Eigentlich wollte ich hier eine Bau-Anleitung für einen lüfterlosen und geräuschlosen Mini-PC mit möglichen Ausbauoptionen schreiben. Leider gibt es das Mainboard (Mini-ITX (!)) und die ursprüngliche SSD  nicht mehr. Darum spar ich mir den Rest. 

Komponente Preis Artikel
Mainboard+CPU 150€ ASUS E45M1-I DELUXE, Mini-ITX
Speicher 30€ 4GB PC3-8500U (DDR3-1066), z.b: Kingston ValueRAM
SSD 70€ Samsung 64GB 830
Gehäuse+Netzteil 35€ LC-Power LC-1340mi 75W extern, Mini-ITX
SATA Kabel 3€ SATA Kabel 15cm bei eBay
Betriebssystem 0€ Xubuntu 12.04 oder neuer
Summe 288€  

http://geizhals.at/de/?cat=WL-312462

Dieses 5 Teile Puzzle hätte bestimmt jeder zusammenbauen können und Xubuntu erkennt die Hardware ohne Probleme -> Anfänger-geeignet.

Virtuelles USB-CDROM iodd / Zalman VE

Leider findet man nicht viel über diese nützliche Gerät, dabei ist es einfach genial. Jeder der viel installiert und häufig viele verschiedene Boot- oder Live-CDs benutzt, könnte mit diesem Gerät glücklich werden.

Hardwaremässig ist das iodd Virtual ROM erstmal nur ein externes Festplattengehäuse für 2,5" Festplatten oder SSDs, das über USB und bei einigen Modellen auch über eSata an den PC angeschlossen wird. Der Clou ist allerdings, dass man in das Verzeichnis _iso einfach Iso-Images von CDs/DVDs/Blu-Rays/etc legen kann, die das iodd dann als USB-CDROM zur Verfügung stellt. Und man kann davon dann auch booten. Perfekt um Betriebssystem zu installieren oder um Live-Rescue-Systeme zu starten.
Für die ISO-Auswahl hat das iodd ein kleines beleuchtetes LCD-Display und einen Auswahlknopf an der Seite. Man kann jederzeit ISOs ein und aushängen. Zu dem wählt man darüber einen der drei Modi aus: Reiner Festplatten-Modus, reiner CD-ROM-Modus und den praktischen Dual-Modus, in dem sowohl die HDD als Platte zur Verfügung steht, als auch ein Image eingebunden werden kann. Dies ist beispielsweise in Verbindung Clonezilla die perfekte Lösung um System-Backups zu machen, da man direkt ein Backup-Medium hat.
Das Gehäuse macht einen sehr stabilen Eindruck und ist aus Metall, die empfindlichsten Stelle dürften das Display und vor allem der Knopf an der Seite sein.

Die Festplatte muss man selber noch kaufen, man sollte eine 2,5" SATA (-2/-3) Festplatte mit 9,5mm Dicke wählen, möglichst mit niedrigem Stromverbrauch. Ich denke auf den Verbrauch sollte man achten, da USB wohl nur 2,5Watt liefern kann und neben der HDD auch die iodd Elektronik Strom verbraucht. In meinem iodd läuft eine 500GB Toshiba MK5076GSX mit einem angegebenen Verbrauch von 1,85Watt.

Leider ist das iodd in Deutschland direkt wohl nicht erhältlich, man kann es über eBay aber direkt aus Südkorea ordern. Der Preis liegt momentan bei 43€ (mit Versand) aufwärts, allerdings wird der Zoll da noch 19% drauf berechnen. Dafür bekommt man das iodd, eine einfache Polstertasche, ein kurzes USB-Kabel und einen koreanischen Beipackzettel. Ich rate dazu direkt das letzte Firmware-Update auf die NTFS-fähige Firmware einzuspielen.

Die bessere Alternative ist es wahrscheinlich ein baugleiches Zalman VE-XXX für ~40€ zu kaufen, da sind Modelle auf dem deutschen Markt erhältlich. Zalman bietet unterschiedliche Modelle an beispielsweise mit USB 3.0 Unterstützung. Hier bekommt man dann auch eine englische Kurzanleitung und hat keine Probleme mit dem Zoll.

Noch ein Nachtrag: Warum NTFS? Man kann zwar mehrere Partitionen anlegen, aber die erste wird für die Images genutzt. Unterstützt werden FAT32, NTFS & exFat. FAT32 kann keine Dateien größer als 4GB, somit können keine DVD-Images genutzt werden. iodd hat zwar ein Split-Tool, das die Teil-Dateien in einem bestimmten Format benennt und dann trotzdem als ein Image genutzt werden können, aber bequem ist das nicht. exFat hat wiederum das Problem mit der Unterstützung. Nicht alle OS können exFat lesen und/oder schreiben und es gibt da wohl auch rechtliche Probleme. NTFS wiederum kann natürlich von Windows genutzt werden und die meisten Linux-Distributionen können auch von Haus aus NTFS lesen und meistens sogar schreiben. Ist zwar nicht ganz so schnell, aber die 30MB/s die USB 2.0 kann, kriegt man schon hin. 
 

iodd von vorne. Mattes einfaches Metall-Gehäuseiodd Display im CD-ROM Modus