Turris OS Compile Standard Config File

Hello,

I’d like to compile the Turris OS and also downloaded the sources and if I do make menuconfig then I don’t have the pre selected packages that are already installed on the router. Can you provide me the .config file with the preselcted packages?

Thank you.

https://raw.githubusercontent.com/CZ-NIC/turris-os/test/configs/omnia

Thanks for the Config File. I have applied it but some packages are missing like the openssh server and it doesn’t enable all packages that are currently installed on the router.

have you checked [SOLVED] Cant build turris-os ?

I have the same issue as hitman22

The config for the compile as described [SOLVED] Cant build turris-os doesn’t include all the packages.
The config as mentioned in https://raw.githubusercontent.com/CZ-NIC/turris-os/test/configs/omnia contains a few more, but still missing a lot of packages.

My built omnia-medkit is only approx 22MB compared to the official downloaded one at 42MB

Examples of what I’m missing in my build (not enabled in the config, but I can find them in the official omni-medkit download):

  • all the /sbin/lv* tools
  • lxc
  • etherwake
  • hd-idle
  • ntfs-3g
  • sshfs
  • collectd
  • ddns
  • all the libav* modules
    etc

Anyone having the FULL config to rebuild the Omni Code or has any idea on what’s going wrong?

USE_CCACHE=1 ./compile_omnia_fw -j 2 LOGFILE=1 BUILD_LOG=1 IS_TTY=1

Does adding BUILD_ALL=1 help?

Thanks, I’ll try and report back
USE_CCACHE=1 ./compile_omnia_fw -j 2 LOGFILE=1 BUILD_LOG=1 IS_TTY=1 BUILD_ALL=1

Should know in a few hours… (compiling takes its time)

I think it should be in front but i am not sure. You could check in the .config if it differs.

Just checked the .config with

USE_CCACHE=1 ./compile_omnia_fw -j 2 LOGFILE=1 BUILD_LOG=1 IS_TTY=1 BUILD_ALL=1

and still don’t see lxc enabled:

# CONFIG_PACKAGE_lxc is not set

Trying the syntax

BUILD_ALL=1 USE_CCACHE=1 ./compile_omnia_fw -j 2 LOGFILE=1 BUILD_LOG=1 IS_TTY=1

shows it enabled:

CONFIG_PACKAGE_lxc=y

and a lot more enabled. I’m building now and will compare the medkit again afterwards.
(and report back)

Thanks for the help.

UPDATE:
Didn’t work. This seems to try building all packages and fails compiling (at least) oprofile package - and probably others as well (If I get it across this one).
So the quest is still open to find the “official” config for the build…

Most of the missing packages can be found here https://github.com/CZ-NIC/turris-os-packages

If not all package build or are required it is still possible to use the

make menuconfig

to configure things and

make -j

to build everything. During config the btrfs root.tar.gz image must be selected. That file must be renamed to omnia-medkit-latest.tar.gz.

I’m familiar with the normal OpenWRT Build.

However, I’ve tried to rebuild the omni-medkit-latest.tar.gz in the same config as built by cz.nic - with the same config.
And I can’t find the config anywhere.

What I’m actually looking for is the .config as used by the “official” build and the script/commandline to build it.

The git doesn’t seem to include the config (The git included has far less packages included into the medkit image)

Take a look at compile_fw.

# On Omnia full build generate a minimal image as well and use it for base list
        if [ -n "$BUILD_ALL" ] && [ "$TARGET_BOARD" = omnia ]; then
        	make dirclean
        	cat configs/common configs/$TARGET_BOARD | sed -e "s|@BOARD@|$TARGET_BOARD|" -e "s|@BRANCH@|$PKG_BRANCH|" > .config
        	echo CONFIG_ALL_KMODS=y >> .config
        	cat "lists/base.list" "lists/base.${TARGET_BOARD}" | sed 's|#.*||' 2> /dev/null | while read PKG; do
        		if expr "$PKG" : CONFIG_;then
        			echo "$PKG" >> .config
        		elif [ -n "$PKG" ]; then
        			echo "CONFIG_PACKAGE_$PKG=y" >> .config
        		fi
        	done
        	make_defconfig
        	make "$@" PKG_BRANCH=${PKG_BRANCH/-/}
        	mv bin/mvebu-musl/openwrt-mvebu-Turris-Omnia-rootfs.tar.gz bin-nand/mvebu-musl/medkit/omnia-medkit-`date -d "$COMMIT_DATE" +%Y%m%d%H%M`-minimal.tar.gz
        	OPKG_STATUS="`ls -1d build_dir/target-arm_*/root-mvebu*/usr/lib/opkg/status`"
        	ln -s omnia-medkit-`date -d "$COMMIT_DATE" +%Y%m%d%H%M`-minimal.tar.gz bin-nand/mvebu-musl/medkit/omnia-medkit-latest-minimal.tar.gz
        else

It is basically an merge of these two files


2 Likes

Thanks a lot for your help. I finally found (part of) the issue:

The compile_fw scripts build the nand and the nor files and with different config. The larger nand is built first, then the config is reset and the nor image is built. So the .config at the end of the process reflects the smaller (rescue) nor image.

The nand image actually works fine. I flashed it to my router (using the usb stick method and mode 4 as described on https://www.turris.cz/doc/en/howto/omnia_factory_reset .

The image built with USE_CCACHE=1 ./compile_omnia_fw -j 2 LOGFILE=1 BUILD_LOG=1 IS_TTY=1 is still much smaller (22MB) compared to the “official” download. Somehow there is an extra step where they include various packages in the rescue medkit which is available for download.
In my case, the router just downloaded all the extra package during the initial setup. Takes a bit longer and a bit more
bandwidth, but it does work fine.

So for everyone else:

  • Ignore the size difference. The smaller image is fine and will work (and download the extras)
  • Don’t use BUILD_ALL=1. You’ll waste a lot of time debugging why some packages don’t build for the Omnia (and you probably don’t care about these packages
2 Likes

hi, @mwinter
Can you tell me what target image format you use? I cannot generate ext4, but it’s fine to generate tar.gz, btrfs and squashfs. However when I try to put btrfs image to usb with mode 4, it doesn’t work. thanks.