--- elwix/BUILD.txt 2012/02/09 01:42:35 1.1.2.2 +++ elwix/BUILD.txt 2021/03/11 13:59:50 1.7 @@ -1,13 +1,93 @@ -= How-to build ELWIX system project =- ========================================= -$Id: BUILD.txt,v 1.1.2.2 2012/02/09 01:42:35 misho Exp $ +$Id: BUILD.txt,v 1.7 2021/03/11 13:59:50 misho Exp $ ========================================= I. Intro + Before starting any work on ELWIX must we prepare environment. - II. Build process +What this means :: + - We must downloading freebsd sources from CVS/SVN repository and put on separate place from /usr/src. +Set in config/rc.elwix variable BSDSRC="..." with place where you get freebsd sources. + - We gather from ELWIX CVS repository kodicom_mux project. After this we need to patch our freebsd +sources like that "cd ; patch -p0 < " + - We must checkout from ELWIX CVS repository core libraries "libait*" , "embedtools", "embedaddons" +and GPLv2 "gpl/*" projects + - Optional download of 3th party software for ELWIX firmware. Project name is embedaddon from ELWIX CVS - III. Information + II. Fresh FreeBSD source tree + 1. When you get new FreeBSD source tree. You should apply patches + ./apply_patches.sh + + III. Build system process + 1. Init build structures with clean directory tree + ./build_init.sh + Result after its work is cleaned previous storage and created new structure for build process + 2. Cross compile entire userland software + ./build_world.sh + Result from build_world.sh. Cross built whole FreeBSD project and + prepared cross build scripts for ELWIX further build processes. + 3. Cross compile ELWIX kernel + ./build_kernel.sh + Result from ./build_kernel.sh. Cross built two kernels. One for ELWIX Base image without + embedded RootFS and another with RootFS for ELWIX RootFS images. + 4. Cross compile ELWIX tools + ./build_tools.sh + Result from ./build_tools.sh. Cross built ELWIX core tools, libraries and services. + Produced ELWIX system package file elwix-pkg.frm + 5. Cross compile optional 3th party software + ./build_3thparty.sh + Result from build_3thparty.sh. Cross built optional 3th party software for project. + Produced ELWIX system image file elwix-firmware2.sys +--------------------------------------------------------------------------------- + 6. Now is moment for build BaseFS ELWIX system + ./build_base.sh + Result from build_base.sh. Built ELWIX Base OS version. + All software will be installed directly on flash/disk storage. + Script leave ready to install archive and compressed kernel.gz + Example for ready for install archive: ELWIX-2.6_x86_base_128mb_i386_2017-10-10.tar.gz +--------------------------------------------------------------------------------- + 7. Moment comes for build big system binary and inject rootfs image into kernel + ./build_rootfs.sh + Result from build_rootfs.sh. + Cross built and leave image rootfs.img which was been injected into kernel. + Script prepared compressed kernel with embedded zero stage image of ELWIX into kernel_rootfs.gz + 8. Make romfs image and build big fat second stage firmware image + ./build_romfs.sh + Result from build_romfs.sh. Script collected files and prepare first stage ELWIX image. + Produced ELWIX system image file elwix-firmware.sys + 9. Now is moment for build RootFS ELWIX system + ./build_fs.sh + Result from build_fs.sh. Built ELWIX RootFS OS versions. + All software will be installed as images on flash/disk storage. + Script produced two version of ELWIX OS: + - RootFS small image which consume more RAM because all software is into memory drives. + Example for ready for install archive: ELWIX-2.6_x86_rootfs_64mb_i386_2017-10-10.tar.gz + - RootFS image which partially installed base tools directly onto flash. + Example for ready for install archive: ELWIX-2.6_x86_rootfsext_128mb_i386_2017-10-10.tar.gz +--------------------------------------------------------------------------------- + + Ok, now we did ELWIX version and placed to build/release directory like tar.gz file + + Example of produced tar balls:: + ELWIX_X.X_target_{base|rootfs|rootfsext}_size_arch_date.tar.gz + + III. Build storage image + 1. Build ELWIX system into binary fs image file + ./install2img [image_size_in_KB] + 2. Build ELWIX system into direct device + ./install2dev + 3. Build ELWIX system into separate compressed binary images for u-boot embedded devices + ./install2uboot + + IV. Emergency default address + IP: 10.254.254.254/30 + VLAN: 4093 + + You should setup at your side 10.254.254.253/30 on VLAN 4093 + + IV. Information + For more information Michael Pounov or Best regards