Sonntag, 10. August 2008

HOWTO_ O2 DSL Surf & Phone-Router mit sipgate

Der O2 DSL Surf & Phone-Router ist für die alleinige Benutzung der O2-Rufnummern vorkonfiguriert. Dabei werden die 4 zugewiesenen Rufnummern auf die SIP-Konfigurationsplätz 1 bis vier gelegt, die Verbindung zum SIPserver wird über eine zweite PPPoE-Session hergestellt. Umkonfigurieren lässt sich jedoch nichts.

Allerdings gibt es eine Möglichkeit, doch noch alternative SIP-Provider wie etwa sipgate einzurichten und auch zu verwenden.

Zunächst muss man sich dazu wie gewohnt auf dem Router einloggen, per default ist das durch Aufrufen des Links im Browser und Eingabe des Passworts erledigt. Anschließend kann der VoIP-Wizard unter dem URL aufgerufen werden. Die Plätze 5 bis 10 können frei vergeben werden. Sowohl für die Rufnummer als auch für den Benutzernamen ist die sipgate-User-ID einzutragen, als Server und bei Passwort das entsprechende Passwort einzutragen.

Nun versucht der Router jedoch, die Verbindung zu sipgate über die zweite PPPoE-Session aufzubauen. Um das umzustellen, muss man sich per Telnet auf den Router einloggen:

Benutzername: admin
Passwort: <Router-Passwort>

ras> voice config signal index 5
ras> voice config signal setport 5 0
ras> voice config signal portselectactive 5 1
port select active on
ras> voice config signal save 5

Das war's schon.

Mit dem Firmwareupdate V3.40(AOF.8)D0 | 21.11.2011 wurden die Einstellungsmöglichkeiten über das Webfrontend eingeschränkt. Daher müssen nun zusätzlich diverse Serveradressen sowie Benutzername und Passwort per Telnet eingegeben werden:

ras> voice config signal index 5
ras> voice config signal serveraddress 5
ras> voice config signal registeraddress 5
ras> voice config signal domain 5
ras> voice config signal userid 5 <sipgate User-ID>
ras> voice config signal password 5 <SIP-Passwort>
ras> voice config signal save 5

Freitag, 25. Januar 2008

HOWTO_ Backup your IMAP mail accounts

I just thought about what might happen if accidentally a crash or whatever will cause all my hundreds of personal E-Mail including logins, subscriptions, personal notes, etc to disappear? After years of fine service I prefer to have a backup of all this stuff. This is how I achieved it.

Backup user

First step is to create a user for the sole purpose of backing up files. You do not need it, however it is advised to use such one which has generally limited and some special permissions regarding reading passwords etc.
Go to the Control Panel, click User Accounts, and create a new account (I named it backup) with Limited permissions (that is it belongs solely to the group Users). One could add it to the group Backup Operators, however as I am not running any system backup, the limited rights of the Users group should be fine.
Remember to set a secure password of at least 10 characters, including capital and small letters, numbers and special characters (,:_+-).

Note: Perform the following steps as an Administrator unless advised otherwise!

Install IMAPSize

Using the freeware IMAPSize (version as of now is 0.3.6), your backup is just some clicks away. Download and install/unzip to a directory of your choice, presumably something like C:\Program Files\IMAPSize.
Change to that directory and create a new text file. Rename it to imapsize.log. Mark that file and the configuration imapsize.xml, right click, open Properties and change to tab Security. Now remove all users and groups from the list. Some permissions might be inherited, so you have to uncheck the Inherit option in the Advanced dialogue. Now add the backup user created in the first step, and additionally allow him to Modify and Write these two files.

Create backup directory

Now create a backup directory. It should be always accessible when performing backups (more on that later), so when using automation, only internal hard drives, internal mounted flash memory or an always-on file server comes to my mind. For security reasons the file system should allow you to set explicit permissions. I am using the local hard drive which is formatted with NTFS.
Let's say you choose D:\backup\mail. Create that directory, right click backup, open the Properties dialogue, switch to the Security tab, remove all users and groups from the list and add the backup user. Allow him Full control.

Setup IMAPSize

Start IMAPSize as the backup user. You can either login as that user or start IMAPSize in his context via StartMenu > Run.. using the following command:
runas /USER:backup "C:\Program Files\IMAPSize\imapsize.exe"
Cancel the dialogue for creating a new account. Open View > Options..., change to tab Misc and set the Root Backup Directory to the backup directory you created in the preceding step (e.g. D:\backup\mail).

Switch to tab Accounts and create one for each E-Mail account you want to backup. You can choose whatever name you want to, however using the full E-Mail address is the best choice for easy overview. Choose no spam handler and save your E-Mail password (check Save it). The passwords will be stored in plain text in the configuration file imapsize.xml, and that's why it is only accessible by the backup user!

Initial backup

To allow automatic and incremental backups, each account has to be manually backed up a first time. Perform the following steps for each account.
  1. Select the account from the drop down list in the upper left.
  2. Click Account backup (CTRL+B).
  3. Check all folders you want to back up.
  4. Press Save Folders to use that setting for future backups.
  5. Press Backup to start the process. You will be notified by a dialogue when completed.

Regular incremental backup

IMAPSize allows a simple command line usage. I wrote the following batch script for automation and placed it as autobackup.cmd in the IMAPSize program folder. Remove all permissions and add the user backup as stated above.
:: IMAPSize account names to backup

ECHO Starting IMAP account backup...
FOR /F "usebackq delims== tokens=2" %%A IN (`SET IMAP_ACCOUNT_NAME_`) DO (
ECHO * Backing up account %%A...
"%~dp0imapsize.exe" -backup -account=%%A
ECHO Backup finished.
ECHO Full backup log available in file %~dp0imapsize.log.
Open the task scheduler to setup a regular backup. Open it via Start > Programs > Accessories > System Tools > Scheduled Tasks. Double click Add Scheduled Task, click Next, Browse to the script file autobackup.cmd and select it. Now you can select a name like "Daily IMAP backup" and check Daily. Click Next and choose a time (should be a time when you your PC is online nearly every day). Click Next and set backup as the user. Type in twice the according password. Click Next and then Finish.

Increase security

To increase security, you also have to change to owner of the files you changed the permissions of. First, you have to add the backup user to the Administrators group. Open User Accounts in the Control Panel, click Change an account, select the user backup, click change the account type, and switch it to Computer Administrator.
Now log in with backup, browse to the program directory of IMAPSize, select the files imapsize.xml, imapsize.log and autobackup.cmd, right click and open Properties, change to Security tab, click the Advanced button, change to the Owner tab, select the backup user and apply changes.
Do the same with the backup folder, but additionally check Replace owner on subcontainers and objects.

Logout and login with administrator, and switch the backup user back to the Limited account. Now you're done!

Sonntag, 6. Januar 2008

HOWTO_ Ringtones for Grandstream BT-101

Grandstream's VoIP-Phone BT-101 allows up to 192 kBytes of custom ringtones, divided into a maximum of three 64 kByte blocks. As it is using the ULAW compression, one block can be up to 8 seconds long, which allows the following ringtone combination:
  • 3 ringtones, each up 8 seconds long
  • 1 ringtone with up to 8 sec, 1 ringtone with up to 16 sec
  • 1 ringtone with up to 24 seconds
Grandstream supports two ringtone generation tools, one sox based for Linux and Solaris, and another one for Windows. I first tried the Windows tool, but you have to provide 16 bit, 8kHz mono WAV files, otherwise it fails with error. Additionally, sound quality was more than poor.
So I fell back to the Linux tool, for which I first had to install the distribution specific sox (apt-get install sox under Debian). Then I created a 16-bit, 44kHz stereo ringtone with 3,5 seconds, copied the file to the tool directory and typed the following command:
./sox.linux ring.wav ring.ring

Upload to phone
At boottime the phone connects to the configured TFTP update server and looks for updates - including ringtones. The custom ringtones have to be named ring1.bin, ring2.bin and ring3.bin. It first tries to download ring1.bin and installs it if found. Depending on that ringtone's length, it will continue looking for tone 2 and 3.
I renamed ring.ring to ring1.bin and copied it into an empty directory (I could also use ring3.bin, but I wanted to overwrite the first ringtone, the other one's were alright). I configured my TFTP-Server Pumpkin to use that directory, started it, reconfigured the BT-101 to use my local PC as TFTP-Server and rebooted the phone. The ringtone was immediately installed and I could selected it using the phone's menu.

Mittwoch, 29. August 2007

HOWTO_ XML-Editor in Eclipse installieren

Funktioniert leider nicht...
Nach mehrfachen Anlaufschwierigkeiten stelle ich jetzt hier eine Kurzanleitung ins Netz, damit auch ich endlich einen Plan habe, wie ich schnell und möglichst unkompliziert den XML-Editor in Eclipse installiert bekomme.

Update-Sites anlegen

Über Help > Software Updates > Find and install... öffnet man den "Install/Update Manager" und wählt Search for new features to install. Dort ergänzt man die drei folgenden Remote sites:
  • Eclipse WTP
  • Eclipse EMF
  • Eclipse GEF
Mit Finish geht es weiter.

Benötigte Pakete auswählen

Am einfachsten lassen sich die Abhängigkeiten der Reihe nach auflösen. Eine Übersicht über momentan fehlende Pakete liefert der Button Error Details....
  • Eclipse WTP/Web Tools Platform (WTP)/Eclipse XML Editors and Tools 2.0.0, benötigt
    • Eclipse WTP/Enabling Features/WST Common UI 2.0.0
    • Eclipse EMF/EMF SDK/Eclipse Modeling Framework (EMF) - org.eclipse.emf.common 2.3.0
    • Eclipse EMF/EMF SDK/Eclipse Modeling Framework (EMF) - org.eclipse.emf.ecore 2.3.0
    • Eclipse EMF/EMF SDK/Eclipse Modeling Framework (EMF) - org.eclipse.emf.ecore.edit 2.3.0, benötigt
      • Eclipse EMF/EMF SDK/Eclipse Modeling Framework (EMF) - org.eclipse.emf.edit 2.3.0
    • Eclipse EMF/EMF SDK/Eclipse Modeling Framework (EMF) - org.eclipse.emf.edit.ui 2.3.0, benötigt
      • Eclipse EMF/EMF SDK/Eclipse Modeling Framework (EMF) - org.eclipse.emf.common.ui 2.3.0
    • Eclipse EMF/EMF SDK/XML Schema Infoset Model (XSD) - org.eclipse.xsd 2.3.0
    • Eclipse EMF/EMF SDK/XML Schema Infoset Model (XSD) - org.eclipse.xsd.edit 2.3.0
    • Eclipse GEF/R3.3/Graphical Editing Framework 3.3.0
Und nun nur noch installieren - und das dauert eine Weile...

Samstag, 23. Juni 2007

HOWTO_ Entwickeln einer ersten qooxdoo-Applikation

Die Schritte, um eine erste qooxdoo-Applikation zu entwickeln, sind ein wenig komplex. Insbesondere, da die Dokumentation zwar offensichtlich umfangreich ist, mir aber nicht auf die Schnelle klar wurde, was ich nun genau zu tun habe.

Schritt 1 - JSEclipse-Plugin installieren

Die in meinen Augen beste IDE ist nach wie vor Eclipse, da sie nicht nur auf allen Systemen - insbesondere Mac OS X und Windows XP - läuft, sondern auch noch kostenlos ist und für die unterschiedlichsten Sprachen wie Java, PHP, C++ und eben JavaScript verwendet werden kann.
Nach meinen Recherchen ist wohl JSEclipse von Adobe Labs das momentan beste Plugin für erweitere JavaScript-Entwicklung mit Eclipse.

Die Installation ist denkbar einfach: Eclipse als Administrator starten, zu Help > Software Updates > Find and Install... durchklicken und Search for new features to install auswählen. Dann die neue Remote Site JSEclipse from Adobe Labs mit der URL anlegen, Häkchen davor setzen und Finish wählen. Anschließend wird die neueste JSEclipse-Version zur Installation angeboten.

Schritt 2 - Compilierungsumgebung installieren

Laut der Anforderungen muss unter Mac OS X und unter Windows eine entsprechende Umgebung einspielt werden. Da sich diese ggfls. ändern können, verweise ich hier nur auf das jeweils aktuellste Manual.

Schritt 3 - qooxdoo installieren

Auf der Downloadseite das SDK herunterladen und in das Zielverzeichnis, etwa C:\Programme\Entwicklung\qooxdoo entpacken. Dieses Verzeichnis kann später mit einer neueren qooxdoo-Version upgedated werden; das eigentlich Projekt landet woanders.
Auf der Konsole (unter Windows cygwin benutzen) in das Verzeichnis frontend/framework wechseln, mit mkdir .cache das Cacheverzeichnis anlegen. Dieses Verzeichnis muss nun noch Schreibrechte für den Standardbenutzer erhalten, etwa mit chmod 777 .cache oder über den Eingenschaften-Dialog von Windows.

Schritt 4 - Eclipse Projekt anlegen

Es wird ein Standard-Projekt angelegt, etwa im Workspace-Verzeichnis (default) oder anderswo auf der lokalen Festplatte.
Die Datei qooxdoo-0.7-skeleton.tar.gz aus <qooxdoo-Installationsverzeichnis>/frontend/application wird nun in ein Verzeichnis entpackt. Dieses sollte weder im qooxdoo-Installationsverzeichnis noch im Eclipse-Projekt liegen, denn hier landen die eigentlichen Dateien während der Entwicklung. Daher am Besten einen Ort verwenden, wo es täglich gesichert wird; oder gleich mit einer Versionsverwaltung wie Subversion (SVN) verwalten.
Im Projekt einen neuen Ordner anlegen, der auf das class-Verzeichnis des Skeleton verweist.

Schritt 5 - Makefile anpassen

Das Makefile muss nun noch an die qooxdoo-Installation angepasst werden. Zwei Variablen sind unbedingt zu setzen:
QOOXDOO_PATH wird beim Compilieren verwendet und benötigt den Pfad zur qooxdoo-Installation im Dateisystem. Dieser kann entweder relativ zum Makefile sein, oder absolut. In Cygwin muss bei einem absoluten Pfad mit /cygdrive/c/ das Laufwerk (in diesem Fall C:) angegeben werden.
QOOXDOO_URI verweist auf die qooxdoo-Libraries, wie sie der Browser beim Anzeigen der Applikation benötigt. Auch hier kann wieder ein relativer oder absoluter Pfad angegeben werden, beispielsweise oder /qooxdoo oder ../qooxdoo. Eine Besonderheit gilt beim Öffnen vom Dateisystem unter Windows, also über file://-Notation, wenn qooxdoo auf einem anderen Laufwerk liegt als die Applikation. In diesem Falle muss als URI file://C:/Program%20Files/Entwicklung/qooxdoo bzw der entsprechende Pfad angegeben werden. Ältere Firefox-Versionen benötigen file:///, also drei Slashes.

Schritt 6 - Compilieren

In das Verzeichnis wechseln, in welchem die Datei Makefile liegt und make eingeben.
Anschließend kann im Browser die Datei index.html aus dem source-Verzeichnis angezeigt werden. Sie sollte einen klickbaren Button mit einem Bild und einem Tooltip anzeigen.

Mittwoch, 30. Mai 2007

HOWTO_ Vorlage mit Impress erstellen

Nachdem ich mehrmals beim Erstellen einer eigenen Präsentationsvorlage mit Impress gescheitert bin oder am Ende auf eine fertige Vorlage mit vorsichtigen Änderungen zurückgreifen musste, stelle ich jetzt eine schnelle Anleitung ins Netz. Etliche Bugs machen einem zusätzlich zur wenig intuitiven und dazu faktisch nicht dokumentierten Vorlagenerstellung das Leben schwer.

1. Leere Präsentation erstellen

Unbedingt muss im ersten Schritt mit einer ganz leeren Präsentation begonnen werden. Dazu im Präsentations-Assistenten "Leere Präsentation" auswählen und auf "Fertig stellen" klicken. Das Layout muss auf "Leere Folie" gesetzt werden.

Achtung: Voreilige Einstellungen in der Vorlage können diese unbrauchbar machen - ein Rückgängigmachen ist oftmals nicht möglich! Daher zusätzlich jetzt noch eine zweite, neue Präsentation erstellen. In dieser wird mit dem neuen Design ausgiebig experimentiert, bevor es endgültig in die Vorlage übernommen wird.

2. Masterseiten anlegen

Über "Ansicht" > "Master" > "Folienmaster" wechselt man in die Masteransicht. Hier werden die eigentlichen Folienvorlagen bearbeitet. Im Folienfenster wird eine Standardfolie angezeigt, dies ist die primäre Masterfolie. Es können mehrere Master erstellt und innerhalb einer Präsentation verwendet werden. Meist reichen zwei, ein Titel- und ein Standardmaster.

Anschließend wird die Masteransicht geschlossen (In der Master-Symbolleiste oder über "Ansicht" > "Normal"), und für jeden Master eine leere Folie erstellt. Jede Folie mit rechts anklicken, "Foliendesign" wählen und den entsprechenden Master wählen. Die erste Folien bekommt den ersten Master, die zweite Folie den zweiten etc.

Achtung: Masterfolien können nicht umsortiert werden! Die spätere Verwendung innerhalb einer Präsentation ist zwar beliebig, aber eine vernünftige Reihenfolge bei der späteren Auswahl ist doch ganz nett - nicht dass der Titelmaster am Ende auftaucht!

Achtung: Die Folien können frei benannt werden, es dürfen jedoch keine Leerzeichen oder Underscores "_" verwendet werden! Alles, was dahinter folgt, wird nach Speicherung und erneutem Öffnen gelöscht, aus "Vorlage 1" und "Vorlage 2" ergibt sich für beide Master "Vorlage" - dadurch kann nur noch der erste ausgewählt werden. Auch bei der Umbenennung werden nur noch beide gleichzeitig umbenannt.

Achtung: Es muss für jeden Master eine Folie existieren! Andernfalls lassen sich die Vorlagen der entsprechenden Masterseiten nicht verändern, und zudem werden die nicht verwendeten Master beim Speichern und Schließen automatisch gelöscht!

3. Formatvorlagen anpassen

Formatvorlagen, genauer "Präsentationsobjektvorlagen", gelten immer für genau einen Master. Über "F11" oder "Format" > "Formatvorlagen" bekommt man das Formatvorlagenfenster.
Jeder Master wird ausgewählt, und dann werden alle relevanten Objektvorlagen angepasst. Verwendung finden eigentlich nur "Gliederung X", "Hintergrundobjekte" und "Titel". Wenn man bei einer Gliederungsvorlage im Reiter "Optionen"
die Ebene auf "1-9" auswählt, werden die Änderungen für alle 9 Gliederungsvorlagen gleichzeitig vorgenommen. Dies ist nützlich, um einheitliche Bullets oder Schriftart einzustellen.

Achtung: Weder im Master noch auf einer Folie darf zu diesem Zeitpunkt eine Änderung vorgenommen worden sein. Andernfalls kann oftmals ein Text nicht mehr umformatiert werden oder Änderungen an der Vorlage wirken sich nicht mehr aus!

Achtung: Wenn keine Folie für den ausgewählten Master existiert, verändert man in diesem Schritt die Objektvorlagen des letzten zuvor verwendeten Masters! Dies zeigt sich daran, dass Änderungen sich nicht auf den aktuellen Master auswirken.

4. Hintergrund anpassen

Für jeden Master kann jetzt der Hintergrund beliebig angepasst werden, etwa Kästchen und Linien ziehen, Bilder einfügen etc.
Die Bereiche für Titel, Datum etc. sind fest vorgegeben und lassen sich nicht löschen. Größenänderung und Position sind selbstverständlich möglich, Text- und Absatzformatierungen sollten im vorigen Schritt über die Vorlagen vorgenommen worden sein.

Besondere Formatierungen haben Fußzeilenbereich (Zentriert) und Foliennummernbereich (Rechtsbündig), dies lässt sich nur spezifisch einstellen. Ebenso die Textausrichtung in den Bereichen.
Dazu klickt man in den Bereich hinein, und markiert gegebenfalls den Text. Im Kontextmenü sollte nun "Text..." erscheinen. Im Reiter "Text" lässt sich dort die Textverankerung anpassen, gewünscht ist meist links oben.

Achtung: Ist eine Folie bei diesem Schritt nicht leer, so werden Formatierungsänderungen im Master nicht übernommen!

5. Feldbefehle anpassen

Feldbefehle sorgen für Datum, Nummerierung und Fußzeile. Welche dieser drei Bereiche angezeigt wird, lässt sich für jeden Master getrennt unter "Einfügen" > "Seitenzahl..." sowie "Einfügen" > "Datum und Uhrzeit..." einstellen. Beide Menüpunkte führen zum gleichen Dialog, der nicht etwa einfügt, sondern die Einstellungen ändert. Sollte also unter "Format" gehören.
Wie auch immer, im aufpoppenden Dialog "Kopf- und Fußzeile" kann man nun für den aktuellen Master einstellen, welche der drei Bereiche auf einer Folie auftauchen und mit welchem Wert. Das Format des Datums geht übrigens beim Speichern der Vorlage verloren. In jedem Fall müssen die Einstellungen mit "Übernehmen" gespeichert werden. Masterübergreifende Einstellungen können mit "Für alle übernehmen" gesetzt werden.

6. Folienlayout setzen

Nun kann die Masteransicht endgültig geschlossen werden. Jetzt kann für eine nette Vorbelegung der Folien gesorgt werden, gegebenenfalls können noch weitere eingefügt werden. Es muss aber darauf geachtet werden, dass jeder Master mindestens ein Mal Verwendung findet, da er sonst beim Speichern der Vorlage gelöscht wird! Jede Folie bekommt nun noch das passende Layout, der Titel etwa "Nur Titel".

7. Vorlage speichern

Jetzt ist die Vorlage fertig und kann als Präsentationsvorlage *.otp gespeichert werden. Wenn man sie gleich im eingestellten Vorlagenverzeichnis ablegt ("Extras" > "Optionen...", und dann unter "" > "Pfade" > "Dokumentvorlagen"), und zwar im Unterordner "Präsentationen", taucht diese Vorlage auch netterweise direkt im Präsentations-Assistenten auf.

Sonntag, 25. März 2007

HOWTO_ Swap Motherboard under Windows

Taken from

I've seen a few of these recently. "Help me! How do I swap out a board and not have to reinstall Windows?"

So here's your illustrated (Screenshots taken in WindowsXP) answer.

The first thing to do is ensure Windows is in a state where it can work on the new system. In the case of 2000 and XP, this just means that it has to be able to access the hard drives.

To do this, replace the Bus Master drivers with standard generic drivers, as seen below. The drivers you need to be working on are found in Device Manager under "IDE ATA/ATAPI controllers". Ignore the Primary and Secondary, go for the other one. nForce users will only see one entry per controller.

If you're changing chipset (think in terms of drivers - Drivers for the VIA KT133 work fine with a KT400, but drivers for i815 won't work at all with an AMD760MPX), then you'll want to knock out the AGP drivers too to avoid video problems after the switch. Either uninstall them from the Control Panel, Add/Remove Programs or, in the case of VIA's 4in1, from the driver installation program. If you have neither (ie. SiS, ALi) or just can't be bothered, then observe the illustration below.

The standard PCI to PCI bridge disables everything AGP, but also makes sure that old AGP drivers aren't around to screw your system up.

You should be good to go now, but it's worth it to do some more cleaning up. Remove both USB controllers (don't do this if you have a USB keyboard/mouse, duh) and uninstall your display drivers. Also uninstall any other non-critical drivers from the Add/Remove Programs in the Control Panel, or any other option your driver installer has. They'll need to be reinstalled anyway, since Windows has to reinstall devices if they change INT# lines and they will.

Finished all that rebooting? You're half way there.

Do your build and power it up. Windows will boot up and complain about drivers. Don't install any of them, just cancel every time. It'll do some automatically, these are probably the ones you don't have any drivers for anyway and you're quite happy to let Windows use the internal drivers.

Open a command line (Start>Run>cmd.exe) and take a look below...

With the devmgr_show_nonpresent_devices set to 1, and "Show Hidden Devices" enabled, you can see the trash left from your previous machine. Notice also the BDA deframers and filters and, off the bottom of the window, some Microsoft filters. Don't get rid of the filters, just the actual hardware that used to be in your system (or still is, you're reinstalling all the drivers). Just kill anything that's ghosted and not something you shouldn't kill like the filters and deframers mentioned above. You may be surprised by how much crap you find. Don't touch anything under Non-PnP Drivers or anything you recognise as a USB device. USB devices are 'reinstalled' on a per-root basis, as their location has changed, so you may see many duplicates, which is normal.

Next, let's get going. Install your chipset drivers first. Then the display drivers. It sucks to work in 640x480x16, doesn't it? Now go nuts. Install the drivers for everything and we're done. Remember to reboot every time you're prompted. Nothing screws up a driver install worse than the drivers not knowing what they need to know about the system. We now have a clean system that doesn't even know you've changed the board.

I've done some really drastic changes like this. In one, I just tore the HD out of the machine (An old PPro200 and slapped it in a Duron).


What happens if I don't do the IDE drivers step? One of two things. 1. The system will give INACCESSIBLE_BOOT_DEVICE and won't even boot up. 2. It'll work if you're upgrading between compatible chipsets (ie. i845 to i850 or KT133A to KT333)

What happens if I don't clean up in Device Manager? You end up with a whole heap of ghost devices. These can cause problems if you install compatible hardware later on. For example, if I didn't clean out those Crystal CX4624 drivers and I then installed a Santa Cruz (CX4630), I'd have hell trying to get Turtle Beach's drivers on there.

What about the other branded drivers in System (Device Manager)? You'd worry about these in 98, ASD would kick in probably. 2k and XP are smart enough to replace them with the right ones. The old ones are removed during the clean up phase of this procedure.

Do I need to change the PC Type (ie. ACPI Uniproc to Standard PC)? You can change freely between ACPI types, but not from ACPI to Standard or back again. So you can go from ACPI Uniproc to ACPI Multiproc (even on a uniproc system) and expect no problems.

Can I do something like this to move my HD from an onboard controller to a RAID or PCI controller, or vice versa? No. The onboard controller has a standard 'location' where standard drivers will always be able to work with it. PCI and RAID controllers have no such standard, you'll just get INACCESSIBLE_BOOT_DEVICE. You may also get this error if your boot drive is on a PCI controller and you change the slot it's in. This can be worked around on systems with APICs by changing the INT# mapping to match the old INT# to the new location. Other systems can't do this.

I just swapped as-is between incompatible chipsets and it all worked! Lucky you. You probably didn't have busmaster ATA drivers installed, or you were using a chipset that Windows has full drivers for.

What is the tech explanation behind all this? Windows enumerates all devices on boot. DriverGuru explained this on page two of the thread, so I won't repeat it. However, it doesn't remap where the boot drive is if it has changed location or changed controller hardware. If the driver it used last time won't work this time, you get a 0x7B. The standard driver will work every time, where every is as far as we're discussing the standard ATA controller. Those who boot from SATA or SCSI are on their own. In terms of AGP, different manufacturers' implementations vary. Some use helper services, which must be removed. Uninstalling the drivers sometimes removes them, but always deactivates them. Same with video cards, all major vendors use helper services which must be removed. Thankfully, NVIDIA and ATI have uninstallation programs (Add/Remove Programs) which do a thorough job.

What is a 'helper service'? It's something that works in tandem with a device driver. Sometimes they're session drivers (DScaler, Sandra and many other programs which need hardware access use session drivers) and other times they're just normal services running as LOCAL SYSTEM. ATI and NVIDIA use helper services for HYDRAVISION and nView, respectively.

I want to clean up my system, where do I find old services that old drivers may have installed? HKLM>SYSTEM>CurrentControlSet>Services Device drivers are just a special case of a system service under Windows. You can safely delete the entire key for services you no longer have the hardware for, and which aren't removed by the uninstallation of the associated driver. Common culprits are viaagp1 and nv4disp, though they're harmless anyway.

You're a moron! It didn't work! It should work on any 2k or XP system, regardless of hardware. First off, you probably made a mistake somewhere. If that's not the case (are you sure?), then a driver probably hasn't been uninstalled correctly.


Montag, 27. November 2006

HOWTO_ Asterisk 1.2 spricht deutsch

Im Zuge der Voicemail-Einrichtung wollte ich auch vom Asterisk deutsch hören - auch der lieben Anrufer willen!

Netterweise gibt es von der Stadt Pforzheim unter der GPL veröffentlichte deutsche Soundfiles für Asterisk.

Diese lädt man sich herunter, entpackt sie und schiebt sie zu den Asterisk-Soundfiles.
#> cd ~
#> wget
#> tar -xzf ast_prompts_de_v2_0.tar.gz
#> cp -r ast_prompts_de_v2_0/var/lib/asterisk/sounds/* /var/lib/asterisk/sounds/

Die Sprache lässt sich generell umstellen oder für jeden SIP-Client extra, die Option heisst language und wird in der sip.conf auf de gestellt.

Mein Problem war nun, dass die deutschen Sounds normalisiert sind, d.h. mit maximal möglicher Lautstärke abgespielt werden. Dadurch sind sie zwar alle auf dem gleichen Pegel, diese liegt jedoch deutlich über dem der englischen Sounds und auch deutlich über dem eines normalen Telefonats - haut einem also das Trommelfell glattweg durch das Hirn.

Ich habe die Dateien also leiser gemacht. Dafür brauchte ich erst mal das Tool sox.
#> apt-get install sox
Ich entpackte die Soundfiles, und reduzierte vor dem Kopieren erst einmal die Lautstärke.
#> cd ast_prompts_de_v2_0/var/lib/asterisk/sounds/de
#> for i in *.gsm; do \
> cp $i /tmp/$i \
> sox /tmp/$i -v 0.502 $i \
> done \
> rm /tmp/*.gsm
#> cd ../digits/de
Insgesamt führte ich das Kommando also vier Mal aus, anschließend kopierte ich die Dateien wie oben ins Asterisk-Verzeichnis. Die Lautstärke wurde um den Faktor 0.502 reduziert und war damit auf vergleichbarem Niveau wie die Originaldateien, die Asterisk mitliefert.
Alternativ biete ich auch die leiseren Dateien an: ast_prompts_de_v2_1-tar-gz (gz, 1,406 KB)

HOWTO_ Asterisk 1.2 mit deutscher Mailbox

Wenn ich nun schon Asterisk laufen habe, dann möchte ich natürlich auch eine Mailbox dazu haben. Hier also eine kurze Anleitung zur Einrichtung.

Einrichtung der Mailbox

In der voicemail.conf erstellt man einen einfachen Eintrag in der Form
50000 => ,Herr cypressor,
Im Kontext mbox gibt es nun unter der Nummer 50000 eine Mailbox ohne Passwort (das erste Komma!). Empfangene Nachrichten werden per E-Mail an gesendet, als Begrüßung steht dort Herr cypressor drin.

Kleines Tweak: Im Kontext general die Option minmessage auskommentieren und auf 5 setzen - Nachrichten mit weniger als 5 Sekunden Länge sind ganz sicher keine sinnvollen Nachrichten und werden ignoriert.


Um die Mailbox zu aktivieren, muss sie in den Dialplan eingebaut werden. Zwei unterschiedliche Einträge in der extensions.conf machen sie erreichbar.
exten => _X.,1,VoiceMail(su50000@mbox)
Das generelle Format einer Extension sollte bekannt sein, wichtig ist das Command VoiceMail, das den Anrufer auf die Mailbox 50000 im Voicemailkontext mbox weiterleitet. Die beiden Flags su vor der Nummer schalten die (nervige) Anleitung für den Anrufer (s) ab und spielen die unavailable-Nachricht ab.

Um selber Einstellungen vornehmen zu können und neue Nachrichten abzuhören, erstellt man eine Extension auf das Kommando VoiceMailMain.
exten => 50000,1,VoiceMailMain(50000@mbox)
exten => 50000,2,Hangup

Dienstag, 29. August 2006

HOWTO_ Slipstream und Multiboot-CD Windows 2000

Der Vorteil einer Multiboot-CD liegt nicht darin, dass man mit Hilfe von nur einer CD mehrere Betriebssysteme installieren kann. Nunja, er liegt natürlich schon auch darin, aber sicherlich ist dies nicht gerade ein alltäglicher Vorgang eines normalen Windows-Benutzers. Der Hauptvorteil liegt eben darin, dass man selber alle angefallenen Updates in die Installationsdaten einspielt und nach der Installation ein Betriebssystem installiert hat, das wirklich up-to-date ist und mit dem man mehr oder weniger gefahrlos online gehen kann.

Hier geht es nun darum, wie man ein Windows 2000 mit allen aktuellen Updates versorgt (slipstreamed) und dann auf eine bootbare CD packt.

1. Vorbereitungen

Ich verwende HFSlip, um alle Updates und Zusatzsoftware zu slipstreamen. Das Tool gibt es hier zum Download. Herunterladen, in das Arbeitsverzeichnis entpacken, und ein Mal die Datei HFSLIP_XXXXX.CMD ausführen. Dabei wird die benötigte Verzeichnisstruktur angelegt.
Neben den Windows Original-CDs werden natürlich auch noch alle Updates benötigt. Auf der Seite finden sich alle seit dem ServicePack 4 angefallenen Updates. Darüber hinaus bietet es noch mehr, zB den Internet Explorer 6 SP1 und DirectX 9.0c. Im oberen Teil der Seite setzt man bei allen Komponenten, die man installieren möchte, ein Häkchen. Im unteren Teil gibt es dann die lange Liste mit direkten Downloadlinks. Vorsicht: Nur die englischen Versionen sind verlinkt, anderssprachige muss man sich selber zusammensuchen. Die Liste ist bereits nach den Ordnern, die am Anfang von HFSlip angelegt wurden, sortiert.
Da ich noch DirectX 9.0c und den Internet Explorer 6.0 SP1 mitinstalliere, tauchen die benötigten CAB-Dateien für den Ordner HFCABS auf. Für DirectX lädt man das jeweils aktuellste Redistributable herunter und entpackt es mit einem Packer wie WinZip. Beim IE ist die Installationsdatei nur ein paar hundert KByte groß, da die benötigten Daten während der Installation heruntergeladen werden. Um nur an die Dateien zu kommen, ruft man die Datei auf der Kommandozeile mit folgenden Parametern auf:
D:\ie6setup.exe /c:"ie6wzd.exe /d /s:""#E"""
Achtung: Die Anführungszeichen sind so korrekt! Anschließend lässt sich ein Pfad angeben, wohinein die Dateien kopiert werden. Eine Installation findet nicht statt.

In den Ordner HFTOOLS kommt noch Bart's Image Extractor - sonst funktioniert HFSlip nicht. Download und die bbie.exe in HFTOOLS.

Jetzt fehlen nur noch die Windows-Dateien: Den Ordner I386 sowie CDROM_IP.5 (für Professional, bzw. CDROM_IS.5 für 2000 Server oder CDROM_IA.5 für den Advanced Server), CDROM_NT.5 und, wenn vorhanden, cdromsp4.tst (wenn das ServicePack 4 bereits integriert ist).

2. Slipstream!

So, nun sind alle Dateien vorbereitet, nun wird (mit Administratorrechten) HFSlip gestartet und durch die ganzen Hinweisscreens gezappt. Irgendwann muss man dann die Kompressionsmethode für die Treiber wählen (A ist in Ordnung) und danach den Pfad auf der Installations-CD für Multiboot. Der ist prinzipell frei wählbar, ich habe W2K\PRO\EN\ (bzw W2K\SRV\EN\ oder W2K\ASV\EN\) verwendet.
So, nun sollte das Slipstreaming beginnen, es dauerte bei mir ca. 15-20 Minuten. Beim allerersten Mal wird noch nach der Original-CD gefragt, wegen dem Bootimage. Dabei werden alle eingebauten CD-Laufwerke der Reihe nach abgeklappert, bis die CD gefunden wurde. Alles kein Problem.
Die Ausgabe liegt nun im Ordner SOURCESS, diesen verschiebt man aus dem HFSlip-Ordner und benennt ihn so um, dass klar ist, welche Windows-Version da drin "residiert".

3. CD zusammenstellen

Da ich alle drei Varianten von Windows 2000 - Professional, Server und Advanced Server - auf eine CD packe, musste ich natürlich den letzten Absatz von 1. sowie 2. für jede Version ein mal durchmachen.
Ich erstellte mir nun folgende Struktur für meine CD:
In die drei EN-Ordner kopierte ich die jeweils passende Original-CD (ohne I386), und anschließend den Inhalt des im 2. Schritt entstandenen SOURCESS-Ordner. Bei Professional sind nun die folgenden Dateien vorhanden:

4. Bootdisketten

In jedem I386-Ordner liegen unter BOOTDISK vier Diskettenimages. Diese werden mit einem entsprechenden Programm, zB WinImage, in den passenden Ordner im Rootverzeichnis, also WPRO für Professional, WSRV für Server und ASRV für den Advanced Server, extrahiert.

Aus I386 wird nun zusätzlich die BOOTFIX.BIN, SETUPLDR.BIN und TXTSETUP.SIF nach WPRO respektive WSRV oder ASRV kopiert.
Mit einem Hex-Editor sucht und ersetzt man in den drei kopierten SETUPLDR.BIN den String i386 durch WPRO respektive WSRV oder ASRV.
Mit Notepad o.ä. ersetzt man in den kopierten TXTSETUP.SIF
respektive \W2K\SRV\EN\ oder \W2K\ASV\EN\.

5. Bootmanager

In das Rootverzeichnis der zusammengestellten CD kommen jetzt noch die Dateien
Aus der ZIP-Datei des Bootmanagers diskemu kommen noch die Dateien
Die beim Slipstreaming extrahierte BOOT.BIN (im HFSlip-Ordner HFTOOLS kopiert man drei Mal in das Rootverzeichnis, und benennt die Kopien ASRVSECT.DAT, WPROSECT.DAT und WSRVSECT.DAT. Mit einem Hexeditor sucht man am Ende den String SETUPLDR.BINBOOTFIX.BINI386 und ändert I386 um auf den Pfad, in dem die entsprechenden Bootdisketten liegen, also ASRV, WPRO bzw WSRV.

Die Datei DISKEMU.CMD konfiguriert das Bootmenü, meines sieht folgendermaßen aus:
print ================================================================================
print                                  MultiBoot Menu
print                         All Windows 2000 Installation CD
print ================================================================================
print Make your Choice:
print 1. Microsoft Windows 2000 Professional with ServicePack 4*
print 2. Microsoft Windows 2000 Server with ServicePack 4*
print 3. Microsoft Windows 2000 Advanced Server with ServicePack 4*
print Esc) Boot from hard disk
print ================================================================================
print * All versions come with post-SP4 hotfixes up to 08/25/2006. The following
print   Software is also included:
print   - Microsoft DirectX 9.0c (August 2006)
print   - Microsoft Internet Explorer 6 SP1
print   - Microsoft Windows Media 9/10 Codecs
print   - Microsoft Windows Update v4 and Windows Update Agent 2.0
print Timeout is 9 seconds, Default is Esc.
print Enter your choice:

; timeout is 9 seconds, default key is escape
getkey 9 esc
onkey 1 goto pro
onkey 2 goto srv
onkey 3 goto advsrv
onkey 4 goto xppro
onkey f1 goto help
onkey esc boot 80
; When no key found...
goto mainkey

; when run has failed
print Failed to run "WPROSECT.DAT", hit any key.
goto start

; when run has failed
print Failed to run "WSRVSECT.DAT", hit any key.
goto start

; when run has failed
print Failed to run "ASRVSECT.DAT", hit any key.
goto start
Das Rootmenü sollte nun so aussehen:
+ASRV			# Bootdiskette Advanced Server
  +EN			# Installationsdateien Advanced Server
  +EN			# Installationsdateien Professional
  +EN			# Installationsdateien Server
+WPRO			# Bootdiskette Professional
+WSRV			# Bootdiskette Server

6. CD erstellen

Mit Hilfe von CDimage erstellt man sich nun die ein Image. Das Kommando sieht so aus
cdimage.exe -l"W2KSP5" -t12/06/1999,23:00:00 -g -h -n -b"D:\CDROOT\loader.bin" -o -oi -m "D:\CDROOT" "D:\w2ksp5_multiboot.iso"
Ich empfehle CDImageGUI, dort sind alle Kommandozeilenparameter auch erklärt.

Am Ende entsteht nun ein Image, in dem alle mehrfach vorhandenen Dateien nur ein Mal drin stecken (wie Hardlinks unter Linux-Dateisystemen). Mein Image ist ca. 606 MByte groß.

7. Credits

All das habe ich natürlich nicht selber herausgefundenen, sondern mir aus diesen Howtos zusammengesucht: Windows 2000 Multiboot
Slipstreaming Windows 2000 with latest Patches
Basis HFSlip Howto
Current Windows 2000 updates


Informationstechnische Howtos, Hinweise und Merkwürdiges

Batchlib v1.0 2008-03-29

Aktuelle Beiträge

HOWTO_ O2 DSL Surf &...
Der O2 DSL Surf & Phone-Router ist für die...
cypressor - 12. Feb, 19:57
Uptweak Windows XP Home...
There are a lot of annoying limitations in Windows...
cypressor - 9. Okt, 19:30
BATCHLIB_ Batchlib package...
Download Batchlib package v1.0 (5 KB zip file) What...
cypressor - 29. Mrz, 19:10
BATCHLIB_ Batchlib library...
The batchlib library string.cmd is part of the batchlib...
cypressor - 29. Mrz, 18:10

Homepage Ticker



Online seit 4082 Tagen
Zuletzt aktualisiert: 25. Apr, 21:39
RSS XML 1.0 Button-Get-Firefox

Weblog abonnieren