Remix.run Logo
hagbard_c 3 days ago

I run OpenWRT on a 'big' device, this being a container on a Proxmox-managed DL380 G7. It works fine in this context, performance is good enough to be able to easily saturate the gigabit fibre link without breaking into a sweat.

Installing OpenWRT on such a device comes down to downloading openwrt-${version}-x86-64-rootfs.tar.gz and unpacking it in the target location. Boot the container or VM (or old PC or whatever) and follow the normal OpenWRT configuration procedure. Updating such an installation comes down to making a configuration backup in OpenWRT, unpacking the new distribution and restoring the configuration backup to the new install. Given the low resource requirements for such an installation it makes sense to first clone the working container or VM and performing the upgrade on one of the instances so you always have a working instance at hand.

zokier 3 days ago | parent [-]

Sure, openwrt works. I too have run it on x86 vm at a time. That being said, there is lot that could be improved. My biggest gripe is the weird filesystem layout with overlays and stuff in /tmp and whatnot. I can see it being needed on tiny devices, but on bigger ones can I just have regular ext4/xfs gpt partitions please? Another thing is just replacing the tiny versions of software with regular ones, like busybox->gnu or dropbear->openssh etc. Systemd could be at least considered as init.

All of this kind of things make sense when you consider openwrts origins. But on "big" system I'd just much rather have it be closer to "normal" Linux.

hagbard_c 9 hours ago | parent [-]

OpenWRT on x86_64 does not use overlay mounts, here's an overview of a current instance running in a Proxmox-managed container:

   /dev/mapper/pve-vm--500--disk--0 on / type ext4 (rw,relatime,stripe=512)
   none on /dev type tmpfs (rw,relatime,size=492k,mode=755,uid=100000,gid=100000,inode64)
   proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
   ... more proc mounts...
   sysfs on /sys type sysfs (ro,nosuid,nodev,noexec,relatime)
   ... more sysfs mounts
   fusectl on /sys/fs/fuse/connections type fusectl (rw,nosuid,nodev,noexec,relatime)
   udev on /dev/net type devtmpfs (rw,nosuid,relatime,size=65960672k,nr_inodes=16490168,mode=755,inode64)
   none on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime)
   lxcfs on /proc/cpuinfo type fuse.lxcfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other)
   ... more lxcfs mounts
   udev on /dev/full type devtmpfs (rw,nosuid,relatime,size=65960672k,nr_inodes=16490168,mode=755,inode64)
   ... more udev mounts
   devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=100005,mode=620,ptmxmode=666,max=1026)
   ... more devpts mounts
   none on /proc/sys/kernel/random/boot_id type tmpfs (ro,nosuid,nodev,noexec,relatime,size=492k,mode=755,uid=100000,gid=100000,inode64)
   tmpfs on /tmp type tmpfs (rw,nosuid,nodev,noatime,uid=100000,gid=100000,inode64)
No overlays, just a normal ext4 filesystem. Data in /etc is stored in /etc, data in /var is stored in /var, etc. OpenWRT running from a filesystem image is 'just another Linux distribution which happens to run the same software as that re-flashed router'.