Community

You need to log in to create posts and topics.

Update Issues - And Workarounds!

Now that production units are shipping I pulled out my Maker Edition to see if the software environment had matured any...

It has been a few months so I started with an update and am encountering two different issues when trying to update my Oboo.

 

The first issue I hit is a certificate issue.

The Oboo reaches out to api.getoboo.com to inquire about the availability of an update and the ssl cert on that site expired last week, causing wget to block the request.

I was able to bypass this by editing the update script.

In file /etc/cron.week/firmware_update.sh I changed line 13 from:

DATA=`wget -qO- https://api.getoboo.com/v1/firmware/update?mac=$MAC`

to

DATA=`wget -qO- https://api.getoboo.com/v1/firmware/update?mac=$MAC --no-check-certificate`

This allowed the update to proceed, but is obviously not a good long term solution.

 

The next issue I encountered is a set of file conflicts between packages oboo-clock-scripts and oboo-clock-provisioning-scripts.

Installing oboo-clock-scripts (0.0.7-9) to root...

Downloading http://repo.getoboo.com/oboo-clock/packages/oboo-clock-scripts_0.0.7-9_mipsel_24kc.ipk

Collected errors:

 * check_data_file_clashes: Package oboo-clock-scripts wants to install file /www/cgi-bin/ver

But that file is already provided by package  * oboo-clock-provisioning-scripts

 * check_data_file_clashes: Package oboo-clock-scripts wants to install file /www/cgi-bin/wifi-scan

But that file is already provided by package  * oboo-clock-provisioning-scripts

 * check_data_file_clashes: Package oboo-clock-scripts wants to install file /www/cgi-bin/wifi-setup

But that file is already provided by package  * oboo-clock-provisioning-scripts

 * opkg_install_cmd: Cannot install package oboo-clock-scripts.

I got this error when running the full update script as well as when trying to update oboo-clock-scripts manually.

As a result, I was missing the config options, the http assets, and other important things.

It turned out that oboo-clock-provisioning-scripts seems to be old (it is at least no longer available in the repos).

I stumbled across the fix by accident, attempting to update the package...

root@Oboo-Clock-5448:/# opkg install --force-reinstall oboo-clock-provisioning-scripts

Removing package oboo-clock-provisioning-scripts from root...

Installing oboo-clock-provisioning-scripts (0.2.1-2) to root...

Collected errors:

 * opkg_download_pkg: Package oboo-clock-provisioning-scripts is not available from any configured src.

 * opkg_install_pkg: Failed to download oboo-clock-provisioning-scripts. Perhaps you need to run 'opkg update'?

 * opkg_install_cmd: Cannot install package oboo-clock-provisioning-scripts.

The force option cause the package to just be removed.  An opkg remove command would probably have worked as well.

Once oboo-clock-provisioning-scripts was gone, oboo-clock-scripts updated successfully:

root@Oboo-Clock-5448:/# opkg install --force-reinstall oboo-clock-scripts

No packages removed.

Installing oboo-clock-scripts (0.0.7-9) to root...

Downloading http://repo.getoboo.com/oboo-clock/packages/oboo-clock-scripts_0.0.7-9_mipsel_24kc.ipk

Configuring oboo-clock-scripts.

 

Hopefully this helps anyone else who has trouble updating.

Onion, please fix the cert error and include in your updates cleaning up any old packages that are no longer needed.

I now have a new update issue... this time without a workaround.

I just tried to do another full update and it returned the following error:

root@Oboo-Clock-5448:~# sh /etc/cron.week/firmware_update.sh 

update available

Downloading http://repo.onion.io/omega2/packages/core/Packages.gz

Updated list of available packages in /var/opkg-lists/omega2_core

Downloading http://repo.onion.io/omega2/packages/core/Packages.sig

Signature check passed.

Downloading http://repo.onion.io/omega2/packages/base/Packages.gz

Updated list of available packages in /var/opkg-lists/omega2_base

Downloading http://repo.onion.io/omega2/packages/base/Packages.sig

Signature check passed.

Downloading http://repo.onion.io/omega2/packages/packages/Packages.gz

Updated list of available packages in /var/opkg-lists/omega2_packages

Downloading http://repo.onion.io/omega2/packages/packages/Packages.sig

Signature check passed.

Downloading http://repo.onion.io/omega2/packages/onion/Packages.gz

Updated list of available packages in /var/opkg-lists/omega2_onion

Downloading http://repo.onion.io/omega2/packages/onion/Packages.sig

Signature check passed.

Downloading http://repo.getoboo.com/oboo-clock/packages/Packages.gz

Updated list of available packages in /var/opkg-lists/oboo_clock

Downloading http://repo.getoboo.com/oboo-clock/packages/Packages.sig

Signature check passed.

Upgrading oboo-clock-base on root from 0.0.5-1 to 0.0.7-9...

Downloading http://repo.getoboo.com/oboo-clock/packages/oboo-clock-base_0.0.7-9_mipsel_24kc.ipk

Installing oboo-cron (0.0.7-9) to root...

Downloading http://repo.getoboo.com/oboo-clock/packages/oboo-cron_0.0.7-9_mipsel_24kc.ipk

oboo-clock-fw-manager was autoinstalled and is now orphaned, removing.

Removing package oboo-clock-fw-manager from root...

Configuring oboo-cron.

Collected errors:

 * check_data_file_clashes: Package oboo-clock-base wants to install file /www/index.html

But that file is already provided by package  * base-www

Unknown package 'oboo-clock-fw-manager'.

Installing oboo-clock-provisioning-scripts (0.2.1-2) to root...

Collected errors:

 * opkg_download_pkg: Package oboo-clock-provisioning-scripts is not available from any configured src.

 * opkg_install_pkg: Failed to download oboo-clock-provisioning-scripts. Perhaps you need to run 'opkg update'?

It removed package oboo-clock-fw-manager...

I thought that may be an old package that was no longer needed, so it did not trouble me too much, but I quickly found out that it must have included all of the firmware update assets because now I no longer have a /etc/cron.week/firmware_update.sh

 

Is there a new firmware update method that does not use that file?

If this was a bug with the update, how do I now get that file back?

Hi,

not sure if there is any official help. It looks like very little official communication in here in recent weeks.

How about this, does this help:

cat /etc/cron.week/firmware_update.sh 
#!/bin/sh

# include the json sh library
. /usr/share/libubox/jshn.sh
json_init

PACKAGE_NAME="oboo-clock-base"

MAC=`cat /sys/class/net/ra0/address`
PACKAGE_VER=`opkg info $PACKAGE_NAME | grep Version | sed -e 's/^Version:\s//g'`
MODEL=`ubus call system board | grep model | sed -e 's/:"(.*?)"/\1/p'`

DATA=`wget -qO- https://api.getoboo.com/v1/firmware/update?mac=$MAC --no-check-certificate`

# Parse JSON content
json_load "$DATA"
json_get_var update_available update_available
json_get_var mac mac
json_get_var package_version package_version


doUpdate () {
opkg update
opkg upgrade $PACKAGE_NAME
sh /usr/share/oboo/oboo-sw-upgrade.sh
}

if [ $update_available ] && [ "$PACKAGE_VER" != "$package_version" ]; then
echo "update available"
doUpdate
else
echo "no update available"
fi;

 

 

Thanks ckruetze!

That was exactly what I needed.

I had to run it a few times, but I think I am finally up to date.

"Up to date" brought no actual improvements that I've seen yet, but that is a separate matter.