I don’t know if this is a binding error or something else OS related but I just can’t get my Zymkey 4i’s working with Ubuntu Server 22.04.2 (LTS). I’ve tried both 32-Bit and 64-Bit versions and the results are the same.
For reference, the hardware I’m using is an OnLogic FR201 (effectively a CM4) with 4GB memory, no eMMC and a 64GB M.2 SSD. Here’s my high-level experience:
- Flash a USB stick with Ubuntu Server 22.04.2 (LTS) using the Raspberry Pi Imager,
- Boot the FR201 with said USB stick (it will boot from the USB stick if it’s there otherwise it falls back to the SSD),
- Once the unit is up and running I SSH to the device and check that “dtparam=i2c_arm=on” is in the /boot/firmware/config.txt file,
- After confirming this (it always is), I install the Zymbit client software:
curl -G https://s3.amazonaws.com/zk-sw-repo/install_zk_sw.sh | sudo bash
- This runs without exceptions and then the device reboots as expected,
- During reboot the Zymkey is rapidly flashing blue, shortly after boot completes it stops flashing completely
After the above has finished, I can’t do anything with the Zymkey (I know this is because it hasn’t completed the binding process successfully).
My problem is that I can’t find any error logs or anything that will tell me why this failed. I’ve tried with the stock pin mapping, I’ve tried moving pin GPIO4 and enabling I2C0 and rewiring the i2c pins to 27 & 28. No joy, always the same result.
Just for fun, I tried running one of the test python scripts and I got this result:
root@onlogic-ubuntu:~# python3 zk_app_utils_test.py Exception ignored in: <function Zymkey.__del__ at 0xb667c808> Traceback (most recent call last): File "/usr/local/lib/python3.10/dist-packages/zymkey/__init__.py", line 231, in __del__ raise AssertionError("bad return code %d" % ret) AssertionError: bad return code -1 Testing data lock... Traceback (most recent call last): File "/root/zk_app_utils_test.py", line 6, in <module> dst = zymkey.client.lock(src) AttributeError: 'NoneType' object has no attribute 'lock'
Similarly, I tried running the following line from this guide Raspberry pi 4, Ubuntu 22.04, LUKS with fallback
zklockifs root.key > /var/lib/zymbit/key.bin.lock
And I got:
Could not read stage 1 salt file. read returned -1, errno = 9
I’m confident the issue isn’t with the device or with my physical installation of the Zymkey though because I can install the latest Raspberry Pi OS (Lite 32-Bit released 2023-02-21) and the setup works. The Zymkey binds successfully, I get the slow blinking blue LED and I can run the test scripts (zk_app_utils_test.py & zk_crypto_test.py) without any errors.
Does anyone have any ideas, or anywhere I can look for faults? If there is more information required I’m happy to provide it.
The reason I’m keen to use Ubuntu Server 22.04 rather than Raspberry OS is due to the fact it’s got long-term support and I want to use Zymkey’s for a commercial project.