Another demo was working on a MacBook computer. A virtual machine was
used for running the mmbTools live CD, another for the Windows DMB
encoder and a last one running Linux for the OpenMokast receiver. So,
everything was running on a MacBook with the help of virtual machines!
For curious, here is a youtube clip with an example of this system
(without the DMB encoder)
http://www.youtube.com/user/crcmmb#p/u/3/8IuDTn4-DIg
Pascal
Rashid Mustapha wrote:
> I recall (I'm sure I didn't dream this!) that at IBC a number of years
> ago when I
> was on a stand there that I saw Francois running it on a laptop with
> Windows
> 2000 therefore I am sure it can be done...
>
> Sorry I don't have any further details.
>
> Rash.
>
> On 9 August 2011 13:14, Alex To <tonh...@gmail.com
Hello Alex,
Good news! You got time to find a working solution before I can answer.
Thank you very much for reporting it (your success, I mean ;-) )
Here is some additional background. A few years ago, crc-dabmux code was
developed to cross-compile with MinGW (compilation on Linux to obtain a
Windows executable). It is not the case anymore as we don't test on
Windows, but the coding approach have not changed much since that time
and only minor adjustments might be needed. The alternative is, as you
found it, to use Cygwin.
Thank you again,
Pascal
Otherwise, you can still give a try to cross-compilation. In the past,
I've installed MinGW using RPM packages on Opensuse. But here is some
additional instructions that I've used in the past for building the
cross-compiler from source:
http://wiki.wxwidgets.org/Install_The_Mingw_Cross-Compiler
To compile I've used this command (or something like that): ./configure
--prefix=/usr/local/i586-mingw32 --host=i586-mingw32msvc
Here are some additional informations that I've used:
http://wiki.wxwidgets.org/Cross-Compiling_Under_Linux
This is the only information that I can give you as we do not work
anymore since many years with Windows for many mmbtools projects.
Another alternative is to use virtual machines. I've used VMWare in the
past and now using VirtualBox. Other might be good, but I didn't try
them. I run mmbtools in a VM in Linux. Indeed, it is very convenient as
I can work on many systems simultaneously. Sometimes I have a working
system and I do my tests on another VM. Once I'm satisfied, I replace
the working system with the one that I was testing. I can even work with
snapshot. If I've done something wrong with a system, I can go back to
the last snapshot.
Regards,
Pascal
The cross-compiler is not anymore installed on my computer so I can't
test the following procedure, but it should work.
Use the libfec source code on our website, there is some modification to
enable cross-compilation. In the README, follow the procedure for other
Linux, but add the --host=i586-mingw32msvc option to ./configure. The
'i586-mingw32msvc' might differ depending of the installed version of
the cross-compiler.
Here is the detailed procedure (- instructions, > command to run):
- download libfec from http://mmbtools.crc.ca/content/view/39/65/
> tar xzf fec_3.0.1-2.src.tar.gz
> tar xzf fec_3.0.1.orig.tar.gz
> zcat fec_3.0.1-?.diff.gz | patch -p0
> cd fec-3.0.1/
> autoreconf --install
> ./configure --prefix=/usr/local/i586-mingw32 --host=i586-mingw32msvc
> make
> make install
This should install libfec on your Linux system in the cross-compiler
directory. This will enable access to the library when compiling
crc-dabmux. Make sure that the prefix (cross-compiler) path is the right
one.
If it doesn't work, try something like that:
> find . -name \*.dll
- copy the dll in the right cross-compiler directory
- copy fec.h in the cross-compiler directory
For crc-dabmux, the configure operation also needs --host option. This
will add additional includes for winsock and pthread.
I hope it will help you,
Pascal
--
Pascal Charest
Research Engineer Ingénieur en recherche
Communications Research Centre Centre de recherches sur
Canada les communications Canada
3701 Carling Ave. 3701, avenue Carling
PO Box 11490, Station H CP 11490, succursale H
Ottawa, Ontario Ottawa, Ontario
Canada K2H 8S2 Canada K2H 8S2
Tel: (613) 998-2479 Tél.: (613) 998-2479
Fax: (613) 993-9950 Téléc.: (613) 993-9950
Email: pascal....@crc.ca Cour.: pascal....@crc.ca
Web site: www.crc.ca Site web: www.crc.ca
Government of Canada Gouvernement du Canada
I returned to my 'old' Opensuse 10.0 and compared the source code with
the current version of libfec. I think that I found a solution!
I changed something in the makefile to enable cross-compilation of 32
and 64 Linux system, but I broke cross-compilation for Windows. As it is
not tested and used anymore, I did not checked it. There is a wrong
linker command, libc should not be used.
* Edit file makefile.in
** For the line following "# for Linux et al"
** Change "$(SHARED_LIBS)" with "libfec.so"
* run autoreconf
* run ./configure --host=...cross...
* make
It should work now. The next line with DLLTOOL will be called instead of
SHARED_LIBS.. It is the line that I have added when I wanted to
cross-compile.
Regards,
Pascal
Alex To wrote:
> Dear Mr. Pascal
>
> May I know what is the Linux distribution you used to cross-compile
> FEC last time? and did you build Mingw from source or install from the
> distribution repo?
>
> I have tried Ubuntu 11.04 (x86_x64& x86), 10.04 (x86)
http://mmbtools.crc.ca/content/view/35/61/
Pascal
Fix 2: this migth introduces unpredictable behaviour as without it,
bitfield structure will be padded to be aligned to 32 bits or 64 bits.
The file Eti.h shows how to solve this problem.
Pascal
Indeed, the pack(pop) instruction was at the wrong place. Both of your
suggestions seem fine. I personally prefer the second as it is clearer,
but at after the macro expansion, it will be identical to the first one.
Note that the pack(pop) instruction is not required. However, it is
better to use it as it return to the default byte alignment for the rest
of the code for a better efficiency.
Pascal