MapToPoster is a free Python project that you can use to create maps that are worthy of being hung on your wall. It uses OpenStreetMap data to render the same style of striking minimalist maps you see advertised on social media, while giving you control over the exact map location, scale, and colors used.
Once the project has been installed, you can use a simple text command to create portrait PNG files of around 3630x4830 pixels in size (at a density of 300 dpi).
I tried this a few weeks ago, and my main complaint was that it wasn’t caching the map files. Looks like that’s fixed now: https://github.com/originalankur/maptoposter/issues/10



Local print shop that deals with large/poster prints. They’ll usually be happy with a high enough resolution PNG, and can advise you on what’s the best way to print in the physical size you want - what material to print onto, what printing approach to use, what finish to do, how to frame it, etc.
I work at a print shop and all our printer drivers require PDFs, so use those if you want something printed please. We can convert as need be, but PDF is always preferred.
Every worthwhile print shop has staff that can do the conversion to meet the needs of their specific printers.
And getting vector files out of OSM data shouldnt be too hard either.