Setting up a build server in VirtualBox can't understand

@ZebraOnPC you seem to work in write-only mode ...

in the other thread you were told NOT to use root user!
everything can be built and should be built as a normal unprivileged user starting from the step git clone ...

then the error message explains to run make as:

make with -j1 V=s or V=sc

but your run as

make -j5 V=sc

please follow the guide step by step and don't alter it, it is not that hard:

  1. install virtualbox
  2. install debian desktop as a guest in virtualbox
  3. install all the building tools
  4. create an unprivileged user (if somehow you skipped that part in debian installer)
  5. login to debian with your unprivileged user, from now on only use this user
  6. git clone, git checkout, ./scripts/feeds update -a, ./scripts/feeds install -a
  7. make menuconfig, select your profile, select whatever package you want, save
  8. make V=s download, make -j< cpu cores > V=s .... wait ..... wait ..... wait
  9. if you have error run make -j1 V=s
2 Likes

everything did under user
got this at the end

tar: binutils-2.34/gold: Cannot mkdir: No space left on device
tar: binutils-2.34/gold/object.h: Cannot open: No such file or directory
tar: binutils-2.34/gold: Cannot mkdir: No space left on device
tar: binutils-2.34/gold/archive.cc: Cannot open: No such file or directory
tar: binutils-2.34/gold: Cannot mkdir: No space left on device
tar: binutils-2.34/gold/gc.cc: Cannot open: No such file or directory
tar: binutils-2.34/Makefile.def: Cannot write: No space left on device
tar: binutils-2.34/ltoptions.m4: Cannot write: No space left on device
tar: Exiting with failure status due to previous errors
make[3]: *** [Makefile:105: /home/user/openwrt/build_dir/toolchain-mips_mips32_gcc-8.4.0_musl/binut                                                                                                                                          ils-2.34/.prepared] Error 2
make[3]: Leaving directory '/home/user/openwrt/toolchain/binutils'
time: toolchain/binutils/compile#5.25#2.84#18.30
    ERROR: toolchain/binutils failed to build.
make[2]: *** [toolchain/Makefile:97: toolchain/binutils/compile] Error 1
make[2]: *** Waiting for unfinished jobs....
*** This configuration is not supported in the following subdirectories:
     gdbserver sim
    (Any other directories should still work fine.)
./configure: line 7076: echo: write error: No space left on device
conftest.c:1: fatal error: error closing /home/user/openwrt/tmp/ccqmgrns.s: No space left on device
compilation terminated.
*** The command 'gcc -o conftest -O2 -I/home/user/openwrt/staging_dir/host/include  -I/home/user/op                                                                                                                                          enwrt/staging_dir/host/include  -L/home/user/openwrt/staging_dir/host/lib  conftest.c' failed.
*** You must set the environment variable CC to a working compiler.
sort: fflush failed: 'standard output': No space left on device
sort: write error
./configure: line 40: echo: write error: No space left on device
./configure: line 44: printf: write error: No space left on device
./configure: line 45: echo: write error: No space left on device
sort: write failed: 'standard output': No space left on device
sort: write error
./configure: line 54: echo: write error: No space left on device
./configure: line 59: printf: write error: No space left on device
./configure: line 60: echo: write error: No space left on device
sort: fflush failed: 'standard output': No space left on device
sort: write error
./configure: line 69: echo: write error: No space left on device
./configure: line 75: printf: write error: No space left on device
./configure: line 76: echo: write error: No space left on device
cat: write error: No space left on device
./configure: line 78: echo: write error: No space left on device
./configure: line 82: printf: write error: No space left on device
make[3]: *** [Makefile:62: /home/user/openwrt/build_dir/toolchain-mips_mips32_gcc-8.4.0_musl/gdb-10                                                                                                                                          .1/.configured] Error 1
make[3]: Leaving directory '/home/user/openwrt/toolchain/gdb'
time: toolchain/gdb/compile#5.86#3.06#18.66
    ERROR: toolchain/gdb failed to build.
make[2]: *** [toolchain/Makefile:97: toolchain/gdb/compile] Error 1
make[2]: Leaving directory '/home/user/openwrt'
make[1]: *** [toolchain/Makefile:93: /home/user/openwrt/staging_dir/toolchain-mips_mips32_gcc-8.4.0                                                                                                                                          _musl/stamp/.toolchain_compile] Error 2
make[1]: Leaving directory '/home/user/openwrt'
make: *** [/home/user/openwrt/include/toplevel.mk:230: world] Error 2
user@deb4core:~/openwrt$

so now i am runung make with -j1 V=s

user@deb4core:~/openwrt$ make with -j1 V=s
/home/user/openwrt/scripts/config.guess: 111: echo: echo: I/O error
cat: write error: No space left on device
/home/user/openwrt/scripts/config.guess: 111: echo: echo: I/O error
cat: write error: No space left on device
/home/user/openwrt/scripts/config.guess: 111: echo: echo: I/O error
cat: write error: No space left on device
awk: cmd. line:14: (FILENAME=- FNR=58) fatal: print to "standard output" failed: No space left on device
/home/user/openwrt/tmp/info/.files-packageinfo.mk:58: *** unterminated call to function 'eval': missing ')'.  Stop.
make[1]: *** [/home/user/openwrt/include/toplevel.mk:79: prepare-tmpinfo] Error 2
make: *** [/home/user/openwrt/include/toplevel.mk:228: with] Error 2
user@deb4core:~/openwrt$

user@deb4core:~/openwrt$ make -j1 V=s
/home/user/openwrt/tmp/info/.files-packageinfo.mk:58: *** unterminated call to function 'eval': missing ')'.  Stop.
make[1]: *** [/home/user/openwrt/include/toplevel.mk:79: prepare-tmpinfo] Error 2
make: *** [/home/user/openwrt/include/toplevel.mk:228: world] Error 2
user@deb4core:~/openwrt$

no space ((

absolutely no f..ing way you should build the image on the router itself, unless it is a beefy x86 server!

1 Like

i guess it is clear what is the problem

3 Likes

all right i will do this only under user
i see i have no space left it is my fault shoud have make it more (i made 8 Gb disk)
gonna make it all from the begining hahah again

1 Like

why do you want to build a custom image first of all? you want to try dawn, that's all? because than use snapshot image and ready to go

esterday a prorammist added new function in DAWN and i need to test it fast
so us i understand it will take a while when i can download firmware with this new function

was this new code merged to snapshot branch? or it was just a new function in dawn's git repo?
because you checked out v21.02.1 that's the latest official release, the package development process does not really do backporting (unfortunately) so not sure the newest dawn would work with 21.02.1 ... so maybe you better to wait a little bit imho

I may be using more space than required due to multi-architecture builds, but my 16GB build partition is a little "strained", while a simpler one is currently using 12GB. I'm also using about 10GB for host pieces. Overall I think you're probably going to want ~24GB-32GB as a single partion environment.

/dev/sda1       14383112 10584780   3047996  78% /
/dev/sdb1       16447356 15153320    438844  98% /home/openwrt/openwrt
/dev/sdc1       24769916 11455796  12055880  49% /home/openwrt/stable

I remember it took me a few loops to get things working for the first time a couple of years ago. Worth it in the end though :grinning:

1 Like

There is a new release in my fork: https://github.com/Ian-Clowes/DAWN.

OP is trying to get it built to try some scenarios, and general path to self-sufficiency is to get the core OpenWrt build working first. Hence my comment above to focus here on the main build. Once that works adding in the git-src private build of DAWN should be quite easy.

I chose 21.2.1
why ?


why the packages is out to date? if i compiled new firmware on 21.2. branch?
where did i go wrong id all my packages out to date

image and package versioning is a bit complicated.

  1. when you select a particular release, 21.02.1 for example, it means that at some point of time owrt team decided that a snapshot of the source code is ready for release, it was taken "as is" and labeled as "release 21.02.1". they create all the images for the various hw based on that specific code. parallel to that, packages are built too, and package source is added to the image.

you can check it here for example: https://downloads.openwrt.org/releases/21.02.1/
targets - includes all images
packages is pointing to package-21.02 including all available packages.

  1. now, the complicated bit: an image is using a particular kernel version (e.g. 5.4.x), but package developers are working in the snapshot branch which is way ahead and in snapshot kernel version is probably 5.10.x. this means once a package is updated (independently from the image!) as it is developed/tested/verified in the snapshot branch it may not work in a release branch, unless package maintainer verifies and or back-ports it.

  2. when you use opkg install it is using the source from above and NOT any developer source, you'll get what is available in the official binary repo (see point 1). if a package is back-ported, you may able to upgrade to it. though you should be very careful not to blindly upgrade! there are many posts about this whole upgrade vs not upgrade, search for it! in short: do NOT upgrade unless you know what you are doing.

  3. you want to use a developer version of dawn which is not even in the snapshot branch! so it is definitely not available as binary *.ipk package. you should follow the guide @IanC provided above! make sure you read it thoroughly especially read the installation guide and follow the developer guide and make sure to read the "Creating a local DAWN development instance" section.

1 Like

well , today i compile 3 times in master branch
all i get is errors in the end
esterday i compile 21.2.1 or 21.2.2 and got 2 firmware

make[3]: Leaving directory '/home/user/openwrt/package/utils/util-linux'
time: package/utils/util-linux/compile#367.40#34.99#232.43
make[2]: Leaving directory '/home/user/openwrt'
make[1]: *** [package/Makefile:110: /home/user/openwrt/staging_dir/target-mips_mips32_musl/stamp/.package_compile] Error 2
make[1]: Leaving directory '/home/user/openwrt'
make: *** [/home/user/openwrt/include/toplevel.mk:230: world] Error 2
user@deb:~/openwrt$ make[1]: *** [package/Makefile:110: /home/user/openwrt/staging_dir/target-mips_mips32_musl/stamp/.package_compile] Error 2


i alredy made RAM 4 Gb but this error i caouldnt find

Tried adding the -j1 V=s?

i used
make -j5 V=sc and it worked on my Vbox cause i set up 4 cores
esterday i did make -j1 V=sc on my old noutbook with origin brunch and i got the firmware
as i understand -j (cores+1)
alos qwestion is it eughnoth to
make clean
make menuconfig (change profile)
make defonfig
make menuconfig (add packets)
if i want just change target router ?
also i get this

WARNING: Makefile 'package/utils/busybox/Makefile' has a dependency on 'libpam', which does not exist
WARNING: Makefile 'package/utils/busybox/Makefile' has a dependency on 'libpam', which does not exist
WARNING: Makefile 'package/utils/busybox/Makefile' has a build dependency on 'libpam', which does not exist
WARNING: Makefile 'package/boot/kexec-tools/Makefile' has a dependency on 'liblzma', which does not exist
WARNING: Makefile 'package/network/services/lldpd/Makefile' has a dependency on 'libnetsnmp', which does not exist
WARNING: Makefile 'package/utils/policycoreutils/Makefile' has a dependency on 'libpam', which does not exist
WARNING: Makefile 'package/utils/policycoreutils/Makefile' has a dependency on 'libpam', which does not exist
WARNING: Makefile 'package/utils/policycoreutils/Makefile' has a build dependency on 'libpam', which does not exist

maybe this is the problem ?
why in the instraction
make -j $(nproc) defconfig download clean world
like npoc but not nproc+1
and do i have to put defconfig download clean world?
noone told me to do so but it is in instruction why....

Menuconfig.

But note changing target or router in menuconfig does not remove already selected packages. Same goes for packages: is package A requires B as a dependency, and then you deselect A, B will remain selected...

So, it is possible to accumulate lots of extra and possibly wrong into .config, unless you always start from an empty .config (or a short device-specific recipe like me.)

if i delete openwrt folder am i good ?
i do that all the time and then

git clone https://git.openwrt.org/openwrt/openwrt.git
cd openwrt
git pull
git checkout origin
git branch -a
./scripts/feeds update -a
./scripts/feeds install -a
./scripts/feeds install dawn
make menuconfig ( target profile save exit)
make defconfig
make menuconfig (choosing packages)
make -j1 V=sc

and i am tyred alredy waiting up to 4 hours to get Errors
and most of all for 2 days none answers or correction on what i do
i run building on debain Vbox(64) and noutbook(32) same things just errors Vbox in 1-2 hours and noutbook 4 hours

You can always delete the folder and start from scratch, or create a parallell folder.

yeah i delete folder and start from the begining - cloning
Do you know if
make -j1 V=sc
is eugnoth or maybe i must
make -j1 V=sc defconfig download clean world
?

Haven't done this in quite some time, but I'd probably skip clean.