Problem with gstreamer on Nitrogen6x

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Problem with gstreamer on Nitrogen6x

Jump to solution
6,328 Views
hkh
Contributor II

Hello Otavio, Leonardo, and Daiane,

Sorry about not having a separate thread for my question. This time I used "Start a discussion", and I hope this is what you meant by starting a new thread. I am not familiar with all the ways a question could be posted on this community. If this is not the right place, please provide more direction as what to do next time.

In my last post in Yocto Project main page I explained the problem I was having with mesa, and I understand that a patch is now applied to Dora branch...

I am using Dora branch of Yocto with Nitrogen6x from BoundaryDevices. The board is populated with iMX6 Solo processor.

The Linux version used is 3.0.35-4.1.0, and the image name printed on the console is:

Linux-3.0.35-4.1.0+yocto+g580993

The board came with an SD Card that had a Timesys demo on it. I could get the MIPI camera video to display on the LCD with this command:

$ gst-launch mfw_v4lsrc capture-mode=5 ! mfw_v4lsink disp-width=1280 disp-height=800

With the Yocto image that I built, I can't get the gstreamer to work. This is the error I am getting:

root@nitrogen6x:~# gst-launch mfw_v4lsrc ! mfw_v4lsink
MFW_GST_V4LSRC_PLUGIN 3.0.9 build on Apr 16 2014 09:57:53.
pwm_config: pwm freq = 22000000, clk_select=1 clock_rate=66000000
ov5640_mipi_camera_powerdown: powerdown=0, power_gp=0xa9
MFW_GST_V4LSINK_PLUGIN 3.0.9 build on Apr 16 2014 09:57:39.
Setting pipeline to PAUSED …
pwm_config: pwm freq = 22000000, clk_select=1 clock_rate=66000000
ov5640_mipi_camera_powerdown: powerdown=0, power_gp=0xa9
Pipeline is live and does not need PREROLL …
Setting pipeline to PLAYING …
New clock: GstSystemClock
ERROR: v4l2 capture: mxc_v4l_dqueue timeout enc_counter 0
ERROR: from element /GstPipeline:pipeline0/MFWGstV4LSrc:mfwgstv4lsrc0: Internal data flow error.
Additional debug info:
/yocto/build/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/gstreamer/0.10.36-r2/gstreamer-0.10.36/libs/gst/base/gstbasesrc.c(2625): gst_base_src_loop (): /GstPipeline:pipeline0/MFWGstV4LSrc:mfwgstv4lsrc0:
streaming task paused, reason error (-5)
Execution ended after 10004586509 ns.
Setting pipeline to PAUSED …
Setting pipeline to READY …
Setting pipeline to NULL …
Total rendered:0
Freeing pipeline …
[—>FINALIZE v4l_sink
root@nitrogen6x:~# ov5640_mipi_camera_powerdown: powerdown=1, power_gp=0xa9

root@nitrogen6x:~#

I tried different variations such as using the same options I used for the Timesys build, but I keep getting the same error.

The is the complete console dump on startup:

U-Boot 2013.10-00049-ge2ee7f4 (Nov 07 2013 - 10:51:26)

CPU:   Freescale i.MX6SOLO rev1.1 at 792 MHz
Reset cause: POR
Board: Nitrogen6X
DRAM:  512 MiB
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
SF: Detected SST25VF016B with page size 256 Bytes, erase size 4 KiB, total 2 MiB
Display: LDB-WXGA (1280x800)
In:    serial
Out:   serial
Err:   serial
Net:   using phy at 6
FEC [PRIME]
Hit any key to stop autoboot:  0
mmc0 is current device
reading /6x_bootscript
2340 bytes read in 13 ms (175.8 KiB/s)
## Executing script at 10008000
------ no HDMI monitor
Setting bus to 2
Valid chip addresses:
------ no Freescale display
Valid chip addresses: 38
Valid chip addresses:
------ no 800x480 display
reading /imx6q-nitrogen6x.dtb
** Unable to read file /imx6q-nitrogen6x.dtb **
only CEA modes allowed on HDMI port
reading /uImage
3738920 bytes read in 173 ms (20.6 MiB/s)
## Booting kernel from Legacy Image at 10800000 ...
   Image Name:   Linux-3.0.35-4.1.0+yocto+g580993
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3738856 Bytes = 3.6 MiB
   Load Address: 10008000
   Entry Point:  10008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
Linux version 3.0.35-4.1.0+yocto+g5809938 (gcc version 4.8.1 (GCC) ) #1 SMP PREEMPT Wed Apr 16 08:04:23 PDT 2014
CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine: Boundary Devices Nitrogen6X/SABRE Lite Board
Memory policy: ECC disabled, Data cache writealloc
CPU identified as i.MX6DL/SOLO, silicon rev 1.1
PERCPU: Embedded 7 pages/cpu @8bc06000 s5440 r8192 d15040 u32768
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 97280
Kernel command line: enable_wait_mode=off video=mxcfb0:dev=ldb,1024x600M@60,if=RGB666 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off fbmem=10M console=ttymxc1,115200 vmalloc=400M consoleblank=0 rootwait root=/dev/mmcblk0p2 mxc_hdmi.only_cea=1
PID hash table entries: 2048 (order: 1, 8192 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Memory: 384MB = 384MB total
Memory: 381052k/381052k available, 143236k reserved, 0K highmem
Virtual kernel memory layout:
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
    DMA     : 0xf4600000 - 0xffe00000   ( 184 MB)
    vmalloc : 0xa0800000 - 0xf2000000   (1304 MB)
    lowmem  : 0x80000000 - 0xa0000000   ( 512 MB)
    pkmap   : 0x7fe00000 - 0x80000000   (   2 MB)
    modules : 0x7f000000 - 0x7fe00000   (  14 MB)
      .init : 0x80008000 - 0x8003a000   ( 200 kB)
      .text : 0x8003a000 - 0x806d20b8   (6753 kB)
      .data : 0x806d4000 - 0x8072b560   ( 350 kB)
       .bss : 0x8072b584 - 0x8076f8c4   ( 273 kB)
SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Preemptible hierarchical RCU implementation.
NR_IRQS:624
MXC GPIO hardware
sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 1431655ms
Set periph_clk's parent to pll2_pfd_400M!
arm_max_freq=1GHz
MXC_Early serial console at MMIO 0x21e8000 (options '115200')
bootconsole [ttymxc1] enabled
Console: colour dummy device 80x30
Calibrating delay loop... 1581.05 BogoMIPS (lpj=7905280)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available
Brought up 1 CPUs
SMP: Total of 1 processors activated (1581.05 BogoMIPS).
devtmpfs: initialized
print_constraints: dummy:
NET: Registered protocol family 16
print_constraints: vddpu: 725 <--> 1300 mV at 1150 mV fast normal
print_constraints: vddcore: 725 <--> 1300 mV at 1150 mV fast normal
print_constraints: vddsoc: 725 <--> 1300 mV at 1200 mV fast normal
print_constraints: vdd2p5: 2000 <--> 2775 mV at 2400 mV fast normal
print_constraints: vdd1p1: 800 <--> 1400 mV at 1100 mV fast normal
print_constraints: vdd3p0: 2625 <--> 3400 mV at 3000 mV fast normal
------------ Board type Nitrogen6X/W
imx_add_mxc_pwm:pdata=  (null)
imx_add_mxc_pwm:pdata=  (null)
imx_add_mxc_pwm:pdata=806f7268
imx_add_mxc_pwm:pdata=  (null)
Flexcan NXP tja1040
hw-breakpoint: found 6 breakpoint and 1 watchpoint registers.
hw-breakpoint: 1 breakpoint(s) reserved for watchpoint single-step.
hw-breakpoint: maximum watchpoint size is 4 bytes.
L310 cache controller enabled
l2x0: 16 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x02050000, Cache size: 524288 B
bio: create slab <bio-0> at 0
print_constraints: VDDA: 2500 mV
print_constraints: VDDIO: 3300 mV
machine_constraints_voltage: VDDD: unsupportable voltage constraints
reg-fixed-voltage reg-fixed-voltage.2: Failed to register regulator: -22
reg-fixed-voltage: probe of reg-fixed-voltage.2 failed with error -22
print_constraints: vmmc: 3300 mV
print_constraints: VDD_1.8V: 1800 mV
vgaarb: loaded
SCSI subsystem initialized
spi_imx imx6q-ecspi.0: probed
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
Freescale USB OTG Driver loaded, $Revision: 1.55 $
imx-ipuv3 imx-ipuv3.0: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)
mxc_mipi_csi2 mxc_mipi_csi2: i.MX MIPI CSI2 driver probed
mxc_mipi_csi2 mxc_mipi_csi2: i.MX MIPI CSI2 dphy version is 0x3130302a
MIPI CSI2 driver module loaded
Advanced Linux Sound Architecture Driver Version 1.0.24.
Bluetooth: Core ver 2.16
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
Bluetooth: L2CAP socket layer initialized
Bluetooth: SCO socket layer initialized
Switching to clocksource mxc_timer1
cfg80211: Calling CRDA to update world regulatory domain
NET: Registered protocol family 2
IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
TCP established hash table entries: 16384 (order: 5, 131072 bytes)
TCP bind hash table entries: 16384 (order: 5, 196608 bytes)
TCP: Hash tables configured (established 16384 bind 16384)
TCP reno registered
UDP hash table entries: 256 (order: 1, 8192 bytes)
UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
Static Power Management for Freescale i.MX6
wait mode is disabled for i.MX6
cpaddr = a0820000 suspend_iram_base=a08b4000
PM driver module loaded
iMX6 PCIe PCIe RC mode imx_pcie_pltfm_probe entering.
PCIE: imx_pcie_pltfm_probe start link up.
link up failed, DB_R0:0x00bb5400, DB_R1:0x08200000!
IMX PCIe port: link down!
IMX usb wakeup probe
add wake up source irq 75
IMX usb wakeup probe
cpu regulator mode:ldo_enable
i.MXC CPU frequency driver
squashfs: version 4.0 (2009/01/31) Phillip Lougher
msgmni has been set to 744
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
pwm_config: pwm freq = 32786, clk_select=2 clock_rate=22000000
pwm_config: pwm freq = 20000, clk_select=2 clock_rate=22000000
MIPI DSI driver module loaded
mxc_sdc_fb mxc_sdc_fb.0: register mxc display driver ldb
_regulator_get: get() with no identifier
fbcvt: Aspect ratio not CVT standard
fbcvt: 1024x600@60: CVT Name - Not a CVT standard - 0.614 Mega Pixel Image

ldb_disp_init: ret=1, 1024x600
ldb_disp_init:r=59, x=1024, y=600, p=20408, l=144, r=40, upper=3, lower=11, h=104, v=10
ldb_disp_init: 1280x800
ipu_init_sync_panel: disp=0, pixel_clk=49000000 48489795
imx-ipuv3 imx-ipuv3.0: IPU DMFC DP HIGH RESOLUTION: 1(0,1), 5B(2~5), 5F(6,7)
pwm_config: pwm freq = 32786, clk_select=2 clock_rate=22000000
pwm_config: pwm freq = 20000, clk_select=2 clock_rate=22000000
ipu_init_sync_panel: disp=0, pixel_clk=49000000 48489795
Console: switching to colour frame buffer device 128x37
mxc_sdc_fb mxc_sdc_fb.1: mxcfb1 is turned off!
imx-sdma imx-sdma: loaded firmware 1.1
imx-sdma imx-sdma: initialized
Serial: IMX driver
imx-uart.0: ttymxc0 at MMIO 0x2020000 (irq = 58) is a IMX
imx-uart.1: ttymxc1 at MMIO 0x21e8000 (irq = 59) is a IMX
old_ufcr=a81 new_ufcr=b01, old_ucr2=4027 new_ucr2=4027, old_ubir=f num=1f7, old_ubmr=15b denom=c34
clk=80000000 div=7 num=504 denom=3125 baud=115200
console [ttymxc1] enabled, bootconsole disabled
console [ttymxc1] enabled, bootconsole disabled
imx-uart.2: ttymxc2 at MMIO 0x21ec000 (irq = 60) is a IMX
imx-uart.3: ttymxc3 at MMIO 0x21f0000 (irq = 61) is a IMX
imx-uart.4: ttymxc4 at MMIO 0x21f4000 (irq = 62) is a IMX
loop: module loaded
m25p80 spi0.0: sst25vf016b (2048 Kbytes)
Creating 3 MTD partitions on "m25p80":
0x000000000000-0x0000000c0000 : "bootloader"
0x0000000c0000-0x0000000c2000 : "ubparams"
0x0000000c2000-0x000000200000 : "unused"
vcan: Virtual CAN interface driver
CAN device driver interface
flexcan netdevice driver
flexcan imx6q-flexcan.0: device registered (reg_base=a0958000, irq=142)
FEC Ethernet Driver
fec_enet_mii_bus: probed
tun: Universal TUN/TAP device driver, 1.6
tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
fsl-ehci fsl-ehci.0: Freescale On-Chip EHCI Host Controller
fsl-ehci fsl-ehci.0: new USB bus registered, assigned bus number 1
fsl-ehci fsl-ehci.0: irq 75, io base 0x02184000
fsl-ehci fsl-ehci.0: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
add wake up source irq 72
fsl-ehci fsl-ehci.1: Freescale On-Chip EHCI Host Controller
fsl-ehci fsl-ehci.1: new USB bus registered, assigned bus number 2
fsl-ehci fsl-ehci.1: irq 72, io base 0x02184200
fsl-ehci fsl-ehci.1: USB 2.0 started, EHCI 1.00
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
usbcore: registered new interface driver cdc_acm
cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usbcore: registered new interface driver usbserial
usbserial: USB Serial Driver core
USB Serial support registered for GSM modem (1-port)
usbcore: registered new interface driver option
option: v0.7.2:USB Driver for GSM modems
USB Serial support registered for Qualcomm USB modem
usbcore: registered new interface driver qcserial
ARC USBOTG Device Controller driver (1 August 2005)
mousedev: PS/2 mouse device common for all mice
input: gpio-keys as /devices/platform/gpio-keys/input/input0
tsc2004_prepare_for_reading: write_cmd -5
tsc2004: probe of 2-0048 failed with error -5
egalax_ts 2-0004: egalax_ts: failed to read firmware version
egalax_ts: probe of 2-0004 failed with error -5
ts_probe: ft5x06 touchscreen irq=265, gp=9
input: ft5x06 as /devices/virtual/input/input1
ft5x06: Apr 16 2014
rtc-isl1208 0-006f: chip found, driver version 0.3
add wake up source irq 108
rtc-isl1208 0-006f: rtc core: registered rtc-isl1208 as rtc0
check_alarm_past: alarm in the past
snvs_rtc snvs_rtc.0: rtc core: registered snvs_rtc as rtc1
i2c /dev entries driver
Linux video capture interface: v2.00
mxc_v4l2_output mxc_v4l2_output.0: V4L2 device registered as video16
mxc_v4l2_output mxc_v4l2_output.0: V4L2 device registered as video17
i2c-core: driver [mma8450] using legacy suspend method
i2c-core: driver [mma8450] using legacy resume method
add mma8450 i2c driver
imx2-wdt imx2-wdt.0: IMX2+ Watchdog Timer enabled. timeout=60s (nowayout=1)
device-mapper: ioctl: 4.20.0-ioctl (2011-02-02) initialised: dm-devel@redhat.com
Bluetooth: HCI UART driver ver 2.2
Bluetooth: HCILL protocol initialized
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci sdhci-esdhc-imx.2: no write-protect pin available!
mmc0: SDHCI controller on platform [sdhci-esdhc-imx.2] using ADMA
sdhci sdhci-esdhc-imx.3: no write-protect pin available!
mmc1: SDHCI controller on platform [sdhci-esdhc-imx.3] using ADMA
mmc2: SDHCI controller on platform [sdhci-esdhc-imx.1] using ADMA
mxc_vdoa mxc_vdoa: i.MX Video Data Order Adapter(VDOA) driver probed
VPU initialized
usb 2-1: new high speed USB device number 2 using fsl-ehci
mxc_asrc registered
Galcore version 4.6.9.6622
Thermal calibration data is 0x59650d5f
Thermal sensor with ratio = 185
Anatop Thermal registered as thermal_zone0
anatop_thermal_probe: default cooling device is cpufreq!
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
usbcore: registered new interface driver snd-usb-audio
mxc_hdmi_soc mxc_hdmi_soc.0: MXC HDMI Audio
imx-hdmi-soc-dai imx-hdmi-soc-dai.0: Failed: Load HDMI-video first.
sgtl5000 0-000a: Failed to get supply 'VDDD': -19
print_constraints: 0-000a: 850 <--> 1600 mV at 1200 mV normal
mmc0: host does not support reading read-only switch. assuming write-enable.
sgtl5000 0-000a: sgtl5000 revision 17
mmc0: new high speed SDHC card at address aaaa
mmcblk0: mmc0:aaaa SL16G 14.8 GiB
mmcblk0: p1 p2
hub 2-1:1.0: USB hub found
hub 2-1:1.0: 3 ports detected
asoc: sgtl5000 <-> imx-ssi.1 mapping ok
Initialize HDMI-audio failed. Load HDMI-video first!
ALSA device list:
  #0: sgtl5000-audio
NET: Registered protocol family 26
TCP cubic registered
NET: Registered protocol family 17
can: controller area network core (rev 20090105 abi 8)
NET: Registered protocol family 29
can: raw protocol (rev 20090105)
can: broadcast manager protocol (rev 20090105 t)
Bluetooth: RFCOMM TTY layer initialized
Bluetooth: RFCOMM socket layer initialized
Bluetooth: RFCOMM ver 1.11
Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Bluetooth: BNEP filters: protocol multicast
Bluetooth: HIDP (Human Interface Emulation) ver 1.2
lib80211: common routines for IEEE802.11 drivers
VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
Bus freq driver module loaded
Bus freq driver Enabled
mxc_dvfs_core_probe
DVFS driver module loaded
rtc-isl1208 0-006f: setting system clock to 2014-04-16 18:10:14 UTC (1397671814)
EXT3-fs: barriers not enabled
kjournald starting.  Commit interval 5 seconds
EXT3-fs (mmcblk0p2): using internal journal
EXT3-fs (mmcblk0p2): recovery complete
EXT3-fs (mmcblk0p2): mounted filesystem with writeback data mode
VFS: Mounted root (ext3 filesystem) on device 179:2.
devtmpfs: mounted
Freeing init memory: 200K
INIT: version 2.88 booting
Starting udev
udevd[1388]: starting version 182
ov5640_mipi_camera_io_init
got pwm for mipi_clock
pwm_config: pwm freq = 22000000, clk_select=1 clock_rate=66000000
camera_reset: power_gp=0xa9, reset_gp=0x25 reset_gp2=0xab
pwm_config: pwm freq = 22000000, clk_select=1 clock_rate=66000000
ov5640_mipi_camera_powerdown: powerdown=0, power_gp=0xa9
ov5640_mipi_camera_powerdown: powerdown=1, power_gp=0xa9
camera ov5640_mipi is found
Starting Bootlog daemon: bootlogd.
ALSA: Restoring mixer settings...
No state is present for card sgtl5000audio
Found hardware: "sgtl5000-audio" "" "" "" ""
Hardware is initialized using a generic method
No state is present for card sgtl5000audio
Configuring network interfaces... eth0: Freescale FEC PHY driver [Micrel KSZ9021 Gigabit PHY] (mii_bus:phy_addr=1:06, irq=284)
udhcpc (v1.21.1) started
Sending discover...
Sending discover...

Sending discover...
No lease, failing
Starting rpcbind daemon...rpcbind: cannot create socket for udp6
rpcbind: cannot create socket for tcp6
done.
INIT: Entering runlevel: 5
Starting Xserver
Starting system message bus: dbus.
Starting Connection Manager
Starting Dropbear SSH server: ipu_init_sync_panel: disp=0, pixel_clk=49000000 48489795
dropbear.
pwm_config: pwm freq = 32786, clk_select=2 clock_rate=22000000
pwm_config: pwm freq = 20000, clk_select=2 clock_rate=22000000
Starting advanced power management daemon: apmd.
apmd[1731]: apmd 3.2.1 interfacing with apm driver 1.13 and APM BIOS 1.2
creating NFS state directory: done
NFS daemon support not enabled in kernel
[drm] Initialized drm 1.1.0 20060810
Starting syslogd/klogd: [drm] Initialized vivante 1.0.0 20120216 on minor 0
done
* Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon
   ...done.
Starting Telephony daemon
Starting Linux NFC daemon
Starting OProfileUI server
Running local boot scripts (/etc/rc.local).
Stopping Bootlog daemon: bootlogd.

Poky (Yocto Project Reference Distro) 1.5.1 nitrogen6x /dev/ttymxc1

nitrogen6x login: ts_thread: invalid button count 7f
ipu_init_sync_panel: disp=0, pixel_clk=49000000 48489795
pwm_config: pwm freq = 32786, clk_select=2 clock_rate=22000000
pwm_config: pwm freq = 20000, clk_select=2 clock_rate=22000000

Poky (Yocto Project Reference Distro) 1.5.1 nitrogen6x /dev/ttymxc1

nitrogen6x login

Any idea what might be wrong?

Thanks,

1 Solution
4,417 Views
EricNelson
Senior Contributor II

Hi hk,

This shows that you need a boot script update. There are some comments in this blog

post:

      http://boundarydevices.com/1280x800-displays/

Essentially, your display is newer than the boot script, and you need an update to recognize the 1280x800 display.

I placed an updated version here:

     http://storage.googleapis.com/boundarydevices.com/6x-bootscript-yocto-1280x800.zip

View solution in original post

0 Kudos
24 Replies
4,311 Views
ct3paul
Contributor II

Hi hkh

     Can I konw how did you do with rtc-isl1208?

     I see your rtc-isl1208 work successfully because your kernel boot show rtc-isl1208 0-006f: setting system clock to 2014-04-16 18:10:14 UTC (1397671814)"".

     Then please tell me how can I do and did you change the driver in kernel?

Thanks

chen

0 Kudos
4,309 Views
EricNelson
Senior Contributor II

Hi HK,

I have a handful of comments:

  • The title of the discussion is more properly "problem with Nitrogen6x and MIPI and gstreamer", since your problem is specifically with the MIPI camera.
  • This is an issue for us (Boundary Devices) to work, not Daiane, Leonardo, and Otavio, since it's very unlikely to be either a general gstreamer issue or an issue with the Yocto build.
  • In the discussion on our blog, you mentioned that the issue was with a MIPI camera, which is fairly widely used:  http://boundarydevices.com/yocto-dora-release-mx6/#comment-175698
  • You didn't mention that you were running on a Solo processor, and my guess is that this is a key piece to the puzzle. If you look in the "board-mx6_nitrogen6x.c" file in our kernel tree, you'll see that there are a lot of variables surrounding the use of the MIPI camera, and I suspect that between your kernel configuration and use of the Solo processor, something isn't quite getting mapped right.
    linux-imx6/arch/arm/mach-mx6/board-mx6_nitrogen6x.c at boundary-imx_3.0.35_4.1.0 · boundarydevices/l...

Please let us know the results of using the binary kernel we provided so we can determine whether this is a configuration issue or a kernel bug.

Thanks,


Eric

0 Kudos
4,309 Views
hkh
Contributor II

Hi Eric,

I updated just the Kernel by overwriting uImage and /lib/modules/* with the binary image that you gave me (keeping everything else intact on the SD Card). Things look more promising. I don't get errors when I run gst-launch.

With an HDMI monitor attached, I now see the "Desktop" when the unit boots. With the original build I would see the Yocto splash screen and the progress bar, but nothing would show up after that. I have a 1280x800 LCD with touch screen. The mouse responds to the touch screen, and I can launch the demo applications. I can also see the camera image on the HDMI monitor by running:

$ modprobe mxc_v4l2_capture

$ gst-launch mfw_v4lsrc ! mfw_v4lsink

I see messages on the console that indicates the correct display resolution was detected (1280x720 in this case)

I don't see anything on the LCD when I power up the unit without a monitor attached. I don't get any error, and the messages printed on the console are similar to when things work with the HDMI display. I remember seeing a note that indicated the LCD might be powered off on power up, but I did could not find the command sequence that would turn it back on. Here are some of the options I tried:

$ gst-launch mfw_v4lsrc ! mfw_v4lsink

$ gst-launch mfw_v4lsrc ! mfw_v4lsink disp-width=1280 disp-height=800 device=/dev/video16

So, what does this tell us that we can actually see the camera image on HDMI with the updated Kernel?

Thanks

0 Kudos
4,309 Views
EricNelson
Senior Contributor II

Hi hk,


Can I get you to test out this kernel and module set?

     http://linode.boundarydevices.com/linux-nitrogen6x-mipi-20140423.tar.gz

This kernel enables the hdmi_isfr_clk while the MIPI interface is active.

0 Kudos
4,309 Views
hkh
Contributor II

Hi Eric,

We have designed a custom MIPI camera to plug into Nitrogen6x, and we need to develop a driver for it. I checked out a new copy of Dora last week, and the two issues discussed here do not seem to be in the Dora release:

1. Enable MIPI clock when HDMI is not present

2. Set things up correctly in platform file for MIPI camera when using Solo processor

I need to modify the platform file (board-mx6_nitrogen6x.c) to support the new driver. Which version of this file do you suggest I start with?

How do I apply the MIPI clock patch to my local build?

Thanks,

0 Kudos
4,309 Views
EricNelson
Senior Contributor II

Sorry hkh,

It appears that I dropped the ball pushing a patch to the Dora branch of the community BSP.

You can replace the SRCREV in meta-fsl-arm-extra/recipes-kernel/linux/linux-boundary_3.0.35.bb with this tag to get the patch:

     33387003022a3c3b6416c78568145eb681decbae

mxc_mipi_csi2: Needs hdmi_isfr_clk to function · 3338700 · boundarydevices/linux-imx6 · GitHub

0 Kudos
4,309 Views
hkh
Contributor II

Also, would running bitbake to make the image pickup on this change, or do I have to delete cache/etc for this change to be picked up by the tools?

0 Kudos
4,310 Views
EricNelson
Senior Contributor II

Since your goal is to hack the kernel anyway, I would start with a clone of linux-imx6 from our Github repository. That way you have the ability to use git to track your changes.

Trying to work within the confines of a Yocto build is cumbersome at best, and should really only be done at the end of the project (when tying up loose ends).

4,311 Views
hkh
Contributor II

I figured out my problem (I was missing the /kernelversion/ directory in /lib/modules/kernelversion/ path). MIPI and LCD are now both working with my own build.

Sorry about all these messages.

Thank you for suggesting to do the development outside Dora environment. It is going to make development much faster.

0 Kudos
4,311 Views
hkh
Contributor II

I tried the uImage/Modules that you sent me a while back, and they work. If I remove the "modules" directory with that build, I get a similar behavior. With your build the modules are a level deeper (modules/3.0.35-02991-g3338700). I followed the following steps after what appeared a successful build of uImage and  modules:

~/linux-imx6$ make INSTALL_MOD_PATH=~/tmp modules_install

~/linux-imx6$ find ~/tmp/lib/modules -type l -exec rm -f {} \;

~/linux-imx6$ cp -ravf ~/tmp/lib/modules/* /media/myrootfs/lib/modules/

Outside of being a level shallower, I do see the camera driver in the right directory on my SD card:

.../kernel/drivers/media/video/mxc/capture/*

What am I doing wrong?

0 Kudos
4,311 Views
hkh
Contributor II

That makes sense. Do I checkout boundary-imx_3.0.35_4.1.0?

I checked it out, compiled it with nitrogen6x_mipi_defconfig, and updated uImage and modules from my Yocto build.

I don't see a boot message showing that the camera is detected.

The image name shows as Linux-3.0.35-g2b9e873 on the console.

0 Kudos
4,309 Views
hkh
Contributor II

I think this addresses the MIPI clock issue, but not the Solo processor issue. Is that the case? Thanks.

0 Kudos
4,309 Views
EricNelson
Senior Contributor II

You're right. To operate on Solo, you need another patch:

     https://github.com/boundarydevices/linux-imx6/commit/b98d73af05100444e2f6099afbc30de34c386c1a

If I were you, I'd probably just jump to the head of the 'boundary-imx_3.0.35_4.1.0' branch.

0 Kudos
4,309 Views
hkh
Contributor II

Hi Eric,

This kernel behaves the same the last one. Everything including camera works on HDMI, but I don't see anything on the LCD. I tried the same variation as before. I am not getting any error. Is it possible that something with the LCD is turned off (backlight/etc)?

0 Kudos
4,309 Views
EricNelson
Senior Contributor II

Hi hk,

I'm confused. Let's forget about the camera for the moment and talk about the display.

What kind of LCD do you have connected? Do you see the proper "video=" statement in your kernel command-line (cat /proc/cmdline)?

Do you see anything on the display? You should at least see a penguin during the boot process if the display was detected?

0 Kudos
4,309 Views
hkh
Contributor II

Hi Eric,

I have a 1280x800 LCD from Boundarydevices. I don't see anything on the LCD when the system boots (no penguins). I know the hardware is OK because it works with the Timesys SD card.

I thought this was configured correctly since I was seeing this on power up:

U-Boot 2013.10-00049-ge2ee7f4 (Nov 07 2013 - 10:51:26)

CPU:   Freescale i.MX6SOLO rev1.1 at 792 MHz
Reset cause: POR
Board: Nitrogen6X
DRAM:  512 MiB
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
SF: Detected SST25VF016B with page size 256 Bytes, erase size 4 KiB, total 2 MiB
Display: LDB-WXGA (1280x800)

But it does not look correct in the file you mentioned:

root@nitrogen6x:~# cat /proc/cmdline

enable_wait_mode=off video=mxcfb0:dev=ldb,1024x600M@60,if=RGB666 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off fbmem=10M console=ttymxc1,115200 vmalloc=400M consoleblank=0 rootwait root=/dev/mmcblk0p2 mxc_hdmi.only_cea=1

0 Kudos
4,418 Views
EricNelson
Senior Contributor II

Hi hk,

This shows that you need a boot script update. There are some comments in this blog

post:

      http://boundarydevices.com/1280x800-displays/

Essentially, your display is newer than the boot script, and you need an update to recognize the 1280x800 display.

I placed an updated version here:

     http://storage.googleapis.com/boundarydevices.com/6x-bootscript-yocto-1280x800.zip

0 Kudos
4,309 Views
hkh
Contributor II

Hi Eric,

Sorry for the long delay. I was distracted by another project. I tried the boot script that you sent me, and everything now shows up on the LCD.

I have not tried going back to the Yocto kernel. Do you think the updates you gave me are necessary for the LCD to work?

Thanks for your help.

0 Kudos
4,309 Views
EricNelson
Senior Contributor II

The patch I linked to above will be needed to operate the MIPI camera without an HDMI display.

It should apply (and will need to be pulled) into the Timesys kernel.

I'll send a note to my contacts at Timesys, and you can likely send a note to their support team and get them to integrate this.

4,309 Views
hkh
Contributor II

How about Yocto Dora (or is Timesys maintaining the Kernel)? How/when will this patch make it to this distribution? Thanks.

0 Kudos