IT security, FreeBSD, Linux, mail server hardening, post-quantum crypto, DNS, retro computing & hands-on hardware hacks. Privater Tech-Blog seit 2003.

Kategorie: Hardware & Reparatur (Seite 4 von 5)

Hardware-Tests, Reparaturanleitungen und Teardowns — von der Fritz!Box bis zum Bose-Kopfhörer.

MacBook Pro GPU-Panic Reparatur: Backofen-Methode im Test

Mir ist vor kurzem ein Apple MacBook Pro (Mitte 2010) in die Hände gefallen. Hardware noch ganz interessant — 8 GB RAM, Core i7, SSD. Aber das Ding hatte den bekannten Bug mit der NVIDIA GeForce GT 330M. Abstürze und Reboots mitten in der Arbeit, und die wurden eher mehr als weniger.

Die Optionen

  1. Apple mit Garantie — anrufen und reparieren lassen.
  2. Apple ohne Garantie — knapp 500 € Reparaturkosten. Lohnt sich bei einem sechs Jahre alten Gerät nicht.
  3. Apple Kulanz — gab es tatsächlich, sogar bis zwei Jahre nach Garantieablauf. Für mein Gerät aber zu spät.
  4. GPU per Software deaktivieren — die NVIDIA Karte abschalten und nur mit der Intel HD Graphics in der CPU leben. Funktioniert, schiebt den endgültigen Tod aber nur auf. Irgendwann startet die Kiste gar nicht mehr.
  5. Backofen.

Backofen?

Klingt bekloppt. Ist es auch — etwas. Die NVIDIA GPU ist als BGA (Ball Grid Array) auf das Logicboard gelötet. Unter Hitze und Vibration brechen mit der Zeit einzelne Lötstellen. Die GPU verliert die Verbindung zum Board — Kernel Panic.

Wenn ich mir mein Gerät genauer anschaue, findet sich vorne links eine beachtliche Delle. Da ist das Teil draufgefallen und das war vermutlich der Anfang vom Ende.

Die Idee: Das Logicboard im Backofen auf eine Temperatur bringen, bei der das Lötzinn weich wird und die Verbindungen sich neu setzen — ein primitiver Reflow. Apple hat sich die Mühe gemacht, alle wichtigen Chips seitlich mit dem Board zu verkleben. Das hält die Chips an Ort und Stelle, während das Lot flüssig wird.

Schritt für Schritt

  1. Logicboard komplett ausbauen — iFixit hat gute Anleitungen dafür.
  2. Backofen auf 200 °C vorheizen. Ober-/Unterhitze, keine Umluft — die Vibrationen des Gebläses können das Board zerstören.
  3. Aus Alufolie kleine Füße formen und in die Bohrungen des Boards stecken. So liegt es nicht direkt auf dem Blech.
  4. Board rein, schwere Chips nach oben. Danach nicht mehr bewegen.
  5. 7 bis 8 Minuten backen.
  6. Ofen abschalten, Tür leicht öffnen, 15–20 Minuten langsam abkühlen lassen. Wenn man das Board mit der Hand greifen kann, ist es kühl genug.
  7. Zusammenbauen, Daumen drücken.

Die Kunststoffbuchsen auf dem Board halten 7 Minuten bei 200 °C aus — die müssen nicht abgedeckt werden.

Hat es funktioniert?

Ja. Überraschenderweise.

Aber — und das muss klar sein — diese Methode ist ein letzter Versuch. Die Erfolgsquote ist gering. Das Flussmittel in den Lötstellen verbrennt beim Erhitzen teilweise, daher funktioniert ein zweiter Durchgang fast nie. Wenn euer MacBook sowieso auf dem Weg in die Tonne ist: probiert es. Wenn ihr noch ernsthaft auf das Gerät angewiesen seid: lasst es.


Der Panic-Log

Für die Suchmaschinen und alle, die den gleichen Fehler haben — hier die relevanten Zeilen aus dem Kernel-Panic-Report:

*** Panic Report ***
panic(cpu 0 caller 0xffffff7f9320abad):
  "GPU Panic: [<None>] 3 3 7f 0 0 0 0 3 :
   NVRM[0/1:0:0]: Read Error 0x00610b94:
   CFG 0xffffffff 0xffffffff 0xffffffff,
   BAR0 0xd2000000 0xffffff912c33d000 0x0a5480a2, D0, P3/4"

System model name: MacBookPro6,2 (Mac-F22586C8)
Mac OS version:    15B42 (El Capitan 10.11.1)

Graphics: NVIDIA GeForce GT 330M, PCIe, 512 MB
Graphics: Intel HD Graphics, Built-In

Kernel Extensions in backtrace:
  com.apple.nvidia.classic.NVDAResmanTesla  10.0
  com.apple.nvidia.classic.NVDANV50HalTesla 10.0
  com.apple.driver.AppleMuxControl          3.11.33b1
  com.apple.iokit.IOGraphicsFamily          2.4.1

Der entscheidende Hinweis: NVRM[0/1:0:0]: Read Error mit CFG 0xffffffff — die CPU kann den Konfigurationsraum der GPU nicht mehr lesen. Die Verbindung ist weg.


Jetzt habe ich hier also so ein komisches MacBook. Der spannende Teil — auseinanderbauen und reparieren — ist erledigt. Was macht man nun damit?

Siehe auch: Parken an der Burg Blankenstein

Fragen? Einfach melden.

Temperatur und Luftfeuchtigkeit mit DHT22 am Raspberry Pi messen

Meine Wetterstation hatte aufgegeben. Wirklich interessiert haben mich aber eh nur Temperatur und Luftfeuchtigkeit draußen. Das sollte ein Raspberry Pi mit einem DHT22 für zwei Euro hinbekommen — und die Daten landen direkt in meinem Cacti.

Update März 2026 — Dieser Beitrag ist von 2014 und einer meiner ältesten hier im Blog. Die Grundidee — DHT22 an den GPIO, Werte per Cron einsammeln, per SNMP an Cacti liefern — funktioniert unverändert. Ich habe den Beitrag komplett überarbeitet und den Software-Teil auf Python aktualisiert. Die ursprünglich verwendete C-Bibliothek wiringPi wurde 2019 vom Autor offline genommen und lol_dht22 wird nicht mehr gepflegt. Der Ansatz selbst ist zeitlos.

Was du brauchst

  • Einen Raspberry Pi — egal welches Modell, solange GPIO-Pins vorhanden sind
  • Einen DHT22 / AM2302 Sensor (2–5 €)
  • Einen 4,7 kΩ Widerstand als Pull-up
  • Drei Kabel

Die Verkabelung ist simpel: VCC an 3,3 V (Pin 1), Data an GPIO 4 (Pin 7), GND an GND (Pin 6). Der 4,7 kΩ Widerstand kommt zwischen VCC und Data. Den handgezeichneten Schaltplan habe ich unten in der Bildergalerie.

Sensor auslesen — Python

Auf einem aktuellen Raspberry Pi OS brauchen wir die Adafruit CircuitPython DHT Bibliothek und libgpiod:

sudo apt install python3-pip libgpiod2
pip3 install adafruit-circuitpython-dht

Dann ein kleines Script /usr/local/bin/read_dht22.py:

#!/usr/bin/env python3
import adafruit_dht
import board
import sys

sensor = adafruit_dht.DHT22(board.D4)
try:
    print(f"{sensor.humidity:.1f}")
    print(f"{sensor.temperature:.1f}")
except RuntimeError:
    sys.exit(1)
finally:
    sensor.exit()

Ausführbar machen und testen:

chmod +x /usr/local/bin/read_dht22.py
/usr/local/bin/read_dht22.py
73.9
9.3

Erste Zeile Luftfeuchtigkeit, zweite Zeile Temperatur. Der DHT22 liefert nicht bei jedem Aufruf saubere Daten — manchmal kommt ein RuntimeError. Das ist normal bei diesem Sensor, deswegen der try/except und der Exit-Code. board.D4 entspricht GPIO 4, also Pin 7 auf dem Board.

Werte per Cron einsammeln

Per Cron-Job jede Minute:

* * * * * /var/scripts/getsensor.sh

Das Script /var/scripts/getsensor.sh:

#!/bin/bash
/usr/local/bin/read_dht22.py > /home/pi/both.txt 2>/dev/null

while [ ! -s "/home/pi/both.txt" ]; do
    sleep 5
    /usr/local/bin/read_dht22.py > /home/pi/both.txt 2>/dev/null
done

sed '2d' /home/pi/both.txt > /home/pi/humid.txt
sed '1d' /home/pi/both.txt > /home/pi/temp.txt

Wenn der Sensor beim ersten Versuch keine Daten liefert, probiert das Script alle fünf Sekunden erneut. Am Ende liegen Luftfeuchtigkeit und Temperatur in separaten Textdateien unter /home/pi/.

Ab in den Cacti — SNMP

Damit Cacti die Werte abfragen kann, brauchen wir SNMP auf dem Pi:

sudo apt install snmpd snmp

In der /etc/snmp/snmpd.conf zwei Pass-through OIDs anlegen. Wird eine dieser OIDs per SNMP abgefragt, führt der snmpd das zugehörige Script aus und liefert dessen Ausgabe als Antwort:

pass .1.3.6.1.2.1.25.1.8.1  /bin/sh  /usr/local/bin/humid
pass .1.3.6.1.2.1.25.1.8.2  /bin/sh  /usr/local/bin/temp

Die beiden Scripts müssen drei Zeilen ausgeben — die OID, den Datentyp und den Wert:

/usr/local/bin/temp:

#!/bin/bash
echo .1.3.6.1.2.1.25.1.8.2
echo gauge
cat /home/pi/temp.txt

/usr/local/bin/humid:

#!/bin/bash
echo .1.3.6.1.2.1.25.1.8.1
echo gauge
cat /home/pi/humid.txt

Test:

snmpget -v2c -c public localhost .1.3.6.1.2.1.25.1.8.1
iso.3.6.1.2.1.25.1.8.1 = Gauge32: 76

snmpget -v2c -c public localhost .1.3.6.1.2.1.25.1.8.2
iso.3.6.1.2.1.25.1.8.2 = Gauge32: 9

Damit lässt sich im Cacti ein Graph anlegen. Etwas von hinten durch die Brust ins Auge — aber es funktioniert seit über elf Jahren zuverlässig. Die Template-Exports für Cacti gibt es hier: cacti-temp.tar.gz


Hinweise

SNMP-Sicherheit — Im Beispiel steht public als Community-String und SNMPv2c. Für ein Heimnetz reicht das. In einem produktiven Umfeld sollte man SNMPv3 mit Authentifizierung verwenden und den Zugriff per Firewall auf den Cacti-Server beschränken.

Alternative zu Cacti — Wer kein Cacti hat: Grafana mit InfluxDB oder Prometheus wäre die modernere Alternative. Der SNMP-Weg funktioniert dort genauso, alternativ kann man die Werte auch direkt per Telegraf oder einen kleinen Python-Exporter einliefern.

Warum kein wiringPi mehr? — Gordon Henderson hat das wiringPi-Repository 2019 offline genommen. Es gibt Forks auf GitHub, die auf neueren Pi-Modellen funktionieren, aber offiziell wird die Bibliothek nicht mehr gepflegt. Für neue Projekte ist Python mit der Adafruit-Bibliothek der bessere Weg — weniger Kompilieraufwand, bessere Fehlerbehandlung und aktive Wartung.


Der Sensor da draußen

Der Sensor muss nach draußen, vor Wasser geschützt sein, aber nicht hermetisch versiegelt — sonst kann er keine Luftfeuchtigkeit messen.

Meine Lösung: Ein PVC-Rohr, den Sensor dort mit etwas Silikon eingeklebt, eine Seite mit Deckel verschlossen. So kann kein Wasser an den Sensor laufen, Luft kommt aber noch ran. Angebracht am Pfosten der Satellitenschüssel — dort oben steht die Luft selten, es kommt niemand ran und es fällt nicht auf.

Das Ding hängt dort seit 2014. Funktioniert.


Siehe auch: Raspberry Pi als Konsolenserver, Stromverbrauch messen mit Raspberry Pi, Eltako DSZ12E und Cacti

Fragen? Einfach melden.

Stromverbrauch messen mit Raspberry Pi, Eltako DSZ12E und Cacti

Im Keller hing ein alter Ferraris-Zähler mit Drehscheibe. Zählt brav für den Energieversorger, liefert aber keine Daten. Ich wollte den Stromverbrauch im Haus grafisch auswerten, am besten mit Cacti. Dafür braucht man einen Zähler mit S0-Schnittstelle.

Der Zähler

Mein Energieversorger wollte für einen digitalen Zähler Fantasiepreise. Also selbst kaufen. Die Wahl fiel auf den Eltako DSZ12E-3x80A, einen Drehstromzähler mit S0-Ausgang. 3 × 80 A reicht für den normalen Hausgebrauch locker. Kostenpunkt damals rund 75 Euro.

Wichtig: Dieser Zähler ersetzt nicht den offiziellen Zähler des Versorgers. Er wird dahinter eingebaut. Das darf nicht jeder machen. Wer nicht weiß ob er es darf, darf es nicht. Ein Elektriker braucht dafür eine halbe bis eine Stunde, mit Anfahrt kommt man auf 100 bis 150 Euro.

Zur Deutlichkeit: Bei 3×80 A reden wir über 400 V Drehstrom. Ein Fehlkontakt ist lebensgefährlich. Selbst einbauen ist keine Option, auch wenn es auf YouTube einfach aussieht. Wer ohne Elektrikerschein bastelt, riskiert nicht nur sich selbst, sondern auch den Versicherungsschutz im Haus. Nebenbei: Für die eigene Auswertung ist der Zähler prima, für Abrechnungszwecke wie WG oder Mieter gelten eichrechtliche Anforderungen, die man vorher klären sollte.

S0-Schnittstelle und Raspberry Pi

Die S0-Schnittstelle ist ein potentialfreier Impulskontakt. Pro verbrauchter Kilowattstunde gibt der Zähler eine bestimmte Anzahl Impulse aus, beim DSZ12E sind es 2000 Impulse pro kWh. Der Raspberry Pi zählt diese Impulse über einen GPIO-Pin.

Die Verkabelung ist simpel: S0-Ausgang des Zählers an einen GPIO-Pin und GND des Raspberry Pi. Ein Pullup-Widerstand sorgt dafür, dass der Pin sauber zwischen High und Low wechselt. Bei jedem Impuls wird ein Zähler hochgezählt und der aktuelle Verbrauch berechnet.

Sauberer: Optokoppler statt direkter GPIO-Anschluss

In der Praxis funktioniert der direkte Anschluss meistens, spezifikationsgerecht ist er aber nicht. Die S0-Schnittstelle ist in DIN 43864 für 27 V DC Nennspannung und 10 bis 27 mA Schleifenstrom definiert. Wer es sauber haben will, baut einen Optokoppler dazwischen, zum Beispiel einen PC817. Die S0-Leitung versorgt man mit 5 oder 12 V über einen Vorwiderstand, der Ausgang des Optokopplers schaltet galvanisch getrennt den GPIO-Pin. Vorteil: kein Potentialproblem, keine Spec-Verletzung, und die Flanken sind sauber genug, dass man auf Software-Entprellung verzichten kann.

Die Auswertung habe ich nach dieser Anleitung aufgebaut: Stromzähler mit S0-Schnittstelle vom Raspberry Pi auswerten (Johannes Weber). Ein Python-Script zählt die Impulse und stellt die Werte per SNMP bereit.

Cacti-Graphen

Cacti fragt den Raspberry Pi per SNMP ab und zeichnet die Graphen. Neben dem aktuellen Verbrauch in Watt lassen sich mit zusätzlichen SNMP-Abfragen auch Tagesverbrauch, Wochenverbrauch und Monatsverbrauch darstellen. Die Berechnung macht das Script auf dem Pi, Cacti muss nur die fertigen Werte abgreifen und zeichnen.

Das Ergebnis: Auf einen Blick sieht man wann die Waschmaschine lief, wann der Herd an war und wie hoch die Grundlast nachts ist. Verbrauchsspitzen fallen sofort auf.

Update 2026: was heute anders wäre

Der Beitrag ist von 2014, und zwölf Jahre sind in der Energiemesstechnik eine halbe Ewigkeit. Inzwischen läuft in Deutschland der Pflichtrollout für intelligente Messsysteme (iMSys) nach dem Messstellenbetriebsgesetz. Wer ein Smart-Meter-Gateway (SMGW) hat, bekommt die Daten ohnehin digital, und über die HAN-Schnittstelle (Controllable Local Systems) lassen sich Verbräuche direkt abholen. Ist der alte Ferraris-Zähler hingegen noch drin, ist ein IR-Lesekopf auf der D0-Schnittstelle (SML-Protokoll) der Weg der Wahl, gut gepflegt im Volkszähler-Projekt oder in Kombination mit Tasmota. Fertige WLAN-Messmodule wie das Shelly 3EM oder Pro 3EM liefern Drehstrommessung direkt per MQTT, ganz ohne GPIO-Basteln. Als Backend wäre heute eher Home Assistant mit dem Energy-Dashboard oder Grafana plus InfluxDB gesetzt, Cacti hat seinen Charme, aber die Zeit der Graphen mit RRDtool ist in der HomeLab-Ecke vorbei.

Siehe auch: Temperatur und Luftfeuchtigkeit mit DHT22 am Raspberry Pi messen

Fragen zum Aufbau? Einfach melden.

Notebook Akku def.

Das ist doch nicht zu glauben 🙁 Mein Notebook Akku ist im Eimer!

Für einen passenden neuen muss ich knapp 100/120€ auf den Tisch legen. Klar, irgendwann gibt ein Akku halt mal auf… Nur dieser hat besonders schnell aufgegeben. Nach knapp 2,5 Jahren ist er nun tot. Die letzten haben im Schnitt 3 – 4 Jahre bei mir gehalten. Meine Art mit den Notebook zu arbeiten ist dabei fast unverändert. Na ja, der Stromverbrauch ist denn noch nicht ohne, daher mache ich dem Akku mal keinen Vorwurf. Große CPU, viel Speicher, zwei Festplatten, 17″ (ja, ich renne mit so einem riesigen Schläptop herum).

 

[kernel@errorlap:~]$ acpiconf -i 0
Design capacity:        5200 mWh
Last full capacity:     2093 mWh
Technology:             primary (non-rechargeable)
Design voltage:         14800 mV
Capacity (warn):        0 mWh
Capacity (low):         0 mWh
Low/warn granularity:   100 mWh
Warn/full granularity:  0 mWh
Model number:           BAT0
Serial number:          123456789
Type:                   LiON
OEM info:               PTL
State:                  high 
Remaining capacity:     97%
Remaining time:         unknown
Present rate:           0 mW
Present voltage:        16403 mV

 

In diesem Sinne… Werde ich wohl mal einen Ersatzakku bestellen, oder gleich ein neues Notebook? Ach ich bin da noch etwas unschlüssig. Das Gerät selbst ist noch ganz gut, hat aber schon einiges geleistet…

Fragen? Einfach melden.

Raspberry Pi als FM-Radiosender mit PiFM

Kinder sind etwas Wunderbares, so auch meine beiden. Die Größere hört zum Einschlafen gerne ein Hörspiel, beim Spielen hören und tanzen beide zu Kindermusik. Klar haben sie eine kleine Kompaktanlage im Kinderzimmer. Aber Kinderhörspiele gibt es kaum noch auf Kassette — fast nur noch auf CD oder als MP3. Keine Ahnung wie es bei euren Kindern ist, bei uns leben CDs nicht sonderlich lange. Ich grille in der Woche 3 bis 4 Stück. Noch schlimmer: Die Lieblings-CD trifft nach 38 Minuten auf einen Kratzer und macht nur noch unverständlichen Lärm.

MPD als CD-Ersatz

Ich hatte noch einen Raspberry Pi herumliegen. Den zusammen mit dem Music Player Daemon (MPD) als Musikspieler nutzen — die gekauften MP3-Alben liegen eh auf dem Server und lassen sich per NFS mounten. WLAN ist im ganzen Haus, und wir Eltern steuern alles per Android-App. Das Projekt war in anderthalb Stunden erledigt, getestet und von den Kindern abgenommen.

Seitdem fristet der CD-Spieler ein ungenutztes Leben. Nur das Radio läuft hin und wieder am Abend. Radio… irgendwo hatte ich doch im Zusammenhang mit dem Raspberry Pi etwas zu FM-Radio gelesen.

PiFM — FM-Sender über GPIO

PiFM (mittlerweile weiterentwickelt als rpitx) nutzt den GPIO-Pin 4 des Raspberry Pi, um ein FM-Signal zu erzeugen. Eine ca. 15 cm lange Antenne — ein Stück Draht — reicht. Der Pi generiert per DMA ein Taktsignal auf dem GPIO, das direkt als FM-moduliertes HF-Signal abstrahlt. Kein zusätzlicher Sender-IC nötig.

Eine WAV-Datei auf 90,0 MHz senden:

sudo ./pifm musik.wav 90.0

Einen Web-Stream — zum Beispiel einen Kinderradiosender — per sox umwandeln und direkt an PiFM pipen:

sox -t mp3 http://stream-url -t wav -r 22050 -c 1 - | sudo ./pifm - 90.0

MPD kann auch streamen — so lässt sich die gesamte Musikbibliothek per FM ins Kinderzimmerradio schicken.

Verstärkerschaltung

Das reine GPIO-Signal ist schwach. Um es etwas zu verstärken und sauber zu filtern, habe ich eine kleine Schaltung gebaut — den handgezeichneten Schaltplan mit Bauteileliste findet ihr in den Bildern unten. Mit der Schaltung reicht das Signal für das ganze Haus inklusive Garten.

Oberwellen: der eigentliche Grund für den Filter

Der GPIO liefert kein sauberes Sinussignal, sondern ein Rechteck. Ein Rechteck hat neben der Grundfrequenz eine lange Reihe Oberwellen bei 2f, 3f, 4f und so weiter, und durch die DMA-getaktete Frequenzmodulation entstehen zusätzlich Splatter-Anteile im Nachbarkanal. Bei 90 MHz Grundfrequenz heißt das: 180 MHz, 270 MHz, 360 MHz und höher. Mindestens eine dieser Harmonischen liegt mit Sicherheit in einem Band, das belegt oder sicherheitskritisch ist. Ohne Tiefpass strahlt PiFM also nicht nur auf der gewählten UKW-Frequenz, sondern breitbandig quer durch VHF und UHF. Der Filter in der Verstärkerschaltung ist deshalb nicht Kür, sondern der einzige Grund, warum man keinen Flugfunk, Amateurfunk oder Rundfunk stört. Wer PiFM ohne Filter betreibt, wird im Zweifel nicht nur von der Bundesnetzagentur, sondern auch von jedem Amateurfunker im Umkreis sehr schnell gefunden.

Rechtliches

In Deutschland darf man im FM-Band senden — aber nur mit extrem geringer Leistung. Die Bundesnetzagentur erlaubt ohne Genehmigung Sendeanlagen mit wenigen Nanowatt, was in der Praxis etwa einen Meter Reichweite ergibt. Der Raspberry Pi mit Verstärkerschaltung überschreitet das deutlich. Dieses Projekt bleibt deshalb ein einmaliger Versuchsaufbau.

Schade eigentlich — der WDR-Kinderkanal MausLive (ehemals KiRaKa) ist nur per DAB+ oder Internet-Stream zu empfangen. Per PiFM könnte man den Stream als FM-Signal im Haus verteilen und die Kinder könnten überall mit einem einfachen Radio hören. Aber so ist die Rechtslage.

Update 2026: zeitgemäße Alternativen

Der Beitrag ist von 2014. Heute wäre mein Weg ein anderer: Bluetooth-Audio direkt ans Kinderzimmerradio (falls es Bluetooth kann) oder ein kleiner Multi-Room-Audio-Setup mit Snapcast, squeezelite oder einem fertigen Smart Speaker. DLNA/UPnP und AirPlay decken den Rest ab, alles legal und ohne Frequenz-Diskussion. rpitx gibt es übrigens immer noch, inzwischen mit deutlich mehr Modi (SSB, FSK, LoRa, sogar DVB-T), und ist als Experimentierplattform für die SDR-Ecke weiterhin spannend. Nur eben nichts, was man offen im Wohnzimmer laufen lassen sollte.


Bilder vom Projekt — Platine, Schaltplan mit Bauteileliste und das Ergebnis auf dem Radio:

Fragen? Einfach melden.

Samsung Galaxy S2: Überhitzung durch defekten BCM4330 und Mainboard-Tausch

Das ärgert mich jetzt. Es hat tatsächlich einige Zeit gedauert, bis ich mich überhaupt zu einem Smartphone habe hinreißen lassen. Damals fiel die Wahl auf das Samsung Galaxy S II. Es lief ein paar Jahre tadellos, vor allem mit CyanogenMod 11.

Das Problem

Irgendwann hielt der Akku nicht mehr den ganzen Tag. Es ging so schleichend, dass ich es zunächst nicht bemerkt habe. Als es dann massiv wurde, dachte ich natürlich zuerst an den Akku selbst, der hatte ja bereits zwei Jahre auf dem Rücken. Beim Laden wurde das Handy besonders warm, um nicht zu sagen heiß.

Also einen originalen Samsung-Akku über eBay besorgt. Leider änderte sich damit nichts. Dann habe ich gelesen, dass Dreck an der USB-Buchse zu Kriechströmen führen kann. Buchse gereinigt, nichts. Netzteil getauscht, nichts.

Die Fehlersuche

Also aufgeschraubt. Inzwischen verbrannte das Gerät selbst im abgeschalteten Zustand so viel Strom in Wärme, dass es trotz angeschlossenem Ladegerät nicht mehr reichte, den Akku zu laden. Ich wollte herausfinden, welches Bauteil die Hitze erzeugt.

Unter einer Schirmung mit der Aufschrift GT-I9100 #4 vermutete ich die Quelle zuerst. Es stellte sich aber heraus, dass es der IC auf der anderen Seite des Mainboards war: SWB-B42. Das ist der Broadcom BCM4330, zuständig für WLAN, Bluetooth und FM-Radio. Meine Hoffnung, dass nur die nahe am Mainboard verlötete CMOS-Batterie ein Problem hatte, war damit dahin.

Reparatur-Optionen

Den BCM4330 bekommt man für etwa 15 Dollar plus Porto. Mit drei Wochen Wartezeit und 30 Euro Einsatz wäre das machbar gewesen. Den alten IC mit Heißluft lösen, neuen auflöten. Viel Arbeit, und gemacht haben sollte man es auch schon mal.

Ich habe mich stattdessen für ein neues Mainboard entschieden. Neu lag ich bei 150 bis 200 Euro. Zu teuer. Aber auf eBay fand ich ein Galaxy S2 mit defektem Display, irgendjemand war wohl draufgetreten. 50 Euro. Gekauft, Mainboard getauscht.

Ergebnis

Es funktioniert. So blieb mir das Galaxy S II doch noch eine Weile erhalten.

Fragen? Einfach melden.

Pockethernet – Will haben Gerät!

Achtung, böser YouTube-Link!

Ich habe vor einiger Zeit ein „Will haben Gerät!“ gesehen… Bzw. den Prototyp eines solchen Gerätes. Zu dem Zeitpunkt wurde noch Geld für das Projekt gesammelt. Inzwischen ist die nötige Summe mehr als vorhanden und es geht seinen Weg… 

Das Teil nennt sich Pockethernet, ein Video gibt es unten und einen Link zum Projekt gibt es hier: http://pockethernet.com/

Klar wird es kaum mit einem guten Fluke Gerät mithalten können… Für viele kleine Tests scheint es aber mehr als ausreichend zu sein. Schaut einfach mal ins Video! Wer will es noch?

Fragen? Einfach melden.

Kabelbruch am Fujitsu Siemens Notebook

Irgendwo hat mein Notebook einen „Wackler oder Kabelbruch“ auf dem Weg zum Display. Fujitsu Siemens NH751… Ich habe das Thema einfach eine Zeit lang ignoriert. Löst natürlich nicht das Problem, ist mir klar.
Wie zu erwarten wurde es nicht besser sondern schlimmer. In der Zwischenzeit war es nicht mal mehr damit erledigt eine „funktionierende“ Kippstellung des Monitors zu finden. Also aufschrauben und nachschauen!

Es scheint wirklich ein Kabelbruch zu sein, irgendwo in der Nähe des rechten Scharniers. Gott ist das Notebook schlecht zu zerlegen. Da hat wohl jemand bei der Konstruktion nicht an Techniker gedacht 🙁

Ich habe 1 Stunde herum gefummelt, bevor ich den Kabelbruch gelötet hatte. Wie auch immer. Inzwischen ist es verlötet und es klappt wieder alles korrekt.

Es ärgert mich denn noch dass bei so vielen Geräten nicht darauf geachtet wird es am Ende reparieren zu können. Sollen wir denn wirklich alles wegwerfen?

 

 

Fragen? Einfach melden.

Western Digital Scorpio Black WDC WD7500BPKT-00PK4T0

Mein Notebook bietet glücklicherweise die Möglichkeit zwei Festplatten zu betreiben. Eine Platte ist eine SSD mit knapp 120GB für das System. Die andere habe ich heute gegen eine Western Digital Scorpio Black mit 750GB ausgetauscht. Hier liegt nun mein „home“.

Ich habe mich beim anlegen der Partitionen dagegen entschieden noch Platz für die Windows Spielepartition zu lassen. Ich habe einfach in den vergangenen Monate kaum noch Zeit zum Zocken gefunden. Irgendwas hatte einfach immer eine höhere Priorität. Nun ist also meine Homedir um 200GB größer und natürlich ganz brav mit luks verschlüsselt. Festplattenverschlüssellung mit Linux wwwwwööööööööööhhhhhhhhyyyyyyy.

In diesem Sinne… Gute Nacht!

luks-crypto-home Screenshot der Passsatz eingabe.

Fragen? Einfach melden.

USB-Surfstick O2 ZTE MF190 und Gentoo

Ich bin nur sehr selten an einem Ort, an welchem ich keine Internetverbindung nutzen kann. Noch seltener würde ich genau dann eine Internetverbindung benötigen. Wenn es dann aber so ist, dann benötige ich sie wirklich!

Nun komme ich in der letzten Zeit immer mal wieder an diese Stelle und ärgere mich. Oft ist zwar ein Kollege oder Bekannter in der Nähe, mit so einem feinen Android Mobiltelefon, nur hilft mir dieses beim Arbeiten auf einer SSH-Shell weniger. Ja, es geht aber wirkliches Arbeiten geht nicht… Zudem bin ich ein Mensch der seinen Windowmanager benutzt, sprich viele offene Fenster. Auf so einem kleinen Mobilding ist mir mehr als eine kurze E-Mail oder etwas Google klicker klacker einfach zu aufwändig.

Das Handy also als Modem mit dem Rechner verbinden? So selten wie ich es im Moment benötige, mich direkt 1 Jahr an einen 20€/Monat Tarif meines Anbieters zu binden? Ne, so geht das nicht….

Vor kurzem war ich nun im Blödmarkt unterwegs. Da lagen in der Grabbelkiste so 15 Euronen O2 Prepaid USB-Sticks.

Dem etwas überforderten Fachberater für die Dinger konnte ich mit etwas Mühe die Information entlocken, dass ich über dieses Angebot „echtes“ Internet erhalte. Damit ist gemeint, dass ich SSH-Sessions auf beliebigen Ports öffnen kann und auch mein IPv6 Tunnelbroker funktionieren sollte. ….Nebenbei, habt ihr im Blödmarkt mal gefragt ob ihr über was auch immer eine Verbindung zu einen IPv6 Tunnelbroker aufbauen könnt? Macht mal, ist lustig.

HTTP / SMTP / IMAP mit und ohne SSL/TLS alles kein Problem!

Mit der 5 Tage x 3,50€ = 17,50€ Sollte einem Test nichts im Wege stehen. Keine Grundgebühr oder sonstige laufenden Kosten… Ich brauche es nicht, ich zahle es nicht. Wenn ich also feststelle das ich es doch oft und gut nutze, so dass sich einer der Knebelverträge des Anbieters meines Vertrauens lohnen würde, dann kann ich das Teil wegwerfen und mich bewusst knebeln lassen. Anderweitig habe ich eine tolle Lösung für den Notfall!

Beim Kauf habe ich jetzt nicht darauf geachtet ob das Teil nun unter bzw. mit meinem Linux (Gentoo) zusammenarbeitet. Den Fachberater im Blödmarkt wollte ich es nun nicht noch fragen, er schien jetzt schon von mir genervt zu sein!

Hey, gut wie ich bin, bekomme ich das Teil schon zum rennen (Boar ist diese Selbstüberschätzung nicht wiederlich?)!

Da meine Frau etwas von: „Rausgeworfenes Geld…. Überflüssiges Spielzeug… und du sitzt eh viel zu viel vor dem Computer!“ murmelte…. _MUSS_ das Teil einfach Laufen.

Tut es nur so ~out of the box~ nicht! Dass hat man nun also davon, man kauft im Blödmarkt halt nichts. Vor allem nicht ohne Verstand, oder gerade deswegen? Wie auch immer, so haben ich es ans Laufen bekommen!

Ich habe hier also den O2 Surfstick MF190 von der Firma ZTE.

O2 ZTE MF190 HSUPA Stick

Stecke ich diesen einfach in mein System ein und schaue mir an was der Kernel dazu sagt, sehe ich folgendes:

$ dmesg
usb 2-1: new high speed USB device using ehci_hcd and address 3
usb 2-1: New USB device found, idVendor=19d2, idProduct=0083
usb 2-1: New USB device strings: Mfr=3, Product=2, SerialNumber=4
usb 2-1: Product: ZTE WCDMA Technologies MSM
usb 2-1: Manufacturer: ZTE,Incorporated
usb 2-1: SerialNumber: P671A2TMED010000
scsi7 : usb-storage 2-1:1.0
scsi 7:0:0:0: CD-ROM            ZTE      USB SCSI CD-ROM  2.31 PQ: 0 ANSI: 2
sr1: scsi-1 drive
sr 7:0:0:0: Attached scsi CD-ROM sr1
sr 7:0:0:0: Attached scsi generic sg2 type 5

Der Stick wird also als USB-CDROM Laufwerk (hier liegt die Software für die Windows User) und USB-Festplatte (sofern eine MicroSD-Karte eingelegt ist, wäre es diese) erkannt.

Mal schauen was ein lsusb sagt:

$ lsusb
Bus 002 Device 004: ID 19d2:0083 ONDA Communication S.p.A

19d2 steht für den Hersteller und 0083 für das Gerät selbst. Google sagt 0083 ist der Stick aber im Modus (ich nenne es mal) Datenlaufwerk. Ich will aber Modem 🙂 Hierzu sagt Google man muss ein paar bestimmte Kommandos schicken und schon wechselt der USB-Stick seinen Modus. Findige Leute haben sich da schon einen Kopf zu gemacht und das Programm: usb_modeswitch geschrieben. Also soll emerge mal loslegen:

$ emerge usb_modeswitch

Solange er rechnet könnte ich meinen Kernel ja schon mal davon überzeugen das Gerät zu „ignorieren“. Dazu füge ich in die Datei: /usr/src/linux/drivers/usb/storage/unusual_devs.h folgende Zeilen ein:

UNUSUAL_DEV(  0x19d2, 0x0117, 0x0000, 0x0000,
"ZTE Sinnlos",
"USB UMTS Sinnlos",
US_SC_DEVICE, US_PR_DEVICE, NULL,
US_FL_IGNORE_DEVICE),

Damit Geräte dieser Art überhaupt funktionieren können (und ich nach der Änderung in unusual_devs.h ja eh neu kompilieren muss) sollte die Kernelkonfiguration wie folgt angepasst werden:

Device Drivers ->
USB support  --->
<M> OHCI HCD support (If not use Intel or VIA chipset)
<M> UHCI HCD (most Intel and VIA) support (If use Intel or VIA chipset)
<M> USB Serial Converter support  --->
[*] USB Generic Serial Driver
<M> USB driver for GSM and CDMA modems
Network device support  --->
<*> PPP (point-to-point protocol) support
<*> PPP support for async serial ports

Inzwischen ist usb_modeswitch fertig. Für meinen Stick muss ich leider noch etwas Handarbeit leisten. Denn in der Datei /lib/udev/rules.d/40-usb_modeswitch.rules müssen noch folgende Zeilen hinzugefügt werden:

# ZTE MF190 (Variant)
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0117", RUN+="usb_modeswitch '%b/%k'"

Damit die neue Regel zur Anwendung kommen noch schnell ein:

$ udevadm control --reload-rules

Jetzt sollte es beim Einstecken vom Stick schon anders aussehen….

$ dmesg
usb 2-1: new high speed USB device using ehci_hcd and address 4
usb 2-1: New USB device found, idVendor=19d2, idProduct=0117
usb 2-1: New USB device strings: Mfr=3, Product=2, SerialNumber=4
usb 2-1: Product: ZTE WCDMA Technologies MSM
usb 2-1: Manufacturer: ZTE,Incorporated
usb 2-1: SerialNumber: P671A2TMED010000
usb-storage 2-1:1.0: device ignored
usb-storage 2-1:1.1: device ignored
usb-storage 2-1:1.2: device ignored
usb-storage 2-1:1.3: device ignored
usbcore: registered new interface driver usbserial
USB Serial support registered for generic
usbcore: registered new interface driver usbserial_generic
usbserial: USB Serial Driver core
USB Serial support registered for GSM modem (1-port)
option 2-1:1.0: GSM modem (1-port) converter detected
usb 2-1: GSM modem (1-port) converter now attached to ttyUSB0
option 2-1:1.1: GSM modem (1-port) converter detected
usb 2-1: GSM modem (1-port) converter now attached to ttyUSB1
option 2-1:1.2: GSM modem (1-port) converter detected
usb 2-1: GSM modem (1-port) converter now attached to ttyUSB2
usbcore: registered new interface driver option
option: v0.7.2:USB Driver for GSM modems

Wohooo ein GSM Modem. Was sagt lsusb?

$ lsusb
Bus 002 Device 004: ID 19d2:0117 ONDA Communication S.p.A.

OK, der Stick wird nun also als Modem erkannt, die Datenlaufwerke werden ignoriert und ich könnte mich ja mal um eine Interneteinwahl kümmern, oder? Nötig ist dafür ppp und (weil es so schön einfach ist) wvdial. Emerge muss das wieder für mich erledigen:

$ emerge ppp wvdial

Nach kurzer Zeit ist er fertig. Nun lege ich mal das ppp Device an:

$ mknod /dev/ppp c 108 0

*umschau* ich habe ja so ein paar Tests hinter mir und Scripte können da knallhart sein. Wenn man denen sagt: „Probiere mal bis geht…“ Dann tun die das auch wenn sie 100 mal die falsche PIN eingeben. Man kann lange suchen bis man darauf kommt die PUK einzugeben. SEHR lange. Ich habe also die PIN-Eingabe abgeschaltet!


wvdial ist schnell konfiguriert. Meine Konfiguration für O2 schaut so aus:

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 +FCLASS=0
Modem Type = Analog Modem
Baud = 460800
New PPPD = yes
Modem = /dev/ttyUSB2
ISDN = 0

[Dialer pin]

[Dialer o2]
Modem = /dev/ttyUSB2
Dial Command = ATD
Carrier Check = no
Phone = *99#
Password = guest
Username = guest
Stupid Mode = 1
Init3 = AT+ZSNT=0,0,2, AT+ZOPRT=5
Init4 = AT+CGDCONT=1,"IP","pinternet.interkom.de"
Dial Attempts = 2

Stecke ich nun meinen (mit abgeschalteter PIN-Eingabe) Surfstick ins Notebook beginnt er rot zu leuchten. Ist der Stick betriebsbereit und hat Netz beginnt er grün zu leuchten 🙂 Einfach, oder?

ZTE MF190 HSUPA USB surfstick with SIM lock
ZTE MF190 USB surfstick after SIM unlock

Die Einwahl funktioniert nun recht einfach mit wvdial:

$ wvdial o2
--> WvDial: Internet dialer version 1.61
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 +FCLASS=0
OK
--> Sending: AT+ZOPRT=5
AT+ZOPRT=5
OK
--> Sending: AT+CGDCONT=1,"IP","pinternet.interkom.de"
AT+CGDCONT=1,"IP","pinternet.interkom.de"
OK
--> Modem initialized.
--> Sending: ATD*99#
--> Waiting for carrier.
ATD*99#
CONNECT 7200000
--> Carrier detected.  Starting PPP immediately.
--> Starting pppd at Tue Mar  8 20:35:06 2011
--> Pid of pppd: 22068
--> Using interface ppp0
--> local  IP address 10.151.95.132
--> remote IP address 10.64.64.64
--> primary   DNS address 193.189.244.225
--> secondary DNS address 193.189.244.206
Mobile network connection established via surfstick

Nun sollte man auch schon online sein. Ein kurzer Blick auf die Interfacekonfiguration zeigt:

$ ifconfig
lo        Protokoll:Lokale Schleife  
inet Adresse:127.0.0.1  Maske:255.0.0.0
inet6 Adresse: ::1/128 Gültigkeitsbereich:Maschine
UP LOOPBACK RUNNING  MTU:16436  Metric:1
RX packets:1030 errors:0 dropped:0 overruns:0 frame:0
TX packets:1030 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:0
RX bytes:83580 (81.6 KiB)  TX bytes:83580 (81.6 KiB)

ppp0      Protokoll:Punkt-zu-Punkt Verbindung  
inet Adresse:10.151.95.132  P-z-P:10.64.64.64  Maske:255.255.255.255
UP PUNKTZUPUNKT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
RX packets:8360 errors:0 dropped:0 overruns:0 frame:0
TX packets:9926 errors:0 dropped:34 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:3
RX bytes:2446573 (2.3 MiB)  TX bytes:5945120 (5.6 MiB)

sixxs     Protokoll:UNSPEC  Hardware Adresse 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
inet6 Adresse: 2a01:198:200:a79::2/64 Gültigkeitsbereich:Global
inet6 Adresse: fe80::98:200:a79:2/64 Gültigkeitsbereich:Verbindung
UP PUNKTZUPUNKT RUNNING NOARP MULTICAST  MTU:1280  Metric:1
RX packets:1007 errors:0 dropped:0 overruns:0 frame:0
TX packets:973 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:500
RX bytes:880413 (859.7 KiB)  TX bytes:234147 (228.6 KiB)
Mobile internet connection active on Gentoo Linux

Wie zu erkennen ist steht auch die Verbindung zu meinem Tunnelbroker Sixxs. Somit ist mein Notebook auch per IPv6 unterwegs 🙂

Also, viel Spaß beim Surfen.


*Update*

Wer >>hier<< nachliest wird sehen, dass man den Flashdrive-Modus auch komplett deaktivieren kann.

Man kann hier zwei Wege gehen das zu tun:

1. Einmalig das ganze im Int3 mitgeben:

Init3 = AT+ZCDRUN=9, AT+ZSNT=0,0,2, AT+ZOPRT=5

2. Minicom.

« Ältere Beiträge Neuere Beiträge »

© 2026 -=Kernel-Error=-RSS

Theme von Anders NorénHoch ↑