Olimex Support Forum

OLinuXino Android / Linux boards and System On Modules => A64 => Topic started by: Eric976 on July 13, 2021, 02:30:37 pm

Title: Camera module for OLinuxINO A64
Post by: Eric976 on July 13, 2021, 02:30:37 pm
Hello guys
I just bought a OlinuxINO A64 board but I'm kind of lost with the camera input. Can someone help me?
1) The MiPi input has 20 pins? Which camera module have you guys already used there?
2) I bought an IR Camera for Raspberry PI, I though that it would work with OLinuxINO, but it didn't, because the RPI camera has 22 pins, and even with different order. Is there a way to convert?
3) To use a CSI camera, just using the GPIO extension connector, right?

Please, share your thoughts about camera modules with this board with me.
Thanks in advance.
Title: Re: Camera module for OLinuxINO A64
Post by: LubOlimex on July 14, 2021, 09:11:15 am
We haven't used the MIPI interface ourselves. One important thing for the MIPI connector and options is that it is MIPI DSI (not MIPI DSI-2 which is the more widespread standard). There are a lot of places with more information about the DSI you can also read in wikipedia: https://en.wikipedia.org/wiki/Display_Serial_Interface and also here: https://www.mipi.org/specifications/display-interface

Another important point is that it is not clear how good the Linux and mainline support for the MIPI DSI is - even if you establish the hardware connections you might need to alter the Linux image to get it working.

What is the RPi camera that you bought exactly? Pi NoIR Camera V2? It is CSI I think.

Yes, CSI is available on the GPIO header.
Title: Re: Camera module for OLinuxINO A64
Post by: Eric976 on July 15, 2021, 11:32:59 am
Thanks for your answer.
I bought the OV5647 module with 22 pins, for the Raspberry PI Zero standard, this camera had all prerequisites that I was looking for, that are good price, 5MP, full hd and infrared vision.
I checked the pins for the 22 pins connector, it seems to use the MiPi pins. So I bought a adaptors from FPC to DIP to connect everything together using wires in the prototype phase. Is there a better way to test this camera module with the A64 board?
Title: Re: Camera module for OLinuxINO A64
Post by: Eric976 on July 26, 2021, 10:47:09 am
Hello guys
I'm still stuck with the camera issue...
I saw the list of cameras that are compatible with OLinuxINO board that is available clicking in "Camera Support List" here https://www.olimex.com/Products/Components/Camera/CAM-GT2005/.
So I bought the camera OV5640, with all pins for a CSI connection, using the pins available in the GPIO connector.
I connected but it didn't work automatically, how can I configure it?
Title: Re: Camera module for OLinuxINO A64
Post by: Eric976 on July 27, 2021, 01:37:55 pm
Hello
Can someone help me? I'm still stuck with this situation.  :(
Title: Re: Camera module for OLinuxINO A64
Post by: Eric976 on September 13, 2021, 02:51:46 pm
Hello again, guys
I think that I'm almost there...

I came back to the first camera module that I was testing, the OV5647, because I saw the driver already included in the kernel. So let me post some results I have so far with the board A64-OLinuxIno Rev C.

The hardware connections that I've done
https://drive.google.com/file/d/1NMO6MsOGPhU9EPOtvKFlgxWsYtoXcxjq/view?usp=sharing.

The overlay that I'm writing
/dts-v1/;
/plugin/;

/ {
compatible = "allwinner,sun50i-a64\0olimex,a64-olinuxino";
description = "Test camera OV5647";

fragment@0 {
target = <&i2c1>;

__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";

ov5647: ov5647@36 {
compatible = "ovti,ov5647";
reg = <0x36>;
status = "okay";

clocks = <&ov5647_clk>;
clock-names = "xclk";

rotation = <0>;
orientation = <2>;

ov5647_clk: camera-clk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <25000000>;
};

port {
ov5647_ep: endpoint {
remote-endpoint = <&dsi_ep>;
clock-lanes = <0>;
data-lanes = <0 1>;
clock-noncontinuous;
link-frequencies =
/bits/ 64 <297000000>;
};
};
};
};
};

fragment@1 {
target = <&dsi>;
__overlay__ {
status = "okay";

port {
dsi_ep: endpoint {
remote-endpoint = <&ov5647_ep>;
data-lanes = <1 2>;
};
};
};
};
};

My config file
olimex@a64-olinuxino:~$ cat /boot/config-`uname -r` | grep I2C | grep GPIO
CONFIG_I2C_ARB_GPIO_CHALLENGE=m
CONFIG_I2C_MUX_GPIO=m
CONFIG_I2C_CBUS_GPIO=m
CONFIG_I2C_GPIO=y
# I2C GPIO expanders
# end of I2C GPIO expanders

I can detect the I2C device
olimex@a64-olinuxino:~$ sudo i2cdetect 1
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1.
I will probe address range 0x03-0x77.
Continue? [Y/n]
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- UU -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- -- 

The driver seems to be loaded
olimex@a64-olinuxino:~$ lsmod | grep ov
ov5647                 16384  0
v4l2_fwnode            20480  1 ov5647
videodev              262144  6 sunxi_cedrus,v4l2_fwnode,ov5647,videobuf2_v4l2,videobuf2_common,v4l2_mem2mem
mc                     49152  6 sunxi_cedrus,videodev,ov5647,videobuf2_v4l2,videobuf2_common,v4l2_mem2mem

Now I think that the next step is to solve these errors
olimex@a64-olinuxino:/usr/lib/olinuxino-overlays/sun50i-a64$ dmesg | grep dsi
[    9.489756] sun6i-mipi-dsi 1ca0000.dsi: supply vcc-dsi not found, using dummy regulator
[    9.490088] sun6i-mipi-dsi 1ca0000.dsi: Couldn't get the MIPI D-PHY
[    9.510836] sun6i-mipi-dsi 1ca0000.dsi: supply vcc-dsi not found, using dummy regulator
[    9.511156] sun6i-mipi-dsi 1ca0000.dsi: Couldn't get the MIPI D-PHY
[    9.530344] sun6i-mipi-dsi 1ca0000.dsi: supply vcc-dsi not found, using dummy regulator
[    9.530637] sun6i-mipi-dsi 1ca0000.dsi: Couldn't get the MIPI D-PHY
[    9.576110] sun6i-mipi-dsi 1ca0000.dsi: supply vcc-dsi not found, using dummy regulator
[    9.576457] sun6i-mipi-dsi 1ca0000.dsi: Couldn't get the MIPI D-PHY
[    9.616954] sun6i-mipi-dsi 1ca0000.dsi: supply vcc-dsi not found, using dummy regulator
[    9.617276] sun6i-mipi-dsi 1ca0000.dsi: Couldn't get the MIPI D-PHY
[    9.811233] sun6i-mipi-dsi 1ca0000.dsi: supply vcc-dsi not found, using dummy regulator
[    9.811529] sun6i-mipi-dsi 1ca0000.dsi: Couldn't get the MIPI D-PHY
[    9.842259] sun6i-mipi-dsi 1ca0000.dsi: supply vcc-dsi not found, using dummy regulator
[    9.842600] sun6i-mipi-dsi 1ca0000.dsi: Couldn't get the MIPI D-PHY
[    9.865445] sun6i-mipi-dsi 1ca0000.dsi: supply vcc-dsi not found, using dummy regulator
[    9.865779] sun6i-mipi-dsi 1ca0000.dsi: Couldn't get the MIPI D-PHY
[   11.154077] sun6i-mipi-dsi 1ca0000.dsi: supply vcc-dsi not found, using dummy regulator
[   11.154431] sun6i-mipi-dsi 1ca0000.dsi: Couldn't get the MIPI D-PHY

Can someone please help me to get this camera module to work?

I'm waiting for a return.
Thanks in advance.
Title: Re: Camera module for OLinuxINO A64
Post by: Eric976 on September 14, 2021, 05:21:08 am
One more update, I can see the driver, but there is no video in the device "video0".
olimex@a64-olinuxino:/$ sudo find -name "*ov5647*"
find: './run/user/1000/gvfs': Permission denied
./usr/lib/olinuxino-overlays/sun50i-a64/ov5647-eric.dts.bak2
./usr/lib/olinuxino-overlays/sun50i-a64/ov5647-eric.dts
./usr/lib/olinuxino-overlays/sun50i-a64/ov5647-eric.dts.bak
./usr/lib/olinuxino-overlays/sun50i-a64/ov5647-eric.dtbo
./usr/lib/modules/5.10.60-olimex/kernel/drivers/media/i2c/ov5647.ko
./sys/bus/i2c/drivers/ov5647
./sys/firmware/devicetree/base/soc/i2c@1c2b000/ov5647@36
./sys/module/videodev/holders/ov5647
./sys/module/v4l2_fwnode/holders/ov5647
./sys/module/ov5647
./sys/module/ov5647/drivers/i2c:ov5647
./sys/module/mc/holders/ov5647
Title: Re: Camera module for OLinuxINO A64
Post by: Eric976 on September 14, 2021, 05:56:45 am
I keep trying.
My new overlay is as following:
/dts-v1/;
/plugin/;

/ {
        compatible = "allwinner,sun50i-a64\0olimex,a64-olinuxino";
        description = "Test camera OV5647";

        fragment@0 {
                target = <&i2c1>;

                __overlay__ {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "okay";

                        ov5647: ov5647@36 {
                                compatible = "ovti,ov5647";
                                reg = <0x36>;
                                status = "okay";

                                clocks = <&ov5647_clk>;
                                clock-names = "xclk";

                                rotation = <0>;
                                orientation = <2>;

                                ov5647_clk: camera-clk {
                                        compatible = "fixed-clock";
                                        #clock-cells = <0>;
                                        clock-frequency = <25000000>;
                                };

                                port {
                                        ov5647_ep: endpoint {
                                                remote-endpoint = <&dsi_ep>;
                                                clock-lanes = <0>;
                                                data-lanes = <0 1>;
                                                clock-noncontinuous;
                                                link-frequencies =
                                                        /bits/ 64 <297000000>;
                                        };
                                };
                        };
                };
        };

        fragment@1 {
                target = <&dsi>;
                __overlay__ {
                        status = "okay";
                        vcc-dsi-supply = <0x04>;

                        port {
                                dsi_ep: endpoint {
                                        remote-endpoint = <&ov5647_ep>;
                                        data-lanes = <1 2>;
                                };
                        };
                };
        };

        fragment@2 {
                target = <&dphy>;
                __overlay__ {
                        status = "okay";
                };
        };
};

I added the fragment 2 to solve the D-PHY error, that I said before, and I added "vcc-dsi-supply = <0x04>" because I had an error related to this.
Title: Re: Camera module for OLinuxINO A64
Post by: Eric976 on September 14, 2021, 05:58:16 am
Now my dmesg is:
olimex@a64-olinuxino:/usr/lib/olinuxino-overlays/sun50i-a64$ dmesg
[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 5.10.60-olimex (root@runner-cpbkaozn-project-1-concurrent-1) (aarch64-linux-gnu-gcc (Debian 8.3.0-2) 8.3.0, GNU ld (GNU Binutils for Debian) 2.31.1) #123632 SMP Sat Aug 21 12:38:12 UTC 2021
[    0.000000] Machine model: Olimex A64-Olinuxino-1Ge4GW
[    0.000000] [Firmware Bug]: Kernel image misaligned at boot, please fix your bootloader!
[    0.000000] NUMA: No NUMA configuration found
[    0.000000] NUMA: Faking a node at [mem 0x0000000040000000-0x000000007dffffff]
[    0.000000] NUMA: NODE_DATA [mem 0x7dddb100-0x7dddcfff]
[    0.000000] Zone ranges:
[    0.000000]  DMA      [mem 0x0000000040000000-0x000000007dffffff]
[    0.000000]  DMA32    empty
[    0.000000]  Normal  empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]  node  0: [mem 0x0000000040000000-0x000000007dffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x000000007dffffff]
[    0.000000] On node 0 totalpages: 253952
[    0.000000]  DMA zone: 3968 pages used for memmap
[    0.000000]  DMA zone: 0 pages reserved
[    0.000000]  DMA zone: 253952 pages, LIFO batch:63
[    0.000000] cma: Reserved 128 MiB at 0x0000000074000000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.1
[    0.000000] percpu: Embedded 30 pages/cpu s83224 r8192 d31464 u122880
[    0.000000] pcpu-alloc: s83224 r8192 d31464 u122880 alloc=30*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] CPU features: detected: ARM erratum 843419
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 249984
[    0.000000] Policy zone: DMA
[    0.000000] Kernel command line: root=PARTUUID=21cc5c0d-01 rootwait console=ttyS0,115200 panic=10 loglevel=4
[    0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[    0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 830812K/1015808K available (10878K kernel code, 1722K rwdata, 3052K rodata, 3584K init, 367K bss, 53924K reserved, 131072K cma-reserved)
[    0.000000] random: get_random_u64 called from __kmem_cache_create+0x30/0x4b0 with crng_init=0
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] ftrace: allocating 35101 entries in 138 pages
[    0.000000] ftrace: allocated 138 pages with 3 groups
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:    RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
[    0.000000]  Rude variant of Tasks RCU enabled.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] arch_timer: Enabling global workaround for Allwinner erratum UNKNOWN1
[    0.000000] arch_timer: CPU0: Trapping CNTVCT access
[    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[    0.000005] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[    0.000364] Console: colour dummy device 80x25
[    0.000486] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=96000)
[    0.000501] pid_max: default: 32768 minimum: 301
[    0.000710] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.000725] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.002813] rcu: Hierarchical SRCU implementation.
[    0.003654] smp: Bringing up secondary CPUs ...
[    0.005160] Detected VIPT I-cache on CPU1
[    0.005220] arch_timer: CPU1: Trapping CNTVCT access
[    0.005242] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.006346] Detected VIPT I-cache on CPU2
[    0.006378] arch_timer: CPU2: Trapping CNTVCT access
[    0.006392] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[    0.007382] Detected VIPT I-cache on CPU3
[    0.007411] arch_timer: CPU3: Trapping CNTVCT access
[    0.007424] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[    0.007510] smp: Brought up 1 node, 4 CPUs
[    0.007523] SMP: Total of 4 processors activated.
[    0.007531] CPU features: detected: 32-bit EL0 Support
[    0.007537] CPU features: detected: CRC32 instructions
[    0.019789] CPU: All CPU(s) started at EL2
[    0.019821] alternatives: patching kernel code
[    0.021559] devtmpfs: initialized
[    0.030141] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.030169] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.035164] pinctrl core: initialized pinctrl subsystem
[    0.036447] NET: Registered protocol family 16
[    0.038526] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations
[    0.038666] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.038823] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.038924] audit: initializing netlink subsys (disabled)
[    0.039131] audit: type=2000 audit(0.036:1): state=initialized audit_enabled=0 res=1
[    0.039674] thermal_sys: Registered thermal governor 'fair_share'
[    0.039680] thermal_sys: Registered thermal governor 'bang_bang'
[    0.039685] thermal_sys: Registered thermal governor 'step_wise'
[    0.040143] cpuidle: using governor ladder
[    0.040166] cpuidle: using governor menu
[    0.040320] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.040435] ASID allocator initialised with 65536 entries
[    0.040629] Serial: AMBA PL011 UART driver
[    0.068172] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[    0.068189] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
[    0.068196] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.068202] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
[    0.069911] cryptd: max_cpu_qlen set to 1000
[    0.074554] iommu: Default domain type: Translated
[    0.074923] SCSI subsystem initialized
[    0.075107] libata version 3.00 loaded.
[    0.075329] usbcore: registered new interface driver usbfs
[    0.075381] usbcore: registered new interface driver hub
[    0.075417] usbcore: registered new device driver usb
[    0.075659] pps_core: LinuxPPS API ver. 1 registered
[    0.075665] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.075683] PTP clock support registered
[    0.076016] Advanced Linux Sound Architecture Driver Initialized.
[    0.077052] clocksource: Switched to clocksource arch_sys_counter
[    0.141237] VFS: Disk quotas dquot_6.6.0
[    0.141320] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.150820] NET: Registered protocol family 2
[    0.151000] IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.151966] tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes, linear)
[    0.151995] TCP established hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.152080] TCP bind hash table entries: 8192 (order: 5, 131072 bytes, linear)
[    0.152243] TCP: Hash tables configured (established 8192 bind 8192)
[    0.152387] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[    0.152426] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[    0.152619] NET: Registered protocol family 1
[    0.152908] Trying to unpack rootfs image as initramfs...
[    0.407994] Freeing initrd memory: 13544K
[    0.409137] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
[    0.415789] Initialise system trusted keyrings
[    0.415991] workingset: timestamp_bits=44 max_order=18 bucket_order=0
[    0.422677] zbud: loaded
[    0.478013] Key type asymmetric registered
[    0.478026] Asymmetric key parser 'x509' registered
[    0.478071] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248)
[    0.478204] io scheduler mq-deadline registered
[    0.478211] io scheduler kyber registered
[    0.478351] io scheduler bfq registered
[    0.478708] sun50i-de2-bus 1000000.bus: Error couldn't map SRAM to device
[    0.479307] sun4i-usb-phy 1c19400.phy: Couldn't request ID GPIO
[    0.483720] sun50i-a64-r-pinctrl 1f02c00.pinctrl: initialized sunXi PIO driver
[    0.540640] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[    0.550865] brd: module loaded
[    0.677086] loop: module loaded
[    0.679089] libphy: Fixed MDIO Bus: probed
[    0.680545] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.680552] ehci-platform: EHCI generic platform driver
[    0.681114] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    0.681133] ohci-platform: OHCI generic platform driver
[    0.681917] usbcore: registered new interface driver usb-storage
[    0.683198] sun6i-rtc 1f00000.rtc: registered as rtc0
[    0.683236] sun6i-rtc 1f00000.rtc: setting system clock to 2021-09-14T02:45:33 UTC (1631587533)
[    0.683243] sun6i-rtc 1f00000.rtc: RTC enabled
[    0.683351] i2c /dev entries driver
[    0.684791] sunxi-wdt 1c20ca0.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
[    0.685763] ledtrig-cpu: registered to indicate activity on CPUs
[    0.685831] hid: raw HID events driver (C) Jiri Kosina
[    0.685958] usbcore: registered new interface driver usbhid
[    0.685963] usbhid: USB HID core driver
[    0.688646] Initializing XFRM netlink socket
[    0.689327] NET: Registered protocol family 10
[    0.719457] Segment Routing with IPv6
[    0.719590] NET: Registered protocol family 17
[    0.719622] NET: Registered protocol family 15
[    0.719736] 8021q: 802.1Q VLAN Support v1.8
[    0.719791] Key type dns_resolver registered
[    0.720202] registered taskstats version 1
[    0.720213] Loading compiled-in X.509 certificates
[    0.720349] zswap: loaded using pool lzo/zbud
[    0.720701] Key type ._fscrypt registered
[    0.720708] Key type .fscrypt registered
[    0.720713] Key type fscrypt-provisioning registered
[    0.734610] Key type encrypted registered
[    0.783100] sun4i-drm display-engine: bound 1100000.mixer (ops 0xffff800010bb1a80)
[    0.784866] sun4i-drm display-engine: bound 1200000.mixer (ops 0xffff800010bb1a80)
[    0.785352] sun4i-drm display-engine: No panel or bridge found... RGB output disabled
[    0.785366] sun4i-drm display-engine: bound 1c0c000.lcd-controller (ops 0xffff800010bad778)
[    0.785575] sun4i-drm display-engine: bound 1c0d000.lcd-controller (ops 0xffff800010bad778)
[    0.785639] sun8i-dw-hdmi 1ee0000.hdmi: Couldn't get regulator
[    0.786093] sun4i-drm display-engine: Couldn't bind all pipelines components
[    0.786664] sun50i-a64-r-pinctrl 1f02c00.pinctrl: supply vcc-pl not found, using dummy regulator
[    0.786902] sunxi-rsb 1f03400.rsb: RSB running at 3000000 Hz
[    0.787306] axp20x-rsb sunxi-rsb-3a3: AXP20x variant AXP803 found
[    0.789338] input: axp20x-pek as /devices/platform/soc/1f03400.rsb/sunxi-rsb-3a3/axp221-pek/input/input0
[    0.794417] vcc-3v3: supplied by regulator-dummy
[    0.794774] vdd-cpux: supplied by regulator-dummy
[    0.795165] dcdc4: supplied by regulator-dummy
[    0.795346] vcc-ddr3: supplied by regulator-dummy
[    0.795637] vdd-sys: supplied by regulator-dummy
[    0.795973] dc1sw: supplied by regulator-dummy
[    0.796132] vcc-pe: supplied by regulator-dummy
[    0.796436] vcc-pl: supplied by regulator-dummy
[    0.796703] vcc-pll-avcc: supplied by regulator-dummy
[    0.797155] vcc-hdmi: supplied by regulator-dummy
[    0.797427] vcc-mipi: supplied by regulator-dummy
[    0.797716] vcc-avdd-csi: supplied by regulator-dummy
[    0.797891] vcc-wifi-io: supplied by regulator-dummy
[    0.798197] vcc-emmc: supplied by regulator-dummy
[    0.798589] vcc-dvdd-csi: supplied by regulator-dummy
[    0.798889] eldo3: supplied by regulator-dummy
[    0.799183] vcc-1v2-hsic: supplied by regulator-dummy
[    0.799340] vdd-cpus: supplied by regulator-dummy
[    0.799621] vcc-rtc: supplied by regulator-dummy
[    0.799988] ldo-io0: supplied by regulator-dummy
[    0.800248] ldo-io1: supplied by regulator-dummy
[    0.800541] usb0-vbus: supplied by regulator-dummy
[    0.801762] axp20x-rsb sunxi-rsb-3a3: AXP20X driver loaded
[    0.802075] sun4i-usb-phy 1c19400.phy: Couldn't request ID GPIO
[    0.806644] sun50i-a64-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[    0.807090] sun50i-a64-pinctrl 1c20800.pinctrl: supply vcc-pb not found, using dummy regulator
[    0.808070] printk: console [ttyS0] disabled
[    0.828342] 1c28000.serial: ttyS0 at MMIO 0x1c28000 (irq = 41, base_baud = 1500000) is a U6_16550A
[    0.860011] printk: console [ttyS0] enabled
[    0.860726] sun50i-a64-pinctrl 1c20800.pinctrl: supply vcc-pg not found, using dummy regulator
[    0.881772] 1c28400.serial: ttyS1 at MMIO 0x1c28400 (irq = 42, base_baud = 1500000) is a U6_16550A
[    0.882477] sun50i-a64-pinctrl 1c20800.pinctrl: supply vcc-ph not found, using dummy regulator
[    0.903511] 1c28c00.serial: ttyS2 at MMIO 0x1c28c00 (irq = 43, base_baud = 1500000) is a U6_16550A
[    0.904514] sun50i-a64-pinctrl 1c20800.pinctrl: supply vcc-pd not found, using dummy regulator
[    0.904696] dwmac-sun8i 1c30000.ethernet: IRQ eth_wake_irq not found
[    0.904705] dwmac-sun8i 1c30000.ethernet: IRQ eth_lpi not found
[    0.904977] dwmac-sun8i 1c30000.ethernet: PTP uses main clock
[    0.905005] dwmac-sun8i 1c30000.ethernet: Current syscon value is not the default 1806 (expect 0)
[    0.905293] dwmac-sun8i 1c30000.ethernet: No HW DMA feature register supported
[    0.905302] dwmac-sun8i 1c30000.ethernet: RX Checksum Offload Engine supported
[    0.905309] dwmac-sun8i 1c30000.ethernet: COE Type 2
[    0.905315] dwmac-sun8i 1c30000.ethernet: TX Checksum insertion supported
[    0.905322] dwmac-sun8i 1c30000.ethernet: Normal descriptors
[    0.905328] dwmac-sun8i 1c30000.ethernet: Chain mode enabled
[    0.906481] libphy: stmmac: probed
[    0.925095] sun50i-a64-pinctrl 1c20800.pinctrl: supply vcc-pf not found, using dummy regulator
[    0.925898] sun50i-a64-pinctrl 1c20800.pinctrl: supply vcc-pc not found, using dummy regulator
[    0.926034] simple-framebuffer 7e000000.framebuffer: framebuffer at 0x7e000000, 0x7e9000 bytes, mapped to 0x(____ptrval____)
[    0.926046] simple-framebuffer 7e000000.framebuffer: format=x8r8g8b8, mode=1920x1080x32, linelength=7680
[    0.926219] sunxi-mmc 1c0f000.mmc: Got CD GPIO
[    0.927312] Console: switching to colour frame buffer device 240x67
[    0.949073] sunxi-mmc 1c0f000.mmc: initialized, max. request size: 16384 KB, uses new timings mode
[    0.953068] sunxi-mmc 1c11000.mmc: initialized, max. request size: 2048 KB, uses new timings mode
[    0.962767] simple-framebuffer 7e000000.framebuffer: fb0: simplefb registered!
[    0.965318] sun4i-drm display-engine: bound 1100000.mixer (ops 0xffff800010bb1a80)
[    0.967040] sun4i-drm display-engine: bound 1200000.mixer (ops 0xffff800010bb1a80)
[    0.967505] sun4i-drm display-engine: No panel or bridge found... RGB output disabled
[    0.967520] sun4i-drm display-engine: bound 1c0c000.lcd-controller (ops 0xffff800010bad778)
[    0.967717] sun4i-drm display-engine: bound 1c0d000.lcd-controller (ops 0xffff800010bad778)
[    0.968712] sun8i-dw-hdmi 1ee0000.hdmi: Detected HDMI TX controller v1.32a with HDCP (sun8i_dw_hdmi_phy)
[    0.969293] sun8i-dw-hdmi 1ee0000.hdmi: registered DesignWare HDMI I2C bus driver
[    0.969620] sun4i-drm display-engine: bound 1ee0000.hdmi (ops 0xffff800010bb0db8)
[    0.969848] checking generic (7e000000 7e9000) vs hw (0 ffffffffffffffff)
[    0.969856] fb0: switching to sun4i-drm-fb from simple
[    0.970160] Console: switching to colour dummy device 80x25
[    0.970667] [drm] Initialized sun4i-drm 1.0.0 20150629 for display-engine on minor 0
[    0.988115] mmc2: new high speed SDHC card at address e624
[    0.989000] mmcblk2: mmc2:e624 SD32G 29.7 GiB
[    0.991016]  mmcblk2: p1
[    1.031625] mmc1: new DDR MMC card at address 0001
[    1.032522] mmcblk1: mmc1:0001 P1XXXX 3.60 GiB
[    1.033002] mmcblk1boot0: mmc1:0001 P1XXXX partition 1 16.0 MiB
[    1.033516] mmcblk1boot1: mmc1:0001 P1XXXX partition 2 16.0 MiB
[    1.035171]  mmcblk1: p1
[    1.051751] random: fast init done
[    1.415354] Console: switching to colour frame buffer device 240x67
[    1.468047] sun4i-drm display-engine: [drm] fb0: sun4i-drmdrmfb frame buffer device
[    1.470189] phy phy-1c19400.phy.0: Changing dr_mode to 1
[    1.470204] phy phy-1c19400.phy.0: External vbus detected, not enabling our own vbus
[    1.470212] ehci-platform 1c1a000.usb: EHCI Host Controller
[    1.470238] ehci-platform 1c1a000.usb: new USB bus registered, assigned bus number 1
[    1.470368] ehci-platform 1c1a000.usb: irq 29, io mem 0x01c1a000
[    1.485075] ehci-platform 1c1a000.usb: USB 2.0 started, EHCI 1.00
[    1.485307] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10
Title: Re: Camera module for OLinuxINO A64
Post by: Eric976 on September 14, 2021, 05:58:53 am
The second part of my dmesg
[    1.485316] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.485324] usb usb1: Product: EHCI Host Controller
[    1.485330] usb usb1: Manufacturer: Linux 5.10.60-olimex ehci_hcd
[    1.485337] usb usb1: SerialNumber: 1c1a000.usb
[    1.485867] hub 1-0:1.0: USB hub found
[    1.485909] hub 1-0:1.0: 1 port detected
[    1.487011] ehci-platform 1c1b000.usb: EHCI Host Controller
[    1.487035] ehci-platform 1c1b000.usb: new USB bus registered, assigned bus number 2
[    1.487150] ehci-platform 1c1b000.usb: irq 31, io mem 0x01c1b000
[    1.501064] ehci-platform 1c1b000.usb: USB 2.0 started, EHCI 1.00
[    1.501265] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10
[    1.501274] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.501282] usb usb2: Product: EHCI Host Controller
[    1.501289] usb usb2: Manufacturer: Linux 5.10.60-olimex ehci_hcd
[    1.501296] usb usb2: SerialNumber: 1c1b000.usb
[    1.501800] hub 2-0:1.0: USB hub found
[    1.501839] hub 2-0:1.0: 1 port detected
[    1.502872] ohci-platform 1c1a400.usb: Generic Platform OHCI controller
[    1.502893] ohci-platform 1c1a400.usb: new USB bus registered, assigned bus number 3
[    1.503042] ohci-platform 1c1a400.usb: irq 30, io mem 0x01c1a400
[    1.565262] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 5.10
[    1.565272] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.565280] usb usb3: Product: Generic Platform OHCI controller
[    1.565287] usb usb3: Manufacturer: Linux 5.10.60-olimex ohci_hcd
[    1.565294] usb usb3: SerialNumber: 1c1a400.usb
[    1.565787] hub 3-0:1.0: USB hub found
[    1.565827] hub 3-0:1.0: 1 port detected
[    1.566884] ohci-platform 1c1b400.usb: Generic Platform OHCI controller
[    1.566906] ohci-platform 1c1b400.usb: new USB bus registered, assigned bus number 4
[    1.567039] ohci-platform 1c1b400.usb: irq 32, io mem 0x01c1b400
[    1.629335] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 5.10
[    1.629345] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.629353] usb usb4: Product: Generic Platform OHCI controller
[    1.629359] usb usb4: Manufacturer: Linux 5.10.60-olimex ohci_hcd
[    1.629366] usb usb4: SerialNumber: 1c1b400.usb
[    1.629898] hub 4-0:1.0: USB hub found
[    1.629938] hub 4-0:1.0: 1 port detected
[    1.631098] usb_phy_generic usb_phy_generic.3.auto: supply vcc not found, using dummy regulator
[    1.733358] musb-hdrc musb-hdrc.4.auto: MUSB HDRC host driver
[    1.733385] musb-hdrc musb-hdrc.4.auto: new USB bus registered, assigned bus number 5
[    1.733601] usb usb5: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10
[    1.733610] usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.733617] usb usb5: Product: MUSB HDRC host driver
[    1.733624] usb usb5: Manufacturer: Linux 5.10.60-olimex musb-hcd
[    1.733631] usb usb5: SerialNumber: musb-hdrc.4.auto
[    1.734153] hub 5-0:1.0: USB hub found
[    1.734194] hub 5-0:1.0: 1 port detected
[    1.742840] ALSA device list:
[    1.742856]  No soundcards found.
[    1.748948] Freeing unused kernel memory: 3584K
[    1.757068] usb 2-1: new high-speed USB device number 2 using ehci-platform
[    1.765151] Run /init as init process
[    1.765155]  with arguments:
[    1.765159]    /init
[    1.765163]  with environment:
[    1.765167]    HOME=/
[    1.765170]    TERM=linux
[    1.917957] usb 2-1: New USB device found, idVendor=1a40, idProduct=0101, bcdDevice= 1.11
[    1.917976] usb 2-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[    1.917984] usb 2-1: Product: USB 2.0 Hub
[    1.918846] hub 2-1:1.0: USB hub found
[    1.919805] hub 2-1:1.0: 4 ports detected
[    2.329119] usb 2-1.3: new full-speed USB device number 3 using ehci-platform
[    2.565012] usb 2-1.3: New USB device found, idVendor=046d, idProduct=c534, bcdDevice=29.01
[    2.565190] usb 2-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    2.565200] usb 2-1.3: Product: USB Receiver
[    2.565207] usb 2-1.3: Manufacturer: Logitech
[    2.569438] input: Logitech USB Receiver as /devices/platform/soc/1c1b000.usb/usb2/2-1/2-1.3/2-1.3:1.0/0003:046D:C534.0001/input/input1
[    2.581603] axp20x-gpio axp20x-gpio: DMA mask not set
[    2.582197] axp20x-gpio axp20x-gpio: AXP209 pinctrl and GPIO driver loaded
[    2.611792] sunxi-mmc 1c10000.mmc: allocated mmc-pwrseq
[    2.629454] hid-generic 0003:046D:C534.0001: input,hidraw0: USB HID v1.11 Keyboard [Logitech USB Receiver] on usb-1c1b000.usb-1.3/input0
[    2.635213] input: Logitech USB Receiver Mouse as /devices/platform/soc/1c1b000.usb/usb2/2-1/2-1.3/2-1.3:1.1/0003:046D:C534.0002/input/input2
[    2.635471] input: Logitech USB Receiver Consumer Control as /devices/platform/soc/1c1b000.usb/usb2/2-1/2-1.3/2-1.3:1.1/0003:046D:C534.0002/input/input3
[    2.637158] sunxi-mmc 1c10000.mmc: initialized, max. request size: 16384 KB, uses new timings mode
[    2.658705] mmc3: new high speed SDIO card at address 0001
[    2.693385] input: Logitech USB Receiver System Control as /devices/platform/soc/1c1b000.usb/usb2/2-1/2-1.3/2-1.3:1.1/0003:046D:C534.0002/input/input4
[    2.694668] hid-generic 0003:046D:C534.0002: input,hiddev96,hidraw1: USB HID v1.11 Mouse [Logitech USB Receiver] on usb-1c1b000.usb-1.3/input1
[    2.893090] usb 2-1.4: new low-speed USB device number 4 using ehci-platform
[    3.126691] usb 2-1.4: New USB device found, idVendor=1a2c, idProduct=2c27, bcdDevice= 1.10
[    3.126701] usb 2-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    3.126709] usb 2-1.4: Product: USB Keyboard
[    3.126715] usb 2-1.4: Manufacturer: USB
[    3.131265] input: USB USB Keyboard as /devices/platform/soc/1c1b000.usb/usb2/2-1/2-1.4/2-1.4:1.0/0003:1A2C:2C27.0003/input/input7
[    3.189288] hid-generic 0003:1A2C:2C27.0003: input,hidraw2: USB HID v1.10 Keyboard [USB USB Keyboard] on usb-1c1b000.usb-1.4/input0
[    3.193135] input: USB USB Keyboard Consumer Control as /devices/platform/soc/1c1b000.usb/usb2/2-1/2-1.4/2-1.4:1.1/0003:1A2C:2C27.0004/input/input8
[    3.253216] input: USB USB Keyboard System Control as /devices/platform/soc/1c1b000.usb/usb2/2-1/2-1.4/2-1.4:1.1/0003:1A2C:2C27.0004/input/input9
[    3.253425] hid-generic 0003:1A2C:2C27.0004: input,hidraw3: USB HID v1.10 Device [USB USB Keyboard] on usb-1c1b000.usb-1.4/input1
[    3.318608] logitech-djreceiver 0003:046D:C534.0001: hidraw0: USB HID v1.11 Keyboard [Logitech USB Receiver] on usb-1c1b000.usb-1.3/input0
[    3.411270] logitech-djreceiver 0003:046D:C534.0002: hiddev96,hidraw1: USB HID v1.11 Mouse [Logitech USB Receiver] on usb-1c1b000.usb-1.3/input1
[    3.470607] logitech-djreceiver 0003:046D:C534.0002: device of type eQUAD nano Lite (0x0a) connected on slot 1
[    3.472602] logitech-djreceiver 0003:046D:C534.0002: device of type eQUAD nano Lite (0x0a) connected on slot 2
[    3.473984] input: Logitech Wireless Keyboard PID:4023 Keyboard as /devices/platform/soc/1c1b000.usb/usb2/2-1/2-1.3/2-1.3:1.1/0003:046D:C534.0002/0003:046D:4023.0005/input/input10
[    3.474266] input: Logitech Wireless Keyboard PID:4023 Consumer Control as /devices/platform/soc/1c1b000.usb/usb2/2-1/2-1.3/2-1.3:1.1/0003:046D:C534.0002/0003:046D:4023.0005/input/input11
[    3.474428] input: Logitech Wireless Keyboard PID:4023 System Control as /devices/platform/soc/1c1b000.usb/usb2/2-1/2-1.3/2-1.3:1.1/0003:046D:C534.0002/0003:046D:4023.0005/input/input12
[    3.474814] hid-generic 0003:046D:4023.0005: input,hidraw4: USB HID v1.11 Keyboard [Logitech Wireless Keyboard PID:4023] on usb-1c1b000.usb-1.3/input1:1
[    3.476556] input: Logitech Wireless Mouse PID:4091 Mouse as /devices/platform/soc/1c1b000.usb/usb2/2-1/2-1.3/2-1.3:1.1/0003:046D:C534.0002/0003:046D:4091.0006/input/input17
[    3.476924] hid-generic 0003:046D:4091.0006: input,hidraw5: USB HID v1.11 Mouse [Logitech Wireless Mouse PID:4091] on usb-1c1b000.usb-1.3/input1:2
[    3.585251] input: Logitech Wireless Keyboard PID:4023 as /devices/platform/soc/1c1b000.usb/usb2/2-1/2-1.3/2-1.3:1.1/0003:046D:C534.0002/0003:046D:4023.0005/input/input21
[    3.585476] logitech-hidpp-device 0003:046D:4023.0005: input,hidraw4: USB HID v1.11 Keyboard [Logitech Wireless Keyboard PID:4023] on usb-1c1b000.usb-1.3/input1:1
[    3.592797] input: Logitech Wireless Mouse as /devices/platform/soc/1c1b000.usb/usb2/2-1/2-1.3/2-1.3:1.1/0003:046D:C534.0002/0003:046D:4091.0006/input/input22
[    3.592985] logitech-hidpp-device 0003:046D:4091.0006: input,hidraw5: USB HID v1.11 Mouse [Logitech Wireless Mouse] on usb-1c1b000.usb-1.3/input1:2
[    3.867181] EXT4-fs (mmcblk2p1): mounted filesystem with ordered data mode. Opts: (null)
[    4.685433] systemd[1]: systemd 245.4-4ubuntu3 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=hybrid)
[    4.686065] systemd[1]: Detected architecture arm64.
[    4.730240] systemd[1]: Set hostname to <a64-olinuxino>.
[    5.342478] systemd[1]: /lib/systemd/system/dbus.socket:5: ListenStream= references a path below legacy directory /var/run/, updating /var/run/dbus/system_bus_socket \xe2\x86\x92 /run/dbus/system_bus_socket; please update the unit file accordingly.
[    5.611447] random: systemd: uninitialized urandom read (16 bytes read)
[    5.615475] systemd[1]: Created slice system-modprobe.slice.
[    5.633279] random: systemd: uninitialized urandom read (16 bytes read)
[    5.634832] systemd[1]: Created slice system-serial\x2dgetty.slice.
[    5.649280] random: systemd: uninitialized urandom read (16 bytes read)
[    5.650593] systemd[1]: Created slice User and Session Slice.
[    5.665651] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[    5.682216] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point.
[    5.697612] systemd[1]: Reached target User and Group Name Lookups.
[    5.713264] systemd[1]: Reached target Remote File Systems.
[    5.729204] systemd[1]: Reached target Slices.
[    5.741230] systemd[1]: Reached target Swap.
[    5.753930] systemd[1]: Listening on Syslog Socket.
[    5.765788] systemd[1]: Listening on fsck to fsckd communication Socket.
[    5.781532] systemd[1]: Listening on initctl Compatibility Named Pipe.
[    5.798294] systemd[1]: Listening on Journal Audit Socket.
[    5.813826] systemd[1]: Listening on Journal Socket (/dev/log).
[    5.829873] systemd[1]: Listening on Journal Socket.
[    5.841957] systemd[1]: Listening on udev Control Socket.
[    5.857714] systemd[1]: Listening on udev Kernel Socket.
[    5.878801] systemd[1]: Mounting Huge Pages File System...
[    5.894898] systemd[1]: Mounting POSIX Message Queue File System...
[    5.918464] systemd[1]: Mounting Kernel Debug File System...
[    5.938511] systemd[1]: Mounting Kernel Trace File System...
[    5.956024] systemd[1]: Starting Journal Service...
[    5.972264] systemd[1]: Starting Restore / save the current clock...
[    5.995697] systemd[1]: Starting Set the console keyboard layout...
[    6.019289] systemd[1]: Starting Create list of static device nodes for the current kernel...
[    6.037767] systemd[1]: Condition check resulted in Load Kernel Module drm being skipped.
[    6.043799] systemd[1]: Started Nameserver information manager.
[    6.062130] systemd[1]: Reached target Network (Pre).
[    6.075820] systemd[1]: Condition check resulted in Set Up Additional Binary Formats being skipped.
[    6.076072] systemd[1]: Condition check resulted in File System Check on Root Device being skipped.
[    6.083969] systemd[1]: Starting Load Kernel Modules...
[    6.103588] systemd[1]: Starting Remount Root and Kernel File Systems...
[    6.127861] systemd[1]: Starting udev Coldplug all Devices...
[    6.147375] systemd[1]: Mounted Huge Pages File System.
[    6.153849] EXT4-fs (mmcblk2p1): re-mounted. Opts: commit=600,errors=remount-ro
[    6.171323] systemd[1]: Mounted POSIX Message Queue File System.
[    6.190427] systemd[1]: Mounted Kernel Debug File System.
[    6.196104] g_serial gadget: Gadget Serial v2.4
[    6.196121] g_serial gadget: g_serial ready
[    6.207388] systemd[1]: Mounted Kernel Trace File System.
[    6.221634] systemd[1]: Finished Restore / save the current clock.
[    6.240652] systemd[1]: Finished Create list of static device nodes for the current kernel.
[    6.263718] systemd[1]: Finished Load Kernel Modules.
[    6.277593] systemd[1]: Finished Remount Root and Kernel File Systems.
[    6.298899] systemd[1]: Condition check resulted in FUSE Control File System being skipped.
[    6.305110] systemd[1]: Mounting Kernel Configuration File System...
[    6.323823] systemd[1]: Condition check resulted in Rebuild Hardware Database being skipped.
[    6.324064] systemd[1]: Condition check resulted in Platform Persistent Storage Archival being skipped.
[    6.329264] systemd[1]: Starting Load/Save Random Seed...
[    6.346549] systemd[1]: Starting Apply Kernel Variables...
[    6.363228] systemd[1]: Starting Create System Users...
[    6.378977] systemd[1]: Mounted Kernel Configuration File System.
[    6.456332] systemd[1]: Finished Set the console keyboard layout.
[    6.481705] systemd[1]: Finished Apply Kernel Variables.
[    6.506185] systemd[1]: Finished Create System Users.
[    6.523598] systemd[1]: Starting Create Static Device Nodes in /dev...
[    6.583783] systemd[1]: Finished Create Static Device Nodes in /dev.
[    6.602165] systemd[1]: Reached target Local File Systems (Pre).
[    6.617696] systemd[1]: Reached target Local File Systems.
[    6.638608] systemd[1]: Starting Set console font and keymap...
[    6.654766] systemd[1]: Starting Tell Plymouth To Write Out Runtime Data...
[    6.669482] systemd[1]: Condition check resulted in Commit a transient machine-id on disk being skipped.
[    6.675164] systemd[1]: Starting udev Kernel Device Manager...
[    6.688593] systemd[1]: Finished Set console font and keymap.
[    6.707128] systemd[1]: plymouth-read-write.service: Succeeded.
[    6.709374] systemd[1]: Finished Tell Plymouth To Write Out Runtime Data.
[    6.876086] systemd[1]: Finished udev Coldplug all Devices.
[    6.904703] systemd[1]: Starting Helper to synchronize boot up for ifupdown...
[    6.929865] systemd[1]: Finished Helper to synchronize boot up for ifupdown.
[    6.951521] systemd[1]: Starting Raise network interfaces...
[    7.127625] systemd[1]: Started udev Kernel Device Manager.
[    7.146197] systemd[1]: Condition check resulted in Show Plymouth Boot Screen being skipped.
[    7.146858] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[    7.165480] systemd[1]: Condition check resulted in Forward Password Requests to Plymouth Directory Watch being skipped.
[    7.165648] systemd[1]: Reached target Local Encrypted Volumes.
[    7.185714] systemd[1]: Found device /dev/ttyGS0.
[    7.439065] systemd[1]: Started Journal Service.
[    7.518878] systemd-journald[287]: Received client request to flush runtime journal.
[    7.890269] mc: Linux media interface: v0.10
[    7.933085] videodev: Linux video capture interface: v2.00
[    7.967257] sunxi_cedrus: module is from the staging directory, the quality is unknown, you have been warned.
[    7.984941] cedrus 1c0e000.video-codec: Device registered as /dev/video0
[    8.292289] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    8.367313] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    8.419113] r8723bs: module is from the staging directory, the quality is unknown, you have been warned.
[    8.427548] RTL8723BS: module init start
[    8.427564] RTL8723BS: rtl8723bs v4.3.5.5_12290.20140916_BTCOEX20140507-4E40
[    8.427568] RTL8723BS: rtl8723bs BT-Coex version = BTCOEX20140507-4E40
[    8.428159] pnetdev = (____ptrval____)
[    8.510887] RTL8723BS: rtw_ndev_init(wlan0)
[    8.522757] RTL8723BS: module init ret =0
[    8.633216] lima 1c40000.gpu: gp - mali400 version major 1 minor 1
[    8.633271] lima 1c40000.gpu: pp0 - mali400 version major 1 minor 1
[    8.633319] lima 1c40000.gpu: pp1 - mali400 version major 1 minor 1
[    8.633354] lima 1c40000.gpu: l2 cache 64K, 4-way, 64byte cache line, 64bit external bus
[    8.645725] lima 1c40000.gpu: bus rate = 200000000
[    8.645743] lima 1c40000.gpu: mod rate = 297000000
[    8.646223] [drm] Initialized lima 1.1.0 20191231 for 1c40000.gpu on minor 1
[    8.665491] duplicated lane 0 in clock-lanes, using defaults
[    8.741162] random: crng init done
[    8.741185] random: 7 urandom warning(s) missed due to ratelimiting
[    8.968106] sun50i-codec-analog 1f015c0.codec-analog: supply cpvdd not found, using dummy regulator
[    9.152080] axp20x-battery-power-supply axp20x-battery-power-supply: DMA mask not set
[    9.214002] axp20x-adc axp813-adc: DMA mask not set
[    9.218133] axp20x-led axp20x-led: DMA mask not set
[    9.219835] axp20x-ac-power-supply axp20x-ac-power-supply: DMA mask not set
[    9.956457] dwmac-sun8i 1c30000.ethernet eth0: PHY [stmmac-0:01] driver [Micrel KSZ9031 Gigabit PHY] (irq=POLL)
[    9.960068] dwmac-sun8i 1c30000.ethernet eth0: No Safety Features support found
[    9.960093] dwmac-sun8i 1c30000.ethernet eth0: No MAC Management Counters available
[    9.960101] dwmac-sun8i 1c30000.ethernet eth0: PTP not supported by HW
[    9.960699] dwmac-sun8i 1c30000.ethernet eth0: configuring for phy/rgmii link mode
[  12.806537] rtl8723bs: acquire FW from file:rtlwifi/rtl8723bs_nic.bin
[  15.849237] RTL8723BS: rtw_set_802_11_connect(wlan0)  fw_state = 0x00000008
[  16.078488] RTL8723BS: start auth
[  16.081152] RTL8723BS: auth success, start assoc
[  16.085908] RTL8723BS: rtw_cfg80211_indicate_connect(wlan0) BSS not found !!
[  16.085933] RTL8723BS: assoc success
[  16.093482] RTL8723BS: send eapol packet
[  16.102579] RTL8723BS: send eapol packet
[  16.103214] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[  16.297175] RTL8723BS: set pairwise key camid:4, addr:62:d6:39:00:8d:a2, kid:0, type:AES
[  16.297624] RTL8723BS: set group key camid:5, addr:62:d6:39:00:8d:a2, kid:1, type:AES
[  29.243476] fuse: init (API version 7.32)
[  33.757231] usb0-vbus: disabling
[  146.522692] logitech-hidpp-device 0003:046D:4091.0006: HID++ 4.5 device connected.

Someone?
Title: Re: Camera module for OLinuxINO A64
Post by: LubOlimex on September 14, 2021, 09:40:27 am
I looked again everything and I think there is a major problem with the setup. I believe the interface is called MIPI_DSI for a reason. "DSI" is short of "Display Serial Interface". The MIPI connector is only output, aka it can be only used with a display, and NOT with a camera.

There were many places this was mentioned but unfortunately we missed it the first time around.

I checked again the datasheet of the main chip A64, and if you look at the features listed on page 10 the only image input interface mentioned in "2.7. Image In" is CSI (not MIPI). The datasheet is here:

https://dl.linux-sunxi.org/A64/A64_Datasheet_V1.1.pdf

So CSI cameras can be used with A64 chip, track the CSI signals. CSI signals are from PE0 to PE13 and all are free and available on the GPIO1 connector. It is pins 5,7,9,11,13,15,17,19,21,23,25,27,29,31.
Title: Re: Camera module for OLinuxINO A64
Post by: Eric976 on September 14, 2021, 03:15:44 pm
Ok =/
So I will come back to the camera OV5640, but the driver is not included yet, I'll research more about this.
Title: Re: Camera module for OLinuxINO A64
Post by: Eric976 on September 16, 2021, 02:32:27 pm
Hello
So I came back to a module with the OV5640 camera. The module is from Alientek company and it already has a crystal and the different voltages needed for the camera.
And for this it was necessary to recompile the kernel, to add the OV5640 driver. The driver I used was the c file available in the Olimex Kernel (https://github.com/OLIMEX/linux-olimex).

My dts file is as following:
/ts-v1/;
/plugin/;

/ {
        compatible = "allwinner,sun50i-a64\0olimex,a64-olinuxino";
        description = "Test camera OV5640";

        fragment@0 {
                target = <&i2c1>;

                __overlay__ {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "okay";

                        ov5640: camera@3c {
                                compatible = "ovti,ov5640";
                                reg = <0x3c>;
                                clocks = <&ov5640_clk>;
                                clock-names = "xclk";

                                reset-gpios = <&pio 4 14 1>; /* CSI-RST-R: PE14 */
                                powerdown-gpios = <&pio 4 15 0>; /* CSI-STBY-R: PE15 */

                                ov5640_clk: camera-clk {
                                        compatible = "fixed-clock";
                                        #clock-cells = <0>;
                                        clock-frequency = <24000000>;
                                };

                                port {
                                        ov5640_ep: endpoint {
                                                remote-endpoint = <&csi_ep>;
                                                bus-width = <8>;
                                                data-shift = <2>; /* lines 9:2 are used */
                                                hsync-active = <1>; /* Active high */
                                                vsync-active = <0>; /* Active low */
                                                data-active = <1>;  /* Active high */
                                                pclk-sample = <1>;  /* Rising */
                                        };
                                };
                        };
                };
        };
        fragment@1 {
                target = <&csi>;

                __overlay__ {
                        status = "okay";

                        port {
                                csi_ep: endpoint {
                                        remote-endpoint = <&ov5640_ep>;
                                        bus-width = <8>;
                                        hsync-active = <1>; /* Active high */
                                        vsync-active = <0>; /* Active low */
                                        data-active = <1>;  /* Active high */
                                        pclk-sample = <1>;  /* Rising */
                                };
                        };
                };
        };
};

I could get a picture using the fswebcam available in https://github.com/avafinger/fswebcam and following the instructions.
But I cannot get any video, I tried with gstreamer, ffmpeg, cheese, VLC... I'm always getting a message related to memory or pipeline, mostly about pipeline.
What can this be? Is it hardwarerelated or software?
Title: Re: Camera module for OLinuxINO A64
Post by: LubOlimex on September 16, 2021, 03:38:56 pm
Nice! If you have gotten a picture then things are going alright. Especially the hardware connections are alright. Shame that fswebcam is meant only for taking pictures. Probably some of the software settings in the command line of the tool are unfitting for the video. There might be other packages required. Stick with one video capturing software and check its related forums for similar errors. Maybe it is just something in the settings, but it might be a sign of missing kernel mpodules.
Title: Re: Camera module for OLinuxINO A64
Post by: Eric976 on September 17, 2021, 11:01:05 am
I got a video! =D
But a recorded one, not real-time. VLC and Cheese are still not working.
The problem with the pipeline was a misconfiguration done using the command media-ctl.

I tested using this pipeline
olimex@a64-olinuxino:~$ media-ctl -v -d /dev/media1 -V '"ov5640 1-003c":0[fmt:UYVY2X8/1280x720 field:none]'
Opening media device /dev/media1
Enumerating entities
looking up device: 81:1
looking up device: 81:128
Found 2 entities
Enumerating pads and links
Setting up format UYVY8_2X8 1280x720 on pad ov5640 1-003c/0
Format set: UYVY8_2X8 1280x720

These are the information about the capture driver
olimex@a64-olinuxino:~$ v4l2-ctl -d /dev/video1 --all --list-formats --list-ctrls
Driver Info:
        Driver name      : sun6i-video
        Card type        : sun6i-csi
        Bus info         : platform:csi
        Driver version   : 5.10.60
        Capabilities     : 0x84200001
                Video Capture
                Streaming
                Extended Pix Format
                Device Capabilities
        Device Caps      : 0x04200001
                Video Capture
                Streaming
                Extended Pix Format
Media Driver Info:
        Driver name      : sun6i-csi
        Model            : Allwinner Video Capture Device
        Serial           :
        Bus info         : platform:1cb0000.csi
        Media version    : 5.10.60
        Hardware revision: 0x00000000 (0)
        Driver version   : 5.10.60
Interface Info:
        ID               : 0x03000003
        Type             : V4L Video
Entity Info:
        ID               : 0x00000001 (1)
        Name             : sun6i-csi
        Function         : V4L2 I/O
        Pad 0x01000002   : 0: Sink, Must Connect
          Link 0x02000007: from remote pad 0x1000006 of entity 'ov5640 1-003c': Data, Enabled, Immutable
Priority: 2
Video input : 0 (camera: ok)
Format Video Capture:
        Width/Height      : 720/480
        Pixel Format      : 'UYVY' (UYVY 4:2:2)
        Field             : None
        Bytes per Line    : 1440
        Size Image        : 691200
        Colorspace        : Raw
        Transfer Function : Default (maps to None)
        YCbCr/HSV Encoding: Default (maps to ITU-R 601)
        Quantization      : Default (maps to Limited Range)
        Flags             :

User Controls

                       contrast 0x00980901 (int)    : min=0 max=255 step=1 default=0 value=0 flags=slider
                     saturation 0x00980902 (int)    : min=0 max=255 step=1 default=64 value=64 flags=slider
                            hue 0x00980903 (int)    : min=0 max=359 step=1 default=0 value=0 flags=slider
        white_balance_automatic 0x0098090c (bool)   : default=1 value=1 flags=update
                    red_balance 0x0098090e (int)    : min=0 max=4095 step=1 default=0 value=0 flags=inactive, slider
                   blue_balance 0x0098090f (int)    : min=0 max=4095 step=1 default=0 value=0 flags=inactive, slider
                       exposure 0x00980911 (int)    : min=0 max=65535 step=1 default=0 value=32 flags=inactive, volatile
                 gain_automatic 0x00980912 (bool)   : default=1 value=1 flags=update
                           gain 0x00980913 (int)    : min=0 max=1023 step=1 default=0 value=16 flags=inactive, volatile
                horizontal_flip 0x00980914 (bool)   : default=0 value=0
                  vertical_flip 0x00980915 (bool)   : default=0 value=0
           power_line_frequency 0x00980918 (menu)   : min=0 max=3 default=1 value=1
                                0: Disabled
                                1: 50 Hz
                                2: 60 Hz
                                3: Auto

Camera Controls

                  auto_exposure 0x009a0901 (menu)   : min=0 max=1 default=0 value=0 flags=update
                                0: Auto Mode
                                1: Manual Mode

Image Processing Controls

                     pixel_rate 0x009f0902 (int64)  : min=0 max=2147483647 step=1 default=61430400 value=42002400 flags=read-only
                   test_pattern 0x009f0903 (menu)   : min=0 max=4 default=0 value=0
                                0: Disabled
                                1: Color bars
                                2: Color bars w/ rolling bar
                                3: Color squares
                                4: Color squares w/ rolling bar
ioctl: VIDIOC_ENUM_FMT
        Type: Video Capture

        [0]: 'BA81' (8-bit Bayer BGBG/GRGR)
        [1]: 'GBRG' (8-bit Bayer GBGB/RGRG)
        [2]: 'GRBG' (8-bit Bayer GRGR/BGBG)
        [3]: 'RGGB' (8-bit Bayer RGRG/GBGB)
        [4]: 'BG10' (10-bit Bayer BGBG/GRGR)
        [5]: 'GB10' (10-bit Bayer GBGB/RGRG)
        [6]: 'BA10' (10-bit Bayer GRGR/BGBG)
        [7]: 'RG10' (10-bit Bayer RGRG/GBGB)
        [8]: 'BG12' (12-bit Bayer BGBG/GRGR)
        [9]: 'GB12' (12-bit Bayer GBGB/RGRG)
        [10]: 'BA12' (12-bit Bayer GRGR/BGBG)
        [11]: 'RG12' (12-bit Bayer RGRG/GBGB)
        [12]: 'YUYV' (YUYV 4:2:2)
        [13]: 'YVYU' (YVYU 4:2:2)
        [14]: 'UYVY' (UYVY 4:2:2)
        [15]: 'VYUY' (VYUY 4:2:2)
        [16]: 'HM12' (YUV 4:2:0 (16x16 Macroblocks))
        [17]: 'NV12' (Y/CbCr 4:2:0)
        [18]: 'NV21' (Y/CrCb 4:2:0)
        [19]: 'YU12' (Planar YUV 4:2:0)
        [20]: 'YV12' (Planar YVU 4:2:0)
        [21]: 'NV16' (Y/CbCr 4:2:2)
        [22]: 'NV61' (Y/CrCb 4:2:2)
        [23]: '422P' (Planar YUV 4:2:2)
        [24]: 'RGBP' (16-bit RGB 5-6-5)
        [25]: 'RGBR' (16-bit RGB 5-6-5 BE)
        [26]: 'JPEG' (JFIF JPEG, compressed)

And this was the way I was able to get a video recorded
olimex@a64-olinuxino:~$ ffmpeg -t 120 -f v4l2 -channel 0 -video_size 1280x720 -i /dev/video1 -pix_fmt yuvj420p -r 30 4.mpeg
ffmpeg version 4.2.2-1ubuntu1 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 9 (Ubuntu 9.3.0-3ubuntu1)
  configuration: --prefix=/usr --extra-version=1ubuntu1 --toolchain=hardened --libdir=/usr/lib/aarch64-linux-gnu --incdir=/usr/include/aarch64-linux-gnu --arch=arm64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
[video4linux2,v4l2 @ 0xaaaacc932810] ioctl(VIDIOC_G_PARM): Inappropriate ioctl for device
[video4linux2,v4l2 @ 0xaaaacc932810] Time per frame unknown
Input #0, video4linux2,v4l2, from '/dev/video1':
  Duration: N/A, start: 13135.065912, bitrate: N/A
    Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 1280x720, 30 tbr, 1000k tbn, 1000k tbc
File '4.mpeg' already exists. Overwrite ? [y/N] y
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> mpeg1video (native))
Press [q] to stop, [?] for help
Incompatible pixel format 'yuvj420p' for codec 'mpeg1video', auto-selecting format 'yuv420p'
[mpeg @ 0xaaaacc934c70] VBV buffer size not set, using default size of 230KB
If you want the mpeg file to be compliant to some specification
Like DVD, VCD or others, make sure you set the correct buffer size
Output #0, mpeg, to '4.mpeg':
  Metadata:
    encoder         : Lavf58.29.100
    Stream #0:0: Video: mpeg1video, yuv420p, 1280x720, q=2-31, 200 kb/s, 30 fps, 90k tbn, 30 tbc
    Metadata:
      encoder         : Lavc58.54.100 mpeg1video
    Side data:
      cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1
frame=  284 fps= 17 q=31.0 Lsize=    1140kB time=00:00:09.40 bitrate= 993.5kbits/s dup=219 drop=0 speed=0.55x
video:1134kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.560883%
Exiting normally, received signal 2.

What can be missing to be able to see a video in real time?
And with this pipeline/recoding way, I just got 15fps. Is it normal?