Mar 27

Build your own Box!

Veröffentlicht von chrisse

Für alle die Interesse haben sich eine Aktivbox nachzubauen und eine kleine Hilfe zum Bau benötigen habe ich versucht alle Bauschritte und Teile unserer Denkprozesse zusammengefasst um manche Konstrutionsentscheidungen besser zu verstehen.
Die Box, die Ich mir vorstelle und zusammen mit ST, Uhl, Flo und Onny gebaut habe, ist relativ klein und vom Sound her nicht übermäßig laut dafür aber sehr leicht und überall hin transportierbar.

Generell ist wichtig zu wissen das man mit gefährlichen Spannungen arbeitet und das wir keine Haftung für den Bau und Betrieb der Box bei einem Nachbau übernehmen.
IMG_20130311_161105Exif_JPEG_PICTURE

Vorbereitung:

  • Case:

Um bei dem Bau der Holzbox schnell voran zu kommen und bei diesem Schritt nicht zu viel Zeit zu verlieren habe Ich ein CAD-Modell mit Solidworks entworfen und eine Materialliste exportiert. Diese, bestehend aus Holzplatten und Innen-Querleisten, kann bei einem Baumarkt in der nähe abgegeben und geordert werden. Wenn mann viel Zeit und Spaß am handwerklichen Arbeiten hat kann man dies auch selber zusägen. Als Material für die Holzplatten haben wir MDF-Platten mit einer Stärke von 10 mm verwendet. Mann kann auch stärkere Platten verwenden, sollte aber darauf achten, dass dann das Gewicht zunimmt. Wenn man alle Teile für die Holzbox zusammen hat kann man mit dem Montieren beginnen.

Benennung Maße (LxBxH in cm) Menge
Deckel 23 x 23 x 1 2
Frontwand 35 x 21 x 1 1
Seitenwand 35 x 23 x 1 2
Rückwand 35 x 21 x 1 1
Quadratleiste (Seitenwände) 2 x 2 x 35 4
Quadratleiste (Deckel) 2 x 2 x 17 4
Quadratleiste (Deckel) 2 x 2 x 15 4

Um die später montierten Speaker an der Vorderseite und die Anschlüsse an der Rückseite ein wenig vor Stößen zu schützen, haben wir die Vorder- und Rückseite um einen Zentimeter nach innen versetz.

Exif_JPEG_PICTURE

  • Verstärker:

Als Verstärker haben wir in dieser Box einen 2 x 50 Watt Class D Verstärker (TDA7492) verbaut. Dieser ist bei Sure Elektronics zu erwerben und kostet ca. $25 (bei Ebay nochmals um einiges günstiger). Die “Besonderheit” des Verstärkers ist das es ein digital (Class D) und kein analog (Class A-B) Verstärker ist und somit einen geringen Energiebedarf hat durch einen höheren Wirkungsgrad und  damit weniger Abwärme.

  • Speaker

Die Lautsprecher haben wir aus alten Boxen ausgebaut. Bei den Speakern gibt es sehr vieles auf das man achten kann, generell ging es uns bei der kleinen Box darum das die Speaker nicht zu groß sind und in das geplante Gehäuse reinpassen. Das wichtigste Merkmal auf das man sich bei der Wahl der Speaker verlassen sollte ist meiner Meinung nach der Klang. Diesen kann man am besten raushören wenn man zwischen mehrern Speakern vergleicht und damit sein Gehör einwenig sensibilisiert. Der Klang ist von Speaker zu Speaker unterschiedlich und hat nicht immer etwas mit Preis, Alter und Gewicht zu tun. Das Gewicht sollte man dabei nicht unterschätzen, da man mit der Box flexibel sein will.
Wir haben bei der Wahl der Tieftöner noch darauf geachtet, dass es sich um eine Kunstoffmembran handelt, da diese eine lange Lebensdauer aufweißt.

  • Akku:

Für den Akkubetrieb benutzen wir Litium-Ionenzellen wie sie in Laptops zufinden sind. Hier kann man einfach einen aus einem alten Laptop benutzen, gesetz den Fall er hat noch eine ausreichende Kapazität und vollfunktionierende Ladeelektronik (die kleine Platine die mit den Zellen verbunden ist). Der Vorteil der Litium-Ionenzellen ist das Gewicht, es macht die Box sehr leicht. Weiteres zu den Litium-Akkus kommt später im Bereich der Ladeelektronik.

Exif_JPEG_PICTURE Exif_JPEG_PICTURE
Als Beispiel ist hier ein 3s 2p Akku abgebildet.

  • Netzteil:

Um die Versorgungsspannung für den Verstärker und den Akku zu transformieren benötigt man ein regelbares Computerschaltnetzteil mit geeignetem Spannungsbereich und ausreichend Leistung damit die Ladezyklen nicht zu lange dauern. Der Vorteil eines Schaltnetzteil ist der Wirkungsgrad (ca 90 %). Es wandelt mit geringen Verlusten die normale Netzspannung 230 Volt in eine gewünschte Spannung um.
Wir haben in unserer Box ein Schaltnetzteil verwendet das die Spannung durch tauschen eines Adapter-Steckers ändert (siehe TECHSOLO TNP-40AT, 40 W). Dies ist für uns von Vorteil, da das Tauschen des Adapter-Stecker lediglich die Änderung eines Widerstandes bedeutet. Wir haben den Adapter Stecker mit einem verstellbaren Widerstand, einem sogennantem Potti, getauscht und können durch verändern des Wiederstandes die genaue Spannung einstellen, die das Schaltnetzteil für uns transformieren soll.

Montage

Wir haben erst die Vorder- und Rückseite ringsherum mit den Querlatten verschraubt und anschliesend die Seitenwände angebracht. Bei der Montage der Schrauben haben wir immer Löcher mit einem 2 mm Bohrer vorgebohrt und Senken für die Schraubenköpfe gefräst.

Um mit den Schrauben immer die Mitte der Querlatten zu treffen empfielt es sich auf allen Platten die Mitte der Querlatten anzuzeichnen:

Exif_JPEG_PICTUREExif_JPEG_PICTURE

 

Danach haben wir die Ober- und Unterquerlatten zur stabilisation montiert und vorerst den Ober- und Unterdeckel angebracht

Exif_JPEG_PICTUREExif_JPEG_PICTURE Exif_JPEG_PICTURE

Den Zeitaufwand für einen Kasten würde ich auf 1-2 Stunden schätzen.

Als nächsten Schritt haben wir die Vorderwand wieder abmontiert und die Löcher für die Speaker mit einer Stichsäge so genau wie möglich ausgesägt. Für die Löcher der Hoch- und Mitteltöner haben wir einen Lochkranzbohrer verwendet was die Arbeit beschleunigt. Für das Loch des Tieftöners haben wir zuerst ein Loch vorgebohrt und anschließend mit der Sticksäge ausgesägt.

Exif_JPEG_PICTURE Exif_JPEG_PICTURE

Exif_JPEG_PICTURE Exif_JPEG_PICTURE

Um die Speaker nicht zu verschmutzen ist es zu empfehlen, vor dem montieren der Speaker zuerst die Löcher für die Anschlüsse zu bohren und auszufeilen. Außerdem müssen noch Löcher für den “Bassreflex” gebohrt werden, wir haben uns dabei für einen Durchmesser von jeweils 2 cm entschieden.

Exif_JPEG_PICTURE

Bei den Anschlüssen haben wir uns einige Gedanken gemacht

Exif_JPEG_PICTUREExif_JPEG_PICTURE

Für die Stromversorgung haben wir uns überlegt eine Kaltgerätebuchse einzubauen, da es für diese in so gut wie jedem Haushalt ein passendes Kabel gibt. Außerdem ist ein Kaltgerätekabel sehr stabil und robust, was eine höhere Sicherheit für die Box bedeutet wenn an diesem Anschluss die Verbindung an das 230 Volt Hausnetzt hergestellt wird, welches eine tötliche Spannung ist. Das heißt immer auf gute Isolierung achten und bei der Montage immer den Netzstecker ziehen. Für den Audioausgang habe Ich bei dieser Box eine XLR-Buchse verwendet, was ein ziemlich aussergewöhnlicher Stecker ist. Man kann als Audioausgang auch eine Klinke- oder Chinch-Buchse einbauen, wir haben allerdings die Erfahrung gemacht, dass diese recht instabil sind und zumal die Box am häufigsten Outdoor und auf Partys im Einsatz ist, bei solchen Gelegenheiten eine Klinke-Buchse sehr schnell bei unsachgemäßer Handhabung herausbrechen kann. Um die Box zu schalten haben wir einen Wippschalter eingebaut.

Damit man unterwegs noch den Mp3-Player oder das Handy laden kann, haben wir noch USB-Buchsen zum Laden eingebaut.

Die Kaltgeräte-Buchse und den Schalter haben wir aus einem alten Computernetzteil ausgebaut. Die XLR-Buchse bei Pollin bestellt und die USB-Buchsen von einem Zigarettenanzünder-Adapter abgelötet:

Exif_JPEG_PICTUREExif_JPEG_PICTUREExif_JPEG_PICTURE

Beim anschließen der USB Buchsen ist uns aufgefallen, dass für manche Geräte, z.B die der Marke “angebissener Apfel”  es nicht ausreicht nur die zwei jeweils links und rechts äußeren Ports, die zur Stromversorgung dienen, anzuschließen, sondern dass man auch die mittleren zwei  Datapins benötigt damit das jeweilige Gerät zu laden beginnt. Wenn man gleichzeitig Laden und Musik hören möchte ist ein störendes Geräusch zu hören(Common ground fuck up). Die Lösung wäre eine galvanische Trennung. Der Zigarettenanzünder-Adapter generiert eine 5 Volt Versorgungsspannung aus einer Spannung zwischen 12 und 24 Volt, diesen kann man dann direkt die Versorgungsspannung des Verstärke mit anschliesen.

Wenn alle Buchsen montiert sind kann man die Speaker sowie die Frequenzweiche montieren und diese anschließen.

Exif_JPEG_PICTURE Exif_JPEG_PICTURE

Die Frequenzweiche teilt das Ausgangsaudiosignal des Verstärkers in Tief-, Mittel- und Hochfrequenz. Wenn man nicht genau weiß auf welchem Kabel welche Frequenz läuft kann man mit dem Tieftöner die Frequenzen durchtesten bzw. raushören. Man sollte aber auf keinen Fall die Tiefe Frequenz an den Hochtöner anschließen. Die Frequenzweiche kann man z.B aus einem alten Lautsprecher ausbauen (siehe nächstes Bild oben).

Exif_JPEG_PICTURE Exif_JPEG_PICTURE

Als nächsten Schritt haben wir den Verstärker an eine Seite neben die Frequenzweiche  montiert und den Audioausgang mit der Frequenzweiche verbunden (siehe Datasheet oder User-Manual des Digital-Verstärkers oder User-Manual). Das Audioeingangssignal des Verstärker kann mit einem geeignetem Kabel mit der XLR-Buchse verbunden werden. Den auf dem Verstärker vorhandenen Lüfter haben wir abgesteckt, da er unserer Meinung nach nur unötig Energie verbraucht und schon durch den Bass schon eine ausreichende Zirkulation der Luft vorhanden ist. Auch ist ein Frischluftaustausch mit der Umgebung durch den Bassreflex möglich wodurch Abwärme abgegeben wird.

Im nächsten Schritt kann das Netzteil montiert und ein erster Soundtest durchgeführt werden. Hierfür muss das Netzteil auf der 230 Volt Seite mit der Kaltgeräte Buchse und auf der z.B. 19 Volt Seite mit dem Verstärker verbunden werden.

Um im Inneren der Box Kabel mitteinander zu Verbinden haben wir sogennante Wago-Klemmen verwendet, mit denen man einfach die Stromversorgung verkabeln und ggf. noch Sonderfunktionen wie Schalter einbauen kann.

Exif_JPEG_PICTURE

Ladeelektronik

Beim Laden der Box ist sicherlich noch einiges an Verbesserungsarbeit zu Leisten. Momentan haben wir zwei Boxen die mit folgender Schaltung funktionieren.

Die Spannung des Netzteil wird, falls notwendig, mit Hilfe des Pottis auf eine für Akku und Verstärker geeignete Spannung angepasst.

In meiner Box haben wir einen 8 Zellen Akku verwendet, dieser ist als 4 Zellen in Reihe und 2 Zellen Parallel angeordnet: Man spricht von 4 s 2 p. Die Nennspannung pro Zelle beträgt 3,7 Volt und der Ladeschluss 4,3 Volt. Bei 4 Zellen in Reihe bedeutet das Nennspannung des Akkus: 4*3,7 = 14,8V und Ladeschluss (die Spannung die nicht überstiegen werden sollte): 4*4,3 = 17,2. Um auf Nummer sicher zu gehen haben wir die Spannung des Netzteils auf 17 V eingestellt.

Die Ladeeletronik, die auf dem Akku montiert ist, ist für meherer Faktoren extrem wichtig:  Sie sorgt dafür, dass der Akku, wenn er unter einer bestimmten Spannung ist abgeschaltet wird und kein Strom mehr abgibt. Das ist wichtig, da eine Tiefentladung irreversible Schädigung des Akkus zu folge hätte. Sie sorgt außerdem dafür, dass der Akku, wenn er vollgeladen ist oder mit  einer Spannung über 17,2V geladen wird, abschaltet. Ein weiteres wichtiges Feature der Ladeelktronik des Akkus ist das Autobalacing der Zellen. Sie überwacht die Spannung jedes Zellen-Paares und gleicht dies bei Abweichung aus. Eine wichtige Verbesserung unserer Ladeelektronik wäre die Informationen der Ladeelektronik des Akkus auszulesen.

Für die einfachste Funktionsweise reicht es die + und – Pins der Ladeelektronik des Akkus an die Versorgunsspannung (Netzteilausgang) anzuschließen.

Ich habe bei meiner Box zwei 8 Zellen Akku-Packs parallel eingebaut und kann somit eine Laufzeitdauer von 24 Stunden auf Vollast überschreiten. Wie lang sie genau hält haben wir noch nicht herausgefunden. Wir haben unsere Boxen so verschaltet, dass ein Betrieb ohne Akku möglich ist. Sprich man kann die Box mit Akku, am Hausnetz oder mit beiden kombiniert benutzen. Somit kann man die Box auch als Anlage für zuhause verwenden ohne dass der Akku beansprucht wird.

Mit einem Schalter, für den weitere Wago-Klemmen verwendet wurden, kann man den Akku und Verstärker von dem Netzteil trennen.

Schaltplan

 

Kosten und Zeitaufwand

  • 10 Euro Material für das Case
  • 20 Euro für den Verstärker
  • 15 Euro Netzteil

Der Zeitaufwand ist schwer einzuschätzen

Weitere Features

  • Licht
  • Bluetooth
  • Audioausgang zum vernetzen mehrerer Boxen
  • Laptop Ladeausgang
  • Integriertes Display
  • Integrierter Mp3 Player und Speicher für Musik
  • Integrierter WLAN-Accesspoint
  • Stromversorgung bzw. Ladevorgang via. Solarzellen
  • Messen von Lautstärke in Dezibel

Exif_JPEG_PICTURE Exif_JPEG_PICTURE Exif_JPEG_PICTURE

Feb 13

As a happy user of the ArchLinux testing-repository, I’m sometimes “forced” to deal with bugs and regressions which do not break the whole system but definitely need some time finding and fixing them.
Beside the breaking of some userland applications like libvirt or wicd, a kernel regression, which might only affect your own system, could be really difficult to spot.
My Thinkpad T43 notebook suffered a “won’t-wakeup-from-suspend” bug since the 3.7 kernel tree and apparently this bug is still present in the latest stable upstream releases. Searching for the cause of this regression on Google isn’t really helpfull and opening tasks on your distributions bug tracker gets you in this case to the only but unpopular soloution: kernel bisection. While reading about the pros and cons of this unanalytical method, I just wanted to give it a try:

1
2
3
4
5
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git linux-git
cd linux-git
git bisect start
git bisect good v3.6
git bisect bad v3.7-rc1

As you can see, I define the range in which I assume the culprit commit. Now the process of compiling and testing several kernel versions starts while narrowing down the bug. Unfortunately, I always had to compress the current revision and compile it using the offical ArchLinux PKGBUILD file on my remote server, because I couldn’t figure out how to afterwards test the kernel on my local system in a “clean” manner. Installing the bisected kernel with pacman was the more convenient way :)
So here’s the quite long bisection log. Note that git always stated with every step, how many commits are left to check.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
git bisect start
# good: [49b8c695e331c9685e6ffdbf34872509d77c8459] Merge branch 'x86/fpu' into x86/smap
git bisect good 49b8c695e331c9685e6ffdbf34872509d77c8459
# good: [49b8c695e331c9685e6ffdbf34872509d77c8459] Merge branch 'x86/fpu' into x86/smap
git bisect good 49b8c695e331c9685e6ffdbf34872509d77c8459
# bad: [a20acf99f75e49271381d65db097c9763060a1e8] Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next
git bisect bad a20acf99f75e49271381d65db097c9763060a1e8
# good: [06d2fe153b9b35e57221e35831a26918f462db68] Merge tag 'driver-core-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
git bisect good 06d2fe153b9b35e57221e35831a26918f462db68
# good: [3498d13b8090c0b0ef911409fbc503a7c4cca6ef] Merge tag 'tty-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
git bisect good 3498d13b8090c0b0ef911409fbc503a7c4cca6ef
# bad: [61464c8357c8f6b780e4c44f5c79471799c51ca7] Merge tag 'cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
git bisect bad 61464c8357c8f6b780e4c44f5c79471799c51ca7
# good: [cc150a2861e744d8f574d571762cc7e9f928abb3] Merge tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
git bisect good cc150a2861e744d8f574d571762cc7e9f928abb3
# good: [60e59920152c7bafc8a2eb3031a62f22c2bc9e95] Merge branch 'board' of git://github.com/hzhuang1/linux into next/cleanup
git bisect good 60e59920152c7bafc8a2eb3031a62f22c2bc9e95
# bad: [797b9e5ae93270ec27a1f1ed48cd697d01b2269f] Merge branch 'for-linus' of git://git.samba.org/sfrench/cifs-2.6
git bisect bad 797b9e5ae93270ec27a1f1ed48cd697d01b2269f
# good: [71953fc6e4ce5ac05b594d8e5866accf531aa969] cifs: remove kmap lock and rsize limit
git bisect good 71953fc6e4ce5ac05b594d8e5866accf531aa969
# good: [c052e2b423f3eabe9f3f32e60744afa5cf26f6b9] cifs: obtain file access during backup intent lookup (resend)
git bisect good c052e2b423f3eabe9f3f32e60744afa5cf26f6b9
# good: [cdeb9b014331af4282be522824e36f3aa33f0671] Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k
git bisect good cdeb9b014331af4282be522824e36f3aa33f0671
# good: [a57d985e378ca69f430b85852e4187db3698a89e] Merge tag 'please-pull-ia64-for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux
git bisect good a57d985e378ca69f430b85852e4187db3698a89e
# bad: [b2cc2a074de75671bbed5e2dda67a9252ef353ea] x86, smep, smap: Make the switching functions one-way
git bisect bad b2cc2a074de75671bbed5e2dda67a9252ef353ea
# good: [5a5a51db78ef24aa61a4cb2ae36f07f6fa37356d] x86-32: Start out eflags and cr4 clean
git bisect good 5a5a51db78ef24aa61a4cb2ae36f07f6fa37356d
# bad: [73201dbec64aebf6b0dca855b523f437972dc7bb] x86, suspend: On wakeup always initialize cr4 and EFER
git bisect bad 73201dbec64aebf6b0dca855b523f437972dc7bb
# bad: [73201dbec64aebf6b0dca855b523f437972dc7bb] x86, suspend: On wakeup always initialize cr4 and EFER
git bisect bad 73201dbec64aebf6b0dca855b523f437972dc7bb
# bad: [73201dbec64aebf6b0dca855b523f437972dc7bb] x86, suspend: On wakeup always initialize cr4 and EFER
git bisect bad 73201dbec64aebf6b0dca855b523f437972dc7bb

So, the last part of the session finally showed me a result:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
73201dbec64aebf6b0dca855b523f437972dc7bb is the first bad commit
commit 73201dbec64aebf6b0dca855b523f437972dc7bb
Author: H. Peter Anvin <hpa@linux.intel.com>
Date:   Wed Sep 26 15:02:34 2012 -0700

    x86, suspend: On wakeup always initialize cr4 and EFER
   
    We already have a flag word to indicate the existence of MISC_ENABLES,
    so use the same flag word to indicate existence of cr4 and EFER, and
    always restore them if they exist.  That way if something passes a
    nonzero value when the value *should* be zero, we will still
    initialize it.
   
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Cc: Rafael J. Wysocki <rjw@sisk.pl>
    Link: http://lkml.kernel.org/r/1348529239-17943-1-git-send-email-hpa@linux.intel.com

:040000 040000 bb093059ee142f1dd5bd7fe44368ba657701e451 a13e5f81b5a83f783ebeb6317599a7cd6cd4056b M      arch

I contacted the author of this commit but he was unsure about the cause of this bug and so he wanted to reproduce it on the same Thinkpad model. Meanwhile I tried to revert a part of this commit and actually fixed the bug with this patch (without knowing what it does):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
--- a/arch/x86/realmode/rm/wakeup_asm.S 2013-02-23 13:53:04.280001331 +0000
+++ b/arch/x86/realmode/rm/wakeup_asm.S 2013-02-23 13:54:14.363333655 +0000
@@ -93,8 +93,8 @@
 
        /* Restore MISC_ENABLE before entering protected mode, in case
           BIOS decided to clear XD_DISABLE during S3. */
-       movl    pmode_behavior, %edi
-       btl     $WAKEUP_BEHAVIOR_RESTORE_MISC_ENABLE, %edi
+       movl    pmode_behavior, %eax
+       btl     $WAKEUP_BEHAVIOR_RESTORE_MISC_ENABLE, %eax
        jnc     1f
 
        movl    pmode_misc_en, %eax
@@ -110,15 +110,15 @@
        movl    pmode_cr3, %eax
        movl    %eax, %cr3
 
-       btl     $WAKEUP_BEHAVIOR_RESTORE_CR4, %edi
-       jnc     1f
-       movl    pmode_cr4, %eax
-       movl    %eax, %cr4
+       movl    pmode_cr4, %ecx
+       jecxz   1f
+       movl    %ecx, %cr4
 1:
-       btl     $WAKEUP_BEHAVIOR_RESTORE_EFER, %edi
-       jnc     1f
        movl    pmode_efer, %eax
        movl    pmode_efer + 4, %edx
+       movl    %eax, %ecx
+       orl     %edx, %ecx
+       jz      1f      
        movl    $MSR_EFER, %ecx
        wrmsr          
 1:

Now my laptop is running again with the patch applied to the latest stable kernel and suspend2ram is working again :) Let’s hope that this gets fixed upstream very soon.

Dec 21

Counter-Strike 1.6 DustOE Server

Veröffentlicht von onny

DustOE version 1

DustOE version 1


Unser Server hostet jetzt endlich auch einen Counter-Strike 1.6 Server. In diesem Fall auch mit einer besonderen Map: de_dustoe. Diese Map hatte Ich schon vor vielen Jahren in unterschiedlichen Version erstellt und es macht noch immer relativ viel Spaß diese zu spielen :) .


Jetzt gillt es noch, die Dokumentation im ArchLinux-Wiki, wie ein HLDS-Server unter Linux eingerichtet wird, fertigzuschreiben.

Lokalisiert von Hashi. Modified by project-insanity.