summaryrefslogtreecommitdiff
path: root/README
blob: 86d76263fa9674bc9e2b040d877abea62bd764a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
1. Context and Goals

The "tam3517-build-everything.sh" script is a simple and quite stupid script for building a production-aware base SD image of Linux/Amstrong for Technexion TAM3517 (used with Twister dev board) on a already-working Linux called the "host system".

First of all, I am not providing any kind of waranty about this script, his consequences on the host system or on his results (the generated target-system in the SD image file).

This script has been written and tested for Linux/Debian 5.0 and 6.0 (aka. Lenny and Squeeze) host system. It should be used, with minor modifications, on other analogous platforms. For example, for Ubuntu, you have to comment out sources.list.d modifications because the arm toolchain is in main repositories. Feel free to adapt that for other host systems. You can drop me a mail with your version and I will put it together my work on my web site if you want so.

This script involves many complicated steps suchs as cross-compiling a kernel and it is not written to be faultless in every situation. 

This script have two main goals :
- automate things to produce up-to-date Linux/Angstrom SD card image ready for customization and production
- be pedagogical with giving and simple, concrete and quite clear way to do all the steps in the right order, with all tips that can save hours of debugging because you've missed a detail in the official documentation

I have worked on this board during some time in the past, but it is not my job, I am not affiliated to Technexion and I cannot spend all my free time to give support to guys that don't understand how to use the TAM3517 board. Please be smart if you drop me a mail for asking help.

2. Using it

For first uses, I recommand you to use exactly the same context than mine : you should install a base i386 Linux/Debian 6.0 (Squeeze) system with internet connectivity, up-to-date, drop the script in /root, read it and execute it with root user.

On my old Asus A7V333 based system with AMD1800+ CPU, 512Mb of RAM and a 80Gb HDD and 1Mbit/s aDSL connexion, this script runs the first time in 1 hour and twenty minutes :
- 51 min for installing packages and downloading all stuff
- 04 min for untarring xuk and compiling u-boot
- 22 min for compiling the kernel (and modules)
- 04 min for making the SD image from demo image, kernel
You should consider that is a 2011 worst-case time (or consider changing immediatly your hardware !).

Remark : If you use a VM you will have extra complexity to transfer SD image on a real physical SD card and "try and test" loops will be longer, so you should make a regular bare-metal install (with dual-boot if needed). You can add almost everything you want in this debian without breaking my script (except maybe somme extra compiling tools), so it could be your current work host-system for all your project.

You can, and you are invited to, try to do all the steps "by hand" using a freshly install Debian, a root shell and many copy-paste, line by line. Try to understand every step (there is some comments that should help I hope), for each command, check by hand, the result produced. In short : learn.

May be, in your context, you have some needs quite different than mine, my default values are not appropriate for you. In this case fell free to adapt or tweak my code for your needs; I repeat : this script is here for saving you time for jerky problems that everyone that have worked on this board had to resolve and understand. Try to run my code unmodified at least once at the very start, to have a reference point (if I don't change that, it works, but...) before asking me any kind of help.

I use "bash -ex" for helping troubleshooting. Any call to internal or external tool will be written on stdout and the return code will be checked. If non-zero, the script simply stops just after the faulty call. You can run a "echo $?" command to now the last command return code (non-zero if there were an error).

I have added some stupid tests and helper functions to improove user experience if you call the script many times (after adjustements for example). Some parts will NOT be replayed unless certain generated files already exists. If you want to replay everything, just "rm -r" everything (everything that has been generated by the script, of course). If you want to replay sd-image assembly without recompiling the kernel and download again many things, simply remove the generated .img file.

The base root filesystem (aka. rootfs) is taken from my web-site (www.pouzenc.fr). I have drop a tar-ball there because I cannot automated rootfs generation on http://narcissus.angstrom-distribution.org/.

After your first conclusive tests, you should replace my archive (that is outdated) by one that you generate with Narcissius tool (see just above for the URL). If you replace the file "$BASEPATH/dl/tam3517-rootfs-image-am3517-evm.tar.gz" on your host-system, my script will be clever, it will not download again "my" version from my website, it just will use your tarball.

3. Contact

Feel free to drop me a mail if you want to contribute to the improovement of this script. I want to "Keep It Simple and Stupid"(tm) for learning purpose, so I will not add tons of checks or automated guesses and so on, but there is many improovements that can be done without increasing complexity. We can enlarge the range of targeted hardware for example.

Remark : I am a french guy and I can write some kind of English when it helps.

Ludovic Pouzenc <lpouzenc@gmail.com>