V4L2 supported Kernel oder Custom Rom >> UVC Treiber

mindcase

mindcase

Neues Mitglied
0
Hallo

Ich suche seit längerem nach einem Kernel oder Custom Rom der "Video for Linux" (V4L) unterstützt. >>UVC Driver support.

Dieser Treiber wird benötigt um das Bild einer externe Webcam über ein OTG Kabel anzeigen zu lassen. Ich habe eine alte Webcam umgebaut und möchte diese für die Astrophotographie nutzen. Ziel ist es das Bild von meinem Teleskop auf dem Tablet zu sehen. Eine app dafür ist z.B. "dashcam". Ich weiß, das das neue "oppo find 7", das "nexus 7 tablet" und der "Kernel von Ubuntu" diesen UVC Treiber unterstützt.

Das ganze sieht dann ungefähr so aus >> brain.cc.kogakuin.ac.jp/research/usb-e.html

Ich kann leider mit dem Code nicht wirklich was anfangen, da ich nicht weiß wie man einen Kernel compiliert.. Vielleicht kann mir jemand helfen mein Problem zu lösen. Für jemanden der sich damit auskennt, kann das doch eigentlich nicht so wild sein? ;)

Ich bin für jede Hilfe dankbar.

Code:
Select Code
CONFIG_VIDEO_DEV=y
CONFIG_VIDEO_V4L2_COMMON=y
CONFIG_VIDEO_MEDIA=y
CONFIG_USB_VIDEO_CLASS=y
CONFIG_V4L_USB_DRIVERS=y
CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y


Zusätzliche links und info:
brain.cc.kogakuin.ac.jp/research/usb-e.html
github.com/openxc/android-webcam

Linux UVC driver and tools:
http://www.ideasonboard.org/uvc/#documentation
http://www.linuxtv.org/wiki/index.php/How_to_Obtain,_Build_and_Install_V4L-DVB_Device_Drivers

Modell Xperia Tablet Z SGP311
Android 4.4.2 Stock-Rom [rooted]
Kernel 3.4.0 Stock [unlocked]
Build 10.5.A.0.230
 
Zuletzt bearbeitet:
Hallo

ich hab mir jetzt mal auf der Seite developer.sonymobile.com den aktuellen Quellcode für meine 4.4.2 Stock-Rom inkl. Kernel 3.4.0 Build 10.5.A.0.230 runtergeladen.

Diese gepackte Datei "10.5.A.0.230.tar.bz2"

Im Ordner "kernel\drivers\media\video\" fand ich eine "Kconfig" Datei. In dieser Datei steht dann unter anderem:

#
# Multimedia Video device configuration
#

menuconfig VIDEO_CAPTURE_DRIVERS
bool "Video capture adapters"
depends on VIDEO_V4L2
default y
---help---
Say Y here to enable selecting the video adapters for
webcams
, analog TV, and hybrid analog/digital TV.
Some of those devices also supports FM radio.

usw..



Also ich werd daraus nicht schlau, es scheint, das V4L2 enabled ist..

Es gibt auch einen Ordner "kernel\drivers\media\video\uvc\"

In dem steht :

"config USB_VIDEO_CLASS
tristate "USB Video Class (UVC)"
select VIDEOBUF2_VMALLOC
---help---
Support for the USB Video Class (UVC). Currently only video
input devices, such as webcams, are supported."


Ich werd daraus nicht schlau..

Kann mir jemand vielleicht einen Tipp geben was ich suchen muss und oder auf was ich achten muss?

Vielen Dank :winki:
 
Zuletzt bearbeitet:
Was sagt denn deine .config ?
Hast du schon mal nen Kernel gebaut?
Nur weil in der KConfig V4L aktiviert ist, heißt es nicht, das es auch kompeliert wird :)
Du musst in deiner Defconfig dies auch aktivieren wie in deinem ersten Post geschrieben.
 
switchgott schrieb:
Was sagt denn deine .config ?

Die .config wird durch make Defconfig, in meinem Fall beim SGP311
"make fusion3_pollux_windy_defconfig" in der Kernel-Source kompiliert..

In meiner aktuellen .config fehlt der von mir gepostete Code noch..


Du musst in deiner Defconfig dies auch aktivieren wie in deinem ersten Post geschrieben.

Ich muss also erst den Code in meine Defconfig "aktivieren" bzw. "ändern" und dann nochmal kompilieren. Ist das soweit richtig? :razz:

Der ursprüngliche Beitrag von 02:35 Uhr wurde um 03:29 Uhr ergänzt:

Soo, hab den Code in die Defconfig geschrieben, nochmal kompiliert und siehe da... In der jetzigen .config steht alles drinn :thumbsup:

Wie geht es jetzt weiter? Kommt jetzt CROSS_COMPILE..
 
Zuletzt bearbeitet:
Puhh...
Ok.. also du fängst gerade erst an..

Kleines Howto :)

export ARCH=arm
export CROSS_COMPILER=/Pfad zu deinem Toolchain/android-toolchain-eabi/bin/arm-eabi-

Danach machst du eigendlich:

make fusion3_pollux_windy_defconfig (Must das Def File nehmen mit deinen Änderungen drinne)

Wenn alles OK ist einfach:

make -j8 (J beschreibt die Anzahl Prozesse beim Kompelieren)

Heraus müsste z.b. ein ZImage kommen.Steht unter arch/arm/boot/
 
  • Danke
Reaktionen: mindcase
Danke für die Hilfe ;)

Ich hab mir das in die .bashrc im Home-Verzeichnis mit reingeschrieben.

#Android Toolchain PATHS
export ARCH=arm
export CCOMPILE=$CROSS_COMPILE
export CROSS_COMPILE=arm-eabi-
export PATH=$PATH:/home/user/toolchains/arm-eabi-4.4.3/bin
 
Zuletzt bearbeitet:
Hmm, der erste Versuch wurde abgebrochen..

drivers/gpu/msm/adreno_snapshot.c: In function 'snapshot_rb':
drivers/gpu/msm/adreno_snapshot.c:628: sorry, unimplemented: inlining failed in call to 'parse_ib': recursive inlining
drivers/gpu/msm/adreno_snapshot.c:588: sorry, unimplemented: called from here
make[3]: *** [drivers/gpu/msm/adreno_snapshot.o] Fehler 1
make[2]: *** [drivers/gpu/msm] Fehler 2
make[1]: *** [drivers/gpu] Fehler 2
make: *** [drivers] Fehler 2
 
Mh, hast du noch mehr Logs für mich?

Warum machst du das Script so kompliziert?
Schreib doch einfach drei Zeilen .-)
 
Zuletzt bearbeitet:
Warum machst du das Script so kompliziert?
Keine Ahnung, ich weiss noch nicht ganz genau was ich tu.. ;)

Ich hab grad nochmal den Orginal-Kernel ohne Aenderungen in der fusion3_pollux_windy_defconfig kompiliert. Hat eine Zeit lang gedauert, aber es kam keine Fehlermeldung. Jedoch finde ich das ZImage in arch/arm/boot/ nicht.. :(

Nach erneuten kompilieren kamen wieder Fehlermeldungen..

Gibt es vielleicht eine genaue Anleitung mit Grundlagen wo man sich einlesen kann? In deutsch. Ein Tutorial in deutsch waere auch nicht schlecht.
 
puhh..schau mal bei den XDAs vorbei..da gibts ein paar Anleitung zu kompelieren..
spätestens wenn du mit Linaro anfängst gibts das nicht mehr..
Du musst mal weiter oben schauen in den Logs..da muss es einen Fehler geben.
Darum baust du auch kein Zimage.
 
..soo, bin jetzt nach der Anleitung von DooMLoRD vorgegangen..

Ich habe DooMLoRDs toolchains benutzt.

Meine fusion3_pollux_windy_defconfig mit o.g. Code erweitert und..

mit
ARCH=arm CROSS_COMPILE=/home/xxxxxxxxxxxx/toolchains/arm-linux-androideabi-4.7/bin/arm-linux-androideabi- make fusion3_pollux_windy_defconfig
die .config erstellt

und zuletzt mit
ARCH=arm CROSS_COMPILE=/home/xxxxxxxxxxxx/toolchains/arm-linux-androideabi-4.7/bin/arm-linux-androideabi- make -j8
das zImage erstellt.

Der ursprüngliche Beitrag von 20:52 Uhr wurde um 21:00 Uhr ergänzt:

Dann das boot.img nach Anleitung von Youtube Benutzer IT ADV vom Tablet via adb erstellt.
 
Zuletzt bearbeitet:
Oh Mann, jetzt hab ich folgendes Problem beim entpacken der boot.img..

xx@xx-nas:~$ cd boot_sony
xx@xx-nas:~/boot_sony$ ls
boot.img
xx@xx-nas:~/boot_sony$ abootimg -x boot.img
boot.img: no Android Magic Value
boot.img: not a valid Android Boot Image.

xx@xx-nas:~/boot_sony$

Ich hab mal versucht, das mit einem Slimrom-boot.img von meinem S2 zu machen, da kam der gleiche Fehler. >>..liegt anscheinend nicht an der boot.img

Was ist denn das nun schon wieder.. ? :huh:
 
Zuletzt bearbeitet:
Warum willst du das boot.img entpacken?
Viel wichtiger, wie hast du es denn erstellt?
 
Das boot.img habe ich nach dieser Anweisung von dem Youtube Benutzer IT ADV erstellt.

Tablet an ubuntu anstecken.

#Terminal

adb shell

ls -al /dev/block/platform/msm_sdcc.1/by-name

#Hier dann in der liste den ordner mit der Bezeichnung boot gesucht und Pfad kopiert.
#lrwxrwxrwx root root 1970-12-27 21:24 boot -> /dev/block/mmcblk0p17

su

dd if=/dev/block/mmcblk0p17 of=/sdcard/boot.img

#new Terminal
cd boot_sony
adb pull /sdcard/boot.img

Danach habe ich im Homeverzeichnis/boot_sony meine boot.img stehen. (das image ist 20mb gross)

..und in dieses boot.img muss ich doch dann mein neues zImage einfuegen.

Der ursprüngliche Beitrag von 23:30 Uhr wurde um 23:40 Uhr ergänzt:

Koennte mir das Tool Any-Kernel da evtl. weiterhelfen?

How it works:

updater-script runs and extract the boot.img from your current ROM.
It unpacks the boot.img into kernel and ramdisk.
It repacks newboot.img with the new kernel and the same ramdisk.
It flashes the newly created boot image.

>>AnyKernel auf github.com
 
?????


Um das boot IMG zu erzeugen musst du z.b. für CM folgendes tun:

./mkbootimg --kernel android_kernel_sony_apq8064/arch/arm/boot/zImage --ramdisk ramdisk/ramdisk.cpio.gz --cmdline "console=ttyHSL0,115200,n8 androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x3F ehci-hcd.park=3 maxcpus=2" --base 0x80200000 --pagesize 2048 --ramdisk_offset 0x02000000 -o output/boot.img
 
Ich habe jetzt folgendes zurueck bekommen.

xx@xx-nas:~/boot_sony$ ./mkbootimg --kernel /home/xx/android/kernel/arch/arm/boot/zImage --ramdisk ramdisk/ramdisk.cpio.gz --cmdline "console=ttyHSL0,115200,n8 androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x3F ehci-hcd.park=3 maxcpus=2" --base 0x80200000 --pagesize 2048 --ramdisk_offset 0x02000000 -o output/boot.img
usage: mkbootimg
--kernel <filename>
--ramdisk <filename>
[ --second <2ndbootloader-filename> ]
[ --cmdline <kernel-commandline> ]
[ --board <boardname> ]
[ --base <address> ]
[ --pagesize <pagesize> ]
-o|--output <filename>
xx@xx-nas:~/boot_sony$

Ich habe aber leider kein boot.img und keine ramdisk bekommen. Wenn ja wo muesste ich das finden..

Aus welchem Verzeichnis heraus muss ich das Script den ausfuehren? ..und welche datein braucht das Script. Danke nochmal fuer deine Hilfe :thumbup:
 
Sorry, das war ein Bsp.
Das sind meine Werte, du musst deinen Pfad dort richtig eintragen und auch die Tools dir besorgen :)
 
Puhhhhhhh, :blink:

Ich muss jetzt doch nochmal die Grundlagen erfragen.. :biggrin:

Um ein flashbares Boot.img zu erzeugen brauche ich folgende Dateien

zImage
ramdisk.gz

Also, ich hab ja den Original Source Code von Sony (Orginal 10.5.A.0.230)
In dem open source archives gibt es 3 Ordner. (external, kernel und vendor)

Mein neues zImage mit dem UVC Treibern hab ich auch schon, das wuerde ich dann in folgenden Pfad legen. "Orginal 10.5.A.0.230/kernel/arch/arm/boot"

d. h. es fehlt eigenlich nur meine ramdisk.gz... liege ich da richtig? und die muesste ich doch eigentlich auch selber erstellen koennen.

Und welche tools brauche ich denn genau dafuer? :unsure:
 
Hi Leute ich suche schon länger einen Kernel der am Xperia Tablet Z Usb audio out unterstützt..


Ich habe mir den Usb Audio Player pro aus dem Playstore gekauft.

Hier einen Link zum Usb audio Player Pro:

https://play.google.com/store/apps/details?id=com.extreamsd.usbaudioplayerpro&hl=de

Die App besitzt einen eigenen Usb Audio Treiber.
Jetzt kann ich per Ps3 Pulse wireless headsed über die App Musik hören..

Hier ein Link vom Headsed:
http://www.amazon.de/PS3-PULSE-Wireless-Stereo-Headset-Elite-Edition-schwarz/dp/B008HODBAM

Aber leider nur in der App,also es wird nicht das komplette Android System per usb audio ausgegeben..

Ist es möglich den Treiber von der App manuell zu installieren?


Dann könnte ich nämlich auch Filme und YouTube Videos über das Headsed hören:).

Ich hoffe mir kann jemand helfen :).


Gruß Julian
 
@Mindcase: Bist bei der Geschichte schon weitergekommen?
lg
 

Ähnliche Themen

dereinetyp
  • dereinetyp
Antworten
8
Aufrufe
1.302
dereinetyp
dereinetyp
H
Antworten
3
Aufrufe
1.037
evasion
evasion
L
Antworten
4
Aufrufe
1.894
Aaskereija
Aaskereija
Zurück
Oben Unten