Archive for the 'data-flows' Category

nvidia tv out on debian (ubuntu – linux)

9 Comments

I have tryed a long time to get a video singal out of my nVidia GeForce 8600 GT (rev a1) and finally it works.

I use a 10 meter S-VHS cable to my sony bravia 40″ 16:9 flat screen

here’s the lspci:

05:00.0 VGA compatible controller: nVidia Corporation GeForce 8600 GT (rev a1)

And here’s my xorg.conf:

Section “ServerLayout”
Identifier     “Layout0″
Screen      0  “Screen0″ 0 0
Screen      1  “Screen1″ RightOf “Screen0″
InputDevice    “Keyboard0″ “CoreKeyboard”
InputDevice    “Mouse0″ “CorePointer”
EndSection

Section “Files”
RgbPath         “/usr/X11R6/lib/X11/rgb”
EndSection

Section “Module”
Load           “dbe”
Load           “extmod”
Load           “type1″
Load           “freetype”
Load           “glx”
EndSection

Section “ServerFlags”
Option         “Xinerama” “0″
EndSection

Section “InputDevice”

# generated from default
Identifier     “Mouse0″
Driver         “mouse”
Option         “Protocol” “auto”
Option         “Device” “/dev/psaux”
Option         “Emulate3Buttons” “no”
Option         “ZAxisMapping” “4 5″
EndSection

Section “InputDevice”

# generated from default
Identifier     “Keyboard0″
Driver         “kbd”
EndSection

Section “Monitor”
Identifier     “Monitor0″
VendorName     “Unknown”
ModelName      “LG L1970HR”
HorizSync       30.0 – 83.0
VertRefresh     56.0 – 75.0
Option         “DPMS”
EndSection

Section “Monitor”
Identifier     “Monitor1″
VendorName     “Unknown”
ModelName      “TV-0″
HorizSync       28.0 – 33.0
VertRefresh     43.0 – 72.0
EndSection

Section “Device”
Identifier     “Device0″
Driver         “nvidia”
VendorName     “NVIDIA Corporation”
EndSection

Section “Device”
Identifier     “Videocard0″
Driver         “nvidia”
VendorName     “NVIDIA Corporation”
BoardName      “GeForce 8600 GT”
BusID          “PCI:5:0:0″
Screen          0
EndSection

Section “Device”
Identifier     “Videocard1″
Driver         “nvidia”
VendorName     “NVIDIA Corporation”
BoardName      “GeForce 8600 GT”
BusID          “PCI:5:0:0″
Screen          1
EndSection

Section “Screen”
Identifier     “Screen0″
Device         “Videocard0″
Monitor        “Monitor0″
DefaultDepth    24
Option         “TwinView” “0″
Option         “TwinViewXineramaInfoOrder” “CRT-0″
Option         “metamodes” “CRT: nvidia-auto-select +0+0″
Option         “TVStandard” “PAL-B”
Option         “TVOutFormat” “SVIDEO”
SubSection     “Display”
Depth       24
EndSubSection
EndSection

Section “Screen”

# Removed Option “metamodes” “TV: nvidia-auto-select +0+0″
# Removed Option “metamodes” “TV: nvidia-auto-select @1440×900 +0+0″
# Removed Option “metamodes” “TV: nvidia-auto-select @1440×900 +0+0; TV: nvidia-auto-select @1440×900 +0+0″
Identifier     “Screen1″
Device         “Videocard1″
Monitor        “Monitor1″
DefaultDepth    24
Option         “TwinView” “0″
Option         “metamodes” “TV: 1440×900 +0+0″
Option         “TVStandard” “PAL-B”
Option         “TVOutFormat” “SVIDEO”
SubSection     “Display”
Depth       24
EndSubSection
EndSection

Two lines are very important:

Option         “TVStandard” “PAL-B”
Option         “TVOutFormat” “SVIDEO”

If these options aren’t set the picture will flicker.

OK, now restart your X server and there should be a signal on the line.

Now the next question was how to get any application on tv out?

Here’s the answer:

DISPLAY=:0.1 ‘command’

for example:

DISPLAY=:0.1 vlc /home/user/video.mp4

have fun, cheerio – chaos

android on freerunner startup logcat

Add a comment

Whats happening when you are starting your freerunner and boot it into the android os?

Here’s a little log file: logcat_startup

And here’s the log file when i halted the system: logcat_shutdown

how did i get the log file?

Here are the commands:

root@hades:~# ifconfig usb0 192.168.0.1
root@hades:~# ADBHOST=192.168.0.202 ./adb kill-server
root@hades:~# ADBHOST=192.168.0.202 ./adb start-server

* daemon not running. starting it now *
* daemon started successfully *
root@hades:~# ADBHOST=192.168.0.202 ./adb logcat

greetz chaos

Openmoko – analyzing data streams #part4

Add a comment

Now i try to analyze the debug output of the data-strings:

First question:

How do I get debug working?

Simple, it’s a kernel module, just load it.

Second question:

How does it work?

The usbmon reports requests made by peripheral-specific drivers to Host Controller Drivers (HCD)

Now we have a look at the output:

The first two rows:

df1abd40 4124528134 C Ii:2:001:1 0:128 1 = 02
df1abd40 4124528161 S Ii:2:001:1 -115:128 2 <

You can see the pipes (Li)

Ii Io   Interrupt input and output

The rows 4-8 looking like this:

d8598240 4124584035 S Ci:2:001:0 s a3 00 0000 0001 0004 4 <
d8598240 4124584049 C Ci:2:001:0 0 4 = 01010100
d8598240 4124584052 S Co:2:001:0 s 23 01 0010 0001 0000 0
d8598240 4124584057 C Co:2:001:0 0 0

There are also shown the pipes(Ci and Co)

Ci Co   Control input and output

At the end of the debug output file you can find the following rows:

d85983c0 457439369 S Bi:2:075:1 -115 1514 <
d8598ac0 457444660 S Bo:2:075:2 -115 90 = 33330000 001662ba 1c2ef54c 86dd6000 00000024 00010000 00000000 00000000

Here you can find other pipes(Bi and Bo)

Bi Bo   Bulk input and output

For all rows the following statement applies:

Bus number, Device address, and Endpoint are decimal numbers, but they may
have leading zeros, for the sake of human readers.

greetz chaos

Openmoko – analyzing data streams #part3

1 Comment

hello again² :)

now i’m gonna flash the rootfs into the right register (should be: 0×0f6a0000)

first step was to flash the kernel image (i took the android image)

and now i flash the rootfs:

root@hades:~/om# dfu-util -a rootfs -R -D androidfs.jffs2
dfu-util – (C) 2007 by OpenMoko Inc.
This program is Free Software and has ABSOLUTELY NO WARRANTY

Opening USB Device 0×0000:0×0000…
Claiming USB DFU Runtime Interface…
Determining device status: state = appIDLE, status = 0
Device really in Runtime Mode, send DFU detach request…
Resetting USB…
Opening USB Device…
Found Runtime: [0x1d50:0x5119] devnum=73, cfg=0, intf=0, alt=6, name=”rootfs”
Claiming USB DFU Interface…
Setting Alternate Setting …
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
Transfer Size = 0×1000
bytes_per_hash=673255
Starting download: [##################################################] finished!
state(2) = dfuIDLE, status(0) = No error condition is present
Done!
Resetting USB to switch back to runtime mode

done! … try to run it … kernel verification … checksum ok … no kernel panic … black screen … android splash screen shows up … running :)

so here’s the data-string.

next step is to analyse the data-strings. wooohooo, will be a hard, nice work.

greets chaos

Openmoko – analyzing data streams #part2

1 Comment

hello again :)

so, now we know in which register the kernel is written, but which data has been flashed?

i flashed the current mwebster kernel (qtopia 4.4.2)

root@hades:~# dfu-util -a kernel -R -D testing-om-gta02-20081029.uImage.bin
dfu-util – (C) 2007 by OpenMoko Inc.
This program is Free Software and has ABSOLUTELY NO WARRANTY

Opening USB Device 0×0000:0×0000…
Claiming USB DFU Runtime Interface…
Determining device status: state = appIDLE, status = 0
Device really in Runtime Mode, send DFU detach request…
Resetting USB…
Opening USB Device…
Found Runtime: [0x1d50:0x5119] devnum=63, cfg=0, intf=0, alt=3, name=”kernel”
Claiming USB DFU Interface…
Setting Alternate Setting …
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
Transfer Size = 0×1000
bytes_per_hash=35150
Starting download: [##################################################] finished!
state(2) = dfuIDLE, status(0) = No error condition is present
Done!
Resetting USB to switch back to runtime mode

and the datastring can be found here (1829 lines – too much to post ;) )

greetz chaos