Rockpro64 firmware size

This is more of an inquiry if this sounds correct.

When I install developer image, 21.02.3, or 22.03.0-rc1 onto my rockpro64, the overlay partition is already 60% full.

Filesystem                Size      Used Available Use% Mounted on
/dev/loop0               99.1M     59.2M     39.9M  60% /overlay
overlayfs:/overlay       99.1M     59.2M     39.9M  60% /

39.9M is apparently not enough for me to even run this command first either.
opkg update && opkg install luci-app-samba4 cryptsetup

* pkg_write_filelist: Failed to open //usr/lib/opkg/info/samba4-libs.list: No space left on device.
 * opkg_install_pkg: Failed to extract data files for samba4-libs. Package debris may remain!
 * opkg_install_cmd: Cannot install package luci-app-samba4.

On the other hand I have a netgear r7800 with these 2 apps and a lot more like nfs-kernel-server.

Filesystem                Size      Used Available Use% Mounted on
/dev/ubi0_1              78.4M     36.6M     37.8M  49% /overlay
overlayfs:/overlay       78.4M     36.6M     37.8M  49% /
Package luci-app-samba4 (git-21.295.66822-2e989d8) installed in root is up to date.
Package cryptsetup (2.4.3-1) installed in root is up to date.
Package nfs-kernel-server (2.5.2-1) installed in root is up to date.

Does this math add up to you? I have 39.9M initially free on my rockpro64 device and I can't even install 36.6M of packages according to my netgear r7800?
My rockpro64 has a 32gb emmc using squashfs.

For the time being I am just compiling my own images and changing the partition sizes to 256MB and recompile everytime I need to add or remove a package since I'm still working on it but it slows me down. I'd also like to stick with squashfs for now.

samba is really big, and you can't assume the binaries and libs have the same size for all SoCs.

do a opkg info samba4-libs on both devices.

want to save space, use ksmbd.

ksmbd seems to have its own sets of issues though...

Samba itself on OpenWrt is pretty small but if you have the storage space you might as well go for a distro not targeting embedded hardware.

For comparison looking at my slightly stripped down variant on FreeBSD (aarch64) Samba weights in at around 55Mbyte uncompressed... (about 11Mbyte using lzma compression) and that's without all dependencies. OpenWrt's build is smaller but it's still a good 33Mbyte+ uncompressed (without any python stuff) which is also about what the FreeBSD's variant also would be (and it's not prioritizing size over performance). My point here is even if you try to reduce binary sizes it might not be much of a difference in the end depending on software.

Samba3 is pretty small, Samba4 is huge in comparison ...

Samba3 is also barely usable these days... :wink:

Hence the recommendation to use ksmbd ,)

And to be honest, I found samba to be a PITA to set up, compared to ksmbd, although I do run samba4 on my main router (Fedora).

It's actually very easy https://obihoernchen.net/877/setup-samba-4-on-arch-linux/

Arch Linux! = Openwrt.

I know it's easy, like I said, it runs on my Fedora box, but not as easy on Openwrt, at least using Luci, imho.

Never used LuCI tbh, I have my own smb4.conf template which I use on both FreeBSD and Linux to make my life easier. OpenWrt needs a few extra hacks because I'm lazy and don't want to create users. Pretty sure parts of if are still in the Samba package in OpenWrt =)

Thanks for the info. I kinda thought that the samba libraries were all pre-compiled binaries somewhere and thought the differences in architecture would only be small differences resulting in maybe a few MB difference but apparently they can be greatly different and I will note this.

The performance I am getting out of samba4 on my rockpro64 is really good so I'm going to continue using the image builder to get samba4 working on it.

Ksmbd wont cut it on this server but I always use Ksmbd on my 4 or 8MB portable router builds.

I understand. I put this into my initial install/upgrade script and it takes care of that mess.

if cat /etc/passwd | grep newsambauser;
then echo 'User is already installed!!'
else echo 'newsambauser:*:27685:65534:newsambauser:/var:/bin/false' >> /etc/passwd
fi
smbpasswd -a newsambauser

Afterwards, copy over your config dir/files to the appropriate locations (/etc/config/samba4 /etc/samba/) and enable?,start,and reboot and you're good to go.

Using the image builder, the firmware size can be increased by editing CONFIG_TARGET_ROOTFS_PARTSIZE in .config

$ grep -rn "CONFIG_TARGET_ROOTFS_PARTSIZE" .config
191:CONFIG_TARGET_ROOTFS_PARTSIZE=104
$ sed -i -e 's/CONFIG_TARGET_ROOTFS_PARTSIZE=104/CONFIG_TARGET_ROOTFS_PARTSIZE=504/' .config
$ grep -rn "CONFIG_TARGET_ROOTFS_PARTSIZE" .config
191:CONFIG_TARGET_ROOTFS_PARTSIZE=504

Thanks mj82,

I set my partition size to 256M from the image builder menu and it compiles everything perfectly. I just wanted to use the latest stable build instead of compiling my own but I'm just going to be compiling it myself from now on.

My original inquiry was about if samba4-server was really so large that you can't even install it by itself on a vanilla rockpro64 firmware and yes it is really that large.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.