OpenIPC / firmware

Alternative IP Camera firmware from an open community
https://openipc.org
MIT License
1.21k stars 232 forks source link

Cannot save Majestic setting changes (xm510) #248

Open schneemaier opened 2 years ago

schneemaier commented 2 years ago

Hi, i just updated my XM510 based camera to the latest version.

Majestic config changes cannot be saved from the WebUI, it always ends with "No changes found." message, regardless which setting i change on the UI. This is not a new issue, i had it with the previous versions too.

Thanks

ZigFisher commented 2 years ago

Try updating the firmware using the command sysupgrade -k -r And do a hard reset through the command firstboot

schneemaier commented 2 years ago

Did the upgrade:

OpenIPC System Updater

Vendor  xiongmai
SoC xm510
Kernel  0x62be6f87
RootFS  master+954ae70, 2022-07-01

Stop services, sync and fresh memory
Killing majestic .. OK
Killing crond ...... OK
Killing klogd ....... OK
Killing ntpd ...... OK
Killing rngd ...... OK
Killing syslogd ....... OK

Firmware
Download from https://github.com/OpenIPC/firmware/releases/download/latest/openipc.xm510-br.tgz
Received and unpacked

Kernel
Update kernel from /tmp/uImage.xm510
SoC OK
New version, going to update
Erasing block: 22/22 (100%) 
Writing kb: 1401/1401 (100%) 
Verifying kb: 1401/1401 (100%) 
Kernel updated to 0x62c5068d

RootFS
Update rootfs from /tmp/rootfs.squashfs.xm510
SoC OK
New version, going to update
Erasing block: 40/40 (100%) 
Writing kb: 2528/2528 (100%) 
Verifying kb: 2528/2528 (100%) 
RootFS updated to master+954ae70, 2022-07-01

Unconditional reboot

After reboot:

root@openipc-xm510:~# firstboot
OpenIPC System Updater

Vendor  xiongmai
SoC xm510
Kernel  0x62c5068d
RootFS  master+0b23ebd, 2022-07-06

Stop services, sync and fresh memory
Killing majestic .. OK
Killing crond ...... OK
Killing klogd ...... OK
Killing ntpd ...... OK
Killing rngd ....... OK
Killing syslogd ...... OK

OverlayFS
Erase overlay partition
Erasing 64 Kibyte @ b0000 - 100% complete.Cleanmarker written at a0000.

Unconditional reboot

Setup new password and tried top change some settings from majestic settings, but still receiving error on the UI. Looked into dmesg and every time i try to save a change i get the following line: overlayfs: ERROR - failed to whiteout 'majestic.yaml'

When i looked at /overlay/etc directory i did not find the majestic.yaml file there. Issuing touch /overlay/etc/majestic.yaml fixed the issue in a way that i don't see any error message on the UI. But the majestic.yaml file is not updated at /overlay/etc/majestic.yaml after saving the changes on the UI.

ZigFisher commented 2 years ago

Good afternoon You have some strange problem with your spi nor flash... Try to connect to the bootloader via UART and execute the command sf probe 0; sf lock 0

schneemaier commented 2 years ago

It seems that my u/boot does not have the sf lock command:

U-Boot> sf probe 0
U-Boot> sf lock 0
sf - SPI flash sub-system

Usage:
sf probe [[bus:]cs] [hz] [mode] - init flash device on given SPI bus
                                  and chip select
sf read addr offset len - read `len' bytes starting at
                                  `offset' to memory at `addr'
sf write addr offset len        - write `len' bytes from memory
                                  at `addr' to flash at `offset'
sf erase offset [+]len          - erase `len' bytes from `offset'
                                  `+len' round up `len' to block size
sf update addr offset len       - erase and write `len' bytes from memory
                                  at `addr' to flash at `offset'
U-Boot>

I did some more tests and found that when I press save on the Majestic config page it actually whips out the config file from the overlay fs:

Before pressing save:

root@openipc-xm510:~# ls -l /overlay/etc/majestic.yaml 
-rw-r--r--    1 root     root           703 Jul  9 14:34 /overlay/etc/majestic.yaml

After save:

root@openipc-xm510-sch:~# ls -l /overlay/etc/majestic.yaml 
ls: /overlay/etc/majestic.yaml: No such file or directory

So the erase operation works, but for some reason it fails to write the config

dimerr commented 2 years ago

are you using dev version of webui? this is a known problem with overlay dir structure on different kernels and i think it was fixed already...

schneemaier commented 2 years ago

I am not sure which webUI is installed (the installed line is empty), I guess it is the stable version as i installed it with the whole firmware package.

Installed Stable master+0ac2ff6, 2022-06-29 Unstable dev+e8113f3, 2022-07-09

I tried to switch to the development version, but it is failing via the UI:

Archive:  /tmp/microbe.zip
   creating: microbe-web-dev/
   creating: microbe-web-dev/dev/
   creating: microbe-web-dev/dev/css/
  inflating: microbe-web-dev/dev/css/main.scss
   creating: microbe-web-dev/files/
   creating: microbe-web-dev/files/usr/
   creating: microbe-web-dev/files/usr/sbin/
  inflating: microbe-web-dev/files/usr/sbin/send2telegram.sh
  inflating: microbe-web-dev/files/usr/sbin/send2yadisk.sh
  inflating: microbe-web-dev/files/usr/sbin/sendcoredump.sh
  inflating: microbe-web-dev/files/usr/sbin/updatewebui.sh
   creating: microbe-web-dev/files/var/
   creating: microbe-web-dev/files/var/www/
  inflating: microbe-web-dev/files/var/www/401.html
   creating: microbe-web-dev/files/var/www/a/
  inflating: microbe-web-dev/files/var/www/a/bootstrap.css.gz
  inflating: microbe-web-dev/files/var/www/a/bootstrap.js.gz
  inflating: microbe-web-dev/files/var/www/a/bootstrap.override.css
  inflating: microbe-web-dev/files/var/www/a/favicon.png
  inflating: microbe-web-dev/files/var/www/a/gear.svg.gz
  inflating: microbe-web-dev/files/var/www/a/github.svg.gz
  inflating: microbe-web-dev/files/var/www/a/light-off.svg.gz
  inflating: microbe-web-dev/files/var/www/a/light-on.svg.gz
  inflating: microbe-web-dev/files/var/www/a/logo-ipeye.webp
  inflating: microbe-web-dev/files/var/www/a/logo.svg.gz
  inflating: microbe-web-dev/files/var/www/a/main.js
  inflating: microbe-web-dev/files/var/www/a/telegram.svg.gz
  inflating: microbe-web-dev/files/var/www/a/tz.js.gz
   creating: microbe-web-dev/files/var/www/cgi-bin/
  inflating: microbe-web-dev/files/var/www/cgi-bin/_mj.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/about.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/admin.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/config.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/console.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/debugging.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/endpoints.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/firmware-reset.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/firmware-update.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/firmware-upload-parts.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/firmware.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/info-cron.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/info-dmesg.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/info-httpd.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/info-log.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/info-majestic.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/info-modules.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/info-overlay.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/jrun.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/majestic-config-actions.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/majestic-config-compare.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/majestic-settings.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/majestic.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/network-ntp.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/network-socks5.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/network.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/night.cgi
   creating: microbe-web-dev/files/var/www/cgi-bin/p/
  inflating: microbe-web-dev/files/var/www/cgi-bin/p/common.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/p/footer.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/p/header.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/p/locale_en.sh
  inflating: microbe-web-dev/files/var/www/cgi-bin/p/person.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/p/reset-firmware.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/plugin-bigbro.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/plugin-ipeye.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/plugin-telegram.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/plugin-vtun.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/plugin-yadisk.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/preview.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/reboot.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/reset.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/sdcard.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/sensor.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/ssh-keys.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/status.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/telegram-bot-send.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/texteditor.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/timezone.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/tools.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/webui-settings.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/webui-update.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/webui.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/yadisk-bot-send.cgi
  inflating: microbe-web-dev/files/var/www/favicon.ico
  inflating: microbe-web-dev/files/var/www/index.html
  inflating: microbe-web-dev/files/var/www/wait.html
cp -f /tmp/microbe-web-dev/files/var/www/index.html /var/www/index.html
cp: can't create '/var/www/index.html': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/yadisk-bot-send.cgi /var/www/cgi-bin/yadisk-bot-send.cgi
cp: can't create '/var/www/cgi-bin/yadisk-bot-send.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/webui-update.cgi /var/www/cgi-bin/webui-update.cgi
cp: can't create '/var/www/cgi-bin/webui-update.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/webui-settings.cgi /var/www/cgi-bin/webui-settings.cgi
cp: can't create '/var/www/cgi-bin/webui-settings.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/tools.cgi /var/www/cgi-bin/tools.cgi
cp: can't create '/var/www/cgi-bin/tools.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/telegram-bot-send.cgi /var/www/cgi-bin/telegram-bot-send.cgi
cp: can't create '/var/www/cgi-bin/telegram-bot-send.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/status.cgi /var/www/cgi-bin/status.cgi
cp: can't create '/var/www/cgi-bin/status.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/ssh-keys.cgi /var/www/cgi-bin/ssh-keys.cgi
cp: can't create '/var/www/cgi-bin/ssh-keys.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/sensor.cgi /var/www/cgi-bin/sensor.cgi
cp: can't create '/var/www/cgi-bin/sensor.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/sdcard.cgi /var/www/cgi-bin/sdcard.cgi
cp: can't create '/var/www/cgi-bin/sdcard.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/reboot.cgi /var/www/cgi-bin/reboot.cgi
cp: can't create '/var/www/cgi-bin/reboot.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/preview.cgi /var/www/cgi-bin/preview.cgi
cp: can't create '/var/www/cgi-bin/preview.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/plugin-yadisk.cgi /var/www/cgi-bin/plugin-yadisk.cgi
cp: can't create '/var/www/cgi-bin/plugin-yadisk.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/plugin-vtun.cgi /var/www/cgi-bin/plugin-vtun.cgi
cp: can't create '/var/www/cgi-bin/plugin-vtun.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/plugin-telegram.cgi /var/www/cgi-bin/plugin-telegram.cgi
cp: can't create '/var/www/cgi-bin/plugin-telegram.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/plugin-ipeye.cgi /var/www/cgi-bin/plugin-ipeye.cgi
cp: can't create '/var/www/cgi-bin/plugin-ipeye.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/plugin-bigbro.cgi /var/www/cgi-bin/plugin-bigbro.cgi
cp: can't create '/var/www/cgi-bin/plugin-bigbro.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/night.cgi /var/www/cgi-bin/night.cgi
cp: can't create '/var/www/cgi-bin/night.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/network.cgi /var/www/cgi-bin/network.cgi
cp: can't create '/var/www/cgi-bin/network.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/network-ntp.cgi /var/www/cgi-bin/network-ntp.cgi
cp: can't create '/var/www/cgi-bin/network-ntp.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/majestic-settings.cgi /var/www/cgi-bin/majestic-settings.cgi
cp: can't create '/var/www/cgi-bin/majestic-settings.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/majestic-config-compare.cgi /var/www/cgi-bin/majestic-config-compare.cgi
cp: can't create '/var/www/cgi-bin/majestic-config-compare.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/majestic-config-actions.cgi /var/www/cgi-bin/majestic-config-actions.cgi
cp: can't create '/var/www/cgi-bin/majestic-config-actions.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/info-overlay.cgi /var/www/cgi-bin/info-overlay.cgi
cp: can't create '/var/www/cgi-bin/info-overlay.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/info-log.cgi /var/www/cgi-bin/info-log.cgi
cp: can't create '/var/www/cgi-bin/info-log.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/info-httpd.cgi /var/www/cgi-bin/info-httpd.cgi
cp: can't create '/var/www/cgi-bin/info-httpd.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/info-dmesg.cgi /var/www/cgi-bin/info-dmesg.cgi
cp: can't create '/var/www/cgi-bin/info-dmesg.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/info-cron.cgi /var/www/cgi-bin/info-cron.cgi
cp: can't create '/var/www/cgi-bin/info-cron.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/firmware.cgi /var/www/cgi-bin/firmware.cgi
cp: can't create '/var/www/cgi-bin/firmware.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/firmware-update.cgi /var/www/cgi-bin/firmware-update.cgi
cp: can't create '/var/www/cgi-bin/firmware-update.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/firmware-reset.cgi /var/www/cgi-bin/firmware-reset.cgi
cp: can't create '/var/www/cgi-bin/firmware-reset.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/console.cgi /var/www/cgi-bin/console.cgi
cp: can't create '/var/www/cgi-bin/console.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/cgi-bin/_mj.cgi /var/www/cgi-bin/_mj.cgi
cp: can't create '/var/www/cgi-bin/_mj.cgi': File exists
cp -f /tmp/microbe-web-dev/files/var/www/401.html /var/www/401.html
cp: can't create '/var/www/401.html': File exists
cp -f /tmp/microbe-web-dev/files/usr/sbin/sendcoredump.sh /usr/sbin/sendcoredump.sh
cp: can't create '/usr/sbin/sendcoredump.sh': File exists
cp -f /tmp/microbe-web-dev/files/usr/sbin/send2yadisk.sh /usr/sbin/send2yadisk.sh
cp: can't create '/usr/sbin/send2yadisk.sh': File exists
cp -f /tmp/microbe-web-dev/files/usr/sbin/send2telegram.sh /usr/sbin/send2telegram.sh
cp: can't create '/usr/sbin/send2telegram.sh': File exists
rm -f /var/www/403.html
rm: can't remove '/var/www/403.html': Not supported
rm -f /var/www/404.html
rm: can't remove '/var/www/404.html': Not supported
rm -f /var/www/cgi-bin/_bootstrap.cgi
rm: can't remove '/var/www/cgi-bin/_bootstrap.cgi': Not supported
rm -f /var/www/cgi-bin/_common.cgi
rm: can't remove '/var/www/cgi-bin/_common.cgi': Not supported
rm -f /var/www/cgi-bin/_debug.cgi
rm: can't remove '/var/www/cgi-bin/_debug.cgi': Not supported
rm -f /var/www/cgi-bin/_footer.cgi
rm: can't remove '/var/www/cgi-bin/_footer.cgi': Not supported
rm -f /var/www/cgi-bin/_header.cgi
rm: can't remove '/var/www/cgi-bin/_header.cgi': Not supported
rm -f /var/www/cgi-bin/_html.cgi
rm: can't remove '/var/www/cgi-bin/_html.cgi': Not supported
rm -f /var/www/cgi-bin/_joystick.cgi
rm: can't remove '/var/www/cgi-bin/_joystick.cgi': Not supported
rm -f /var/www/cgi-bin/_settings.sh
rm: can't remove '/var/www/cgi-bin/_settings.sh': Not supported
rm -f /var/www/cgi-bin/ajaxcmd.cgi
rm: can't remove '/var/www/cgi-bin/ajaxcmd.cgi': Not supported
rm -f /var/www/cgi-bin/firmware-upload-kernel.cgi
rm: can't remove '/var/www/cgi-bin/firmware-upload-kernel.cgi': Not supported
rm -f /var/www/cgi-bin/firmware-upload-rootfs.cgi
rm: can't remove '/var/www/cgi-bin/firmware-upload-rootfs.cgi': Not supported
rm -f /var/www/cgi-bin/help-about.cgi
rm: can't remove '/var/www/cgi-bin/help-about.cgi': Not supported
rm -f /var/www/cgi-bin/help-telegram.cgi
rm: can't remove '/var/www/cgi-bin/help-telegram.cgi': Not supported
rm -f /var/www/cgi-bin/info-httpd-config.cgi
rm: can't remove '/var/www/cgi-bin/info-httpd-config.cgi': Not supported
rm -f /var/www/cgi-bin/majestic-config-aspatch.cgi
rm: can't remove '/var/www/cgi-bin/majestic-config-aspatch.cgi': Not supported
rm -f /var/www/cgi-bin/majestic-config-backup.cgi
rm: can't remove '/var/www/cgi-bin/majestic-config-backup.cgi': Not supported
rm -f /var/www/cgi-bin/majestic-config-reset.cgi
rm: can't remove '/var/www/cgi-bin/majestic-config-reset.cgi': Not supported
rm -f /var/www/cgi-bin/majestic-config-restore.cgi
rm: can't remove '/var/www/cgi-bin/majestic-config-restore.cgi': Not supported
rm -f /var/www/cgi-bin/majestic-debug.cgi
rm: can't remove '/var/www/cgi-bin/majestic-debug.cgi': Not supported
rm -f /var/www/cgi-bin/majestic-github.cgi
rm: can't remove '/var/www/cgi-bin/majestic-github.cgi': Not supported
rm -f /var/www/cgi-bin/majestic-settings-update.cgi
rm: can't remove '/var/www/cgi-bin/majestic-settings-update.cgi': Not supported
rm -f /var/www/cgi-bin/network-ntp-reset.cgi
rm: can't remove '/var/www/cgi-bin/network-ntp-reset.cgi': Not supported
rm -f /var/www/cgi-bin/network-ntp-update.cgi
rm: can't remove '/var/www/cgi-bin/network-ntp-update.cgi': Not supported
rm -f /var/www/cgi-bin/network-tz-update.cgi
rm: can't remove '/var/www/cgi-bin/network-tz-update.cgi': Not supported
rm -f /var/www/cgi-bin/network-update.cgi
rm: can't remove '/var/www/cgi-bin/network-update.cgi': Not supported
rm -f /var/www/cgi-bin/ntp-update.cgi
rm: can't remove '/var/www/cgi-bin/ntp-update.cgi': Not supported
rm -f /var/www/cgi-bin/preview-help.cgi
rm: can't remove '/var/www/cgi-bin/preview-help.cgi': Not supported
rm -f /var/www/cgi-bin/preview-mjpeg.cgi
rm: can't remove '/var/www/cgi-bin/preview-mjpeg.cgi': Not supported
rm -f /var/www/cgi-bin/preview-video.cgi
rm: can't remove '/var/www/cgi-bin/preview-video.cgi': Not supported
rm -f /var/www/cgi-bin/progress.cgi
rm: can't remove '/var/www/cgi-bin/progress.cgi': Not supported
rm -f /var/www/cgi-bin/team.txt
rm: can't remove '/var/www/cgi-bin/team.txt': Not supported
rm -f /var/www/cgi-bin/webui-settings-update.cgi
rm: can't remove '/var/www/cgi-bin/webui-settings-update.cgi': Not supported
rm -f /var/www/login.html
rm: can't remove '/var/www/login.html': Not supported
rm -f /tmp/microbe.zip
rm -fr /tmp/microbe-web-dev

ATTENTION! There were errors!

Tried from commandline:

root@openipc-xm510:~# /usr/sbin/updatewebui.sh -f -b dev
curl --location --insecure --etag-save /root/.ui.etag --silent -o /tmp/microbe-web.zip https://github.com/OpenIPC/microbe-web/archive/refs/heads/dev.zip

Archive:  /tmp/microbe-web.zip
   creating: microbe-web-dev/
   creating: microbe-web-dev/dev/
   creating: microbe-web-dev/dev/css/
  inflating: microbe-web-dev/dev/css/main.scss
   creating: microbe-web-dev/files/
   creating: microbe-web-dev/files/usr/
   creating: microbe-web-dev/files/usr/sbin/
  inflating: microbe-web-dev/files/usr/sbin/send2telegram.sh
  inflating: microbe-web-dev/files/usr/sbin/send2yadisk.sh
  inflating: microbe-web-dev/files/usr/sbin/sendcoredump.sh
  inflating: microbe-web-dev/files/usr/sbin/updatewebui.sh
   creating: microbe-web-dev/files/var/
   creating: microbe-web-dev/files/var/www/
  inflating: microbe-web-dev/files/var/www/401.html
   creating: microbe-web-dev/files/var/www/a/
  inflating: microbe-web-dev/files/var/www/a/bootstrap.css.gz
  inflating: microbe-web-dev/files/var/www/a/bootstrap.js.gz
  inflating: microbe-web-dev/files/var/www/a/bootstrap.override.css
  inflating: microbe-web-dev/files/var/www/a/favicon.png
  inflating: microbe-web-dev/files/var/www/a/gear.svg.gz
  inflating: microbe-web-dev/files/var/www/a/github.svg.gz
  inflating: microbe-web-dev/files/var/www/a/light-off.svg.gz
  inflating: microbe-web-dev/files/var/www/a/light-on.svg.gz
  inflating: microbe-web-dev/files/var/www/a/logo-ipeye.webp
  inflating: microbe-web-dev/files/var/www/a/logo.svg.gz
  inflating: microbe-web-dev/files/var/www/a/main.js
  inflating: microbe-web-dev/files/var/www/a/telegram.svg.gz
  inflating: microbe-web-dev/files/var/www/a/tz.js.gz
   creating: microbe-web-dev/files/var/www/cgi-bin/
  inflating: microbe-web-dev/files/var/www/cgi-bin/_mj.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/about.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/admin.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/config.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/console.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/debugging.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/endpoints.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/firmware-reset.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/firmware-update.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/firmware-upload-parts.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/firmware.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/info-cron.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/info-dmesg.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/info-httpd.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/info-log.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/info-majestic.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/info-modules.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/info-overlay.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/jrun.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/majestic-config-actions.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/majestic-config-compare.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/majestic-settings.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/majestic.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/network-ntp.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/network-socks5.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/network.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/night.cgi
   creating: microbe-web-dev/files/var/www/cgi-bin/p/
  inflating: microbe-web-dev/files/var/www/cgi-bin/p/common.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/p/footer.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/p/header.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/p/locale_en.sh
  inflating: microbe-web-dev/files/var/www/cgi-bin/p/person.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/p/reset-firmware.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/plugin-bigbro.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/plugin-ipeye.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/plugin-telegram.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/plugin-vtun.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/plugin-yadisk.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/preview.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/reboot.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/reset.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/sdcard.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/sensor.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/ssh-keys.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/status.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/telegram-bot-send.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/texteditor.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/timezone.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/tools.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/webui-settings.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/webui-update.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/webui.cgi
  inflating: microbe-web-dev/files/var/www/cgi-bin/yadisk-bot-send.cgi
  inflating: microbe-web-dev/files/var/www/favicon.ico
  inflating: microbe-web-dev/files/var/www/index.html
  inflating: microbe-web-dev/files/var/www/wait.html
Copy newer files to web directory
Remove absent files from overlay
rm: can't remove '/var/www/403.html': Not supported
rm: can't remove '/var/www/404.html': Not supported
rm: can't remove '/var/www/cgi-bin/_bootstrap.cgi': Not supported
rm: can't remove '/var/www/cgi-bin/_common.cgi': Not supported
rm: can't remove '/var/www/cgi-bin/_debug.cgi': Not supported
rm: can't remove '/var/www/cgi-bin/_footer.cgi': Not supported
rm: can't remove '/var/www/cgi-bin/_header.cgi': Not supported
rm: can't remove '/var/www/cgi-bin/_html.cgi': Not supported
rm: can't remove '/var/www/cgi-bin/_joystick.cgi': Not supported
rm: can't remove '/var/www/cgi-bin/_settings.sh': Not supported
rm: can't remove '/var/www/cgi-bin/ajaxcmd.cgi': Not supported
rm: can't remove '/var/www/cgi-bin/firmware-upload-kernel.cgi': Not supported
rm: can't remove '/var/www/cgi-bin/firmware-upload-rootfs.cgi': Not supported
rm: can't remove '/var/www/cgi-bin/help-about.cgi': Not supported
rm: can't remove '/var/www/cgi-bin/help-telegram.cgi': Not supported
rm: can't remove '/var/www/cgi-bin/info-httpd-config.cgi': Not supported
rm: can't remove '/var/www/cgi-bin/majestic-config-aspatch.cgi': Not supported
rm: can't remove '/var/www/cgi-bin/majestic-config-backup.cgi': Not supported
rm: can't remove '/var/www/cgi-bin/majestic-config-reset.cgi': Not supported
rm: can't remove '/var/www/cgi-bin/majestic-config-restore.cgi': Not supported
rm: can't remove '/var/www/cgi-bin/majestic-debug.cgi': Not supported
rm: can't remove '/var/www/cgi-bin/majestic-github.cgi': Not supported
rm: can't remove '/var/www/cgi-bin/majestic-settings-update.cgi': Not supported
rm: can't remove '/var/www/cgi-bin/network-ntp-reset.cgi': Not supported
rm: can't remove '/var/www/cgi-bin/network-ntp-update.cgi': Not supported
rm: can't remove '/var/www/cgi-bin/network-tz-update.cgi': Not supported
rm: can't remove '/var/www/cgi-bin/network-update.cgi': Not supported
rm: can't remove '/var/www/cgi-bin/ntp-update.cgi': Not supported
rm: can't remove '/var/www/cgi-bin/preview-help.cgi': Not supported
rm: can't remove '/var/www/cgi-bin/preview-mjpeg.cgi': Not supported
rm: can't remove '/var/www/cgi-bin/preview-video.cgi': Not supported
rm: can't remove '/var/www/cgi-bin/progress.cgi': Not supported
rm: can't remove '/var/www/cgi-bin/team.txt': Not supported
rm: can't remove '/var/www/cgi-bin/webui-settings-update.cgi': Not supported
rm: can't remove '/var/www/login.html': Not supported
Delete bundle
Delete temp directory
root@openipc-xm510:~# 

I was able to copy all files if i added the /overlay/ prefix to the files going into the usr and www the directories. It upgraded the UI, but did not change the behavior of the updates

I tried updating Mejestic parameters via the new UI, now I don't get an error. It simply fails silently

themactep commented 2 years ago

No version of the installed web interface means you have a bundled one, that comes with the firmware.

themactep commented 2 years ago

There is something wrong with your overlay partition that causes errors during copying/deleting files.

schneemaier commented 2 years ago

Here is the filesystem inforamtion:

root@openipc-xm510:/# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 2.5M      2.5M         0 100% /rom
devtmpfs                  7.5M         0      7.5M   0% /dev
/dev/mtdblock4          704.0K    364.0K    340.0K  52% /overlay
overlayfs               704.0K    364.0K    340.0K  52% /
tmpfs                     7.5M         0      7.5M   0% /dev/shm
tmpfs                     7.5M     12.0K      7.5M   0% /tmp
tmpfs                     7.5M     44.0K      7.5M   1% /run
root@openipc-xm510:/# mount
rootfs on / type rootfs (rw)
/dev/root on /rom type squashfs (ro,relatime)
devtmpfs on /dev type devtmpfs (rw,relatime,size=7664k,nr_inodes=1916,mode=755)
/dev/mtdblock4 on /overlay type jffs2 (rw,relatime)
overlayfs on / type overlayfs (rw,relatime,lowerdir=/,upperdir=/overlay)
proc on /proc type proc (rw,relatime)
devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,relatime,mode=777)
tmpfs on /tmp type tmpfs (rw,relatime)
tmpfs on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755)
sysfs on /sys type sysfs (rw,relatime)
root@openipc-xm510:/# cat /etc/fstab
# <file system> <mount pt>  <type>  <options>   <dump>  <pass>
/dev/root   /       ext2    rw,noauto   0   1
proc        /proc       proc    defaults    0   0
devpts      /dev/pts    devpts  defaults,gid=5,mode=620,ptmxmode=0666   0   0
tmpfs       /dev/shm    tmpfs   mode=0777   0   0
tmpfs       /tmp        tmpfs   mode=1777   0   0
tmpfs       /run        tmpfs   mode=0755,nosuid,nodev  0   0
sysfs       /sys        sysfs   defaults    0   0

If the problem is with the overlay partition on /dev/mtdblock4 how can i fix it? Note that it was created by the firmware.

Or the overlay fs you are referring to is the overlayfs on / type overlayfs (rw,relatime,lowerdir=/,upperdir=/overlay)? Maybe the problem is that the upper and lover directories need to be swapped? How can i try that?

schneemaier commented 2 years ago

After several tries i was able to update the WebUI, now it shows the latest development version

Installed dev+e8113f3, 2022-07-09
Stable [master+0ac2ff6, 2022-06-29](https://github.com/OpenIPC/microbe-web/commits/master)
Unstable [dev+e8113f3, 2022-07-09](https://github.com/OpenIPC/microbe-web/commits/dev)

I can change, update every setting i tried, except for majestic. Those settings are not saved with the error message dmesg: overlayfs: ERROR - failed to whiteout 'majestic.yaml'

schneemaier commented 2 years ago

I read a bit more about overlayfs and it seems that the config is correct. The upperdir should be writable.

Can it be kernel related?

schneemaier commented 1 year ago

After some testing it seems to be a overlayfs issue wiht white out failing. Looking at the kernel repo I found this patch related to whiteout issue in overlayfs: https://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs.git/commit/?id=3e01cee3b980f96463cb6f378ab05303a99903d9

schneemaier commented 1 year ago

I created a workaround in the webUI package. Replaced cp with cat in several instances and now i can save the settings without errors. I also fixed the the same problem in the webUI updated.

https://github.com/OpenIPC/microbe-web/pull/116

themactep commented 1 year ago

I believe we had that overlay thing fixed like a year ago. If it still affects some platform, I think it should be fixed there, too. We heen to fix the core of the issue without writing more workarounds. Otherwise it will surface again somewhere down the road in another script which will be using a legit cp instead of cat.

schneemaier commented 1 year ago

Can you point me to the fix?

I agree that this is a workaround, which may fail after some updates.

widgetii commented 1 year ago

I believe it's better to fix root cause, for example back port changes for overlayfs from recent kernel version to XM's one (let's find proper patches to fix the issue in Linux kernel mailing lists)

dimerr commented 1 year ago

image I would start from syncing these with xm530 or any other working board that has similar kernel ver