SlideShare una empresa de Scribd logo
1 de 85
Descargar para leer sin conexión
Jollen’s Consulting



                      ,
         ,



                                   ,
                          : www.jollen.org/consulting
Jollen’s Consulting
                               ta@jollen.org
                                               [
  ]




Jollen’s Consulting Team
’
Linux                 -                                     Jollen’s Consulting. www.jollen.org/consulting
Linux               -                                                       Jollen’s Consulting. www.jollen.org/consulting
Linux               -                           Jollen’s Consulting. www.jollen.org/consulting
Linux                   -   Jollen’s Consulting. www.jollen.org/consulting
Linux   -         Jollen’s Consulting. www.jollen.org/consulting
# cd /
        # tar zxvf arm-9tdmi-linux-gnu.tar.gz
        (                         )

        # export
        PATH=/opt/crosstool/gcc-3.4.1-glibc-2.3.3/
        arm-9tdmi-linux-gnu/bin/:$PATH
        (                   )

        (or)
        # source ./armpath
Linux             -              Jollen’s Consulting. www.jollen.org/consulting
– ipaddr                      	
 


  – serverip             	
             	
 




Linux          -                Jollen’s Consulting. www.jollen.org/consulting
jollen.org # printenv
   bootdelay=3
   ethaddr=10:10:ff:ff:ff:ff
   ipaddr=192.168.1.10
   serverip=192.168.1.1
   netmask=255.255.255.0
   stdin=serial
   baudrate=115200
   bootargs=root=/dev/ram0 rw console=ttyS0,115200
   mem=64M ramdisk=16384
   stdout=serial
   stderr=serial

        IP address   192.168.1.10   TFTP server IP address              192.168.1.1

Linux           -                       Jollen’s Consulting. www.jollen.org/consulting
jollen.org # set ipaddr 192.168.100.15
  jollen.org # set serverip 192.168.100.14
  jollen.org # saveenv
  Saving Environment to Flash...
  Un-Protected 1 sectors
  Erasing Flash...Erasing sector 18 ... ok.
  Erased 1 sectors
  Writing to Flash... done
  Protected 1 sectors

Linux         -                 Jollen’s Consulting. www.jollen.org/consulting
• loadAddress
                   	
          	
 
• bootfilename           	
 




 Linux              -                        Jollen’s Consulting. www.jollen.org/consulting
jollen.org # tftpboot 30F00000 uimage.img
        jollen.org # tftpboot 32000000 urootfs.img
        jollen.org # bootm 30F00000 32000000




Linux         -                  Jollen’s Consulting. www.jollen.org/consulting
Linux               -                     Jollen’s Consulting. www.jollen.org/consulting
src/cross.mk    TOOL_TOP



TOOL_TOP = /opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu




 Linux            -                  Jollen’s Consulting. www.jollen.org/consulting
src/hello/                               make               	
 

# make
[ -- Start to compile hello.c to hello.o -- ]
/opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-gcc -nostdinc -I/opt/crosstool/
gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/include -I/opt/crosstool/gcc-3.4.1-glibc-2.3.3/
arm-9tdmi-linux-gnu/lib/gcc/arm-9tdmi-linux-gnu/3.4.1/include -c hello.c
[ -- Start to link hello.o to hello.gdb -- ]
/opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-gcc -Wl,-nostdlib -Wl,-L,/opt/
crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib -Wl,-L,/opt/crosstool/gcc-3.4.1-
glibc-2.3.3/arm-9tdmi-linux-gnu/lib/gcc/arm-9tdmi-linux-gnu/3.4.1 -Wl,-rpath,/opt/crosstool/gcc-3.4.1-glibc-2.3.3/
arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib -Wl,-rpath,/lib -Wl,-rpath-link,/opt/crosstool/gcc-3.4.1-glibc-2.3.3/
arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib -nostartfiles -nodefaultlibs /opt/crosstool/gcc-3.4.1-glibc-2.3.3/
arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib/crt1.o /opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/
arm-9tdmi-linux-gnu/lib/crti.o /opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/lib/gcc/arm-9tdmi-linux-gnu/
3.4.1/crtbegin.o hello.o /opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/lib/gcc/arm-9tdmi-linux-gnu/3.4.1/
crtend.o /opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib/crtn.o -lgcc -lgcc_eh -lc -
lgcc -lgcc_eh -o hello.gdb
[ -- Start to strip hello.gdb and produce hello -- ]
/opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-strip -R .note -R .comment
hello.gdb -o hello




  Linux                       -                                    Jollen’s Consulting. www.jollen.org/consulting
• hello


• hello.gdb
                        	
 
              	
 
• hello.o hello.c             	
 

 # arm-9tdmi-linux-gnu-objdump –x hello | more
 (or)
 # readelf –a hello | more

  Linux             -               Jollen’s Consulting. www.jollen.org/consulting
hello


                                            • hello              copy
# tftp –g –r hello 192.168.100.14               tftp          (/tftpboot
                                            in our example)
# chmod a+x ./hello
                                            • Target                 IP
# ./hello
                                            address (     ifconfig
                                               )



Linux           -                   Jollen’s Consulting. www.jollen.org/consulting
Linux   -   Jollen’s Consulting. www.jollen.org/consulting
Linux         -     Jollen’s Consulting. www.jollen.org/consulting
•                             	
 

                                                            	
 

•                 	
 
                                    	
 

            	
 

•                   	
 

•                 	
 
                                          	
 
            	
 


    Linux                 -                                  Jollen’s Consulting. www.jollen.org/consulting
#export PATH=/opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-
linux-gnu/bin:$PATH

#arm-9tdmi-linux-gnu-gcc -g -nostdinc 
-Os -Wall -mtune=arm9tdmi -march=armv4 
-fomit-frame-pointer -fsigned-char -fPIC 
-I/opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/
arm-9tdmi-linux-gnu/include 
-I/opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/lib/
gcc/arm-9tdmi-linux-gnu/3.4.1/include 
-c hello.c




Linux           -                    Jollen’s Consulting. www.jollen.org/consulting
• -nostdinc

• -I
• -mtune=arm9tdmi

• -march=armv4

• -fomit-frame-pointer                       	
 

•   -fsigned-char
•   -fPIC                     	
           	
 
•   -Os
•   -Wall
•   -c                  	
          ld                 	
 
    Linux           -                       Jollen’s Consulting. www.jollen.org/consulting
arm-9tdmi-linux-gnu-ld 
-nostdlib 
-L /opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib 
-L /opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/lib/gcc/arm-9tdmi-linux-gnu/3.4.1 
-rpath-link /opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib 
-o hello 
/opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib/crt1.o 
/opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib/crti.o 
/opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/lib/gcc/arm-9tdmi-linux-gnu/3.4.1/
crtbegin.o 
hello.o 
/opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/lib/gcc/arm-9tdmi-linux-gnu/3.4.1/crtend.o

/opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib/crtn.o 
-lgcc -lgcc_eh -lc -lgcc -lgcc_eh
arm-9tdmi-linux-gnu-strip -R .note -R .comment hello




Linux                   -                              Jollen’s Consulting. www.jollen.org/consulting
•   -L
•   -o
•   -lc     libc
•   -lgcc      libgcc




    Linux         -       Jollen’s Consulting. www.jollen.org/consulting
‘`

                  	
 




Linux         -               Jollen’s Consulting. www.jollen.org/consulting
•       TOOL_TOP             	
 
•       GCC_LIB_PATH               	
 
•       GLIBC_PATH
•       CROSS_CFLAGS                     	
 

•       LDFLAGS            	
 




•       LIBS
•       LINK_S                                     	
 

•       LINK_E                                           	
 
                 	
 
    Linux              -                       Jollen’s Consulting. www.jollen.org/consulting
Linux   -   Jollen’s Consulting. www.jollen.org/consulting
Makefile                      	
 


Makefile               make

Linux              -                        Jollen’s Consulting. www.jollen.org/consulting
– cross.mk
         	
               	
 
                                              	
 


Linux                 -                     Jollen’s Consulting. www.jollen.org/consulting
Linux   -         Jollen’s Consulting. www.jollen.org/consulting
Linux   -         Jollen’s Consulting. www.jollen.org/consulting
•




      1.
      2.
      3.
      4.

    Linux   -         Jollen’s Consulting. www.jollen.org/consulting
Linux             -                                        Jollen’s Consulting. www.jollen.org/consulting
1.       libmad-0.15.1b.tar.gz
     cross.mk         libmad-0.15.1b/
2.
           libmad.cross
     libmad-0.15.1b/
3.
4.                                                  	
 
                                        	
 
                	
 
                       	
 
 Linux                 -                Jollen’s Consulting. www.jollen.org/consulting
./configure
Makefile                               ./
configure                 	
 
Makefile        	
 




Linux                 -         Jollen’s Consulting. www.jollen.org/consulting
cross.mk


                  cross.mk          	
 




Linux         -              Jollen’s Consulting. www.jollen.org/consulting
• configure                                   Makfile
                configure


    – CC          	
 


    – AR          	
 
    – LD         	
 

    – AS         	
 
    – STRIP                	
 


    – RANLIB                     	
 


    – CFLAGS                      	
    	
        	
 

  Linux                -                      Jollen’s Consulting. www.jollen.org/consulting
• configure                                                                        	
 


    – --prefix
                     	
                      	
 
                                       	
 

                                       	
 
                           	
 
    – --host                     	
 
                                 	
 
  Linux          -                                 Jollen’s Consulting. www.jollen.org/consulting
Madplay
                                         libid3tag
                 libmad
                                            zlib

Building root filesystem (porting)
• standalone application (e.g. thttpd)
• software stacks (e.g. madplay project)
• software stacks with architectural consideration
 (e.g. nano-X project)
Linux            -                      Jollen’s Consulting. www.jollen.org/consulting
Text




http://www.pconline.com.cn/pcedu/soft/gj/sys/0502/551643.html
Definition of a Software "bug":

Webster's New Collegiate Dictionary defines a "bug" as "an unexpected defect,
fault, flaw, or imperfection". We need to refine this definition since it is too
ambiguous. In the scope of this guarantee, a "bug", with respect to the
guaranteed software, is defined as "a defect, fault, flaw or imperfection which
causes the software to not operate as intended or to stop operating abruptly."



      http://www.autocadstandards.org/autocadstandards/bugfree/default.htm
Boot-time
                 	
 



Linux                  -                                          Jollen’s Consulting. www.jollen.org/consulting
Linux                           -   Jollen’s Consulting. www.jollen.org/consulting
Linux                         -                     Jollen’s Consulting. www.jollen.org/consulting
printk
 kdb
 kgdb
 gdb + qemu




Linux         -         Jollen’s Consulting. www.jollen.org/consulting
debug
 printk           remote debug             N
 kdb              local debug              N
 kgdb             remote debug             Y
 gdb + qemu       remote debug             Y




Linux         -                 Jollen’s Consulting. www.jollen.org/consulting
Linux kernel image

    •   arch/arm/boot/Image         target              kernel
    •   arch/arm/boot/zImage

    •   arch/arm/boot/uImage

    •   ./vmlinux              ELF image




Linux               -                   Jollen’s Consulting. www.jollen.org/consulting
source level

 printk           kernel message      --

 kdb              machine code        --

 gdb + qemu       source code         kernel w/ symbol table

 kgdb             source code         kernel w/ symbol table




Linux         -                    Jollen’s Consulting. www.jollen.org/consulting
Linux                         -                                           Jollen’s Consulting. www.jollen.org/consulting
Debug Symbols




    CONFIG_DEBUG_INFO = y
linux kernel for
                                                                                  s3c2410




http://www.jk2410.org/opensource/linux-2.6.20.4-jk2410.tar.bz2
http://www.jk2410.org/opensource/gcc-4.1.0-glibc-2.4.tar.bz2
$ make ARCH=arm CROSS_COMPILE=/opt/crosstool/gcc-4.1.0-glibc-2.4/arm-9tdmi-linux-gnueabi/bin/
arm-9tdmi-linux-gnueabi- menuconfig

$ make ARCH=arm CROSS_COMPILE=/opt/crosstool/gcc-4.1.0-glibc-2.4/arm-9tdmi-linux-gnueabi/bin/
arm-9tdmi-linux-gnueabi- uImage
$ make uImage




$ cd /usr/local/bin
$ sudo wget http://www.jk2410.org/opensource/pre-built/mkimage
$ chmod a+x mkimage
qemu
                                                        kernel




http://www.jk2410.org/opensource/qemu-jk2410-20070826.tar.gz
cgdb




2   qemu
kernel
kernel
Linux         -   Jollen’s Consulting. www.jollen.org/consulting
cpu/arm920t/start.S
                                   • Setup vector table
           CPU
                                   • Set the CPU to SVC32 mode (reset)
                                   • Relocate to RAM
                                   • Setup stack
                                                               board/lart/memsetup.S
           Board              lib_arm/board.c
                                   • Board initialize sequence
                                   • start_armboot()
                                   • Call main_loop()
                                                                    board/<board>/*, eg.
        main_loop(): main.c                                         board/lart/lart.c




Linux                -                   Jollen’s Consulting. www.jollen.org/consulting
.globl _start
_start: b         reset
          ldr          pc, _undefined_instruction
          ldr          pc, _software_interrupt
          ldr          pc, _prefetch_abort
          ldr          pc, _data_abort
          ldr          pc, _not_used
          ldr          pc, _irq
          ldr          pc, _fiq

_undefined_instruction:    .word undefined_instruction
_software_interrupt:       .word software_interrupt
_prefetch_abort: .word prefetch_abort
_data_abort:               .word data_abort
_not_used:                 .word not_used
_irq:                      .word irq
_fiq:                      .word fiq

             .balignl 16,0xdeadbeef



     Linux                   -                      Jollen’s Consulting. www.jollen.org/consulting
/*
  * the actual reset code
  */

 reset:
              /*
               * set the cpu to SVC32 mode
               */
              mrs         r0,cpsr
              bic         r0,r0,#0x1f
              orr         r0,r0,#0xd3
              msr         cpsr,r0
 .
 .
 .
 #ifdef CONFIG_INIT_CRITICAL
          bl       cpu_init_crit
 #endif




                                     Where memsetup be called.

relocate

          Linux                 -                                Jollen’s Consulting. www.jollen.org/consulting
cpu_init_crit:
         /*
          * flush v4 I/D caches
          */
         mov        r0, #0
         mcr        p15, 0, r0, c7, c7, 0 /* flush v3/v4 cache */
         mcr        p15, 0, r0, c8, c7, 0 /* flush v4 TLB */

             /*
              * disable MMU stuff and caches
              */
             mrc        p15, 0, r0, c1, c0, 0
             bic        r0, r0, #0x00002300         @ clear bits 13, 9:8 (--V- --RS)
             bic        r0, r0, #0x00000087         @ clear bits 7, 2:0 (B--- -CAM)
             orr        r0, r0, #0x00000002         @ set bit 2 (A) Align
             orr        r0, r0, #0x00001000         @ set bit 12 (I) I-Cache
             mcr        p15, 0, r0, c1, c0, 0




     Linux                   -                            Jollen’s Consulting. www.jollen.org/consulting
/*
                * before relocating, we have to setup RAM timing
                * because memory timing is board-dependend, you will
                * find a memsetup.S in your board directory.
                */
               mov        ip, lr
               bl         memsetup
               mov        lr, ip

               mov      pc, lr




Return to reset.
                                       board/lart/memsetup.S




       Linux                     -                       Jollen’s Consulting. www.jollen.org/consulting
EM_BASE:         .long       0xa0000000
MEM_START:       .long       0xc0000000

#define MDCNFG   0x00
#define MDCAS0   0x04
#define MDCAS1   0x08
#define MDCAS2   0x0c
#define MSC0     0x10
#define MSC1     0x14
#define MECR     0x18

mdcas0:          .long      0xc71c703f
mdcas1:          .long      0xffc71c71
mdcas2:          .long      0xffffffff
/* mdcnfg:       .long 0x0bb2bcbf */
mdcnfg:          .long      0x0334b22f    @ alt
/* mcs0:         .long 0xfff8fff8 */
msc0:            .long      0xad8c4888    @ alt
mecr:            .long      0x00060006
/* mecr:         .long      0x994a994a    @ alt */




     Linux               -                        Jollen’s Consulting. www.jollen.org/consulting
.globl memsetup                                      /* MDCNFG */
memsetup:                                            ldr     r1, mdcnfg
          ldr          r0, MEM_BASE                  str     r1, [r0, #MDCNFG]
             /* Setup the flash memory */
             ldr        r1, msc0                     /* Set up PCMCIA space */
             str        r1, [r0, #MSC0]              ldr       r1, mecr
                                                     str       r1, [r0, #MECR]
             /* Set up the DRAM */
                                                     /* Load something to activate bank */
             /* MDCAS0 */
             ldr      r1, mdcas0                     ldr       r1, MEM_START
             str      r1, [r0, #MDCAS0]
                                            .rept    8
             /* MDCAS1 */                            ldr         r0, [r1]
             ldr      r1, mdcas1            .endr
             str      r1, [r0, #MDCAS1]

             /* MDCAS2 */                            /* everything is fine now */
             ldr      r1, mdcas2                     mov       pc, lr
             str      r1, [r0, #MDCAS2]




     Linux                      -                   Jollen’s Consulting. www.jollen.org/consulting
relocate:                               /* relocate U-Boot to RAM           */
              adr      r0, _start        /* r0 <- current position of code */
              ldr      r1, _TEXT_BASE               /* test if we run from flash or RAM */
              cmp   r0, r1         /* don't reloc during debug          */
              beq   stack_setup

              ldr     r2, _armboot_start
              ldr     r3, _bss_start
              sub     r2, r3, r2         /* r2 <- size of armboot            */
              add     r2, r0, r2         /* r2 <- source end address              */

 copy_loop:
         ldmia        r0!, {r3-r10}                  /* copy from source address [r0] */
         stmia        r1!, {r3-r10}                  /* copy to target address [r1] */
         cmp          r0, r2                         /* until source end addreee [r2] */
         ble          copy_loop




stack_setup

      Linux                   -                           Jollen’s Consulting. www.jollen.org/consulting
/* Set up the stack                                                 */
stack_setup:
         ldr        r0, _TEXT_BASE           /* upper 128 KiB: relocated uboot */
         sub        r0, r0, #CFG_MALLOC_LEN /* malloc area                */
         sub        r0, r0, #CFG_GBL_DATA_SIZE /* bdinfo                */
#ifdef CONFIG_USE_IRQ
         sub        r0, r0, #(CONFIG_STACKSIZE_IRQ+CONFIG_STACKSIZE_FIQ)
#endif
         sub        sp, r0, #12              /* leave 3 words for abort-stack */




clear_bss




     Linux              -                          Jollen’s Consulting. www.jollen.org/consulting
clear_bss:
         ldr            r0, _bss_start                     /* find start of bss segment      */
         add            r0, r0, #4            /* start at first byte of bss      */
         ldr            r1, _bss_end                       /* stop here                 */
         mov            r2, #0x00000000                    /* clear                  */

clbss_l:str             r2, [r0]              /* clear loop...              */
           add          r0, r0, #4
           cmp          r0, r1
           bne          clbss_l
.
.
.



         ldr            pc, _start_armboot

_start_armboot:         .word start_armboot



                                         lib_arm/board.c

     Linux                           -                               Jollen’s Consulting. www.jollen.org/consulting
typedef int (init_fnc_t) (void);

init_fnc_t *init_sequence[] = {
         cpu_init,                 /* basic cpu dependent setup */
         board_init,               /* basic board dependent setup */
         interrupt_init,           /* set up exceptions */
         env_init,                 /* initialize environment */
         init_baudrate,            /* initialze baudrate settings */
         serial_init,              /* serial communications setup */
         console_init_f,           /* stage 1 init of console */
         display_banner,           /* say that we are here */
         dram_init,                /* configure available RAM banks */
         display_dram_config,
         NULL,
};




     Linux                -                     Jollen’s Consulting. www.jollen.org/consulting
void start_armboot (void)
{
          init_fnc_t **init_fnc_ptr;

             for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) {
                         if ((*init_fnc_ptr)() != 0) {
                                      hang ();
                         }
             }
             .
             .
             .
             /* main_loop() can return to retry autoboot, if so just run it again. */
             for (;;) {
                         main_loop ();
             }
}




     Linux                     -                             Jollen’s Consulting. www.jollen.org/consulting
void start_linux(char *name,char *rdname)
{
  void (*theKernel)(int zero, int arch, u32 params);
  u32 exec_at = ZIMAGE_LOAD_ADDRESS;
  u32 parm_at = DRAM_BASE + 0x100;
  u32 machine_type;

    load_image(name, exec_at);         /* copy image into RAM */
    load_image(rdname, INITRD_LOAD_ADDRESS);/* copy initial ramdisk image into RAM */
    setup_tags(parm_at);          /* sets up parameters */
    machine_type = get_mach_type();       /* get machine type */
    irq_shutdown();            /* stop irq */
    cpu_op(CPUOP_MMUCHANGE, NULL);                /* turn MMU off */

    theKernel = (void (*)(int, int, u32))exec_at; /* set the kernel address */
    theKernel(0, machine_type, parm_at); /* jump to kernel with register set */

    /* NOT REACHED */
}




       Linux                   -                               Jollen’s Consulting. www.jollen.org/consulting
User Mode
                                           Application




                                      System Call Interface



                                     Virture File System(VFS)
                                                                                                               BSD socket

                                                                                                              inet(AF_INET)
Kernel Mode                               Buffer Cache           Network Subsystem
                                                                                                        Transport(TCP,UDP)

                                                                                                               Network(IP)
                     Character                Block                    Network
                    Device Driver          Device Driver             Device Driver




                                         Device Interface




                                    Physical Device (Hardware)
Hardware

                                                                                     Source: Jollen   Linux            (Revision 5)

    Linux                   -                                       Jollen’s Consulting. www.jollen.org/consulting
Linux                     -                                           Jollen’s Consulting. www.jollen.org/consulting
Linux                                                                                                                         -                                                                                                                                                                                                                        Jollen’s Consulting. www.jollen.org/consulting
Source: Jollen   Linux   (Revision 5)

                Linux                                                       -                                                           Jollen’s Consulting. www.jollen.org/consulting
Linux                           -                                          Jollen’s Consulting. www.jollen.org/consulting
Linux                                 -                                                       Jollen’s Consulting. www.jollen.org/consulting
Linux         -         Jollen’s Consulting. www.jollen.org/consulting
Jollen Chen <jollen@jollen.org>


  Jollen's Consulting               Embedded Linux


 Openmoko                   Openmoko
                Openmoko
                                            Android OS
 Android                                     Android

                                -                        Android
           Android porting (s3c244x/s3c64x0) Linux                Linux
                                  Jollen     - www.jollen.org/blog




www.jollen.org/consulting

Más contenido relacionado

Destacado (10)

Embedded Linux - Building toolchain
Embedded Linux - Building toolchainEmbedded Linux - Building toolchain
Embedded Linux - Building toolchain
 
Linux installation and booting process
Linux installation and booting processLinux installation and booting process
Linux installation and booting process
 
Linux Internals - Interview essentials 4.0
Linux Internals - Interview essentials 4.0Linux Internals - Interview essentials 4.0
Linux Internals - Interview essentials 4.0
 
Embedded C - Optimization techniques
Embedded C - Optimization techniquesEmbedded C - Optimization techniques
Embedded C - Optimization techniques
 
Embedded C
Embedded CEmbedded C
Embedded C
 
Linux Porting to a Custom Board
Linux Porting to a Custom BoardLinux Porting to a Custom Board
Linux Porting to a Custom Board
 
Building Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMBuilding Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARM
 
Linux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKBLinux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKB
 
Linux Booting Steps
Linux Booting StepsLinux Booting Steps
Linux Booting Steps
 
Embedded Linux on ARM
Embedded Linux on ARMEmbedded Linux on ARM
Embedded Linux on ARM
 

Similar a Jollen's Linux Consulting Services

Embedded Android Workshop part I ESC SV 2012
Embedded Android Workshop part I ESC SV 2012Embedded Android Workshop part I ESC SV 2012
Embedded Android Workshop part I ESC SV 2012Opersys inc.
 
Iz Pack
Iz PackIz Pack
Iz PackInria
 
Closing the gap between Distros(devs) and their Users(ops)
Closing the gap between Distros(devs) and their Users(ops)Closing the gap between Distros(devs) and their Users(ops)
Closing the gap between Distros(devs) and their Users(ops)Kris Buytaert
 
11 Tools for your Open Source devops stack
11 Tools for your Open Source devops stack 11 Tools for your Open Source devops stack
11 Tools for your Open Source devops stack Kris Buytaert
 
Intro To Linux
Intro To LinuxIntro To Linux
Intro To Linuxtechlug
 
Kernel Recipes 2013 - Easy rootfs using Buildroot
Kernel Recipes 2013 - Easy rootfs using BuildrootKernel Recipes 2013 - Easy rootfs using Buildroot
Kernel Recipes 2013 - Easy rootfs using BuildrootAnne Nicolas
 
Unix Shell Scripting
Unix Shell ScriptingUnix Shell Scripting
Unix Shell ScriptingMustafa Qasim
 
Followup Session in Asia-Pacific Geant4 Workshop and Training Course 2009 hel...
Followup Session in Asia-Pacific Geant4 Workshop and Training Course 2009 hel...Followup Session in Asia-Pacific Geant4 Workshop and Training Course 2009 hel...
Followup Session in Asia-Pacific Geant4 Workshop and Training Course 2009 hel...Go Iwai
 
Olivier Cleynen: Overtaking Proprietary Software Without Writing Code [24c3]
Olivier Cleynen: Overtaking Proprietary Software Without Writing Code [24c3]Olivier Cleynen: Overtaking Proprietary Software Without Writing Code [24c3]
Olivier Cleynen: Overtaking Proprietary Software Without Writing Code [24c3]OpenSlidesArchive
 
Linux and Localization Tutorial Paras pradhan Senior Linux ...
Linux and Localization Tutorial Paras pradhan Senior Linux ...Linux and Localization Tutorial Paras pradhan Senior Linux ...
Linux and Localization Tutorial Paras pradhan Senior Linux ...webhostingguy
 
Gentoo Linux, or Why in the World You Should Compile Everything
Gentoo Linux, or Why in the World You Should Compile EverythingGentoo Linux, or Why in the World You Should Compile Everything
Gentoo Linux, or Why in the World You Should Compile EverythingDonnie Berkholz
 
Introduction to Linux for bioinformatics
Introduction to Linux for bioinformaticsIntroduction to Linux for bioinformatics
Introduction to Linux for bioinformaticsBITS
 
Be Free Be Linux
Be Free Be LinuxBe Free Be Linux
Be Free Be Linuxaboelnour
 

Similar a Jollen's Linux Consulting Services (20)

Embedded Android Workshop part I ESC SV 2012
Embedded Android Workshop part I ESC SV 2012Embedded Android Workshop part I ESC SV 2012
Embedded Android Workshop part I ESC SV 2012
 
Iz Pack
Iz PackIz Pack
Iz Pack
 
Closing the gap between Distros(devs) and their Users(ops)
Closing the gap between Distros(devs) and their Users(ops)Closing the gap between Distros(devs) and their Users(ops)
Closing the gap between Distros(devs) and their Users(ops)
 
Deft v7
Deft v7Deft v7
Deft v7
 
11 Tools for your Open Source devops stack
11 Tools for your Open Source devops stack 11 Tools for your Open Source devops stack
11 Tools for your Open Source devops stack
 
Intro To Linux
Intro To LinuxIntro To Linux
Intro To Linux
 
Kernel Recipes 2013 - Easy rootfs using Buildroot
Kernel Recipes 2013 - Easy rootfs using BuildrootKernel Recipes 2013 - Easy rootfs using Buildroot
Kernel Recipes 2013 - Easy rootfs using Buildroot
 
Unix Shell Scripting
Unix Shell ScriptingUnix Shell Scripting
Unix Shell Scripting
 
Followup Session in Asia-Pacific Geant4 Workshop and Training Course 2009 hel...
Followup Session in Asia-Pacific Geant4 Workshop and Training Course 2009 hel...Followup Session in Asia-Pacific Geant4 Workshop and Training Course 2009 hel...
Followup Session in Asia-Pacific Geant4 Workshop and Training Course 2009 hel...
 
Olivier Cleynen: Overtaking Proprietary Software Without Writing Code [24c3]
Olivier Cleynen: Overtaking Proprietary Software Without Writing Code [24c3]Olivier Cleynen: Overtaking Proprietary Software Without Writing Code [24c3]
Olivier Cleynen: Overtaking Proprietary Software Without Writing Code [24c3]
 
A Newbie’s Initiation To Linux
A Newbie’s Initiation To LinuxA Newbie’s Initiation To Linux
A Newbie’s Initiation To Linux
 
Mozilla L10N Tamil
Mozilla L10N TamilMozilla L10N Tamil
Mozilla L10N Tamil
 
Linux and Localization Tutorial Paras pradhan Senior Linux ...
Linux and Localization Tutorial Paras pradhan Senior Linux ...Linux and Localization Tutorial Paras pradhan Senior Linux ...
Linux and Localization Tutorial Paras pradhan Senior Linux ...
 
Gentoo Linux, or Why in the World You Should Compile Everything
Gentoo Linux, or Why in the World You Should Compile EverythingGentoo Linux, or Why in the World You Should Compile Everything
Gentoo Linux, or Why in the World You Should Compile Everything
 
Foss Presentation
Foss PresentationFoss Presentation
Foss Presentation
 
Forensic3e ppt ch09
Forensic3e ppt ch09Forensic3e ppt ch09
Forensic3e ppt ch09
 
Introduction to Linux for bioinformatics
Introduction to Linux for bioinformaticsIntroduction to Linux for bioinformatics
Introduction to Linux for bioinformatics
 
Universal Userland
Universal UserlandUniversal Userland
Universal Userland
 
Be Free Be Linux
Be Free Be LinuxBe Free Be Linux
Be Free Be Linux
 
1 the linux-guide
1 the linux-guide1 the linux-guide
1 the linux-guide
 

Más de Jollen Chen

Flowchain blockchain classroom at Taiwan Tech University
Flowchain blockchain classroom at Taiwan Tech UniversityFlowchain blockchain classroom at Taiwan Tech University
Flowchain blockchain classroom at Taiwan Tech UniversityJollen Chen
 
Bitmark and Hyperledger Workshop: the Digital Assets and Property
Bitmark and Hyperledger Workshop: the Digital Assets and PropertyBitmark and Hyperledger Workshop: the Digital Assets and Property
Bitmark and Hyperledger Workshop: the Digital Assets and PropertyJollen Chen
 
Introducing the Blockchain and Distributed Ledger Technology
Introducing the Blockchain and  Distributed Ledger TechnologyIntroducing the Blockchain and  Distributed Ledger Technology
Introducing the Blockchain and Distributed Ledger TechnologyJollen Chen
 
Maker of Things - the open IoT cloud for makers chapter.
Maker of Things - the open IoT cloud for makers chapter.Maker of Things - the open IoT cloud for makers chapter.
Maker of Things - the open IoT cloud for makers chapter.Jollen Chen
 
WoT.City and IoT Protocols Movement @ Taipei, Taiwan
WoT.City and IoT Protocols Movement @ Taipei, TaiwanWoT.City and IoT Protocols Movement @ Taipei, Taiwan
WoT.City and IoT Protocols Movement @ Taipei, TaiwanJollen Chen
 
IoT and Maker Crossover (IMCO) Conference 2015
IoT and Maker Crossover (IMCO) Conference 2015IoT and Maker Crossover (IMCO) Conference 2015
IoT and Maker Crossover (IMCO) Conference 2015Jollen Chen
 
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.Open IoT Cloud Architecture, Web of Things, Shenzhen, China.
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.Jollen Chen
 
Backbone.js and MVW 101
Backbone.js and MVW 101Backbone.js and MVW 101
Backbone.js and MVW 101Jollen Chen
 
Single-Page Application Design Principles 101
Single-Page Application Design Principles 101Single-Page Application Design Principles 101
Single-Page Application Design Principles 101Jollen Chen
 
MongoDB & NoSQL 101
 MongoDB & NoSQL 101 MongoDB & NoSQL 101
MongoDB & NoSQL 101Jollen Chen
 
Mokoversity Course: Apple Swift 101 - Introduction
Mokoversity Course: Apple Swift 101 - IntroductionMokoversity Course: Apple Swift 101 - Introduction
Mokoversity Course: Apple Swift 101 - IntroductionJollen Chen
 
Android Wear SDK: Level 101
Android Wear SDK: Level 101Android Wear SDK: Level 101
Android Wear SDK: Level 101Jollen Chen
 
Startup eng-camp 3
Startup eng-camp 3Startup eng-camp 3
Startup eng-camp 3Jollen Chen
 
讓 HTML5 走進 IPTV Framework
讓 HTML5 走進 IPTV Framework讓 HTML5 走進 IPTV Framework
讓 HTML5 走進 IPTV FrameworkJollen Chen
 
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(2)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(2)課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(2)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(2)Jollen Chen
 
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(3)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(3)課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(3)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(3)Jollen Chen
 
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(1)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(1)課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(1)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(1)Jollen Chen
 
Android HAL Introduction: libhardware and its legacy
Android HAL Introduction: libhardware and its legacyAndroid HAL Introduction: libhardware and its legacy
Android HAL Introduction: libhardware and its legacyJollen Chen
 
Jollen's Presentation: Introducing Android low-level
Jollen's Presentation: Introducing Android low-levelJollen's Presentation: Introducing Android low-level
Jollen's Presentation: Introducing Android low-levelJollen Chen
 
Android Application: Introduction
Android Application: IntroductionAndroid Application: Introduction
Android Application: IntroductionJollen Chen
 

Más de Jollen Chen (20)

Flowchain blockchain classroom at Taiwan Tech University
Flowchain blockchain classroom at Taiwan Tech UniversityFlowchain blockchain classroom at Taiwan Tech University
Flowchain blockchain classroom at Taiwan Tech University
 
Bitmark and Hyperledger Workshop: the Digital Assets and Property
Bitmark and Hyperledger Workshop: the Digital Assets and PropertyBitmark and Hyperledger Workshop: the Digital Assets and Property
Bitmark and Hyperledger Workshop: the Digital Assets and Property
 
Introducing the Blockchain and Distributed Ledger Technology
Introducing the Blockchain and  Distributed Ledger TechnologyIntroducing the Blockchain and  Distributed Ledger Technology
Introducing the Blockchain and Distributed Ledger Technology
 
Maker of Things - the open IoT cloud for makers chapter.
Maker of Things - the open IoT cloud for makers chapter.Maker of Things - the open IoT cloud for makers chapter.
Maker of Things - the open IoT cloud for makers chapter.
 
WoT.City and IoT Protocols Movement @ Taipei, Taiwan
WoT.City and IoT Protocols Movement @ Taipei, TaiwanWoT.City and IoT Protocols Movement @ Taipei, Taiwan
WoT.City and IoT Protocols Movement @ Taipei, Taiwan
 
IoT and Maker Crossover (IMCO) Conference 2015
IoT and Maker Crossover (IMCO) Conference 2015IoT and Maker Crossover (IMCO) Conference 2015
IoT and Maker Crossover (IMCO) Conference 2015
 
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.Open IoT Cloud Architecture, Web of Things, Shenzhen, China.
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.
 
Backbone.js and MVW 101
Backbone.js and MVW 101Backbone.js and MVW 101
Backbone.js and MVW 101
 
Single-Page Application Design Principles 101
Single-Page Application Design Principles 101Single-Page Application Design Principles 101
Single-Page Application Design Principles 101
 
MongoDB & NoSQL 101
 MongoDB & NoSQL 101 MongoDB & NoSQL 101
MongoDB & NoSQL 101
 
Mokoversity Course: Apple Swift 101 - Introduction
Mokoversity Course: Apple Swift 101 - IntroductionMokoversity Course: Apple Swift 101 - Introduction
Mokoversity Course: Apple Swift 101 - Introduction
 
Android Wear SDK: Level 101
Android Wear SDK: Level 101Android Wear SDK: Level 101
Android Wear SDK: Level 101
 
Startup eng-camp 3
Startup eng-camp 3Startup eng-camp 3
Startup eng-camp 3
 
讓 HTML5 走進 IPTV Framework
讓 HTML5 走進 IPTV Framework讓 HTML5 走進 IPTV Framework
讓 HTML5 走進 IPTV Framework
 
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(2)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(2)課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(2)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(2)
 
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(3)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(3)課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(3)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(3)
 
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(1)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(1)課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(1)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(1)
 
Android HAL Introduction: libhardware and its legacy
Android HAL Introduction: libhardware and its legacyAndroid HAL Introduction: libhardware and its legacy
Android HAL Introduction: libhardware and its legacy
 
Jollen's Presentation: Introducing Android low-level
Jollen's Presentation: Introducing Android low-levelJollen's Presentation: Introducing Android low-level
Jollen's Presentation: Introducing Android low-level
 
Android Application: Introduction
Android Application: IntroductionAndroid Application: Introduction
Android Application: Introduction
 

Último

Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmStan Meyer
 
EMBODO Lesson Plan Grade 9 Law of Sines.docx
EMBODO Lesson Plan Grade 9 Law of Sines.docxEMBODO Lesson Plan Grade 9 Law of Sines.docx
EMBODO Lesson Plan Grade 9 Law of Sines.docxElton John Embodo
 
Measures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped dataMeasures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped dataBabyAnnMotar
 
Active Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfActive Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfPatidar M
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...Nguyen Thanh Tu Collection
 
4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptxmary850239
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfVanessa Camilleri
 
ClimART Action | eTwinning Project
ClimART Action    |    eTwinning ProjectClimART Action    |    eTwinning Project
ClimART Action | eTwinning Projectjordimapav
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfTechSoup
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17Celine George
 
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfVirtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfErwinPantujan2
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxQ4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxlancelewisportillo
 
Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4JOYLYNSAMANIEGO
 
Activity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translationActivity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translationRosabel UA
 

Último (20)

Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and Film
 
EMBODO Lesson Plan Grade 9 Law of Sines.docx
EMBODO Lesson Plan Grade 9 Law of Sines.docxEMBODO Lesson Plan Grade 9 Law of Sines.docx
EMBODO Lesson Plan Grade 9 Law of Sines.docx
 
Measures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped dataMeasures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped data
 
Active Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfActive Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdf
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
 
4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdf
 
ClimART Action | eTwinning Project
ClimART Action    |    eTwinning ProjectClimART Action    |    eTwinning Project
ClimART Action | eTwinning Project
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17
 
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfVirtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
 
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptxLEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxQ4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
 
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptxYOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
 
Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4
 
Activity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translationActivity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translation
 

Jollen's Linux Consulting Services

  • 1.
  • 2. Jollen’s Consulting , , , : www.jollen.org/consulting
  • 3. Jollen’s Consulting ta@jollen.org [ ] Jollen’s Consulting Team
  • 4.
  • 5. Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 6.
  • 7. Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 8. Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 9. Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 10. Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 11. # cd / # tar zxvf arm-9tdmi-linux-gnu.tar.gz ( ) # export PATH=/opt/crosstool/gcc-3.4.1-glibc-2.3.3/ arm-9tdmi-linux-gnu/bin/:$PATH ( ) (or) # source ./armpath Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 12. – ipaddr – serverip Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 13. jollen.org # printenv bootdelay=3 ethaddr=10:10:ff:ff:ff:ff ipaddr=192.168.1.10 serverip=192.168.1.1 netmask=255.255.255.0 stdin=serial baudrate=115200 bootargs=root=/dev/ram0 rw console=ttyS0,115200 mem=64M ramdisk=16384 stdout=serial stderr=serial IP address 192.168.1.10 TFTP server IP address 192.168.1.1 Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 14. jollen.org # set ipaddr 192.168.100.15 jollen.org # set serverip 192.168.100.14 jollen.org # saveenv Saving Environment to Flash... Un-Protected 1 sectors Erasing Flash...Erasing sector 18 ... ok. Erased 1 sectors Writing to Flash... done Protected 1 sectors Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 15. • loadAddress • bootfilename Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 16. jollen.org # tftpboot 30F00000 uimage.img jollen.org # tftpboot 32000000 urootfs.img jollen.org # bootm 30F00000 32000000 Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 17. Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 18. src/cross.mk TOOL_TOP TOOL_TOP = /opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 19. src/hello/ make # make [ -- Start to compile hello.c to hello.o -- ] /opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-gcc -nostdinc -I/opt/crosstool/ gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/include -I/opt/crosstool/gcc-3.4.1-glibc-2.3.3/ arm-9tdmi-linux-gnu/lib/gcc/arm-9tdmi-linux-gnu/3.4.1/include -c hello.c [ -- Start to link hello.o to hello.gdb -- ] /opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-gcc -Wl,-nostdlib -Wl,-L,/opt/ crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib -Wl,-L,/opt/crosstool/gcc-3.4.1- glibc-2.3.3/arm-9tdmi-linux-gnu/lib/gcc/arm-9tdmi-linux-gnu/3.4.1 -Wl,-rpath,/opt/crosstool/gcc-3.4.1-glibc-2.3.3/ arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib -Wl,-rpath,/lib -Wl,-rpath-link,/opt/crosstool/gcc-3.4.1-glibc-2.3.3/ arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib -nostartfiles -nodefaultlibs /opt/crosstool/gcc-3.4.1-glibc-2.3.3/ arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib/crt1.o /opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/ arm-9tdmi-linux-gnu/lib/crti.o /opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/lib/gcc/arm-9tdmi-linux-gnu/ 3.4.1/crtbegin.o hello.o /opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/lib/gcc/arm-9tdmi-linux-gnu/3.4.1/ crtend.o /opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib/crtn.o -lgcc -lgcc_eh -lc - lgcc -lgcc_eh -o hello.gdb [ -- Start to strip hello.gdb and produce hello -- ] /opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-strip -R .note -R .comment hello.gdb -o hello Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 20. • hello • hello.gdb • hello.o hello.c # arm-9tdmi-linux-gnu-objdump –x hello | more (or) # readelf –a hello | more Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 21. hello • hello copy # tftp –g –r hello 192.168.100.14 tftp (/tftpboot in our example) # chmod a+x ./hello • Target IP # ./hello address ( ifconfig ) Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 22. Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 23. Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 24. • • • Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 25. #export PATH=/opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi- linux-gnu/bin:$PATH #arm-9tdmi-linux-gnu-gcc -g -nostdinc -Os -Wall -mtune=arm9tdmi -march=armv4 -fomit-frame-pointer -fsigned-char -fPIC -I/opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/ arm-9tdmi-linux-gnu/include -I/opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/lib/ gcc/arm-9tdmi-linux-gnu/3.4.1/include -c hello.c Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 26. • -nostdinc • -I • -mtune=arm9tdmi • -march=armv4 • -fomit-frame-pointer • -fsigned-char • -fPIC • -Os • -Wall • -c ld Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 27. arm-9tdmi-linux-gnu-ld -nostdlib -L /opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib -L /opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/lib/gcc/arm-9tdmi-linux-gnu/3.4.1 -rpath-link /opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib -o hello /opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib/crt1.o /opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib/crti.o /opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/lib/gcc/arm-9tdmi-linux-gnu/3.4.1/ crtbegin.o hello.o /opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/lib/gcc/arm-9tdmi-linux-gnu/3.4.1/crtend.o /opt/crosstool/gcc-3.4.1-glibc-2.3.3/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib/crtn.o -lgcc -lgcc_eh -lc -lgcc -lgcc_eh arm-9tdmi-linux-gnu-strip -R .note -R .comment hello Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 28. -L • -o • -lc libc • -lgcc libgcc Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 29. ‘` Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 30. TOOL_TOP • GCC_LIB_PATH • GLIBC_PATH • CROSS_CFLAGS • LDFLAGS • LIBS • LINK_S • LINK_E Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 31. Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 32. Makefile Makefile make Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 33. – cross.mk Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 34. Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 35. Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 36. 1. 2. 3. 4. Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 37. Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 38. 1. libmad-0.15.1b.tar.gz cross.mk libmad-0.15.1b/ 2. libmad.cross libmad-0.15.1b/ 3. 4. Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 39. ./configure Makefile ./ configure Makefile Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 40. cross.mk cross.mk Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 41. • configure Makfile configure – CC – AR – LD – AS – STRIP – RANLIB – CFLAGS Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 42. • configure – --prefix – --host Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 43. Madplay libid3tag libmad zlib Building root filesystem (porting) • standalone application (e.g. thttpd) • software stacks (e.g. madplay project) • software stacks with architectural consideration (e.g. nano-X project) Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 44.
  • 46. Definition of a Software "bug": Webster's New Collegiate Dictionary defines a "bug" as "an unexpected defect, fault, flaw, or imperfection". We need to refine this definition since it is too ambiguous. In the scope of this guarantee, a "bug", with respect to the guaranteed software, is defined as "a defect, fault, flaw or imperfection which causes the software to not operate as intended or to stop operating abruptly." http://www.autocadstandards.org/autocadstandards/bugfree/default.htm
  • 47. Boot-time Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 48. Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 49. Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 50. printk kdb kgdb gdb + qemu Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 51. debug printk remote debug N kdb local debug N kgdb remote debug Y gdb + qemu remote debug Y Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 52. Linux kernel image • arch/arm/boot/Image target kernel • arch/arm/boot/zImage • arch/arm/boot/uImage • ./vmlinux ELF image Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 53. source level printk kernel message -- kdb machine code -- gdb + qemu source code kernel w/ symbol table kgdb source code kernel w/ symbol table Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 54. Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 55. Debug Symbols CONFIG_DEBUG_INFO = y
  • 56. linux kernel for s3c2410 http://www.jk2410.org/opensource/linux-2.6.20.4-jk2410.tar.bz2 http://www.jk2410.org/opensource/gcc-4.1.0-glibc-2.4.tar.bz2 $ make ARCH=arm CROSS_COMPILE=/opt/crosstool/gcc-4.1.0-glibc-2.4/arm-9tdmi-linux-gnueabi/bin/ arm-9tdmi-linux-gnueabi- menuconfig $ make ARCH=arm CROSS_COMPILE=/opt/crosstool/gcc-4.1.0-glibc-2.4/arm-9tdmi-linux-gnueabi/bin/ arm-9tdmi-linux-gnueabi- uImage
  • 57. $ make uImage $ cd /usr/local/bin $ sudo wget http://www.jk2410.org/opensource/pre-built/mkimage $ chmod a+x mkimage
  • 58. qemu kernel http://www.jk2410.org/opensource/qemu-jk2410-20070826.tar.gz
  • 59. cgdb 2 qemu
  • 62. Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 63.
  • 64. cpu/arm920t/start.S • Setup vector table CPU • Set the CPU to SVC32 mode (reset) • Relocate to RAM • Setup stack board/lart/memsetup.S Board lib_arm/board.c • Board initialize sequence • start_armboot() • Call main_loop() board/<board>/*, eg. main_loop(): main.c board/lart/lart.c Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 65. .globl _start _start: b reset ldr pc, _undefined_instruction ldr pc, _software_interrupt ldr pc, _prefetch_abort ldr pc, _data_abort ldr pc, _not_used ldr pc, _irq ldr pc, _fiq _undefined_instruction: .word undefined_instruction _software_interrupt: .word software_interrupt _prefetch_abort: .word prefetch_abort _data_abort: .word data_abort _not_used: .word not_used _irq: .word irq _fiq: .word fiq .balignl 16,0xdeadbeef Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 66. /* * the actual reset code */ reset: /* * set the cpu to SVC32 mode */ mrs r0,cpsr bic r0,r0,#0x1f orr r0,r0,#0xd3 msr cpsr,r0 . . . #ifdef CONFIG_INIT_CRITICAL bl cpu_init_crit #endif Where memsetup be called. relocate Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 67. cpu_init_crit: /* * flush v4 I/D caches */ mov r0, #0 mcr p15, 0, r0, c7, c7, 0 /* flush v3/v4 cache */ mcr p15, 0, r0, c8, c7, 0 /* flush v4 TLB */ /* * disable MMU stuff and caches */ mrc p15, 0, r0, c1, c0, 0 bic r0, r0, #0x00002300 @ clear bits 13, 9:8 (--V- --RS) bic r0, r0, #0x00000087 @ clear bits 7, 2:0 (B--- -CAM) orr r0, r0, #0x00000002 @ set bit 2 (A) Align orr r0, r0, #0x00001000 @ set bit 12 (I) I-Cache mcr p15, 0, r0, c1, c0, 0 Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 68. /* * before relocating, we have to setup RAM timing * because memory timing is board-dependend, you will * find a memsetup.S in your board directory. */ mov ip, lr bl memsetup mov lr, ip mov pc, lr Return to reset. board/lart/memsetup.S Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 69. EM_BASE: .long 0xa0000000 MEM_START: .long 0xc0000000 #define MDCNFG 0x00 #define MDCAS0 0x04 #define MDCAS1 0x08 #define MDCAS2 0x0c #define MSC0 0x10 #define MSC1 0x14 #define MECR 0x18 mdcas0: .long 0xc71c703f mdcas1: .long 0xffc71c71 mdcas2: .long 0xffffffff /* mdcnfg: .long 0x0bb2bcbf */ mdcnfg: .long 0x0334b22f @ alt /* mcs0: .long 0xfff8fff8 */ msc0: .long 0xad8c4888 @ alt mecr: .long 0x00060006 /* mecr: .long 0x994a994a @ alt */ Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 70. .globl memsetup /* MDCNFG */ memsetup: ldr r1, mdcnfg ldr r0, MEM_BASE str r1, [r0, #MDCNFG] /* Setup the flash memory */ ldr r1, msc0 /* Set up PCMCIA space */ str r1, [r0, #MSC0] ldr r1, mecr str r1, [r0, #MECR] /* Set up the DRAM */ /* Load something to activate bank */ /* MDCAS0 */ ldr r1, mdcas0 ldr r1, MEM_START str r1, [r0, #MDCAS0] .rept 8 /* MDCAS1 */ ldr r0, [r1] ldr r1, mdcas1 .endr str r1, [r0, #MDCAS1] /* MDCAS2 */ /* everything is fine now */ ldr r1, mdcas2 mov pc, lr str r1, [r0, #MDCAS2] Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 71. relocate: /* relocate U-Boot to RAM */ adr r0, _start /* r0 <- current position of code */ ldr r1, _TEXT_BASE /* test if we run from flash or RAM */ cmp r0, r1 /* don't reloc during debug */ beq stack_setup ldr r2, _armboot_start ldr r3, _bss_start sub r2, r3, r2 /* r2 <- size of armboot */ add r2, r0, r2 /* r2 <- source end address */ copy_loop: ldmia r0!, {r3-r10} /* copy from source address [r0] */ stmia r1!, {r3-r10} /* copy to target address [r1] */ cmp r0, r2 /* until source end addreee [r2] */ ble copy_loop stack_setup Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 72. /* Set up the stack */ stack_setup: ldr r0, _TEXT_BASE /* upper 128 KiB: relocated uboot */ sub r0, r0, #CFG_MALLOC_LEN /* malloc area */ sub r0, r0, #CFG_GBL_DATA_SIZE /* bdinfo */ #ifdef CONFIG_USE_IRQ sub r0, r0, #(CONFIG_STACKSIZE_IRQ+CONFIG_STACKSIZE_FIQ) #endif sub sp, r0, #12 /* leave 3 words for abort-stack */ clear_bss Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 73. clear_bss: ldr r0, _bss_start /* find start of bss segment */ add r0, r0, #4 /* start at first byte of bss */ ldr r1, _bss_end /* stop here */ mov r2, #0x00000000 /* clear */ clbss_l:str r2, [r0] /* clear loop... */ add r0, r0, #4 cmp r0, r1 bne clbss_l . . . ldr pc, _start_armboot _start_armboot: .word start_armboot lib_arm/board.c Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 74. typedef int (init_fnc_t) (void); init_fnc_t *init_sequence[] = { cpu_init, /* basic cpu dependent setup */ board_init, /* basic board dependent setup */ interrupt_init, /* set up exceptions */ env_init, /* initialize environment */ init_baudrate, /* initialze baudrate settings */ serial_init, /* serial communications setup */ console_init_f, /* stage 1 init of console */ display_banner, /* say that we are here */ dram_init, /* configure available RAM banks */ display_dram_config, NULL, }; Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 75. void start_armboot (void) { init_fnc_t **init_fnc_ptr; for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) { if ((*init_fnc_ptr)() != 0) { hang (); } } . . . /* main_loop() can return to retry autoboot, if so just run it again. */ for (;;) { main_loop (); } } Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 76. void start_linux(char *name,char *rdname) { void (*theKernel)(int zero, int arch, u32 params); u32 exec_at = ZIMAGE_LOAD_ADDRESS; u32 parm_at = DRAM_BASE + 0x100; u32 machine_type; load_image(name, exec_at); /* copy image into RAM */ load_image(rdname, INITRD_LOAD_ADDRESS);/* copy initial ramdisk image into RAM */ setup_tags(parm_at); /* sets up parameters */ machine_type = get_mach_type(); /* get machine type */ irq_shutdown(); /* stop irq */ cpu_op(CPUOP_MMUCHANGE, NULL); /* turn MMU off */ theKernel = (void (*)(int, int, u32))exec_at; /* set the kernel address */ theKernel(0, machine_type, parm_at); /* jump to kernel with register set */ /* NOT REACHED */ } Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 77.
  • 78. User Mode Application System Call Interface Virture File System(VFS) BSD socket inet(AF_INET) Kernel Mode Buffer Cache Network Subsystem Transport(TCP,UDP) Network(IP) Character Block Network Device Driver Device Driver Device Driver Device Interface Physical Device (Hardware) Hardware Source: Jollen Linux (Revision 5) Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 79. Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 80. Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 81. Source: Jollen Linux (Revision 5) Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 82. Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 83. Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 84. Linux - Jollen’s Consulting. www.jollen.org/consulting
  • 85. Jollen Chen <jollen@jollen.org> Jollen's Consulting Embedded Linux Openmoko Openmoko Openmoko Android OS Android Android - Android Android porting (s3c244x/s3c64x0) Linux Linux Jollen - www.jollen.org/blog www.jollen.org/consulting