Im Prinzip sieht das Handshaking gut aus. Frage ist was ab da die "write"-Funktion anstellt. Da musst du mit Debug-Meldungen aber vorsichtig sein. PS2 ist sehr zeitkritisch. Meine Vermutung ist das sowohl Data als auch Clock "Low" gezogen wurden. Das BIOS hat den Port also deaktiviert. Irgendwas ist also nicht so beantwortet worden wie das BIOS erwartet hätte. Das kann man aber auch leicht rausmessen. Im "Leerlauf" sollte sowohl "Clock" als auch "Data" auf 5V hochgezogen werden. Wenn die beide 0V haben ist der Port tot und es geht eigentlich gar nichts mehr.
PS2 ist ein altes Protokoll. Soll heißen das es a) nicht "Hot Plug&Play" ist sondern schon vor dem Einschalten gesteckt sein muss und b) das das BIOS einen nicht unwesentlichen Anteil hat. Ganz im Gegensatz zu modernen Schnittstellen die teilweise vom BIOS gar nicht mehr tangiert werden. Wenn das BIOS beim Booten mit den Antworten vom Keyboard unzufrieden ist, dann zieht es beide Datenpins auf LOW und dann ist Feierabend.
Entsprechend unwichtig sind aktuell die dmesg-Meldungen. Wir müssen zu allererst mal das BIOS zufriedenstellen. Der Linux-Kernel ist im Gegensatz zum BIOS recht unproblematisch und akzeptiert auch deutlich vom Standard abweichende Signale noch.
Um das schonmal auszuschließen: Boote mal mit einem ganz normalen PS2-Keyboard und prüfe dann noch kurz das selbiges unter Linux dann auch wirklich geht. Dann im Betrieb tauschen und den Arduino dranhängen. Wenn es ein BIOS-Problem ist, dann geht der Empfänger so. Ist aber natürlich nur zum Test und kein Dauerzustand. So kann man auch feststellen ob der Port prinzipiell funktioniert oder (z.B. weil im BIOS deaktivert) gar nichts tut.