Difference between revisions of "User:Collinjc"

From eLinux.org
Jump to: navigation, search
m (Chapter 2: listings updated)
m (Chapter 2: Listings added)
Line 81: Line 81:
 
| 2-7
 
| 2-7
 
| Loading the Linux Kernel
 
| Loading the Linux Kernel
|  
+
| <pre>
 +
2996196 bytes read
 +
## Booting kernel from Legacy Image at 80300000 ...
 +
  Image Name:  Angstrom/2.6.29/beagleboard
 +
  Image Type:  ARM Linux Kernel Image (uncompressed)
 +
  Data Size:    2996132 Bytes =  2.9 MB
 +
  Load Address: 80008000
 +
  Entry Point:  80008000
 +
  Verifying Checksum ... OK
 +
  Loading Kernel Image ... OK
 +
OK
 +
 
 +
Starting kernel ...
 +
 
 +
Uncompressing Linux.................................................................................................................................................................................................. done, booting the kernel.
 +
[    0.000000] Linux version 2.6.29-omap1 (koen@dominion) (gcc version 4.3.3 (GCC) ) #1 PREEMPT Wed Oct 21 13:11:52 CEST 2009
 +
[    0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387f
 +
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
 +
[    0.000000] Machine: OMAP3 Beagle Board
 +
[    0.000000] Memory policy: ECC disabled, Data cache writeback
 +
[    0.000000] OMAP3430 ES3.1
 +
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000
 +
[    0.000000] Reserving 14680064 bytes SDRAM for VRAM
 +
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024
 +
[    0.000000] Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait
 +
[    0.000000] Clocking rate (Crystal/DPLL/ARM core): 26.0/332/720 MHz
 +
[    0.000000] GPMC revision 5.0
 +
[    0.000000] IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts
 +
[    0.000000] Total of 96 interrupts on 1 active controller
 +
[    0.000000] OMAP34xx GPIO hardware version 2.5
 +
[    0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes)
 +
[    0.000000] OMAP clockevent source: GPTIMER12 at 32768 Hz
 +
[    0.000000] Console: colour dummy device 80x30
 +
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
 +
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
 +
[    0.000000] Memory: 128MB 128MB = 256MB total
 +
[    0.000000] Memory: 238848KB available (5632K code, 576K data, 204K init)
 +
[    0.000000] Calibrating delay loop... 740.48 BogoMIPS (lpj=2891776)
 +
[    0.000000] Mount-cache hash table entries: 512
 +
[    0.000000] CPU: Testing write buffer coherency: ok
 +
</pre>
 
|-
 
|-
 
| 2-3
 
| 2-3
Line 87: Line 127:
 
| Linux Final Boot Messages
 
| Linux Final Boot Messages
 
| <pre>
 
| <pre>
 +
Lease of 192.168.1.108 obtained, lease time 86400
 +
run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1
 +
adding dns 192.168.1.1
 +
done.
 +
Starting portmap daemon: portmap.
 +
Unknown HZ value! (75) Assume 100.
 +
net.ipv4.conf.default.rp_filter = 1
 +
net.ipv4.conf.all.rp_filter = 1
 +
Wed Mar 10 03:00:00 GMT 2010
 +
^MINIT: Entering runlevel: 5^M
 +
Configuring leds:
 +
  beagleboard::usr0: heartbeat
 +
  beagleboard::usr1: mmc0
 +
Starting Dropbear SSH server: dropbear.
 +
Starting advanced power management daemon: No APM support in kernel
 +
(failed.)
 +
Starting Vixie-cron.
 +
Starting system message bus: dbus.
 +
Starting Hardware abstraction layer hald
 +
Starting syslogd/klogd: done
 +
* Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon
 +
[ ok ]
 +
Starting Connection Manager
 +
Running ntpdate to synchronize clock.
 +
Starting GPE display manager: gpe-dm
 +
 +
.-------.                                         
 +
|      |                  .-.                     
 +
|  |  |-----.-----.-----.| |  .----..-----.-----.
 +
|      |    | __  |  ---'| '--.|  .-'|    |    |
 +
|  |  |  |  |    |---  ||  --'|  |  |  '  | | | |
 +
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'
 +
                -'  |
 +
                '---'
 +
 +
The Angstrom Distribution beagleboard ttyS2
 +
 +
Angstrom 2009.X-stable beagleboard ttyS2
 +
 +
beagleboard login: root
 
</pre>
 
</pre>
 
|-
 
|-

Revision as of 18:37, 22 March 2010

I am majoring in computer engineering and pursuing a certificate in optical communications. I am currently enrolled in ECE597, hoping to explore the applications of Linux in an embedded environment as well as the necessary considerations that must be made in developing for such an environment. I have a keen interest and a great deal of experience with Linux and am a member of the Rose-Hulman Linux Users' Group.

I am currently working on a script to automate the bitbake process with multiple cores. This is a copy of the script in its current form. Please note that it is a work in progress.

#!/bin/sh
# bitbake automation
# J. Cody Collins

START=$(date +%s)

MAXTRIES=15
COUNT=1

export OETREE="${HOME}/oe"

echo "set environment variables"
. ${OETREE}/sourceme.txt 

echo "Go to the OE tree"
cd ${OETREE}/openembedded 

echo "Make sure it's up to date"
git pull --rebase

echo "Start building"
bitbake $1

while [ $? -ne 0 ]; do
	if [ $COUNT -lt $MAXTRIES ]; then
		((COUNT++))
		echo "re-running bitbake -- trial $COUNT"
		# Give the user a chance to kill the task
		sleep 5
		bitbake $1
	else
		echo "Maximum tries exceeded. Exiting..."
		break
	fi
done

END=$(date +%s)
DIFF=$(( $END - $START ))
echo "Build took $DIFF seconds."
echo "Completed after $COUNT attempts."

Listings

Chapter 2

Number Page Caption Listing
2-1 2-6 Initial Bootloader Serial Output
Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24)
Reading boot sector
Loading u-boot.bin from mmc


U-Boot 2009.11-rc1 (Jan 08 2010 - 21:19:52)

OMAP3530-GP ES3.1, CPU-OPP2 L3-165MHz
OMAP3 Beagle board + LPDDR/NAND
I2C:   ready
DRAM:  256 MB
NAND:  256 MiB
In:    serial
Out:   serial
Err:   serial
Board revision C4
Die ID #1e30000400000000040365fa1400400a
Hit any key to stop autoboot:  0
OMAP3 beagleboard.org #
2-2 2-7 Loading the Linux Kernel
2996196 bytes read
## Booting kernel from Legacy Image at 80300000 ...
   Image Name:   Angstrom/2.6.29/beagleboard
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2996132 Bytes =  2.9 MB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux.................................................................................................................................................................................................. done, booting the kernel.
[    0.000000] Linux version 2.6.29-omap1 (koen@dominion) (gcc version 4.3.3 (GCC) ) #1 PREEMPT Wed Oct 21 13:11:52 CEST 2009
[    0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387f
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
[    0.000000] Machine: OMAP3 Beagle Board
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] OMAP3430 ES3.1
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000
[    0.000000] Reserving 14680064 bytes SDRAM for VRAM
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024
[    0.000000] Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait
[    0.000000] Clocking rate (Crystal/DPLL/ARM core): 26.0/332/720 MHz
[    0.000000] GPMC revision 5.0
[    0.000000] IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts
[    0.000000] Total of 96 interrupts on 1 active controller
[    0.000000] OMAP34xx GPIO hardware version 2.5
[    0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes)
[    0.000000] OMAP clockevent source: GPTIMER12 at 32768 Hz
[    0.000000] Console: colour dummy device 80x30
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Memory: 128MB 128MB = 256MB total
[    0.000000] Memory: 238848KB available (5632K code, 576K data, 204K init)
[    0.000000] Calibrating delay loop... 740.48 BogoMIPS (lpj=2891776)
[    0.000000] Mount-cache hash table entries: 512
[    0.000000] CPU: Testing write buffer coherency: ok
2-3 2-9 Linux Final Boot Messages
Lease of 192.168.1.108 obtained, lease time 86400
run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1
adding dns 192.168.1.1
done.
Starting portmap daemon: portmap.
Unknown HZ value! (75) Assume 100.
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
Wed Mar 10 03:00:00 GMT 2010
^MINIT: Entering runlevel: 5^M
Configuring leds:
  beagleboard::usr0: heartbeat
  beagleboard::usr1: mmc0
Starting Dropbear SSH server: dropbear.
Starting advanced power management daemon: No APM support in kernel
(failed.)
Starting Vixie-cron.
Starting system message bus: dbus.
Starting Hardware abstraction layer hald
Starting syslogd/klogd: done
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon
[ ok ]
Starting Connection Manager
Running ntpdate to synchronize clock.
Starting GPE display manager: gpe-dm

.-------.                                           
|       |                  .-.                      
|   |   |-----.-----.-----.| |   .----..-----.-----.
|       |     | __  |  ---'| '--.|  .-'|     |     |
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'
                -'  |
                '---'

The Angstrom Distribution beagleboard ttyS2

Angstrom 2009.X-stable beagleboard ttyS2

beagleboard login: root
2-4 2-21 Hello World, Embedded Style
#include <stdio.h>

int bss_var;        /* Uninitialized global variable */

int data_var = 1;   /* Initialized global variable */

int main(int argc, char **argv)
{
  void *stack_var;            /* Local variable on the stack */
  
  stack_var = (void *)main;   /* Don't let the compiler */
                              /* optimize it out */

  printf("Hello, World! Main is executing at %p\n", stack_var);
  printf("This address (%p) is in our stack frame\n", &stack_var);

  /* bss section contains uninitialized data */
  printf("This address (%p) is in our bss section\n", &bss_var);

  /* data section contains initializated data */
  printf("This address (%p) is in our data section\n", &data_var);

  return 0;
}
2-5 2-22 Hello Output for Host Computer
collinjc@collinjc-eee ~ % ./a.out                                                                                     [1021]
Hello, World! Main is executing at 0x80483e4
This address (0xbfe6b58c) is in our stack frame
This address (0x804a020) is in our bss section
This address (0x804a014) is in our data section
2-5 2-22 Hello Output for Beagle
root@beagleboard:~# ./a.out 
Hello, World! Main is executing at 0x8380
This address (0xbea11cd4) is in our stack frame
This address (0x10670) is in our bss section
This address (0x10668) is in our data section

Chapter 4

Number Page Caption Listing
4-1 4-7 Kernel Build Output

4-2 4-9 Link Stage: vmlinux

4-3 4-14 Kernel Subdirectory