-
-
Notifications
You must be signed in to change notification settings - Fork 194
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
mix firmware
failure during squashfs
#876
Comments
The bit of debugging I did seemed to fail in a |
I could use some help reproducing this. I have had Squashfs 4.6.1 installed on two MBP's for quite a while now and haven't seen this at all. Does this affect all projects? Aside from work projects, I build Elixir Circuits Quickstart and Nerves Livebook frequently. Does it reproduce for either of you with those? |
It is a bit stalled until we have some reproduction. A few others are looking into it and we'll report once we have more |
Part of nerves-project/nerves#877 for adding more useful output during the firmware build process. nerves-project/nerves#876 shows cases where `mix firmware` fails to build. In reproducing, I found that `merge-squashfs` was failing silently. Specifically at this line because `2>/dev/null` was forwarding stderr to be ignored. Instead, this changes to let stderr through so more helpful messages can be reviewed
I was able to reproduce this with a private repo. Once digging through the scripts and commands being run during squashing, this is what I ran into
Frank gave me the idea to check for files without case-sensitivity and sure enough, there are 2
MacOS is case-insensitive by default. This actually hits at a lots of random times. For cases during squashfs, it's probably running into files like this that are provided by the underlying Nerves system and is going to vary widely. I need to think about how to handle this. I'm assuming the recent squashfs update has some sort of change to ignore case and just need to see how to work around it |
Part of nerves-project/nerves#877 for adding more useful output during the firmware build process. nerves-project/nerves#876 shows cases where `mix firmware` fails to build. In reproducing, I found that `merge-squashfs` was failing silently. Specifically at this line because `2>/dev/null` was forwarding stderr to be ignored. Instead, this changes to let stderr through so more helpful messages can be reviewed
For folks who need to downgrade squashfs on macOS using Homebrew: brew tap-new zappy/edith
brew extract --version="4.5.1" squashfs zappy/edith
brew install [email protected]
brew link --overwrite [email protected]
unsquashfs -version # => should report 4.5.1 |
Just a warning that building a firmware on macOS actually leads to a somewhat corrupted system. I recently spent a couple of hours trying to find out why a specific iptables command failed on a nerves firmware built on macOS using the downgraded version of squashfs that has been suggested. I later noticed that a system built on linux works just fine. If you're seeing logs like these it could happen that some things will not work as expected:
|
@jjcarstens Have just added issue about this - #937 |
I went down this road again and came to the same conclusion as @salseeg. Would it make sense to add a I also found that |
This is not working for me, I changed my Mac and installed version 4.6.1 on homebrew, I am not being able to downgrade to 4.5.1 |
This is a temporary fix for an issue that prevents building firmware on macOS if the Nerves system contains any files with names that collide on a case-insensitive filesystem like APFS. See nerves-project/nerves#876. When running `mix firmware`, warnings in the following format may indicate that some things may not work as expected: ``` Pseudo modify file "path/to/file" does not exist in source filesystem. Ignoring. ```
This is a temporary fix for an issue that prevents building firmware on macOS if the Nerves system contains any files with names that collide on a case-insensitive filesystem like APFS. See nerves-project/nerves#876. When running `mix firmware`, warnings in the following format may indicate that some things may not work as expected: ``` Pseudo modify file "path/to/file" does not exist in source filesystem. Ignoring. ```
With squashfs 4.6+ on the host machine, some
mix firmware
builds may fail after building the rootfs and then squashing itThe workaround is to downgrade squashfs to 4.5 and things should work again.
We should investigate the breakage with squashfs 4.6 and how to mitigate
The text was updated successfully, but these errors were encountered: