How to flash Uboot to Colibri T30 (WinCE7) with Colibri Evaluation Board v3.2?

I am having difficulty flashing Uboot to T30 using Linux. I put the module into recovery mode and tried using the command sudo ./update.sh -d under the Colibri T30 LinuxImageV2.6 folder. I get the following message after executing the instruction.

Colibri T30 rootfs detected
./tegrarcm: error while loading shared libraries: libusb-1.0.so.0: cannot open shared object file: No such file or directory

Is there another option for updating?

Seems the dependencies for ‘tegrarcm’ are missing(libusb-1.0.so.0: cannot open shared object file: No such file or directory), install the missing dependencies on your development machine.

Same error here… But I have already installed the library.

sudo apt-get install libusb-0.1-4
libusb-0.1-4 is already the newest version (2:0.1.12-28).

tegrarcm is a 32-bit binary which depends on 32-bit libs, did you install the 32-bit dependencies?

~/Colibri_T30_LinuxImageV2.6/tegra-uboot-flasher # file tegrarcm 
    tegrarcm: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=e2324ca1b24981a5ac59e1c0b1e1997013be32c6, stripped

Check the dependencies of tegrarcm and install the missing dependencies.

e.g.:

~/Colibri_T30_LinuxImageV2.6/tegra-uboot-flasher # ldd ./tegrarcm 
        	linux-gate.so.1 (0xf777c000)
        	libusb-1.0.so.0 => /usr/lib32/libusb-1.0.so.0 (0xf772a000)
        	libpthread.so.0 => /usr/lib32/libpthread.so.0 (0xf770d000)
        	libm.so.6 => /usr/lib32/libm.so.6 (0xf76b8000)
        	libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf769c000)
        	libc.so.6 => /usr/lib32/libc.so.6 (0xf74e7000)
        	/lib/ld-linux.so.2 (0xf777e000)
        	libudev.so.1 => /usr/lib32/libudev.so.1 (0xf74c6000)
        	libcap.so.2 => /usr/lib32/libcap.so.2 (0xf74c1000)
        	librt.so.1 => /usr/lib32/librt.so.1 (0xf74b8000)
        	libresolv.so.2 => /usr/lib32/libresolv.so.2 (0xf749e000)

here is what I get:

ldd ./tegrarcm 
	linux-gate.so.1 =>  (0xf774c000)
	libusb-1.0.so.0 => not found
	libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7701000)
	libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf76ac000)
	libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf768f000)
	libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf74d9000)
	/lib/ld-linux.so.2 (0x565ac000)

but if I try to install the lib via apt-get it says that it is already installed.

sudo apt-get install libusb-1.0-0-dev
Lettura elenco dei pacchetti... Fatto
Generazione albero delle dipendenze       
Lettura informazioni sullo stato... Fatto
libusb-1.0-0-dev is already the newest version (2:1.0.20-1).
0 aggiornati, 0 installati, 0 da rimuovere e 0 non aggiornati.

Same ‘not found’ error. I found the file (libusb-1.0.so.0) under /home/chemtrac/T30/Colibri_T30_LinuxImageV2.6/rootfs/lib. Is there some way to add the path?

ldd ./tegrarcm
linux-gate.so.1 =>  (0xf77b9000)
libusb-1.0.so.0 => not found
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf777e000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7738000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf771b000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf756c000)
/lib/ld-linux.so.2 (0xf77ba000)

Note that /home/chemtrac/T30/Colibri_T30_LinuxImageV2.6/rootfs/lib contains target libraries, e.g. compiled for ARM. That is the wrong path to go.

Hi

As Bhuvan already mentioned you must install the 32bit libraries from your Distro.
libusb must provide the 1.0 API.
So likely for the current issue with tegrarcm you would need on Ubuntu libusb-1.0-0:i386 and on Fedora libusbx.i686.

A more complete list what also might come handy in further steps:

E.g. for Ubuntu 14.04 (64-bit)

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install dosfstools e2fsprogs gawk mtools parted
sudo apt-get install zlib1g:i386 liblzo2-2:i386 libuuid1:i386 libusb-1.0-0:i386

E.g. for Ubuntu 14.04 (32-bit)

sudo apt-get update
sudo apt-get install dosfstools e2fsprogs gawk mtools parted
sudo apt-get install zlib1g liblzo2-2 libuuid1 libusb-1.0-0

E.g. for Fedora 21 (32 and 64-bit)

yum install dosfstools e2fsprogs gawk mtools parted 
yum install zlib.i686 lzo.i686 libuuid.i686 libusbx.i686

Max

Hi,

Thanks for the help. I was able to get past the ‘not found’ issue with libusb, but now I’m getting a Resource temporarily unavailable error (see below).

chemtrac@webserver:~/T30/Colibri_T30_LinuxImageV2.6$ sudo ./update.sh -d /dev/ttyUSB0
Colibri T30 rootfs detected
bct file: ../colibri-t30_bin/colibri_t30_12MHz_NT5CC256M16CP-DI_400MHz.bct
booloader file: ../colibri-t30_bin/u-boot-dtb-tegra.bin
load addr 0x80108000
entry addr 0x80108000
./tegrarcm: could not open USB device: Resource temporarily unavailable

Is the module in recovery mode?
What is the output of lsusb?

Note that the -d parameter on Colibri T30 does not take a parameter, so the /dev/ttyUSB0 is not needed here, likely it will not harm though.

Max

Thanks.

I did confirm it was in recovery mode. I tried with the -d parameter only and it didn’t work so that’s why I added the extra parameter.

My system is down right now so I can’t get the output of lsusb. I will add when it’s available.