balena-cli: [Jetson Nano] `local configure`: Error: Unsupported filesystem

  • balena CLI version: e.g. 11.28.4
  • Operating system version: MacOSX 10.14.6
  • 32/64 bit OS and processor: 64-bit, 3.1 Ghz Intel Core i5
  • Install method: MacOSX executable installer

I’m trying out balena for the jetson nano and just following your steps on “Getting Started” but I can’t seem to hit a roadblock when configuring the base image:

Unsupported filesystem when sudo balena local configure ~/Downloads/balena.img

Expected:

$ sudo balena local configure ~/Downloads/balena.img
? Network SSID I_Love_Unicorns
? Network Key superSecretPassword
? Do you want to set advanced settings? Yes
? Device Hostname mydevice
? Do you want to enable persistent logging? no
Done!

Outcome:

Unsupported filesystem.

Additional information may be available by setting a DEBUG=1 environment
variable: "set DEBUG=1" on a Windows command prompt, "$env:DEBUG = 1" on
powershell, or "export DEBUG=1" on Linux or macOS.

If you need help, don't hesitate in contacting our support forums at
https://forums.balena.io

For CLI bug reports or feature requests, have a look at the GitHub issues or
create a new one at: https://github.com/balena-io/balena-cli/issues/

Setting DEBUG=1 via export DEBUG=1 did not reveal any more verbose error logs.

Can someone point out what is going wrong?

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Reactions: 1
  • Comments: 16 (11 by maintainers)

Most upvoted comments

This issue should be resolved in CLI release 12.44.15 or later, 🎉 thanks to @zvin who provided the core of the solution, and thanks to @Kajatin who created PR #2267 to implement, test and deploy it, fixing both the local configure and the os configure commands. 🙏 💯

@pdcastro you could get the device-type from the api but it might be wrong about the partition number depending on the image version.

A more robust solution would be to look for something that looks like a boot partition using balena-image-fs and partitioninfo (which is already a dependency of balena-image-fs):

async function getBootPartition(imagePath) {
    return await filedisk.withOpenFile(imagePath, 'r', async (handle) => {
        const disk = new filedisk.FileDisk(handle, true, false, false);
        const { partitions } = await partitioninfo.getPartitions(disk, { includeExtended: false, includeLogical: true });
        for (const { index } of partitions) {
            try {
                return await interact(disk, index, async (fs) => {
                    const statAsync = promisify(fs.stat);
                    const stats = await statAsync('/device-type.json')
                    if (stats.isFile()) {
                        return index;
                    }
                });
            } catch (error) {
                // noop
            }
        }
    }
}