2010年6月26日 星期六

NOKIA N900 Setup

1.Add extra reposity

Extras-devel
http://repository.maemo.org/extras-devel/
fremantle
free non-free

Extras-testing
http://repository.maemo.org/extras-testing
fremantle
free non-free

2.X-Treminal 新增 ~ | > 符號

gconftool-2 -s /apps/osso/xterm/key_labels -t list --list-type=string "[Tab,Esc,Up,Dn,~,|,>]"
gconftool-2 -s /apps/osso/xterm/keys -t list --list-type=string "[Tab,Escape,Page_Up,Page_Down,asciitilde,bar,greater]"

3.Keyboard Shortcut

General
Ctrl + Backspace: From within an application this will take you back out to the visual task manager. (Thanks to Chanse for that one.)
Ctrl + C: Copy text
Ctrl + V: Paste text
Ctrl + X: Cut text
Ctrl + A: Select all
Ctrl + O: Open (if available)
Ctrl + N: Create a new item (if available)
Ctrl + S: Save (if available)
Ctrl + Z: Undo (if available)
Ctrl + Y: Redo (if available)
Ctrl + F: Open search bar (if available)
Ctrl + Right arrow: Move the insertion point to the end of the word
Ctrl + Left arrow: Move the insertion point to the beginning of the word

Web browser
Ctrl + N: Open a new window
Ctrl + R: Reload the current page
Ctrl + B: Open a bookmark
Ctrl + D: Add a bookmark


Email
Ctrl + Enter: Send a message
Ctrl + R: Reply to a message


RSS Reader
Ctrl + R: Refresh the feed
Screenshots
Ctrl + Shift + P: Capture a screenshot.


3.rooting N900


Install rootsh package


Run root or sudo gainroot



4.Upgrade firmware to PR1.2

https://wiki.maemo.org/Updating_the_tablet_firmware

Download firmware
http://tablets-dev.nokia.com/nokia_N900.php

Usage
http://www.mobile01.com/topicdetail.php?f=122&t=1571608&p=1
http://www.mobile01.com/topicdetail.php?f=122&t=1571904&p=1
http://www.maemoers.com/thread-1176-1-1.html

5.Some screenshots









6.Access built-in camera through gstreamer

http://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Using_Multimedia_Components/Camera_API_Usage

Since the maemo platform delegates all multimedia handling to the GStreamer framework, applications that need access to the built-in camera should employ GStreamer for this, instead of directly accessing Video4Linux devices, via the v4l2src GStreamer module.

安裝gstreamer tools
sudo gainroot

apt-get install gstreamer-tools

http://blog.pclewis.com/2010/02/streaming-nokia-n900-camera-to-vlc/


2010年6月10日 星期四

Rowboat Android Compile for BeagleBoard

Attention !!! The article is no longer useful due to rowboat updated ...

1.Get source


repo init
-u git://gitorious.org/rowboat/manifest.git -m rowboat-eclair-dsp.xml

2.Build

cd kernel
git checkout -b rowboat-eclair-2.6.32 rowboat/rowboat-eclair-2.6.32
cd ..

make TARGET_PRODUCT=beagleboard BUILD_WITH_GST=true dvsdk

3.Problems & Solutions

4.IO_ADDRESS undefine

Edit external/ti-dsp/dvsdk_3_00_02_44/dsplink_1_61_03/packages/dsplink/gpp/src/arch/OMAP3530/shmem/Linux/omap3530_phy_shmem.c

#if 0
halObject->generalCtrlBase = (Uint32)IO_ADDRESS(GENERAL_CONTROL_BASE) ;
halObject->iva2CmBase = (Uint32)IO_ADDRESS(IVA2_CM_BASE) ;
halObject->coreCmBase = (Uint32)IO_ADDRESS(CORE_CM_BASE) ;
halObject->perCmBase = (Uint32)IO_ADDRESS(PER_CM_BASE) ;
halObject->iva2PrmBase = (Uint32)IO_ADDRESS(IVA2_PRM_BASE) ;
halObject->mailboxBase = (Uint32)IO_ADDRESS(MAILBOX_BASE) ;
#endif
halObject->generalCtrlBase = (Uint32)ioremap(GENERAL_CONTROL_BASE, 4096) ;
halObject->iva2CmBase = (Uint32)ioremap(IVA2_CM_BASE, 8192) ;
halObject->coreCmBase = (Uint32)ioremap(CORE_CM_BASE, 8192) ;
halObject->perCmBase = (Uint32)ioremap(PER_CM_BASE, 8192) ;
halObject->iva2PrmBase = (Uint32)ioremap(IVA2_PRM_BASE, 8192) ;
halObject->mailboxBase = (Uint32)ioremap(MAILBOX_BASE, 4096) ;

5.

CC [M] /home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.o
/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c:53:2: warning: #warning *** not a warning *** Note: LINUX_VERSION_CODE >= 2.6.26
/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c: In function 'set_cached':
/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c:1086: error: 'L_PTE_CACHEABLE' undeclared (first use in this function)
/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c:1086: error: (Each undeclared identifier is reported only once
/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c:1086: error: for each function it appears in.)
/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c:1086: error: 'L_PTE_BUFFERABLE' undeclared (first use in this function)
make[6]: *** [/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.o] Error 1
make[5]: *** [_module_/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages/ti/sdo/linuxutils/cmem/src/module] Error 2
make[5]: Leaving directory `/home/gigijoe/rowboat-android/kernel'
gmake[4]: *** [release] Error 2
gmake[4]: Leaving directory `/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages/ti/sdo/linuxutils/cmem/src/module'
gmake[3]: *** [module] Error 2
gmake[3]: Leaving directory `/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages/ti/sdo/linuxutils/cmem/src'
gmake[2]: *** [src] Error 2
gmake[2]: Leaving directory `/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages/ti/sdo/linuxutils/cmem'
make[1]: *** [cmem_build] Error 2
make[1]: Leaving directory `/home/gigijoe/rowboat-android/external/ti-dsp'
make: *** [dvsdk] Error 2

Edit external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c


- vma->vm_page_prot = __pgprot(pgprot_val(vma->vm_page_prot) |
- (L_PTE_CACHEABLE | L_PTE_BUFFERABLE)
- );
+ vma->vm_page_prot = __pgprot(pgprot_val(vma->vm_page_prot) |
+ (L_PTE_MT_WRITETHROUGH | L_PTE_MT_BUFFERABLE)
+ );

Reference
http://www.mail-archive.com/davinci-linux-open-source@linux.davincidsp.com/msg15716.html

6.

CC [M] /home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages/ti/sdo/linuxutils/sdma/src/module/sdmak.o
/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages/ti/sdo/linuxutils/sdma/src/module/sdmak.c:45:22: error: mach/dma.h: No such file or directory
/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages/ti/sdo/linuxutils/sdma/src/module/sdmak.c:46:21: error: mach/tc.h: No such file or directory
/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages/ti/sdo/linuxutils/sdma/src/module/sdmak.c:61:2: warning: #warning *** not a warning *** Note: LINUX_VERSION_CODE >= 2.6.26
/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages/ti/sdo/linuxutils/sdma/src/module/sdmak.c: In function 'dma_ioctl':
/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages/ti/sdo/linuxutils/sdma/src/module/sdmak.c:150: error: implicit declaration of function 'omap_request_dma'
/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages/ti/sdo/linuxutils/sdma/src/module/sdmak.c:150: error: 'OMAP_DMA_NO_DEVICE' undeclared (first use in this function)
/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages/ti/sdo/linuxutils/sdma/src/module/sdmak.c:150: error: (Each undeclared identifier is reported only once
/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages/ti/sdo/linuxutils/sdma/src/module/sdmak.c:150: error: for each function it appears in.)
/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages/ti/sdo/linuxutils/sdma/src/module/sdmak.c:184: error: implicit declaration of function 'omap_free_dma'
make[6]: *** [/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages/ti/sdo/linuxutils/sdma/src/module/sdmak.o] Error 1
make[5]: *** [_module_/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages/ti/sdo/linuxutils/sdma/src/module] Error 2
make[5]: Leaving directory `/home/gigijoe/rowboat-android/kernel'
gmake[4]: *** [release] Error 2
gmake[4]: Leaving directory `/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages/ti/sdo/linuxutils/sdma/src/module'
gmake[3]: *** [module] Error 2
gmake[3]: Leaving directory `/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages/ti/sdo/linuxutils/sdma/src'
gmake[2]: *** [src] Error 2
gmake[2]: Leaving directory `/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages/ti/sdo/linuxutils/sdma'
make[1]: *** [sdma_build] Error 2
make[1]: Leaving directory `/home/gigijoe/rowboat-android/external/ti-dsp'
make: *** [dvsdk] Error 2

Edit external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages/ti/sdo/linuxutils/sdma/src/module/sdmak.c

-#include mach/dma.h
-#include mach/tc.h
+#include plat/dma.h
+#include plat/tc.h


7.Unable to compile mp3codec. Disable it

======== .interfaces [packages/ti/sdo/codecs/mp3dec] ========
package.mak:17: *** target pattern contains no `%'. Stop.
gmake: *** [packages/ti/sdo/codecs/mp3dec,.interfaces] Error 2
gmake[2]: *** [.all-packages] Error 2
gmake[2]: Leaving directory `/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/cs1omap3530_1_00_01'
make[1]: *** [cs_build] Error 2
make[1]: Leaving directory `/home/gigijoe/rowboat-android/external/ti-dsp'
make: *** [dvsdk] Error 2

Edit external/ti-dsp/dvsdk_3_00_02_44/cs1omap3530_1_00_01/packages/ti/sdo/server/cs/codec.cfg

- var MP3DEC = xdc.useModule('ti.sdo.codecs.mp3dec.ce.MP3DEC');
-// MP3DEC.alg.watermark = true; /*if it is evaluation version */
- MP3DEC.alg.watermark = false; /*if it is production version.*/
- MP3DEC.alg.codeSection = "DDR2";
- MP3DEC.alg.dataSection = "DDR2";
- MP3DEC.alg.udataSection = "DDR2";

...

- {name: "mp3dec", mod: MP3DEC,threadAttrs: {
- stackMemId: 0, priority: Server.MINPRI + 2}, groupId : 1,
- },
...

Edit external/ti-dsp/dvsdk_3_00_02_44/cs1omap3530_1_00_01/packages/ti/sdo/server/cs/package.xs

- validate_one_codec( "ti.sdo.codecs.mp3dec", "MP3DEC" );

rm -rf external/ti-dsp/dvsdk_3_00_02_44/cs1omap3530_1_00_01/packages/ti/sdo/codecs/mp3dec

8.

linux/Display_fbdev.c:45:29: error: mach/omapfb.h: No such file or directory
linux/Display_fbdev.c: In function 'Display_fbdev_create':
linux/Display_fbdev.c:260: error: 'OMAPFB_COLOR_YUV422' undeclared (first use in this function)
linux/Display_fbdev.c:260: error: (Each undeclared identifier is reported only once
linux/Display_fbdev.c:260: error: for each function it appears in.)
linux/Display_fbdev.c:279: warning: comparison between signed and unsigned integer expressions
linux/Display_fbdev.c:279: warning: comparison between signed and unsigned integer expressions
linux/Display_fbdev.c:280: warning: comparison between signed and unsigned integer expressions
gmake[3]: *** [obj/linux/Display_fbdev.omap3530.o470MV] Error 1
gmake[3]: Leaving directory `/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/dmai_2_00_01_04/packages/ti/sdo/dmai'
gmake[2]: *** [all] Error 2
gmake[2]: Leaving directory `/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/dmai_2_00_01_04'
make[1]: *** [dmai_build] Error 2
make[1]: Leaving directory `/home/gigijoe/rowboat-android/external/ti-dsp'
make: *** [dvsdk] Error 2

Edit external/ti-dsp/dvsdk_3_00_02_44/dmai_2_00_01_04/packages/ti/sdo/dmai/linux/Display_fbdev.c

#ifdef Dmai_Device_omap3530
- #include mach/omapfb.h
+ #include linux/omapfb.h
#else
// #include video/davincifb.h
#endif


9.

/home/gigijoe/rowboat-android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-gcc -I/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/xdctools_3_15_01_59/packages -I../../../../packages -I/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/packages -I/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages -I/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/xdais_6_24/packages -DDmai_Device_omap3530 -I/home/gigijoe/rowboat-android/kernel/include -I/home/gigijoe/rowboat-android/kernel/arch/arm/plat-omap/include -include /home/gigijoe/rowboat-android/kernel/include/linux/autoconf.h -I/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages -I/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/dsplink_1_61_03/packages -DDmai_BuildOs_linux -Dxdc_target_types__=gnu/targets/std.h -I/home/gigijoe/dvsdk_3_00_00_32/linuxlibs/include -Dxdc_target_name__=arm/GCArmv7A -g -Wall -I/home/gigijoe/rowboat-android/bionic/libc/arch-arm/include -I/home/gigijoe/rowboat-android/bionic/libc/include -I/home/gigijoe/rowboat-android/bionic/libstdc++/include -I/home/gigijoe/rowboat-android/bionic/libc/kernel/common -I/home/gigijoe/rowboat-android/bionic/libc/kernel/arch-arm -I/home/gigijoe/rowboat-android/bionic/libm/include -I/home/gigijoe/rowboat-android/bionic/libm/arch/arm/include -I/home/gigijoe/rowboat-android/bionic/libthread_db/include -DHAVE_ARM_TLS_REGISTER -DANDROID -D_ANDROID_ -DSK_RELEASE -DNDEBUG -UDEBUG -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -finline-functions -fno-inline-functions-called-once -fgcse-after-reload -frerun-cse-after-loop -frename-registers -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -fno-exceptions -fmessage-length=0 -march=armv7-a -mfloat-abi=softfp -msoft-float -mfpu=neon -mthumb -mthumb-interwork -W -Wall -Wno-unused -Winit-self -Wpointer-arith -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wstrict-aliasing=2 -Wno-multichar -Wno-missing-field-initializers -Os -g -I/home/gigijoe/rowboat-android/external/alsa-lib/include -I/home/gigijoe/rowboat-android/frameworks/base/include -c -o obj/linux/Fifo.omap3530.o470MV linux/Fifo.c
In file included from /home/gigijoe/rowboat-android/bionic/libc/kernel/arch-arm/asm/signal.h:82,
from /home/gigijoe/rowboat-android/bionic/libc/include/signal.h:35,
from /home/gigijoe/rowboat-android/bionic/libc/include/pthread.h:32,
from linux/Fifo.c:35:
/home/gigijoe/rowboat-android/kernel/include/asm-generic/signal.h:94: error: '__BITS_PER_LONG' undeclared here (not in a function)
/home/gigijoe/rowboat-android/kernel/include/asm-generic/signal.h:95: error: conflicting types for 'sigset_t'
/home/gigijoe/rowboat-android/bionic/libc/kernel/arch-arm/asm/signal.h:20: note: previous declaration of 'sigset_t' was here
In file included from /home/gigijoe/rowboat-android/bionic/libc/include/signal.h:35,
from /home/gigijoe/rowboat-android/bionic/libc/include/pthread.h:32,
from linux/Fifo.c:35:
/home/gigijoe/rowboat-android/bionic/libc/kernel/arch-arm/asm/signal.h:84: error: redefinition of 'struct sigaction'
/home/gigijoe/rowboat-android/bionic/libc/kernel/arch-arm/asm/signal.h:97: error: redefinition of 'struct sigaltstack'
/home/gigijoe/rowboat-android/bionic/libc/kernel/arch-arm/asm/signal.h:101: error: conflicting types for 'stack_t'
/home/gigijoe/rowboat-android/kernel/include/asm-generic/signal.h:119: note: previous declaration of 'stack_t' was here
gmake[3]: *** [obj/linux/Fifo.omap3530.o470MV] Error 1
gmake[3]: Leaving directory `/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/dmai_2_00_01_04/packages/ti/sdo/dmai'
gmake[2]: *** [all] Error 2
gmake[2]: Leaving directory `/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/dmai_2_00_01_04'
make[1]: *** [dmai_build] Error 2
make[1]: Leaving directory `/home/gigijoe/rowboat-android/external/ti-dsp'
make: *** [dvsdk] Error 2

Edit external/ti-dsp/dvsdk_3_00_02_44/dmai_2_00_01_04/packages/ti/sdo/dmai/Makefile

-GCC_CPP_FLAGS += $(CPP_FLAGS) -I$(LINUXKERNEL_INSTALL_DIR)/include -I$(LINUXKERNEL_INSTALL_DIR)/arch/arm/$(PLATFORM_ARCH)/include $(HAVE_AUTOCONFIG) -I$(CMEM_INSTALL_DIR)/packages -I$(LINK_INSTALL_DIR)/packages -DDmai_BuildOs_linux -Dxdc_target_types__=gnu/targets/std.h -I$(LINUXLIBS_INSTALL_DIR)/include -Dxdc_target_name__=arm/GCArmv7A
+GCC_CPP_FLAGS += $(CPP_FLAGS) -I$(LINUXKERNEL_INSTALL_DIR)/arch/arm/$(PLATFORM_ARCH)/include $(HAVE_AUTOCONFIG) -I$(CMEM_INSTALL_DIR)/packages -I$(LINK_INSTALL_DIR)/packages -DDmai_BuildOs_linux -Dxdc_target_types__=gnu/targets/std.h -I$(LINUXLIBS_INSTALL_DIR)/include -Dxdc_target_name__=arm/GCArmv7A

10.

/home/gigijoe/rowboat-android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-gcc -I/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/xdctools_3_15_01_59/packages -I../../../../packages -I/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/packages -I/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages -I/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/xdais_6_24/packages -DDmai_Device_omap3530 -I/home/gigijoe/rowboat-android/kernel/arch/arm/plat-omap/include -include /home/gigijoe/rowboat-android/kernel/include/linux/autoconf.h -I/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages -I/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/dsplink_1_61_03/packages -DDmai_BuildOs_linux -Dxdc_target_types__=gnu/targets/std.h -I/home/gigijoe/dvsdk_3_00_00_32/linuxlibs/include -Dxdc_target_name__=arm/GCArmv7A -g -Wall -I/home/gigijoe/rowboat-android/bionic/libc/arch-arm/include -I/home/gigijoe/rowboat-android/bionic/libc/include -I/home/gigijoe/rowboat-android/bionic/libstdc++/include -I/home/gigijoe/rowboat-android/bionic/libc/kernel/common -I/home/gigijoe/rowboat-android/bionic/libc/kernel/arch-arm -I/home/gigijoe/rowboat-android/bionic/libm/include -I/home/gigijoe/rowboat-android/bionic/libm/arch/arm/include -I/home/gigijoe/rowboat-android/bionic/libthread_db/include -DHAVE_ARM_TLS_REGISTER -DANDROID -D_ANDROID_ -DSK_RELEASE -DNDEBUG -UDEBUG -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -finline-functions -fno-inline-functions-called-once -fgcse-after-reload -frerun-cse-after-loop -frename-registers -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -fno-exceptions -fmessage-length=0 -march=armv7-a -mfloat-abi=softfp -msoft-float -mfpu=neon -mthumb -mthumb-interwork -W -Wall -Wno-unused -Winit-self -Wpointer-arith -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wstrict-aliasing=2 -Wno-multichar -Wno-missing-field-initializers -Os -g -I/home/gigijoe/rowboat-android/external/alsa-lib/include -I/home/gigijoe/rowboat-android/frameworks/base/include -c -o obj/linux/omap3530/Framecopy_accel.omap3530.o470MV linux/omap3530/Framecopy_accel.c
linux/omap3530/Framecopy_accel.c:51:32: error: linux/omap_resizer.h: No such file or directory
linux/omap3530/Framecopy_accel.c: In function 'Framecopy_accel_config':
linux/omap3530/Framecopy_accel.c:78: error: variable 'params' has initializer but incomplete type
linux/omap3530/Framecopy_accel.c:79: warning: excess elements in struct initializer
linux/omap3530/Framecopy_accel.c:79: warning: (near initialization for 'params')
linux/omap3530/Framecopy_accel.c:80: warning: excess elements in struct initializer
linux/omap3530/Framecopy_accel.c:80: warning: (near initialization for 'params')
linux/omap3530/Framecopy_accel.c:81: warning: excess elements in struct initializer
linux/omap3530/Framecopy_accel.c:81: warning: (near initialization for 'params')
linux/omap3530/Framecopy_accel.c:82: error: 'RSZ_INTYPE_YCBCR422_16BIT' undeclared (first use in this function)
linux/omap3530/Framecopy_accel.c:82: error: (Each undeclared identifier is reported only once
linux/omap3530/Framecopy_accel.c:82: error: for each function it appears in.)
linux/omap3530/Framecopy_accel.c:82: warning: excess elements in struct initializer
linux/omap3530/Framecopy_accel.c:82: warning: (near initialization for 'params')
linux/omap3530/Framecopy_accel.c:83: warning: excess elements in struct initializer
linux/omap3530/Framecopy_accel.c:83: warning: (near initialization for 'params')
linux/omap3530/Framecopy_accel.c:84: warning: excess elements in struct initializer
linux/omap3530/Framecopy_accel.c:84: warning: (near initialization for 'params')
linux/omap3530/Framecopy_accel.c:85: warning: excess elements in struct initializer
linux/omap3530/Framecopy_accel.c:85: warning: (near initialization for 'params')
linux/omap3530/Framecopy_accel.c:86: error: 'RSZ_PIX_FMT_UYVY' undeclared (first use in this function)
linux/omap3530/Framecopy_accel.c:86: warning: excess elements in struct initializer
linux/omap3530/Framecopy_accel.c:86: warning: (near initialization for 'params')
linux/omap3530/Framecopy_accel.c:87: warning: excess elements in struct initializer
linux/omap3530/Framecopy_accel.c:87: warning: (near initialization for 'params')
linux/omap3530/Framecopy_accel.c:88: warning: excess elements in struct initializer
linux/omap3530/Framecopy_accel.c:88: warning: (near initialization for 'params')
linux/omap3530/Framecopy_accel.c:89: warning: excess elements in struct initializer
linux/omap3530/Framecopy_accel.c:89: warning: (near initialization for 'params')
linux/omap3530/Framecopy_accel.c:90: warning: excess elements in struct initializer
linux/omap3530/Framecopy_accel.c:90: warning: (near initialization for 'params')
linux/omap3530/Framecopy_accel.c:91: warning: excess elements in struct initializer
linux/omap3530/Framecopy_accel.c:91: warning: (near initialization for 'params')
linux/omap3530/Framecopy_accel.c:92: error: extra brace group at end of initializer
linux/omap3530/Framecopy_accel.c:92: error: (near initialization for 'params')
linux/omap3530/Framecopy_accel.c:97: warning: excess elements in struct initializer
linux/omap3530/Framecopy_accel.c:97: warning: (near initialization for 'params')
linux/omap3530/Framecopy_accel.c:98: error: extra brace group at end of initializer
linux/omap3530/Framecopy_accel.c:98: error: (near initialization for 'params')
linux/omap3530/Framecopy_accel.c:103: warning: excess elements in struct initializer
linux/omap3530/Framecopy_accel.c:103: warning: (near initialization for 'params')
linux/omap3530/Framecopy_accel.c:104: error: extra brace group at end of initializer
linux/omap3530/Framecopy_accel.c:104: error: (near initialization for 'params')
linux/omap3530/Framecopy_accel.c:109: warning: excess elements in struct initializer
linux/omap3530/Framecopy_accel.c:109: warning: (near initialization for 'params')
linux/omap3530/Framecopy_accel.c:78: error: storage size of 'params' isn't known
linux/omap3530/Framecopy_accel.c:140: error: 'RSZ_S_PARAM' undeclared (first use in this function)
linux/omap3530/Framecopy_accel.c:147: error: 'RSZ_S_EXP' undeclared (first use in this function)
linux/omap3530/Framecopy_accel.c:155: error: 'RSZ_REQBUF' undeclared (first use in this function)
linux/omap3530/Framecopy_accel.c: In function 'Framecopy_accel_execute':
linux/omap3530/Framecopy_accel.c:221: error: 'RSZ_QUERYBUF' undeclared (first use in this function)
linux/omap3530/Framecopy_accel.c:235: error: 'RSZ_QUEUEBUF' undeclared (first use in this function)
linux/omap3530/Framecopy_accel.c:241: error: 'RSZ_RESIZE' undeclared (first use in this function)
gmake[3]: *** [obj/linux/omap3530/Framecopy_accel.omap3530.o470MV] Error 1
gmake[3]: Leaving directory `/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/dmai_2_00_01_04/packages/ti/sdo/dmai'
gmake[2]: *** [all] Error 2
gmake[2]: Leaving directory `/home/gigijoe/rowboat-android/external/ti-dsp/dvsdk_3_00_02_44/dmai_2_00_01_04'
make[1]: *** [dmai_build] Error 2
make[1]: Leaving directory `/home/gigijoe/rowboat-android/external/ti-dsp'
make: *** [dvsdk] Error 2

Edit external/ti-dsp/dvsdk_3_00_02_44/dmai_2_00_01_04/packages/ti/sdo/dmai/Makefile

+GCC_CPP_FLAGS += $(CPP_FLAGS) -I$(LINUXKERNEL_INSTALL_DIR)/include -I$(LINUXKERNEL_INSTALL_DIR)/arch/arm/$(PLATFORM_ARCH)/include $(HAVE_AUTOCONFIG) -I$(CMEM_INSTALL_DIR)/packages -I$(LINK_INSTALL_DIR)/packages -DDmai_BuildOs_linux -Dxdc_target_types__=gnu/targets/std.h -I$(LINUXLIBS_INSTALL_DIR)/include -Dxdc_target_name__=arm/GCArmv7A
-GCC_CPP_FLAGS += $(CPP_FLAGS) -I$(LINUXKERNEL_INSTALL_DIR)/arch/arm/$(PLATFORM_ARCH)/include $(HAVE_AUTOCONFIG) -I$(CMEM_INSTALL_DIR)/packages -I$(LINK_INSTALL_DIR)/packages -DDmai_BuildOs_linux -Dxdc_target_types__=gnu/targets/std.h -I$(LINUXLIBS_INSTALL_DIR)/include -Dxdc_target_name__=arm/GCArmv7A

11.cmemk: Unknown symbol init_mm


Edit kernel/.config

CONFIG_UNUSED_SYMBOLS=y
vi ./external/ti-dsp/dvsdk_3_00_02_44/codec_engine_2_24_01/cetools/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c

/*
* This is useful to dump out the page tables associated with
* 'addr' in mm 'mm'.
*/
void show_pte(struct mm_struct *mm, unsigned long addr)
{
pgd_t *pgd;
#if 0
if (!mm)
mm = &init_mm;
#endif

vi ./external/ti-dsp/dvsdk_3_00_02_44/linuxutils_2_24_02/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c

/*
* This is useful to dump out the page tables associated with
* 'addr' in mm 'mm'.
*/
void show_pte(struct mm_struct *mm, unsigned long addr)
{
pgd_t *pgd;
#if 0
if (!mm)
mm = &init_mm;
#endif

Reference

http://groups.google.gp/group/linux.kernel/browse_thread/thread/66877343361ce881


12.Disable trace of dsplink

Edit external/ti-dsp/Makefile

-DSPLINK_CONFIG := --platform=OMAP3530 --nodsp=1 --dspcfg_0=OMAP3530SHMEM --dspos_0=DSPBIOS5XX --gppos=OMAPLSP --comps=ponslrmc --trace=1
+DSPLINK_CONFIG := --platform=OMAP3530 --nodsp=1 --dspcfg_0=OMAP3530SHMEM --dspos_0=DSPBIOS5XX --gppos=OMAPLSP --comps=ponslrmc

13.TI DMAI issue

The Dmai not work due to incompatable DSS sysfs interface

export CE_DEBUG=1
export DMAI_DEBUG=3

@0,629,974us: [+6 T:0xafe44a98] CE - Engine_init> CE debugging on (CE_DEBUG=1; allowed CE_DEBUG levels: 1=min, 2=good, 3=max)
@0,430,175us: [+6 T:0xafe44a98] CE - Engine_init> CE debugging on (CE_DEBUG=1; allowed CE_DEBUG levels: 1=min, 2=good, 3=max)
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
@0,590,759us: [+7 T:0x0010dfa8] ti.sdo.dmai - [Dmai] Failed to open /sys/devices/platform/omapfb/overlays for writing
@0,590,850us: [+7 T:0x0010dfa8] ti.sdo.dmai - [Display] Failed to write gfx e:0 on /sys/devices/platform/omapfb/overlays
@0,590,881us: [+7 T:0x0010dfa8] ti.sdo.dmai - Caught SIGSEGV accessing address 0x1
init: untracked pid 1047 exited

For now I just disable sysfs support to get DMAI works with default DSS setup.

Edit external/ti-dsp/dvsdk_3_00_02_44/dmai_2_00_01_04/packages/ti/sdo/dmai/linux/Display.c

/******************************************************************************
 * _Display_sysfsChange (INTERNAL)
 ******************************************************************************/
Int _Display_sysfsChange(Display_Output displayOutput,
                    Char* displayDevice, VideoStd_Type *videoType,
                    Int *rotation)
{
+#if 0
-#ifdef Dmai_Device_omap3530   

Testing

gst-launch-0.10 videotestsrc num-buffers=1000 ! TIDmaiVideoSink accelFrameCopy=false

gst-launch-0.10 filesrc location=/sdcard/video.mp4 ! typefind ! qtdemux name=demux demux.video_00 ! queue ! TIViddec2 ! TIDmaiVideoSink accelFrameCopy=false


2010年6月1日 星期二

Gstreamer V4L2 input & H.264 RTP

Reference

http://processors.wiki.ti.com/index.php/Example_GStreamer_Pipelines

http://cgit.freedesktop.org/gstreamer/gst-plugins-good/tree/gst/rtp/README


1.Camera preview

gst-launch-0.10 v4l2src ! video/x-raw-yuv,width=320,height=240 ! ffmpegcolorspace ! ximagesink

2.Video Source (192.168.168.90)

gst-launch -v v4l2src ! video/x-raw-yuv,width=640,height=480,framerate=30/1 ! x264enc ! rtph264pay pt=96 ! multiudpsink clients="192.168.168.75:1234"

另外一種方式

http://cgit.freedesktop.org/gstreamer/gst-plugins-good/tree/tests/examples/rtp/server-v4l2-H264-alsasrc-PCMA.sh

3.Video Sink (192.168.168.75)

gst-launch udpsrc port=1234 caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H264" ! gstrtpjitterbuffer latency=100 ! rtph264depay ! ffdec_h264 ! xvimagesink

另外一種方式

http://cgit.freedesktop.org/gstreamer/gst-plugins-good/tree/tests/examples/rtp/client-H264.sh

http://cgit.freedesktop.org/gstreamer/gst-plugins-good/tree/tests/examples/rtp/client-H264-PCMA.sh

4.轉載一篇很詳細的文章

http://www.twm-kd.com/computers/software/webcam-and-linux-gstreamer-tutorial/