milch's shitty blog


Archive for the ‘software’ Category

Xilinx System Edition

Monday, May 28th, 2012

Ja, es ist mal wieder so weit, ich habe die Xilinx ISE installieren duerfen. Diesmal aber nicht nur das Webpack, sondern die allumfassende System Edition. Da man sich dabei jedes Mal aufs neue aergert und suchen muss wie das jetzt war will ich hier mal alles zusammenfassen.

Zuerst laedt man sich also das Paket runter, das sind knapp 6GB, dauert also je nach Internetanbindung etwas. Wenn man das hat wird installiert. Normalerweise auch kein Problem, der grafische Installer hat den Namen xsetup.

Hat man das alles erledigt wirds allerdings interessant. Die Lizenz, die ich bekommen habe ist eine Floating License. Die braucht also dringend einen Server, den werd ich bei mir lokal einrichten. Interessant dabei ist dass das Mistding gleich einen Port nach aussen auf macht und froehlich die Lizenz an jeden verteilt der sie haben will, das Loch sollte man also zumindest auf dem Notebook wieder zukitten.

Ich geh mal davon aus dass alles runtergeladen und entpackt wurde, und mache hier an genau dieser Stelle weiter. Wie oben schon geschrieben heisst der installer xsetup und liegt nach dem entpacken einfach so im Verzeichnis rum, der wird also mit sudo ./xsetup gestartet. Die Installation kann man einfach durchklicken wenn man moechte, wenn einem das eine oder andere zu viel ist kann man das abwaehlen, aber viel Speicherplatz sparen kann man da bei Xilinx nicht.

Ist alles installiert gilt es erstmal den Lizenzserver Einsatzbereit zu machen. Das Teil wurde anscheinend nie mit einer Debian-basierten Distribution getestet, jedenfalls sucht es in /usr/tmp nach dem tmp-Verzeichnis das da aber ja nicht ist. Nun denn, was nciht ist kann ja noch werden, wir legen also einen Symlink an:
sudo ln -s /tmp /usr/tmp

Hat man das getan wird es Zeit die Umgebungsvariablen zu laden die die Xilinx Tools gerne haetten. Das geschieht z.B. mit
source /path/to/xilinx/14.1/ISE_SD/settings64.sh.

Jetzt wo das erledigt ist startet man also FlexLM mit:
lmgrd -c path/to/license/file.lic

der Gute meldet sich dann mit allerlei Gedoens, wenn einen das Interessiert kann man -l /path/to/logfile.log machen und hat ein schoenes Logfile.

Jetzt ist man schon fast am Ziel wenn man bis hierher gekommen ist. Jetzt noch den Tools sagen wo sie suchen sollen nach der Lizenz, das geht ganz einfach, die gucken naemlich selbst schon in der Umgebungsvariable XILINXD_LICENSE_FILE. Die muss aber noch gesetzt werden.
export XILINXD_LICENSE_FILE=2100@localhost

Wenn es mit localhost nicht geht versuchts ruhig mal mit dem eigentlichen Hostnamen oder denkt euch einen aus und schreibt den in die /etc/hosts. Dabei ist zu beachten dass der Hostname immer auch in dem Lizenzfile geaendert wird, sonst gehts nicht.

Tjo, dann gibts noch einige Sachen die jetzt noch nicht wunderbar laufen, z.B. geht keinerlei Doku weil Xilinx die Librarys verkackt und der Firefox nicht mehr startet (soll heissen: nicht aus der DevUmgebung heraus).

Ein anderes Problem ist dass das xsdk kein make findet, nun, zum glueck ist DAS einfach zu beheben:
sudo ln -s /usr/bin/make /usr/bin/gmake

Hier noch eine kleine Liste der executables:
ise – offensichtlich die Xilinx ISE
planAhead – auch recht offensichtlich, PlanAhead
xps – Platform Studio (Hardware Teil des EDK)
xsdk – Software Development Kit (Software Teil des EDK)
analyzer – ChipScope (auch aus der ISE heraus startbar)
coregen – Core Generator (auch aus der ISE heraus startbar)
impact – iMPACT Programmiertool (auch aus der ISE heraus startbar)
constraints_editor – Contraints Editor (auch aus der ISE heraus startbar)
fpga_editor – FPGA Editor (auch aus der ISE heraus startbar)
timingan – Timing Analyzer (auch aus der ISE heraus startbar)
xpa – XPower Analyzer (auch aus der ISE heraus startbar)
compxlib – Simulation Library Compiler (z.B. fuer Modelsim)
sysgen – System Generator
isimgui – ISim Simulator von Xilinx

Wie man sehen kann gibts ne ganze Menge nuetzlicher Tools die mitgeliefert werden, ein rumstoebern in den bin/ Verzeichnissen von Xilinx lohnt sich also quasi immer, ausserdem gibts es einen tollen commandline guide[1] von Xilinx.

[1] http://www.xilinx.com/support/documentation/sw_manuals/xilinx14_1/devref.pdf

mehr workspaces!

Friday, April 13th, 2012

heute wollte ich mal wieder was an meinem ubuntu aendern: ich wollte mehr workspaces. dolle sache, wa? sollt ja an sich kein problem sein, muss ja gehn, ging ja immer und ueberhaupt: warum sollte man das nicht einfach umstellen koennen?
nach ein wenig suche in den menues bin ich dann etwas ungeduldig geworden und habe mal das internet bemueht… siehe da, es schlagen (wieder mal) alle vor irgendein programm zu nutzen, diesmal: ccsm. bevor jemand fragt: nein, das ist natuerlich nicht von anfang an dabei, das muss nachinstalliert werden. nun bin ich da kein grosser fan von und will das ohne installation machen, und siehe da, da gibts auch was: gconftool-2 --type=int --set /apps/compiz-1/general/screen0/options/vsize 2 bzw. gconftool-2 --type=int --set /apps/compiz-1/general/screen0/options/hsize 2. es muessen nur die 2en hinten an den commandos editiert werden und man ist good to go. warum das allerdings auf einmal so schwierig sein muss und vor allem warum das nicht schon laengst behoben wurde: keine ahnung.

zum abstimmen auf ubuntu brainstorm gehts hier: http://brainstorm.ubuntu.com/idea/29382/

quelle: http://askubuntu.com/questions/77806/workspace-switcher-preferences

hdd formatiern auf kommandozeile

Sunday, April 8th, 2012

tja wie das so ist: wenn es schoene guis gibt die das denken fuer einen uebernehmen macht mans nicht mehr selbst, so auch beim formatiern meiner hdds. Disk Utility (anscheinend von RedHat) versagt, gparted versagt, muss mans also per hand machen, kann ja nicht so schwer sein. Also, einmal angenommen wir wollen eine hdd voellig loeschen und dann in 2 Partitionen unterteilen, eine davon mit luks gesichertes ext4, die andere NTFS. Sollte doch moeglich sein, oder?
Also: 500Gb HDD, wird erkannt als /dev/sdc
zuerst mal fdisk anwenden um alles neu zu machen:

$ sudo fdisk /dev/sdc
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4, default 1):
Using default value 1
First sector (2048-976773167, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-976773167, default 976773167): +400G

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4, default 2):
Using default value 2
First sector (838862848-976773167, default 838862848):
Using default value 838862848
Last sector, +sectors or +size{K,M,G} (838862848-976773167, default 976773167):
Using default value 976773167

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

man sollte es kaum glauben, aber das wars schon. wir ahben jetzt 2 partitionen, eine 400GB gross und eine ~100GB. wird jetzt zeit da mal ein ordentliches FS drauf zu machen. Auf die partition1 (400GB) kommt erstmal ein layer crypto:

$ sudo cryptsetup -c aes-xts-plain -s 512 luksFormat /dev/sdc1

WARNING!
========
This will overwrite data on /dev/sdc1 irrevocably.

Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase:
Verify passphrase:

crypto ist auch fertig, was brauchen wir noch? ach ja, filesysteme… das geht aber nur wenn der cryptocontainer geoeffnet wird:

$ sudo cryptsetup luksOpen /dev/sdc1 data
Enter passphrase for /dev/sdc1:

der container ist jetzt geoeffnet unter dem namen “data”, kann man gerne anders machen. also weiter gehts, fs muss da ja schliesslich auch drauf. ich hab mich fuer ext4 entschieden, das sieht dann so aus:

$ sudo mkfs.ext4 /dev/mapper/data
mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
26214400 inodes, 104857095 blocks
5242854 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
3200 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 27 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

das sieht so weit also auch gut aus, nun bruachen wir nur noch die zweite partition, mit dem NTFS:

$ sudo mkfs.ntfs /dev/sdc2
Cluster size has been automatically set to 4096 bytes.
Initializing device with zeroes: 100% - Done.
Creating NTFS volume structures.
mkntfs completed successfully. Have a nice day.

leider dauert das erstellen des NTFS doch SEHR viel laenger als alles andere zusammen, aber es funktioniert ;)

ethernetkarte mit ubuntu

Wednesday, March 28th, 2012

meine ethernetkarte spackt rum, und das gefaellt mir nicht. nun, bei dem betreffenden rechner nicht so schlimm, der haengt eh noch an einem 100Mbit netz und 100MBit karten habe ich noch zu genuege, also flux eine eingebaut und hochgefahrn, alles super.
also schnel ein paar tests gemacht: lspci erkennt sie, aber ifconfig nich…? moment, hier stimmt was nicht…
also google angworfen und siehe da: man muss die karte per hand “anmelden” was das denn jetzt… also gesucht und gefunden, die datei heisst /etc/udev/rules.d/70-persistent-net.rules

gut und schoen, kompiert man also flux die zeile die schon da steht:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

und aendert die MAC, super! Rechner neu starten und tada! fertig… aber mal ganz im ernst: warum geht das nicht automatisch? bei der installation gehts doch auch?

two button mouse with ubuntu

Sunday, March 18th, 2012

ne menge laptops haben nur 2 mausbuttons, so auch mein HP Laptop. nun ist es ja bei linux so dass man den mittleren mausbutton schon des oefteren mal braucht, bspw. um zu guttenbergen. tja, um das problem zu umgehen gibt gab es eine emulation des dritten mausknopfes wenn man einfach beide knoepfe gleichzeitig drueckt. diese emulation wurde bei debian abgeschalten, und so dann auch bei ubuntu, hatte wohl performancegruende.
das ganze laesst sich natuerlich auch wieder anschalten, allerdings nicht ohne weiteres. wenn man das problem googelt kommt man bei einem haufen blogs raus die vorschlagen das programm “gpointing-device-settings” zu installieren. das ist erstmal mist, das programm macht zwar was es verspricht, aber wer will wegen sowas denn immer ein programm installiern und ueberhaupt…?
es gibt aber auch einen offiziellen weg, dieser sieht vor in die datei /usr/share/X11/xorg.conf.d/middle-mouse-button.conf folgenden inhalt zu schreiben:

Section "InputClass"
Identifier "middle button emulation class"
MatchIsPointer "on"
Option "Emulate3Buttons" "on"
EndSection

nun… gesagt, getan – lief! und alles ohne installation von irgendwelchem mist.

hier sind noch die links zum bugtracker und der offiziellen problemloesung im wiki:
https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-evdev/+bug/710762
https://wiki.ubuntu.com/X/Quirks#Input_Quirks

update: wenn man unity nutzt sollte man noch folgende zeile ausfuehren nachdem man die datei angelegt hat:
gsettings set org.gnome.settings-daemon.peripherals.mouse middle-button-enabled true
jetzt noch ein neustart und alles ist gut.

autobackup mit udev

Sunday, March 18th, 2012

Heute wollte ich meine wichtigsten daten sichern, also sowas wie die passwortdatenbank, die config + keys von ssh, die config + keys von gpg, firefox inklusive allem, mails etc. also insgesamt keine grossen datenmengen aber welche wos richtig weh tut wenn sie weg sind. das normale backup sichert das zwar mit aber so richtig toll ist das nicht, weil ich nicht jedes mal ein volles backup starten will ausser der reihe nur weil sich mal ein PW geaendert hat. es musst also was zusaetzliches her.

Ich verwende jetzt also einen kleinen 2GB USB-Stick der mit luks gecryptet wurde. der plan war dass das backup startet sobald der stick angesteckt wird und selbigen dann auch gleich wieder unmountet. nun ja… hoert sich an udev an, oder? japp!

das zugehoerige stueck udev sieht so aus und wird unter ubuntu inzwischen unter /lib/udev/rules.d gesichert:

KERNEL=="sd?1",ACTION=="add", SUBSYSTEMS=="usb", ATTRS{serial}=="07781C0A01F8", RUN+="/root/secback.sh %k"

da passiert ja nix weiter interessantes wie man so sieht, ausser dass da direkt nach der seriennummer gesucht wird und damit nur bei diesem stick das script ausgefuehrt wird. das %k uebergibt dem skript den namen der partition (z.B. sdb1 falls der stick under /dev/sdb1 auftaucht). das ist also alles ganz toll, in dem skript wird dann einfach der stick gemountet, danach die daten kopiert und dann den stick unmounten, fertich.

die attribute kann man natuerlich auch aendern, nicht jeder wird die gleiche seriennummer haben wie meine sticks. dabei hilft folgendes command:

udevadm info -a -p $(udevadm info -q path -n /dev/sdX)

das X sollte man durch die richtige bezeichnung ersetzen. falls man viele sticks angeschlossen hat und nicht sicher ist welcher denn nun eigentlich welcher ist helfen dmesg und blkid (als root) gerne weiter.

inspiration gabs hier:
http://bernaerts.dyndns.org/linux/54-debian-udev-backup
http://www.bitblokes.de/2012/02/automatische-datensicherung-backup-script-mit-rsync-bei-einstecken-einer-externen-festplatte/

simple UI

Saturday, March 17th, 2012

klar, seitdem apple beschlossen hat dass weniger funktionen == leichter bedienung ist machen wir das bei ubuntu auch so. besonders toll wirds dann wenn keiner dran denkt irgendwohin zu schreiben wie denn dann eigentlich der neue weg ist um etwas ganz anders zu machen. so wollte ich heute also ein programm vom startup der session ausschliessen (sozusagen ausm autostart holen). nun, frueher war das einfach: da gab es ein lustiges programm, das hatte einen menueeintrag der hiess glaube startup applications und dort hat man dann ein haekchen entfernt. der neue (wohlgemerkt einfachere *hust*) weg ist etwas komplizierter.

zuerst stellt man fest dass es das programm noch gibt, sieht auch noch aus wie frueher, nur es fehlen die ganzen eintraege fuer die programme. toll gemacht canonical! (btw, besagtes programm findet man jetzt indem man auf das zahnrad ganz oben rechts in der ecke klickt und dann auf “Startup Applications …”). wie bekommen wir die programme da jetzt rein um die haekchen weg zu machen? ja… eigentlich ganz einfach, die systemweiten eintraege gibts unter /etc/xdg/autostart/ dort findet man dann einen haufen .desktop-dateien. exemplarisch hier mal die gnome-keyring-gpg.desktop:

[Desktop Entry]
Type=Application
Name=GPG Password Agent
Comment=GNOME Keyring: GPG Agent
Exec= gnome-keyring-daemon --start --components=gpg
OnlyShowIn=GNOME;Unity;
X-GNOME-Autostart-Phase=Initialization
X-GNOME-AutoRestart=false
X-GNOME-Autostart-Notify=true
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=gnome-keyring
X-GNOME-Bugzilla-Component=general
X-GNOME-Bugzilla-Version=3.2.2
NoDisplay=true
X-Ubuntu-Gettext-Domain=gnome-keyring

wie sicher aus dem kontext schon recht gut geschlossen werden konnte ist die vorletzte zeile der ursprung allen uebels, die muss auf false gesetzt werden und schon hat man als normaler desktopuser wieder die kontrolle ueber seine haekchen, einfach super.

ich moechte dann hiermit mal vorschlagen sowas wie einen ubuntu nondau-remix zu machen, oder wenigstens nen verdammtes offizielles log ueber solchen scheiss zu fuehren, was da immer an zeit rein verschwindet den mist rueckgaengig zu machen der da so verzapft wird ist ja unglaublich aetzend.

quelle: ubuntuforums.org/showthread.php?t=1795650