I have recently got a fujitsu futro s920 with a AMD GX-222GC and 4gb of ram, added an Intel PRO/1000 dual nic card and got my new 1gbit router.
When installing i came across the realisation that there are 2 options, squash-fs and ext4, and each had advantages and downsides.
I chose squshfs because i wanted to be able to sysupgrade without stress, to restore defaults and basically do everything all my cheap flashed openwrt routers were able to do .
Now my question is, is there a simpler way of getting a x86 openwrt router with sysupgrade, ability to restore defaults and maybe not have to resize partitions without squashfs?
I am more than certain that my understanding is not complete, i don't understand why you would use the ext4(combined) method if you wouldn't be able to upgrade.
The reason behind the question is that i would like to be sure that i made the correct decision and maybe optimise stuff here and there.
Thank you for any help or explanation
consider Sysupgrade help for x86_64 - #14 by frollic
then use the online image builder to create a rootfs image containing the packages you need (the guide assumes you're using the standard one, but you can wget a customized image too).
copy the config from the live partition, to the partition of the new version (just mount the new one in the current one)
reboot into the new openwrt, once done.
if you have a fairly static setup, use root=/dev/sdX instead of root=PARTUUID=, in grub.
put it all in a script, and save it in /boot, since it never gets overwritten.
wget the image, zcat it onto the partition, and trigger the script.
you could just as easily run two squashfs partitions, instead of ext4, and they should
be easier to extend, if they're not resized on a live system.
just don't use the combined images, they will always reset your partition layout.
Hi I know you mien well, but to a noobie you could be talking about picking up Dog poop or scrubbing your back in the shower. There is no reel explanation here.
Like where you say "boot in to the new one" What does that mien. new what? Just what are we doing? Thanks for taking the time to answer and I am not trying to be a asshole.
Good god the discussion escalated quickly, we are talking dog poop and stuff, kinkyWRT.
I am by no means a noob, i have a proxmox cluster at home and a lot of other network dependent devices that needed a sturdy router, i am familiar with openwrt , more than I am with pfsense or opnsense or vyos....the list goes on.
The reason for the question is because i liek to automate updates using ansible, preferably with the gitops way of doing things, and i wanted to know if this could be done with openwrt as well.
I kinda got a plan, and i also found some ansible modules for openwrt. @frollic Thank you for the reply and explanations @tapper thank you for making me spit my coffee :)))))
If, like me, you run a custom build, the ext4 is much easier. I have one boot partition and two partitions for root filesystems.
To upgrade, I nuke the unused 2nd root partition and untar just the ext4 root filesystem. Then copy the new kernel to the boot partition and edit the grub config to add a new entry. This way I can upgrade without trashing my running system and can drop back to it if needed.
The upgrade takes just a short few minutes as my build system pulls the config off my live router and bakes it into the image I untar
Not if I want to keep the old kernel so I can boot the prior version of OpenWRT I had installed
EDIT: I should have specified that my build has extensive kernel mods in it (a port of Intel's Quick Assist drivers) that I sometimes fiddle with, so it's desirable I keep at least one known-to-be-working-properly kernel
I have a single boot partition. The grub always has two entries, one for each of the custom builds I have installed. I have an install script that adds the grub entry and removes the old one in the grub config
if you always use (for example) kernel.part1 and kernel.part2 as file names for the kernel,
and root=/dev/sda2 and root=/dev/sda3 in grub, you don't have to change grub at all,
exepct for the default boot entry setting.
Ahhh....there's actually a good reason for that. I identify my kernels by the git release otherwise I have to boot it and look in /etc/openwrt_release to work out what version I'm booting. This way, I know which version it is even before I boot it. My grub.cfg should make it clear
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1 --rtscts=off
terminal_input console serial; terminal_output console serial
set default="0"
set timeout="10"
set root='(hd0,msdos1)'
menuentry "OpenWrt master (/dev/sda2) r16346+14-87046e87e2" {
linux /boot/openwrt-master-snapshot-x86-64-vmlinuz-r16346+14-87046e87e2 root=/dev/sda2 rootfstype=ext4 rootwait console=tty0 console=ttyS0,115200n8 noinitrd intel_idle.max_cstate=4
}
menuentry "OpenWrt master (/dev/sda3) r15724+10-1f559cafe5" {
linux /boot/openwrt-master-snapshot-x86-64-vmlinuz-r15724+10-1f559cafe5 root=/dev/sda3 rootfstype=ext4 rootwait console=tty0 console=ttyS0,115200n8 noinitrd intel_idle.max_cstate=4
}
Yeah, that would work but then it wouldn't show the git release number in the grub menu, so I'd still have to boot it to know what version I'm running, either looking at the kernel name or checking /etc/openwrt_release
Yeah, mine's anything BUT the stable version. I work with master and ten years ago, it used to have 94 commits on top of the base repo, although over time a lot of those commits have become unnecessary as the issues were fixed and now I have 14 custom commits.
Perhaps more importantly, my kernel has a port of Intel's Quick Assist technology in it - this includes an extensive amount of kernel code, including 5 kernel modules and a whole bunch of userspace stuff. It's easy to break things when tinkering with kernel code, so knowing what version I'm booting is quite important to me when testing new builds.