Menu

Tree [r5248] / legacy / build /
 History

HTTPS access


File Date Author Commit
 kernel-config 2010-06-28 daoyama [r5243] merge from 7S/8S
 kernel-patches 2010-06-27 daoyama [r5242] merge from 7S/8S
 ports 2010-06-28 daoyama [r5243] merge from 7S/8S
 CHANGES 2010-06-29 daoyama [r5246] misc update
 LICENSE 2010-04-01 daoyama [r5100] merge to trunk.
 README 2009-12-21 cochard [r4948] Do not ask for network card OPT if only one net...
 freenas-create-bootdir.sh 2010-06-29 daoyama [r5246] misc update
 freenas-create-pot.sh 2010-04-18 daoyama [r5150] Update translation files.
 freenas-create-rootfs.sh 2010-05-20 daoyama [r5201] Merge r5173 through r5199.
 freenas-modify-permissions.sh 2009-12-21 cochard [r4948] Do not ask for network card OPT if only one net...
 freenas.files 2010-05-22 daoyama [r5206] add gpart utility.
 make.conf 2008-01-02 votdev [r2496] Update make.conf. Add WITHOUT_X11=yes.
 make.sh 2010-06-29 daoyama [r5246] misc update
 ports-supfile 2010-04-15 daoyama [r5144] Update options.
 source-supfile 2010-01-27 cochard [r5004] Fix source-supfile to 8.0-Release

Read Me

FreeNAS (http://freenas.org) 
Olivier Cochard-Labbe (olivier@freenas.org)
Licence: BSD

============== SUMMARY =========

1. Files and directories listing
2. Preparing your FreeBSD for compiling FreeNAS
3. How to generate an FreeNAS ISO or IMG  file
4. Building FreeNAS from the latest sources
5. Building kernel

================================
1. Files and directories listing
- /freenas/bootloader : Contains FreeBSD boot loader files
- /freenas/rootfs: Minimum FreeBSD root filesystem and FreeNAS script/WebGUI
- /freenas/svn: Contains the whole up-to-date (working) release and scripts

===============================================
2. Preparing your FreeBSD for compiling FreeNAS
The FreeNAS build scripts are stupid scripts: They copy the binary files of your FreeBSD host.
This means that your FreeBSD used for compiling FreeNAS need to be compiled/re-installed with this /etc/make.conf:
- NO_SHARED=no
- Debug symbol disabled (comment the line WITH_DEBUG=yes if you have it)
- Remove all customization for CPU (comment the line CPUTYPE?=native if you have it)
Check the make.conf include in the source

Note about NO_SHARED: It seems that since FreeBSD 5.0 many executables binaries in /bin and /sbin are build using dynamic linking (this KNOBS is a m0n0wall heritage, don't know if it's still important to use it).

=============================================
3. How to generate an FreeNAS ISO or IMG file

Edit the script '/freenas/svn/build/make.sh' and adapt the directory
variables with your local ones.

Check that you have installed the following ports:
- subversion
- bash
- cdrtools
- portupgrade

Additional you might install the following ports, otherwise they are build
from sources:
- perl
- ruby
- m4
- bison

Start /freenas/svn/build/make.sh

Burn the freenas.iso file created.

=================================
3. Building FreeNAS from the latest sources

(normally possible with make.sh)

Here is how to build FreeNAS from the latest sources:

- Use the root user account on your FreeBSD system

3.1 Update your FreeNAS scripts/WebGUI code with SVN:
(this creates the svn directory)

cd /usr/local/freenas

svn co https://freenas.svn.sourceforge.net/svnroot/freenas/trunk svn

You should now have these directories:
/usr/local/freenas
/usr/local/freenas/svn

3.2 Update your ports collection:

Using portsnap the first time:
portsnap fetch extract

To update the ports collection next time:
portsnap fetch update

3.3 Use the building script:

svn/build/make.sh

Execute all menus in '20 - Build FreeNAS from scratch advanced menu' to build your FreeNAS from scratch. After that use one of the following menus:

10 - Create 'Embedded' (IMG) file (rawrite to CF/USB/DD)
11 - Create 'LiveCD' (ISO) file
12 - Create 'LiveCD' (ISO) file without 'Embedded' file
13 - Create 'Full' (TGZ) update file

=================================
4. Building kernel

Before building the kernel it is recommended to delete the directory /usr/src completely.
Next, run the build scripts and update the kernel sources via cvsup + freebsd-update.
Continue building using the 'Build kernel' menu in the build script.
 
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.