Hallo Bääääär,
im Moment kann ich nur feststellen, dass bei mir auch nichts geht.
(Es wird überhaupt nichts übertragen. Noch nicht einmal ein Buchstabe.)
Folgendes habe ich bis jetzt aber schon gefunden:

Makefile:
- MCU = atmega8 und nicht atmega32
- F_CPU ist beim Asuro nicht 16000000, sondern nur 8000000
- Dieses Makefile erzeugt einige, mir unverständliche, warnings

main.c
- Im bei dir fehlenden Init() wird das Interuptsystem in der CPU mit sei(); erst gestartet. Kann hier aber sein, das es nicht notwendig ist.
- Im bei dir fehlenden Init() wird die Taktfrequence für den IR-Baustein gesetzt. Das fehlt bei dir.
- Laut Band II, darf die Sendegeschwindigkeit nicht größer als 2400 Baud sein
- Die Anzahl zu sendender Zeichen ist 13 und nicht 14 (\n und \r sind jeweils EIN Zeichen)
- Am Ende fehlt ein "while(1);" vor dem return

serial.h
- "#define cBlockung 1" soll bestimmt cBlocking heißen

serial.c
- Es fehlt ein "#include <avr/signal.h>"
- In "SIGNAL (SIG_USART_RECV)"
--- " - 1 " fehlt im if
- In "SIGNAL (SIG_USART_DATA)"
--- "if (WritePointer0 > cWrite...." muß < haben
--- //printf(WriteBuffer[WritePointer0++]); Ist zum Glück auskommentiert.
--- Du würdest beim ausführen der Zeile auf alle Fälle den Zeiger WritePointer0
--- mit dem da angehängten ++ um eine Stelle weiterzählen lassen.
--- Das Zeug in einer Klammer () bei Funktionsaufrufen wird ausgeführt!

Getestet habe ich auch die Variante, dass alles in einer Datei (test.c) steht und dann so wie im Band II laufen sollte. Geht bei mir aber aktuell auch nicht. Jetzt muss ich aber erst mal Schluß machen.

P.S.: Klasse, dass du noch an's Makefile gedacht hast.