-
Notifications
You must be signed in to change notification settings - Fork 13
groeck/linux-build-test
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Repositories and packages ------------------------- README in the qemu directory describes distribution. ---- Update to Ubuntu 24.04: python 2.7 is no longer available. Install from debian. - Add /etc/apt/sources.list.d/bullseye.list: deb http://deb.debian.org/debian bullseye main deb http://deb.debian.org/debian bullseye-updates main deb http://security.debian.org bullseye-security main - Install python2 - Disable /etc/apt/sources.list.d/bullseye.list, for example by renaming it. Important: This step is necessary to avoid polluting the system with old versions of various tools. Preferred (test): Install debian pacgate directly from packages/ subdirectory. Other: - Re-install clang - Install llvm-dev - Install libcapstone-dev - Install libtraceevent-dev - (Re-)install g++ - Remove libstdc++-10-dev if installed - Install libstdc++-11-dev libstdc++-11-dev:i386 (for perf) - Install libstdc++-13-dev:i386 and possibly libstdc++-13-dev if not installed with g++ - symlink /usr/lib/x86_64-linux-gnu/libaio.so.1t64 to /usr/lib/x86_64-linux-gnu/libaio.so.1 ---- Packages to install (Debian/Ubuntu): automake autoconf autotools-dev bc bison build-essential coccinelle device-tree-compiler flex genext2fs nfs-client fakeroot git git-email initramfs-tools libcacard0 libcacard-dev libglib2.0-dev libgtk-3-dev libisl15 libssh2-1 libssh2-1-dev libcurl3 libcurl4-openssl-dev libiscsi-dev libpixman-1-dev libssl-dev libxml2-dev lzop module-init-tools qemu-system qemu-user qemu-utils rsync u-boot-tools virtualenv libaudit-dev libunwind-dev python-dev libiberty-dev liblzma-dev libnuma-dev libperl-dev systemtap-sdt-dev libdw-dev libslang2-dev libgtk2.0-dev libgtk2.0-dev:i386 (for perf) binutils-dev libbabeltrace-dev openjdk-8-jdk For 32-bit compiler support: sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 zlib1g:i386 --- swtpm: Install libjson-glib-dev, expect Clone and install libtpms (https://github.com/stefanberger/libtpms.git) Clone and install swtpm (https://github.com/stefanberger/swtpm.git) --- Install on new builder: - install all packages listed above - Run bin/distribute.sh to new builder - Run rsync -l --timeout=15 -r /opt/kernel <builder>:/opt/kernel - Run cd /opt/buildbot bin/buildslave.sh create-slave <basedir> <master> <name> <passwd> ---- Ubuntu pre 14.04: ia32-libs Ubuntu 14.04: lib32z1 lib32ncurses5 lib32bz2-1.0 make sure /bin/sh points to bash. sudo update-alternatives --install /bin/sh sh /bin/bash 99 ---- Hacks when running Ubuntu 18.04 with qemu/gcc compiled on Ubuntu 16.04: cd /usr/lib sudo ln -s libmpfr.so libmpfr.so.4 cd /usr/lib/x86_64-linux-gnu sudo ln -s libiscsi.so libiscsi.so.2 Similar hacks will likely be needed for comparable situations. --- genfatfs: Clone from [email protected]:xobs/genfatfs.git. Build and install into bin directory. --- smatch: Prerequisites: libsqlite3-dev sqlite3 libsqlite3-0 libgtk2.0-dev Either cd /opt/buildbot git clone git://repo.or.cz/smatch.git or cd /opt/buildbot/smatch git pull then: make clean make INSTALL_PREFIX=/opt/buildbot install --- xtensa: Same as above; buildroot 2014.08-rc3 is recommended. Use qemu_xtensa_lx60_defconfig as starting base. Also enable BR2_TOOLCHAIN_BUILDROOT_LARGEFILE=y BR2_TOOLCHAIN_BUILDROOT_INET_IPV6=y BR2_TOOLCHAIN_BUILDROOT_INET_RPC=y BR2_TOOLCHAIN_BUILDROOT_WCHAR=y Build commands: make qemu_xtensa_lx60_defconfig make menuconfig # Add the above configuration flags make toolchain cd output mkdir xtensa mv host xtensa/gcc-4.8.3-dc232b tar czf /tmp/x86_64-gcc-4.8.3-dc232b-uclibc_xtensa-linux.tar.gz xtensa gcc 4.6.3 from kernel.org is not recommended and may fail randomly with 'jump target out of range' errors. Also, it won't let you run the qemu target. Note that you _must_ use the same toolchain for both kernel and rootfs builds. --- Microblaze [ tested with tip of buildroot tree as of 8/23/2014 ] Big endian, gcc 4.9.1, glibc 2.19, binutils 2.24 4.4 kernel headers make toolchain cd output mkdir microblaze mv host microblaze/gcc-4.9.1 tar czf /tmp/x86_64-gcc-4.9.1-glibc_microblaze-linux.tar.gz microblaze --- qemu Local patches are required. See groeck/qemu repository at kernel.org. Look for local branches. Packages needed to build: libglib2.0-dev libssh2-1-dev libcurl4-openssl-dev libiscsi-dev libslirp-dev autoconf libpixman-1-dev ninja-build Build: See qemu/buildall.sh --- buildroot general configuration, when building root file systems: Toolchain 4.4 kernel headers (or whatever the minimum required kernel version is) Recent binutils/gcc System configuration Enable: Run a getty (login prompt) after boot then Run test scripts Shutdown command to use: Either reboot or poweroff, depending on HW Network interface to configure through DHCP: eth0 Filesystem images Disable: tar Enable: cpio, gzip compression ext2/3/4, 16MB, gzip compression iso squashfs, gzip compression evtl btrfs if you like, but needs large image size (100m ?) --- buildbot Requires the following patch. To install, - clone and checkout buildbot source - select base version (branch) - apply the patch - If you have a local installation from source, install the result - Otherwise, loook for web/base.py in the distribution directory. Example: Ubuntu Trusty (14.04) File is in /usr/lib/python2.7/dist-packages/buildbot/status/web/base.py Installation commands: cd <installdir> sudo mv base.py base.py.orig sudo mv base.pyc base.pyc.orig sudo cp <src>/master/buildbot/status/web/base.py . Optional: sudo python >>> import py_compile >>> py_compile.compile('base.py') >>> exit() From 8a0af9a95cfedbecd090132c6637792cbc6530ff Mon Sep 17 00:00:00 2001 From: Guenter Roeck <[email protected]> Date: Sun, 15 Jun 2014 08:23:20 -0700 Subject: [PATCH] Add split and regex_replace to Jinja filters Used for more complex expressions on buildbot 'builders' page. Also enable do and loopcontrols extensions. Signed-off-by: Guenter Roeck <[email protected]> --- master/buildbot/status/web/base.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/master/buildbot/status/web/base.py b/master/buildbot/status/web/base.py index 24a4b8e..0eff637 100644 --- a/master/buildbot/status/web/base.py +++ b/master/buildbot/status/web/base.py @@ -14,7 +14,7 @@ # Copyright Buildbot Team Members -import urlparse, urllib, time, re +import urlparse, urllib, time, re, string import os, cgi, sys, locale import jinja2 from zope.interface import Interface @@ -510,7 +510,7 @@ def createJinjaEnv(revlink=None, changecommentlink=None, loader = jinja2.ChoiceLoader(all_loaders) env = jinja2.Environment(loader=loader, - extensions=['jinja2.ext.i18n'], + extensions=['jinja2.ext.i18n', 'jinja2.ext.do', 'jinja2.ext.loopcontrols'], trim_blocks=True, undefined=AlmostStrictUndefined) @@ -519,6 +519,8 @@ def createJinjaEnv(revlink=None, changecommentlink=None, env.tests['mapping'] = lambda obj : isinstance(obj, dict) env.filters.update(dict( + split = split, + regex_replace = regex_replace, urlencode = urllib.quote, email = emailfilter, user = userfilter, @@ -531,6 +533,12 @@ def createJinjaEnv(revlink=None, changecommentlink=None, return env +def split(s, sep): + return string.split(s, sep) + +def regex_replace(s, find, replace): + return re.sub(find, replace, s) + def emailfilter(value): ''' Escape & obfuscate e-mail addresses -- 1.9.1
About
Scripts to build and test Linux kernels
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published