Comment 13 for bug 1319069

Revision history for this message
Andrey Konovalov (andrey-konovalov) wrote :

Below are the steps to make 'make installcheck' to run (most of) its tests - w/o rebuilding the kernel on the target.

In short:
1) 'make scripts' must be run on target to get the arm version of the recordmcount
2) the linux-image debug deb package needs to be installed on the target (for arndale the name is linux-image-<kernel version>-linaro-arndale-dbg_<kernel version>-linaro-arndale-<n>_armhf.deb).

Due to its size the _dbg package is not included into the hwpack. And the _dbg package is not uploaded to elsewhere. So I had to rebuild the deb packages myself to get all the deb packages I need and the corresponding uImage (couldn't use the hwpacks from snapshots.l.o).

The steps:
* cross build the packages and the kernel as usual (make uImage, make deb-pkg). Used the same config fragments as the linux-linaro CI job. Copy the uImage and the deb packages to the sd card preprogrammed for the board (used l-m-c and the most recent hwpack and the trusty developer rootfs from snapshots.l.o). Insert the card into the board, power it on.
* After getting to the boot propmt replace the uImage and install the kernel deb packages (I put the new uImage into the boot partition, and the deb packages under /root/deb/; the board is Arndale - hence the *.deb names):
    # install the kernel packages:
    dpkg -i --force-all deb/linux-headers-3.15-rc5-ll-linaro-arndale_3.15-rc5-ll-linaro-arndale-2_armhf.deb
    dpkg -i --force-all deb/linux-image-3.15-rc5-ll-linaro-arndale_3.15-rc5-ll-linaro-arndale-2_armhf.deb
    dpkg -i --force-all deb/linux-image-3.15-rc5-ll-linaro-arndale-dbg_3.15-rc5-ll-linaro-arndale-2_armhf.deb
    # mount the boot partition and replace the uImage:
    mount -t vfat /dev/mmcblk1p2 /mnt
    cp /mnt/uImage.new /mnt/uImage
    # reboot to the new kernel:
    shutdown -r now
* After reboot:
    # I had to set the date as the developer rootfs doesn't do that on its own:
    date 052314142014
    apt-get install git build-essential m4 dejagnu bzip2 wget gettext
    cd /usr/src/linux-headers-3.15-rc5-ll-linaro-arndale/
    make scripts
    # 'make scripts' fails, but scripts/recordmcount is built, and this is enough to make systemtap's 'make installcheck' happy
    cd ~
    wget --no-check-certificate https://fedorahosted.org/releases/e/l/elfutils/0.157/elfutils-0.157.tar.bz2
    tar -xvf elfutils-0.157.tar.bz2
    git clone --depth 1 -b release-2.5 git://sourceware.org/git/systemtap.git
    cd systemtap
    # then just follow the script by Naresh (see comment #12):
    cp /usr/share/dejagnu/* . -a
    mv testsuite/systemtap.base/poll_map.exp testsuite/systemtap.base/poll_map.exp.back
    mv testsuite/systemtap.base/pr14546.exp testsuite/systemtap.base/pr14546.exp.back
    mv testsuite/systemtap.base/pr10854.exp testsuite/systemtap.base/pr10854.exp.back
    ./configure --prefix=/usr/local/ --with-elfutils=../elfutils-0.157
    make all
    make install
    make installcheck

I got to "Running ./systemtap.base/target_set_thread.exp ...", and terminated the test here after waiting for quite a while.
Here is what I got on the console:
-----8<-----
Running ./systemtap.base/target_set.exp ...
FAIL: target_set - timeout (expect_target_set_pids)
Running ./systemtap.base/target_set_thread.exp ...
^Cgot a INT signal, interrupted by user

                === systemtap Summary ===

# of expected passes 757
# of unexpected failures 125
# of unknown successes 1
# of known failures 3
# of untested testcases 54
# of unsupported tests 3
make[2]: *** [check-DEJAGNU] Interrupt
make[1]: *** [installcheck] Interrupt
make: *** [installcheck] Interrupt
-----8<-----