Unable to upload Resources #29

Closed
opened 2022-10-17 02:32:17 +00:00 by spk44 · 28 comments

It seems like I was unable to upload the resources file using either res load command or the fw upg -r command.

After running,

itctl fw upg -a ~/Downloads/pinetime-mcuboot-app-dfu-1.11.0.zip -r ~/Downloads/infinitime-resources-1.11.0.zip

I got the latest firmware, but the new watch faces were greyed out. When running

itctl res load ~/Downloads/infinitime-resources-1.11.0.zip

I only see

Removing

then the command exits with code 0. Those zip files do exist in the filesystem.

The watch faces are still greyed out.

I am using itd 0.0.8, specifically the .deb for aarch64 on a Librem 5.

It seems like I was unable to upload the resources file using either `res load` command or the `fw upg -r` command. After running, ```bash itctl fw upg -a ~/Downloads/pinetime-mcuboot-app-dfu-1.11.0.zip -r ~/Downloads/infinitime-resources-1.11.0.zip ``` I got the latest firmware, but the new watch faces were greyed out. When running ```bash itctl res load ~/Downloads/infinitime-resources-1.11.0.zip ``` I only see ``` Removing ``` then the command exits with code 0. Those zip files do exist in the filesystem. The watch faces are still greyed out. I am using itd 0.0.8, specifically the .deb for aarch64 on a Librem 5.
Author

As another data point, using the itgui FS broswer, I can see a new "fonts" folder with the contents 7segnments_115.bin, other than that and settings.dat I don't see any other resources.

As another data point, using the `itgui` FS broswer, I can see a new "fonts" folder with the contents `7segnments_115.bin`, other than that and `settings.dat` I don't see any other resources.
Owner

Can you run itd with ITD_LOGGING_LEVEL=debug set, perform the resource load again, and provide the output? Thanks.

Can you run `itd` with `ITD_LOGGING_LEVEL=debug` set, perform the resource load again, and provide the output? Thanks.

I'm also having the same problem using the x86.64 .deb file. The resources file appears to install correctly the first time, but it's not recognised by the pinetime. After that I get the "removing" message if I attempt to install again.

What's the syntax for running the itd service with ITD_LOGGING_LEVEL=debug set?

I'm also having the same problem using the x86.64 .deb file. The resources file appears to install correctly the first time, but it's not recognised by the pinetime. After that I get the "removing" message if I attempt to install again. What's the syntax for running the itd service with ITD_LOGGING_LEVEL=debug set?

output from running resource load after running itd ITD_LOGGING_LEVEL=debug:

panic: interface conversion: error is dbus.Error, not blefs.FSError

goroutine 152 [running]:
go.arsenm.dev/infinitime/blefs.(*FS).MkdirAll(0xc0004f1290?, {0xc0004f1290?, 0x0?})
	/home/appveyor/.gvm/pkgsets/go1.19/global/pkg/mod/go.arsenm.dev/infinitime@v0.0.0-20221016193942-01970b2bb770/blefs/all.go:71 +0x10d
go.arsenm.dev/infinitime.LoadResources.func1()
	/home/appveyor/.gvm/pkgsets/go1.19/global/pkg/mod/go.arsenm.dev/infinitime@v0.0.0-20221016193942-01970b2bb770/resources.go:132 +0x22d
created by go.arsenm.dev/infinitime.LoadResources
	/home/appveyor/.gvm/pkgsets/go1.19/global/pkg/mod/go.arsenm.dev/infinitime@v0.0.0-20221016193942-01970b2bb770/resources.go:82 +0x1bf

output from running resource load after running `itd ITD_LOGGING_LEVEL=debug`: ``` panic: interface conversion: error is dbus.Error, not blefs.FSError goroutine 152 [running]: go.arsenm.dev/infinitime/blefs.(*FS).MkdirAll(0xc0004f1290?, {0xc0004f1290?, 0x0?}) /home/appveyor/.gvm/pkgsets/go1.19/global/pkg/mod/go.arsenm.dev/infinitime@v0.0.0-20221016193942-01970b2bb770/blefs/all.go:71 +0x10d go.arsenm.dev/infinitime.LoadResources.func1() /home/appveyor/.gvm/pkgsets/go1.19/global/pkg/mod/go.arsenm.dev/infinitime@v0.0.0-20221016193942-01970b2bb770/resources.go:132 +0x22d created by go.arsenm.dev/infinitime.LoadResources /home/appveyor/.gvm/pkgsets/go1.19/global/pkg/mod/go.arsenm.dev/infinitime@v0.0.0-20221016193942-01970b2bb770/resources.go:82 +0x1bf ```

I had a similar issue (itctl just sits with "Removing") but in my case it was due to itd trying to send the resources to the old watch firmware (1.6.0) which doesn't have support for the external fs. It might be handy to have itd check the version of the watch fw before trying to do fs operations, but also indicates perhaps an issue with error handling on the client/server part.

Perhaps if existing firmware < 1.11.0 && options include a resource file, break out instructing the user to upgrade firmware first, then load resources.

Client:

$ itctl fw upg -a pinetime-mcuboot-app-dfu-1.11.0.zip -r infinitime-resources-1.11.0.zip
Removing
Removing 

I had to Ctrl-C out of it. The second Removing line is due to me pressing enter before doing that.

Server:

$ ITD_LOGGING_LEVEL=debug itd
12:34AM DBG InfiniTime device found in list mac=C7:B8:C6:B0:27:11
12:34AM DBG Resolved characteristic name= uuid=00000003-78fc-48fe-8e23-433b3a1942d0
12:34AM DBG Resolved characteristic name= uuid=00000004-78fc-48fe-8e23-433b3a1942d0
12:34AM DBG Resolved characteristic name="Firmware Version" uuid=00002a26-0000-1000-8000-00805f9b34fb
12:34AM DBG Resolved characteristic name= uuid=00000002-78fc-48fe-8e23-433b3a1942d0
12:34AM DBG Resolved characteristic name= uuid=00001532-1212-efde-1523-785feabcd123
12:34AM DBG Resolved characteristic name= uuid=00000005-78fc-48fe-8e23-433b3a1942d0
12:34AM DBG Resolved characteristic name="New Alert" uuid=00002a46-0000-1000-8000-00805f9b34fb
12:34AM DBG Resolved characteristic name= uuid=00000001-78fc-48fe-8e23-433b3a1942d0
12:34AM DBG Resolved characteristic name="Notification Event" uuid=00020001-78fc-48fe-8e23-433b3a1942d0
12:34AM DBG Resolved characteristic name= uuid=00001531-1212-efde-1523-785feabcd123
12:34AM DBG Resolved characteristic name="Heart Rate" uuid=00002a37-0000-1000-8000-00805f9b34fb
12:34AM DBG Resolved characteristic name="Current Time" uuid=00002a2b-0000-1000-8000-00805f9b34fb
12:34AM DBG Resolved characteristic name="Battery Level" uuid=00002a19-0000-1000-8000-00805f9b34fb
12:34AM DBG Checking characteristic status
12:34AM DBG Characteristic available name="Firmware Version" uuid=00002a26-0000-1000-8000-00805f9b34fb
12:34AM INF Connected to InfiniTime version=1.6.0
12:34AM DBG Checking characteristic status
12:34AM DBG Characteristic available name="New Alert" uuid=00002a46-0000-1000-8000-00805f9b34fb
12:34AM DBG Checking characteristic status
12:34AM DBG Characteristic available name="Current Time" uuid=00002a2b-0000-1000-8000-00805f9b34fb
12:34AM INF Initialized InfiniTime music controls
12:34AM INF Relaying notifications to InfiniTime
12:34AM DBG Checking characteristic status
12:34AM DBG Characteristic not available (nil)
12:34AM WRN Error getting BLE filesystem error="characteristic adaf0200-4669-6c65-5472-616e73666572 (Filesystem Transfer) not available"
12:34AM INF Started control socket path=/tmp/itd/socket
12:34AM DBG Checking characteristic status
12:34AM DBG Characteristic not available (nil)
12:34AM ERR Error adding temperature event error="characteristic 00040001-78fc-48fe-8e23-433b3a1942d0 (Weather Data) not available"
12:34AM DBG Checking characteristic status
12:34AM DBG Characteristic not available (nil)
12:34AM ERR Error adding precipitation event error="characteristic 00040001-78fc-48fe-8e23-433b3a1942d0 (Weather Data) not available"
12:34AM DBG Checking characteristic status
12:34AM DBG Characteristic not available (nil)
12:34AM ERR Error adding wind event error="characteristic 00040001-78fc-48fe-8e23-433b3a1942d0 (Weather Data) not available"
12:34AM DBG Checking characteristic status
12:34AM DBG Characteristic not available (nil)
12:34AM ERR Error adding clouds event error="characteristic 00040001-78fc-48fe-8e23-433b3a1942d0 (Weather Data) not available"
12:34AM DBG Checking characteristic status
12:34AM DBG Characteristic not available (nil)
12:34AM ERR Error adding humidity event error="characteristic 00040001-78fc-48fe-8e23-433b3a1942d0 (Weather Data) not available"
12:34AM DBG Checking characteristic status
12:34AM DBG Characteristic not available (nil)
12:34AM ERR Error adding pressure event error="characteristic 00040001-78fc-48fe-8e23-433b3a1942d0 (Weather Data) not available"
12:34AM DBG Decoded manifest file
12:34AM DBG Making directories file=/fonts/7segments_115.bin
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x63dd6e]

goroutine 169 [running]:
go.arsenm.dev/infinitime/blefs.(*FS).request(0x0, 0x40, 0x1, {0xc00053fcf0?, 0xc000784780?, 0x0?})
        /home/appveyor/.gvm/pkgsets/go1.19/global/pkg/mod/go.arsenm.dev/infinitime@v0.0.0-20221016193942-01970b2bb770/blefs/fs.go:103 +0x10e
go.arsenm.dev/infinitime/blefs.(*FS).Mkdir(0xc000784780?, {0xc0003d6850, 0x6})
        /home/appveyor/.gvm/pkgsets/go1.19/global/pkg/mod/go.arsenm.dev/infinitime@v0.0.0-20221016193942-01970b2bb770/blefs/dir.go:13 +0x196
go.arsenm.dev/infinitime/blefs.(*FS).MkdirAll(0xc0005387e0?, {0xc0005387e0?, 0x12?})
        /home/appveyor/.gvm/pkgsets/go1.19/global/pkg/mod/go.arsenm.dev/infinitime@v0.0.0-20221016193942-01970b2bb770/blefs/all.go:70 +0xbd
go.arsenm.dev/infinitime.LoadResources.func1()
        /home/appveyor/.gvm/pkgsets/go1.19/global/pkg/mod/go.arsenm.dev/infinitime@v0.0.0-20221016193942-01970b2bb770/resources.go:132 +0x22d
created by go.arsenm.dev/infinitime.LoadResources
        /home/appveyor/.gvm/pkgsets/go1.19/global/pkg/mod/go.arsenm.dev/infinitime@v0.0.0-20221016193942-01970b2bb770/resources.go:82 +0x1bf
$

Uploading the firmware alone after that worked fine though, using ictl fw upgr -a pinetime-mcuboot-app-dfu-1.11.0.zip

Now I seem to have trouble sending the resources though:

client:

$ itctl res load infinitime-resources-1.11.0.zip
Uploading 7segments_115.bin 4928 / 4928 B |----------------------------------------------------------------------------------------------------------------------------------->| 100.00% ?
Uploading 7segments_115.bin 4928 / 4928 B |----------------------------------------------------------------------------------------------------------------------------------->| 100.00% ?
Uploading 7segments_115.bin 4928 / 4928 B |----------------------------------------------------------------------------------------------------------------------------------->| 100.00% ?
Uploading 7segments_115.bin 4928 / 4928 B |---------------------------------------------------------------------------------------------------------------------------------| 100.00% 1m0s

(I pressed enter a few times to check client wasn't hung).

server:

[..snip..]
4:55AM DBG Characteristic available name="Weather Data" uuid=00040001-78fc-48fe-8e23-433b3a1942d0
4:55AM DBG Adding weather event event={"EventType":6,"Expires":3600,"Pressure":1017,"Timestamp":1666029319}
4:55AM DBG Checking characteristic status
4:55AM DBG Characteristic available name="Battery Level" uuid=00002a19-0000-1000-8000-00805f9b34fb
4:56AM DBG Decoded manifest file
4:56AM DBG Making directories file=/fonts/7segments_115.bin
4:56AM DBG Creating file file=/fonts/7segments_115.bin size=4928
4:56AM DBG Progress event sent sent=4928 total=4928
4:57AM DBG Error writing to file error="timed out waiting for response"

Then I tried on the client:

$ itctl res load infinitime-resources-1.11.0.zip
Removing

Which resulted on the server:

4:57AM DBG Decoded manifest file
4:57AM DBG Making directories file=/fonts/7segments_115.bin
4:57AM DBG Creating file file=/fonts/7segments_115.bin size=4928
4:57AM DBG Error creating file error="only one file can be opened for writing at a time"

I restarted the watch and itd and got the same results again trying to load the resources - first attempt gets 100% and times out, second attempt gets the "only one file can be opened for writing at a time".

I'm also having some trouble getting the pairing done (getting prompts from itd instead of via blueman-applet, and it is either not taking my keyboard input or the pairing is timing out), but I am sure it's unrelated, and the above is what happens after I do get it successfully paired and connected.

My guess is that it might be an issue on the InfiniTime end of the process, but there also appears to be a small bug in ITD not clearing its "write-lock" on the file after a timeout.

I had a similar issue (itctl just sits with "Removing") but in my case it was due to itd trying to send the resources to the old watch firmware (1.6.0) which doesn't have support for the external fs. It might be handy to have itd check the version of the watch fw before trying to do fs operations, but also indicates perhaps an issue with error handling on the client/server part. Perhaps if existing firmware < 1.11.0 && options include a resource file, break out instructing the user to upgrade firmware first, then load resources. Client: ``` $ itctl fw upg -a pinetime-mcuboot-app-dfu-1.11.0.zip -r infinitime-resources-1.11.0.zip Removing Removing ``` I had to Ctrl-C out of it. The second `Removing` line is due to me pressing `enter` before doing that. Server: ``` $ ITD_LOGGING_LEVEL=debug itd 12:34AM DBG InfiniTime device found in list mac=C7:B8:C6:B0:27:11 12:34AM DBG Resolved characteristic name= uuid=00000003-78fc-48fe-8e23-433b3a1942d0 12:34AM DBG Resolved characteristic name= uuid=00000004-78fc-48fe-8e23-433b3a1942d0 12:34AM DBG Resolved characteristic name="Firmware Version" uuid=00002a26-0000-1000-8000-00805f9b34fb 12:34AM DBG Resolved characteristic name= uuid=00000002-78fc-48fe-8e23-433b3a1942d0 12:34AM DBG Resolved characteristic name= uuid=00001532-1212-efde-1523-785feabcd123 12:34AM DBG Resolved characteristic name= uuid=00000005-78fc-48fe-8e23-433b3a1942d0 12:34AM DBG Resolved characteristic name="New Alert" uuid=00002a46-0000-1000-8000-00805f9b34fb 12:34AM DBG Resolved characteristic name= uuid=00000001-78fc-48fe-8e23-433b3a1942d0 12:34AM DBG Resolved characteristic name="Notification Event" uuid=00020001-78fc-48fe-8e23-433b3a1942d0 12:34AM DBG Resolved characteristic name= uuid=00001531-1212-efde-1523-785feabcd123 12:34AM DBG Resolved characteristic name="Heart Rate" uuid=00002a37-0000-1000-8000-00805f9b34fb 12:34AM DBG Resolved characteristic name="Current Time" uuid=00002a2b-0000-1000-8000-00805f9b34fb 12:34AM DBG Resolved characteristic name="Battery Level" uuid=00002a19-0000-1000-8000-00805f9b34fb 12:34AM DBG Checking characteristic status 12:34AM DBG Characteristic available name="Firmware Version" uuid=00002a26-0000-1000-8000-00805f9b34fb 12:34AM INF Connected to InfiniTime version=1.6.0 12:34AM DBG Checking characteristic status 12:34AM DBG Characteristic available name="New Alert" uuid=00002a46-0000-1000-8000-00805f9b34fb 12:34AM DBG Checking characteristic status 12:34AM DBG Characteristic available name="Current Time" uuid=00002a2b-0000-1000-8000-00805f9b34fb 12:34AM INF Initialized InfiniTime music controls 12:34AM INF Relaying notifications to InfiniTime 12:34AM DBG Checking characteristic status 12:34AM DBG Characteristic not available (nil) 12:34AM WRN Error getting BLE filesystem error="characteristic adaf0200-4669-6c65-5472-616e73666572 (Filesystem Transfer) not available" 12:34AM INF Started control socket path=/tmp/itd/socket 12:34AM DBG Checking characteristic status 12:34AM DBG Characteristic not available (nil) 12:34AM ERR Error adding temperature event error="characteristic 00040001-78fc-48fe-8e23-433b3a1942d0 (Weather Data) not available" 12:34AM DBG Checking characteristic status 12:34AM DBG Characteristic not available (nil) 12:34AM ERR Error adding precipitation event error="characteristic 00040001-78fc-48fe-8e23-433b3a1942d0 (Weather Data) not available" 12:34AM DBG Checking characteristic status 12:34AM DBG Characteristic not available (nil) 12:34AM ERR Error adding wind event error="characteristic 00040001-78fc-48fe-8e23-433b3a1942d0 (Weather Data) not available" 12:34AM DBG Checking characteristic status 12:34AM DBG Characteristic not available (nil) 12:34AM ERR Error adding clouds event error="characteristic 00040001-78fc-48fe-8e23-433b3a1942d0 (Weather Data) not available" 12:34AM DBG Checking characteristic status 12:34AM DBG Characteristic not available (nil) 12:34AM ERR Error adding humidity event error="characteristic 00040001-78fc-48fe-8e23-433b3a1942d0 (Weather Data) not available" 12:34AM DBG Checking characteristic status 12:34AM DBG Characteristic not available (nil) 12:34AM ERR Error adding pressure event error="characteristic 00040001-78fc-48fe-8e23-433b3a1942d0 (Weather Data) not available" 12:34AM DBG Decoded manifest file 12:34AM DBG Making directories file=/fonts/7segments_115.bin panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x63dd6e] goroutine 169 [running]: go.arsenm.dev/infinitime/blefs.(*FS).request(0x0, 0x40, 0x1, {0xc00053fcf0?, 0xc000784780?, 0x0?}) /home/appveyor/.gvm/pkgsets/go1.19/global/pkg/mod/go.arsenm.dev/infinitime@v0.0.0-20221016193942-01970b2bb770/blefs/fs.go:103 +0x10e go.arsenm.dev/infinitime/blefs.(*FS).Mkdir(0xc000784780?, {0xc0003d6850, 0x6}) /home/appveyor/.gvm/pkgsets/go1.19/global/pkg/mod/go.arsenm.dev/infinitime@v0.0.0-20221016193942-01970b2bb770/blefs/dir.go:13 +0x196 go.arsenm.dev/infinitime/blefs.(*FS).MkdirAll(0xc0005387e0?, {0xc0005387e0?, 0x12?}) /home/appveyor/.gvm/pkgsets/go1.19/global/pkg/mod/go.arsenm.dev/infinitime@v0.0.0-20221016193942-01970b2bb770/blefs/all.go:70 +0xbd go.arsenm.dev/infinitime.LoadResources.func1() /home/appveyor/.gvm/pkgsets/go1.19/global/pkg/mod/go.arsenm.dev/infinitime@v0.0.0-20221016193942-01970b2bb770/resources.go:132 +0x22d created by go.arsenm.dev/infinitime.LoadResources /home/appveyor/.gvm/pkgsets/go1.19/global/pkg/mod/go.arsenm.dev/infinitime@v0.0.0-20221016193942-01970b2bb770/resources.go:82 +0x1bf $ ``` Uploading the firmware alone after that worked fine though, using `ictl fw upgr -a pinetime-mcuboot-app-dfu-1.11.0.zip` Now I seem to have trouble sending the resources though: **client:** ``` $ itctl res load infinitime-resources-1.11.0.zip Uploading 7segments_115.bin 4928 / 4928 B |----------------------------------------------------------------------------------------------------------------------------------->| 100.00% ? Uploading 7segments_115.bin 4928 / 4928 B |----------------------------------------------------------------------------------------------------------------------------------->| 100.00% ? Uploading 7segments_115.bin 4928 / 4928 B |----------------------------------------------------------------------------------------------------------------------------------->| 100.00% ? Uploading 7segments_115.bin 4928 / 4928 B |---------------------------------------------------------------------------------------------------------------------------------| 100.00% 1m0s ``` (I pressed enter a few times to check client wasn't hung). **server:** ``` [..snip..] 4:55AM DBG Characteristic available name="Weather Data" uuid=00040001-78fc-48fe-8e23-433b3a1942d0 4:55AM DBG Adding weather event event={"EventType":6,"Expires":3600,"Pressure":1017,"Timestamp":1666029319} 4:55AM DBG Checking characteristic status 4:55AM DBG Characteristic available name="Battery Level" uuid=00002a19-0000-1000-8000-00805f9b34fb 4:56AM DBG Decoded manifest file 4:56AM DBG Making directories file=/fonts/7segments_115.bin 4:56AM DBG Creating file file=/fonts/7segments_115.bin size=4928 4:56AM DBG Progress event sent sent=4928 total=4928 4:57AM DBG Error writing to file error="timed out waiting for response" ``` Then I tried on the **client:** ``` $ itctl res load infinitime-resources-1.11.0.zip Removing ``` Which resulted on the **server:** ``` 4:57AM DBG Decoded manifest file 4:57AM DBG Making directories file=/fonts/7segments_115.bin 4:57AM DBG Creating file file=/fonts/7segments_115.bin size=4928 4:57AM DBG Error creating file error="only one file can be opened for writing at a time" ``` I restarted the watch and itd and got the same results again trying to load the resources - first attempt gets 100% and times out, second attempt gets the "only one file can be opened for writing at a time". I'm also having some trouble getting the pairing done (getting prompts from itd instead of via blueman-applet, and it is either not taking my keyboard input or the pairing is timing out), but I am sure it's unrelated, and the above is what happens after I do get it successfully paired and connected. My guess is that it might be an issue on the InfiniTime end of the process, but there also appears to be a small bug in ITD not clearing its "write-lock" on the file after a timeout.
Owner

My guess is that it might be an issue on the InfiniTime end of the process, but there also appears to be a small bug in ITD not clearing its "write-lock" on the file after a timeout.

Yeah, the timeout happens because the watch hasn't sent back a response within a minute of sending a request. I am not sure exactly why that would be happening.

The "only one file" issue suggests ITD isn't closing the file if there's an error. I will fix that.

panic: interface conversion: error is dbus.Error, not blefs.FSError

This error means that an error was reported by DBus, most likely from BlueZ. This is not an ITD issue, though I should probably improve the error message there by properly handling errors that aren't FSErrors.

What's the syntax for running the itd service with ITD_LOGGING_LEVEL=debug set?

You want to stop the systemd service first with

systemctl --user stop itd

Then, run ITD manually in a separate terminal window with

ITD_LOGGING_LEVEL=debug itd

Once you're done, you Ctrl+C to stop it and copy/paste the output here.

In order to restart the service, use

systemctl --user start itd
> My guess is that it might be an issue on the InfiniTime end of the process, but there also appears to be a small bug in ITD not clearing its "write-lock" on the file after a timeout. Yeah, the timeout happens because the watch hasn't sent back a response within a minute of sending a request. I am not sure exactly why that would be happening. The "only one file" issue suggests ITD isn't closing the file if there's an error. I will fix that. > panic: interface conversion: error is dbus.Error, not blefs.FSError This error means that an error was reported by DBus, most likely from BlueZ. This is not an ITD issue, though I should probably improve the error message there by properly handling errors that aren't `FSError`s. > What's the syntax for running the itd service with ITD_LOGGING_LEVEL=debug set? You want to stop the systemd service first with ```bash systemctl --user stop itd ``` Then, run ITD manually in a separate terminal window with ```bash ITD_LOGGING_LEVEL=debug itd ``` Once you're done, you Ctrl+C to stop it and copy/paste the output here. In order to restart the service, use ```bash systemctl --user start itd ```
Owner

I've fixed some stuff. Please try again and see if it works. If your version of InfiniTime doesn't support BLE FS, itctl will now print a warning.

I've fixed some stuff. Please try again and see if it works. If your version of InfiniTime doesn't support BLE FS, `itctl` will now print a warning.
Owner

Here are some packages for people who don't want to compile it themselves. Arch users should just use the itd-git AUR package to get the latest version compiled from source.

If anyone needs files for a different architecture, let me know.

Here are some packages for people who don't want to compile it themselves. Arch users should just use the `itd-git` AUR package to get the latest version compiled from source. If anyone needs files for a different architecture, let me know.
Owner

It has just come to my attention that the email functionality of my gitea instance broke (again), and I've fixed it, so I'm sending this to alert everyone participating in this issue of the changes and new packages.

It has just come to my attention that the email functionality of my gitea instance broke (again), and I've fixed it, so I'm sending this to alert everyone participating in this issue of the changes and new packages.
Elara6331 added the
Bug
label 2022-10-17 20:34:12 +00:00

updated to the latest provided ltd-0.0.9-next-linux-x86_64.deb package, and was able to get more meaningful output this time when attempting to run itctl res load:

5:10PM DBG Making directories file=/fonts/7segments_115.bin
5:10PM DBG Error making directories error="Operation is not supported"

using InfiniTime v1.11.0

updated to the latest provided ltd-0.0.9-next-linux-x86_64.deb package, and was able to get more meaningful output this time when attempting to run `itctl res load`: ``` 5:10PM DBG Making directories file=/fonts/7segments_115.bin 5:10PM DBG Error making directories error="Operation is not supported" ``` using InfiniTime v1.11.0
Owner

updated to the latest provided ltd-0.0.9-next-linux-x86_64.deb package, and was able to get more meaningful output this time when attempting to run itctl res load:

5:10PM DBG Making directories file=/fonts/7segments_115.bin
5:10PM DBG Error making directories error="Operation is not supported"

Ok, that one I know. This is an error coming from BlueZ. The problem is that the filesystem feature attempts to request the MTU from the watch. This feature was only added in recent BlueZ versions, so my guess is that you're using an older version.

> updated to the latest provided ltd-0.0.9-next-linux-x86_64.deb package, and was able to get more meaningful output this time when attempting to run `itctl res load`: > > ``` > 5:10PM DBG Making directories file=/fonts/7segments_115.bin > 5:10PM DBG Error making directories error="Operation is not supported" > > ``` Ok, that one I know. This is an error coming from BlueZ. The problem is that the filesystem feature attempts to request the MTU from the watch. This feature was only added in recent BlueZ versions, so my guess is that you're using an older version.
Author

I have installed version 0.0.9, and now it doesn't get hung on "Removing", using itctl res load however issues still persist, even after restarts and multiple runs.

Using itctl fs list fonts the file that is uploaded is zero bytes, so a successful transfer did not occur.

The debug logs are below and back this up

Oct 17 17:16:50 ~ itd[1951]: 5:16PM DBG Decoded manifest file
Oct 17 17:16:50 ~ itd[1951]: 5:16PM DBG Making directories file=/fonts/7segments_115.bin
Oct 17 17:16:50 ~ itd[1951]: 5:16PM DBG Creating file file=/fonts/7segments_115.bin size=4928
Oct 17 17:16:50 ~ itd[1951]: 5:16PM DBG Progress event sent sent=4928 total=4928
Oct 17 17:17:50 ~ itd[1951]: 5:17PM DBG Error writing to file error="timed out waiting for response"
I have installed version 0.0.9, and now it doesn't get hung on "Removing", using `itctl res load` however issues still persist, even after restarts and multiple runs. Using `itctl fs list fonts` the file that is uploaded is zero bytes, so a successful transfer did not occur. The debug logs are below and back this up ``` Oct 17 17:16:50 ~ itd[1951]: 5:16PM DBG Decoded manifest file Oct 17 17:16:50 ~ itd[1951]: 5:16PM DBG Making directories file=/fonts/7segments_115.bin Oct 17 17:16:50 ~ itd[1951]: 5:16PM DBG Creating file file=/fonts/7segments_115.bin size=4928 Oct 17 17:16:50 ~ itd[1951]: 5:16PM DBG Progress event sent sent=4928 total=4928 Oct 17 17:17:50 ~ itd[1951]: 5:17PM DBG Error writing to file error="timed out waiting for response" ```
Owner

I have installed version 0.0.9, and now it doesn't get hung on "Removing", using itctl res load however issues still persist, even after restarts and multiple runs.

Using itctl fs list fonts the file that is uploaded is zero bytes, so a successful transfer did not occur.

The debug logs are below and back this up

That's weird. The logs suggest that ITD is trying to send 4928 bytes immediately. This should definitely not be happening, and points to something being wrong in BlueZ's MTU request feature. It would definitely explain the timeout. I will investigate further.

> I have installed version 0.0.9, and now it doesn't get hung on "Removing", using `itctl res load` however issues still persist, even after restarts and multiple runs. > > Using `itctl fs list fonts` the file that is uploaded is zero bytes, so a successful transfer did not occur. > > The debug logs are below and back this up That's weird. The logs suggest that ITD is trying to send 4928 bytes immediately. This should definitely not be happening, and points to something being wrong in BlueZ's MTU request feature. It would definitely explain the timeout. I will investigate further.

| That's weird. The logs suggest that ITD is trying to send 4928 bytes immediately.

FWIW, once I got my bluetooth issues sorted, and also resolved my pairing issues with the watch (it seemed to have invalid pairing data persisted) I was able to transfer the resources just fine with bluez 5.65-1 on debian sid.

| That's weird. The logs suggest that ITD is trying to send 4928 bytes immediately. FWIW, once I got my bluetooth issues sorted, and also resolved my pairing issues with the watch (it seemed to have invalid pairing data persisted) I was able to transfer the resources just fine with bluez 5.65-1 on debian sid.

I now have two systems at hand. On one it works and on the other it doesn't.

Working system:

  • bluez 5.65-3
  • Intel Corp. AX200 Bluetooth
  • version 0.0.8-1 (AUR itd-bin-0.0.8-1)

Not working system:

  • bluez 5.55-3.1
  • BCM220702
  • version 0.0.8 and 0.0.9-next (DEB, x86_64)

Let me know if this would help you debug.

I now have two systems at hand. On one it works and on the other it doesn't. Working system: * bluez 5.65-3 * Intel Corp. AX200 Bluetooth * version 0.0.8-1 (AUR itd-bin-0.0.8-1) Not working system: * bluez 5.55-3.1 * BCM220702 * version 0.0.8 and 0.0.9-next (DEB, x86_64) Let me know if this would help you debug.
Author

Here's my non-working setup:

  • bluez 5.55-3.1
  • Redpine RS9116
  • version 0.0.9-next (DEB, aarch64)
Here's my non-working setup: - bluez 5.55-3.1 - Redpine RS9116 - version 0.0.9-next (DEB, aarch64)
Owner

Ah, you're using BlueZ 5.55. That would make sense because it doesn't have the MTU feature. What doesn't make sense is why it didn't return an error and instead just returned an incorrect value. What I'll do is check the BlueZ version and if it's too low, I'll just assume the MTU rather than checking.

Ah, you're using BlueZ 5.55. That would make sense because it doesn't have the MTU feature. What doesn't make sense is why it didn't return an error and instead just returned an incorrect value. What I'll do is check the BlueZ version and if it's too low, I'll just assume the MTU rather than checking.

I have the same problem. After flashing the firmware and resource package using the single command (with the v0.0.8), I still see that the two additional watch faces are grayed.

I have the same problem. After flashing the firmware and resource package using the single command (with the v0.0.8), I still see that the two additional watch faces are grayed.

I wanted to report the same issue. I had flagged this on the infinitime github, but I think it may be an itd issue, as the other commentators have reported the same symptoms. I've tried multiple times to load the resource file after successfully updating and validating the latest 1.11 infinitime firmware. The resource load using itctl looks like it completes. However, running the debug command you provided didn't output anything during the attempt.

I wanted to report the same issue. I had flagged this on the infinitime github, but I think it may be an itd issue, as the other commentators have reported the same symptoms. I've tried multiple times to load the resource file after successfully updating and validating the latest 1.11 infinitime firmware. The resource load using itctl looks like it completes. However, running the debug command you provided didn't output anything during the attempt.
Owner

Those who have had issues with uploading resources, please try the attached ITD packages. I now assume MTU to be 256 if it isn't available, which should resolve the issues.

Those who have had issues with uploading resources, please try the attached ITD packages. I now assume MTU to be 256 if it isn't available, which should resolve the issues.
Author

The latest version did work and solved my issue, even on BlueZ 5.55.

Thank you!

The latest version did work and solved my issue, even on BlueZ 5.55. Thank you!
Owner

@mathemagician @ljishen Can you please try the new packages? If it's fixed your issues, I can close this and tag a new release with the fixes.

@mathemagician @ljishen Can you please try the new packages? If it's fixed your issues, I can close this and tag a new release with the fixes.

Just tried it and it worked! Thank you!

Just tried it and it worked! Thank you!

This version works for me as well. Great work!

This version works for me as well. Great work!
Owner

Perfect, then I will make a new release.

Perfect, then I will make a new release.
Owner

@khimaros These errors suggest you are not actually running 1.11.0. Maybe the firmware reverted? Did you validate after installing it?

You can see messages like

Nov 01 13:16:50 itd[92086]: 1:16PM WRN Error getting BLE filesystem error="characteristic adaf0200-4669-6c65-5472-616e73666572 (Filesystem Transfer) not available"

This tells me your PineTime isn't exposing the filesystem transfer characteristic required for BLE FS.

@khimaros These errors suggest you are not actually running 1.11.0. Maybe the firmware reverted? Did you validate after installing it? You can see messages like ``` Nov 01 13:16:50 itd[92086]: 1:16PM WRN Error getting BLE filesystem error="characteristic adaf0200-4669-6c65-5472-616e73666572 (Filesystem Transfer) not available" ``` This tells me your PineTime isn't exposing the filesystem transfer characteristic required for BLE FS.

sorry about that, i deleted my comment because i had come to the same conclusion.

newbie here, i didn't realize i needed to "verify" new firmware releases in order to prevent the system from rolling back to the previous.

thank you for making itd. it's a great tool!

sorry about that, i deleted my comment because i had come to the same conclusion. newbie here, i didn't realize i needed to "verify" new firmware releases in order to prevent the system from rolling back to the previous. thank you for making itd. it's a great tool!

I am new to all of this as well, the stack traces were only informative in that it led me to search in this project's issues. It would be lovely to somehow check the fw version against the resource version, or suggest that as an error when this failure comes up.

I thought I had updated the fw to 1.11 but it didn't take, user error on my part.

I am new to all of this as well, the stack traces were only informative in that it led me to search in this project's issues. It would be lovely to somehow check the fw version against the resource version, or suggest that as an error when this failure comes up. I thought I had updated the fw to 1.11 but it didn't take, user error on my part.
Sign in to join this conversation.
No description provided.