multigcs / riocore

riocore
GNU General Public License v2.0
22 stars 7 forks source link

Add docker container that supports flashing for oss-cad-suite toolchain #26

Closed digiexchris closed 1 month ago

digiexchris commented 1 month ago

I was trying to run riocore using the gateware toolchain on Ubuntu 24.04 but ran into some incompatibilities with libreadline that GW did not ship. I decided that instead of working around that, I'd make a docker container for icestorm instead. I then discovered you already had a container that worked pretty well, but couldn't flash the device on the host.

I made a few quality of life improvements to hopefully help out the less linux savy users. I didn't see a way to easily switch toolchains so I included another boardconfig for the TangNano9k that has the toolchain switched to icestorm, as an example. If there's a better way to do this, please let me know!

Mounting a volume for the FTDI adapter inside the tang nano was required, hence the volume for /dev:/dev, and in order to do that, the container needs to be priviledged.

In order for the gui to work under more strict x sessions, xhost localhost:root was required (in the Makefile). I think this is probably safe enough for most people.

multigcs commented 1 month ago

i take a look tomorrow, but have add a toolchain selector to the setup gui. or simply add

"toolchain": "icestorm",

to your config.json

digiexchris commented 1 month ago

thanks I knew there must be an easy way to set toolchain, it works good in my personal config! I have removed the board config I added, and also added an optional parameter for passing a config to rio-setup.

make docker-run CONFIG=./config.json