devdoc:documentation

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
devdoc:documentation [2020/04/10 16:32]
abelbeck [Linux Build System]
devdoc:documentation [2024/02/26 06:43] (current)
abelbeck [Linux Build System]
Line 1: Line 1:
 ====== Development Environment ====== ====== Development Environment ======
  
-The AstLinux Development Environment (ADE) is maintained in a repository on GitHub using subversion (SVN) or GIT.+The AstLinux Development Environment (ADE) is maintained in a repository on GitHub.
  
-AstLinux is cross-compiled, generating target images for both i586 and x86_64 CPU architectures, using a custom maintained version of [[https://buildroot.org|Buildroot]].+AstLinux is cross-compiled, generating target images for x86_64 CPU architectures, using a custom maintained version of [[https://buildroot.org|Buildroot]].
 ===== Linux Build System ===== ===== Linux Build System =====
  
-Building AstLinux requires using some version of Debian/Ubuntu or RHEL/CentOS Linux. It is recommended using a version of these distros in a Virtual Machine (VM). A 64-bit, x86_64 build system is required.+Building AstLinux requires using some version of Debian Linux. A 64-bit, x86_64 build system is required.
  
-Using a Virtual Machine is common practicetypical recommended configuration:+Using a Virtual Machine is suggestedminimal recommended configuration:
  
   * 64 GB Storage   * 64 GB Storage
Line 14: Line 14:
   * 1-2 CPU Cores   * 1-2 CPU Cores
  
-Linux Build Systems known to work:+Linux Build Systems known to work **(must be x86_64)**:
  
-  * CentOS 7 - x86_64 - //(used for official releases)// +  * Debian 11 
-  * Debian 9 - x86_64 +  * Debian 12 - //(recommended)//
-  * Debian 10 - x86_64 +
-  * Ubuntu 14.04 - x86_64 +
-  * Ubuntu 16.04 - x86_64+
  
 !!Tip ->!! Use a somewhat older LTS (Long Term Support) Linux distro in a VM, that will be the most compatible with our version of Buildroot. !!Tip ->!! Use a somewhat older LTS (Long Term Support) Linux distro in a VM, that will be the most compatible with our version of Buildroot.
  
 !!Tip ->!! Use a "Minimal Install" of your Linux distro, dedicated to building AstLinux. !!Tip ->!! Use a "Minimal Install" of your Linux distro, dedicated to building AstLinux.
 +
 +===== Promox notes =====
 +
 +!!Tip ->!! To run Debian 10/11 in a LXC container on Proxmox 6/7/8, you need to enable "Nesting" under "Options/Features", otherwise you'll end up getting "Permission denied" errors when starting several services (e.g. apache2, ntp). Creating a Flash Image does **not** work in a LXC container (you need a "full" VM for this)!
 +
 +!!Tip ->!! There seems to be a problem when running the "Linux Build System" in Proxmox as __LXC container__ **AND** __on a ZFS filesystem__. If you get errors like this:
 +  genext2fs: couldn't allocate a block (no free space)
 +although there is plenty of free space. It doesn't happen when running the filesystem on LVM or LVM-thin.
 +
 ===== Prerequisites ===== ===== Prerequisites =====
  
-To build Astlinux you first need to install some packages, depending on your Linux distribution:+To build Astlinux you first need to install some additional packages:
  
 **[[.packages|Package lists]]** **[[.packages|Package lists]]**
Line 45: Line 51:
 !!Important ->!! You should **not be root**, login as a non-admin user. !!Important ->!! You should **not be root**, login as a non-admin user.
 ===== Checking out the Source ===== ===== Checking out the Source =====
-Now we will grab AstLinux via SVN+Now we will grab AstLinux via ''git''
  
-  svn co https://github.com/astlinux-project/astlinux.git/trunk astlinux/trunk+  git clone https://github.com/astlinux-project/astlinux.git astlinux/trunk
  
- //("trunk" is the latest development branch)//+You should see a bunch of files scroll down your machine. Depending on the speed of your connection, this could take a few seconds or a minute.
  
-**Explanation:** +Once the clone process has completed, cd into astlinux/trunk to look around:
- +
- ''svn'' - name of subversion binary should not be root. +
- +
- ''co'' - short for "checkout", grab source from url: +
- +
- ''svn:...'' - URL of AstLinux SVN repository, an argument to co to specify the location of checkout +
- +
- ''astlinux/trunk'' - store the previous URL in a local directory on this machine in the "astlinux" directory +
- +
-You should see a bunch of files scroll down your machine. Depending on the speed of your connection, this could take a few minutes or a few hours (hopefully just a few minutes - we want to start building)! +
- +
-Once the checkout process has completed, cd into astlinux/trunk to look around:+
  
   cd astlinux/trunk   cd astlinux/trunk
Line 71: Line 65:
 Next we will copy the default AstLinux config file and look for any new configure options. Next we will copy the default AstLinux config file and look for any new configure options.
  
-Copy the default AstLinux config file (example with Asterisk 13):+Copy the default AstLinux config file (example with Asterisk 18):
  
-  cp astlinux-ast13.config .config +  cp x86_64-configs/astlinux-ast18.config .config
- +
-!!Note ->!! If you wish to build 64-bit x86_64 images, copy your ''.config'' file from the ''x86_64-configs/'' directory.+
  
 Check for new configure options: Check for new configure options:
Line 87: Line 79:
 If this is your first time building AstLinux we suggest that you don't make any changes to the default AstLinux configuration. This will make it easier to troubleshoot any problems you might have. Now it's time to start the build: If this is your first time building AstLinux we suggest that you don't make any changes to the default AstLinux configuration. This will make it easier to troubleshoot any problems you might have. Now it's time to start the build:
  
-  ./scripts/build geni586 +  ./scripts/build genx86_64
- +
-!!Note ->!! If you wish to build 64-bit x86_64 images, use genx86_64 or genx86_64-serial board type.+
  
 The script ''./scripts/build'' is a wrapper that checks for certain tools and sets up the environment prior to issuing ''make''. If you run ''make'' manually, you will not generate a complete build. The script ''./scripts/build'' is a wrapper that checks for certain tools and sets up the environment prior to issuing ''make''. If you run ''make'' manually, you will not generate a complete build.
  
-The option "geni586" is the board type, other board types are: geni586-serial, net5501, alix, (many more).  If this option is omitted, the previous board type built will be used.  The "geni586" board uses a VGA/video console, while the "geni586-serial" board uses a 19200 baud serial console.+The option "genx86_64" is the board type, other board types are: genx86_64-serial and genx86_64-vm.  If this option is omitted, the previous board type built will be used.  The "genx86_64" board uses a VGA/video console, while the "genx86_64-serial" board uses a 115200 baud serial console.
  
 !!Info ->!! [[devdoc:boardtypes|List of board types]] !!Info ->!! [[devdoc:boardtypes|List of board types]]
Line 108: Line 98:
   ./scripts/build   ./scripts/build
      
-Many board types use the same i586 toolchain, so after ''./scripts/build geni586'' completes you can issue ''./scripts/build geni586-serial'' (or any other i586 board type) and it will take less than a minute to create the new build for that board type.  This is also true for board types use the same x86_64 toolchain.+All board types use the same x86_64 toolchain, so after ''./scripts/build genx86_64'' completes you can issue ''./scripts/build genx86_64-serial'' and it will take less than a minute to create the new build for that board type.
  
-Of special note, there are three kernel configurations supported.+Of special note, there are two kernel configurations supported.
  
-For 32-bit SMP kernel builds: (boards with i586 multi-core or single-core processors) 
- 
-  project/astlinux/geni586/linux-smp.config 
-   
 For 64-bit SMP kernel builds: (boards with x86_64 multi-core processors) For 64-bit SMP kernel builds: (boards with x86_64 multi-core processors)
  
  • devdoc/documentation.1586554351.txt.gz
  • Last modified: 2020/04/10 16:32
  • by abelbeck