Donnerstag, 31. Mai 2007

Edimax EW7318USG unter Ubuntu

Da die WLAN-Netzwerkkarte in meinem Notebook den Geist aufgegeben hat, muss ich momentan auf eine externe USB-Karte zurückgreifen, und zwar auf eine Edimax EW7318USG. Hierbei handelt es sich um ein OEM-Produkt, in dem eine RALink RT73 Karte steckt, wie einem lsusb verrät:

148f:2573 Ralink Technology, Corp.

Die Treiber hierfür findet man beim rt2x00-Projekt. Unter http://forum.ubuntuusers.de/topic/74093/ findet man eine Anleitung, wie das ganze einzurichten ist. Allerdings muss man mittlerweile den Namen rausb0 durch wlan0 ersetzen und die Firmware wird automatisch nach /lib/firmware kopiert, man muss dies also nicht mehr selbst machen. Hier nochmal zum Mitschreiben, wie man es zum Laufen bekommt:

1. Treiber runterladen und kompilieren

wget http://rt2x00.serialmonkey.com/rt73-cvs-daily.tar.gz
tar xvzf rt73-cvs-daily.tar.gz
cd rt73-cvs-*/Module
make
sudo make install

2. Alte Treiber deaktivieren

sudo vi /etc/modprobe.d/blacklist (wem der VI zu exotisch ist, der verwende stattdessen nano)

und dort am Ende die folgenden Zeilen einfügen:

blacklist rt73usb
blacklist rt2x00lib
blacklist rt2570

3. Schnittstelle eintragen

In der Datei /etc/network/interfaces Folgendes eintragen:

auto wlan0
iface wlan0 inet dhcp
pre-up ifconfig wlan0 up
pre-up ifconfig wlan0 down
pre-up ifconfig wlan0 up
pre-up iwconfig wlan0 essid "Meine ESSID"
pre-up iwconfig wlan0 key "s:MeinPasswort"
pre-up iwconfig wlan0 mode Managed
pre-up ifconfig wlan0 up

Wer kein DHCP hat, der muss hier natürlich dhcp durch static ersetzen und die Adressen eintragen, aber wer macht das schon?

Damit sollte das Ganze beim Booten funktionieren. Wer es gleich ausprobieren möchte, der sollte zuerst mit

lsusb | grep rt

nachsehen, welche Treiber bereits geladen sind und diese mit modprobe -r Modulname erst entfernen. Dann den Adapter einstecken und mit iwconfig nachsehen, ob er richtig funktioniert:

wlan0 RT73 WLAN ESSID:"Meine ESSID"
Mode:Managed Frequency=2.462 GHz Access Point: 00:14:7F:22:4C:9F
Bit Rate=54 Mb/s
RTS thr:off Fragment thr:off
Encryption key:DEAD-BEEF-DEAD-BEEF-DEAD-BEEF-FF
Link Quality=100/100 Signal level:-38 dBm Noise level:-79 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

Ja, das sind gerade mal 30cm zwischen Basisstation und Empfänger. Wer beim händischen Ausprobieren eine Meldung

Error for wireless request "Set ESSID" (8B1A) :
SET failed on device rausb0 ; Network is down.

erhält, der sollte ein

ifconfig wlan0 up

ausführen, dann klappt es.

Montag, 21. Mai 2007

Maven den Download abgewöhnen

Wenn man eigene Jar-Dateien in Maven einbaut, so soll man laut Dokumentation dies folgendermaßen machen:

mvn install:install-file -DgroupId=org.hibernate -DartifactId=hibernate-all -Dversion=3.2 -Dpackaging=jar -Dfile=hibernate-all-3.2.jar

Bei dieser Variante versucht Maven jedoch bei jedem Compilieren die entsprechende POM-Datei herunterzuladen:

Downloading: http://repo1.maven.org/maven2/org/hibernate/hibernate-all/3.2/hibernate-all-3.2.pom

Dies verhindert man, indem man dem "install:install-file"-Aufruf noch die Option "-DgeneratePom=true" hinzufügt. Damit wird eine entsprechende POM-Datei erzeugt und es erfolgen keine Downloads mehr.

Sonntag, 20. Mai 2007

Hibernate, MySQL und Microsoft Access

Verwendet man bei Hibernate als ID-Definition dies

<id name="id">
<generator class="hilo"/>
</id>

so erzeugt Hibernate hierfür automatisch BIGINT(20) Spalten, wenn MySQL verwendet wird. Diese funktionieren nicht im Microsoft Access auf Grund eines bekannten und bisher nicht behobenen Fehlers:

"The Microsoft Jet database engine incorrectly maps the BigInt data type to a Binary data type."

will man trotzdem Microsoft Access verwenden, muss man den Typ der Spalte manuell auf etwas ändern, mit dem Access klar kommt:

ALTER TABLE CHANGE COLUMN id id INT(10) NOT NULL AUTO_INCREMENT;

ATI FGLRX 8.35.5 und Kernel 2.6.20

Der ATI/AMD-Treiber für meine Radeon X1400 kompiliert nicht mit dem aktuellen Kernel 2.6.20, der bei Ubuntu/Feisty 7.04 dabei ist. Glücklicherweise gibt es einen Patch, der das Problem behebt. Hierzu muss man als root (sudo -i) Folgendes machen:

cd /usr/src/
mv fglrx.tar.bz2 fglrx-orig.tar.bz2
mkdir l
cd l
tar xvjf ../fglrx-orig.tar.bz2
cd modules/fglrx/
patch -p0 < ~kurt/Desktop/fglrx-8.35.5-for-2.6.20.patch
cd ../..
tar cvjf ../fglrx.tar.bz2 modules
cd ..
rm -rf l

und schon kann man mit 'm-a' das Paket kompilieren.

Donnerstag, 17. Mai 2007

KDEnlive (fast) besiegt

KDEnlive ist eine nette KDE-Anwendung zur Video-Bearbeitung. Leider habe ich keine aktuellen Pakete für mein (K)Ubuntu/Feisty 7.04 gefunden, also die SVN-Version runterladen und selber kompilieren. KDEnlive ist ein hervorragendes Beispiels für die GNU-Autotools-Hölle und mag nicht kompilieren:

possibly undefined macro: AM_INIT_AUTOMAKE

Mit etwas Gewalt kann man es aber überzeugen, doch zu kompilieren:

AUTOM4TE=/usr/bin/autom4te AUTOCONF=/usr/bin/autoconf2.50 AUTOHEADER=/usr/bin/autoheader2.50 AUTOMAKE=/usr/bin/automake-1.9 make -f Makefile.cvs

Danach ist es eigentlich recht langweilig, denn ein einfaches

dpkg-buildpackage -rfakeroot

Erzeugt die gewünschten Pakete. Wenn man die installiert klappt alles so lange gut, bis man versucht ein gespeichertes Projekt zu laden. Dann gibt es das hier:

(gdb) bt
#0 0x00000000 in ?? ()
#1 0xb7ec22cc in Mlt::Producer::position () from /usr/lib/libmlt++.so.0.2.2
#2 0x08122c64 in ?? ()
#3 0x08542b18 in ?? ()
#4 0xb68f8144 in ?? () from /lib/tls/i686/cmov/libc.so.6
#5 0xb7eeb7f8 in ?? () from /usr/lib/libmlt.so.0.2.3
#6 0xb7eda071 in mlt_properties_get_double () from /usr/lib/libmlt.so.0.2.3
#7 0x081eca68 in ?? ()
#8 0x00000000 in ?? ()

Klingt danach, als würde die libmlt machen, was sie will. Wenn man vor dem Laden ein Video zum leeren Projekt hinzufügt und damit die Video-Ausgabe initialisiert, scheint es besser zu klappen.