Comments (4)
the current amd64 boot test is done using qcow image:
http://distfiles.gentoo.org/experimental/amd64/openstack/
I didn't see the analogous arm-type one available:
http://distfiles.gentoo.org/experimental/arm/openstack/
so perhaps a very minimalist boot tester like in this footnote:
intended / specific details for arm test need to be decided, I think
# using a cross toolchain for arm testing
293 crossdev -S -t armv7a-hardfloat-linux-gnueabi
# confirmed nothing "weird" was recently modified:
319 history | grep crossdev
# need kernel source to test the cross-toolchain:
322 emerge '=sys-kernel/gentoo-sources-4.17.4'
# noticed it's not stable, so therefore did this:
323 cd /etc/portage/package.keywords/
326 nano -w crosscompile_kernel_arm
327 eshowkw gentoo-sources
# //still// need kernel source to actually test this:
329 emerge '=sys-kernel/gentoo-sources-4.17.4'
# details for compiling a kernel omitted (for now)
[...]
# creating minimalist payload for qemu boot test:
{redacted / refer to updated documentation}
^ this type of initramfs can be used with qemu
a good qemu version (for arm) looks like this one:
example wrapper script for qemu-based test:
#!/bin/sh
# This script created by AQEMU
/usr/bin/qemu-system-arm -kernel $1 \
-initrd armpayload-initramfs.gz \
-machine virt -nographic -serial mon:stdio
A single argument is passed to this script:
just the name of the kernel, such as the compiled one
mentioned in the history entry 329 (see above)
the kernel version to be tested was compiled using this script:
#!/bin/sh
make \
ARCH=arm CROSS_COMPILE=armv7a-hardfloat-linux-gnueabi- \
--jobs 18 --load-average 19.9
note: there are a few ways to generate a .config
(board-specific defconfigs for arm are common)
from gbuildbot.
The specific init script I wrote is lazy / ugly [1], and was successfully
used for testing an arbitrary kernel [2] here's a (boot) log:
https://mouses.xyz/~kuzetsa/gentoo_tmp/arm_kernel_test.log
[1] - wiki.gentoo.org, on the topic of custom initramfs: "kernel panics"
[2] - crossarmkernel_build.log, cross-compiling a kernel for test (log)
from gbuildbot.
Tried to reproduce this environment today... dot dot dot
Discovered a gap in the documentation.
this is more correct (and more concise)
emerge-armv7a-hardfloat-linux-gnueabi busybox
[...]
last few lines of output contain:
Using system located in ROOT tree /usr/armv7a-hardfloat-linux-gnueabi/
>>> No outdated packages were found on your system.
and creating the busybox-based initramfs:
mkdir ./armpayload-qemu/
mkdir ./armpayload-qemu/bin/
cp -P /usr/armv7a-hardfloat-linux-gnueabi/bin/* ./armpayload-qemu/bin/
cd armpayload-qemu
nano -w ./init
find . | cpio -R root:root -H newc -o | gzip > ../armpayload-initramfs.gz
github now offers the option to review past revisions of comments.
I'll editing the earlier / above comment for brevity.
from gbuildbot.
arm as been added in the testing enviroments
from gbuildbot.
Related Issues (20)
- Add some hardened configs to test HOT 3
- Fix badge URL for Travis CI HOT 1
- Document connecting lava machines to GkernelCI HOT 1
- Use a more reliable mail server
- gitpoller: exceptions must be classes or instances deriving from BaseException, not type HOT 1
- GitPoller uses constant workdir by default leading to crash with other GitPoller instances when it is not overridden HOT 1
- loosing commit for identical `buildrequest_claims_brids` on different commits HOT 1
- database errors HOT 1
- add cross build enviroment in kernel2 HOT 10
- kernel2 disk increase HOT 1
- /bin/sh: qemu-system-arm: command not found HOT 3
- kernel2 update to cross-armv7a-hardfloat-linux-gnueabi/gcc-7.3.0-r3 HOT 3
- ValueError: unsupported pickle protocol: 3 HOT 3
- ARM kernel config missing CONFIG_NET HOT 2
- Intermediate stage failures do not terminate build HOT 1
- feature parity for arm VS amd64 testing HOT 3
- stale version during stabilize-packages.py (hardcoded?) HOT 11
- Filter out removed files from ChangeSet HOT 2
- make menuconfig or make oldconfig still need to be run before build-kernel.sh, .config not detected
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gbuildbot.