Lichee Pi zero


Recommended Posts

Yeah, having a serial UART is pretty important for working with this board unless you have one of the VGA breakouts or something where you can see whats going on.  Cause I don't think these images are setup in any way to otherwise be default accessible.  I doubt you will get any feedback on the USB port with the image, however, it may bring up ethernet... can't recall though and if it does, it is likely with a predefined static IP.  You can probably mount the image using a loop device on your local Linux machine and take a look at things inside to get a better idea.

 

Maybe a little later today I can pull it out and play with it and see if I can come up with something better for you.

 

If you really want to motivate me to test it, you are best to come to IRC and bug me about it, lol.  Otherwise I do have a huge list of 'other things' I will probably start working on first.

 

Cheers!

Link to post
Share on other sites
Donate and support the project!

1 hour ago, TheLinuxBug said:

 You can probably mount the image using a loop device on your local Linux machine and take a look at things inside to get a better idea.

 

Maybe a little later today I can pull it out and play with it and see if I can come up with something better for you.

 

If you really want to motivate me to test it, you are best to come to IRC and bug me about it, lol.  Otherwise I do have a huge list of 'other things' I will probably start working on first.

 

I already did mount the two partitons and did take a look at /etc/network/interfaces and /etc/rc.local, but ethernet doenst came up like I configured.
Something better would be nice.
This week I havent a free head for much more, because since monday I got the flu/grip and tissue's are my best friends these days....butI like small boards and when its not so easy (like on the supported armbian-boards) :)

Link to post
Share on other sites

@guidol Good news and medium good news.

Here is u-boot, kernel and dtb needed to enable eth0 and have it work:

https://licheepizero.us/licheepizero.linux-4.12.with.vga.and.eth0.tar.gz

 

http://prntscr.com/nhuq6f

http://prntscr.com/nhupqd

http://prntscr.com/nhupv3

 

The uboot has vga and eth0 enabled, however, the current versions of the WiFi module that are around do not work with this kernel and while VGA is in the uboot, it isn't active in the kernel in this.

 

If your goal is to boot up and have eth0 up and access, this should work for you.

 

I am going to test building 4.14.y and 4.13.y branch to see if the WiFi driver is incorporated at any point, the github repos are not very specific about whats been updated and my attempts to build the driver seperately have so far failed for the 4.12.y repo I used to generate this.

 

This should at least be enough to get you started.  Once i test a bit more I will upload my .config and provide a link as well.

 

Cheers!

Link to post
Share on other sites
10 hours ago, TheLinuxBug said:

@guidol Good news and medium good news.

Here is u-boot, kernel and dtb needed to enable eth0 and have it work:

https://licheepizero.us/licheepizero.linux-4.12.with.vga.and.eth0.tar.gz

 

The uboot has vga and eth0 enabled, however, the current versions of the WiFi module that are around do not work with this kernel and while VGA is in the uboot, it isn't active in the kernel in this.

 

If your goal is to boot up and have eth0 up and access, this should work for you.

This should at least be enough to get you started.  Once i test a bit more I will upload my .config and provide a link as well.

Woohoo :)

YES - its working!

 

BootUp and Ethernet is working and also the TrippleLED (Green/Red/Blue)

 

Static IP wouldnt work in the first place, so I did go back to DHCP and did tell my Router to give a Static-DHCP-IP to the LicheePi-MAC.

 

I did expand the filesystem with a with the following link (which I didnt found in your link-list):
https://github.com/Squonk42/buildroot-licheepi-zero-old/wiki/Fresh-image-–-Expand-the-root-partition-and-filesystem

 

and then I "installed" the 128MB swap with a mix of the instructions you listed under

http://bbs.ilichee.cc/t/tutorial-setup-swap-file-for-zero/56

and the link I did found also in the same (LicheePi builtroot) wiki :

https://github.com/Squonk42/buildroot-licheepi-zero-old/wiki/Fresh-image-–-Expand-the-virtual-memory

 

Some impressions:

Spoiler

 


login as: root
root@192.168.6.130's password:
 _     ____  _   _____                ____             _
| |   |  _ \(_) |__  /___ _ __ ___   |  _ \  ___   ___| | __
| |   | |_) | |   / // _ \ '__/ _ \  | | | |/ _ \ / __| |/ /
| |___|  __/| |  / /|  __/ | | (_) | | |_| | (_) | (__|   <
|_____|_|   |_| /____\___|_|  \___/  |____/ \___/ \___|_|\_\
============================================================
             V3s Single-Cortex-A7-System 64MB Ram
------------------------------------------------------------

Last login: Mon Apr 29 03:02:33 2019 from 192.168.6.17
root@LicheePi(addr:192.168.6.130):/# uname -a
Linux LicheePi 4.12.0-rc1-00088-gbe3a3cd-dirty #1 SMP Sun Apr 28 10:21:26 CEST 2019 armv7l GNU/Linux

root@LicheePi(addr:192.168.6.130):/# top
top - 02:00:38 up 16 min,  1 user,  load average: 0.02, 0.03, 0.00
Tasks:  61 total,   1 running,  60 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.6 sy,  0.0 ni, 95.8 id,  3.4 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:     55956 total,    44916 used,    11040 free,     3652 buffers
KiB Swap:   131068 total,        0 used,   131068 free.    20408 cached Mem

root@LicheePi(addr:192.168.6.130):/# ls -l /sys/class/leds
total 0
lrwxrwxrwx 1 root root 0 Apr 29 01:43 licheepi:blue:usr -> ../../devices/platform/leds/leds/licheepi:blue:usr
lrwxrwxrwx 1 root root 0 Apr 29 01:43 licheepi:green:usr -> ../../devices/platform/leds/leds/licheepi:green:usr
lrwxrwxrwx 1 root root 0 Apr 29 01:43 licheepi:red:usr -> ../../devices/platform/leds/leds/licheepi:red:usr

root@LicheePi(addr:192.168.6.130):/# more /proc/cpuinfo
processor       : 0
model name      : ARMv7 Processor rev 5 (v7l)
BogoMIPS        : 48.00
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc07
CPU revision    : 5

Hardware        : Allwinner sun8i Family
Revision        : 0000
Serial          : 12c000022eec95b1

 

I did see that /etc/apt/sources.list does point to debian jessie - so we have to adjust the entrys to get them work, because they did change them - I think - a month ago:

https://lists.debian.org/debian-devel-announce/2019/03/msg00006.html

 

dmesg:

Spoiler

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.12.0-rc1-00088-gbe3a3cd-dirty (root@shell10.phix-it.com) (gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05) ) #1 SMP Sun Apr 28 10:21:26 CEST 2019
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Lichee Pi Zero
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] On node 0 totalpages: 16384
[    0.000000] free_area_init_node: node 0, pgdat c0a603c0, node_mem_map c3f7a000
[    0.000000]   Normal zone: 128 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 16384 pages, LIFO batch:3
[    0.000000] percpu: Embedded 16 pages/cpu @c3f62000 s33548 r8192 d23796 u65536
[    0.000000] pcpu-alloc: s33548 r8192 d23796 u65536 alloc=16*4096
[    0.000000] pcpu-alloc: [0] 0
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256
[    0.000000] Kernel command line: console=ttyS0,115200 panic=5 console=tty0 rootwait root=/dev/mmcblk0p2 earlyprintk rw
[    0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)
[    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Memory: 54932K/65536K available (6144K kernel code, 387K rwdata, 1432K rodata, 1024K init, 265K bss, 10604K reserved, 0K cma-reserved, 0K highmem)
[    0.000000] Virtual kernel memory layout:
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
    vmalloc : 0xc4800000 - 0xff800000   ( 944 MB)
    lowmem  : 0xc0000000 - 0xc4000000   (  64 MB)
    pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
    modules : 0xbf000000 - 0xbfe00000   (  14 MB)
      .text : 0xc0008000 - 0xc0700000   (7136 kB)
      .init : 0xc0900000 - 0xc0a00000   (1024 kB)
      .data : 0xc0a00000 - 0xc0a60cc0   ( 388 kB)
       .bss : 0xc0a674d8 - 0xc0aa9a94   ( 266 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000]  RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=1.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (virt).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[    0.000007] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[    0.000019] Switching to timer-based delay loop, resolution 41ns
[    0.000153] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.000378] Console: colour dummy device 80x30
[    0.000794] console [tty0] enabled
[    0.000836] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[    0.000875] pid_max: default: 32768 minimum: 301
[    0.001014] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.001041] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.001679] CPU: Testing write buffer coherency: ok
[    0.002077] /cpus/cpu@0 missing clock-frequency property
[    0.002122] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.002594] Setting up static identity map for 0x40100000 - 0x40100060
[    0.003263] smp: Bringing up secondary CPUs ...
[    0.003303] smp: Brought up 1 node, 1 CPU
[    0.003325] SMP: Total of 1 processors activated (48.00 BogoMIPS).
[    0.003344] CPU: All CPU(s) started in SVC mode.
[    0.004091] devtmpfs: initialized
[    0.006569] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[    0.006867] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.006924] futex hash table entries: 256 (order: 2, 16384 bytes)
[    0.007091] pinctrl core: initialized pinctrl subsystem
[    0.008158] NET: Registered protocol family 16
[    0.008665] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.009798] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.009845] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.021615] SCSI subsystem initialized
[    0.021979] libata version 3.00 loaded.
[    0.022289] usbcore: registered new interface driver usbfs
[    0.022381] usbcore: registered new interface driver hub
[    0.022494] usbcore: registered new device driver usb
[    0.022753] pps_core: LinuxPPS API ver. 1 registered
[    0.022777] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.022827] PTP clock support registered
[    0.023055] Advanced Linux Sound Architecture Driver Initialized.
[    0.023746] Bluetooth: Core ver 2.22
[    0.023848] NET: Registered protocol family 31
[    0.023870] Bluetooth: HCI device and connection manager initialized
[    0.023900] Bluetooth: HCI socket layer initialized
[    0.023921] Bluetooth: L2CAP socket layer initialized
[    0.023966] Bluetooth: SCO socket layer initialized
[    0.024508] clocksource: Switched to clocksource arch_sys_counter
[    0.035532] NET: Registered protocol family 2
[    0.036178] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    0.036236] TCP bind hash table entries: 1024 (order: 1, 8192 bytes)
[    0.036274] TCP: Hash tables configured (established 1024 bind 1024)
[    0.036411] UDP hash table entries: 256 (order: 1, 8192 bytes)
[    0.036475] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[    0.036694] NET: Registered protocol family 1
[    0.037411] RPC: Registered named UNIX socket transport module.
[    0.037457] RPC: Registered udp transport module.
[    0.037477] RPC: Registered tcp transport module.
[    0.037494] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.039555] workingset: timestamp_bits=30 max_order=14 bucket_order=0
[    0.049085] NFS: Registering the id_resolver key type
[    0.049167] Key type id_resolver registered
[    0.049187] Key type id_legacy registered
[    0.049246] fuse init (API version 7.26)
[    0.051422] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249)
[    0.051481] io scheduler noop registered
[    0.051501] io scheduler deadline registered
[    0.051555] io scheduler cfq registered (default)
[    0.051573] io scheduler mq-deadline registered
[    0.051591] io scheduler kyber registered
[    0.056482] sun8i-v3s-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[    0.124223] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[    0.127708] console [ttyS0] disabled
[    0.148001] 1c28000.serial: ttyS0 at MMIO 0x1c28000 (irq = 30, base_baud = 1500000) is a U6_16550A
[    0.740861] console [ttyS0] enabled
[    0.758155] loop: module loaded
[    0.762256] libphy: Fixed MDIO Bus: probed
[    0.766494] CAN device driver interface
[    0.771785] pegasus: v0.9.3 (2013/04/25), Pegasus/Pegasus II USB Ethernet driver
[    0.779400] usbcore: registered new interface driver pegasus
[    0.785160] usbcore: registered new interface driver rtl8150
[    0.790913] usbcore: registered new interface driver r8152
[    0.797738] aoe: AoE v85 initialised.
[    0.801473] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.808106] ehci-platform: EHCI generic platform driver
[    0.813520] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    0.819791] ohci-platform: OHCI generic platform driver
[    0.825220] usbcore: registered new interface driver uas
[    0.830615] usbcore: registered new interface driver usb-storage
[    0.837944] sun6i-rtc 1c20400.rtc: rtc core: registered rtc-sun6i as rtc0
[    0.844864] sun6i-rtc 1c20400.rtc: RTC enabled
[    0.849527] i2c /dev entries driver
[    0.853262] IR NEC protocol handler initialized
[    0.857873] IR RC5(x/sz) protocol handler initialized
[    0.862935] IR RC6 protocol handler initialized
[    0.867494] IR JVC protocol handler initialized
[    0.872029] IR Sony protocol handler initialized
[    0.876662] IR SANYO protocol handler initialized
[    0.881370] IR Sharp protocol handler initialized
[    0.886091] IR MCE Keyboard/mouse protocol handler initialized
[    0.891927] IR XMP protocol handler initialized
[    0.897246] sunxi-wdt 1c20ca0.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
[    0.905277] Bluetooth: HCI UART driver ver 2.3
[    0.909738] Bluetooth: HCI UART protocol Three-wire (H5) registered
[    0.974560] sunxi-mmc 1c0f000.mmc: base:0xc485d000 irq:22
[    0.981522] usbcore: registered new interface driver usbhid
[    0.987208] usbhid: USB HID core driver
[    0.992593] ipip: IPv4 and MPLS over IPv4 tunneling driver
[    0.998978] gre: GRE over IPv4 demultiplexor driver
[    1.003887] ip_gre: GRE over IPv4 tunneling driver
[    1.010061] NET: Registered protocol family 17
[    1.014647] can: controller area network core (rev 20170425 abi 9)
[    1.020955] NET: Registered protocol family 29
[    1.025464] can: raw protocol (rev 20170425)
[    1.029744] can: broadcast manager protocol (rev 20170425 t)
[    1.035440] can: netlink gateway (rev 20170425) max_hops=1
[    1.041197] Key type dns_resolver registered
[    1.045683] Registering SWP/SWPB emulation handler
[    1.056817] usb_phy_generic usb_phy_generic.0.auto: usb_phy_generic.0.auto supply vcc not found, using dummy regulator
[    1.068291] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver
[    1.074085] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 1
[    1.085434] hub 1-0:1.0: USB hub found
[    1.089333] hub 1-0:1.0: 1 port detected
[    1.094141] sun6i-rtc 1c20400.rtc: setting system clock to 2019-04-28 18:11:53 UTC (1556475113)
[    1.103167] vcc3v0: disabling
[    1.106222] vcc5v0: disabling
[    1.109204] ALSA device list:
[    1.112176]   No soundcards found.
[    1.116237] Waiting for root device /dev/mmcblk0p2...
[    1.161773] mmc0: host does not support reading read-only switch, assuming write-enable
[    1.172042] mmc0: new high speed SDHC card at address aaaa
[    1.178295] mmcblk0: mmc0:aaaa SU16G 14.8 GiB
[    1.184340]  mmcblk0: p1 p2
[    1.205860] EXT4-fs (mmcblk0p2): couldn't mount as ext3 due to feature incompatibilities
[    1.215064] EXT4-fs (mmcblk0p2): couldn't mount as ext2 due to feature incompatibilities
[    1.237270] random: fast init done
[    1.243556] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    1.251867] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    1.265964] devtmpfs: mounted
[    1.270147] Freeing unused kernel memory: 1024K
[    1.469611] systemd[1]: systemd 215 running in system mode. (+PAM +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ -SECCOMP -APPARMOR)
[    1.483682] systemd[1]: Detected architecture 'arm'.
[    1.512454] systemd[1]: Failed to insert module 'autofs4'
[    1.518368] systemd[1]: Failed to insert module 'ipv6'
[    1.525429] systemd[1]: Set hostname to <LicheePi>.
[    1.929072] systemd[1]: Cannot add dependency job for unit dbus.socket, ignoring: Unit dbus.socket failed to load: No such file or directory.
[    1.942157] systemd[1]: Cannot add dependency job for unit display-manager.service, ignoring: Unit display-manager.service failed to load: No such file or directory.
[    1.959723] systemd[1]: Starting Forward Password Requests to Wall Directory Watch.
[    1.968299] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[    1.976234] systemd[1]: Expecting device dev-ttyS0.device...
[    2.182638] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[    2.591149] systemd-udevd[91]: starting version 215
[    2.778800] Adding 131068k swap on /swap.  Priority:-1 extents:4 across:172032k SS
[    3.512443] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
[    4.044479] systemd-journald[78]: Received request to flush runtime journal from PID 1
[    6.225240] libphy: 1c30000.ethernet: probed
[    6.241598] Generic PHY 1c30000.ethernet-0:01: attached PHY driver [Generic PHY] (mii_bus:phy_addr=1c30000.ethernet-0:01, irq=-1)
[    6.253430] sun8i-emac 1c30000.ethernet: device MAC address slot 0 02:02:2e:ec:95:b1
[    6.261680] sun8i-emac 1c30000.ethernet: device MAC address slot 1 01:00:5e:00:00:01
[    8.325108] sun8i-emac 1c30000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[   11.273289] sun8i-emac 1c30000.ethernet: device MAC address slot 1 01:00:5e:00:00:01
[   16.505200] sun8i-emac 1c30000.ethernet: device MAC address slot 1 01:00:5e:00:00:01
 

 

PS: My OrangePi PC is running your(?) H3Droid as Text2Speech-Server, because the good german Voice was much cheaper than for a PC:

 

Link to post
Share on other sites

the old jessie-souces.list does give the updates-error:

Spoiler

deb http://ftp.cn.debian.org/debian/ jessie main contrib non-free
deb-src http://ftp.cn.debian.org/debian/ jessie main contrib non-free
deb http://ftp.cn.debian.org/debian/ jessie-updates main contrib non-free
deb-src http://ftp.cn.debian.org/debian/ jessie-updates main contrib non-free

W: Failed to fetch http://ftp.cn.debian.org/debian/dists/jessie-updates/InRelease  Unable to find expected entry 'main/source/Sources' in Release file (Wrong sources.list entry or malformed file)

 

My newer one does work :)

Spoiler

deb http://archive.debian.org/debian/ jessie main contrib non-free
deb-src http://archive.debian.org/debian/ jessie main contrib non-free

deb http://security.debian.org jessie/updates main contrib non-free
deb-src http://security.debian.org jessie/updates main contrib non-free

Fetched 20.2 MB in 1min 52s (179 kB/s)
Reading package lists... Done
Building dependency tree... Done
93 packages can be upgraded. Run 'apt list --upgradable' to see them.
 

Link to post
Share on other sites
9 hours ago, TheLinuxBug said:

Here is u-boot, kernel and dtb needed to enable eth0 and have it work:

https://licheepizero.us/licheepizero.linux-4.12.with.vga.and.eth0.tar.gz

it seems that I missed to "flash" the new u-boot :(

I did copy it only to /boot, but I did read it has to be flaseh with a 8K offset to the microsd like:

dd if=u-boot-sunxi-with-spl.bin of=/dev/ sdX bs=1024 seek=8

Spoiler

root@LicheePi(addr:192.168.6.130):/boot# ls -l
total 4320
drwxr-xr-x 2 root root    2048 Apr 27 19:13 System Volume Information
drwxr-xr-x 2 root root    2048 Apr 28 23:14 backup
-rwxr-xr-x 1 root root     287 Apr 27 22:29 boot.scr
-rwxr-xr-x 1 root root    8238 Apr 28 19:20 sun8i-v3s-licheepi-zero.dtb
-rwxr-xr-x 1 root root  409391 Apr 28 20:44 u-boot-sunxi-with-spl-vga.bin
-rwxr-xr-x 1 root root 3997192 Apr 28 19:21 zImage
 

 

inside you archive was a 400K file named u-boot-sunxi-with-spl-vga.bin

but ethernet did work with the old u-boot from mindb which I flashed initially to my microsd.

 

Is it a safe way to flash it from another linux sbc with

dd if=u-boot-sunxi-with-spl-vga.bin of=/dev/sdb bs=1024 seek=8

or should I leave the old u-boot because Iam not using vga at this time? 

 

Link to post
Share on other sites
10 hours ago, guidol said:

it seems that I missed to "flash" the new u-boot :(

I did copy it only to /boot, but I did read it has to be flaseh with a 8K offset to the microsd like:

dd if=u-boot-sunxi-with-spl.bin of=/dev/ sdX bs=1024 seek=8

  Reveal hidden contents

root@LicheePi(addr:192.168.6.130):/boot# ls -l
total 4320
drwxr-xr-x 2 root root    2048 Apr 27 19:13 System Volume Information
drwxr-xr-x 2 root root    2048 Apr 28 23:14 backup
-rwxr-xr-x 1 root root     287 Apr 27 22:29 boot.scr
-rwxr-xr-x 1 root root    8238 Apr 28 19:20 sun8i-v3s-licheepi-zero.dtb
-rwxr-xr-x 1 root root  409391 Apr 28 20:44 u-boot-sunxi-with-spl-vga.bin
-rwxr-xr-x 1 root root 3997192 Apr 28 19:21 zImage
 

 

inside you archive was a 400K file named u-boot-sunxi-with-spl-vga.bin

but ethernet did work with the old u-boot from mindb which I flashed initially to my microsd.

 

Is it a safe way to flash it from another linux sbc with

dd if=u-boot-sunxi-with-spl-vga.bin of=/dev/sdb bs=1024 seek=8

or should I leave the old u-boot because Iam not using vga at this time? 

 

 

Yes, most of the devices are controlled by the DTB file, in fact, I compiled the 'staging' wifi driver and played around with enabling WIFi in the  new DTB.  I actually added the wrong DTB to that tar.gz after all was said and done, like you noticed, sorry about that.  I was kinda rushed when I put that up.  I did compile a few more kernels and was talking to some devs about trying to get some help with getting devices enabled correctly in the DTB.

 

I actually have a DTB that works for enabling vga framebuffer, ethernet and wifi however ends up breaking USB (assuming your powering through pins, you can actually connect a USB device) and the staging driver in 4.12.y is trash and the kernel panics when you inset the WiFi driver.

 

Glad to hear you found a working dtb for your needs, supposedly there were a few in the packages as you noticed with different things enabled.

 

As I get time I will probably compile a few more kernels and work on the DTB and will post back here if I come up with something better. Though glad to hear what I provided gave you a good start!

 

Cheers!

Link to post
Share on other sites
On 4/29/2019 at 9:01 AM, TheLinuxBug said:

As I get time I will probably compile a few more kernels and work on the DTB and will post back here if I come up with something better. Though glad to hear what I provided gave you a good start!

Hi @TheLinuxBug
today I did try to add the soundcard "analog-codec" to the .dtb you gave me for the ethernet-port.

Ethernet-port code is:
 

Spoiler

                ethernet@1c30000 {
                        compatible = "allwinner,sun8i-h3-emac";
                        syscon = <0xb>;
                        reg = <0x1c30000 0x104>;
                        interrupts = <0x0 0x52 0x4>;
                        interrupt-names = "macirq";
                        resets = <0x2 0xc>;
                        reset-names = "stmmaceth";
                        clocks = <0x2 0x1a>;
                        clock-names = "stmmaceth";
                        #address-cells = <0x1>;
                        #size-cells = <0x0>;
                        status = "okay";
                        phy-handle = <0xc>;
                        phy-mode = "mii";
                        allwinner,leds-active-low;

                        mdio {
                                #address-cells = <0x1>;
                                #size-cells = <0x0>;

                                ethernet-phy@0 {
                                        compatible = "ethernet-phy-ieee802.3-c22";
                                        reg = <0x1>;
                                        clocks = <0x2 0x2b>;
                                        resets = <0x2 0x27>;
                                        linux,phandle = <0xc>;
                                        phandle = <0xc>;
                                };
                        };
                };
 

 

and the soundcard (codec-analog) is:
 

Spoiler

                codec@01c22c00 {
                        #sound-dai-cells = <0x0>;
                        compatible = "allwinner,sun8i-v3s-codec";
                        reg = <0x1c22c00 0x400>;
                        interrupts = <0x0 0x1d 0x4>;
                        clocks = <0x2 0x24 0x2 0x46>;
                        clock-names = "apb", "codec";
                        resets = <0x2 0x28>;
                        dmas = <0xb 0xf 0xb 0xf>;
                        dma-names = "rx", "tx";
                        allwinner,codec-analog-controls = <0xc>;
                        status = "okay";
                        allwinner,audio-routing = "Headphone", "HP", "Headphone", "HPCOM", "MIC1$
                };

                codec-analog@01c23000 {
                        compatible = "allwinner,sun8i-v3s-codec-analog";
                        reg = <0x1c23000 0x4>;
                        linux,phandle = <0xc>;
                        phandle = <0xc>;
                };

 

I did insert the soundcard data to the ethernet-.dtb , but it doenst could be compiled (also when i try to use another phandle for the soundcard). So 0xc seems to be used for ethernet and soundcard :(

 

I do get the following "syntax-error" (error? I did copy & paste the parts):
 

root@LicheePi(addr:192.168.6.130):/home/guido# dtc -I dts -O dtb ./sun8i-v3s-licheepi-zero_eth0_analog.dts -o ./sun8i-v3s-licheepi-zero_eth0_analog.dtb

Error: ./sun8i-v3s-licheepi-zero_eth0_analog.dts:255.39-40 syntax error
FATAL ERROR: Unable to parse input tree

and Line 255 points to :

                       compatible = "allwinner,sun8i-v3s-codec-analog";

from the part
                codec-analog@01c23000 {

Iam not firm in decode this error in the .dts - but I couldnt find any wrong written word (=syntax-error) nor a double name, handle or address.

 

Maybe you got an idea when do will compile new dtbs or kernel.

@Igor short question: when I try to edit a entry in the forum I couldnt use spoiler/code-tags after the first save.
on the second edit these tags are gone in the editor. Is this as you wish or is there a problem for my user or for all?
Got this problem spotted for 1-2 weeks..

Link to post
Share on other sites
4 minutes ago, guidol said:

short question: when I try to edit a entry in the forum I couldnt use spoiler/code-tags after the first save.
on the second edit these tags are gone in the editor. Is this as you wish or is there a problem for my user or for all?
Got this problem spotted for 1-2 weeks..

 

There is a major forum upgrade + 2 bug fix upgrade waiting. I hope some of those troubles will be gone after that. I already started with theme adjustments and testing, but due to family duties I am grounded for few days :) Switch to updated version perhaps in upcoming weekend.

Link to post
Share on other sites
54 minutes ago, guidol said:

So 0xc seems to be used for ethernet and soundcard

phandles are kind of slot number for the node, it can't be used twice, if slot is already occupied.

When adding a new node manually to a decompiled DT, you need to assign a phandle which doesn't already exist, looking at the highest phandle and choosing something higher, not necessarly consecutive, maybe something like 0x99 ...

 

Link to post
Share on other sites
57 minutes ago, guidol said:

Hi @TheLinuxBug
today I did try to add the soundcard "analog-codec" to the .dtb you gave me for the ethernet-port.

Ethernet-port code is:
 

  Reveal hidden contents

                ethernet@1c30000 {
                        compatible = "allwinner,sun8i-h3-emac";
                        syscon = <0xb>;
                        reg = <0x1c30000 0x104>;
                        interrupts = <0x0 0x52 0x4>;
                        interrupt-names = "macirq";
                        resets = <0x2 0xc>;
                        reset-names = "stmmaceth";
                        clocks = <0x2 0x1a>;
                        clock-names = "stmmaceth";
                        #address-cells = <0x1>;
                        #size-cells = <0x0>;
                        status = "okay";
                        phy-handle = <0xc>;
                        phy-mode = "mii";
                        allwinner,leds-active-low;

                        mdio {
                                #address-cells = <0x1>;
                                #size-cells = <0x0>;

                                ethernet-phy@0 {
                                        compatible = "ethernet-phy-ieee802.3-c22";
                                        reg = <0x1>;
                                        clocks = <0x2 0x2b>;
                                        resets = <0x2 0x27>;
                                        linux,phandle = <0xc>;
                                        phandle = <0xc>;
                                };
                        };
                };
 

 

and the soundcard (codec-analog) is:
 

  Reveal hidden contents

                codec@01c22c00 {
                        #sound-dai-cells = <0x0>;
                        compatible = "allwinner,sun8i-v3s-codec";
                        reg = <0x1c22c00 0x400>;
                        interrupts = <0x0 0x1d 0x4>;
                        clocks = <0x2 0x24 0x2 0x46>;
                        clock-names = "apb", "codec";
                        resets = <0x2 0x28>;
                        dmas = <0xb 0xf 0xb 0xf>;
                        dma-names = "rx", "tx";
                        allwinner,codec-analog-controls = <0xc>;
                        status = "okay";
                        allwinner,audio-routing = "Headphone", "HP", "Headphone", "HPCOM", "MIC1$
                };

                codec-analog@01c23000 {
                        compatible = "allwinner,sun8i-v3s-codec-analog";
                        reg = <0x1c23000 0x4>;
                        linux,phandle = <0xc>;
                        phandle = <0xc>;
                };

 

I did insert the soundcard data to the ethernet-.dtb , but it doenst could be compiled (also when i try to use another phandle for the soundcard). So 0xc seems to be used for ethernet and soundcard :(

 

I do get the following "syntax-error" (error? I did copy & paste the parts):
 


root@LicheePi(addr:192.168.6.130):/home/guido# dtc -I dts -O dtb ./sun8i-v3s-licheepi-zero_eth0_analog.dts -o ./sun8i-v3s-licheepi-zero_eth0_analog.dtb

Error: ./sun8i-v3s-licheepi-zero_eth0_analog.dts:255.39-40 syntax error
FATAL ERROR: Unable to parse input tree

and Line 255 points to :

                       compatible = "allwinner,sun8i-v3s-codec-analog";

from the part
                codec-analog@01c23000 {

Iam not firm in decode this error in the .dts - but I couldnt find any wrong written word (=syntax-error) nor a double name, handle or address.

 

Maybe you got an idea when do will compile new dtbs or kernel.
 

Before I got a headache and quit the other night I was dealing with a similar issue.  It looks like in the DTBs I was reviewing that the analog codec seems to want to use similar pins as the ethernet adapter.  I am not well versed enough in how the DTB is to be formatted and how to map this differently as needed.  I had one DTB hacked together which seemed to provide most things except USB and analog audio, but not confident enough in it to really give it out till I know its right.

 

My hope is next time I get a chance to bug a few devs I know and get it working as expected.  When I get there, I will share that with you as well.

 

RE:  @martinayotte this is actually the info I was looking for, thanks for that! At least got me pointed in the right direction of what to look at.

 

@guidol if you want to mess with it your self, what @martinayotte said should get you started.

 

Cheers!

Link to post
Share on other sites
8 minutes ago, TheLinuxBug said:

RE:  @martinayotte this is actually the info I was looking for, thanks for that! At least got me pointed in the right direction of what to look at.

 

@guidol if you want to mess with it your self, what @martinayotte said should get you started.

I did already test to replace 0xc with something like 0xa1 - but this does not solve the "sytax error) :(

As @TheLinuxBug did wrote there seem to be some other setting double.

 

I didnt found any editor or guide for me at this time

Link to post
Share on other sites
16 hours ago, martinayotte said:

The compile error is probably because the missing quote and semicolon at the end of this line ...

You got a "Eagle-Eye" - but its even more worse.... the $ at the end of the line is from the nano-editor and the line is even longer:

not only

allwinner,audio-routing = "Headphone", "HP", "Headphone", "HPCOM", "MIC1"

BUT

allwinner,audio-routing = "Headphone", "HP", "Headphone", "HPCOM", "MIC1", "Mic", "Mic", "HBIAS";

Mind the ; ;)

 

OK - the sun8i-v3s-licheepi-zero_eth0_analog.dts is now compiled as .dtb..

(named in / boot as sun8i-v3s-licheepi-zero.dtb)

 

Ethernet is working like before

but it seems now Iam missing the audio-driver/module :(

@TheLinuxBug maybe this link would help us more?
Add support for the audio codec on Allwinner V3s:
https://lwn.net/Articles/723647/

 

root@LicheePi(addr:192.168.6.130):~# aplay -l
aplay: device_list:268: no soundcards found...

 

[EDIT] I also did try to add the DMA-controller, but I doent know if I had to insert the new phandle 0xa8 to the DMA-lines of the codec-analog, because there is also 2x 0xb whcih is the old phandle.

 

[EDIT 2nd] I deleted here the non-working .DTS/.DTBs

 

 

 

 

 

Link to post
Share on other sites
54 minutes ago, guidol said:

but I doent know if I had to insert the new phandle 0xa8 to the DMA-lines of the codec-analog, because there is also 2x 0xb whcih is the old phandle.

Right, they must be changed to 0xa8 ...

 

BTW, since the patch you mentioned is coming from Icenowy, you can dig her github, she got several v3s branches :

https://github.com/Icenowy/linux/tree/v3s-codec-v1

https://github.com/Icenowy/linux/commit/716da86219368781107a5c4fcf205b7973d3dba5

Link to post
Share on other sites
3 minutes ago, guidol said:

or has the 0xf also be changed to something else?

No ! 0xf is the interrupt number 15.

I've edit my above post which shows the original sources from icenowy's github : the line "dmas = <&dma 15>, <&dma 15>;" would then be translated into "dmas = <0xa8 0xf 0xa8 0xf>;"

BTW, why not trying to take icenowy's patches and place them in Armbian build, you will end up with a working lichee kernel 5.0.y ... :P

Link to post
Share on other sites
15 hours ago, martinayotte said:

No ! 0xf is the interrupt number 15.

 

 

BTW, why not trying to take icenowy's patches and place them in Armbian build, you will end up with a working lichee kernel 5.0.y ... :P

Sorry I got no idea which is a phandle there and which is ther an interrupt.

 

AND Iam a VERY VERY beginner in self-compiling. 

Using the armbian-build-system menue is - for me - not really compiling ;)
As now I dont use any patches or know how to place them.... :(

 

[EDIT]

BUT YES! after editing the DMA-lines also to 0xa8 see what I do get:
root@LicheePi(addr:192.168.6.130):~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Codec [V3s Audio Codec], device 0: CDC PCM Codec-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

 

lsmod (for soundcard):

sun8i_codec_analog     28672  1
snd_soc_simple_card    20480  0
sun8i_adda_pr_regmap    16384  1 sun8i_codec_analog
snd_soc_simple_card_utils    16384  1 snd_soc_simple_card
sun4i_codec            49152  3
snd_soc_core          126976  5 sun4i_i2s,sun8i_codec_analog,sun4i_codec,snd_soc_simple_card_utils,snd_soc_simple_card
snd_pcm_dmaengine      16384  1 snd_soc_core
snd_pcm                94208  4 sun4i_i2s,sun4i_codec,snd_soc_core,snd_pcm_dmaengine
snd_timer              32768  1 snd_pcm
snd                    57344  3 snd_timer,snd_soc_core,snd_pcm
soundcore              16384  1 snd
 

@TheLinuxBug

Also NEW DMA-version .dts and .dtb  here for all other:)

Backup of the .dts/.dtb with working Ethernet/Audio/LEDs also on GoogleDrive:
https://drive.google.com/open?id=1X7y0XIC8TAj3R7Ag4iUu1f4rT77RdzPL

 

sun8i-v3s-licheepi-zero_eth0_analog_dma.dtb

sun8i-v3s-licheepi-zero_eth0_analog_dma.dts

Link to post
Share on other sites
2 minutes ago, guidol said:

Sorry I got no idea which is a phandle there and which is ther an interrupt.

No problem, as I said the resulting "dmas = <0xa8 0xf 0xa8 0xf>;" is good !

5 minutes ago, guidol said:

As now I dont use any patches or know how to place them.... :(

No worries ! But that would be a good opportunity and challenge ... ;)

Link to post
Share on other sites
16 hours ago, martinayotte said:

No problem, as I said the resulting "dmas = <0xa8 0xf 0xa8 0xf>;" is good !

No worries ! But that would be a good opportunity and challenge ... ;)

Hmmm....

I edited a /etc/asound.conf and can use alsamixer but I couldnt get sound on the connected headphone or a amplified speaker :(

 

!WAIT! all back - I hadnt said/wrote that :)

I was in the wrong terminal window.... (my NanoPi Neo2 NAS)

 

Its alive!! and do play Internetradio via mpg123

mpg123 -@ /home/guido/hr1_2.m3u

 

hr1_2.m3u

LicheePi_Ethernet_Audio.jpg

LicheePi_V3s_Audio_Codec.jpg

Link to post
Share on other sites
45 minutes ago, guidol said:

Using the armbian-build-system menue is - for me - not really compiling ;)
As now I dont use any patches or know how to place them.... :(

it is, the difference is.. You don't have to think about outdated compilers on your base system.. :lol: There was a time when I compiled a few u-boot/ kernels without the buildscript for the BPi R2 (during the time.. this thing actually produced more headache than output)

 

 

wasn't 5.0 back then.. but well.. it's been a while since.. :D

 

53 minutes ago, guidol said:

know how to place them.... :(

that's a starter for the manual patching (and a few follow up posts):

 

 

otherwise for those being lazy.. :ph34r: you can download patches from github (in fact every commit).. Just add '.patch' to the commit in the link... e.g.:

https://github.com/Icenowy/linux/commit/716da86219368781107a5c4fcf205b7973d3dba5.patch

then keep in mind that our kernel/u-boot sources are git repositories as well so you can just git apply blablabla.patch (sometimes force - doing this during build with create patch = yes) and then fix the rejections and armbian will take care that a new patch is created after its which is hopefully without any rejections at all. In case it doesn't have any rejections from the beginning, just place it in the right patchfolder and you don't even have to care... :D

Link to post
Share on other sites
On 4/28/2019 at 12:52 PM, TheLinuxBug said:

I am going to test building 4.14.y and 4.13.y branch to see if the WiFi driver is incorporated at any point, the github repos are not very specific about whats been updated and my attempts to build the driver seperately have so far failed for the 4.12.y repo I used to generate this.

Today I did clone and compile kernel 4.14 from:
https://github.com/Lichee-Pi/linux/tree/zero-4.14.y

with their standard setttings (.config)

 

The resulting zImage ( 4.14.14-licheepi-zero+ ) does also work with Ethernet / Audio-Codec and the Tripple-Status-LED ;)

 

I did put the 4.14.y zImage as zImage_Kernel_414.zip on my GoogleDrive (see above for the link)

 

I do like the small 23MB footprint of this small Linux (would like to see such Linux on a Router which normally do use OpenWRT - many of them have 128MB RAM, but less Mhz)

 

LicheePi_Zero_Kernel_414.jpg

LicheePi_414_Memory.jpg

Link to post
Share on other sites
13 hours ago, markbirss said:

@guidol are there any modules in /lib/modules/'uname -r' folder ?

I - personally - see the following modules:
 

root@LicheePi(192.168.6.130):/# find / -name *.ko
/root/ns2009.ko
/root/r8723bs.ko
/lib/modules/4.10.2-licheepi-zero+/kernel/crypto/echainiv.ko
/lib/modules/4.10.2-licheepi-zero+/kernel/drivers/input/touchscreen/ns2009.ko
/lib/modules/4.10.2-licheepi-zero+/kernel/drivers/staging/rtl8188eu/r8188eu.ko
/lib/modules/4.10.2-licheepi-zero+/kernel/drivers/video/backlight/lcd.ko
/lib/modules/4.10.2-licheepi-zero+/kernel/drivers/net/wireless/esp8089.ko
/lib/modules/4.10.2-licheepi-zero+/kernel/drivers/net/wireless/realtek/rtlwifi/rtl_usb.ko
/lib/modules/4.10.2-licheepi-zero+/kernel/drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common.ko
/lib/modules/4.10.2-licheepi-zero+/kernel/drivers/net/wireless/realtek/rtlwifi/rtlwifi.ko
/lib/modules/4.10.2-licheepi-zero+/kernel/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/rtl8192cu.ko
/lib/modules/4.10.2-licheepi-zero+/kernel/drivers/net/wireless/mediatek/mt7601u/mt7601u.ko

 

I did compile with these instructions ( the cloning was a 2GB Download ):
 

Kernel 4.14.y 
git clone https://github.com/Lichee-Pi/linux.git -b zero-4.14.y zero414
cd zero414
make ARCH=arm licheepi_zero_defconfig 
make ARCH=arm menuconfig #add bluethooth, etc. 
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16 
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16 INSTALL_MOD_PATH=out modules 
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16 INSTALL_MOD_PATH=out modules_install

Output of the modules-install-command:

root@licheebuild:/home/guido/zero414# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16 INSTALL_MOD_PATH=out modules_install
  INSTALL crypto/echainiv.ko
  INSTALL drivers/video/backlight/lcd.ko
  INSTALL drivers/staging/rtl8723bs/r8723bs.ko
  DEPMOD  4.14.14-licheepi-zero+

 

Link to post
Share on other sites

It took me some time today, but I updated the jessie image (mindb_dd.tar.gz + kernel 4.14 + new .dtb )

to stretch the normal way

 

Editing the /etc/sources.list  (in the process of updateing) was more a replacement from

deb http://archive.debian.org/debian/ jessie main contrib non-free
deb-src http://archive.debian.org/debian/ jessie main contrib non-free
deb http://security.debian.org jessie/updates main contrib non-free
deb-src http://security.debian.org jessie/updates main contrib non-free

to

deb http://ftp.de.debian.org/debian/ stretch main contrib non-free
deb-src http://ftp.de.debian.org/debian/ stretch main contrib non-free
deb http://security.debian.org/ stretch/updates main contrib non-free
deb-src http://security.debian.org/ stretch/updates main contrib non-free

but I do had a problem with apt

at the second time Reading package lists... is in speed OK

BUT Building dependency tree take serveral Minutes and is really SLOW :(

 

I did try

apt-get autoclean

apt-get autoremove     AND

apt-get clean

 

to speedup the process.....but it doesnt get really better :(

 

[EDIT]

I did found a old jessie-multi-list in the directory /etc/apt/sources.list.d !

because I did wonder why I do see jessie-entrys in my apt-get update

when the sources.list only contains stretch entries.

 

After removing the jessie-multi-list in the additional directory I give again a 

apt-get clean    and then

apt-get install debian-keyring
apt-get install debian-archive-keyring
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8B48AD6246925553
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 9D6D8F6BC857C906

apt-get update

and now its MUCH faster (like before with only jessie entries for jessie)

 

AND only around 19MB memory-footprint ;) with stretch

 

LicheePi_414_stretch_new_font.jpg

 

LicheePi_414_stretch_19MB_memory.jpg

Link to post
Share on other sites

@TheLinuxBug at your page for compiling the u-boot you have at the end of the page

https://licheepizero.us/build--uboot-for-licheepi-zero

the text: 

After success compilation, u-boot-sunxi-with-spl.bin will be generated,

you can write it with 8K offset to boot.

 

for reference I do found the follwing page/command for doing this ;)

http://linux-sunxi.org/Bootable_SD_card#Bootloader

dd if=u-boot-sunxi-with-spl.bin of=${card} bs=1024 seek=8

at the SD-Card layout part you could also see the 8k offset for the spl/u-boot:
http://linux-sunxi.org/Bootable_SD_card#SD_Card_Layout

 

Quote

A default U-Boot build for an Allwinner based board uses the following layout on (micro-)SD cards or eMMC storage (from v2018.05 or newer)

 

New_SDCard_Layout.jpg

Legacy_SDCard_Layout.jpg

Link to post
Share on other sites

With much thanks to the above references ,
i have 2 major problem with the 4.14 version , first I can not enable SPI bus through dts file and the second one is when i add simple panel to the dts file to have LCD , the boot operation hungs up

do you have any idea to solve these problems ?

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...