HI,
I need to add a few kernel drivers to the Ubuntu distribution on the BeagleV-Fire in order to support a custom CAPE. All of the fabric is now working but the sw side needs the kernel drivers (and potentially some other parts).
However it is not clear what the build platform is for these steps
(on the target or via cross-compilation on some other system… personally I tend to use Linux VMs).
What the dependencies are (for instance my attempt at cross-compilation fails due to missing riscv tools, elf tools, genimage and few other bits).
And for the list of steps that you have covered, what is the anticipated sequence to rebuild, run menuconfig to add kernels modules and spit out an image suitable for reprogramming the mmc?
I think that you have just noted working sequences but I am trying to find a sequence that will achieve the desired output. Cyril suggested contacting you via the forum…
Thanks, that was really helpful… looking through the docket scripts now…
[Basically, I really just want to run the build steps manually on my local development host… modifying the kernel to include some drivers that I would like… and ultimately generating a new mmc image ready for burning onto the target… KISS … the neat but elaborate docker process can end up obfuscating some of what should/could/may be a simple process]…
Hi, I’ve been trying to rebuild the Ubuntu image (for BeagleV Fire) but have encountered a number of issues. Bit of a newbie so I might be missing something obvious?
I had updated the board (gateware) using the instructions at https://docs.beagle.cc/latest/boards/beaglev/fire/demos-and-tutorials/gateware/upgrade-gateware.html. That all booted just fine with the stock image and updates applied.
My build platform is Ubuntu 24.04. I cloned the repo: git clone https://openbeagle.org/beaglev-fire/BeagleV-Fire-ubuntu.git.
*** No rule to make target 'firmware/regulatory.db', needed by 'drivers/base/firmware_loader/builtin/regulatory.db.gen.o'. Stop.. Fixed by downloading and copying these files into linux/firmware.
cp: cannot stat './arch/riscv/boot/dts/microchip/mpfs-beaglev-fire.dtb': No such file or directory. Fixed by adding dtb-$(CONFIG_SOC_MICROCHIP_POLARFIRE) += mpfs-beaglev-fire.dtb to linux/arch/riscv/boot/dts/microchip/Makefile
After this I get an sdcard image. The second issue is when I flash this to the board the linux hangs part way through the boot process (output below). If I take the image built from the repo (https://openbeagle.org/beaglev-fire/BeagleV-Fire-ubuntu/-/jobs) this works just fine.
So my questions are:
Why isn’t my build process just working like it seems to for the docker on the repo?
Why doesn’t my image work as it is built by the same process as the docker script?
Just to confirm I had run scripts 01 - 07 in order as per the script in the docker file (https://openbeagle.org/beaglev-fire/BeagleV-Fire-ubuntu/-/blob/main/.gitlab-ci.yml?ref_type=heads)
Very interesting! You fought bravely to get to where you are now.
I tried the same as you, but I ended up setting up docker and
snagging the image Robert set up for us already. Smooth sailing from there.
The very next thing you should expect to see is the Serial ports initializing,
which leads me to suspect a faulty device-tree or some of your settings in “.config”.
If you break u-boot, you can type in the commands from boot.scr and do a fdt print
just before you execute the last bootm go command to see the loaded DT.
It looks like I need to do this; my BeagleV Fire won’t update over the air because Ubuntu “lunar lobster” is end of life. I have a host system that’s Fedora Silverblue. I can host any container image, either with Docker or Podman.
Is there an image in a repository I can pull, or do I need to do a docker build?
I can use either Debian or Ubuntu on the Fire. My preference is Ubuntu 24.04 because updates will be there till April 2029, but if Debian stable is an option that’s OK. Can I use the image to build either, and how do I configure it to select the distro?
Thanks!! For some reason, Balena Etcher said the flash failed (Windows 11) but the board came back up in Ubuntu 24.04 LTS and everything seems to be working.
I tried that - ran into broken packages and apt was quite unhappy. I ended up re-flashing with a nightly image and everything seems to be working, albeit quite slowly.
I’m a little leery of trixie; how long before it goes stable?
Thanks! I can wait; I barely have time to troubleshoot my own code these days. Testing trixie on RISC-V would be a distraction. But I’d run bullseye if it’s available; I’m using that on some other devices.
I tried that too - still got apt / dpkg in a corrupted state and don’t know why. I simply don’t have the time to troubleshoot stuff that worked when I bought the board.
on 24.04 double check snapd isn’t running… it was pre-installed in the original image, but forcefully disabled, ubuntu might have forced it to be renabled…