Hello Michael and Amine,
thanks for fast response. I have rebuild actual ReactOS sources from GIT repository.
From: ppisa4lists@pikron.com To: ros-dev@reactos.org
- We need to include usbdlib.h in the driver build, but DECLSPEC_EXPORT in this header is not declared/maintained.
On Wednesday 15 September 2010 11:04:27 Amine Khaldi wrote:
I have addressed your first problem in r48774. Please retest and report any further issues. Re. contacting the developers, you're welcome to join our IRC channels for a real-time discussion: http://www.reactos.org/en/community_irc.html
The driver sources compile in WDM build from unmodified sources now. Great.
- If we overcome by some hack problem 1) the link fails on undefined references to __imp__USBD_ParseConfigurationDescriptorEx@28 __imp__USBD_CreateConfigurationRequestEx@8
On Wednesday 15 September 2010 14:16:52 Michael Martin wrote:
Pavel,
Hi, I am the developer that is currently working on USB in ReactOS. Problem 1 has already been fixed by Amine Khaldi. As for problem 2, the usbd driver does indeed have these functions implemented though i have not looked to see if they are correct. The usbd driver is currently built but not added to the ReactOS.iso. To have it added, you need to modify boot/bootdata/packages/reactos.dff.
Including the usbd in the rbuild file as a library will resolve the issue.
Please, could you guide me a little. I see two sub-problems.
If I understand well, the functions are provided by usbd.sys. It seems to be included in LiveCD (output-i386/livecd/reactos/system32/drivers/) but it is not included in BootCD and list of install files.
There is the second problem, that the driver build needs import library. I have tried to generate it from obj-i386/drivers/usb/usbd/usbd_usbd.auto.def
i586-mingw32-dlltool --output-lib usbd.lib --input-def usbd_usbd.def
This way I build something which seems like WDM driver. There would be probably problem with correct set of options for GCC and LD which I use for build. I would prefer to specify these directly without calls to Rbuild. I use next set of options now.
i586-mingw32-gcc -nostdinc -D _M_IX86 -D _M_IX86 -I /home/pi/repo/reactos/include/ddk \ -I /home/pi/repo/reactos/include/psdk -I /home/pi/repo/reactos/include/crt \ -I /home/pi/repo/reactos/include/crt/mingw32 -D FOR_WIN_WDM -Wall -Wno-unused \ -D__NTDRIVER__ -D_DLL -D__USE_CRTIMP -D__REACTOS__ -DDBG=1 -D_SEH_ENABLE_TRACE -DKDBG=1 \ -DWINVER=0x502 -D_WIN32_IE=0x600 -D_WIN32_WINNT=0x502 -D_WIN32_WINDOWS=0x502 \ -D_SETUPAPI_VER=0x502 -D_USE_32BIT_TIME_T -D_M_IX86 -D_X86_ -D__i386__ \ -DUSE_COMPILER_EXCEPTIONS -march=pentium -mtune=i686 -pipe -Wall -gstabs+ \ -Os -fno-strict-aliasing -fno-unit-at-a-time -fno-optimize-sibling-calls \ -ftracer -momit-leaf-frame-pointer -mpreferred-stack-boundary=2 -fno-common \ -fno-zero-initialized-in-bss -c ul_drv/ul_drv.c -o ul_wdm.o
i586-mingw32-gcc -o ul_wdm.sys ul_wdm.o ul_wdm.def -Wl,-subsystem,native -Wl,-entry,_DriverEntry@8 \ -Wl,-image-base,0x00010000 -Wl,-file-alignment,0x1000 -Wl,-section-alignment,0x1000 \ -mdll -Wl,-stack,0x40000 -nostdlib -nostartfiles -L . usbd.lib -l hal -l ntoskrnl
./pefixup ul_wdm.sys -exports -sections
I try to prepare setup to test real uLan SB driver with ReactOS. I would prefer to use KVM or Qemu. I have managed to install actual build of ReactOS on disk image. I have checked that KMD uLan driver in virtual (no real device) mode works even on this build.
FYI, Our USB stack is no where near complete. We do plan on implementing all the drivers in the USB stack.
Yes I am fully aware of that, but it is interresting combination to test and it could help us even to find problematic constructs in our driver. I do not like to run any closed system myslef, so possibility to use ReactOS (best with KVM a USB device tunneling) is very interresting for me. Even actual possibility to build (may be even Windows/Ros incompatible) driver binary under GNU/Linux is great to check, that changes in common code parts do not (probably) cause breakage of Windows build.
During the history of my trials with ReactOS I have notices more problems. May it be, that some symptoms could be of some help for you. May be, that they are problem of my tools setup.
I use qemu-kvm-0.12.3 , own build of i586-mingw32-gcc 4.4.2 on AMD64 Debian system. GCC configured
configure -v --enable-languages=c,c++ --prefix=/usr --with-system-zlib --without-included-gettext --enable-shared --disable-nls --enable-mpfr --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=i586-mingw32 --enable-threads=win32 --disable-win32-registry --enable-version-specific-runtime-libs --disable-libgomp
Headers and import libraries are MSYS updated by HAL and some other from ReactOS. I use that setup for Windows version of our tools builds too.
The actual version of RectOS requires next additional line for above described setup
PROJECT_CXXLIBS += "$(shell ${TARGET_CPP} -print-file-name=libgcc_eh.a)"
My LiveCD build does not start under Qemu nor KVM. Logs attached.
The BootCD seems to start correctly. I have been able to reinstall ReactOS in my older disk image. I have left filesystem unchanged but when I have tried to install new boot record, loader fails to start - blocks after loading freeldr message. When older version of loader is left untouched, system comes up without problems.
There seems to be some reproducible problem which seems to be unrelated to our driver (virtual mode for now). When some CHROMuLAN modal windows/dialogs are open the system freezes on
err:(dll/win32/user32/windows/menu.c:3183) MenuTrackMenu 1 err:(dll/win32/user32/windows/menu.c:3429) MenuTrackMenu 2 .[7h.Entered debugger on last-chance exception (Exception Code: 0xc0000005) (Page Fault) Memory at 0x00000004 could not be read: Page not present. kdb:>
Any way, the amount of things which works under ReactOS and amount of work which has been required for that to became reality is impressive.
Best wishes,
Pavel