4 ms·
What about manual pre-provisioning? I just found out a few days ago that you can't pre-provision wifi via placing wpa_supplicant.conf in /boot any more, you now
by mschuster91 1y ago
What about manual pre-provisioning? I just found out a few days ago that you can't pre-provision wifi via placing wpa_supplicant.conf in /boot any more, you now need to use that GUI provisioner.
I appreciate that RPi is trying to make the ecosystem more accessible for newcomers - but not at the cost of power users, please!
- giobox 1y agoI had to go and read the docs to confirm this was true, I'm really surprised this has been removed (since Raspian Bookworm apparently). It was a ridiculously common way to configure wifi on RPis over the last decade! It's the little paper cuts like this that really hurt on a platform who's original aims were to target the education market, there is still a mountain of tutorials online advising to drop in that file for wifi setup.
- fn-mote 1y ago> a mountain of tutorials online advising to drop in that file for wifi Cannot emphasize this enough. People with barely enough knowledge (“script kiddies” so to speak) are configuring and using RPi’s. They just want to follow the tutorial and get it working so they can do what they really want. (Eg image processing or run their 3D printer.) Nothing against this kind of user. I help them when, but… This creates a situation where “the wrong tutorial” problem is unnecessarily easy to stumble on.
- sq_ 1y agoNetworking on Linux in general seems to be very susceptible to "wrong tutorial" in recent years, what with distros switching between different network control suites. So far, I've been a big fan of netplan (which I guess is tied in with cloud-init?). Dropping a YAML file that declares the network setup I want and lets a swappable renderer make it so on the backend is a nice change from the brittle-over-time series of commands that it took previously.
- supercoffee 1y agoI recently needed to create some heavily customized pi images for a fleet of Iot devices. I came across this tool that did the job nicely. Only downside is that it only works on Linux. https://github.com/gitbls/sdm https://github.com/gitbls/sdm
- exasperaited 1y agoGood news: rpi-imager --cli Has really expanded options over the previous versions. Including: --first-run-script <first-run-script> --cloudinit-userdata <cloudinit-userdata> --cloudinit-networkconfig <cloudinit-networkconfig> Though it doesn't support the old simple config text file, presumably most of that is replaced by cloudinit network config. I am guessing this is available in the Windows version. I am seeing this from the macOS binary.
- mschuster91 1y agoYeah but I really really don't like tools doing black magic to be honest, I'd like some documentation what it does. And if it is just cloud-init, no big deal, I already know more than I'd ever wanted about this particular piece of annoyance from wrestling with AWS, just tell me what exactly the Pi userland expects me to hand to cloud-init... Thanks anyway for digging into the source, really appreciated!
- exasperaited 1y agoAlas I don't know much more than that; I only remembered about the CLI bit in 1.x and went to check it was still there. You may be able to build exactly what you want with the image generation tools, as it goes: https://github.com/raspberrypi/rpi-image-gen https://github.com/raspberrypi/rpi-image-gen https://github.com/RPi-Distro/pi-gen https://github.com/RPi-Distro/pi-gen Customising the OS with pi-gen is not that bad. It's an idiosyncratic tool but it works; I've not used the newer rpi-image-gen stuff.
- akerl_ 1y agoIt feels odd to complain about "tools doing black magic" when the new way is "cloud init, a tool used by a ton of infra platforms" and the old way is "drop a file in this directory and it will somehow get slurped into the right space at the right time".
- ahepp 1y agoIsn't cloud init just slurping its own config file, then generating the "real" config files and slurping those into the right spaces? To me, "copies a file named wpa_supplicant.conf from /boot to /etc on first init" is simpler than "parses some yaml, the generates /etc/wpa_supplicant". Maybe I'd find it worthwhile if I had encountered cloud init years ago before I invested in learning the other 900 linux networking configuration tools, but now it just feels like a case of XKCD 927 (+1 competing standards). If cloud init is even better, it definitely doesn't seem 10x better to be worth the change.
- pm 1y agoI don't think wpa_supplicant.conf has been used for sometime, as they moved to cloud-init for bootstrapping. It requires the network-config file instead, the format of which is documented on the cloud-init documentation page. I happen to have been experimenting with this for the past few weeks, and the most persistent issue was getting wi-fi to work correctly. It's quite a common issue, with any number of hacks. I offer my own network-config below, though I've only tested it with provisioning Ubuntu Server on the RPis so far (I have two 3B+s). network: version: 2 renderer: networkd wifis: wlan0: regulatory-domain: "AU" dhcp4: true dhcp6: false optional: false access-points: "<access-point-name>": password: "<password>" The important parts are: 1. The renderer, as the default is NetworkManager, which doesn't work correctly with RPis (at least on Ubuntu Server). It may work with RPiOS, but I haven't tested it yet. 2. The regulatory domain, the lack of which is what disables wi-fi in the first place. I forget how much testing I did with the format, but I believe it must be uppercase (I don't remember about quoting the string, however). 3. Disabling IPv6 may be relevant, though unlikely. It was just in a working configurations I found; I just haven't had time to confirm it. The relevant line in my user-data file is as follows: bootcmd: - sysctl net.ipv6.conf.all.disable_ipv6=1 The rest of the configuration is standard, though I purposefully made the wi-fi non-optional so I could confirm that wi-fi worked (my only Internet at the moment is through my iPhone hotspot, which was another source of issues, but that's a whole other story). NB. According to someone else, the imager has the respective command line options for user-data and network-config, which I didn't know.
- ahepp 1y agoI've been using buildroot for my Pis, and adding a config script to /etc/init.d that can copy over whatever config files you want from /boot