The uploading procedure implies the use of the windows executable named runc.exe. This program should be executed under cygwin, so this puts me in the strange situation of running cygwin under wine.
After loading the correct dlls (libusb0.dll, cygwin.dll, cygwin1.dll) in the fake system32 directory, there are still some execution issues, due to a known bug.
runc.exe requires to load dinamically libusb0.dll, but the library was originally available for *nix (the library is actually a port for win32 platforms). So I searched into the lejos_nxj source tree, finding libnxt. One of these softwares seems to be a replacement for the Atmel SAMBA utility, built by analyzing the raw usb data…
The next step is to study how libnxt works in order to figure out how to upload the firmware using native tools.
Filed under: Objectives, Organization