Project

General

Profile

Compile-with-sercomm » History » Revision 8

Revision 7 (gnutoo, 02/19/2016 10:49 PM) → Revision 8/10 (Anonymous, 02/19/2016 10:49 PM)

To compile nuttx-bb with sercomm, do the following steps: 

  * Clone osmocom-bb and nuttx-bb, they must reside in the same directory and you shouldn't change the name of the osmocom-bb directory. 
 {{{ 
 git clone git://git.osmocom.org/osmocom-bb 
 git clone git://git.osmocom.org/nuttx-bb 
 }}} 
  * Put the gnuarm(for 64bit) or the codesourcery(for 32bit) 
   in your path(there is a problem with gnuarm for 32bit). 
  * Compile osmocom-bb as usual 
 {{{ 
 cd osmocom-bb/src 
 make 
 cd ../../ 
 }}} 
  * Configure nuttx-bb: 
 {{{ 
 cd nuttx-bb/nuttx/tools/ 
 ./configure.sh compal_e88/nsh_highram #for compal_e88( gta02 and Motorola W220). 
 ./configure.sh compal_e99/nsh_highram #for compal_e99( motorolla c155 ) 
 }}} 
  * Modify your configuration(nuttx/.config): 
 {{{ 
 -CONFIG_SERCOMM_CONSOLE=n 
 +CONFIG_SERCOMM_CONSOLE=y 
 -CONFIG_STDIO_LINE_BUFFER=y 
 }}} 

  * compile nuttx-bb: 
 {{{ 
 cd ../ 
 make 
 }}} 
  * nuttx.bin is ready for beeing loaded like any other firmware (Loading nuttx-bb is not different from loading osmocom-bb, refer to [wiki:osmocon]) the pages related to osmocom-bb for informations on how to load a firmware in your phone.) 

 == Running == 
 Once you loaded nuttx-bb you should see the following appearing on sercomm: 
 {{{ 
 [...] 
 Preparing block 61, block checksum is 0xda  
 handle_write_block(): 1024 bytes (1024/1024) 
 handle_write_block(): Block 61 finished 
 Received block ack from phone 
 Preparing block 62, block checksum is 0xd8  
 handle_write_block(): 1024 bytes (1024/1024) 
 handle_write_block(): Block 62 finished 
 Received block ack from phone 
 Preparing the last block, filling 386 bytes, block checksum is 0xaf  
 handle_write_block(): 1024 bytes (1024/1024) 
 handle_write_block(): Block 63 finished 
 Finished, sent 63 blocks in total 
 Received block ack from phone 
 Sending checksum: 0x0e  
 Checksum on phone side matches, let's branch to your code 
 Branching to 0x00820000 
 Received branch ack, your code is running now! 

 NuttShell (NSH) 

 }}} 
 To interact with it run the loadwriter.py script that can be found in nuttx/drivers/sercomm/loadwriter.py in the nuttx sources. 
 {{{ 
 sudo ./loadwriter.py  
 >help 
 }}} 
 will produce the following output on sercomm: 
 {{{ 
 nsh> help 
 Builtin Apps:  
 and type 'help' for more NSH commands. 

 NSH command forms: 
   [nice [-d <niceness>>]] <cmd> [> <file>|>> <file>] [&] 
 OR 
   if <cmd> 
   then 
     [sequence of <cmd>] 
   else 
     [sequence of <cmd>] 
   fi 
 Where <cmd> is one of: 
   [ <expression> ] 
   cat <path> [<path> [<path> ...]] 
   cp <source-path> <dest-path> 
   dd if=<infile> of=<outfile> [bs=<sectsize>] [count=<sectors>] [skip=<sectors>] 
   echo [<string> [<string>...]] 
   exec <hex-address> 
   exit 
   free 
   help 
   kill -<signal> <pid> 
   losetup [-d <dev-path>] | [[-o <offset>] [-r] <dev-path> <file-path>] 
   ls [-lRs] <dir-path> 
   mb <hex-address>[=<hex-value>][ <hex-byte-count>] 
   mkfifo <path> 
   mh <hex-address>[=<hex-value>][ <hex-byte-count>] 
   mw <hex-address>[=<hex-value>][ <hex-byte-count>] 
   ps 
   sh <script-path> 
   sleep <sec> 
   test <expression> 
   usleep <usec> 
   xd <hex-address> <byte-count> 
 nsh>  
 }}}
Add picture from clipboard (Maximum size: 48.8 MB)