On Skyeye Run 1. Software Version Information: 1) Simulation Software: Skyeye: 0.7.7 (http://www.skyeye.org/download.htm); 2) System Software: Linux Kernel: 2.6 .7 (ftp://ftp.arm.linux.org.uk); Busybox: 1.0.0 - rc3 (http://www.busybox.net); Tinylogin: 1.4 (http://tinylogin.busybox.net ); 3) Tool chain software: xscale-gcc: 3.3.3; Reading Specs from: /usr/local/xscale/3.3.3/lib/gcc-lib/arm-linux/3.3/specs configured with: ./configure --target = arm-linux --prefix = / usr / local / xscale / 3.3.3 i686-linux --with-headers = / usr / local / src / arm / linux / include --with-CPU = xscale --with-softfloat-support = internal --enable-languages = C, C - NFP thread model: POSIX GCC Version: 3.3.3 ARM-Linux-GCC: 3.2.3; Reading Specs from: / usr / Local / ARM / LIB / GCC-LIB / ARM-Linux / 3.2.3 / Specs Configured with: ./configure --prefix = / usr / local / arm --target = arm-linux --enable-shared --enable -threads = POSIX --WITH-SYSTEM-ZLIB --DISABLE-Checking --Nable -__ cxa_atexit --enable-languages = C, C Thread Model: POSIX GCC VERSION: 3.2.3 Note: Xscale-GCC-3.3.3 There are some problems with the cross-compiler to the fork () function, so you need another version of the cross-compiler to compile B USCALE-GCC-3.3.3 is used only when compiled cores. Xscale-GCC-3.3.3 is installed to the / usr / local / xscale / directory, and the other cross-compilation tool chain is installed in the / usr / local / arm directory.
2. Establishment: 1) Create a package: Create a working directory Lubbock in "/", then copy the required packages to the Lubbock directory: [Root @ localhost /] # mkdir lubbock [root @ Localhost /] # ... (copy software package) [root @ localhost /] # ls lubbock -l total 46768 -rwxr - r - 1 bucket bucket 1296439 Sep 1 03:14 busybox-1.00-rc3.tar.gz - RWXR - R - 1 Bucket Bucket 35092228 JUN 16 14:01 Linux-2.6.7.tar.bz2 -rwxr - r - 1 Bucket Bucket 11320794 AUG 22 09:04 Skyeye-0.7.7.tar.bz2 - RWXR - R - 1 BUCKET BUCKET 110491 SEP 20 2004 Tinylogin-1.4.tar.gz The following uses TAR unwrapping each compressed package, then delete the compressed package to save space: [root @ localhost lubbock] # cd lubbock [root @ localhost Lubbock] # tar jxvf Linux-2.6.7.tar.bz2 [root @ localhost lubbock] # tar jxvf skyeye-0.7.7.tar.bz2 [root @ localhost lubbock] # tar zxvf busybox-1.00-rc3.tar.gz [root @ localhost lubbock] # tar zxvf tinylogin-1.4.tar.gz [root @ localhost lubbock] # rm * .bz2 * .gz [root @ localhost lubbock] # ls -l Total 16 DrwxR-XR-X 28 Bucket Bucket 4096 AUG 16 06:30 busybox-1.00-RC3 DRWXRWXR-X 18 Bucket Bucket 4096 JUN 16 01:19 Linux-2.6.7 DrwxrwR-x 16 Bucket Bucket 4096 JUL 20 22:44 Skye YE DRWXR-XR-X 6 Bucket Bucket 4096 Jan 3 2003 TinyLogin-1.4 2) Install Skyeye's LCD and touch screen patch: (if you do not need LCD and touch screen support, this step can be skipped) in Skyeye-0.7.7 There is no support for the LCD and touch screen of the Lubbock development board, and several patches need to be installed. Here, I would like to thank Chen Yu moderator and Yin Wenchao to provide patch files and modification methods.
Copy the patch file to the lubbock / lcd_touchpad_patch directory: [root @ localhost /] # ls lus @ localhost /】 # ls luse -r-lcd_touchpad_patch -r -l lcd_touchpad_patch /: Total 8 DrwxR-XR-X 2 root root 4096 Sep 5 16:27 LCD DRWXR-XR- x 2 root root 4096 Sep 5 16:27 TouchPad LCD_TouchPad_patch / LCD: Total 92 -RWXR - R - 1 Bucket Bucket 11437 AUG 27 02:30 ArmMem.c - RWXR - R - 1 Bucket Bucket 4512 Aug 27 02 : 30 pxa.h -rtwxr - r - 1 Bucket Bucket 15724 AUG 27 02:28 Skyeye_lcd.c -rt - rwr - r - 1 Bucket Bucket 18771 AUG 27 02:28 SkyEyE_MACH_PXA.C -RWXR - R - R 1 Bucket Bucket 33340 AUG 31 21:33 xscale_copro.c lcd_touchpad_patch / touchpad: Total 156 -RWXR - R - 1 Bucket Bucket 187 Aug 31 23:22 makefile -rtwxr - r - 1 Bucket Bucket 106297 AUG 31 23: 18 pXA-sys.h -rt - r - 1 bucket bucket 26947 aug 31 23:19 skyeye_ts_drv.c -rt 12967 AUG 31 23:19 SkyEYE_TS_DRV.H Put the lcd_touchpad_patch / lcd directory Document copy to SiM / ARM directory of Skyeye: [root @ localhost /] # CD / LUBBOCALHOST /] # CD / LUBBOCK [root @ localhost lubbock] # CP LCD_TouchPad / LCD / * SkyEye / SIM / ARM -A -F Put the LCD_TouchPad_patch / TouchPad directory Document Under the Drivers / Misc directory for Linux-2.6.7: [root @ localhost /] # cd / lubbock [root @ localhost lubbock] # CP LCD_TouchPad / TouchPad / * Linux-2.6.7 / drivers / MISC -A -F 3) Set an environment variable: For future operation, set some environment variables. The following operations can be added to the .bashrc file (such as /root/.bashrc) in the .bashrc file (for example, /root/.bashrc), and save the same settings after the next login.
[Root @ localhost /] # export LUBBOCKDIR = / lubbock [root @ localhost /] # cd $ LUBBOCKDIR [root @ localhost lubbock] # export KERNELDIR = $ PWD / linux-2.6.7 [root @ localhost lubbock] # export SKYEYEDIR = $ PWD / SKYEYE [root @ localhost lubbock] # @ ot @ localhost lubbock] # @ ot @ localhost lubbock】 # @ @ @ylogindir = $ PWD / TinyLogin-1.4 3. Compile system software: 1) Compile Skyeye: Skyeye's source directory configuration and compile SkyEye: [root @ localhost /] # cd $ skyeyedir [root @ localhost skyeye] # ./configure / --target = arm-elf / --prefix = / usr / local [root @ LocalHost Skyeye] # make [root @ localhost skyeye] # make install configure - Target parameter specifies that SkyEye analog execution ELF format is executed, and theprefix parameter specifies the installation path of Skyeye. Skyeye's executable after compiling and installed in / usr / local / bin directory: [Root @ localhost skyeye] # ls / usr / local / bin / skyeye -l -rwxr-xr-x 1 root root 2168384 Sep 5 23:55 / usr / local / bin / skyeye Add / usr / local / bin directory to the environment variable PATH, you can run Skyeye in any path in the future: [root @ localhost skyeye] # @ ot = = / usr / local / bin: $ PATH Note: Since SkyEye has no complete function of the instruction, there is "SkyEye Armul_LDC, Not Allow, ...", "SkyEye Armul_LDC, Not Allow, ...", the information, "SkyEye Armul_LDC, Not Allow, ..." Will not affect the normal operation of the application. If you feel that the information is affected, you can comment on the corresponding printf statement of $ SkyEyedir / SIM / Armsupp.c. In this example, the printf statement of the LINE 493 and LINE 579 in the file is annotated. 2) Compile the Linux kernel: Since the Linux-2.6.7 core itself has supported the LubboCK development board, as long as the original default setting is slightly modified.
Note When configuring the core of the embedded development board, you need to set the Arch parameter as ARM: [root @ localhost /] # cd $ kerNeldir [root @ localhost Linux-2.6.7] make Arch = arm lubbock_defconfig [root @ localhost Linux-2.6. 7] Make Arch = ARM MEUNCONFIG ---> Select: General setup (second) ---> Modification (root = / dev / nfs ip = bootp console = ttys0, 115200 mem = 64m) Default kernel command string is: (root = / dev / ram rw initrd = 0xa1000000, 0x01000000 console = ttys0 ,115200 mem = 64M) ---> Select: block defices ---> Modify [] ramdisk support is [*] ramdisk support ---> modification (4096) DEFAULT RAM Disk size (kbytes) is (16384) Default Ram Disk size (kbytes) ---> Modify [] Initial Ram Disk (Initrd) Support is [*] Initial Ram Disk (Initrd) Support ---> Save and exit Modify Command_LINE tells the location and size of the kernel system file system, modifying RAMDisk Support to support the kernel to support ramdisk and specify its size. If you want to support LCD display devices for Lubbock, you must modify it: [Root @ localhost linux-2.6.7] # make arch = arm meunconfig ---> Select: graphics support ---> Modify [] Support for frame Buffer devices is [*] Support for frame buffer devices ---> Modify <> PXA LCD FrameBuffer Support is <*> PXA LCD FrameBuffer Support ---> Modify [] PXA LCD Command Line Parameters is [*] PXA LCD Command Line Parameters ---> Save and exit after completing the kernel configuration, compile the kernel using the Make instruction. Since the kernel runs on an embedded development board, you need to indicate the required cross-compilation toolchain while setting the Arch parameter. It is used herein xscale-gcc-3.3.3: [root @ localhost Linux-2.6.7] # Make / Arch = ARM / Cross_Compile = / usr / local / xscale / 3.3.3 / bin / arm-linux- / ZIMAGE compiled compressed kernel files in Arch / ARM / BOOT /, file name is ziamge: [root @ localhost linux-2.6.7] # ls arch / arm / boot / ziamge -l -rwxr-xr-x 1 Root root 947512 Sep 6 02:49 ARCH / ARM / BOOT / ZIMAGE Note: The value of command_line in the kernel configuration is important. It must be consistent with the contents of the SkyEye that will be mentioned later, otherwise the kernel will not be loaded normally.
The root parameter indicates the location and attribute of the root file system (if the RW parameter is not added, the startup file system bit read-only attribute), the initrd parameter specifies the location and size of the RAMDisk file system. Here, Ramdisk is mapped to 0xA000000 of the memory address, with a size of 0x01000000 (16M). 3) Compile BUSYBOX: Configuring Busybox Remodes the position of the cross tool chain (this example is placed in the / usr / local / arm / bin directory), while BusyBox is immediately started after the BUSYBOX is completed, it is started immediately, so in order to avoid Set the trouble of the shared library link, you should compile busybox as static binary: [root @ localhost /] # CD $ busyboxdir [root @ localhost busybox-1.00-rc3] # Make MenuConfig ---> Select: Build Options ---> Modify [] build busybox as a static binary (no shared libs) is [*] build busybox as a static binary (no shared libs) ---> modify [] do you want to build busybox with a cross compiler? [* ] Do you want to build busybox with a cross compiler? (/ Usr / local / arm / bin / arm-linux-) Cross Compiler prefix ---> Save and exit compile according to your needs ---> Save and exit compilation After installing busybox: [Root @ localhost busybox-1.00-rc3] # make [root @ localhost busybox-1.00-rc3] # make install generated executable executive in busybox-1.00-rc3 / _install directory [root @ LocalHost Busybox-1.00-RC3] # ls _install -l drwxr-xr-x 2 root root 4096 Sep 6 17:49 bin lrwxrwx 1 root root 11 Sep 6 17:49 Linuxrc -> bin / busybox drwxr-xr-x 2 root Root 4096 Sep 6 17:49 sbin drwxr-xr-x 4 root root 4096 Sep 6 17:49 usr [root @ localhost busybox-1.00-rc3] # ls _install / bin / busybox -l -rwxr-xr-x 1 root root 931272 Sep 6 17:49 _install / bin / busybox Note: If BusyBox is compiled into binary files to shared library links, you need to put the desired shared library in the file. System / lib directory. If you put the shared library in other locations, the system is could not run busybox by could not find a shared library. Since Busybox cannot run, the system's shell cannot load, so you cannot set the ld_library_path variable by using Export or Stenv. The solution is to set this variable in the COMMAND_LINE of the kernel. For example, shared libraries are placed in the / usr / local / arm / lib directory, add ld_library_path = / usr / local / arm / lib to Command_LINE.
4) Compile TinyLogin: In addition to setting the cross-compilation tool chain, modify several parameters in makefile, let TinyLogin use the own Passwd and Shadow library (if you do not use the Tinylogin's own library, Tinylogin Will use the system's function library, but also install the NSS link library in the file system of the development board, more troubles): [Root @ localhost /] # CD $ tinylogindir [root @ localhost tinylogin-1.4] # vi makefile --- > modify DOSTATIC = false to DOSTATIC = true (TinyLogin will be compiled into static binaries) ---> modify USE_SYSTEM_PWD_GRP = true to USE_SYSTEM_PWD_GRP = false (use passwd TinyLogin own library) ---> modify USE_SYSTEM_SHADOW = true to USE_SYSTEM_SHADOW = false (using TinyLogin comes with shadow function library) ---> Modify Cross = CROSS = / usr / local / arm / bin / arm-linux- (set the position of the cross-compilation toolchain) Compile the installation Tinylogin binarily Put in the TinyLogin-1.4 / _Install directory: [Root @ localhost tinylogin-1.4] # make [root @ localhost tinylogin-1.4] # make install [root @ localhost tinylogin-1.4] # ls _install -l Total 12 DrwxR-XR- x 2 root root 4096 Sep 6 19:24 bin drwxr-xr-x 2 root root 4096 Sep 6 19:24 sbin drwxr-xr-x 3 root root 4096 Sep 6 19:24 usr [root @ localhost tinylogin-1.4] # LS _INSTALL / BIN / TINYLOGIN -L -RWSR-XR-X 1 root root 40036 Sep 6 19:24 _install / bin / tinylogin 4. File system for making development board: file system With ramdisk, first generate a basic ramdisk image file: [Root @ localhost /] # CD $ LubBockDir [root @ localhost lubbock] # DD if = / dev / zero of = ramdisk.img BS = 1K count = 16K 16384 0 records in 16384 0 records out [root @ localhost lubbock] # mke2fs ramdisk.img mke2fs 1.32 (09-Nov-2002) ramdisk.img is not a block special device. Proceed anyway? (y, n) Filesystem label = OS y TYPE: Linux block size = 1024 (log = 0) Fragment size = 1024 (log =
0) 4096 inodes, 16384 blocks 819 blocks (5.00%) reserved for the super user First data block = 1 2 block groups 8192 blocks per group, 8192 fragments per group 2048 inodes per group Superblock backups stored on blocks: 8193 Writing inode tables: done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 38 mounts or 180 days, whichever comes first Use tune2fs -c or -i to override [root @ localhost lubbock] # file ramdisk.img ramdisk.img.. : Linux Rev 1.0 Ext2 FileSystem Data then writes a script (Initrootfs.sh) generates basic directory structure and device nodes in the file system, the contents of the script are as follows: [Root @ localhost lubbock] # Cat initRootfs.sh #! / Bin / sh cd ./rootfs echo "Making directories needed for the system ..." mkdir bin mkdir dev mkdir etc mkdir home mkdir mnt mkdir proc mkdir root mkdir sbin mkdir tmp mkdir usr mkdir var echo "Making device nodes needed for the system .. . "CD DEV MKNOD CONSOLE C 5 1 MKNOD TTYS0 C 4 64 MKNOD TTY C 5 0 MKNOD RAM0 B 1 0 MKNOD RAM1 B 1 1 MKNOD MEM C 1 1 MKNOD KMEM C 1 2 MKNOD NULL C 1 3 MKNOD ZERO C 1 5 MKNOD FB0 C 29 0 MKNOD PTMX C 5 2 Suffixes = "0 1 2 3 4 5 6 7 8 9 Abcdef" Major = 176 for i in $ suffixes; do mknod Ptya $ IC 2 $ Major Major = `EXPR $ MAJOR 1` DONE # reset major major = 176 for i in $ ffixes; do mknod TTYA $ IC3 $ major major =` expr $ major 1` Done # reset and make tty devices suffixes = "0 1 2 3 4 5 6 7 8 9" Major = 0 for i in $ suffixes; do mknod TTY $ IC 4 $ Major Major = `EXPR $ MAJOR 1`
DONE LN -S FB0 FB LN -S RAM1 RAM LN -S RAM0 RAMDISK LN -S ../proc/kcore kcore ln -s ../proc/self/fd/0 stdin ln -s ../proc/self/ FD / 1 stdout ln -s ../proc/self/fd/2 stderr executes this script: [Root @ localhost lubbock] # mkdir rootfs [root @ localhost lubbock] # mount ramdisk.img rootfs / -o loop [root @ Localhost Lubbock] # ./initrootfs.sh Making Directories needed for the system ... Making device nodes needed for the system ... [root @ localhost lubbock] # ls rootfs / -l total 23 drwxr-xr-x 2 Root root 1024 Sep 6 21:39 bin drwxr-xr-x 2 root root 1024 Sep 6 21:39 Dev drwxr-xr-x 2 root root 1024 Sep 6 21:39 etc DRWXR-XR-X 2 Root Root 1024 Sep 6 21: 39 Home Drwx ------ 2 Root Root 12288 Sep 6 21:30 Lost Found DRWXR-XR-x 2 root root 1024 Sep 6 21:39 MNT DRWXR-XR-X 2 Root Root 1024 Sep 6 21:39 Proc DrwxR-XR-X 2 root root 1024 Sep 6 21:39 root drwxr-xr-x 2 root root 1024 Sep 6 21:39 sbin drwxr-xr-x 2 Root root 1024 Sep 6 21:39 TMP DRWXR-XR- X 2 Root root 1024 Sep 6 21:39 usr drwxr-xr-x 2 root root 1024 Sep 6 21:39 var [ROO T @ localhost lubbock] # ls rootfs / dev -l Total 0 CRW-R - R - 1 root root 5, 1 Sep 6 21:39 Console Lrwxrwxrwx 1 root root 3 Sep 6 21:39 fb -> fb0 CRW- R - r - 1 root root 29, 0 Sep 6 21:39 FB0 LRWXRWXRWX 1 root root 13 Sep 6 21:39 kcore ->
. ../proc/kcore cut 1, 2 Sep 6 21:39 kmem CRW-R - R - 1 Root Root 1, 1 Sep 6 21:39 MEM CRW-R- -r - 1 root root 1, 3 Sep 6 21:39 NULL CRW-R - R - ROOT ROOT 5, 2 SEP 6 21:39 PTMX CRW-R - R - 1 Root Root 2, 176 Sep 6 21:39 Ptya0 CRW-R - R - 1 Root Root 2, 177 Sep 6 21:39 Ptya1 CRW-R - R - 1 Root Root 2, 178 Sep 6 21:39 Ptya2 CRW-R- -r - 1 root root 2, 179 Sep 6 21:39 Ptya3 CRW-R - R - 1 Root Root 2, 180 Sep 6 21:39 Ptya4 CRW-R - R - ROOT ROOT 2, 181 Sep 6 21:39 Ptya5 CRW-R - R - 1 Root Root 2, 182 Sep 6 21:39 Ptya6 CRW-R - R - 1 Root Root 2, 183 Sep 6 21:39 Ptya7 CRW-R- -r - 1 root root 2, 184 Sep 6 21:39 Ptya8 CRW-R - R - 1 Root Root 2, 185 Sep 6 21:39 Ptya9 CRW-R - R - ROOT ROOT 2, 186 Sep 6 21:39 Ptyaa CRW-R - R - 1 Root Root 2, 187 Sep 6 21:39 Ptyab CRW-R - R - R - 1 Root Root 2, 188 Sep 6 21:39 Ptyac CRW-R- -r - 1 root root 2, 189 Sep 6 21:39 Ptyad CRW-R - R - 1 Root Root 2, 190 Sep 6 21:39 Ptyae CRW-R - R - ROOT ROOT 2, 191 Sep 6 21:39 ptyaf lrwrwxrwx 1 root root 4 Sep 6 21:39 ra M -> RAM1 BRW-R - R - 1 Root Root 1, 0 Sep 6 21:39 Ram0 BRW-R - R - 1 Root Root 1, 1 Sep 6 21:39 Ram1 LrwxrwrwX 1 Root Root 4 Sep 6 21:39 Ramdisk -> Ram0 Lrwxrwxrwx 1 root root 17 Sep 6 21:39 stderr -> ../proc/self/fd/2 lrwxrwxrwx 1 root root 17 Sep 6 21:39 stdin -> ../proc/self / fd / 0 lrwxrwxrwx 1 root root 17 Sep 6 21:39 stdout ->
. ../proc/self/FD/1 CRW-R - R - 1 root root 5, 0 Sep 6 21:39 TTY CRW-R - R - ROOT ROOT 4, 0 Sep 6 21:39 TTY0 CRW-R - R - 1 Root Root 4, 1 SEP 6 21:39 TTY1 CRW-R - R - 1 Root Root 4, 2 Sep 6 21:39 TTY2 CRW-R - R - R - 1 ROOT Root 4, 3 Sep 6 21:39 TTY3 CRW-R - R - 1 Root Root 4, 4 Sep 6 21:39 TTY4 CRW-R - R - 1 Root Root 4, 5 Sep 6 21:39 TTY5 CRW-R - R - 1 Root Root 4, 6 Sep 6 21:39 TTY6 CRW-R - R - 1 Root Root 4, 7 Sep 6 21:39 TTY7 CRW-R - R - R - 1 root ROOT 4, 8 SEP 6 21:39 TTY8 CRW-R - R - 1 Root Root 4, 9 Sep 6 21:39 TTY9 CRW-R - R - R - 1 Root Root 3, 176 Sep 6 21:39 TTYA0 CRW-R - R - 1 Root Root 3, 177 Sep 6 21:39 TTYA1 CRW-R - R - 1 Root Root 3, 178 Sep 6 21:39 TTYA2 CRW-R - R - 1 root Root 3, 179 Sep 6 21:39 TTYA3 CRW-R - R - 1 Root Root 3, 180 Sep 6 21:39 TTYA4 CRW-R - R - 1 Root Root 3, 181 Sep 6 21:39 TTYA5 CRW-R - R - 1 Root Root 3, 182 Sep 6 21:39 TTYA6 CRW-R - R - 1 Root Root 3, 183 Sep 6 21:39 TTYA7 CRW-R - R - ROOT Root 3, 184 Sep 6 21:39 TTYA8 CRW-R - R - 1 Root Root 3, 185 Sep 6 21:39 TTYA9 CRW-R - R - 1 root root 3, 186 Sep 6 21:39 TTYAA CRW-R - R - 1 Root Root 3, 187 Sep 6 21:39 TTYAB CRW-R - R - R - 1 Root Root 3, 188 Sep 6 21:39 TTYAC CRW-R - R - 1 Root Root 3, 189 Sep 6 21:39 TTYAD CRW-R - R - 1 Root Root 3, 190 Sep 6 21:39 TTYAE CRW-R - R - 1 root root 3, 191 Sep 6 21:39 TTYAF CRW-R - R - 1 Root Root 4, 64 Sep 6 21:39 TTYS0 CRW-R - R - R - 1 Root Root 1, 5 Sep 6 21:39 Zero Copy the relevant documents of Busybox and TinyLogin to the file system's corresponding directory: [Root @ localhost lubbock] # cp $ busyboxdir / _install / * rootfs / -a [root @ localhost lubbock] # cp $ tinylogindir / _install / * Rootfs / -a busybox is started to perform the appropriate application or script files based on the settings in the initTab file in the development board file system / etc directory. Busybox calls in inittab to set the order in sysinit-> wait-> overce-> respawn-> askFIRST.
In this case, Sysinit, Wait, Askfirst is set: [Root @ localhost lubbock] # CD rootfs / etc [root @ localhost etc] # cat inittab # Boot-Time System Configuration / Initialization Script. # This is run first except When booting in single-user mode. # :: sysinit: /etc/init.d/rcs # start an "askFirst" shell on the console (wherever ":: askfirst: / bin / sh # Single User Login: : Wait: / sbin / sulogin # stuff to do before rebooting :: ctrlatdel: / bin / umount -a -r> / dev / null 2> & 1 :: ctrlaltdel: / sbin / swapoff -a> / dev / null 2> & 1 Set the system initialization script /etc/init.d/rcs file. [root @ localhost etc] # mkdir init.d [root @ localhost etc] # catinit.d / rcs #! / bin / sh # mount the / proc file system mount -t proc proc / prot # set hostname hostname xscale # SHOW VERSION INFORMATION CAT / ETC / MOTD CAT / ETC / VERSION # Fall Through To A Shell Prompt Exit 0 Due to the use of TinyLogin, several related users and password files in the / etc directory are also required. They include Passwd, Shadow, Group, as follows (only two users in the system.
Root user, password is 123456; Lubbock user, password is Lubbock): [Root @ localhost lubbock] # Cat Rootfs / etc / passwd root: x: 0: 0: root: / root: / bin / sh labock: x: 500 : 500: Linux User ,,,: / Home / Lubbock: / bin / sh [Root @ localhost lubbock] # Cat Rootfs / etc / shadow root: $ 1 $ dcwsqzwc $ IIPGFLKLKLKLEEZRG.KI77KD0: 12668: 0: 99999: 7 :: : Lubbock: zagbe1qcfqwjs: 0: 0: 99999: 7 :::: 0: Rootfs / etc / group root :: 0: root Basic content has been completed, save the file system content, generate the final file System image file: [root @ localhost lubbock] # umount ramdisk 5. Configuring SkyEye, analog Lubbock Run: Writing a Lubbock Development Board Skyey Configuration File: [Root @ localhost /] # CD $ LUBBOCKDIR [root @ localhost lubbock] # Cat Skyeye .conf cpu: xscale mach: pxa_lubbock mem_bank: map = I, type = RW, addr = 0x40000000, size = 0x0c000000 mem_bank: map = M, type = RW, addr = 0xa0000000, size = 0x00200000 mem_bank: map = M, type = RW, addr = 0xa0200000, size = 0x00100000, file = zimage, boot = yes mem_bank: map = m, type = rw, addr = 0xa0300000, size = 0x00d00000 MEM_BANK: MAP = M, TYPE = RW, addr = 0xa1000000, size = 0x01000000, file =. / Ramdisk.img MEM_BANK: MAP = M, TYPE = RW, ADDR = 0xA2000000, SIZE = 0x02 000000 MEM_BANK: MAP = M, TYPE = RW, ADDR = 0xC0000000, SIZE = 0x00096000 LCD: State = ON Sets the kernel connection, simulation running Lubbock development board: [root @ localhost /] # CD $ lubbockdir [root @ localhost lubbock] # Ln -s $ kerneldir / arch / arm / boot / zimage ./zimage [root @
Localhost Lubbock] # skyeye ***************************************************************************** ***************** **** **** *** SkyEye Simulator Ver 0.7.7 with GDB 5.3 Interface **** **** ** ******************************************************************** ************** GNU GNU GNU GDB 5.3 Copyright 2002 Free Software Foundation, Inc. GDB is Free Software, Covered by The gnu general public license, and you are welcome to change it and / or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This SkyEye was configured as "--host = i686-pc-linux-gnu --target = arm-elf "(SkyEye) tar s cpu info:. xscale, xscale, 69052100, fffffff0, 2 mach info: name pxa_lubbock, mach_init addr 0x81639b0 lcd info: turn on lcd SKYEYE:! use xscale mmu ops Loaded ROM Zimdisk.Img Connected to the Simulator. (Skyeye) Run Starting Program: Warning: No Executable File Specified. Warning: No Program Loaded. uncompressing Linux ... ................................................ ............ done, booting the kernel. Linux Version 2.6.7 (root @
Localhost.localdomain) # 8 mon Sep 6 20:04:38 EDT 2004 CPU: Xscale-PXA250 [69052100] Revision 0 (ARMV5TE) CPU: D undefined 5 Cache CPU: i cache: 32768 BYtes, associativity 32, 32 byte lines, 32 sets CPU: D cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets Machine: Intel DBPXA250 Development Platform (aka Lubbock) Memory policy: ECC disabled, Data cache writeback Memory clock: 99.53MHz (* 27) Run Mode CLOCK: 99.53MHz (* 1) Turbo Mode Clock: 99.53MHz (* 1.0, inactive) on Node 0 Totalpages: 16384 DMA ZONE: 16384 PAGES, LIFO BATCH: 4 Normal Zone: 0 Pages, Lifo Batch : 1 HighMem zone: 0 pages, LIFO batch: 1 Built 1 zonelists Kernel command line: root = / dev / ram rw initrd = 0xa1000000,0x01000000 console = ttyS0,115200 mem = 64M PID hash table entries: 512 (order 9: 4096 bytes) Console: colour dummy device 80x30 Memory: 64MB = 64MB total Memory: 46432KB available (1607K code, 371K data, 80K init) Calibrating delay loop ... 7.29 BogoMIPS Dentry cache hash table entries: 8192 (ord ER: 3, 32768 BYtes) inode-cache hash Table Entries: 4096 (Order: 2, 16384 BYtes) Mount-Cache Hash Table Entries: 512 (Order: 0, 4096 BYTES) CPU: Testing Write Buffer Coherency: OK Checking IMAGE is initramfs ... it is not (ungzip failed); looks like an initrd Freeing initrd memory: 16384K NET: Registered protocol family 16 Linux Kernel Card Services options: none SKYEYE: lcd_addr_begin 0xc0000000, lcd_addr_end 0xc0095fff, width 640, height 480, Depth 16 NetWinder Floating Point Emulator V0.97 (Double Precision) Jffs2 Version 2.2. (c) 2001-2003 Red Hat, Inc. TTYS0 AT MMIO 0X40100000 (IRQ = 15) Is A FFUART TTYS1 AT MMIO 0X40200000 (IRQ = 14) IS A btuart TTYS2 AT MMIO 0X40700000 (IRQ =
13) is a STUART RAMDISK driver initialized: 16 RAM disks of 16384K size 1024 blocksize drivers / misc / skyeye_ts_drv.c: SkyEye touch screen driver initialize drivers / misc / skyeye_ts_drv.c: Device register with name: skyeye touch screen and number: 10 9 Using anticipatory io scheduler Lubbock configured to boot from ROM (bank 0) Probing Lubbock Boot ROM at physical address 0x00000000 (32-bit buswidth) CFI: Found no Lubbock Boot ROM device at location zero Probing Lubbock Application Flash at physical address 0x04000000 (32 -bit buswidth) CFI: Found no Lubbock Application Flash device at location zero pxa2xx_udc: version 14-Dec-2003 gs_bind: Gadget Serial v0.1 bound gs_module_init: Gadget Serial v0.1 loaded mice: PS / 2 mouse device common for all mice NET: Registered protocol family 2 IP: routing cache hash table of 512 buckets, 4Kbytes TCP: Hash tables configured (established 4096 bind 8192) NET: Registered protocol family 1 RAMDISK: ext2 filesystem found at block 0 RAMDISK: Loading 16384 blo CKS [1 Disk] INTO RAM Disk ... DONE. EXT2-FS WARNING: MOUNTING UNCHECKED FS, RUNNING E2FSCK IS Recommended VFS: MOUNTED ROOT (EXT2 FileSystem). Freeing Init Memory: 80k Welcome To ______ __ __ _ _ / / / __ / / / | | | | | / / / / / | | _____ _ _ _ _ / / _ / / | | __ | | / / / _ / / / | | | | | | | | | | | | | || | | | | | | / / / _ / / _ / _ / _ / _ / | | | / _ / | _ | ||| _____ || ___ | | _ | / ____ | / _ // _ / armlinux for skyeye for further information check: http://hpclab.cs.tsinghua.edu .cn / ~ skyeye / Version: ARMLinux 2.6.7 Give root password for system maintenance (or type Control-D for normal startup): Entering System Maintenance Mode sulogin [128]: System Maintenance Mode / # 6. SkyEye simulated in Lubbock Run the application on the development board:
Compile a HellowolRD program and compile the application and put it in the development board file system: [Root @ localhost /] # CD $ lusdir [root @ localhost lubbock] # Cat Hello.c #include