THX for your reply!
i'll check it out and report back.
THX for your reply!
i'll check it out and report back.
(i know this is not "officially supported" but i'd still like to do it this way.)
i use LE in a multiboot-config with linux and grub on an x86_64-PC. Ususally i use one BTRFS-filesystem and each (Linux-)OS (or rather its rootfs) resides in its own subvolume there; one install maintains grub but its config (grub.cfg) is simple (just a couple of lines per distro) and can easily be adapted. Homedirs, mediafiles etc ususally reside on a different btrfs-disk in their own subvols.
i'd like to have one subvol for LE which contains both KERNEL and SYSTEM and LE_DATA (/storage) in its own subvol.
the following config works:
KERNEL is inside /boot of one distro, SYSTEM is in btrfs-subvol in extra-partition (sda2, btrfs, labelled LE_DATA) and this is also mounted as storage. the media-dirs on the other disk are easily accessible inn /var/media/somwhere....)
grub.cfg:
# 20210824 medi + LE
set timeout=5
menuentry ' :: KODI on GENTOO :: ' {
set root=(hd0,gpt1)
linux /GENROOT/boot/5.13.12 root=/dev/sda1 rootflags=subvol=GENROOT rootfstype=btrfs net.ifnames=0
}
menuentry 'LibreELEC' {
linux (hd0,gpt1)/GENROOT/boot/KERNEL boot=/dev/sda2 disk=/dev/sda2 rootfstype=btrfs
}
sda2 ist labelled LE_DATA and its default-subvol is also LE_DATA
i'd like to keep KERNEL and SYSTEM in their own subvol.
configuring grub to boot
is probably no problem but i don't know how to configure the remaining parts.
considering the pxeboot/NFS-documentation i think it's quite flexible but i do not know the parameters/syntax.
is there an doc or can anybody tell me sth. about the APPEND=-statement ?
THX for your input!
thx for your reply!
i just commented out the whole function in build.LibreELEC-Generic.x86_64-9.0-devel/qemu-2.8.1/util/memfd.c that would not compile and everything compiled.
i'll see if it runs later.
the system builds almost to the end on debian buster but fails when building quemu:
CC stubs/migration-colo.o
/home/ice/le/LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.0-devel/qemu-2.8.1/util/memfd.c:40:12: error: static declaration of 'memfd_create' follows non-static declaration
static int memfd_create(const char *name, unsigned int flags)
^~~~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/bits/mman-linux.h:115:0,
from /usr/include/x86_64-linux-gnu/bits/mman.h:45,
from /usr/include/x86_64-linux-gnu/sys/mman.h:41,
from /home/ice/le/LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.0-devel/qemu-2.8.1/include/sysemu/os-posix.h:29,
from /home/ice/le/LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.0-devel/qemu-2.8.1/include/qemu/osdep.h:104,
from /home/ice/le/LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.0-devel/qemu-2.8.1/util/memfd.c:28:
/usr/include/x86_64-linux-gnu/bits/mman-shared.h:46:5: note: previous declaration of 'memfd_create' was here
int memfd_create (const char *__name, unsigned int __flags) __THROW;
^~~~~~~~~~~~
make[1]: *** [/home/ice/le/LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.0-devel/qemu-2.8.1/rules.mak:60: util/memfd.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory '/home/ice/le/LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.0-devel.hare-mintmix/qemu-2.8.1/.x86_64-linux-gnu'
Makefile:9: die Regel für Ziel »release« scheiterte
Display More
do you have any idea how to fix this? please consider my other (related) post about this.
THX for your input!
when i try to build for x86_64 on debain buster the build fails right at the beginning with the following error:
mv -f .deps/read.Tpo .deps/read.Po
/usr/bin/gcc -O2 -Wall -pipe -I/home/ice/le/LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.0-devel/toolchain/include -Wno-format-security -Wl,--export-dynamic -Wl,-rpath,/home/ice/le/LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.0-devel/toolchain/lib -L/home/ice/le/LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.0-devel/toolchain/lib -o make ar.o arscan.o commands.o default.o dir.o expand.o file.o function.o getopt.o getopt1.o guile.o implicit.o job.o load.o loadapi.o main.o misc.o posixos.o output.o read.o remake.o rule.o signame.o strcache.o variable.o version.o vpath.o hash.o remote-stub.o glob/libglob.a -ldl
glob/libglob.a(glob.o): In function `glob_in_dir':
glob.c:(.text+0x2ae): undefined reference to `__alloca'
glob.c:(.text+0x41e): undefined reference to `__alloca'
glob.c:(.text+0x5b8): undefined reference to `__alloca'
glob.c:(.text+0x618): undefined reference to `__alloca'
glob/libglob.a(glob.o): In function `glob':
glob.c:(.text+0x8fb): undefined reference to `__alloca'
glob/libglob.a(glob.o):glob.c:(.text+0xfba): more undefined references to `__alloca' follow
collect2: error: ld returned 1 exit status
Makefile:655: recipe for target 'make' failed
make[3]: *** [make] Error 1
make[3]: Leaving directory '/home/ice/le/LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.0-devel/make-4.2.1/.x86_64-linux-gnu'
Makefile:798: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/home/ice/le/LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.0-devel/make-4.2.1/.x86_64-linux-gnu'
Makefile:534: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/ice/le/LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.0-devel/make-4.2.1/.x86_64-linux-gnu'
Makefile:9: die Regel für Ziel »release« scheiterte
make: *** [release] Fehler 2
Display More
can this have sth. to do with the (recently updated) gcc-version? about a month ago everything used to compile.
ice@rice:~/le/LibreELEC.tv$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 7.3.0-16' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --with-as=/usr/bin/x86_64-linux-gnu-as --with-ld=/usr/bin/x86_64-linux-gnu-ld --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 7.3.0 (Debian 7.3.0-16)
as a (dirty) workaround i built the first part on linux mint 18.3 , then compiles almost to the end up to this quemu-error on this debian release.
any idea/workaround?
THX for your input!
THX for your replies and sorry for getting back so late - this is kind of a sparetime-project for me.
On Gentoo i just never get past the squashfs-error - no matter what i try and docker is a complex beast (which - among other things - made me recompile the kernel MANY times on my gentoo-buildhost).
But i just successfully built under Debian Buster (the recommended Ubuntu is just not for me) which easily installed in a btrfs-subvol using dev-util/debootstrap from portage. So i'm happy right now and maybe i'll try building on Gentoo some other time.
THX for your reply and sorry for getting back so late - it's kind of a sparetime project.
Quotebuild inside a docker container, then we don't have to accommodate all the weird stuff in a Gentoo install.
after never getting past this error no matter what and where i tried, i installed docker and tested what you suggest. Docker really adds several more layers of complexity that all have to be mastered first but i got LE to compile once. Since then - different errors during compilation.
Additionally, before i can even start building inside docker, weird things happen, eg git pull requires lots of perms to be (re)set and files (often package.mk) to be deleted manually. This is not necessary outside of the docker container.
So, the proposed solution does not (really) work for me (and docker is also too time-consuming and remains opaque to me.)
BUT I've been successfully building under Debian Buster the regular way - so problem solved:
~/le/LibreELEC.tv$ ls -alhs target/
insgesamt 233M
0 drwxr-xr-x 1 ice ice 438 Feb 23 11:26 .
0 drwxr-xr-x 1 ice ice 374 Feb 23 11:26 ..
14M -rw-r--r-- 1 ice ice 14M Feb 23 11:26 LibreELEC-Generic.x86_64-9.0-devel-20180223091656-r28166-gc06f971a6.kernel
132M -rw-r--r-- 1 ice ice 132M Feb 23 11:26 LibreELEC-Generic.x86_64-9.0-devel-20180223091656-r28166-gc06f971a6.system
88M -rw-r--r-- 1 ice ice 146M Feb 23 11:26 LibreELEC-Generic.x86_64-9.0-devel-20180223091656-r28166-gc06f971a6.tar
well that sounds nice but for a long time i've been running into this squashfs error:
mksquashfs.c: In function 'create_inode':
mksquashfs.c:993:24: error: called object 'major' is not a function or function pointer
unsigned int major = major(buf->st_rdev);
^~~~~
mksquashfs.c:993:16: note: declared here
unsigned int major = major(buf->st_rdev);
^~~~~
mksquashfs.c:994:24: error: called object 'minor' is not a function or function pointer
unsigned int minor = minor(buf->st_rdev);
^~~~~
mksquashfs.c:994:16: note: declared here
unsigned int minor = minor(buf->st_rdev);
^~~~~
mksquashfs.c:1017:24: error: called object 'major' is not a function or function pointer
unsigned int major = major(buf->st_rdev);
^~~~~
mksquashfs.c:1017:16: note: declared here
unsigned int major = major(buf->st_rdev);
^~~~~
mksquashfs.c:1018:24: error: called object 'minor' is not a function or function pointer
unsigned int minor = minor(buf->st_rdev);
^~~~~
mksquashfs.c:1018:16: note: declared here
unsigned int minor = minor(buf->st_rdev);
^~~~~
mksquashfs.c: In function 'dir_scan2':
mksquashfs.c:3557:17: warning: implicit declaration of function 'makedev' [-Wimplicit-function-declaration]
buf.st_rdev = makedev(pseudo_ent->dev->major,
^~~~~~~
make[1]: *** [<builtin>: mksquashfs.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory '/mnt/backup/.wsamin/le/LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.0-devel/squashfs-1a6ffc7/squashfs-tools'
make: *** [Makefile:9: release] Fehler 2
Display More
see my post about this
i run this on a pretty much up-to-date ~amd64-system.
i even installed docker to try to compile libreelec inside the "ubuntu-chroot" but after adding several more layers of complexity it does not compile there, either (different errors, not squashfs.)
do you happen to have any idea about how to fix the squashfs-error?
i build libreelec from source on a gentoo-system with (host)gcc 7.2.0 (gcc-Version 7.2.0 (Gentoo 7.2.0 p1.1))
for some months now compilation has been failing at the same point with the same error:
(...)
patching file squashfs-tools/zstd_wrapper.h
BUILD squashfs (host)
TOOLCHAIN manual
(...)
/mnt/backup/.wsamin/le/LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.0-devel/toolchain/bin/host-gcc -O2 -Wall -pipe -I/mnt/backup/.wsamin/le/LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.0-devel/toolchain/include -Wno-format-security -I. -I/mnt/backup/.wsamin/le/LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.0-devel/toolchain/include -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DCOMP_DEFAULT=\"gzip\" -Wall -DGZIP_SUPPORT -DXZ_SUPPORT -DLZO_SUPPORT -DZSTD_SUPPORT -c -o zstd_wrapper.o zstd_wrapper.c
mksquashfs.c: In function 'create_inode':
mksquashfs.c:993:24: error: called object 'major' is not a function or function pointer
unsigned int major = major(buf->st_rdev);
^~~~~
mksquashfs.c:993:16: note: declared here
unsigned int major = major(buf->st_rdev);
^~~~~
mksquashfs.c:994:24: error: called object 'minor' is not a function or function pointer
unsigned int minor = minor(buf->st_rdev);
^~~~~
mksquashfs.c:994:16: note: declared here
unsigned int minor = minor(buf->st_rdev);
^~~~~
mksquashfs.c:1017:24: error: called object 'major' is not a function or function pointer
unsigned int major = major(buf->st_rdev);
^~~~~
mksquashfs.c:1017:16: note: declared here
unsigned int major = major(buf->st_rdev);
^~~~~
mksquashfs.c:1018:24: error: called object 'minor' is not a function or function pointer
unsigned int minor = minor(buf->st_rdev);
^~~~~
mksquashfs.c:1018:16: note: declared here
unsigned int minor = minor(buf->st_rdev);
^~~~~
mksquashfs.c: In function 'dir_scan2':
mksquashfs.c:3557:17: warning: implicit declaration of function 'makedev' [-Wimplicit-function-declaration]
buf.st_rdev = makedev(pseudo_ent->dev->major,
^~~~~~~
make[1]: *** [<builtin>: mksquashfs.o] Error 1
make[1]: Leaving directory '/mnt/backup/.wsamin/le/LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.0-devel/squashfs-1a6ffc7/squashfs-tools'
make: *** [Makefile:9: release] Fehler 2
Display More
is there any way to fix this? i tried compiling with gcc-6.4.0 but the error occured in the same way and i have already deleted the buildtree a couple of times.
THX for your input!