Re-Booting Issue with Omega 2+ LTE - Need Assistance
-
I am currently facing an issue with my Omega 2+ LTE, and I am seeking assistance from the forum community. To ensure that I provide all the necessary information for a successful resolution, I have outlined the key details that should be included in my post:
1. Product being used:
Omega 2+ LTE2. Firmware version:
2023-06-28T21:18:14.000Z 9.3 MB omega2lte-v0.3.4-b257.bin3. Description of the issue and context:
I am attempting to do a re-boot/reset of the device so that I can reflash it following some issues I came up agains and, possibly corrupted something.4. Expected Behavior:
I would like the device to reboot so that I can re-initialize it and begin from fresh5. Observed Behavior:
Please note, I have pasted the beginning and end log of the rebooting sequence which just keeps on repeating itself/ __ ___ ()__ ___ / __ _ _ ___ ___ ____ _
/ // / _ / / _ / _ \ / // / ' / -) _/ _
/
_/////___//// _////_/_, /_,/
W H A T W I L L Y O U I N V E N T ? /__/"Board: Onion Omega2 APSoC DRAM: 128 MB
relocate_code Pointer at: 87f60000
Software System Reset Occurred
flash manufacture id: ef, device id 40 19
find flash: W25Q256FV
Warning - bad CRC, using default environment <<<< NOT SURE IF THIS IS A CONCERN!!!???Onion Omega2 UBoot Version: 4.3.0.3
ASIC 7628_MP (Port5<->None)
DRAM component: 1024 Mbits DDR, width 16
DRAM bus: 16 bit
Total memory: 128 MBytes
Flash component: SPI Flash
Date:May 11 2020 Time:00:16:23icache: sets:512, ways:4, linesz:32 ,total:65536
dcache: sets:256, ways:4, linesz:32 ,total:32768
CPU freq = 575 MHZ
Estimated memory size = 128 Mbytes
Resetting MT7628 PHY.
Initializing MT7688 GPIO system.
wifi mac address = 40A36BC6B349.- Hold Reset button for more options *
Boot Linux from Flash NO RESET PRESSED.
Booting image at bc050000 ...
Image Name: MIPS OpenWrt Linux-4.14.81
Image Type: MIPS Linux Kernel Image (lzma compressed)
Data Size: 1617402 Bytes = 1.5 MB
Load Address: 80000000
Entry Point: 80000000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
No initrd
Transferring control to Linux (at address 80000000) ...
Giving linux memsize in MB, 128Starting kernel ...
[ 0.000000] Linux version 4.14.81 (root@51fb80c5501c) (gcc version 7.3.0 (OpenWrt GCC 7.3.0 r0+7500-4681cff766)) #0 Wed Jun 28 20:16:56 2023
[ 0.000000] Board has DDR2
[ 0.000000] Analog PMU set to hw control
[ 0.000000] Digital PMU set to hw control
[ 0.000000] SoC Type: MediaTek MT7688 ver:1 eco:2
[ 0.000000] bootconsole [early0] enabled
[ 0.000000] CPU0 revision is: 00019655 (MIPS 24KEc)
[ 0.000000] MIPS: machine is Onion Omega2 LTE
[ 0.000000] Determined physical RAM map:
[ 0.000000] memory: 08000000 @ 00000000 (usable)
[ 0.000000] Initrd not found or empty - disabling initrd
[ 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[ 0.000000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x0000000000000000-0x0000000007ffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000000000000-0x0000000007ffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000007ffffff]
[ 0.000000] random: get_random_bytes called from start_kernel+0x8c/0x474 with crng_init=0
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 32512
[ 0.000000] Kernel command line: console=ttyS0,115200 rootfstype=squashfs,jffs2
[ 0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[ 0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.000000] Writing ErrCtl register=0000fdfe
[ 0.000000] Readback ErrCtl register=0000fdfe
[ 0.000000] Memory: 124580K/131072K available (3708K kernel code, 207K rwdata, 920K rodata, 212K init, 205K bss, 6492K reserved, 0K cma-reserved)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS: 256
[ 0.000000] intc: using register map from devicetree
[ 0.000000] CPU Clock: 580MHz
[ 0.000000] timer_probe: no matching timers found......... <<<< removed some of the log for ease of reading.
[ 12.618923] block: attempting to load /tmp/jffs_cfg/upper/etc/config/fstab
[ 12.629481] block: extroot: not configured
[ 12.634980] mount_root: switching to jffs2 overlay
[ 12.711194] overlayfs: upper fs does not support tmpfile.
[ 12.722035] urandom-seed: Seeding with /etc/urandom.seed
Error loading shared library libjson-c.so.2: No such file or dir[ 12.858464] watchdog: watchdog0: watchdog did not stop! <<<< Error lines from here
ectory (needed by /sbin/procd)
Error loading shared library libjson-c.so.2: No such file or directory (needed by /lib/libblobmsg_json.so)
Error relocating /lib/libblobmsg_json.so: array_list_length: symbol not found
Error relocating /lib/libblobmsg_json.so: json_object_get_array: symbol not found
Error relocating /lib/libblobmsg_json.so: json_object_put: symbol not found
Error relocating /lib/libblobmsg_json.so: array_list_get_idx: symbol not found
Error relocating /lib/libblobmsg_json.so: json_object_get_string: symbol not found
Error relocating /lib/libblobmsg_json.so: json_object_get_type: symbol not found
Error relocating /lib/libblobmsg_json.so: json_object_get_double: symbol not found
Error relocating /lib/libblobmsg_json.so: json_object_get_boolean: symbol not found
Error relocating /lib/libblobmsg_json.so: json_object_get_int: symbol not found
Error relocating /lib/libblobmsg_json.so: json_tokener_parse: symbol not found
Error relocating /lib/libblobmsg_json.so: json_object_from_file: symbol not found
Error relocating /lib/libblobmsg_json.so: json_object_get_object: symbol not found
Error relocating /sbin/procd: json_object_from_file: symbol not found
Error relocating /sbin/procd: json_object_object_get_ex: symbol not found
Error relocating /sbin/procd: json_object_new_string: symbol not found
Error relocating /sbin/procd: json_object_object_add: symbol not found
Error relocating /sbin/procd: json_object_put: symbol not found
Error relocating /sbin/procd: json_object_new_object: symbol not found
[ 13.023536] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00007f00
[ 13.023536]
[ 13.034494] Rebooting in 1 seconds..6. Steps to reproduce the issue:
Any attempt to reboot7. What's been attempted to resolve the issue:
I pressed the reset button for more than 10 seconds
I turned the poer switch off, then held the reset button and turned the power switch on... holding the reset button for a while untill i could see the reset cycle begin- Share any troubleshooting steps you've already taken or solutions you've attempted, even if they haven't worked.
8. What kind of help are you looking for?:
I would like to know how to re-flash the device9. Attachments (if any):
I can provide any attachments needed.Thank you in advance for your assistance.
Best regards,
Mick
-
@MickB Thank you for providing detailed information, it hels a lot. Have you reviewed the reflash procedure? The link is here . It looks like you need to press the reset again after it says ""Software System Reset Occurred" then you can get into the console to reflash via USB or if you have a ethernet dock you can reflash using the web console.
-
Hi @crispyoz. Yes, I read the article in detail.
I Have the device powered on using the USB port so I don't think that the USB device option will work.
I don't have an Ethernet connection expansion board etc.
-
@MickB Do you have a USB hub? If so you may be able to power the O2 and connect a USB key.
Otherwise you may be able to fix this using a bit of a hack. The source of the error is a missing library file but it might be an error in the linkage. Start in command line mode using the bootloader screen in my earlier response, select command line mode. Once boots see if the file actually exists, ls -la /usr/lib/libjson*
libjson-c.so.2 may be a symlink to the actual shared object library, so if an actual shared object file exists you can create the symlink or a quick hack is to just copy the flle that exists to the name you need.
If you use this technique, I would then install the ltest firmware, this is only to get you booted.
-
@crispyoz . Thanks again. Ok. So to get to the stage you are referring to I would need to press the reset button while the device is rebooting?
-
@MickB correct, I think you can also keep holding it. Sometimes might take you a few tries to get it.
-
@MickB It's actually the Linux OS that implements the factory reset after the 10 second button press. So it won't work if Linux is not properly booting.
Reflashing the firmware with the bootloader web recovery and ethernet expansion is your best bet: https://docs.onion.io/omega2-docs/Firmware-Flashing-Web-Recovery.html
Using the bootloader + USB drive won't work on the Omega2 LTE. The USB-C port is for power and access to the serial command line. The Omega2 USB Host is wired to the LTE modem.
-
Ok. So if I don't have ethernet then i can't use the device anymore?
-
Ok. I will buy an eth expansion board and go from there.. I know that this is probably a new thread but is it possible to take an image of the device once I have installed and created my application? So this would include my python installation, MQTT libraries, compiled program etc. So everything on the Omega2+ LTE.
The idea is to be able to quickly flash new units with a 'working' image and not have to go through all the intermediary steps.
Thanks in advance!
-
@Lazar-Demin It looks like the issue is with procd failing to process due to missing json libs, wondering how that would stop the boot into commandline. Can test it right now so I'm interested in your read on this for future players.
-
@crispyoz sorry,but a bit out of my knowledge level
-
@MickB said in Re-Booting Issue with Omega 2+ LTE - Need Assistance:
is it possible to take an image of the device once I have installed and created my application? So this would include my python installation, MQTT libraries, compiled program etc. So everything on the Omega2+ LTE.
The idea is to be able to quickly flash new units with a 'working' image and not have to go through all the intermediary steps.Yep, it's possible to "clone" the firmware + setup on one device and flash new units with it. It has some drawbacks but it's a good solution for small volumes. More info here: https://community.onion.io/topic/4563/faq-is-it-possible-to-clone-the-firmware-running-on-an-omega2-device-and-copy-it-to-other-omega2-units
The other option is to build your own version of the firmware. Right now that's a little more difficult, but we're working on streamlining that
@crispyoz said in Re-Booting Issue with Omega 2+ LTE - Need Assistance:
It looks like the issue is with procd failing to process due to missing json libs, wondering how that would stop the boot into commandline. Can test it right now so I'm interested in your read on this for future players.
proc.d is actually responsible for setting up
/dev/console
to be stdin/out/err (source). If it can't start then it'll never be able to setup the command line.As to what's causing it not to start: I'm guessing one or more of the partitions on the flash got partially overwritten or perhaps corrupted. Just based on the problem description in the first post.
So it's possible the
libjson-c.so
shared library object isn't available anymore. Making proc.d crash since it relies on this shared library.Just my take tho, does it sound plausible?
-
@Lazar-Demin I had a read through the cloning info... I have a question regarding the use of USB devices on the Omega 2+ LTE. The device has one USB port which is used mainly for power or serial connectivity with a PC etc. How can I attach a USB drive to the Omega?
-
@MickB You would have to use a microSD card instead of a usb drive on the Omega2 LTE
The process is the same, just the mount point of the microSD card will be named differently. See https://docs.onion.io/omega2-docs/using-a-microsd-card.html#storage-devices-and-linux
-
@Lazar-Demin I am trying to use the ethernet web recovery option. I do not understand the instructions in the documentation. I am confused about the sequence of plugging the ethernet cable into my PC and then creating the IPV4 point. I note that the cable should not be plugged into the Omega 2+LTE initially, but if this is the case then how do i Create a new local access point for the device? Please excuse the ignorance as I am not well versed with configuring the LAN details.
This is my boot sequence which seems to indicate that the device found and initialized the eth adaptor??
Just curious why there is not 'Undefined Network' showing ????
-
All solved... No need for assistance... thanks
-
@MickB Could you post the solution for your issue? Just to help future users who may encounter the same thing
-
@Lazar-Demin I followed your instructions using an ETH cable and then used option [0] : Web recovery mode
-
I am having the same problem but the web portal isn't accepting the firmware. For reference the logs are the same but when I upload the firmware in the web portal it says: Loading: ### Error: couldn't find start of data in next packet!
-
@thomas166 which binary are you using? Did you try downloading it again and re-trying?