{"id":18896394,"url":"https://github.com/openmainframeproject/sysload","last_synced_at":"2026-05-15T11:37:43.835Z","repository":{"id":105092632,"uuid":"232226696","full_name":"openmainframeproject/sysload","owner":"openmainframeproject","description":"Mirror of the Linux on System z System Loader (sysload).","archived":false,"fork":false,"pushed_at":"2020-01-07T02:34:42.000Z","size":139,"stargazers_count":3,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-08T14:28:05.431Z","etag":null,"topics":["linux","mainframe","mirror","s390x"],"latest_commit_sha":null,"homepage":"https://www.ibm.com/developerworks/linux/linux390/sysload.html","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openmainframeproject.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-07T02:32:15.000Z","updated_at":"2025-05-08T04:07:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"3b9338c9-4a3f-47d4-b44a-dc4a1f4230be","html_url":"https://github.com/openmainframeproject/sysload","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/openmainframeproject/sysload","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmainframeproject%2Fsysload","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmainframeproject%2Fsysload/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmainframeproject%2Fsysload/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmainframeproject%2Fsysload/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openmainframeproject","download_url":"https://codeload.github.com/openmainframeproject/sysload/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmainframeproject%2Fsysload/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33065719,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-15T11:35:32.926Z","status":"ssl_error","status_checked_at":"2026-05-15T11:35:31.362Z","response_time":103,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["linux","mainframe","mirror","s390x"],"created_at":"2024-11-08T08:33:45.777Z","updated_at":"2026-05-15T11:37:43.817Z","avatar_url":"https://github.com/openmainframeproject.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"====================================================================\n System Loader README file \n by Stephan Mann\n====================================================================\n 1. Introduction\n 2. Authors\n 3. Build System Loader\n 3.1 Dependencies\n 3.2 Building tools\n 3.3 Building manually\n 3.4 Building an RPM\n 4. Install System Loader\n 5. Setup System Loader\n 5.1 Create a ramdisk\n 5.2 Configure System Loader\n 5.3 Adjust first stage boot loader\n 6. Start using System Loader\n 7. Known issues \n====================================================================\n\n\n1. Introduction\n===============\nSystem Loader is a second stage boot loader. Invoked by a system \nspecific first stage boot loader, it provides a feature rich Linux \nboot environment which serves as a comfortable boot loader reachable \neven from a remote machine or as a rescue system that is always \navailable in the boot sequence.\n\nSystem Loader is based on the concept of having a Linux kernel with \nkexec support as boot loader and boot the actual kernel through the \nkexec system call.\n\nThis is a short step-by-step manual which aims to get new users of \nSystem Loader started. For more detailed documentation, please refer \nto the Design and the HOWTO documents provided with System Loader.\n\n\n2. Build System Loader\n======================\nThere are currently two ways to build System Loader. Either by \nmanually executing `make' or by using `rpmbuild'. There are some \ndependencies which need to be fulfilled in either case. If `make' \nis executed manually, these dependencies need to be compiled and \ninstalled before `make' is run. `rpmbuild' will take care of this \nautomatically, provided it can find the archives.\n\nTo remove these dependencies is an item on the to-do list.\n\n\n2.1 Dependencies\n----------------\nAs stated above, these dependencies don't need to be built or \ninstalled if `rpmbuild' is used. \n\nlibssh-0.11 can be installed using the following commands. Be sure \nto get version 0.11 since version 0.2 won't work.\n\n\twget http://0xbadc0de.be/libssh/libssh-0.11.tgz\n\ttar xvfz libssh-0.11.tgz\n\tcd libssh-0.11\n\t./configure \u0026\u0026 make\n\tsu\n\tmake install\n\nget_kernel_version can be obtained through a Suse repository.\n\n\twget ftp://ftp.gwdg.de/pub/linux/suse/opensuse/distribution/10.3/\\\n\t     repo/src-oss/suse/src/aaa_base-10.3-90.src.rpm\n\trpm2cpio aaa_base-10.3-90.src.rpm | cpio -i get_kernel_version.c\n\tgcc -o get_kernel_version get_kernel_version.c\n\tsu\n\tcp get_kernel_version /usr/local/bin/\n\n\n2.2 Building tools \n------------------\nThe following tools are required to build System Loader from source:\n\n\t* bison\n\t* flex\n\t* make\n\t* gcc\n\nTo build the documentation, two additional tools are required:\n\n\t* fig2dev\n\t* pdflatex\n\n\n2.3 Building manually\n---------------------\nIf all dependencies mentioned above are properly built and installed, \nthe build process can be started by simply executing `make'.\n\nThere is a Makefile in the sysload root dir which builds all parts of \nSystem Loader. It is also possible to build parts of sysload by using \nthe Makefiles in the respective subdirs.\n\n\n2.4 Building an RPM\n-------------------\nIf all dependencies mentioned above and `rpmbuild' is available, \ngather the following files into one directory.\n\n\t* sysload-X.Y.Z.tar.gz\n\t* libssh-0.11.tgz (see dependencies section)\n\t* get_kernel_version.c (see dependencies section)\n\nNow the rpm building process can be started by executing\n\n\trpmbuild -tb sysload-X.Y.Z.tar.gz\n\nIf this fails, move all the files to your rpm building directory \n(something like /usr/src/rpm/SOURCES/), extract the sysload.spec \nfile from the System Loader archive and execute \n\n\trpmbuild -bb sysload.spec\n\nRead the last few lines of the output carefully to determine where \nthe RPMs were written to. If no error occurred, there will be \nsomething like \n\n\tWrote: /usr/src/rpm/RPMS/\u003carch\u003e/sysload-X.X.\u003carch\u003e.rpm\n\nIf there is any trouble building the RPM please refer to \n\n\thttp://www.ibm.com/developerworks/library/l-rpm1/\n\thttp://www.ibm.com/developerworks/library/l-rpm2/\n\n(The command is `rpmbuild' now, not `rpm'. Besides this, the HOWTO \nis very straight forward and very helpful.)\n\n\n\n3. Install System Loader\n========================\nIf System Loader was built manually as described above, it can be \ninstalled with the make target `install' and removed again with the \ntarget `uninstall'.\n\nA rpm package can be installed with \n\n\trpm -i sysload-X.X.rpm\n\nor via `alien' on a non-rpm system like Debian\n\n\talien -i sysload-X.X.rpm\n\n\n\n4. Setup System Loader\n======================\nTo actually use System Loader, there are a few things left to do. \nFor all configuration files that need adjustment, there are examples \nprovided by System Loader which can be found next to the \ndocumentation in the doc/ directory or in \n\n\t/usr/share/doc/sysload/\n\nif System Loader has been installed properly.\n\n\n4.1 Create a ramdisk\n--------------------\nsysload_admin is the administration tool which allows to administer \nramdisks needed by System Loader. The following tools need to be \navailable for sysload_admin to run:\n\n\t* perl\n\t* cpio\n\t* rsync\n\t* get_kernel_version\n\t* libssh.o\n\nIf System Loader was installed via an RPM, the last two dependencies \nare fulfilled automatically.\n\nTo create a ramdisk, there needs to be a system and distribution \nspecific sysload_admin.conf file (default location is /etc/). Because\nthis config tends to differ for every system and for every\ndistribution, the installation process puts only an empty config file\nto /etc. More complete config files are provided as examples.\n\nAfter the config file has been adjusted (or an example has been \ncopied to /etc/sysload_admin.conf), a ramdisk can be created by \nrunning sysload_admin:\n\n\tsysload_admin local\n\n\n4.2 Configure System Loader\n---------------------------\nTo tell System Loader what should be displayed as a boot menu, there \nneeds to be a System Loader configuration file (sysload.conf). There \nare multiple examples for this too. Start with a basic boot menu to \ncheck whether System Loader is working. \n\n\n4.3 Adjust first stage boot loader\n----------------------------------\nSystem Loader needs to be initialized by a system specific first \nstage boot loader like `lilo', `grub' oder `zipl'. Again, there are \nmultiple examples which should explain what is needed. The most \nimportant part is, that there needs to be a kernel parameter telling \nSystem Loader where it can find its configuration file, for example \n\n\tsysload=block://(/dev/hda2,ext3)/boot/sysload.conf\n\nAlso, the kernel might need some modules to access the configuration \nfile in the first place so you need to add a second parameter to the \nkernel parameters. For example, on SLES10 on i386, the following \nmodules are required to access an IDE disk\n\n\tkset=mod(ide-disk),mod(piix)\n\nObviously, these modules need to be in the ramdisk. See section 5.1\n\nRemember that some boot loader (like `lilo' or `zipl') need to be \nreinitialized after the config file has been changed.\n\n\n\n5. Start using System Loader\n============================\nIf all was done right, the system specific boot loader should display\na boot entry for System Loader during the next reboot. If System \nLoader has been configured properly, it should boot into the ramdisk \nenvironment and display the boot menu.\n\n\n\n6. Known Issues\n===============\nDepending on the used distribution and on the existing knowledge \nabout kernel modules, it can be rather difficult to identify the \nmodules needed to access a specific resource (e.g. IDE disks) from \nwithin the ramdisk. To identify the required modules, change the\nsysload_admin.conf so it puts the sysload.conf as well as all \navailable kernel modules into the ramdisk. After this, System \nLoader can be started without any modules and the config file \ncontained in its ramdisk\n\n\tsysload=file:///path/in/ramdisk/sysload.conf\n\nOnce System Loader is running, modules can be added from the shell \nto find the required ones.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenmainframeproject%2Fsysload","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenmainframeproject%2Fsysload","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenmainframeproject%2Fsysload/lists"}