blog.rkuebert.de

Privates Blog von Roland Kübert

blog.rkuebert.de

Kategorie: Software (Seite 1 von 6)

Erinnerung: debian 9 (stretch) boot splash

  • Create foo.png (RGB mode)
  • Copy foo.png to /boot
  • Add to /etc/default/grub:

    GRUB_BACKGROUND="/boot/foo.png"
  • Run # update-grub


    ...
    Found background: /boot/foo.png
    Found background image: /boot/foo.png
    ...
    done

  • Reboot

Erinnerung: Serielle Kommunikation mit einer Virtualbox-VM

Serielle Schnittstelle für den Gast einrichten:

Wenn eine Vebrindung zu Standard-I/O reicht:

socat UNIX-CONNECT:/tmp/vm-tty STDIO,raw,echo=0

Ansonsten:

socat UNIX-CONNECT:/tmp/vm-tty PTY,link=/tmp/com1-pty

Bereits vorliegende Daten z.B. mit cat auf den PTY schicken.

Quake 3 Arena Networking

Ich habe früher ja gerne mal die eine oder andere Runde Quake 3 Arena gespielt, auch wenn ich nie sonderlich gut war. Nachdem in der Vorlesung am Donnerstag die Frage aufkam, warum man überhaupt UDP benutzt und wie das bei Online-Spielen mit der unzuverlässigen Nachrichtenübermittlung dann überhaupt funktioniert, habe ich dann gleich mal nach Quake 3 Arena und Netzwerk gesucht, der Code ist ja schon seit geraumer Zeit frei verfügbar.

Zum Glück musste ich mich nicht durch den Quellcode selbst wühlen, das hätte wahrscheinlich sehr viel Zeit in Anspruch genommen, denn Fabien Sanglard hatte vor ungefähr drei Jahren eine Reihe von Artikeln über den Q3A-Quellcode veröffentlicht, darunter auch einen Artikel zu den Netzwerk-Funktionen.

Im Endeffekt stimmt das, was ich in der Vorlesung gesagt habe, denn gerade im Echtzeitbereich ist eine Neuübertragung von verlorenen Daten einfach keine Option: „In a fast paced environment any information that is not received on first transmission is not worth sending again because it will be too old anyway.“ Das heißt natürlich nicht, dass man nicht auf einer anderen Ebene sicherstellen muss, dass und welche Daten angekommen sind, denn sonst würde man ja unweigerlich Clients mit völlig auseinanderdriftenden Zuständen haben. Es bedeutet lediglich, dass Q3A auf UDP/IP aufsetzt, jede individuelle Nachricht auf der Transportschicht also verloren gehen kann und nicht neu übertragen wird. Die Synchronisation zwischen Client und Server wird dann von Q3A selbst übernommen.

Der oben verlinkte Artikel stellt das auch grafisch schön dar, deshalb hier nur eine kurze Zusammenfassung: im Endeffekt hält der Server den aktuellen Zustand und speichert diese Zustände auch für jeden Client individuell. Vor der Übertragung an die einzelnen Clients wird überprüft, wann der Client das letzte Mal Daten erhalten und beim Server bestätigt hat – bestätigt im Anwendungscode selbst, nicht auf der Transportschicht. Dann wird ein Delta zwischen dem letzten Zustand des Clients und dem aktuellen Zustand des Servers gebildet und nur mittlerweile geänderte Daten werden übertragen. Clever gemacht, nichts anderes hatte ich von idSoftware beziehungsweise John Carmack erwartet. :)

In einem weiteren Artikel habe ich noch einige interessante Fakten über das Netzwerkverhalten von Q3A gelesen:

  • Da einige NAT-Router die Ports des Clients zufällig neu vergeben können enthalten die Pakete eine 16 Bit lange ID, die den Client eindeutig identifiziert. Auch zwei Clients hinter dem gleichen NAT-Router können so unterschieden werden, selbst wenn sich die Ports dynamisch ändern.
  • Die verwendete MTU ist 1.400 Byte: „[John Carmack] thinks the notion of a 512-byte optimal MTU is pretty much at least 5 years out of date“ – damals vielleicht zumindest für deutsche Spieler in der Vor-Breitbandzeit noch etwas optimistisch, mittlerweile aber wohl durchaus realistisch.
  • Der Kompromiss für ein einfaches, effektives Netzwerkprotokoll erfordert dass der Server relativ große Datenmengen puffern muss, um immer ein korrektes Delta für den letzten bestätigten Zustand pro Client zu berechnen.

Einige weitere Angaben zu den Daten, die Clients an den Server schicken, habe ich noch im Artikel „Quake 3 Networking Primer“ gefunden. Ansonsten hatte ich glaube ich in einem der Artikel auch etwas zur Datenrate gelesen, das habe ich aber nicht mehr gefunden. Im wesentlichen sieht man, dass man mit den beiden Standard-Anwendungsfällen (Anwendungsfälle, dazu könnte mir Hubert sicher einiges mitteilen) „zuverlässig, verbindungsorientiert“ und „unzuverlässig, verbindungslos“ nicht beliebig viele Fälle abdeckt. Wenn beides in der Standardvariante nicht ausreicht, muss man eben auf einer höheren Schicht die gewünschte Funktionalität implementieren.

Forticlient routing problem on Fedora 20

Working with the Forticlient VPN Client on Fedora 20 and having the problem that routing does not work? This may be due to a problem in sysconfig.linux.sh:

Replace the following line:

addr=`ifconfig $ifn |grep "inet"|awk ' {print $2 }'| awk -F : '{ print $2}'`

With:

addr=`ifconfig $ifn |grep "inet"|awk ' {print $2 }'`

Et voilà, the routes should be created successfully now. Via Fedoraforum.org.

Adding icons to an icon theme (in XFCE and probably others)

Not for the first time, I recently wondered how to add icons for applications which are missing one on my debian testing. I did this for XFCE, but I guess this is in no way depending on the DE used. Consider for example the case of FCEUX, which is an emulator for Nintendo Entertainment System (NES), Famicom (aka Super NES) and Famicom Disk System (FDS). I can install this fine via apt-get, but I do not get an icon in the menu:

No menu icon for FCEUX in XFCE's start menu

Looking at the .desktop file for FCEUX, which can be found in /usr/share/applications/fceux.desktop, shows that an icon is specified (shown in bold):


[Desktop Entry]
Type=Application
Version=1.0
Name=Fceux
GenericName=NES/Famicom emulator
NoDisplay=false
Comment=Emulate NES ROMs
Exec=/usr/games/fceux
Icon=/usr/share/pixmaps/fceux.png
Terminal=false
MimeType=application/x-nes-rom
Categories=Game;Emulator;
Encoding=UTF-8
Actions=Fullscreen;DefaultConfig;

The simplest way to resolve this is to add the icon to the icon set you use, update the icon set’s cache and just specify it with a relative path without file ending. So change the path in the .desktop file to be Icon=fceux, and add the file, maybe converted to the appropriate sizes, to your icon set. I use the hicolor icon theme, which is located in /usr/share/icons/hicolor, so that means I’ll do something like this:


sudo convert -resize 16x16 /usr/share/pixmaps/fceux.png /usr/share/icons/hicolor/16x16/apps/fceux.png

You can do this for other sizes as well, once you are done, run sudo gtk-update-icon-cache /usr/share/icons/hicolor to update the icon cache and you’re done:

Menu icon for FCEUX in XFCE's start menu

There may be deeper issues here, for example why the image is not shown when given as an absolute path to /usr/share/pixmaps/fceux.png, but anyway, this helps and can be used even if no image file comes with the application and you have to get one yourself or if you do not get a package like when installing a recent eclipse etc.

Choppy audio in Flash player

Choppy audio in Flash player when watching, e.g. your favourite surf event?

  • Get bsdfiff: # apt-get install bsdiff
  • Change to flash plugin lib dir: # cd /usr/lib/flashplugin-nonfree
  • Get the patch: # wget http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=15;filename=memcpy-10.3.162.29.bsdiff;att=2;bug=620901
  • Patch the binary: # bspatch libflashplayer.so libflashplayer.so2 memcpy-10.3.162.29.bsdiff
  • Save original lib: # mv libflashplayer.so libflashplayer.so.orig
  • Replace patched lib: # mv libflashplayer.so.2 libflashplayer.so
  • Restart your browser and enjoy
  • Source: aptosid.com

nagiosgraph and SELinux

Problem seeing your nagiosgraph log files from the CGI? Do this:

# chcon –reference /var/log/httpd/access_log /var/log/nagiosgraph.log

Seite 1 von 6

Präsentiert von WordPress & Theme erstellt von Anders Norén