| The rcutorture scripting tools automatically create the needed initrd |
| directory using dracut. Failing that, this tool will create an initrd |
| containing a single statically linked binary named "init" that loops |
| over a very long sleep() call. In both cases, this creation is done |
| by tools/testing/selftests/rcutorture/bin/mkinitrd.sh. |
| |
| However, if you are attempting to run rcutorture on a system that does |
| not have dracut installed, and if you don't like the notion of static |
| linking, you might wish to press an existing initrd into service: |
| |
| ------------------------------------------------------------------------ |
| cd tools/testing/selftests/rcutorture |
| zcat /initrd.img > /tmp/initrd.img.zcat |
| mkdir initrd |
| cd initrd |
| cpio -id < /tmp/initrd.img.zcat |
| # Manually verify that initrd contains needed binaries and libraries. |
| ------------------------------------------------------------------------ |
| |
| Interestingly enough, if you are running rcutorture, you don't really |
| need userspace in many cases. Running without userspace has the |
| advantage of allowing you to test your kernel independently of the |
| distro in place, the root-filesystem layout, and so on. To make this |
| happen, put the following script in the initrd's tree's "/init" file, |
| with 0755 mode. |
| |
| ------------------------------------------------------------------------ |
| #!/bin/sh |
| |
| while : |
| do |
| sleep 10 |
| done |
| ------------------------------------------------------------------------ |
| |
| This approach also allows most of the binaries and libraries in the |
| initrd filesystem to be dispensed with, which can save significant |
| space in rcutorture's "res" directory. |