SuccessConsole Output

Started by user Alex
Building in workspace /var/lib/jenkins/sharedspace/QEMU
[magic-lantern] $ hg showconfig paths.default
[magic-lantern] $ hg pull --rev qemu
pulling from https://bitbucket.org/hudson/magic-lantern/
no changes found
[magic-lantern] $ hg update --clean --rev qemu
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
[magic-lantern] $ hg log --rev . --template {node}
[magic-lantern] $ hg log --rev . --template {rev}
[magic-lantern] $ hg log --rev 6bae1d4081f462565b120e5ae70753c00c82168a --template exists\n
exists
[magic-lantern] $ hg log --template "<changeset node='{node}' author='{author|xmlescape}' rev='{rev}' date='{date}'><msg>{desc|xmlescape}</msg><added>{file_adds|stringify|xmlescape}</added><deleted>{file_dels|stringify|xmlescape}</deleted><files>{files|stringify|xmlescape}</files><parents>{parents}</parents></changeset>\n" --rev "ancestors('qemu') and not ancestors(6bae1d4081f462565b120e5ae70753c00c82168a)" --encoding UTF-8 --encodingmode replace
[QEMU] $ /bin/bash -v /tmp/jenkins2247096768777612708.sh
#!/bin/bash -v

# use this toolchain
export PATH=$PATH:~/gcc-arm-none-eabi-5_4-2016q3/bin/
#export PATH=$PATH:~/gcc-arm-none-eabi-6-2017-q2-update/bin/


echo "Removing previous QEMU installation..."
Removing previous QEMU installation...
rm -rf qemu-eos/

echo -e "\n\e[31;4;1mInstalling QEMU...\e[0m\n"

Installing QEMU...

# To install on your PC, simply run install.sh from magic-lantern/contrib/qemu/ (qemu branch)
# This will install QEMU outside the Magic Lantern directory and will guide you through the process.
# Your installation path and options will most likely be different - that's OK.

cd magic-lantern
cd contrib/qemu
#
# Here you should simply run:
# ./install.sh
#
# you may want to go with default config, unlike us - just answer Y everywhere:
# (echo y; echo y) | ./install.sh
#
(echo y; echo n) | ./install.sh 2>install.err | tail -n 65 | awk 'BEGIN{print "\n[...]\n"}{print}' | sed -e "s/\/var\/lib\/jenkins\/sharedspace\/QEMU\//\/path\/to\//"

[...]

Setting up SD card image...
'../magic-lantern/contrib/qemu/sd.img.xz' -> './sd.img.xz'
Setting up CF card image...
'sd.img' -> 'cf.img'

Next steps:
===========

1) Compile QEMU

   cd /path/to/qemu-eos/qemu-2.5.0
   ../configure_eos.sh
   make -j4

Shall this script attempt to compile QEMU now? [y/n] 
2) Grab a copy of the Canon firmware from your own camera
   (don't request one and don't share it online - it's copyrighted)

   Look on your SD card - you should find ML/LOGS/ROM0.BIN and ROM1.BIN
   Copy them under your camera model's subdirectory, for example:
   /path/to/qemu-eos/60D/

   For models that use a serial flash, you may have to dump its contents
   using the sf_dump module, then copy SFDATA.BIN as well.

3) Install Magic Lantern on your SD/CF card image:

   make -C ../magic-lantern 60D_install_qemu 

   The included card image is bootable and contains a small autoexec.bin
   that runs on all supported EOS cameras and prints some basic info.

4) Start emulation with:

   cd /path/to/qemu-eos/
   ./run_canon_fw.sh 60D

   This will recompile QEMU, but not ML.

   Note: Canon GUI emulation (menu navigation, no LiveView) only works on:
   5D2 5D3 6D 40D 50D 60D 70D 450D 500D 550D 600D 650D 700D 100D 1000D 1100D 1200D 1300D EOSM EOSM2

5) Tips & tricks:
   - to enable or disable the boot flag in ROM, use something like:
     ./run_canon_fw.sh 60D,firmware="boot=1"
   - to use multiple firmware versions, place the ROMs under e.g. 5D3/113/ROM*.BIN and run:
     ./run_canon_fw.sh 5D3,firmware="113;boot=1"
   - to show MMIO activity (registers) and interrupts, use:
     ./run_canon_fw.sh 60D -d io,int
   - to show the executed ASM code, step by step, use:
     ./run_canon_fw.sh 60D -d exec,int -singlestep
   - to trace debug messages and various functions in the firmware, use:
     ./run_canon_fw.sh 60D -d debugmsg -s -S & arm-none-eabi-gdb -x 60D/debugmsg.gdb
   - some camera models require GDB patches to bypass tricky code sequences:
     ./run_canon_fw.sh EOSM -s -S & arm-none-eabi-gdb -x EOSM/patches.gdb


Online documentation: 

   https://bitbucket.org/hudson/magic-lantern/src/qemu/contrib/qemu/README.rst
   https://bitbucket.org/hudson/magic-lantern/src/qemu/contrib/qemu/HACKING.rst

Enjoy!

P.S. To run the GUI, please make sure you have a valid DISPLAY.
#
#
cd ../..
cd ../qemu-eos/qemu-2.5.0
#
# Here you should simply run:
# ../configure_eos.sh
#
../configure_eos.sh --disable-sdl --extra-cflags="--coverage"
Setting up QEMU on Linux...
Using gcc --std=gnu99 / g++ with -Wno-error=deprecated-declarations
Options:  --disable-sdl --extra-cflags=--coverage
Install prefix    /usr/local
BIOS directory    /usr/local/share/qemu
binary directory  /usr/local/bin
library directory /usr/local/lib
module directory  /usr/local/lib/qemu
libexec directory /usr/local/libexec
include directory /usr/local/include
config directory  /usr/local/etc
local state directory   /usr/local/var
Manual directory  /usr/local/share/man
ELF interp prefix /usr/gnemul/qemu-%M
Source path       /var/lib/jenkins/sharedspace/QEMU/qemu-eos/qemu-2.5.0
C compiler        gcc --std=gnu99
Host C compiler   cc
C++ compiler      g++
Objective-C compiler clang
ARFLAGS           rv
CFLAGS            -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -pthread -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g 
QEMU_CFLAGS       -I/usr/include/pixman-1 -I$(SRC_PATH)/dtc/libfdt -Werror -DHAS_LIBSSH2_SFTP_FSYNC -fPIE -DPIE -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common  -Wno-error=deprecated-declarations --coverage -Wendif-labels -Wmissing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong   -I/usr/include/libpng12
LDFLAGS           -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -pie -m64 -g 
make              make
install           install
python            python -B
smbd              /usr/sbin/smbd
module support    no
host CPU          x86_64
host big endian   no
target list       arm-softmmu
tcg debug enabled no
gprof enabled     no
sparse enabled    no
strip binaries    yes
profiler          no
static build      no
pixman            system
SDL support       no
GTK support       yes
GTK GL support    no
GNUTLS support    no
GNUTLS hash       no
libgcrypt         yes
nettle            no ()
libtasn1          no
VTE support       no
curses support    yes
virgl support     no
curl support      no
mingw32 support   no
Audio drivers     oss
Block whitelist (rw) 
Block whitelist (ro) 
VirtFS support    no
VNC support       yes
VNC SASL support  no
VNC JPEG support  yes
VNC PNG support   yes
xen support       no
brlapi support    no
bluez  support    no
Documentation     no
PIE               yes
vde support       no
netmap support    no
Linux AIO support no
ATTR/XATTR support yes
Install blobs     yes
KVM support       yes
RDMA support      no
TCG interpreter   no
fdt support       yes
preadv support    yes
fdatasync         yes
madvise           yes
posix_madvise     yes
sigev_thread_id   yes
uuid support      yes
libcap-ng support no
vhost-net support yes
vhost-scsi support yes
Trace backends    nop
spice support     no
rbd support       no
xfsctl support    no
smartcard support no
libusb            no
usb net redir     no
OpenGL support    no
libiscsi support  no
libnfs support    no
build guest agent yes
QGA VSS support   no
QGA w32 disk info no
QGA MSI support   no
seccomp support   no
coroutine backend ucontext
coroutine pool    yes
GlusterFS support no
Archipelago support no
gcov              gcov
gcov enabled      no
TPM support       yes
libssh2 support   yes
TPM passthrough   yes
QOM debugging     yes
vhdx              yes
lzo support       no
snappy support    no
bzip2 support     yes
NUMA host support no
tcmalloc support  no
jemalloc support  no
#
#
make -j4 &> build.log

cd ../../
#
# QEMU installation complete.
# Some preparations to run the test suite (you don't have to run thems)

cd magic-lantern
hg pull
pulling from https://bitbucket.org/hudson/magic-lantern/
searching for changes
no changes found
cd ..

cd qemu-eos
export QEMU_EOS_WORKDIR=../../../qemu-roms
sed -i "s/\"Open file for write\" \$CAM/\"Open file for write\" ..\/..\/..\/qemu-roms\/\$CAM/g" tests/run_tests.sh 
sed -i "s/VxWorks \$CAM/VxWorks ..\/..\/..\/qemu-roms\/\$CAM/g" tests/run_tests.sh
sed -i 's/"CreateStateObject" \$CAM/"CreateStateObject" ..\/..\/..\/qemu-roms\/\$CAM/g' tests/run_tests.sh
sed -i "s/ZicoAssert \$CAM/ZicoAssert ..\/..\/..\/qemu-roms\/\$CAM/g" tests/run_tests.sh
sed -i "s/ZicoAssert \$CAM/ZicoAssert ..\/..\/..\/qemu-roms\/\$CAM/g" tests/run_tests.sh
sed -i "s/lsof/true/g" run_canon_fw.sh

#
# Now running our emulation test suite (this will take a long time)
# Some tests will fail, others may retry until successful (or give up).
#
cd tests
bash run_tests.sh $TEST_ARGS
Using netcat: nc
Compiling...

Setting up temporary SD/CF card images...
'../magic-lantern/contrib/qemu/sd.img.xz' -> './sd.img.xz'
QEMU still running

Testing Canon menu...

Testing card formatting...

Preparing GDB script test for 7D...

Testing main GDB script...
OK

Testing GDB scripts...

Testing call/return trace on main firmware...

Testing call/return trace on fromutility...

Testing FA_CaptureTestImage...

Testing bootloaders...

Testing PowerShot models...

Testing display from bootloader...

Testing CHDK display...

Testing Dry-shell over UART...

Testing file I/O (DCIM directory)...

Testing ML restore after format...
   500D: ........... ........... ........... OK

Testing HPTimer and task name...

Testing Canon menu with callstack enabled...

Testing callstack consistency with call/return trace for DebugMsg calls...

Preparing portable ROM dumper...
Testing portable ROM dumper...
     5D: skipping
    5D2: skipping
    5D3: SD: ROM0.BIN: OK	ROM1.BIN: OK	
    5D4: SD: ROM1.BIN: OK	SFDATA.BIN: OK	
     6D: SD: ROM0.BIN: OK	ROM1.BIN: OK	
    6D2: SD: ROM0.BIN: OK	ROM1.BIN: OK	
     7D: CF: ROM0.BIN: OK	ROM1.BIN: OK	
   7D2M: SD: ROM1.BIN: OK	
    40D: skipping
    50D: skipping
    60D: SD: ROM0.BIN: OK	ROM1.BIN: OK	
    70D: SD: ROM0.BIN: OK	ROM1.BIN: OK	
    77D: SD: ROM0.BIN: OK	ROM1.BIN: OK	
    80D: SD: ROM1.BIN: OK	SFDATA.BIN: OK	
   400D: skipping
   450D: skipping
   500D: skipping
   550D: SD: ROM0.BIN: OK	ROM1.BIN: OK	
   600D: SD: ROM0.BIN: OK	ROM1.BIN: OK	
   650D: SD: ROM0.BIN: OK	ROM1.BIN: OK	
   700D: SD: ROM0.BIN: OK	ROM1.BIN: OK	
   750D: SD: ROM1.BIN: OK	SFDATA.BIN: OK	
   760D: SD: ROM1.BIN: OK	SFDATA.BIN: OK	
   800D: SD: ROM0.BIN: OK	ROM1.BIN: OK	
   100D: SD: ROM0.BIN: OK	ROM1.BIN: OK	
   200D: SD: ROM0.BIN: OK	ROM1.BIN: OK	
  1000D: skipping
  1100D: SD: ROM0.BIN: OK	ROM1.BIN: OK	
  1200D: SD: ROM0.BIN: OK	ROM1.BIN: OK	
  1300D: SD: ROM0.BIN: OK	ROM1.BIN: OK	
   EOSM: SD: ROM0.BIN: OK	ROM1.BIN: OK	
  EOSM2: SD: ROM0.BIN: OK	ROM1.BIN: OK	

Cleaning up...
Restoring your SD/CF card images...

#
# Test suite completed.
#
set +v
montage: unable to open image `*/menu0.png': No such file or directory @ error/blob.c/OpenBlob/2712.
montage: missing an image filename `menu.png' @ error/montage.c/MontageImageCommand/1780.
Archiving artifacts
[htmlpublisher] Archiving HTML reports...
[htmlpublisher] Archiving at PROJECT level /var/lib/jenkins/sharedspace/QEMU/qemu-eos/html to /var/lib/jenkins/jobs/QEMU-tests/htmlreports/QEMU_20self-testing_20results
Triggering a new build of QEMU-coverage
Triggering a new build of QEMU-EOSM2
Triggering a new build of QEMU-ML-menu
Triggering a new build of QEMU-memcheck
Triggering a new build of QEMU-FA_CaptureTestImage
Triggering a new build of QEMU-dm-spy
Triggering a new build of QEMU-boot-check
Triggering a new build of QEMU-1300D
Finished: SUCCESS