Understanding SCSI

  • Small computer systems interface.
  • Upto 16 devices can be daisy chained.
  • Fast SCSI, Ultra SCSI, Ultra Wide SCSI, Ultra2 SCSI,Ultra3 SCSI, Ultra-320 SCSI, Ultra-640 SCSI, iSCSI.
  • Narrow bus(8 devices) vs Wide Bus (16 devices).
  • Requires end device termination.
  • Each SCSI device in a single bus contains unique SCSI ID.
  • Logical Unit Number(LUN) assigned to seperate drives under a storage array.
  • Tips for turning your screen around

    Yesterday I was working with my laptop connected with a remote monitor. I realised the screen in my laptop looks upside down. Not sure I did pressed any key combination or a bug with windows. Searched for the screen turning around and found this good tip. This is with windows 10. May work for other versions also.

    Tips for turning the screen around:

      If you want to turn the screen upside down, press “Ctrl + Alt + down arrow”.
      To turn the screen back to the default position, press “Ctrl + Alt + up arrow”.
      To turn the screen on to the side, press “Ctrl + Alt + left/right arrow”.

    A Quick introduction on Toolchain

    What is a Toolchain?

    Its a set of tools linked together by specific stages which can be used to run on a specific machine.
    It contains tools for compiling, debugging , binary file manipulation and analysis.
    There are pre-built toolchain available in internet. We can build our own using automated tool chain build tools or from scratch.

    What are the types of Toolchain available?

    Tool chains are run on 3 machine types
    Build – The machine where the tool chain is first built.
    Host – The machine where the tool chain is used to generate the target binary.
    Target – The machine where the target binary is run.

    Based on the above below are the Toolchain types
    Native – The build, host and target are the same architecture. E.G:- The GCC compiler coming with RedHat x86 version
    Cross Compiled – The build and host are same architecture, but the target is different. E.G:- Using x86 GCC creating a cross compiled GCC which generates binary to run on an ARM processor.
    Cross Native – The host and target are of the same architecture. E.G;- Using x86 GCC create a cross native arm GCC, which can be used in an ARM Linux OS to generate binary which runs on ARM processor.
    Canadian Build – The architecture for all the build, host and target differs. E.G:- Using X86 GCC create an ARM GCC which generates binary to run on a PPC machine. In this case build and target can be same architecture.

    What are the Toolchain components?
    The main components are
    Binutils – as,ld,readelf etc
    Compiler – gcc,g++ etc
    C library – glibc, uclibc etc
    Debugger – gdb
    Kernel – headers

    What are the stages in building a Toolchain?
    1. Download sources for the components
    2. Set the environment variables for the Toolchain build. e.g:- setting the build, host, target architecture and intermediate installation directories.
    3. Build first the binutils
    4. Build the bootstrap gcc with options –with-gnu-as –with-gnu-ld to instruct the compiler to use binutils assembler and linker than native assembler and linker.
    5. Build glibc
    6. Build gcc again with newly build glibc with options –with-gnu-as –with-gnu-ld to instruct the compiler to use binutils assembler and linker than native
    7. Build gcc again with newly build glibc with options –with-gnu-as –with-gnu-ld to instruct the compiler to use binutils assembler and linker than native. This is to compare the binaries and make sure you are getting the same output and no compiler bug.
    8. Use the Toolchain to build your application.
    9. Run your application on the target machine.

    What are the options for building a Toolchain?
    Option 1: Build your own
    Option 2: Prebuilt Toolchain. e.g:- CodeSourcery, Linoro(ARM) etc
    Option 3: Automated Toolchain build systems. e.g:- Buildroot, Open ADK, crosstool-NG

    Note:- The option 2 and 3 helps in quick development as the dependencies between the Toolchain components will be taken care by the maintainers of the Toolchain build systems.

    Page 1 of 177
    1 2 3 177