NSLU2-Linux
view · edit · print · history

HowTo.CrossCompileWithCentOS History

Hide minor edits - Show changes to markup

June 21, 2008, at 08:33 PM by Rob Lockhart -- cosmetics of course
Changed lines 29-30 from:
 [/usr/src/monotone-0.29]$ make check          <--- NOTE DONE AS NON-ROOT IN ORDER TO NOT FAIL!!
to:
 [/usr/src/monotone-0.29]$ make check          <--- NOTE: DONE AS NON-ROOT IN ORDER TO NOT FAIL!!
Changed lines 223-224 from:

It is saved automatically, so when you reboot your "turnup" scripts will now work properly. Note that this may not be necessary for newer versions of Apex, but for 1.5.13 I required this workaround (thanks to rwhitby).

to:

It is saved automatically, so when you reboot your "turnup" scripts will now work properly. Note that this is not necessary for newer versions of Apex (1.5.14 and above), but for 1.5.13 I required this workaround (thanks to rwhitby).

Changed lines 233-235 from:

So, let's proceed to modify the file common-pci.c per recommendation above. The file to modify is here (note line break on purpose):

 tmp/work/nslu2be-linux/linux-ixp4xx-2.6.24.7+svnr1066-r0/
to:

So, let's proceed to modify the file common-pci.c per recommendation above. The file to modify is here (note line break):

 slugos/tmp/work/nslu2be-linux/linux-ixp4xx-2.6.24.7+svnr1066-r0/\
Changed lines 240-242 from:
 [slug@Linux ~/slugos]$ diff tmp/work/nslu2be-linux/linux-ixp4xx-2.6.24.7+svnr1066-r0/    linux-2.6.24/arch/arm/mach-ixp4xx/common-pci.c ~/tmp/common-pci.c
to:
 [~/slugos]$ diff tmp/work/nslu2be-linux/linux-ixp4xx-2.6.24.7+svnr1066-r0/\
    linux-2.6.24/arch/arm/mach-ixp4xx/common-pci.c ~/tmp/common-pci.c
Changed lines 250-252 from:
 [slug@Linux ~/slugos]$ cp ~/tmp/common-pci.c tmp/work/nslu2be-linux/    linux-ixp4xx-2.6.24.7+svnr1066-r0/linux-2.6.24/arch/arm/mach-ixp4xx/common-pci.c
to:
 [~/slugos]$ cp ~/tmp/common-pci.c tmp/work/nslu2be-linux/\
  linux-ixp4xx-2.6.24.7+svnr1066-r0/linux-2.6.24/arch/arm/mach-ixp4xx/common-pci.c 
Changed lines 256-262 from:
 [slug@Linux ~/slugos]$ rm tmp/work/nslu2be-linux/linux-ixp4xx-2.6.24.7+svnr1066-r0/                           linux-2.6.24/arch/arm/mach-ixp4xx/common-pci.o

 [slug@Linux ~/slugos]$ rm tmp/stamps/nslu2be-linux/                        linux-ixp4xx-2.6.24.7+svnr1066-r0.do_compile

 [slug@Linux ~/slugos]$ make slugosbe
to:
 [~/slugos]$ rm tmp/work/nslu2be-linux/linux-ixp4xx-2.6.24.7+svnr1066-r0/\
   linux-2.6.24/arch/arm/mach-ixp4xx/common-pci.o

 [~/slugos]$ rm tmp/stamps/nslu2be-linux/\
   linux-ixp4xx-2.6.24.7+svnr1066-r0.do_compile

 [~/slugos]$ make slugosbe
June 21, 2008, at 08:16 PM by Rob Lockhart -- Added instructions for modifying kernel pieces and recompiling
Changed lines 223-264 from:

It is saved automatically, so when you reboot your "turnup" scripts will now work properly. Note that this may not be necessary for newer versions of Apex, but for 1.5.13 I required this workaround (thanks to rwhitby).

to:

It is saved automatically, so when you reboot your "turnup" scripts will now work properly. Note that this may not be necessary for newer versions of Apex, but for 1.5.13 I required this workaround (thanks to rwhitby).


Now, let's say you want to make some mods to the kernel source files. I had asked on the IRC channel in how to do this, and the easiest way was via checking out the kernel and rebuilding. I didn't feel that comfortable in doing that, so I decided to do it via the compile process here.

So, let's assume you want to try out some mods that were suggested in the kernel bug for OOM errors for FatSlugs?: http://bugzilla.kernel.org/show_bug.cgi?id=7760 How to start this? First, let's assume you've already got a complete system working per above, and you've compiled the slugosbe image. That would be in the path:

 /home/slug/slugos/tmp/deploy/images/slugosbe-4.10-alpha-nslu2.bin

So, let's proceed to modify the file common-pci.c per recommendation above. The file to modify is here (note line break on purpose):

 tmp/work/nslu2be-linux/linux-ixp4xx-2.6.24.7+svnr1066-r0/
 linux-2.6.24/arch/arm/mach-ixp4xx/common-pci.c

I manually patched and copied common-pci.c and put it in the ~/tmp directory. Here I do a diff:

 [slug@Linux ~/slugos]$ diff tmp/work/nslu2be-linux/linux-ixp4xx-2.6.24.7+svnr1066-r0/    linux-2.6.24/arch/arm/mach-ixp4xx/common-pci.c ~/tmp/common-pci.c

 326c326
 <               dmabounce_register_dev(dev, 2048, 4096);
 ---
 >               dmabounce_register_dev(dev, 16384, 131072);

So now just copy the patch to the appropriate directory above via:

 [slug@Linux ~/slugos]$ cp ~/tmp/common-pci.c tmp/work/nslu2be-linux/    linux-ixp4xx-2.6.24.7+svnr1066-r0/linux-2.6.24/arch/arm/mach-ixp4xx/common-pci.c

Now we have to "fake" the process into re-compiling the parts necessary:

 [slug@Linux ~/slugos]$ rm tmp/work/nslu2be-linux/linux-ixp4xx-2.6.24.7+svnr1066-r0/                           linux-2.6.24/arch/arm/mach-ixp4xx/common-pci.o

 [slug@Linux ~/slugos]$ rm tmp/stamps/nslu2be-linux/                        linux-ixp4xx-2.6.24.7+svnr1066-r0.do_compile

 [slug@Linux ~/slugos]$ make slugosbe

That will re-compile the kernel, as we manually removed the "do_compile" file in the path above (so that means it assumes it's not there and needs to be re-run). Lucky for us, it only looks at the missing .o files so it only needs to re-compile the common-pci.c file to create common-pci.o and then merge / link to the rest of the kernel files and such to make the 8MB flash image.

June 13, 2008, at 04:16 AM by Rob Lockhart -- added instructions about modification of cmdline for turnup scripts to work with custom Apex
Changed lines 209-210 from:

I used the first instructions, as I use TFTP at work via custom boot loader, and am very comfortable with it. I know that a lot of the instructions warn about not using it, there are better ways, etc. but that is the only instruction set that will work with both Linux and Windows environments (at least that I know), without having to install SerComm, etc. utility (which I don't want).

to:

I used the first instructions, as I use and trust TFTP. I know that a lot of the instructions warn about not using it, there are better ways, etc. but that is the only instruction set that will work with both Linux and Windows environments (at least that I know), without having to install SerComm, etc. utility (which I don't want). And if you compile your own RedBoot, you can access all RAM and all FLASH area within RedBoot.

Added lines 212-223:

NOTE: I assume you know how to use SlugImage? to pack and unpack parts of the image. Something useful is to be able to replace the apex boot loader with a more recent one (that supports 256MiB via "sdram-init" and support for 16MiB flash). If you're running slugos and you run the turnup scripts, and after the first reboot the external drive doesn't get re-mounted, that's because your apex command line needs to be modified. Do it as follows (in APEX - for SlugOS - unknown for Debian):

type "print" in Apex (CTRL-C while Apex is booting and "copying").

old line:

 cmdline *= root=/dev/mtdblock4 rootfstype=jffs2 console=ttyS0,115200

You need to append "init=/linuxrc". Do it as follows:

 setenv cmdline *= root=/dev/mtdblock4 rootfstype=jffs2 console=ttyS0,115200 init=/linuxrc

It is saved automatically, so when you reboot your "turnup" scripts will now work properly. Note that this may not be necessary for newer versions of Apex, but for 1.5.13 I required this workaround (thanks to rwhitby).

May 28, 2008, at 01:25 AM by Rob Lockhart -- updated number of tasks with \"make slugosle\"
Changed lines 2-3 from:

(running CentOS 5 with functioning yum and all updates to yum as of April 2008)

to:

(running CentOS 5 with functioning yum and all updates to yum as of May 2008)

Changed line 118 from:
 [~]$ make slugosle  (took about 6 hours to finish - 684 tasks)
to:
 [~]$ make slugosle  (took about 6 hours to finish - 760 tasks)
May 27, 2008, at 11:30 AM by Rob Lockhart --
Changed lines 40-41 from:

For CentOS? 5, it showed Python 2.4.3, so download the latest psyco-1.6. If you have Python version earlier than 2.2.2, then you have to use psyco-1.5.2. More details in the README.txt file for 1.6

to:

For CentOS 5, it showed Python 2.4.3, so download the latest psyco-1.6. If you have Python version earlier than 2.2.2, then you have to use psyco-1.5.2. More details in the README.txt file for 1.6

Changed lines 83-84 from:

If you use another version of monotone, you have to update the database, and re-generate all caches. This was necessary as the make above will likely fail (but will partially work, enough to get the .mtn file)

to:

If you use another version of monotone (besides 0.29), you have to update the database, and re-generate all caches. This was necessary as the make above will likely fail (but will partially work, enough to get the .mtn file)

May 27, 2008, at 02:50 AM by Rob Lockhart -- cosmetic again
Changed lines 29-30 from:
 [/usr/src/monotone-0.29]$ make check          <--- NOTE DONE AS NON-ROOT IN ORDER TO NOT FAIL!!
to:
 [/usr/src/monotone-0.29]$ make check          <--- NOTE DONE AS NON-ROOT IN ORDER TO NOT FAIL!!
May 27, 2008, at 02:49 AM by Rob Lockhart -- cosmetic again
Changed lines 7-8 from:
 I'm also using the notation [/absolute/path] to show the present working directory, and "~" to mean the home directory of the current user (whether it is root or slug).  To do this on your system, type:
to:

I'm also using the notation [/absolute/path] to show the present working directory, and "~" to mean the home directory of the current user (whether it is root or slug). To do this on your system, type:

May 27, 2008, at 02:49 AM by Rob Lockhart -- cosmetic again
Changed lines 8-10 from:
  export PS1?='[\w]\$ '
to:
  export PS1='[\w]\$ '
Changed lines 204-205 from:
    /usr/local/bin/
to:
    /usr/local/bin/
May 27, 2008, at 02:47 AM by Rob Lockhart -- cosmetic again
Changed lines 19-20 from:
 [~]$ wget http://www.nslu2-linux.org/Makefile%%
to:
 [~]$ wget http://www.nslu2-linux.org/Makefile
Changed line 23 from:
 [~]$ wget http://monotone.ca/downloads/0.29/monotone-0.29.tar.gz%%
to:
 [~]$ wget http://monotone.ca/downloads/0.29/monotone-0.29.tar.gz
Changed line 41 from:
 [~]$ wget http://downloads.sourceforge.net/psyco/psyco-1.6-src.tar.gz%%
to:
 [~]$ wget http://downloads.sourceforge.net/psyco/psyco-1.6-src.tar.gz
Changed lines 73-74 from:
  You will have to install monotone separately. See http://venge.net/monotone/
to:
  You will have to install monotone separately. See http://venge.net/monotone/
Changed lines 80-81 from:
 [~]#  rpm -ivh http://www.python.org/pyvault/centos-4-i386/help2man-1.29-1.noarch.rpm%%
to:
 [~]#  rpm -ivh http://www.python.org/pyvault/centos-4-i386/help2man-1.29-1.noarch.rpm
May 27, 2008, at 02:44 AM by Rob Lockhart -- cosmetic
Changed lines 71-72 from:
  You will have to install quilt separately. See http://centos.karan.org/
  You will have to install git separately. See http://rpmforge.net/
to:
  You will have to install quilt separately. See http://centos.karan.org/
  You will have to install git separately. See http://rpmforge.net/
May 27, 2008, at 02:43 AM by Rob Lockhart -- highlighting
Changed lines 5-11 from:
 $ => implies non-root ("slug" account)
 # => implies root

I'm also using the notation [/absolute/path] to show the present working directory, and "~" to mean the home directory of the current user (whether it is root or slug). To do this on your system, type:

  export PS1='[\w]\$ '
to:
 $ => implies non-root ("slug" account)
 # => implies root
 I'm also using the notation [/absolute/path] to show the present working directory, and "~" to mean the home directory of the current user (whether it is root or slug).  To do this on your system, type:
  export PS1?='[\w]\$ '
Changed lines 13-16 from:
 [~]# useradd -m slug
 [~]# su - slug
 [~]$ cd /home/slug
to:
 [~]# useradd -m slug
 [~]# su - slug
 [~]$ cd /home/slug
Changed lines 19-20 from:
 [~]$ wget http://www.nslu2-linux.org/Makefile
to:
 [~]$ wget http://www.nslu2-linux.org/Makefile%%
Changed lines 23-29 from:
 [~]$ wget http://monotone.ca/downloads/0.29/monotone-0.29.tar.gz
 [~]# cd /usr/src; tar xzvf ~slug/monotone-0.29.tar.gz
 [/usr/src]# cd monotone-0.29; ./configure
 [/usr/src/monotone-0.29]# make
 [/usr/src/monotone-0.29]# chmod ugo+rw  . -R
 [/usr/src/monotone-0.29]$ make check          <--- NOTE DONE AS NON-ROOT IN ORDER TO NOT FAIL!!
to:
 [~]$ wget http://monotone.ca/downloads/0.29/monotone-0.29.tar.gz%%
 [~]# cd /usr/src; tar xzvf ~slug/monotone-0.29.tar.gz
 [/usr/src]# cd monotone-0.29; ./configure
 [/usr/src/monotone-0.29]# make
 [/usr/src/monotone-0.29]# chmod ugo+rw  . -R
 [/usr/src/monotone-0.29]$ make check          <--- NOTE DONE AS NON-ROOT IN ORDER TO NOT FAIL!!
Changed lines 32-33 from:
 [/usr/src/monotone-0.29]# make install
to:
 [/usr/src/monotone-0.29]# make install
Changed lines 36-38 from:
 [/usr/src/monotone-0.29]$ cd ~
 [~]$ python -V
to:
 [/usr/src/monotone-0.29]$ cd ~
 [~]$ python -V
Changed lines 41-46 from:
 [~]$ wget http://downloads.sourceforge.net/psyco/psyco-1.6-src.tar.gz
 [~]# cd /usr/src
 [/usr/src]# tar xzvf ~slug/psyco-1.6-src.tar.gz
 [/usr/src]# cd psyco-1.6
 [/usr/src/psyco-1.6]# python setup.py install
to:
 [~]$ wget http://downloads.sourceforge.net/psyco/psyco-1.6-src.tar.gz%%
 [~]# cd /usr/src
 [/usr/src]# tar xzvf ~slug/psyco-1.6-src.tar.gz
 [/usr/src]# cd psyco-1.6
 [/usr/src/psyco-1.6]# python setup.py install
Changed lines 49-50 from:
 [~]$ ls /usr/lib/python2.4/site-packages/psyco/
to:
 [~]$ ls /usr/lib/python2.4/site-packages/psyco/
Changed lines 53-56 from:
 [~]# cd /usr/src/
 [/usr/src]# tar xzvf ~slug/psyco-1.5.2-src.tar.gz
 [/usr/src]# cp -r psyco-1.5.2/psyco /usr/lib/python2.3/site-packages/
to:
 [~]#  cd /usr/src/
 [/usr/src]#  tar xzvf ~slug/psyco-1.5.2-src.tar.gz
 [/usr/src]#  cp -r psyco-1.5.2/psyco /usr/lib/python2.3/site-packages/
Changed lines 59-60 from:
 [~]$ make update-master
to:
 [~]$ make update-master
Changed lines 65-66 from:
 [~]$ make setup-host-centos
to:
 [~]$ make setup-host-centos
Changed lines 77-81 from:
 [~]# yum install git*
 [~]# yum install quilt*
 [~]# yum install python-sqlite2
 [~]# rpm -ivh http://www.python.org/pyvault/centos-4-i386/help2man-1.29-1.noarch.rpm
to:
 [~]#  yum install git*
 [~]#  yum install quilt*
 [~]#  yum install python-sqlite2
 [~]#  rpm -ivh http://www.python.org/pyvault/centos-4-i386/help2man-1.29-1.noarch.rpm%%
Changed lines 84-86 from:
 [~]$ mtn db migrate --db=monotone/nslu2-linux.mtn
 [~]$ mtn db regenerate_caches --db=monotone/nslu2-linux.mtn
to:
 [~]$ mtn db migrate --db=monotone/nslu2-linux.mtn
 [~]$ mtn db regenerate_caches --db=monotone/nslu2-linux.mtn
Changed lines 95-96 from:
 [~]# make setup-host-centos
to:
 [~]#  make setup-host-centos
Changed lines 99-100 from:
 [~]$ make setup-openembedded
to:
 [~]$ make setup-openembedded
Changed lines 109-113 from:
 [~]$ mkdir downloads
 [~]$ cp IPL_ixp400NpeLibrary-2_4.zip downloads
 [~]$ cd downloads
 [~/downloads]$ md5sum -b IPL_ixp400NpeLibrary-2_4.zip >IPL_ixp400NpeLibrary-2_4.zip.md5
to:
 [~]$ mkdir downloads
 [~]$ cp IPL_ixp400NpeLibrary-2_4.zip downloads
 [~]$ cd downloads
 [~/downloads]$ md5sum -b IPL_ixp400NpeLibrary-2_4.zip >IPL_ixp400NpeLibrary-2_4.zip.md5
Changed lines 116-120 from:
 [~/downloads]$ cd ~
 [~]$ make slugosle  (took about 6 hours to finish - 684 tasks)
 [~]$ make slugosbe  (about 2 hours as some stuff can be re-used)
 [~]$ make update    (this updates all packages, keys, etc.)
to:
 [~/downloads]$ cd ~
 [~]$ make slugosle  (took about 6 hours to finish - 684 tasks)
 [~]$ make slugosbe  (about 2 hours as some stuff can be re-used)
 [~]$ make update    (this updates all packages, keys, etc.)
Changed lines 123-125 from:
 /home/slug/slugos/tmp/deploy/images
to:
 /home/slug/slugos/tmp/deploy/images
Changed lines 133-134 from:

/home/slug/slugosle/openembedded/packages/mtd

to:
 /home/slug/slugosle/openembedded/packages/mtd
Changed lines 137-138 from:

http://www.openembedded.org/oefaq

to:
 http://www.openembedded.org/oefaq
Changed lines 148-149 from:
 [~]$ cat >>~/.bashrc
to:
 [~]$ cat >>~/.bashrc
Changed lines 151-152 from:
 export PATH="$PATH:/home/slug/slugos/tmp/cross/bin:"
to:
 export PATH="$PATH:/home/slug/slugos/tmp/cross/bin:"
Changed lines 155-156 from:
 [~]$ source ~/.bashrc
to:
 [~]$ source ~/.bashrc
Changed lines 159-160 from:
 [~]$ svn co http://svn.nslu2-linux.org/svnroot/kernel/trunk /home/slug/kernel
to:
 [~]$ svn co http://svn.nslu2-linux.org/svnroot/kernel/trunk /home/slug/kernel
Changed lines 165-167 from:
 [~]$ cd /home/slug/kernel
 [~/kernel]$ ln -s ../downloads .
to:
 [~]$ cd /home/slug/kernel
 [~/kernel]$ ln -s ../downloads .
Changed lines 170-172 from:
 [~/kernel]$ cd ~; wget http://140.211.166.134/pub/nslu2/sources/devio-1.3-1.i386.rpm
 [/home/slug]# rpm -ivh ~slug/devio-1.3-1.i386.rpm
to:
 [~/kernel]$ cd ~; wget http://140.211.166.134/pub/nslu2/sources/devio-1.3-1.i386.rpm
 [/home/slug]#  rpm -ivh ~slug/devio-1.3-1.i386.rpm
Changed lines 175-176 from:
 [~/kernel]$ make APEX_CONFIG=debian apex
to:
 [~/kernel]$ make APEX_CONFIG=debian apex
Changed lines 182-185 from:
 [~/kernel]$ svn up               (should show something like:  ""At revision 1062."")
 [~/kernel]$ make clobber-apex    (this just deletes all the old binaries)
 [~/kernel]$ make APEX_CONFIG=debian apex
to:
 [~/kernel]$ svn up               (should show something like:  ""At revision 1062."")
 [~/kernel]$ make clobber-apex    (this just deletes all the old binaries)
 [~/kernel]$ make APEX_CONFIG=debian apex
Changed lines 193-194 from:
 [~]$ find . -name '*.bin'
to:
 [~]$ find . -name '*.bin'
Changed lines 203-205 from:
 # ln -s /home/slug/slugos/tmp/work/i686-linux/slugimage-native-1.0-r12/slugimage \
    /usr/local/bin/
to:
 [~]#  ln -s /home/slug/slugos/tmp/work/i686-linux/slugimage-native-1.0-r12/slugimage \
    /usr/local/bin/
May 27, 2008, at 02:16 AM by Rob Lockhart -- syntax
Changed lines 7-8 from:
 I'm also using the notation [/absolute/path] to show the present working directory, and "~" to mean the home directory of the current user (whether it is root or slug).  To do this on your system, type:
to:

I'm also using the notation [/absolute/path] to show the present working directory, and "~" to mean the home directory of the current user (whether it is root or slug). To do this on your system, type:

May 27, 2008, at 02:16 AM by Rob Lockhart -- syntax only
Changed lines 8-10 from:
  export PS1?='[\w]\$ '
to:
  export PS1='[\w]\$ '
May 27, 2008, at 02:13 AM by Rob Lockhart -- added paths in prompts for clarification purposes
Changed lines 7-10 from:
to:
 I'm also using the notation [/absolute/path] to show the present working directory, and "~" to mean the home directory of the current user (whether it is root or slug).  To do this on your system, type:
  export PS1?='[\w]\$ '
Changed lines 13-16 from:
 # useradd -m slug
 # su - slug
 $ cd /home/slug
to:
 [~]# useradd -m slug
 [~]# su - slug
 [~]$ cd /home/slug
Changed lines 19-20 from:
 $ wget http://www.nslu2-linux.org/Makefile
to:
 [~]$ wget http://www.nslu2-linux.org/Makefile
Changed lines 23-29 from:
 $ wget http://monotone.ca/downloads/0.29/monotone-0.29.tar.gz
 # cd /usr/src; tar xzvf ~slug/monotone-0.29.tar.gz
 # cd monotone-0.29; ./configure
 # make
 # chmod ugo+rw  . -R
 $ make check
to:
 [~]$ wget http://monotone.ca/downloads/0.29/monotone-0.29.tar.gz
 [~]# cd /usr/src; tar xzvf ~slug/monotone-0.29.tar.gz
 [/usr/src]# cd monotone-0.29; ./configure
 [/usr/src/monotone-0.29]# make
 [/usr/src/monotone-0.29]# chmod ugo+rw  . -R
 [/usr/src/monotone-0.29]$ make check          <--- NOTE DONE AS NON-ROOT IN ORDER TO NOT FAIL!!
Changed lines 32-33 from:
 # make install
to:
 [/usr/src/monotone-0.29]# make install
Changed lines 36-37 from:
 $ python -V
to:
 [/usr/src/monotone-0.29]$ cd ~
 [~]$ python -V
Changed lines 41-46 from:
 $ wget http://downloads.sourceforge.net/psyco/psyco-1.6-src.tar.gz
 # cd /usr/src
 # tar xzvf ~slug/psyco-1.6-src.tar.gz
 # cd psyco-1.6
 # python setup.py install
to:
 [~]$ wget http://downloads.sourceforge.net/psyco/psyco-1.6-src.tar.gz
 [~]# cd /usr/src
 [/usr/src]# tar xzvf ~slug/psyco-1.6-src.tar.gz
 [/usr/src]# cd psyco-1.6
 [/usr/src/psyco-1.6]# python setup.py install
Changed lines 49-50 from:
 $ ls /usr/lib/python2.4/site-packages/psyco/
to:
 [~]$ ls /usr/lib/python2.4/site-packages/psyco/
Changed lines 53-56 from:
 # cd /usr/src/
 # tar xzvf ~slug/psyco-1.5.2-src.tar.gz
 # cp -r psyco-1.5.2/psyco /usr/lib/python2.3/site-packages/
to:
 [~]# cd /usr/src/
 [/usr/src]# tar xzvf ~slug/psyco-1.5.2-src.tar.gz
 [/usr/src]# cp -r psyco-1.5.2/psyco /usr/lib/python2.3/site-packages/
Changed lines 59-60 from:
 $ make update-master
to:
 [~]$ make update-master
Changed lines 65-66 from:
 # make setup-host-centos
to:
 [~]$ make setup-host-centos
Changed lines 77-81 from:
 # yum install git*
 # yum install quilt*
 # yum install python-sqlite2
 # rpm -ivh http://www.python.org/pyvault/centos-4-i386/help2man-1.29-1.noarch.rpm
to:
 [~]# yum install git*
 [~]# yum install quilt*
 [~]# yum install python-sqlite2
 [~]# rpm -ivh http://www.python.org/pyvault/centos-4-i386/help2man-1.29-1.noarch.rpm
Changed lines 84-86 from:
 $ mtn db migrate --db=monotone/nslu2-linux.mtn
 $ mtn db regenerate_caches --db=monotone/nslu2-linux.mtn
to:
 [~]$ mtn db migrate --db=monotone/nslu2-linux.mtn
 [~]$ mtn db regenerate_caches --db=monotone/nslu2-linux.mtn
Changed lines 95-96 from:
 # make setup-host-centos
to:
 [~]# make setup-host-centos
Changed lines 99-100 from:
 $ make setup-openembedded
to:
 [~]$ make setup-openembedded
Changed lines 109-113 from:
 $ mkdir downloads
 $ cp IPL_ixp400NpeLibrary-2_4.zip downloads
 $ cd downloads
 $ md5sum -b IPL_ixp400NpeLibrary-2_4.zip >IPL_ixp400NpeLibrary-2_4.zip.md5
to:
 [~]$ mkdir downloads
 [~]$ cp IPL_ixp400NpeLibrary-2_4.zip downloads
 [~]$ cd downloads
 [~/downloads]$ md5sum -b IPL_ixp400NpeLibrary-2_4.zip >IPL_ixp400NpeLibrary-2_4.zip.md5
Changed lines 116-120 from:
 $ cd ~
 $ make slugosle  (took about 6 hours to finish - 684 tasks)
 $ make slugosbe  (about 2 hours as some stuff can be re-used)
 $ make update    (this updates all packages, keys, etc.)
to:
 [~/downloads]$ cd ~
 [~]$ make slugosle  (took about 6 hours to finish - 684 tasks)
 [~]$ make slugosbe  (about 2 hours as some stuff can be re-used)
 [~]$ make update    (this updates all packages, keys, etc.)
Changed lines 123-125 from:
 slugos/tmp/deploy/images
to:
 /home/slug/slugos/tmp/deploy/images
Changed lines 148-149 from:
 $ cat >>~/.bashrc
to:
 [~]$ cat >>~/.bashrc
Changed lines 155-156 from:
 $ source ~/.bashrc
to:
 [~]$ source ~/.bashrc
Changed lines 159-160 from:
 $ svn co http://svn.nslu2-linux.org/svnroot/kernel/trunk /home/slug/kernel
to:
 [~]$ svn co http://svn.nslu2-linux.org/svnroot/kernel/trunk /home/slug/kernel
Changed lines 165-167 from:
 $ cd /home/slug/kernel
 $ ln -s ../downloads .
to:
 [~]$ cd /home/slug/kernel
 [~/kernel]$ ln -s ../downloads .
Changed lines 170-172 from:
 $ cd ~; wget http://140.211.166.134/pub/nslu2/sources/devio-1.3-1.i386.rpm
 # rpm -ivh ~slug/devio-1.3-1.i386.rpm
to:
 [~/kernel]$ cd ~; wget http://140.211.166.134/pub/nslu2/sources/devio-1.3-1.i386.rpm
 [/home/slug]# rpm -ivh ~slug/devio-1.3-1.i386.rpm
Changed lines 174-176 from:
 $ cd ~/kernel; make APEX_CONFIG=debian apex
to:
 [~/kernel]$ make APEX_CONFIG=debian apex
Changed lines 181-185 from:
 $ cd ~/kernel
 $ svn up               (should show something like:  ""At revision 1062."")
 $ make clobber-apex    (this just deletes all the old binaries)
 $ make APEX_CONFIG=debian apex
to:
 [~/kernel]$ svn up               (should show something like:  ""At revision 1062."")
 [~/kernel]$ make clobber-apex    (this just deletes all the old binaries)
 [~/kernel]$ make APEX_CONFIG=debian apex
Changed lines 193-194 from:
 $ cd ~; find . -name '*.bin'
to:
 [~]$ find . -name '*.bin'
May 25, 2008, at 03:28 PM by Rob Lockhart -- restored \"make update\" to after builds for slugosbe/le
Deleted line 112:
 $ make update    (this updates all packages, keys, etc.)
Changed lines 115-116 from:
to:
 $ make update    (this updates all packages, keys, etc.)
May 25, 2008, at 03:24 PM by Rob Lockhart -- put \"make update\" before builds
Added line 113:
 $ make update    (this updates all packages, keys, etc.)
Changed lines 116-117 from:
 $ make update    (this updates all packages, keys, etc.)
to:
May 08, 2008, at 06:59 PM by Rob Lockhart -- made more clear the notes about monotone
Changed lines 78-79 from:

I you use an other version, you have to update the database, and re-generate all caches. This was necessary as the make above will likely fail (but will partially work, enough to get the .mtn file)

to:

If you use another version of monotone, you have to update the database, and re-generate all caches. This was necessary as the make above will likely fail (but will partially work, enough to get the .mtn file)

Deleted lines 80-84:

This took about 5 minutes - note if you use Monotone 0.29 the step above doesn't seem to be necessary.

Next, it told me that I should run (which I did):

Changed lines 83-84 from:

(took a VERY long time - 13,085 entries and took 30 minutes to get to 865). I let it run overnight (it took about 6 hours).

to:

The first took about 5 minutes - note if you use Monotone 0.29 the step above doesn't seem to be necessary.

Next, it told me that I should run (which I did) the regenerate caches, and that took a VERY long time - 13,085 entries and took 30 minutes to get to 865. I let it run overnight (it took about 6 hours). Again, note that this is NOT NECESSARY if you use monotone 0.29.

May 08, 2008, at 04:51 AM by Rob Lockhart -- updated CentOS links
Changed lines 2-3 from:

(running CentOS 5 with functioning yum and all updates to yum as of April 2008)

to:

(running CentOS 5 with functioning yum and all updates to yum as of April 2008)

Changed line 125 from:

Extra info - for non-CentOS? users

to:

Extra info - for non-CentOS linux distributions

May 08, 2008, at 03:43 AM by Rob Lockhart -- update link for FatFlash
Changed lines 176-177 from:

Now you should have several apex'es - dmsg600, fsg3, nas100d, nslu2 and nslu2-16MB (FatFlash?), all for Debian. To get the ones for slugos, then just "make apex" and you'll get the same versions of apex except all for slugos.

to:

Now you should have several apex'es - dmsg600, fsg3, nas100d, nslu2 and nslu2-16MB (FatFlash), all for Debian. To get the ones for slugos, then just "make apex" and you'll get the same versions of apex except all for slugos.

May 08, 2008, at 03:41 AM by Rob Lockhart -- Update with new information about Apex\'es
Changed lines 176-177 from:

Now you should have two different apex'es - nas100d and debian

to:

Now you should have several apex'es - dmsg600, fsg3, nas100d, nslu2 and nslu2-16MB (FatFlash?), all for Debian. To get the ones for slugos, then just "make apex" and you'll get the same versions of apex except all for slugos.

Added line 180:
 $ cd ~/kernel
May 05, 2008, at 12:07 AM by Rob Lockhart -- added note about updating
Changed lines 118-119 from:
to:
 $ make update    (this updates all packages, keys, etc.)
May 04, 2008, at 11:04 PM by Rob Lockhart -- cosmetic
Changed line 200 from:
 # ln -s /home/slug/slugos/tmp/work/i686-linux/slugimage-native-1.0-r12/slugimage \\\
to:
 # ln -s /home/slug/slugos/tmp/work/i686-linux/slugimage-native-1.0-r12/slugimage \
May 04, 2008, at 11:03 PM by Rob Lockhart -- cosmetic
Changed line 200 from:
 # ln -s /home/slug/slugos/tmp/work/i686-linux/slugimage-native-1.0-r12/slugimage \\
to:
 # ln -s /home/slug/slugos/tmp/work/i686-linux/slugimage-native-1.0-r12/slugimage \\\
May 04, 2008, at 11:03 PM by Rob Lockhart -- cosmetic
Changed line 200 from:
 # ln -s /home/slug/slugos/tmp/work/i686-linux/slugimage-native-1.0-r12/slugimage \
to:
 # ln -s /home/slug/slugos/tmp/work/i686-linux/slugimage-native-1.0-r12/slugimage \\
May 04, 2008, at 11:02 PM by Rob Lockhart -- added notes about slugimage
Added lines 198-204:

I had some issues with this at first, for some reason. I used the image compiled, and it gave me a message about "cannot find eRcOmM". I think it might be related to not using slugimage so I would recommend using that. Here it is:

 # ln -s /home/slug/slugos/tmp/work/i686-linux/slugimage-native-1.0-r12/slugimage     /usr/local/bin/

then look at the SlugImage page.

May 04, 2008, at 09:24 PM by Rob Lockhart -- removed reference to old instructions - no longer needed
Deleted lines 112-113:

note that above I had to change the name as it was looking for -2_3.zip and I only had -2_3_2.zip file.

Changed lines 119-121 from:
to:

After this is done, the files you compiled will be in this directory:

 slugos/tmp/deploy/images

Extra info - for non-CentOS? users

Deleted line 140:
Changed lines 144-145 from:

Once you have built slugosle and slugosbe, add /home/slug/slugosle/tmp/cross/bin and /home/slug/slugosbe/tmp/cross/bin to your path. This is done via appending these statements to /home/slug/.bashrc and re-sourcing it:

to:

Once you have built slugosle and slugosbe, add /home/slug/slugos/tmp/cross/bin to your path. This is done via appending these statements to /home/slug/.bashrc and re-sourcing it:

Changed lines 149-150 from:
 export PATH="$PATH:/home/slug/slugosle/tmp/cross/bin:/home/slug/slugosbe/tmp/cross/bin"
to:
 export PATH="$PATH:/home/slug/slugos/tmp/cross/bin:"
Changed lines 159-160 from:

After doing that, I got a bunch of stuff that looks like it was downloaded, and then it said "Checked out revision 819".

to:

After doing that, I got a bunch of stuff that looks like it was downloaded, and then it said "Checked out revision 1062".

Changed lines 166-170 from:

Next, you need "devio" RPM package (not part of CentOS):

 $ wget http://140.211.166.134/pub/nslu2/sources/devio-1.3-1.i386.rpm
 # rpm -ivh devio-1.3-1.i386.rpm
to:

Next, you need "devio" RPM package (not part of CentOS or default yum repository):

 $ cd ~; wget http://140.211.166.134/pub/nslu2/sources/devio-1.3-1.i386.rpm
 # rpm -ivh ~slug/devio-1.3-1.i386.rpm
Changed lines 172-174 from:
 $ make APEX_CONFIG=debian apex
to:
 $ cd ~/kernel; make APEX_CONFIG=debian apex
Changed line 179 from:
 $ svn up
to:
 $ svn up               (should show something like:  ""At revision 1062."")
Changed lines 190-191 from:
 $ find . -iname '*.bin'
to:
 $ cd ~; find . -name '*.bin'
May 04, 2008, at 04:22 PM by Rob Lockhart -- cosmetic again
Changed lines 104-105 from:

See "Intel IXP400 software - NPE microcode (non-crypto)" and click on the BLUE "2.4" text. You will need to agree to the Intel Public License to do so - please do read it! You'll have to go through a few dialog boxes where you click "AGREE" so this can't be automated. If you do not agree, stop here and go back to the Linksys firmware. I'll assume you download that file and put it in the slug home directory somehow. Don't even think about crypto support, the IXP420 doesn't have the hardware for it. The IXP465?, etc. have this hardware however.

to:

See "Intel IXP400 software - NPE microcode (non-crypto)" and click on the BLUE "2.4" text. You will need to agree to the Intel Public License to do so - please do read it! You'll have to go through a few dialog boxes where you click "AGREE" so this can't be automated. If you do not agree, stop here and go back to the Linksys firmware. I'll assume you download that file and put it in the slug home directory somehow. Don't even think about crypto support, the IXP420 doesn't have the hardware for it. The IXP465, etc. have this hardware however.

May 04, 2008, at 04:21 PM by Rob Lockhart -- note about crypto - IXP420 doesn\'t have the hardware needed to support it
Changed lines 104-105 from:

See "Intel IXP400 software - NPE microcode (non-crypto)" and click on the BLUE "2.4" text. You will need to agree to the Intel Public License to do so - please do read it! You'll have to go through a few dialog boxes where you click "AGREE" so this can't be automated. If you do not agree, stop here and go back to the Linksys firmware. I'll assume you download that file and put it in the slug home directory somehow.

to:

See "Intel IXP400 software - NPE microcode (non-crypto)" and click on the BLUE "2.4" text. You will need to agree to the Intel Public License to do so - please do read it! You'll have to go through a few dialog boxes where you click "AGREE" so this can't be automated. If you do not agree, stop here and go back to the Linksys firmware. I'll assume you download that file and put it in the slug home directory somehow. Don't even think about crypto support, the IXP420 doesn't have the hardware for it. The IXP465?, etc. have this hardware however.

May 04, 2008, at 03:26 PM by Rob Lockhart -- updated time estimates
Changed lines 118-123 from:
 $ make slugosle  (took about 2 hours to finish)
 $ make slugosbe  (about the same time as above)
to:
 $ make slugosle  (took about 6 hours to finish - 684 tasks)
 $ make slugosbe  (about 2 hours as some stuff can be re-used)
May 04, 2008, at 03:09 PM by Rob Lockhart -- changed NPE to 2.4
Changed lines 103-105 from:

Next, you'll have to download the Intel microcode. Googling for the file showed this link. You'll have to open it in a browser, because you have to agree to the licensing terms. Open it in a browser, then click the Download text. Then carefully read the agreement, then click "ACCEPT" if you accept the licensing agreement. If not, stop here and go back to the Linksys firmware. I'll assume you download that file and put it in the slug home directory somehow.

to:

Next, you'll have to download the Intel microcode. You must manually download IPL_ixp400NpeLibrary-2_4.zip from HERE. See "Intel IXP400 software - NPE microcode (non-crypto)" and click on the BLUE "2.4" text. You will need to agree to the Intel Public License to do so - please do read it! You'll have to go through a few dialog boxes where you click "AGREE" so this can't be automated. If you do not agree, stop here and go back to the Linksys firmware. I'll assume you download that file and put it in the slug home directory somehow.

Changed line 109 from:
 $ cp IPL_ixp400NpeLibrary-2_3_2.zip downloads   (into slug/downloads directory)
to:
 $ cp IPL_ixp400NpeLibrary-2_4.zip downloads
Changed lines 111-114 from:
 $ md5sum -b IPL_ixp400NpeLibrary-2_3_2.zip >IPL_ixp400NpeLibrary-2_3_2.zip.md5
 $ cp IPL_ixp400NpeLibrary-2_3_2.zip IPL_ixp400NpeLibrary-2_3.zip
 $ md5sum -b IPL_ixp400NpeLibrary-2_3.zip >IPL_ixp400NpeLibrary-2_3.zip.md5
to:
 $ md5sum -b IPL_ixp400NpeLibrary-2_4.zip >IPL_ixp400NpeLibrary-2_4.zip.md5
May 04, 2008, at 03:37 AM by Rob Lockhart -- Major updates for CentOS 5.
Changed lines 2-3 from:

(running CentOS 4.4 with functioning yum and all updates to yum as of April 2007)

to:

(running CentOS 5 with functioning yum and all updates to yum as of April 2008)

Deleted line 7:
Added line 11:
 # su - slug
Changed lines 18-21 from:

(for CentOS): need to build monotone from here. (Get the source. I (david) recommend to use monotone 0.29 instead of the 0.34 described here. Here's where to get 0.29. See below why.)

 # cd /usr/src; tar xzvf monotone-0.34.tar.gz
 # cd monotone-0.34; ./configure
to:

(for CentOS): need to build monotone from here. (Get the source. I (david) recommend to use monotone 0.29 instead of the latest. Here's where to get 0.29. See below why.)

 $ wget http://monotone.ca/downloads/0.29/monotone-0.29.tar.gz
 # cd /usr/src; tar xzvf ~slug/monotone-0.29.tar.gz
 # cd monotone-0.29; ./configure
Changed lines 24-25 from:
 # chmod ugo+r .deps * -R
to:
 # chmod ugo+rw  . -R
Changed lines 27-28 from:

(above should complete with no errors - one test is to have errors and make sure monotone detects them)

to:

The above should complete with no errors - one test is to have errors and make sure monotone detects them. Note that it will take about an hour to run on a P4-2.0GHz with 1GB RAM.

Changed lines 31-35 from:

This is going to take a VERY LONG time (took me more than 1hr on a P4-2.0GHz with 1GB DDR RAM).

NOTE: Psyco JIT Compiler needs to be installed it to increase performance. This is only on i386-type build platforms. Download the version you need by first determining the version of python you have.

to:

Next, Psyco JIT Compiler needs to be installed in order to increase performance. This is only on i386-type build platforms. Download the version you need by first determining the version of python you have.

Changed lines 35-37 from:

for me it showed Python 2.3.4 so that means I would download psyco-1.5.2-linux.i386-2.3.tar.gz. I tar xzvf'ed it in /usr/src so it would be in the /usr/src/psyco-1.5.2 location. I then copied (per the INSTALL.txt) the psyco folder to the python site-packages dir:

to:

For CentOS? 5, it showed Python 2.4.3, so download the latest psyco-1.6. If you have Python version earlier than 2.2.2, then you have to use psyco-1.5.2. More details in the README.txt file for 1.6

 $ wget http://downloads.sourceforge.net/psyco/psyco-1.6-src.tar.gz
 # cd /usr/src
 # tar xzvf ~slug/psyco-1.6-src.tar.gz
 # cd psyco-1.6
 # python setup.py install

To confirm it worked:

 $ ls /usr/lib/python2.4/site-packages/psyco/

For 1.5.2 only, tar xzvf'ed it in /usr/src so it would be in the /usr/src/psyco-1.5.2 location. Then copy (per the INSTALL.txt) the psyco folder to the python site-packages directory as follows. Note that you may have to change your python directory if different than version 2.3 below

Added line 50:
 # tar xzvf ~slug/psyco-1.5.2-src.tar.gz
Changed lines 53-55 from:

Next, download the entire database for building the SLUG packages:

to:

Next, download the Monotone database for building SLUG packages:

Changed lines 57-60 from:

(this takes a while as it verifies certificates, keys, revisions, etc.)

Next, setup the build environment for CentOS:

to:

This takes about 6 hours (P4-2GHz with 1GB RAM) as it downloads a 160MB OpenEmbedded Monotone file, verifies certificates, keys, revisions, etc.

Next, setup the build environment for CentOS. You'll be prompted for the root password as some packages (via yum) will be installed.

Changed lines 63-64 from:

The monotone database file is built with monotone 0.29. If you have a monotone version upper than this, you need to update it. Note that this is a very long (and unstable) process (I have not been able to update the database on my Amd64 box running Ubuntu (feisty) with the monotone supplied with the system, nor with the 0.34 and 0.36 versions I compiled). For this reasons, I greatly recommend you compile your version of monotone 0.29.

to:

The monotone database file is built with monotone 0.29. If you have a monotone version upper than this, you need to update it. Note that this is a very long (and unstable) process (I have not been able to update the database on my Amd64 box running Ubuntu (feisty) with the monotone supplied with the system, nor with the 0.34 and 0.36 versions I compiled). For this reason, I greatly recommend you compile your version of monotone with version 0.29 only. When the make update-master process proceeds, you'll be able to confirm this by seeing the line OE-this-is-for-mtn-0.29.mtn.bz2 from the snapshot download.

You'll see some messages as those shown below:

  You will have to install quilt separately. See http://centos.karan.org/
  You will have to install git separately. See http://rpmforge.net/
  You will have to install monotone separately. See http://venge.net/monotone/

I first did yum install git* which seemed to work fine. Note that monotone is already installed. Then I did the same for quilt, which also installed without problems. You'll need "python-sqlite2" so go ahead and install it as well. At the make process, I needed "help2man" so go ahead and install it as well.

 # yum install git*
 # yum install quilt*
 # yum install python-sqlite2
 # rpm -ivh http://www.python.org/pyvault/centos-4-i386/help2man-1.29-1.noarch.rpm
Changed lines 82-83 from:

(this took about 5 minutes)

to:

This took about 5 minutes - note if you use Monotone 0.29 the step above doesn't seem to be necessary.

Changed lines 103-107 from:
to:

Next, you'll have to download the Intel microcode. Googling for the file showed this link. You'll have to open it in a browser, because you have to agree to the licensing terms. Open it in a browser, then click the Download text. Then carefully read the agreement, then click "ACCEPT" if you accept the licensing agreement. If not, stop here and go back to the Linksys firmware. I'll assume you download that file and put it in the slug home directory somehow.

Note that (per rwhitby) if you search on the IXP 400 family on the Intel web site, you'll find 3.0.1 (or higher) but that only supports 43x and 46x processors (not 420 on the NSLU2). So don't waste your time even thinking about 3.0.1.

Changed lines 113-114 from:
 $ cp IPL_ixp400NpeLibrary-2_3_2.zip.md5 IPL_ixp400NpeLibrary-2_3.zip.md5
to:
 $ md5sum -b IPL_ixp400NpeLibrary-2_3.zip >IPL_ixp400NpeLibrary-2_3.zip.md5
Added line 119:
 $ cd ~
Added lines 123-125:
May 03, 2008, at 05:28 PM by Rob Lockhart -- added link to location of monotone 0.29
Changed line 18 from:

(for CentOS): need to build monotone from here. (Get the source. I (david) recommend to use monotone 0.29 instead of the 0.34 described here. See below why.)

to:

(for CentOS): need to build monotone from here. (Get the source. I (david) recommend to use monotone 0.29 instead of the 0.34 described here. Here's where to get 0.29. See below why.)

September 18, 2007, at 10:10 PM by David Douard -- Tell people to use monotone 0.29 to prevent db upgrade
Changed line 18 from:

(for CentOS): need to build monotone from here. (get the source)

to:

(for CentOS): need to build monotone from here. (Get the source. I (david) recommend to use monotone 0.29 instead of the 0.34 described here. See below why.)

Changed lines 55-56 from:

Since you installed monotone, it's likely not going to be the right version. I used version 0.34 (whereas active may have been 0.33). This caused me to do update the database, and re-generate all caches. This was necessary as the make above will likely fail (but will partially work, enough to get the .mtn file)

to:

The monotone database file is built with monotone 0.29. If you have a monotone version upper than this, you need to update it. Note that this is a very long (and unstable) process (I have not been able to update the database on my Amd64 box running Ubuntu (feisty) with the monotone supplied with the system, nor with the 0.34 and 0.36 versions I compiled). For this reasons, I greatly recommend you compile your version of monotone 0.29.

I you use an other version, you have to update the database, and re-generate all caches. This was necessary as the make above will likely fail (but will partially work, enough to get the .mtn file)

April 30, 2007, at 09:31 PM by Mark Tilsley --
Changed lines 112-113 from:
to:

--

April 30, 2007, at 09:30 PM by Mark Tilsley -- Extra instruction for Deb / Ubuntu users
Added lines 95-113:

NOTE: Both the above currently fail around task 569 of 645 for Deb or Ubuntu users

git is now called gitfm

This can be fixed by deleting the errant mtd-utils-native_1.0.0+git.bb file from the folder

/home/slug/slugosle/openembedded/packages/mtd

as by the instruction at

http://www.openembedded.org/oefaq

Section 2 Build errors

Q 10 gitfm is run instead of git

April 15, 2007, at 08:25 AM by Rob Lockhart -- fixed typo
Changed lines 71-72 from:
 # make setuo-host-centos
to:
 # make setup-host-centos
April 14, 2007, at 05:56 PM by Rob Lockhart -- added notes about where images are located
Changed lines 101-102 from:
   (then "CTRL-D" to exit and save)
to:

then "CTRL-D" to exit and save. Now, re-source your .bashrc file:

 $ source ~/.bashrc
Added lines 139-151:

Now, where are those images? type:

 $ find . -iname '*.bin'

and you'll see some directories named 'deploy'. Those are where the compiled images are located. NOTE: you'll see the files like 'slugosle-4.4-beta-nslu2.bin'. That is the actual image you would upload to flash per the various instructions in the wiki's:

  1. ReflashUsingRedbootAndTFTP
  2. ReflashUsingApexAndXmodem
  3. UpSlug2
  4. SercommFirmwareUpdater

I used the first instructions, as I use TFTP at work via custom boot loader, and am very comfortable with it. I know that a lot of the instructions warn about not using it, there are better ways, etc. but that is the only instruction set that will work with both Linux and Windows environments (at least that I know), without having to install SerComm, etc. utility (which I don't want).

Note that you can always use SlugImage to replace parts of the image, instead of replacing the whole thing. I did this for FatSlug, as I only wanted to upgrade the Apex bootloader (for >32MiB memory detection).

April 12, 2007, at 01:19 PM by fcarolo -- link formatting
Changed line 116 from:
 $ wget http://140.211.166.134/pub/nslu2/sources/devio-1.3-1.i386.rpm
to:
 $ wget http://140.211.166.134/pub/nslu2/sources/devio-1.3-1.i386.rpm
April 12, 2007, at 01:18 PM by fcarolo -- link formatting
Changed lines 2-3 from:

(running CentOS? 4.4 with functioning yum and all updates to yum as of April 2007)

to:

(running CentOS 4.4 with functioning yum and all updates to yum as of April 2007)

Changed line 18 from:

(for CentOS?): need to build monotone from here. (get the source)

to:

(for CentOS): need to build monotone from here. (get the source)

Changed lines 51-52 from:

Next, setup the build environment for CentOS?:

to:

Next, setup the build environment for CentOS:

Changed lines 79-80 from:
 http://www.nslu2-linux.org/wiki/Development/DownloadingTheIntelSourceCode
to:
Changed lines 105-106 from:
 $ svn co http://svn.nslu2-linux.org/svnroot/kernel/trunk /home/slug/kernel
to:
 $ svn co http://svn.nslu2-linux.org/svnroot/kernel/trunk /home/slug/kernel
Changed lines 114-115 from:

Next, you need "devio" RPM package (not part of CentOS?):

to:

Next, you need "devio" RPM package (not part of CentOS):

April 11, 2007, at 05:10 AM by Rob Lockhart -- Initial creation, from Wiki sandbox
Changed lines 1-19 from:

Getting a cross-compiled env set up on a linux PC (running CentOS? 4 with functioning yum and all updates to yum as of April 2007)

$ => implies non-root

  1. => implies root
  2. useradd -m slug

$ cd /home/slug $ wget http://www.nslu2-linux.org/Makefile

(for CentOS?): need to build monotone from here: http://venge.net/monotone/

              # ./configure
              # make
              do below as non-root, and do this first (as root)
              # chmod ugo+r .deps * -R
              $ make check
              do the above as non-root, and do this first (as root)
              # make install
to:

Getting a cross-compiled environment set up on a Linux PC

(running CentOS? 4.4 with functioning yum and all updates to yum as of April 2007)

Throughout this document, please note the command prefixes. Only do things as root as necessary, as you can and will mess up your working Linux box if you do everything as root.

 $ => implies non-root ("slug" account)
 # => implies root

Assuming you don't already have a user "slug", you have to first create that user.

 # useradd -m slug
 $ cd /home/slug

Next, get the master Makefile from the NSLU2 repository:

 $ wget http://www.nslu2-linux.org/Makefile

(for CentOS?): need to build monotone from here. (get the source)

 # cd /usr/src; tar xzvf monotone-0.34.tar.gz
 # cd monotone-0.34; ./configure
 # make

 # chmod ugo+r .deps * -R
 $ make check

(above should complete with no errors - one test is to have errors and make sure monotone detects them)

 # make install
Changed lines 34-99 from:

NOTE: Psyco JIT Compiler (http://psyco.sf.net) not available. Install it to increase performance. This is only on i386-type build platforms. Download the version you need by first determining the version of python you have.

$ python -V for me it showed Python 2.3.4 so that means I would download psyco-1.5.2-linux.i386-2.3.tar.gz I then tar xzvf'ed it, and copied (per the INSTALL.txt) the psyco folder:

  1. cp -r psyco-1.5.2/psyco /usr/lib/python2.3/site-packages/

$ make update-master (takes a while as it verifies certificates, keys, revisions, etc.)

  1. make setup-host-centos (as root)

Since you installed monotone, it's likely not going to be the right version. I used version 0.34 (whereas active may have been 0.33). This caused me to do:

$ mtn db migrate --db=monotone/nslu2-linux.mtn (took about 5 minutes I think)

After that, it told me that I should run (which I did): $ mtn db regenerate_caches --db=monotone/nslu2-linux.mtn (took a VERY long time - 13,085 entries and took 30 minutes to get to 865). I let it run overnight (it took about 6 hours).

(examples found from page 98 here: http://monotone.ca/monotone.pdf )

I ran this below just to be sure (but it wasn't needed):

  1. make setuo-host-centos

Next, this may take some time... it goes thru certificates and keys. It took me about 10 minutes. $ make setup-openembedded

Next step will fail, because you have to manually download the Intel source code for RedBoot and the Intel microcode for the Ethernet device: http://www.nslu2-linux.org/wiki/Development/DownloadingTheIntelSourceCode

$ mkdir downloads $ cp IPL_ixp400NpeLibrary-2_3_2.zip downloads (into slug/downloads directory) $ cd downloads $ md5sum -b IPL_ixp400NpeLibrary-2_3_2.zip >IPL_ixp400NpeLibrary-2_3_2.zip.md5 $ cp IPL_ixp400NpeLibrary-2_3_2.zip IPL_ixp400NpeLibrary-2_3.zip $ cp IPL_ixp400NpeLibrary-2_3_2.zip.md5 IPL_ixp400NpeLibrary-2_3.zip.md5

note that above I had to change the name as it was looking for -2_3.zip and I only had -2_3_2.zip file.

$ make slugosle (took about 2 hours to finish) $ make slugosbe (about the same time as above)

once you have built slugosle and slugosbe, check out our kernel svn repo into /home/slug/kernel, and then add /home/slug/slugosle/tmp/cross/bin and /home/slug/ slugosbe/tmp/cross/bin to your path. then you can build all our bleeding edge kernel and apex stuff

$ svn co http://svn.nslu2-linux.org/svnroot/kernel/trunk /home/slug/kernel after doing that, I got a bunch of stuff that looks like it was downloaded, and then it said "Checked out revision 819".

Now, to make Apex, do the following: $ cd /home/slug/kernel $ ln -s ../downloads .

to:

NOTE: Psyco JIT Compiler needs to be installed it to increase performance. This is only on i386-type build platforms. Download the version you need by first determining the version of python you have.

 $ python -V

for me it showed Python 2.3.4 so that means I would download psyco-1.5.2-linux.i386-2.3.tar.gz. I tar xzvf'ed it in /usr/src so it would be in the /usr/src/psyco-1.5.2 location. I then copied (per the INSTALL.txt) the psyco folder to the python site-packages dir:

 # cd /usr/src/
 # cp -r psyco-1.5.2/psyco /usr/lib/python2.3/site-packages/

Next, download the entire database for building the SLUG packages:

 $ make update-master

(this takes a while as it verifies certificates, keys, revisions, etc.)

Next, setup the build environment for CentOS?:

 # make setup-host-centos

Since you installed monotone, it's likely not going to be the right version. I used version 0.34 (whereas active may have been 0.33). This caused me to do update the database, and re-generate all caches. This was necessary as the make above will likely fail (but will partially work, enough to get the .mtn file)

 $ mtn db migrate --db=monotone/nslu2-linux.mtn

(this took about 5 minutes)

Next, it told me that I should run (which I did):

 $ mtn db regenerate_caches --db=monotone/nslu2-linux.mtn

(took a VERY long time - 13,085 entries and took 30 minutes to get to 865). I let it run overnight (it took about 6 hours).

examples found from page 98 here:

I ran this again just to be sure (but it wasn't needed):

 # make setuo-host-centos

Next, this may take some time... it goes thru certificates and keys. It took me about 10 minutes.

 $ make setup-openembedded

Next step will fail, because you have to manually download the Intel source code for RedBoot and the Intel microcode for the Ethernet device:

 http://www.nslu2-linux.org/wiki/Development/DownloadingTheIntelSourceCode

 $ mkdir downloads
 $ cp IPL_ixp400NpeLibrary-2_3_2.zip downloads   (into slug/downloads directory)
 $ cd downloads
 $ md5sum -b IPL_ixp400NpeLibrary-2_3_2.zip >IPL_ixp400NpeLibrary-2_3_2.zip.md5
 $ cp IPL_ixp400NpeLibrary-2_3_2.zip IPL_ixp400NpeLibrary-2_3.zip
 $ cp IPL_ixp400NpeLibrary-2_3_2.zip.md5 IPL_ixp400NpeLibrary-2_3.zip.md5

note that above I had to change the name as it was looking for -2_3.zip and I only had -2_3_2.zip file.

Next, let's do some actual builds!

 $ make slugosle  (took about 2 hours to finish)
 $ make slugosbe  (about the same time as above)

Once you have built slugosle and slugosbe, add /home/slug/slugosle/tmp/cross/bin and /home/slug/slugosbe/tmp/cross/bin to your path. This is done via appending these statements to /home/slug/.bashrc and re-sourcing it:

 $ cat >>~/.bashrc

   (then paste in this text):
 export PATH="$PATH:/home/slug/slugosle/tmp/cross/bin:/home/slug/slugosbe/tmp/cross/bin"
   (then "CTRL-D" to exit and save)

Next, check out the kernel via:

 $ svn co http://svn.nslu2-linux.org/svnroot/kernel/trunk /home/slug/kernel

After doing that, I got a bunch of stuff that looks like it was downloaded, and then it said "Checked out revision 819".

Now, to make Apex (boot loader), do the following:

 $ cd /home/slug/kernel
 $ ln -s ../downloads .
Changed lines 115-121 from:

$ wget http://140.211.166.134/pub/nslu2/sources/devio-1.3-1.i386.rpm

  1. rpm -ivh devio-1.3-1.i386.rpm

to use the debian config do this (otherwise it defaults to slugos config) (that should make apex) $ make APEX_CONFIG=debian apex

to:
 $ wget http://140.211.166.134/pub/nslu2/sources/devio-1.3-1.i386.rpm
 # rpm -ivh devio-1.3-1.i386.rpm

To use the debian config do this (otherwise it defaults to slugos config) to make Apex:

 $ make APEX_CONFIG=debian apex
Changed lines 126-129 from:

$ svn up $ make clobber-apex $ make APEX_CONFIG=debian apex

to:
 $ svn up
 $ make clobber-apex    (this just deletes all the old binaries)
 $ make APEX_CONFIG=debian apex
Added line 132:
Deleted lines 135-137:
April 11, 2007, at 04:34 AM by Rob Lockhart -- initial creation
Added lines 1-110:

Getting a cross-compiled env set up on a linux PC (running CentOS? 4 with functioning yum and all updates to yum as of April 2007)

$ => implies non-root

  1. => implies root
  2. useradd -m slug

$ cd /home/slug $ wget http://www.nslu2-linux.org/Makefile

(for CentOS?): need to build monotone from here: http://venge.net/monotone/

              # ./configure
              # make
              do below as non-root, and do this first (as root)
              # chmod ugo+r .deps * -R
              $ make check
              do the above as non-root, and do this first (as root)
              # make install

This is going to take a VERY LONG time (took me more than 1hr on a P4-2.0GHz with 1GB DDR RAM).

NOTE: Psyco JIT Compiler (http://psyco.sf.net) not available. Install it to increase performance. This is only on i386-type build platforms. Download the version you need by first determining the version of python you have.

$ python -V for me it showed Python 2.3.4 so that means I would download psyco-1.5.2-linux.i386-2.3.tar.gz I then tar xzvf'ed it, and copied (per the INSTALL.txt) the psyco folder:

  1. cp -r psyco-1.5.2/psyco /usr/lib/python2.3/site-packages/

$ make update-master (takes a while as it verifies certificates, keys, revisions, etc.)

  1. make setup-host-centos (as root)

Since you installed monotone, it's likely not going to be the right version. I used version 0.34 (whereas active may have been 0.33). This caused me to do:

$ mtn db migrate --db=monotone/nslu2-linux.mtn (took about 5 minutes I think)

After that, it told me that I should run (which I did): $ mtn db regenerate_caches --db=monotone/nslu2-linux.mtn (took a VERY long time - 13,085 entries and took 30 minutes to get to 865). I let it run overnight (it took about 6 hours).

(examples found from page 98 here: http://monotone.ca/monotone.pdf )

I ran this below just to be sure (but it wasn't needed):

  1. make setuo-host-centos

Next, this may take some time... it goes thru certificates and keys. It took me about 10 minutes. $ make setup-openembedded

Next step will fail, because you have to manually download the Intel source code for RedBoot and the Intel microcode for the Ethernet device: http://www.nslu2-linux.org/wiki/Development/DownloadingTheIntelSourceCode

$ mkdir downloads $ cp IPL_ixp400NpeLibrary-2_3_2.zip downloads (into slug/downloads directory) $ cd downloads $ md5sum -b IPL_ixp400NpeLibrary-2_3_2.zip >IPL_ixp400NpeLibrary-2_3_2.zip.md5 $ cp IPL_ixp400NpeLibrary-2_3_2.zip IPL_ixp400NpeLibrary-2_3.zip $ cp IPL_ixp400NpeLibrary-2_3_2.zip.md5 IPL_ixp400NpeLibrary-2_3.zip.md5

note that above I had to change the name as it was looking for -2_3.zip and I only had -2_3_2.zip file.

$ make slugosle (took about 2 hours to finish) $ make slugosbe (about the same time as above)

once you have built slugosle and slugosbe, check out our kernel svn repo into /home/slug/kernel, and then add /home/slug/slugosle/tmp/cross/bin and /home/slug/ slugosbe/tmp/cross/bin to your path. then you can build all our bleeding edge kernel and apex stuff

$ svn co http://svn.nslu2-linux.org/svnroot/kernel/trunk /home/slug/kernel after doing that, I got a bunch of stuff that looks like it was downloaded, and then it said "Checked out revision 819".

Now, to make Apex, do the following: $ cd /home/slug/kernel $ ln -s ../downloads .

Next, you need "devio" RPM package (not part of CentOS?): $ wget http://140.211.166.134/pub/nslu2/sources/devio-1.3-1.i386.rpm

  1. rpm -ivh devio-1.3-1.i386.rpm

to use the debian config do this (otherwise it defaults to slugos config) (that should make apex) $ make APEX_CONFIG=debian apex

Now you should have two different apex'es - nas100d and debian

To upgrade APEX (i.e., to a newer version), do this: $ svn up $ make clobber-apex $ make APEX_CONFIG=debian apex

These are the default commands for the build (which are enabled): kernel/apex-1.4.18/src/apex/Kconfig NOTE: there are the changes to the defaults: kernel/patches/apex/enable-commands.patch

view · edit · print · history · Last edited by Rob Lockhart.
Based on work by Rob Lockhart, David Douard, Mark Tilsley, and fcarolo.
Originally by Rob Lockhart.
Page last modified on June 21, 2008, at 08:33 PM