This kernel release has a patch applied to Maemo Diablo kernel to fix USB networking with Microsoft Windows host PC.

Copyright (C) 2009 Nokia Corporation. All rights reserved.

Nokia and maemo are trademarks or registered trademarks of Nokia Corporation. Other product and company names mentioned herein may be trademarks or trade names of their respective owners. 


* DISCLAIMER

This software is work-in-progress and use of this software requires special skills and knowledge. The software and the instructions provided herein or with the software may not be complete. Improper use or installation of this software may harm the device you are installing it into, or the device you are using it with. By accepting the License Agreement deliverd together with this software you also agree to use this software at your own risk and accept that Nokia assumes no liability and does not provide any warranties, support or services related to the software.


* PATCH DETAILS

- Patch date: 12.02.2009
- Maemo base release information:
  - Project  - maemo 4.1.2 Diablo Development Platform
  - Version  - 4.1.2
  - Baseline - OS2008 5.2008.43-7
  - Date     - 2008-12-16
- Files included to the patch delivery:
  - README                             - this file
  - License_Agreement.txt              - license file and disclaimer for this patch
  - diablo_kernel_usbnet_windows.patch - source code patch file for Internet Tablet Diablo 4.1.2 kernel
  - diablo_rndis.inf                   - Microsoft Windows RNDIS driver configuration file
  - zImage                             - Maemo Diablo 4.1.2 kernel image file which has this patch applied 


* SHORT DESCRIPTION OF PATCH

This patch has been released to be used only in maemo Diablo development environment to fix USB Networking problems between Internet Tablet running Diablo 4.1.2 platform release and Microsoft Windows host PC.

Original Diablo 4.1.2 kernel sources can be found from maemo Diablo repository:
http://repository.maemo.org/pool/maemo4.1.2/free/k/kernel-source-diablo/

Instructions how to configure, compile and flash Diablo kernel can be found from Diablo Reference Manual chapter 11. Kernel Guide:
http://maemo.org/maemo_release_documentation/maemo4.1.x/

This same patch has been implemented to the upstream Linux kernel to fix index register corruption seen with g_ether on Microsoft Windows host PC:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fb85d991616046f1b640ed9c4eab9b44908dab74


* INSTALLATION

Kernel image provided (zImage file) has a patch applied to Maemo Diablo 4.1.2 kernel to fix USB networking on Windows. To install and configure USB Networking between Internet Tablet and Windows host PC, read the rest of these installation instructions.

When connecting the USB to Microsoft Windows host PC, use the .inf file provided together with patch when Windows requests the new hardware driver.

   General:
       1 - Download the file diablo_kernel_usbnet_windows.tar.gz from http://tablets-dev.nokia.com/d1.php

       2 - Download the proper flasher application (v3.0) from http://tablets-dev.nokia.com/d3.php

       4 - Choose one of the following method below:
           Method 1: Flashing the zImage that is shipped with diablo_kernel_usbnet_windows.tar.gz. (Recommended)
           Method 2: Apply the USB fix patch, compile the kernel and flash the image. (Alternative)

On the Linux side:

   Method 1: Flashing the zImage that is shipped with diablo_kernel_usbnet_windows.tar.gz
       1 - Decompress the file:
           $ tar zxf diablo_kernel_usbnet_windows.tar.gz

       2 - Flash the zImage file using the flasher application:
           $ ./flasher-3.0 -k diablo_kernel_usbnet_windows/zImage -f -R

       3 - The device is ready to be used in windows:
	   When connecting the USB to Windows PC, use the .inf file when windows requests the new hardware driver

   Method 2: Apply the patch and compile the kernel (alternative method):
       1 - Inside scratchbox:
           $ apt-get install kernel-source-diablo
           $ tar zxf diablo_kernel_usbnet_windows.tar.gz
           $ cp diablo_kernel_usbnet_windows/diablo_kernel_usbnet_windows.patch /usr/src/kernel-source-diablo
           $ cd /usr/src/kernel-source-diablo
           $ patch -p1 < diablo-usb.patch
           $ make nokia_2420_defconfig
           $ make
	   $ cp arch/arm/boot/zImage ~

       2 - In the terminal:
           $ ./flasher-3.0 -k /scratchbox/users/YOUR_LOGIN/home/YOURLOGIN/zImage -f -R

       3 - The device is ready to be used in windows:
           When connecting the USB to Windows PC, use the .inf file when windows requests the new hardware driver

   You can also run the Method 1 and 2 on a MacOS (according to your choice while downloading the flasher), although it is recommended to use a Linux box in case you have chosen Method 2.

On the Internet Tablet side:

       1 - Install maemo-pc-connectivity

       2 - Connect to the device and install maemo-pc-connectivity

       3 - Go to Control Panel -> Extras -> Network Manager

       4 - Select USB and click on the Advanced

       5 - Mark 'enabled' option

       6 - Click on Apply and then on the Close buttons

On the Windows host PC side:

   Configuring the device on Windows:
       1 - Plug the device and Windows will detect the new device
       2 - In the dialogs for 'Found New Hardware Wizard' proceed as following:
           2.1 - Select option 'No, not this time', click on the button 'next';
	   2.2 - Select option 'Install from a list or specific location (Advanced)', click on the button 'next';
	   2.3 - Select option 'Don't search, I will choose the driver to install', click on the button 'next';
	   2.4 - Select option 'Network adapters', click on the button 'next'; (optional screen)
	   2.5 - Select option 'Have disk' and then click on 'Browser' button and select the .inf file and click on the button 'OK';
	   2.6 - Follow the next steps as a normal driver installation.
       3 - The new USB Network Interface will be available at Start Menu->Connect To->Show all connections;
       4 - Setup the ip address 192.168.2.14
       5 - Go to the prompt and type 'ping 192.168.2.15', that it is the IP address of your maemo device.

That's it! Have fun.

For more Information:
   https://bugs.maemo.org/show_bug.cgi?id=3243
