swishy

swishy

FWUP && VIM3 target - corrupting the written image

Kia ora All, I’m currently porting nerves to the Khadas VIM3 board and have got to the point its booting fine however fwup appears to be corrupting the written image - I have tested both fwup 1.13.2 and fwup 1.14.0 -

Khadas VIM3 (AMLogic A311D)
Mainline U-Boot 2024.01 (512-byte offset for SD card)
MBR partition layout with bootloader at sector 1 (512-byte offset)

Kernel panics with VFS: Unable to mount root fs on unknown-block(179,2)

The generated .fw image however contains a mountable squashfs filesystem
Corruption appears to occur with both mix burn and mix firmware.image - file headers appear intact but data is corrupted on raw_write() to root partition after byte 35 onward. Its reproducible using both zip and xz compression.

At the moment I’m getting a boot-able image by extracting the generated .fw file and using dd to write to sdcard

e.g. dd if=/dev/sda2 of=/tmp/extracted.img bs=512 count=524288

Passing the following in target.ex to use xz compression

config :nerves, :firmware,
mksquashfs_flags: [“-no-xattrs”, “-quiet”, “-comp”, “xz”]

I’m assuming its something stupid I’m doing, any insights would be appreciated.

Dale.

Most Liked

swishy

swishy

Ok funny story - fresh checkout with your fix and it now boots fine using mix burn :melting_face: , feel like the cache gremlins have bitten me again lol

lawik

lawik

Nerves Core Team

How are you flashing the device?

Does it show up as a USB mass storage device or how sre you using fwup/dd to write to it?

fhunleth

fhunleth

Co-author of Nerves

Hi @swishy,

It would be helpful if you could sharing your project that reproduces the issue.

Normally when people report corruption issues, they’re due to having some other part of the fwup.conf overwrite the part that’s getting corrupt. That’s what I’d check.

Using xz or gzip for SquashFS compression shouldn’t make a difference, but I’d stick with gzip to minimize the number of changes you’re making.

Where Next?

Popular in Questions Top

Darmani72
If I have a post route which an argument: post /my_post_route/:my_param1, MyController.my_post_handler How would get the post params ...
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
JeremM34
Hello, how can I check the Phoenix version ? Thanks !
New
minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
Fl4m3Ph03n1x
About me? ( if you have nothing better to do than reading about some random guy in the internet :stuck_out_tongue: ) Hello all, this is ...
New
vrod
I am using the Starship cross-shell prompt – it seems pretty nice, but I get some errors: [WARN] - (starship::utils): Executing command ...
New
sergio_101
I am VERY much an elixir newbie. I have taken one elixir course and one phoenix course on Udemy. During that course, I saw the instructor...
New
nsuchy
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
openscript
Hello! Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New
jononomo
For some reason my phoenix channels are working for me in my local dev environment, but as soon as I deploy via Docker, I get a 403 error...
New

Other popular topics Top

aadeshere1
I have a another noob question about loop. Since elixir is immutable, while loop is not directly possible. total = 10 while total != 0 ...
New
chrismccord
Phoenix 1.4.0 released Phoenix 1.4 is out! This release ships with exciting new features, most notably with HTTP2 support, improved deve...
688 31013 112
New
minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
jay1
Why is it that the mnesia database isn’t the most preferred database for use in Elixir/Phoenix?
New
joeerl
Hello again - after a longish gap I’ve decided I really must dig into Elixir and see what’s been happening here - so I have a few questio...
New
RisingFromAshes
I’ve read in another post that it may be possible with a router helper - but I couldn’t find an appropriate one, and tbh, I’m still just ...
New
sergio_101
I am VERY much an elixir newbie. I have taken one elixir course and one phoenix course on Udemy. During that course, I saw the instructor...
New
KronicDeth
Elixir plugin for JetBrain’s IntelliJ Platform (including Rubymine) This is a plugin that adds support for Elixir to JetBrains IntelliJ...
289 36352 110
New
shijith.k
I am trying to start a new phoenix project with elixir 1.9, but mix phx.new does not work. It says that ** (Mix) The task "phx.new" could...
New

Latest on Elixir Forum

Elixir Forum

We're in Beta

About us Mission Statement