Why I need to switch to Linux OS for installing Linux on Colibri T20?

I got my Colibri T20 with default WinCE7 and now I am trying to switch to Linux. I learned how to put the module into recovery mode but I am not able to understand next steps.

Referring this video Toradex Colibri T20(feat Nvidia Tegra 2) flashing Linux and Win CE - YouTube
Why I need to switch to Linux Ubuntu on host computer in order to install Linux on Colibri?

Unfortunately the tooling used is quite different between Embedded Linux and WinCE/WEC. While we nowadays use fully open-source cbootimage/tegrarcm for Linux WinCE/WEC uses NVIDIA proprietary NvFlash et. al. That said you may just run Linux in a virtual machine on your Windows host passing through all USB recovery mode traffic or for older Embedded Linux BSP versions before V2.4 still based on NVIDIA proprietary fastboot/NvFlash you may even do so using native Windows as explained in the following article on our developer website.

I tried this method and I am lost doing linux installation on Colibri T20. The link mentioned by you shows update.bat in T20_Linux folder but linux doesn’t generate any bat file. Even though I copied bat file from downloaded tegra booltloader folder but it is prompting me to install WinCE6 or 7 only.

Now I have one Ubuntu system running with me. I am trying to do similar process like windows but even in recovery mode, lsusb doesn’t show any Nvidia Corp like shown in the video. Kindly help me, it is taking so much time for me to switch from WinCE to Linux.

It sounds like the module is not properly in recovery mode, or the USB connection to your Linux host has issues. Can you double check that the module is in recovery mode? See Txx Recovery Mode. Also check your cabling etc.

Are you using a virtual machine? If yes, it could be related to USB forwarding not working properly. Double check that the USB device is properly forwarded to the virtual machine. If this does not help, try using a native Ubuntu installation.

I am doing everything correctly following all sources available. The problem starts in the step when I want to Colibri in u-boot mode. The error is as following:
$ ./update.sh -d -r 512 -v V1_2
Colibri T20 rootfs detected

bct file: …/colibri-t20_bin/colibri_t20-512-v12-nand.bct
bootloader file: …/colibri-t20_bin/u-boot-dtb-tegra.bin
load addr 0x80108000
entry addr 0x80108000
./tegrarcm: symbol lookup error: ./tegrarcm: undefined symbol: libusb_get_port_numbers

I am not sure how to resolve this issue.

PS: Now that I understood that it is USB issue, I booted in normal mode but another issues came here: ./tegrarcm: could not open USB device

Which linux distribution did you install?

What exact versions of things are you talking about?

Did you install the pre-requisites as e.g. noted here?

Problem fixed with some changes in command being passed: $ ./update.sh -d -r512 -vV1_2

There should not be any space while passing argument. First time I seen such wierd issue in passing argument.

Yes, that is rather strange and I never had to do it like that. Probably depends on some details of your Linux installation (e.g. shell used or what not).