Adding support to italian keyboards RRS feed

  • Question

  • Hi all,

    WEC700, iMX51.

    I'm adding the support to italian keyboard to my image.

    I cloned the 00000409 directories to 00000410 ones, modifying the neccessary.

    If i directly compile the subtree i have no error and the kbdit.dll is generated under Release directory.

    I also modified the project directory to have the it-IT locale as default locale.

    If I rebuild the image the dll file is NOT generated.

    Which step(s) i missed?


    Friday, October 26, 2012 9:35 AM

All replies

  • Did you modify the parent folder DIRS file?

    Bruce Eitman (eMVP)
    Senior Engineer
    Bruce.Eitman AT Eurotech DOT com
    My BLOG

    Eurotech Inc.

    Friday, October 26, 2012 10:28 AM
  • Yes


    Friday, October 26, 2012 11:00 AM
  • That of course will cause me to ask: Are you sure, and did you do it correctly?

    The reasons that I can think of that it wouldn't build are:

    1. Not added (correctly) to DIRS file(s) so build.exe doesn't see that the folder should be built
    2. No sources file - but it must be there if you could build it in directly in the folder
    3. SKIP_BUILD used in the sources - but it must not be if you can build it directly in the folder

    Wait a minute - you really didn't tell us any detail in your original post, like where did you clone it to?   You didn't just create a new folder in the PUBLIC tree did you?   You did clone it to your PLATFORM or OSDESIGN didn't you?

    Bruce Eitman (eMVP)
    Senior Engineer
    Bruce.Eitman AT Eurotech DOT com
    My BLOG

    Eurotech Inc.

    Friday, October 26, 2012 1:50 PM
  • I cloned the directory from c:\WINCE700\public\COMMON\oak\drivers\keybd\DeviceLayouts\PS2_AT\00000409 and 00000409_dll in the same location but named 00000410*.

    I also cloned c:\WINCE700\public\COMMON\oak\drivers\keybd\InputLangs\0409 in 0410, same location.

    Which is the correct procedure to add the italian keyboard to the US default one??


    Friday, October 26, 2012 1:58 PM
  • It has been a very long time since I have worked on a keyboard driver, so i don't recall the spefic procedure.  

    You have been participating in this forum for a long time, you must have read that most, if not all, of us have repeatidly warned that the PUBLIC tree should not be modified.

    Any "correct procedure" would include cloning the code to your PLATFORM or OSDESIGN.  I will not continue to participate in this discussion if it involves modifying the PUBLIC tree - that is how opposed to the idea that I am.   Further, once you do clone it to your PLATFORM or OSDESIGN, you will have solved your problem.

    Bruce Eitman (eMVP)
    Senior Engineer
    Bruce.Eitman AT Eurotech DOT com
    My BLOG

    Eurotech Inc.

    Friday, October 26, 2012 2:38 PM
  • Bruce,

    you are right, I agree.

    I moved the cloned directory into the platform/src/drivers/keyboardit/ directory and i compiled all.

    With a couple of changes I was able to generate keybit.dll.

    Even if some keys are misaligned (I will check the keys map), I see the following error on the debug log:

    PID:00400002 TID:05CE004A ERROR: c:\wince700\public\common\oak\drivers\keybd\laymgr\laymgr.cpp line 4341: 
    PID:00400002 TID:05CE004A Keyboard: 'KPPLayout' did not call KeybdMDDRegisterGUID() in its entry function, all events will be associated with the default keyboard.
    PID:00400002 TID:05CE004A KeybdDriverInitializeEx: Layout Manager successfully initialized to  1
    PID:00400002 TID:05CE004A LayoutMgrActivateKeyboardLayout: Called with hkl = 0x00000409

    The system starts with the 'EN' icon in the tray. Now I can change the icon to 'IT' and most of the keys are changed.


    Friday, October 26, 2012 3:44 PM
  • The drivers seems to run no so well.

    The above error is always present and even if i switch to IT the virtual key generated is wrong (it is the EN VK!).

    Running my app i have the following log (i'm quering some keyboard APIs):

    PID:07E60412 TID:0665032E Keyboard type=4 subtype=0 Fn=12
    PID:07E60412 TID:0665032E Keyboard name = '00000410'
    PID:07E60412 TID:0665032E Keyboard layout 0x410
    PID:07E60412 TID:0665032E 2 keyboards in list
    PID:07E60412 TID:0665032E 0 - '00000410'
    PID:07E60412 TID:0665032E 1 - '00000409'
    PID:07E60412 TID:0665032E WM_KEYDOWN VK=0xDD scancode=0x5B
    PID:07E60412 TID:0665032E WM_CHAR charcode=0xEC scancode=0x5B
    But if i press '+' key i see the 0xDD VK but in the italian keyb should be 0xBB. Then the keyboard table is not really switched to IT (as said in the ERROR)


    Wednesday, October 31, 2012 1:36 PM