The Femto Linux project is a headless User interface which uses GNU/Linux along with  PTXDist as the build environment

All Femto Releases

Release Download Instructions

A specific release can be downloaded by choosing the manifest from the Releases table.

$ repo init -u git:// -b release -m [manifest]
$ repo sync

For releases prior to March 2013, download the release by choosing both the branch and manifest from the Releases table.

$ repo init -u git:// -b [branch] -m [manifest]
$ repo sync

Patch Releases



Installation Instructions


For getting started with ptxdist, go to

1) Download packages (ptxdist-1.99.10 and ptxdist-1.99.10-patches) from
2) Follow below steps to compile and install ptxdist-1.99.10

$ tar xvzf ptxdist-1.99.10.tgz
$ tar xvzf ptxdist-1.99.10-patches.tgz  (updates first tarball)
$ cd ptxdist-1.99.10  
$ ./configure --prefix=/usr/local/ptxdist --with-bash-completion=/etc/bash_completion.d
$ make
$ sudo make install

This creates /usr/local/ptxdist directory, export this path. 

$ export PATH=$PATH:/usr/local/ptxdist/bin

3) After installation, incorporate the below changes:

  • In File /usr/local/ptxdist/lib/ptxdist-1.99.10/scripts/lib/, insert the below on line 66
chmod 644 "${cfg_old}";
  • In File /usr/local/ptxdist/lib/ptxdist-1.99.10/scripts/lib/, modify line 24 as below

4) Run ptxdist setup and ensure that Developer Options ==> host cc and host cxx are updated to gcc and g++ respectively

Build kernel

1) Retrieve kernel from
2) Check out on to respective branch (ex:- android-msm-2.6.32, msm-2.6.38)
3) From the msm folder, execute the below command for compilation :

$ cp <path of the config file to be used from arch/arm/configs ex:- fsm9xxx_defconfig> .config
$ make ARCH=arm  HOSTCC=gcc CROSS_COMPILE=arm-none-linux-gnueabi-

Build mtd-utils

1) Retrieve mtd-utils from
2) From mtd-utils folder, give the below command for compilation:

$ make -j8 CROSS="arm-none-linux-gnueabi-"

Build from /project/rules

1) Create <project> folder and retrieve rules from (After step 1,Project folder consists of rules folder)
2) Update kernel.make and mtd-utils.make in rules folder to download from appropriate location. (Replace ptxconf variables which are defined).

  • say snapshot of 

Modify kernel.make accordingly as

KERNEL_FILENAME := "?p=kernel%2Fmsm.git;a=snapshot;h=139e50c9553aade3c030ea1db0186542099b07ce;sf=tgz"
  • Say snapshot of 

Modify mtd-utils.make accordingly as

MTD_UTILS_FILENAME :="?p=le%2Fmtd-utils.git;a=snapshot;h=7577fd7248c4044ca1d91e9037e0a2ea2b103e79;sf=tgz"

3) PTXDIST expects Kconfig file in project folder. Create Kconfig file which consists of configuration details. Menu files of packages should be specified in Kconfig file. Hence, Create Kconfig file with the below code.

source "config/Kconfig"
source "workspace/rules/"
source "workspace/rules/"
source "workspace/rules/"
source "workspace/rules/"
source "workspace/rules/"

After this step, Project folder contains rules folder and a Kconfig file Refer to /usr/local/ptxdist/lib/ptxdist-1.99.10/rules/templates/kconfig/Kconfig for further information related to Kconfig

4) From project folder,create menuconfig and platformconfig files using ptxdist

$ echo PTXCONF_CONFIGFILE_VERSION="1.99.10" > menu-config
$ touch platform-config
$ ptxdist ptxconfig=menu-config platformconfig=platform-config menuconfig
  • Packages to be compiled should be selected through menuconfig
  • Navigate through Root Filesystem ==> start scripts and deselect networking option.
$ ptxdist ptxconfig=menu-config platformconfig=platform-config platformconfig
  Enter appropriate details 
  •   Platform-name.(Ex:fsm9xxx).
  •   Navigate through Architecture >Toolchain and update gcc version and gnu target (Ex: arm-none-linux-gnueabi  ).
  •   If selected kernel, update version, imageType as vmlinux, and enter kernel config file as ‘kernel_defconfig’.

5) Create projectroot/etc directory under project folder(kernel make file expects this folder during compilation of kernel)

$ mkdir –p projectroot/etc

6) From project folder, run “ptxdist go” command to build the project with appropriate flags.

$ export PATCH_GET=0
$ export KERNEL_DEFCONFIG=<defconfig>
$ ptxdist toolchain=<path-to-toolchain> ptxconfig=menu-config platformconfig=platform-config go

PATCH_GET=0 disables source control fetching behavoir
KERNEL_DEFCONFIG > target specific defconfig file(say,fsm9xxx_defconfig)

Created by superadmin on 2020/04/18 20:52

My Recent Modifications

Need help?

If you need help with XWiki you can contact: