18. Januar 2010 - 0:02
Cuda Entwicklungsumgebung unter Ubuntu 9.10 (karmic)
Da mir seid kurzem ein Laptop mit CUDA fähiger Grafikkarte zur Verfügung steht und in meiner TODO-Liste auch noch die Fortführung einer CUDA beschleunigten Variante von Enblend/Enfuse herumgammelt, habe ich mich nun einmal aufgemacht eine entsprechende Entwicklungsumgebung einzurichten.
- NVIDIA Treiber mit CUDA Support
- NVIDIA CUDA Toolkit (Runtime Environment)
- NVIDIA CUDA SDK (Development Kit)
Obwohl momentan CUDA 2.3 schon released ist und auch CUDA 3.0 schon als Beta in den Startlöchern steht, habe ich mich für die ältere Version 2.2 entschieden.
Für die neue 2.3er Version müsste man nämlich den “NVIDIA Driver 190.18 Beta for Linux” installieren. Für die 2.2er Version reicht der “NVIDIA Driver for Linux 185.18.14″. Diesen bringt Ubuntu 9.10 (karmic) schon von Haus aus mit und erspart so unnötiges Treibergefrikel.
Für CUDA 2.2 muss also kein extra Treiber installiert werden. Der neueste Ubuntu-eigene Treiber genügt.
Das CUDA Toolkit habe ich per sudo in das standardmäßig vorgegebene
/usr/local/cuda Verzeichnis installiert:
flo@acer ~ $ sudo sh cudatoolkit_2.2_linux_64_ubuntu8.10.run Verifying archive integrity... All good. Uncompressing NVIDIA CUDA............................................. Enter install path (default /usr/local/cuda, '/cuda' will be appended): „lib“ -> „/usr/local/cuda/lib“ „lib/libcufft.so.2.2“ -> „/usr/local/cuda/lib/libcufft.so.2.2“ „lib/libcufft.so.2“ -> „/usr/local/cuda/lib/libcufft.so.2“ ... „bin/ptxvars.cu“ -> „/usr/local/cuda/bin/ptxvars.cu“ „bin/cudafe“ -> „/usr/local/cuda/bin/cudafe“ ======================================== * Please make sure your PATH includes /usr/local/cuda/bin * Please make sure your LD_LIBRARY_PATH includes /usr/local/cuda/lib * or add /usr/local/cuda/lib to /etc/ld.so.conf and run ldconfig as root * Please read the release notes in /usr/local/cuda/doc/ * To uninstall CUDA, delete /usr/local/cuda * Installation Complete
Das CUDA SDK wird fast genauso installiert. Allerdings habe ich das SDK statt, wie vorgeschlagen ins HOME, unter
/opt installiert. Evtl. könnte man das SDK auch gleich zum Toolkit unter /usr/local/cuda installieren, um alles auf einem “Haufen” zu haben. Die Pfade wären in den folgenden Schritten dann entsprechend anzupassen.
flo@acer ~ $ sudo sh cudasdk_2.21_linux.run Verifying archive integrity... All good. Uncompressing NVIDIA CUDA SDK............................................. Enter install path (default ~/NVIDIA_CUDA_SDK): /opt/cuda/sdk Could not locate CUDA. Enter the full path to CUDA. If you do not know the path, accept the default and then modify the CUDA_INSTALL_PATH variable in /opt/cuda/sdk/common/common.mk. Enter CUDA install path (default /usr/local/cuda): „sdk/Makefile“ -> „/opt/cuda/sdk/Makefile“ „sdk/ReleaseNotes.html“ -> „/opt/cuda/sdk/ReleaseNotes.html“ ... „sdk/tools“ -> „/opt/cuda/sdk/tools“ „sdk/tools/CUDA_Occupancy_calculator.xls“ -> „/opt/cuda/sdk/tools/CUDA_Occupancy_calculator.xls“ ======================================== Configuring SDK Makefile (/opt/cuda/sdk/common/common.mk)... ======================================== * Please make sure your PATH includes /usr/local/cuda/bin * Please make sure your LD_LIBRARY_PATH includes /usr/local/cuda/lib * To uninstall the NVIDIA CUDA SDK, please delete /opt/cuda/sdk * Installation Complete
a) LD_LIBRARY_PATH für CUDA libs setzen
Um die CUDA Libraries zu nutzen müssen diese in den Library Suchpfad aufgenommen werden und das geht so:
flo@acer ~ $ cat /etc/ld.so.conf.d/cuda.conf /usr/local/cuda/lib/ flo@acer ~ $ sudo ldconfig
b) CUDA BIN Verzeichnis zum PATH hinzufügen
Der CUDA Compiler nvcc muss im PATH gefunden werden. Eine Möglichkeit das zu erreichen ist den Pfad in der Bash Konfiguration zu erweitern:
flo@acer ~ $ cat /etc/bash.bashrc ... PATH=$PATH:/usr/local/cuda/bin
Sobald eine neue Shell geöffnet wird, wird der Pfad nun entsprechend angepasst.
c) Compiler-Flags für GCC 4.4/Ubuntu 9.10 anpassen
Als letztes muss nun noch ein kleiner Eingriff in die CUDA Compilerflags erfolgen, um CUDA mit dem GCC 4.4 (standard bei Ubuntu 9.10) nutzen zu können. Konkret muss das Flag “-O2″ entfernt werden und das geht so:
flo@acer ~ $ sudo cp /opt/cuda/sdk/common/common.mk /opt/cuda/sdk/common/common.mk.org flo@acer ~ $ sudo sed -i 's/COMMONFLAGS += -O2/#&/' /opt/cuda/sdk/common/common.mk
d) Freuen und evtl. mit einem der mitgelieferten Beispiele gleich Testen ;)
- CUDA Downloadseite
(Um zum Download von CUDA 2.2 zu gelangen als OS “Linux 32Bit/64Bit” und als Linux Version “Ubuntu 8.10” auswählen, sonst wird nur die aktuelle CUDA Version 2.3 angezeigt!) - Blogpost zur Anpassung der Compilerflags für GCC 4.4/Ubuntu 9.10
- CUDA Kurse und Podcasts von Vorlesungen zu GGPU
16. Januar 2010 - 15:52
NTFS-Schreibzugriff unter Ubuntu Linux
Leider bietet Ubuntu karmic standardmäßig nur NTFS-Lesezugriff. Um auch schreibend auf NTFS formatierte Medien zugreifen zu können muss man das Konfigurationstool ntfs-config installieren und unter dem neu hinzugekommenen Menüpunkt System->Systemverwaltung->NTFS Konfigurationstool den Schreibzugriff für die entsprechenden Partitionen aktivieren.
Die Installation kann unter Ubuntu karmic einfach mit einem Klick auf folgenden Link vorgenommen werden: apt://ntfs-config
Für externe Medien muss man — umständlicherweise — den ersten Dialog zunächst mit Anwenden bestätigen und im, dann erscheinenden, zweiten Dialog den Schreibzugriff für externe Medien aktivieren.
Genau erklärt findet man das Ganze auch noch im Ubuntu Geek Blog Artikel über NTFS Schreibsupport
16. November 2009 - 18:32
System Editor in Ubuntu ändern
Standardmäßig benutzt Ubuntu den Nano Editor. Dieser ist für eingefleischte Vim User aber natürlich keine geeignete Alternative.
Zum Glück lässt sich der System Editor leicht wechseln:
flo@acer ~ $ sudo update-alternatives --config editor Es gibt 4 Auswahlmöglichkeiten für die Alternative editor (welche /usr/bin/editor bereitstellen). Auswahl Pfad Priorität Status ------------------------------------------------------------ * 0 /bin/nano 40 Auto-Modus 1 /bin/ed -100 manueller Modus 2 /bin/nano 40 manueller Modus 3 /usr/bin/vim.basic 30 manueller Modus 4 /usr/bin/vim.tiny 10 manueller Modus Drücken Sie die Eingabetaste, um die aktuelle Wahl[*] beizubehalten, oder geben Sie die Auswahlnummer ein: 3 update-alternatives: Verwende /usr/bin/vim.basic, um /usr/bin/editor (editor) in manueller Modus bereitzustellen.
Anmerkung dazu:
Der “echte” Vim verbirgt sich unter der Option 3 /usr/bin/vim.basic und muss ggf. erst durch ein
flo@acer ~ $ sudo apt-get install vim
installiert werden, da Ubuntu nur den abgespeckten vim-tiny mibringt.
15. November 2009 - 15:06
Shibboleth2 unter Ubuntu 9.10 (karmic)
Als ich mich unter Karmic daran gemacht habe den Shibboleth2 Service Provider einzurichten war ich zunächst mal positiv überrascht.
Es gibt nämlich tatsächlich ein Ubuntu Package für den aktuellen Shibboleth 2.1, das sich fix und einfach installieren lässt.
Unter Gentoo/Suse musste ich jedesmal von Source kompilieren um an die aktuelle Version zu kommen. Von daher schonmal ein thumbs-up für Ubuntu karmic.
Also gleich ans Werk…
flo@acer ~ $ sudo apt-get install libapache2-mod-shib2
Problem
Nach dem Installieren und Konfigurieren klappte es allerdings nicht so recht mit dem Starten.
Ein Startversuch mittels
flo@acer ~ $ sudo service shibd start
wurde mit folgenden Logeinträgen quittiert
flo@acer ~ $ tail -f /var/log/shibboleth/shibd.log ... 2009-11-15 14:09:58 INFO Shibboleth.Listener : listener service starting 2009-11-15 14:09:58 ERROR Shibboleth.Listener : socket call resulted in error (2): no message 2009-11-15 14:09:58 CRIT Shibboleth.Listener : failed to bind to socket.
Lösung
Eine kurze Google Recherche förderte zutage, dass Shibboleth versucht seinen socket unter /var/run/shibboeth zu erstellen. Allerdings existiert das Verzeichnis nicht, was zu dem genannten Fehler führt. Da /var/run von Zeit zu Zeit automatisch wieder gelöscht wird genügt es nicht das Verzeichnis einfach zu erstellen. Stattdessen kann man das Initscript des Shibboleth Daemons unter /etc/init.d/shibd anpassen, so dass das fehlende Verzeichnis bei jedem Start angelegt wird, sofern es noch nicht existiert.
Und das geht ganz einfach so:
flo@acer ~ $ sudo sed -i '50 i \nif [ ! -e /var/run/shibboleth ]; then\n\tmkdir /var/run/shibboleth\nfi\n' /etc/init.d/shibd
Der obige Code fügt an Zeile 50 des Initscriptes eine entsprechende Abfrage ein und erstellt das fehlende Verzeichnis bei Bedarf.
Quellen
As always: Hope that helps!
1. November 2009 - 15:05
Eclipse unter Ubuntu 9.10 (karmic)
Beim Installieren des aktuellen Eclipse unter Ubuntu 9.10 (karmic) bin ich auf einen sehr nervigen Bug gestoßen.
Das Problem
Mit karmic das neue Gnome 2.28.1 und damit GTK+ 2.18 eingführt wurde, welches seit neuestem ein verändertes Windowmanagement – sogenannte “Client-Side Windows” – benutzt. Da Eclipse dies offenbar nicht ordentlich unterstützt sind einige Schaltflächen nicht klickbar bzw. bleiben bei einem Klick “versenkt” ohne jedoch auszulösen. Außerdem Ist die Liste installierbarer Plugins (New Software) unsichtbar.
Die Lösung
Die Lösung ist die Umgebungsvariable GDK_NATIVE_WINDOWS mit der man GTK+ dazu bewegen kann wieder das alte Fenstermodell zu benutzen.
Startet man Eclipse wie folgt funktioniert es wieder einwandfrei.
flo@acer ~ $ GDK_NATIVE_WINDOWS=1 /opt/eclipse/eclipse
Das Ganze lässt sich dann auf Wunsch noch in ein kleines Shellscript verpacken.
Quellen
31. Oktober 2009 - 21:18
Auf wiedersehen Gentoo!

Da mein Gentoo leider mit der Zeit immer mehr rumgezickt hat musste ich schweren Herzens auf Ubuntu 9.10 – karmic koala – umsteigen. Der Todesstoß ergab sich durch Umstieg auf die neueste Xorg Version. Diese erfordert aufgrund einer Änderung der ABI ebenfalls den neuesten fglrx Treiber, welcher allerdings keinen Support mehr für Karten <R600 mehr mitbringt. Meine – noch nicht so alte – X1300 kann ich somit vergessen.
<sarcasm>Danke ATI!</sarcasm>
Die Zeit mit Gentoo hat mich viel gelehrt und einiges an Erfahrung reicher werden lassen. Meiner Meinung nach ist es trotz oder gerade wegen der zahlreichen Hürden die beste Wahl für Einsteiger, die wirklich etwas über ihr System erfahren und sich damit beschäftigen wollen.
Danke dafür an die Gentoo Leute (diesmal ohne Sarkasmus)!
Nun freue ich mich auf ein neues Kapitel mit Ubuntu, in das ich hohe Erwartungen setze. Na dann, auf ein Neues…
30. Oktober 2009 - 14:02
Groupwise reloaded – Ubuntu 9.10 (amd64)
Da ich kürzlich auf Ubuntu 9.10 aka karmic koala in der amd64 Variante umgestiegen bin ergaben sich leider wieder mal einige Probleme mit Novells Groupwise.
Hier eine kurze Zusammenfassung wie ich’s zum laufen bewegt hab:
1. Vorbereitungen
Herunterladen und entpacken sind identisch zu meiner GW unter Gentoo Anleitung
2. JRE ersetzen
Das mitgelieferte JRE ist nicht brauchbar, deshalb müssen wir es ersetzen. Dazu installieren wir uns zunächst ein 32Bit JRE, wie zum Beispiel ia32-sun-java6-bin und führen die eigentliche Ersetzung mittels Symlink durch.
flo@acer ~ $ sudo apt-get install ia32-sun-java6-bin flo@acer ~ $ cd /opt/novell/groupwise/client/ flo@acer /opt/novell/groupwise/client $ sudo mv jre old_jre flo@acer /opt/novell/groupwise/client $ sudo ln -s /usr/lib/jvm/ia32-java-6-sun-1.6.0.15/jre
3. libstdc++5 installieren
Karmic bietet leider kein Packet für die libstdc++5 Library, welche Groupwise allerdings benötigt. Ein Symlink auf die aktuellere libstdc++6 quittiert Groupwise wie folgt:
flo@acer ~ $ groupwise /opt/novell/groupwise/client/bin/groupwise-bin: /usr/lib32/libstdc++.so.5: version `GLIBCPP_3.2' not found (required by /opt/novell/groupwise/client/bin/groupwise-bin) /opt/novell/groupwise/client/bin/groupwise-bin: /usr/lib32/libstdc++.so.5: version `CXXABI_1.2' not found (required by /opt/novell/groupwise/client/bin/groupwise-bin)
Also muss das Orginal installiert werden. Wer es genau nimmt kann beide Varianten – 64Bit und 32Bit – installieren. Benötigt wird von Groupwise lediglich die 32Bit Version.
Download Debian libstdc++5 Package
oder
flo@acer ~/Downloads $ mkdir libstdc++5 && cd libstdc++5 flo@acer ~/Downloads/libstdc++5 $ wget http://ftp.us.debian.org/debian/pool/main/g/gcc-3.3/libstdc++5_3.3.6-18_amd64.deb flo@acer ~/Downloads/libstdc++5 $ wget http://ftp.us.debian.org/debian/pool/main/g/gcc-3.3/libstdc++5_3.3.6-18_i386.deb
Die 64Bit Version kann man einfach installieren, bei der 32Bit Version habe ich die Installation lieber manuell durchgeführt.
flo@acer ~/Downloads/libstdc++5 $ sudo gdebi libstdc++5_3.3.6-18_amd64.deb flo@acer ~/Downloads/libstdc++5 $ file-roller --extract-to=./libstdc++5_3.3.6-18_i386 libstdc++5_3.3.6-18_i386.deb flo@acer ~/Downloads/libstdc++5 $ cd libstdc++5_3.3.6-18_i386 flo@acer ~/Downloads/libstdc++5/libstdc++5_3.3.6-18_i386 $ tar -xvzf data.tar.gz flo@acer ~/Downloads/libstdc++5/libstdc++5_3.3.6-18_i386 $ sudo cp usr/lib/* /usr/lib32/
4 . Quellen und Schluss
So das sollte es gewesen sein. Have Fun!


Kommentare: