{"id":12,"date":"2007-09-11T12:48:06","date_gmt":"2007-09-11T00:16:30","guid":{"rendered":""},"modified":"2017-03-07T20:10:01","modified_gmt":"2017-03-07T20:10:01","slug":"ps_2_keyboard_at_the_pegasos_with_linux__22","status":"publish","type":"post","link":"https:\/\/blogs.gentoo.org\/pylon\/2007\/09\/11\/ps_2_keyboard_at_the_pegasos_with_linux__22\/","title":{"rendered":"PS\/2 Keyboard at the Pegasos with linux 2.6.22"},"content":{"rendered":"<p>I finally finished setting up my desk in the new flat so that I can unpack my other computers beside the laptop.  The Pegasos will play a new role as router until I bought a nice embedded box with integrated WLAN.<\/p>\n<p>In preparation for this task I installed the latest gentoo-sources, compiled them and found out that the attached keyboard is not working.  Well, &#8220;unplugged cable&#8221; was the first thought.  But that was false, as the keyboard was working in the firmware and with the older kernel.  I even checked that once again.  So, it sounded like a kernel-bug.<\/p>\n<p>And I found it: There was a <a href=\"http:\/\/ozlabs.org\/pipermail\/linuxppc-dev\/2007-August\/040643.html\">change in the code for the i8042-controller<\/a>, which handles the PS\/2 inputs.  The change is correct, but the Pegasos-Firmware does not publish the device-entry correctly.  Fortunately there is a patch for your Firmware, which you can apply with some lines of code.<\/p>\n<p>That&#8217;s a cool feature of having a real firmware than a stupid BIOS.  The Pegasos uses <a href=\"http:\/\/www.pegasosppc.com\/manuals\/SFUserManual.pdf\">SmartFirmware<\/a> which is an OpenFirmware implementation.  You can find similar firmwares in PowerPC-based Macintoshs, Sun-systems, HPPA and Alpha machines.  So, quite everything beside x86-cruft and newer machines which already use EFI.<\/p>\n<p>Just enter the Firmware and type in <code>nvedit<\/code>.  After that you will see a minimal editor for your nvramrc, which starts with a line-number every line.  Here you enter (thanks to Matt Sealey for this code-snippet!)<br \/>\n<code><br \/>\nprobe-all<br \/>\n\" \/pci\/isa\/8042\" find-device<br \/>\n\" 8042\" encode-string device-type<br \/>\ninstall-console<br \/>\nbanner<br \/>\n<\/code><br \/>\n(be careful with leading spaces).  After that hit CTRL-C and you will be back at the Firmware &#8220;ok&#8221; prompt.  Now you have to store the changes with <code>nvstore<\/code>.<\/p>\n<p>You should make sure that during the firmware-startup the nvramrc will be read.  Therefore enter <code>printenv use-nvramrc?<\/code> and check if it is set to &#8220;true&#8221;.  Otherwise change it with <code>setenv use-nvramrc? true<\/code>.  Run <code>nvstore<\/code> once again and type <code>reboot<\/code>.<\/p>\n<p>You have to do this procedure only once.  The changes are saved in the non-volatile memory of your firmware.<\/p>\n<p>There are already a couple of possible updates to the firmware.  And the kernel should not use workarounds for a buggy firmware.  Probably there will be an update to SmartFirmware on the Pegasos or we have to find a way to publish these changes to the user.  One idea is to use the <a href=\"http:\/\/tbs-software.com\/morgoth\/projects.html\">BootCreator<\/a>-Tool which creates a small Forth-based bootmenu based on an easier bootmenu-file.  But you can also add other Forth-code for the firmware, like the one above if we don&#8217;t want to save it in the nvram.<\/p>\n<p>Currently I think we have to wait if this problem evolves to an FAQ.  Assuming that I updated to 2.6.22 very late now (it&#8217;s already more than 6 weeks out) but that quite nobody in #gentoo-ppc was aware of this problem, I have the strange feeling that I&#8217;m the last user of Gentoo\/PPC on the Pegasos.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I finally finished setting up my desk in the new flat so that I can unpack my other computers beside the laptop. The Pegasos will play a new role as router until I bought a nice embedded box with integrated WLAN. In preparation for this task I installed the latest gentoo-sources, compiled them and found &hellip; <a href=\"https:\/\/blogs.gentoo.org\/pylon\/2007\/09\/11\/ps_2_keyboard_at_the_pegasos_with_linux__22\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">PS\/2 Keyboard at the Pegasos with linux 2.6.22<\/span><\/a><\/p>\n","protected":false},"author":45,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[3,6],"tags":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/blogs.gentoo.org\/pylon\/wp-json\/wp\/v2\/posts\/12"}],"collection":[{"href":"https:\/\/blogs.gentoo.org\/pylon\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.gentoo.org\/pylon\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.gentoo.org\/pylon\/wp-json\/wp\/v2\/users\/45"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.gentoo.org\/pylon\/wp-json\/wp\/v2\/comments?post=12"}],"version-history":[{"count":1,"href":"https:\/\/blogs.gentoo.org\/pylon\/wp-json\/wp\/v2\/posts\/12\/revisions"}],"predecessor-version":[{"id":30,"href":"https:\/\/blogs.gentoo.org\/pylon\/wp-json\/wp\/v2\/posts\/12\/revisions\/30"}],"wp:attachment":[{"href":"https:\/\/blogs.gentoo.org\/pylon\/wp-json\/wp\/v2\/media?parent=12"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.gentoo.org\/pylon\/wp-json\/wp\/v2\/categories?post=12"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.gentoo.org\/pylon\/wp-json\/wp\/v2\/tags?post=12"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}