thanks to the hint of Eliot, I did some code updates. fbdev module for Cog is now committed.
One thing I'm playing around with, and I have questions about, is the following (Eliot suggested to post it here): > A project for supporting the openGL lib to render output to fbdev (like that: > http://www.mesa3d.org/fbdev-dri.html) would need major efforts, right? As far > as I understand linux graphics architecture, it should be possible to render > directly to the framebuffer device (maybe by a memcopy from a "FBO": > http://songho.ca/opengl/gl_fbo.html). > But my knowledge doesn't reach far enough to figure out, if, how, and where > that could integrate with existing/emerging squeak/GL infrastructure... I don't know if that would be a project of major importance ;) but – as squeak's/pharo's future graphics architecture is currently under discussion – I think it should be considered, that there are many different backends... The reason I asked is, that I currently build me a tiny core linux system with a smalltalk user land. It does work and it is fun... So thanks for any feedback! I enjoy Smalltalk :) Cheers Michael Am 30.01.2012 um 18:54 schrieb Eliot Miranda: > Hi Michael, > > On Sun, Jan 29, 2012 at 1:12 PM, Michael J. Zeder <[email protected]> > wrote: > hi! > I changed inelegantly the configure script to get a vm-display-fbdev and... > ...came to understand, that there are more issues with Cog + fbdev (below is > the make output). > > Now I wanted to put it in a general question: are there efforts to maintain > the vm-display-fbdev for CogVM? I guess there is little need for it in > general, but in some cases it is nice to have (for building embedded or tiny > systems the linux framebuffer is nice; sleak, confless). > Can anybody help me? Thanks. > > The Cog VM is derived from Qwaq/Teleplace (a defunct company that developed > Croquet for business). There the display system was extended for additional > host window support. That support was implemented for vm-display-X11 and > vm-display-null but not for vm-display-fbdev. You'll need to implement > similar stubs that you'll find in the vm-display-null, since most of these > primitives don't make sense/don't do anything in the context of fbdav (which > takes control of the frame buffer and is hence always full-screen). When > you've implemented the stubs please send me the code so I can implement. > > Doubtless you'll have worked out that you want to say > "--with-vm-display-fbdev" to get that compiled in. > > HTH & good luck > Eliot > > > > Cheers! > > /bin/bash /home/mjz/Squeak/squeakvm/Cog/unixbuild/bld/libtool --mode=compile > gcc -g -O2 -msse2 -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 > -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0 -msse -DLSB_FIRST=1 -g -O2 -msse2 > -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 > -DDEBUGVM=0 -msse -DLSB_FIRST=1 -Wall -Werror -DHAVE_CONFIG_H > -I/home/mjz/Squeak/squeakvm/Cog/unixbuild/bld > -I/home/mjz/Squeak/squeakvm/Cog/unixbuild/bld > -I/home/mjz/Squeak/squeakvm/Cog/platforms/unix/vm > -I/home/mjz/Squeak/squeakvm/Cog/platforms/Cross/vm > -I/home/mjz/Squeak/squeakvm/Cog/src/vm > -I/home/mjz/Squeak/squeakvm/Cog/unixbuild/bld > -I/home/mjz/Squeak/squeakvm/Cog/unixbuild/bld > -I/home/mjz/Squeak/squeakvm/Cog/platforms/unix/vm > -I/home/mjz/Squeak/squeakvm/Cog/platforms/Cross/vm > -I/home/mjz/Squeak/squeakvm/Cog/src/vm > -I/home/mjz/Squeak/squeakvm/Cog/platforms/Cross/plugins/FilePlugin > -I/home/mjz/Squeak/squeakvm/Cog/platforms/Cross/plugins/B3DAcceleratorPlugin > -I/home/mjz/Squeak/squeakvm/Cog/platforms/unix/plugins/B3DAcceleratorPlugin > -c -o sqUnixFBDev.lo > /home/mjz/Squeak/squeakvm/Cog/platforms/unix/vm-display-fbdev/sqUnixFBDev.c > gcc -g -O2 -msse2 -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 > -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0 -msse -DLSB_FIRST=1 -g -O2 -msse2 > -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 > -DDEBUGVM=0 -msse -DLSB_FIRST=1 -Wall -Werror -DHAVE_CONFIG_H > -I/home/mjz/Squeak/squeakvm/Cog/unixbuild/bld > -I/home/mjz/Squeak/squeakvm/Cog/unixbuild/bld > -I/home/mjz/Squeak/squeakvm/Cog/platforms/unix/vm > -I/home/mjz/Squeak/squeakvm/Cog/platforms/Cross/vm > -I/home/mjz/Squeak/squeakvm/Cog/src/vm > -I/home/mjz/Squeak/squeakvm/Cog/unixbuild/bld > -I/home/mjz/Squeak/squeakvm/Cog/unixbuild/bld > -I/home/mjz/Squeak/squeakvm/Cog/platforms/unix/vm > -I/home/mjz/Squeak/squeakvm/Cog/platforms/Cross/vm > -I/home/mjz/Squeak/squeakvm/Cog/src/vm > -I/home/mjz/Squeak/squeakvm/Cog/platforms/Cross/plugins/FilePlugin > -I/home/mjz/Squeak/squeakvm/Cog/platforms/Cross/plugins/B3DAcceleratorPlugin > -I/home/mjz/Squeak/squeakvm/Cog/platforms/unix/plugins/B3DAcceleratorPlugin > -c > /home/mjz/Squeak/squeakvm/Cog/platforms/unix/vm-display-fbdev/sqUnixFBDev.c > -fPIC -DPIC -DPIC -o sqUnixFBDev.o > In file included from > /home/mjz/Squeak/squeakvm/Cog/platforms/unix/vm-display-fbdev/sqUnixFBDev.c:39:0: > /home/mjz/Squeak/squeakvm/Cog/platforms/Cross/vm/sq.h:194:0: error: ignoring > #pragma auto_inline off [-Werror=unknown-pragmas] > /home/mjz/Squeak/squeakvm/Cog/platforms/Cross/vm/sq.h:196:0: error: ignoring > #pragma auto_inline on [-Werror=unknown-pragmas] > /home/mjz/Squeak/squeakvm/Cog/platforms/unix/vm-display-fbdev/sqUnixFBDev.c:474:1: > error: initialization from incompatible pointer type [-Werror] > /home/mjz/Squeak/squeakvm/Cog/platforms/unix/vm-display-fbdev/sqUnixFBDev.c:474:1: > error: (near initialization for 'display_fbdev_itf.winOpen') [-Werror] > /home/mjz/Squeak/squeakvm/Cog/platforms/unix/vm-display-fbdev/sqUnixFBDev.c:474:1: > error: 'display_ioPositionOfScreenWorkArea' undeclared here (not in > a function) > /home/mjz/Squeak/squeakvm/Cog/platforms/unix/vm-display-fbdev/sqUnixFBDev.c:474:1: > error: 'display_ioSizeOfScreenWorkArea' undeclared here (not in a function) > /home/mjz/Squeak/squeakvm/Cog/platforms/unix/vm-display-fbdev/sqUnixFBDev.c:474:1: > error: 'display_ioSetCursorPositionXY' undeclared here (not in a > function) > /home/mjz/Squeak/squeakvm/Cog/platforms/unix/vm-display-fbdev/sqUnixFBDev.c:474:1: > error: 'display_ioGetWindowHandle' undeclared here (not in a function) > /home/mjz/Squeak/squeakvm/Cog/platforms/unix/vm-display-fbdev/sqUnixFBDev.c:474:1: > error: 'display_ioPositionOfNativeDisplay' undeclared here (not in a > function) > /home/mjz/Squeak/squeakvm/Cog/platforms/unix/vm-display-fbdev/sqUnixFBDev.c:474:1: > error: 'display_ioSizeOfNativeDisplay' undeclared here (not in a > function) > /home/mjz/Squeak/squeakvm/Cog/platforms/unix/vm-display-fbdev/sqUnixFBDev.c:474:1: > error: 'display_ioPositionOfNativeWindow' undeclared here (not in a function) > /home/mjz/Squeak/squeakvm/Cog/platforms/unix/vm-display-fbdev/sqUnixFBDev.c:474:1: > error: 'display_ioSizeOfNativeWindow' undeclared here (not in a function) > /home/mjz/Squeak/squeakvm/Cog/platforms/unix/vm-display-fbdev/sqUnixFBDev.c:407:14: > error: 'display_dndLaunchFile' defined but not used [-Werror=unused-function] > cc1: all warnings being treated as errors > > make[1]: *** [sqUnixFBDev.lo] Fehler 1 > make: *** [vm-display-fbdev.la] Fehler 2 > > > > Am 29.01.2012 19:31, schrieb Michael J. Zeder: >> hello everbody, >> >> I want to build the CogVM (latest revision from >> squeakvm.org/svn/branches/Cog), >> but with the vm-display-fbdev module (for linux framebuffer device) as >> default. >> >> Now I am a bit stuck in understanding the make process. Just leaving out the >> "--without-vm-display-fbdev" as argument to the configure script does not >> lead to it being included in the compile process. >> Also I don't find the exact location in the scripts, where to tell that the >> vm-display-fbdev should not only be included, but shall also replace the >> default display-X11-module. >> >> Thanks for your help, >> best regards >> Michael >> >> > > > > > > > > -- > best, > Eliot > >
