├── .gitlab-ci.yml ├── DEPENDENCIES ├── LICENSE ├── README.md ├── SECURITY.md ├── automation ├── build │ ├── Makefile │ ├── README.md │ └── alpine │ │ └── 3.14-arm64v8.dockerfile ├── gitlab-ci │ ├── build-each-commit.sh │ ├── build.yaml │ └── test.yaml ├── scripts │ ├── build │ ├── build-test.sh │ ├── containerize │ └── qemu-alpine-arm64.sh └── tests-artifacts │ ├── Makefile │ ├── alpine │ └── 3.14-arm64v8.dockerfile │ ├── kernel │ ├── 5.10.30-arm64v8.config.diff │ ├── 5.10.30-arm64v8.dockerfile │ └── README.md │ ├── qemu-system-aarch64 │ └── 5.2.0-arm64v8.dockerfile │ ├── u-boot │ └── 2021.07-arm64v8.dockerfile │ └── xen │ └── 4.16-arm64v8.dockerfile ├── build.sh ├── docs ├── containers_env_vars.md ├── initrd.md └── system_env_vars.md ├── files ├── create ├── delete ├── mount ├── pause ├── serial_start ├── start └── state ├── initrd ├── applet-list ├── autologin ├── busybox.config ├── enter ├── init-initrd ├── inittab ├── make-initrd └── passwd ├── kernel ├── cutdown-config.arm ├── cutdown-config.arm64 ├── cutdown-config.x86 ├── make-kernel └── patches │ └── 0001-patch-pvcalls_enable.patch ├── runX └── sendfd ├── Makefile ├── passfd.c ├── passfd.h └── sendfd.c /.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | stages: 2 | - build 3 | - test 4 | 5 | include: 6 | - 'automation/gitlab-ci/build.yaml' 7 | - 'automation/gitlab-ci/test.yaml' 8 | -------------------------------------------------------------------------------- /DEPENDENCIES: -------------------------------------------------------------------------------- 1 | Please make sure you have the following installed on your system, they 2 | are required by runX: 3 | 4 | run time: 5 | xen tools (xl) >= 4.9 6 | qemu with xen and virtfs support > 2.9 7 | jq >= 1.4 8 | socat 9 | daemonize 10 | 11 | build time: 12 | bash 13 | gcc, if cross-compiling CROSS_COMPILE needs to be set 14 | cpio 15 | make and other tools needed to build the kernel (flex, bison, bc) 16 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | 203 | This product bundles libpac/duktape, which is available under the MIT 204 | license. For details, see the zedpac/README.md 205 | 206 | This product bundles portions of the go net package, which is available 207 | under the BSD-style license. For details, see the netclone/README 208 | 209 | This product bundles portions of the go httpproxy package, which is 210 | available under the BSD-style license. For details, see the zedcloud/proxy.go 211 | 212 | This product bundles portions of the github.com/linuxkit/linuxkit, which is 213 | available under the Apache License 2.0. For details, see the build-tools/src 214 | 215 | This product bundles portions of the github.com/estesp/manifest-tool, which is 216 | available under the Apache License 2.0. For details, see the build-tools/src 217 | 218 | This product bundles portions of the github.com/rackn/gohai, which is 219 | available under the Apache License 2.0. For details, see the 220 | pkg/pillar/cmd/hardwaremodel 221 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | RunX 2 | ==== 3 | 4 | Contributions 5 | ------------- 6 | 7 | For discussions and contributions please send emails to 8 | eve-runx@lists.lfedge.org. You can subscribe here: 9 | https://lists.lfedge.org/g/eve-runx. Make sure to add the Signed-off-by 10 | tag to your patches as per the Developer Certificate of Origin, see 11 | https://elinux.org/Developer_Certificate_Of_Origin. 12 | 13 | 14 | Goals and Scope 15 | --------------- 16 | RunX is an OCI Runtime Spec compliant containers runtime that runs 17 | containers as VMs. It can be used together with oci-image-tools to start 18 | containers in multiple separate Virtual Machines for isolation and 19 | security. 20 | 21 | RunX is lightweight and as small as possible. It targets 22 | resource-constrained embedded environments. It starts each container in 23 | its own independent VM. RunX provides a custom-built Linux-based kernel 24 | and a tiny Busybox-based ramdisk to boot the VM, but if the container 25 | comes with its own kernel/ramdisk, RunX will use them. 26 | 27 | RunX aims at keeping the overhead as low as possible. It doesn't 28 | attempt to communicate with the host via a side-channel. It is a goal of 29 | the project not to have any agents running inside the VM. 30 | 31 | OCI specified runtime lifecycle hooks will be supported, while the 32 | support for specific hook implementations is TBD. 33 | 34 | 35 | RunX and KataContainers 36 | ----------------------- 37 | Both KataContainers and RunX are containers runtimes that use 38 | hypervisors to start containers as virtual machines. However, there are 39 | a few key differences. 40 | 41 | KataContainers focuses on KVM-based virtual machines. RunX focuses 42 | on Xen virtual machines. KataContainers uses an agent running inside 43 | each VM, while RunX does not do that by design. RunV (KataContainers' 44 | parent) uses libxl to create Xen VMs; thus, it has a build dependency 45 | on the Xen Dom0 libraries. RunX doesn't have any build or runtime 46 | dependencies on libraries as it invokes the command-line tool ``xl``. 47 | 48 | 49 | Architecture 50 | ------------ 51 | +------------+ +-------------+ 52 | | Dom0 | | Tiny Kernel | 53 | |------------| |-------------| 54 | | ContainerD | |Tiny Busybox | 55 | | | | | (init only) | 56 | | RunX | |-------------| 57 | | | | | container | 58 | | creates---+->| rootfs | 59 | +------------+--+-------------+ 60 | | Xen | 61 | +-----------------------------+ 62 | 63 | 64 | Build 65 | ----- 66 | 67 | Steps to a full build: 68 | 69 | export ARCH=aarch64 # other options: x86_64 and arm 70 | export CROSS_COMPILE=/path/to/cross-compiler # only if cross-compiling 71 | ./build 72 | 73 | Optionally, it is possible to select a specific static busybox binary to 74 | use instead of building one from scratch with the busybox environmental variable: 75 | 76 | export busybox=/usr/bin/busybox-static-aarch64 77 | 78 | 79 | ContainerD invocation 80 | --------------------- 81 | 82 | - containerd 1.2.x 83 | 84 | Use the following example config stanza in your 85 | /etc/containerd/config.toml config file to choose RunX as OCI-runtime: 86 | 87 | [plugins.linux] 88 | runtime="/usr/sbin/runX" 89 | 90 | - containerd 1.3.x 91 | 92 | There does not seem to be a way to configure containerd so that it runs 93 | runX instead of runc. You might have to: 94 | 95 | mv /usr/sbin/runX /usr/bin/runc 96 | 97 | - containerd 1.4.x 98 | 99 | Pass "--runc-binary" to ctr run: 100 | 101 | ctr run --runc-binary=/usr/sbin/runX 102 | 103 | 104 | 105 | Networking Configuration 106 | ------------------------ 107 | 108 | To get bridge based networking working, you need to include the containerd 109 | option '--env NETCONF="/path/to/cni/file,name[,IP]"', where: 110 | - NETCONF is the environmental varable we use to pass info from containerd 111 | to runX 112 | - /path/to/cni/file is the cni v2.0 file used to describe the interface 113 | - name is the name of the cni interface 114 | - [,IP] is the optional IP if static addresses are used, otherwise DHCP 115 | 116 | An example cni file is: 117 | 118 | ```json 119 | { 120 | "cniVersion": "0.2.0", 121 | "name": "mynet", 122 | "type": "bridge", 123 | "bridge": "xenbr0", 124 | "isGateway": true, 125 | "ipMasq": true, 126 | "ipam": { 127 | "type": "host-local", 128 | "subnet": "192.168.0.0/24", 129 | "rangeStart": "192.168.0.2", 130 | "rangeEnd": "192.168.0.255", 131 | "gateway": "192.168.0.1", 132 | "routes": [ 133 | { "dst": "192.168.0.0/24" } 134 | ], 135 | "dataDir": "/run/ipam-state" 136 | }, 137 | "dns": { 138 | "nameservers": [ "8.8.8.8" ] 139 | } 140 | } 141 | ``` 142 | 143 | 144 | 145 | Container Filesystem Binds 146 | -------------------------- 147 | 148 | Currently runX only supports filesystem binds. The defaults are bind and RW. 149 | You can also pass any -o arguement mount uses. Now you use them in containerd 150 | like: 151 | 152 | ``` 153 | ctr ... --mount type=bind,src=/tmp,dst=/host,options=bind:rw ... 154 | ``` 155 | 156 | which is the same as: 157 | 158 | ``` 159 | ctr ... --mount type=bind,src=/tmp,dst=/host ... 160 | ``` 161 | 162 | Or to have it RO and disable execution: 163 | 164 | ``` 165 | ctr ... --mount type=bind,src=/tmp,dst=/host,options=ro:noexec ... 166 | ``` 167 | 168 | Likewise to just use rbind rather than bind: 169 | 170 | 171 | ``` 172 | ctr ... --mount type=bind,src=/tmp,dst=/host,options=rbind ... 173 | ``` 174 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Reporting a Vulnerability 4 | 5 | EVE community takes security seriously. If you discover a security issue, please bring it to our attention right away! 6 | 7 | Please DO NOT file a public issue, instead send your report privately to eve-security@lists.lfedge.org. 8 | 9 | ## Security Overview 10 | 11 | The main EVE repo's [CONTRIBUTING.md](https://github.com/lf-edge/eve/blob/master/CONTRIBUTING.md) and [SECURITY.md](https://github.com/lf-edge/eve/blob/master/docs/SECURITY.md) has additional information about contributions and security approaches. 12 | -------------------------------------------------------------------------------- /automation/build/Makefile: -------------------------------------------------------------------------------- 1 | 2 | # the base of where these containers will appear 3 | REGISTRY := registry.gitlab.com/lf-edge/runx 4 | CONTAINERS = $(subst .dockerfile,,$(wildcard */*.dockerfile)) 5 | 6 | help: 7 | @echo "Builds containers for building Xen based on different distros" 8 | @echo "To build one run 'make DISTRO/VERSION'. Available containers:" 9 | @$(foreach file,$(sort $(CONTAINERS)),echo ${file};) 10 | @echo "To push container builds, set the env var PUSH" 11 | 12 | %: %.dockerfile ## Builds containers 13 | docker build -t $(REGISTRY)/$(@D):$(@F) -f $< $( 4.11, and you want to use containers 73 | that run old glibc (for example, CentOS 6 or SLES11SP4), you may need to add 74 | 75 | ``` 76 | vsyscall=emulate 77 | ``` 78 | 79 | to the host kernel command line. That enables a legacy interface that is used 80 | by old glibc. 81 | 82 | 83 | Building a container 84 | -------------------- 85 | 86 | There is a makefile to make this process easier. You should be 87 | able to run `make DISTRO/VERSION` to have Docker build the container 88 | for you. If you define the `PUSH` environment variable when running the 89 | former `make` command, it will push the container to the [registry] if 90 | you have access to do so and have your Docker logged into the registry. 91 | 92 | To login you must run `docker login registry.gitlab.com`. For more 93 | information see the [registry help]. 94 | 95 | [registry]: https://gitlab.com/lf-edge/runx/container_registry 96 | [registry help]: https://gitlab.com/help/user/project/container_registry 97 | -------------------------------------------------------------------------------- /automation/build/alpine/3.14-arm64v8.dockerfile: -------------------------------------------------------------------------------- 1 | FROM arm64v8/alpine:3.14 2 | LABEL maintainer.name="The runX Project" \ 3 | maintainer.email="eve-runx@lists.lfedge.org" 4 | 5 | ENV USER root 6 | 7 | RUN mkdir /build 8 | WORKDIR /build 9 | 10 | # build depends 11 | RUN \ 12 | # apk 13 | apk update && \ 14 | \ 15 | # for building runx 16 | apk add make && \ 17 | apk add bash && \ 18 | apk add bison && \ 19 | apk add cpio && \ 20 | apk add findutils && \ 21 | apk add flex && \ 22 | apk add gcc && \ 23 | apk add glib-dev && \ 24 | apk add gzip && \ 25 | apk add openssl-dev && \ 26 | apk add musl-dev && \ 27 | apk add ncurses-dev && \ 28 | apk add patch && \ 29 | apk add perl && \ 30 | apk add tar && \ 31 | apk add wget && \ 32 | \ 33 | # for running qemu 34 | apk add elfutils && \ 35 | apk add pixman && \ 36 | apk add python3 && \ 37 | apk add xz && \ 38 | apk add zlib && \ 39 | \ 40 | # cleanup 41 | rm -rf /tmp/* && \ 42 | rm -f /var/cache/apk/* 43 | -------------------------------------------------------------------------------- /automation/gitlab-ci/build-each-commit.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # For a newly pushed branch the BEFORE_SHA will be all 0s 4 | if [[ ${BASE} == 0000000000000000000000000000000000000000 ]]; then 5 | echo "Newly pushed branch, skipped" 6 | exit 0 7 | fi 8 | 9 | git merge-base --is-ancestor ${BASE} ${TIP} 10 | if [[ $? -ne 0 ]]; then 11 | echo "${TIP} is not a descendent of ${BASE}, skipped" 12 | exit 0 13 | fi 14 | 15 | echo "Building ${BASE}..${TIP}" 16 | 17 | NON_SYMBOLIC_REF=1 ./automation/scripts/build-test.sh ${BASE} ${TIP} \ 18 | bash -c "git clean -ffdx && ./automation/scripts/build" 19 | -------------------------------------------------------------------------------- /automation/gitlab-ci/build.yaml: -------------------------------------------------------------------------------- 1 | .build-tmpl: &build 2 | stage: build 3 | image: registry.gitlab.com/lf-edge/runx/${CONTAINER} 4 | script: 5 | - ./automation/scripts/build 2>&1 | tee build.log 6 | artifacts: 7 | paths: 8 | - binaries/ 9 | - target/ 10 | - '*.log' 11 | when: always 12 | except: 13 | - master 14 | - smoke 15 | - /^coverity-tested\/.*/ 16 | - /^stable-.*/ 17 | 18 | .gcc-tmpl: 19 | variabes: &gcc 20 | CC: gcc 21 | CXX: g++ 22 | 23 | .arm64-build-tmpl: 24 | <<: *build 25 | variables: 26 | XEN_TARGET_ARCH: arm64 27 | tags: 28 | - arm64 29 | 30 | .arm64-build: 31 | extends: .arm64-build-tmpl 32 | variables: 33 | debug: n 34 | 35 | .gcc-arm64-build: 36 | extends: .arm64-build 37 | variables: 38 | <<: *gcc 39 | 40 | # Arm builds 41 | 42 | alpine-3.12-gcc-arm64: 43 | extends: .gcc-arm64-build 44 | variables: 45 | CONTAINER: alpine:3.12-arm64v8 46 | 47 | # Arm test artifacts 48 | 49 | alpine-3.12-arm64-rootfs-export: 50 | stage: build 51 | image: registry.gitlab.com/lf-edge/runx/tests-artifacts/alpine:3.12-arm64v8 52 | script: 53 | - mkdir binaries && cp /initrd.tar.gz binaries/initrd.tar.gz 54 | artifacts: 55 | paths: 56 | - binaries/initrd.tar.gz 57 | tags: 58 | - arm64 59 | 60 | kernel-5.10.30-arm64-export: 61 | stage: build 62 | image: registry.gitlab.com/lf-edge/runx/tests-artifacts/kernel:5.10.30-arm64v8 63 | script: 64 | - mkdir binaries && cp /Image binaries/Image 65 | artifacts: 66 | paths: 67 | - binaries/Image 68 | tags: 69 | - arm64 70 | 71 | qemu-system-aarch64-5.2.0-arm64-export: 72 | stage: build 73 | image: registry.gitlab.com/lf-edge/runx/tests-artifacts/qemu-system-aarch64:5.2.0-arm64v8 74 | script: 75 | - mkdir binaries && cp /qemu-system-aarch64 binaries/qemu-system-aarch64 76 | artifacts: 77 | paths: 78 | - binaries/qemu-system-aarch64 79 | tags: 80 | - arm64 81 | 82 | u-boot-2021.07-arm64-export: 83 | stage: build 84 | image: registry.gitlab.com/lf-edge/runx/tests-artifacts/u-boot:2021.07-arm64v8 85 | script: 86 | - mkdir binaries && cp /u-boot.bin binaries/u-boot.bin 87 | artifacts: 88 | paths: 89 | - binaries/u-boot.bin 90 | tags: 91 | - arm64 92 | 93 | xen-4.14-arm64-export: 94 | stage: build 95 | image: registry.gitlab.com/lf-edge/runx/tests-artifacts/xen:4.14-arm64v8 96 | script: 97 | - mkdir binaries && cp /xen.tar.gz binaries/xen.tar.gz 98 | artifacts: 99 | paths: 100 | - binaries/xen.tar.gz 101 | tags: 102 | - arm64 103 | -------------------------------------------------------------------------------- /automation/gitlab-ci/test.yaml: -------------------------------------------------------------------------------- 1 | # Test jobs 2 | qemu-alpine-arm64-gcc: 3 | stage: test 4 | image: registry.gitlab.com/lf-edge/runx/${CONTAINER} 5 | variables: 6 | CONTAINER: alpine:3.12-arm64v8 7 | CC: gcc 8 | script: 9 | - BASE=${BASE_SHA:-${CI_COMMIT_BEFORE_SHA}} TIP=${TIP_SHA:-${CI_COMMIT_SHA}} ./automation/gitlab-ci/build-each-commit.sh 2>&1 | tee ../build-each-commit-gcc.log 10 | - mv ../build-each-commit-gcc.log . 11 | dependencies: [] 12 | artifacts: 13 | paths: 14 | - smoke.serial 15 | - '*.log' 16 | when: always 17 | tags: 18 | - arm64 19 | except: 20 | - master 21 | - smoke 22 | - /^coverity-tested\/.*/ 23 | - /^stable-.*/ 24 | 25 | 26 | qemu-alpine-arm64-test: 27 | stage: test 28 | image: registry.gitlab.com/lf-edge/runx/${CONTAINER} 29 | variables: 30 | CONTAINER: alpine:3.12-arm64v8 31 | CC: gcc 32 | script: 33 | - ./automation/scripts/qemu-alpine-arm64.sh 2>&1 | tee qemu-smoke-arm64.log 34 | dependencies: 35 | - alpine-3.12-gcc-arm64 36 | - alpine-3.12-arm64-rootfs-export 37 | - kernel-5.10.30-arm64-export 38 | - qemu-system-aarch64-5.2.0-arm64-export 39 | - u-boot-2021.07-arm64-export 40 | - xen-4.14-arm64-export 41 | artifacts: 42 | paths: 43 | - smoke.serial 44 | - '*.log' 45 | when: always 46 | tags: 47 | - arm64 48 | except: 49 | - master 50 | - smoke 51 | - /^coverity-tested\/.*/ 52 | - /^stable-.*/ 53 | -------------------------------------------------------------------------------- /automation/scripts/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash -ex 2 | 3 | ./build.sh clean 4 | 5 | ./build.sh 6 | -------------------------------------------------------------------------------- /automation/scripts/build-test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Run command on every commit within the range specified. If no command is 4 | # provided, use the default one to clean and build the whole tree. 5 | # 6 | # The default rune is rather simple. To do a cross-build, please put your usual 7 | # build rune in a shell script and invoke it with this script. 8 | # 9 | # Set NON_SYMBOLIC_REF=1 if you want to use this script in detached HEAD state. 10 | # This is currently used by automated test system. 11 | 12 | if test $# -lt 2 ; then 13 | echo "Usage:" 14 | echo " $0 [CMD]" 15 | echo " If [CMD] is not specified, run the default command" 16 | echo " git clean -fdx && ./build.sh" 17 | exit 1 18 | fi 19 | 20 | pushd `git rev-parse --show-toplevel` 21 | 22 | status=`git status -s` 23 | if test -n "$status"; then 24 | echo "Tree is dirty, aborted" 25 | exit 1 26 | fi 27 | 28 | BASE=$1; shift 29 | TIP=$1; shift 30 | 31 | if [[ "_${NON_SYMBOLIC_REF}" != "_1" ]]; then 32 | ORIG=`git symbolic-ref -q --short HEAD` 33 | if test $? -ne 0; then 34 | echo "Detached HEAD, aborted" 35 | exit 1 36 | fi 37 | else 38 | ORIG=`git rev-parse HEAD` 39 | fi 40 | 41 | ret=1 42 | while read num rev; do 43 | echo "Testing $num $rev" 44 | 45 | git checkout $rev 46 | ret=$? 47 | if test $ret -ne 0; then 48 | echo "Failed to checkout $num $rev with $ret" 49 | break 50 | fi 51 | 52 | if test $# -eq 0 ; then 53 | git clean -fdx && ./build.sh 54 | else 55 | "$@" 56 | fi 57 | ret=$? 58 | if test $ret -ne 0; then 59 | echo "Failed at $num $rev with $ret" 60 | break 61 | fi 62 | echo 63 | done < <(git rev-list $BASE..$TIP | nl -ba | tac) 64 | 65 | echo "Restoring original HEAD" 66 | git checkout $ORIG 67 | gco_ret=$? 68 | if test $gco_ret -ne 0; then 69 | echo "Failed to restore orignal HEAD. Check tree status before doing anything else!" 70 | exit $gco_ret 71 | fi 72 | 73 | if test $ret -eq 0; then 74 | echo "ok." 75 | fi 76 | exit $ret 77 | -------------------------------------------------------------------------------- /automation/scripts/containerize: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # 4 | # DOCKER_CMD should be either `docker` or `podman`. 5 | # 6 | # if using (rootless) podman, remember to set /etc/subuid 7 | # and /etc/subgid. 8 | # 9 | docker_cmd=${DOCKER_CMD:-"docker"} 10 | [ "$DOCKER_CMD" = "podman" ] && userns_podman="--userns=keep-id" selinux=",z" 11 | 12 | einfo() { 13 | echo "$*" >&2 14 | } 15 | 16 | die() { 17 | echo "$*" >&2 18 | exit 1 19 | } 20 | 21 | # 22 | # The caller is expected to override the CONTAINER environment 23 | # variable with the container they wish to launch. 24 | # 25 | BASE="registry.gitlab.com/lf-edge/runx" 26 | case "_${CONTAINER}" in 27 | _alpine|_) CONTAINER="${BASE}/alpine:3.12-arm64v8" ;; 28 | esac 29 | 30 | # Use this variable to control whether root should be used 31 | case "_${CONTAINER_UID0}" in 32 | _1) userarg= ;; 33 | _0|_) userarg="-u $(id -u) $userns_podman" ;; 34 | esac 35 | 36 | # Save the commands for future use 37 | cmd=$@ 38 | 39 | # If no command was specified, just drop us into a shell if we're interactive 40 | [ $# -eq 0 ] && tty -s && cmd="/bin/bash" 41 | 42 | # Are we in an interactive terminal? 43 | tty -s && termint=t 44 | 45 | # Fetch the latest version of the container in hub.docker.com, 46 | # unless it's a newly created local copy. 47 | 48 | if [[ "_${CONTAINER_NO_PULL}" != "_1" ]]; then 49 | einfo "*** Ensuring ${CONTAINER} is up to date" 50 | ${docker_cmd} pull ${CONTAINER} > /dev/null || \ 51 | die "Failed to update container" 52 | fi 53 | 54 | # Ensure we've got what we need for SSH_AUTH_SOCK 55 | if [[ -n ${SSH_AUTH_SOCK} ]]; then 56 | fullpath_sock=$(${READLINK} -f ${SSH_AUTH_SOCK} 2> /dev/null) 57 | if [ $? -ne 0 ]; then 58 | echo "Invalid SSH_AUTH_SOCK: ${SSH_AUTH_SOCK}" 59 | unset SSH_AUTH_SOCK 60 | else 61 | SSH_AUTH_DIR=$(dirname ${fullpath_sock}) 62 | SSH_AUTH_NAME=$(basename ${fullpath_sock}) 63 | fi 64 | fi 65 | 66 | # Figure out the base of what we want as our sources 67 | # by using the top of the git repo 68 | if [[ -z ${CONTAINER_PATH} ]]; then 69 | CONTAINER_PATH=$(git rev-parse --show-toplevel) 70 | fi 71 | 72 | # Kick off Docker 73 | einfo "*** Launching container ..." 74 | exec ${docker_cmd} run \ 75 | ${userarg} \ 76 | ${SSH_AUTH_SOCK:+-e SSH_AUTH_SOCK="/tmp/ssh-agent/${SSH_AUTH_NAME}"} \ 77 | -v "${CONTAINER_PATH}":/build:rw${selinux} \ 78 | -v "${HOME}/.ssh":/root/.ssh:ro \ 79 | ${SSH_AUTH_DIR:+-v "${SSH_AUTH_DIR}":/tmp/ssh-agent${selinux}} \ 80 | ${XEN_CONFIG_EXPERT:+-e XEN_CONFIG_EXPERT=${XEN_CONFIG_EXPERT}} \ 81 | ${CONTAINER_ARGS} \ 82 | -${termint}i --rm -- \ 83 | ${CONTAINER} \ 84 | ${cmd} 85 | -------------------------------------------------------------------------------- /automation/scripts/qemu-alpine-arm64.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -ex 4 | 5 | apk update 6 | apk add \ 7 | uboot-tools \ 8 | dtc \ 9 | curl \ 10 | git \ 11 | file \ 12 | sed \ 13 | coreutils \ 14 | py3-requests 15 | 16 | cd binaries 17 | 18 | mkdir -p rootfs 19 | cd rootfs 20 | tar xvzf ../initrd.tar.gz 21 | mkdir proc 22 | mkdir run 23 | mkdir srv 24 | mkdir sys 25 | rm var/run 26 | 27 | # runx, just overwrite runc since it's the most containerd independent 28 | cp -ar ../../target/* . 29 | mv usr/bin/runc usr/bin/runc.orig 30 | mv usr/sbin/runX usr/bin/runc 31 | # xen, also give qemu/imagebuilder a copy 32 | tar xfz ../xen.tar.gz 33 | cp ./boot/xen ../ 34 | 35 | # https://github.com/NotGlop/docker-drag/blob/master/docker_pull.py 36 | curl -fsSLO https://raw.githubusercontent.com/NotGlop/docker-drag/5413165a2453aa0bc275d7dc14aeb64e814d5cc0/docker_pull.py 37 | python3 ./docker_pull.py arm64v8/busybox:1.33.1 38 | rm docker_pull.py 39 | mv arm64v8_busybox.tar root/ 40 | 41 | echo "memory = 512 42 | " > root/memory.xl 43 | 44 | echo "#!/bin/bash 45 | 46 | export LD_LIBRARY_PATH=/usr/local/lib 47 | bash /etc/init.d/xencommons start 48 | 49 | mount -t tmpfs cgroup_root /sys/fs/cgroup 50 | mkdir /sys/fs/cgroup/cpuset 51 | mkdir /sys/fs/cgroup/devices 52 | mkdir /sys/fs/cgroup/memory 53 | mkdir /sys/fs/cgroup/cpu 54 | mount -t cgroup cpuset -o cpuset /sys/fs/cgroup/cpuset 55 | mount -t cgroup devices -o devices /sys/fs/cgroup/devices 56 | mount -t cgroup memory -o memory /sys/fs/cgroup/memory 57 | mount -t cgroup cpu -o cpu /sys/fs/cgroup/cpu 58 | sleep 5 59 | 60 | containerd & 61 | sleep 5 62 | 63 | ctr image import /root/arm64v8_busybox.tar 64 | sleep 5 65 | ctr run -t --no-pivot --env XLCONF=/root/memory.xl docker.io/arm64v8/busybox:1.33.1 busybox /bin/sh 66 | " > etc/local.d/xen.start 67 | chmod +x etc/local.d/xen.start 68 | 69 | echo "rc_verbose=yes" >> etc/rc.conf 70 | find . |cpio -H newc -o|gzip > ../xen-rootfs.cpio.gz 71 | cd ../.. 72 | 73 | # XXX QEMU looks for "efi-virtio.rom" even if it is unneeded 74 | curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom 75 | ./binaries/qemu-system-aarch64 \ 76 | -machine virtualization=true \ 77 | -cpu cortex-a57 -machine type=virt \ 78 | -m 1024 -display none \ 79 | -machine dumpdtb=binaries/virt-gicv3.dtb 80 | # XXX disable pl061 to avoid Linux crash 81 | dtc -I dtb -O dts binaries/virt-gicv3.dtb > binaries/virt-gicv3.dts 82 | sed 's/compatible = "arm,pl061.*/status = "disabled";/g' binaries/virt-gicv3.dts > binaries/virt-gicv3-edited.dts 83 | dtc -I dts -O dtb binaries/virt-gicv3-edited.dts > binaries/virt-gicv3.dtb 84 | 85 | # ImageBuilder 86 | echo 'MEMORY_START="0x40000000" 87 | MEMORY_END="0x80000000" 88 | 89 | DEVICE_TREE="virt-gicv3.dtb" 90 | XEN="xen" 91 | DOM0_KERNEL="Image" 92 | DOM0_RAMDISK="xen-rootfs.cpio.gz" 93 | XEN_CMD="console=dtuart dom0_mem=1024M" 94 | 95 | NUM_DOMUS=0 96 | 97 | LOAD_CMD="tftpb" 98 | UBOOT_SOURCE="boot.source" 99 | UBOOT_SCRIPT="boot.scr"' > binaries/config 100 | rm -rf imagebuilder 101 | git clone https://gitlab.com/ViryaOS/imagebuilder 102 | bash imagebuilder/scripts/uboot-script-gen -t tftp -d binaries/ -c binaries/config 103 | 104 | # Run the test 105 | rm -f smoke.serial 106 | set +e 107 | echo " virtio scan; dhcp; tftpb 0x40000000 boot.scr; source 0x40000000"| \ 108 | timeout -k 1 720 \ 109 | ./binaries/qemu-system-aarch64 \ 110 | -machine virtualization=true \ 111 | -cpu cortex-a57 -machine type=virt \ 112 | -m 2048 -monitor none -serial stdio \ 113 | -smp 2 \ 114 | -no-reboot \ 115 | -device virtio-net-pci,netdev=n0 \ 116 | -netdev user,id=n0,tftp=binaries \ 117 | -bios binaries/u-boot.bin |& tee smoke.serial 118 | 119 | set -e 120 | (grep -q 'Executing "/bin/sh"' smoke.serial) || exit 1 121 | exit 0 122 | -------------------------------------------------------------------------------- /automation/tests-artifacts/Makefile: -------------------------------------------------------------------------------- 1 | 2 | # the base of where these containers will appear 3 | REGISTRY := registry.gitlab.com/lf-edge/runx/tests-artifacts 4 | CONTAINERS = $(subst .dockerfile,,$(wildcard */*.dockerfile)) 5 | 6 | help: 7 | @echo "Containers to build and export tests artifacts." 8 | @echo "To build one run 'make ARTIFACT/VERSION'. Available containers:" 9 | @$(foreach file,$(sort $(CONTAINERS)),echo ${file};) 10 | @echo "To push container builds, set the env var PUSH" 11 | 12 | %: %.dockerfile ## Builds containers 13 | docker build -t $(REGISTRY)/$(@D):$(@F) -f $< $(> /etc/securetty && \ 89 | echo "hvc0" >> /etc/securetty && \ 90 | echo "ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100" >> /etc/inittab && \ 91 | echo "hvc0::respawn:/sbin/getty -L hvc0 115200 vt100" >> /etc/inittab && \ 92 | passwd -d "root" root && \ 93 | \ 94 | # Create rootfs 95 | cd / && \ 96 | tar cvzf /initrd.tar.gz bin dev etc home init lib mnt opt root sbin usr var 97 | -------------------------------------------------------------------------------- /automation/tests-artifacts/kernel/5.10.30-arm64v8.config.diff: -------------------------------------------------------------------------------- 1 | CONFIG_CGROUP_FREEZER=y 2 | CONFIG_SKB_EXTENSIONS=y 3 | CONFIG_NET_IP_TUNNEL=y 4 | CONFIG_NET_UDP_TUNNEL=y 5 | CONFIG_IPV6=y 6 | CONFIG_BRIDGE_NETFILTER=y 7 | CONFIG_NETFILTER_FAMILY_BRIDGE=y 8 | CONFIG_NF_CONNTRACK=y 9 | CONFIG_NF_NAT=y 10 | CONFIG_NETFILTER_XTABLES=y 11 | CONFIG_NETFILTER_XT_MARK=y 12 | CONFIG_NETFILTER_XT_NAT=y 13 | CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y 14 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y 15 | CONFIG_NF_DEFRAG_IPV4=y 16 | CONFIG_IP_NF_IPTABLES=y 17 | CONFIG_IP_NF_FILTER=y 18 | CONFIG_IP_NF_NAT=y 19 | CONFIG_IP_NF_TARGET_MASQUERADE=y 20 | CONFIG_IP6_NF_IPTABLES=y 21 | CONFIG_NF_DEFRAG_IPV6=y 22 | CONFIG_STP=y 23 | CONFIG_BRIDGE=y 24 | CONFIG_LLC=y 25 | CONFIG_NET_9P_XEN=y 26 | CONFIG_BLK_DEV_DM=y 27 | CONFIG_DM_BUFIO=y 28 | CONFIG_DM_BIO_PRISON=y 29 | CONFIG_DM_PERSISTENT_DATA=y 30 | CONFIG_DM_THIN_PROVISIONING=y 31 | CONFIG_VXLAN=y 32 | CONFIG_VETH=y 33 | CONFIG_OVERLAY_FS=y 34 | CONFIG_PNFS_BLOCK=y 35 | CONFIG_LIBCRC32C=y 36 | -------------------------------------------------------------------------------- /automation/tests-artifacts/kernel/5.10.30-arm64v8.dockerfile: -------------------------------------------------------------------------------- 1 | FROM arm64v8/alpine:3.12 2 | LABEL maintainer.name="The runX Project" \ 3 | maintainer.email="eve-runx@lists.lfedge.org" 4 | 5 | ENV LINUX_VERSION=5.10.30 6 | ENV USER root 7 | 8 | RUN mkdir /build 9 | WORKDIR /build 10 | COPY "$LINUX_VERSION"-arm64v8.config.diff ./ 11 | 12 | # build depends 13 | RUN \ 14 | # apk 15 | apk update && \ 16 | \ 17 | # kernel 18 | apk add argp-standalone && \ 19 | apk add autoconf && \ 20 | apk add automake && \ 21 | apk add bash && \ 22 | apk add curl && \ 23 | apk add dev86 && \ 24 | apk add gcc && \ 25 | apk add g++ && \ 26 | apk add git && \ 27 | apk add linux-headers && \ 28 | apk add make && \ 29 | apk add patch && \ 30 | apk add xz-dev && \ 31 | apk add zlib-dev && \ 32 | apk add elfutils-dev && \ 33 | apk add openssl-dev && \ 34 | apk add bison && \ 35 | apk add flex && \ 36 | apk add bc && \ 37 | \ 38 | # Build the kernel 39 | curl -fsSLO https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-"$LINUX_VERSION".tar.xz && \ 40 | tar xvJf linux-"$LINUX_VERSION".tar.xz && \ 41 | cd linux-"$LINUX_VERSION" && \ 42 | make defconfig && \ 43 | cat ../"$LINUX_VERSION"-arm64v8.config.diff >> .config && \ 44 | make -j$(nproc) Image.gz && \ 45 | cp arch/arm64/boot/Image / && \ 46 | cd /build && \ 47 | rm -rf linux-"$LINUX_VERSION"* && \ 48 | rm -rf /tmp/* && \ 49 | rm -f /var/cache/apk/* 50 | -------------------------------------------------------------------------------- /automation/tests-artifacts/kernel/README.md: -------------------------------------------------------------------------------- 1 | Creating config.diffs 2 | ===================== 3 | 4 | Start with a defconfig. Then use the tool at: 5 | https://github.com/moby/moby/raw/master/contrib/check-config.sh 6 | 7 | Then make sure all the required, overlayfs, and anything else sane are 8 | all built in. Once from there, just take a diff, and add the changed 9 | options to the diff. 10 | 11 | -------------------------------------------------------------------------------- /automation/tests-artifacts/qemu-system-aarch64/5.2.0-arm64v8.dockerfile: -------------------------------------------------------------------------------- 1 | FROM arm64v8/alpine:3.14 2 | LABEL maintainer.name="The runX Project" \ 3 | maintainer.email="eve-runx@lists.lfedge.org" 4 | 5 | ENV QEMU_VERSION=5.2.0 6 | ENV USER root 7 | 8 | RUN mkdir /build 9 | WORKDIR /build 10 | 11 | # build depends 12 | RUN \ 13 | apk update && \ 14 | apk add argp-standalone && \ 15 | apk add autoconf && \ 16 | apk add automake && \ 17 | apk add bash && \ 18 | apk add curl && \ 19 | apk add dev86 && \ 20 | apk add gcc && \ 21 | apk add git && \ 22 | apk add glib-dev && \ 23 | apk add linux-headers && \ 24 | apk add make && \ 25 | apk add musl-dev && \ 26 | apk add ninja && \ 27 | apk add patch && \ 28 | apk add xz-dev && \ 29 | apk add zlib-dev && \ 30 | apk add elfutils-dev && \ 31 | apk add openssl-dev && \ 32 | apk add bison && \ 33 | apk add flex && \ 34 | apk add bc && \ 35 | apk add python3 && \ 36 | apk add pixman-dev && \ 37 | apk add pkgconf && \ 38 | \ 39 | curl -fsSLO https://download.qemu.org/qemu-"$QEMU_VERSION".tar.xz && \ 40 | tar xvJf qemu-"$QEMU_VERSION".tar.xz && \ 41 | cd qemu-"$QEMU_VERSION" && \ 42 | ./configure \ 43 | --target-list=aarch64-softmmu \ 44 | --enable-system \ 45 | --disable-blobs \ 46 | --disable-bsd-user \ 47 | --disable-debug-info \ 48 | --disable-glusterfs \ 49 | --disable-gtk \ 50 | --disable-guest-agent \ 51 | --disable-linux-user \ 52 | --disable-sdl \ 53 | --disable-spice \ 54 | --disable-tpm \ 55 | --disable-vhost-net \ 56 | --disable-vhost-scsi \ 57 | --disable-vhost-user \ 58 | --disable-vhost-vsock \ 59 | --disable-virtfs \ 60 | --disable-vnc \ 61 | --disable-werror \ 62 | --disable-xen \ 63 | --disable-safe-stack \ 64 | --disable-libssh \ 65 | --disable-opengl \ 66 | --disable-tools \ 67 | --disable-virglrenderer \ 68 | --disable-stack-protector \ 69 | --disable-containers \ 70 | --disable-replication \ 71 | --disable-cloop \ 72 | --disable-dmg \ 73 | --disable-vvfat \ 74 | --disable-vdi \ 75 | --disable-parallels \ 76 | --disable-qed \ 77 | --disable-bochs \ 78 | --disable-qom-cast-debug \ 79 | --disable-vhost-vdpa \ 80 | --disable-vhost-kernel \ 81 | --disable-qcow1 \ 82 | --disable-live-block-migration \ 83 | && \ 84 | make -j$(nproc) && \ 85 | cp ./build/qemu-system-aarch64 / && \ 86 | cd /build && \ 87 | rm -rf qemu-"$QEMU_VERSION"* && \ 88 | rm -rf /tmp/* && \ 89 | rm -f /var/cache/apk/* 90 | -------------------------------------------------------------------------------- /automation/tests-artifacts/u-boot/2021.07-arm64v8.dockerfile: -------------------------------------------------------------------------------- 1 | FROM arm64v8/alpine:3.12 2 | LABEL maintainer.name="The runX Project" \ 3 | maintainer.email="eve-runx@lists.lfedge.org" 4 | 5 | ENV UBOOT_VERSION=2021.07 6 | ENV USER root 7 | 8 | RUN mkdir /build 9 | WORKDIR /build 10 | 11 | # build depends 12 | RUN \ 13 | apk update && \ 14 | apk add bison && \ 15 | apk add curl && \ 16 | apk add flex && \ 17 | apk add gcc && \ 18 | apk add openssl-dev && \ 19 | apk add make && \ 20 | apk add musl-dev && \ 21 | curl -fsSLO https://ftp.denx.de/pub/u-boot/u-boot-"$UBOOT_VERSION".tar.bz2 && \ 22 | tar xvjf u-boot-"$UBOOT_VERSION".tar.bz2 && \ 23 | cd u-boot-"$UBOOT_VERSION" && \ 24 | make qemu_arm64_defconfig && \ 25 | make -j$(nproc) && \ 26 | cp ./u-boot.bin / && \ 27 | cd /build && \ 28 | rm -rf u-boot-"$UBOOT_VERSION"* && \ 29 | rm -rf /tmp/* && \ 30 | rm -f /var/cache/apk/* 31 | -------------------------------------------------------------------------------- /automation/tests-artifacts/xen/4.16-arm64v8.dockerfile: -------------------------------------------------------------------------------- 1 | FROM arm64v8/alpine:3.14 2 | LABEL maintainer.name="The runX Project" \ 3 | maintainer.email="eve-runx@lists.lfedge.org" 4 | 5 | ENV USER root 6 | 7 | ENV XEN_BRANCH=stable-4.16 8 | RUN mkdir /build 9 | WORKDIR /build 10 | 11 | # build depends 12 | RUN \ 13 | # apk 14 | apk update && \ 15 | \ 16 | # xen build deps 17 | apk add argp-standalone && \ 18 | apk add autoconf && \ 19 | apk add automake && \ 20 | apk add bash && \ 21 | apk add curl && \ 22 | apk add curl-dev && \ 23 | apk add dev86 && \ 24 | apk add dtc-dev && \ 25 | apk add gcc && \ 26 | apk add g++ && \ 27 | apk add clang && \ 28 | apk add gettext && \ 29 | apk add git && \ 30 | apk add iasl && \ 31 | apk add libaio-dev && \ 32 | apk add libfdt && \ 33 | apk add linux-headers && \ 34 | apk add make && \ 35 | apk add musl-dev && \ 36 | apk add libc6-compat && \ 37 | apk add ncurses-dev && \ 38 | apk add patch && \ 39 | apk add python3-dev && \ 40 | apk add texinfo && \ 41 | apk add util-linux-dev && \ 42 | apk add xz-dev && \ 43 | apk add yajl-dev && \ 44 | apk add zlib-dev && \ 45 | \ 46 | # qemu build deps 47 | apk add bison && \ 48 | apk add flex && \ 49 | apk add glib-dev && \ 50 | apk add libattr && \ 51 | apk add libcap-ng-dev && \ 52 | apk add pixman-dev && \ 53 | \ 54 | # cleanup 55 | rm -rf /tmp/* && \ 56 | rm -f /var/cache/apk/* && \ 57 | \ 58 | # ninja build 59 | git clone --branch release git://github.com/ninja-build/ninja.git && \ 60 | cd ninja && \ 61 | apk add cmake && \ 62 | cmake -Bbuild-cmake -H. && \ 63 | cmake --build build-cmake && \ 64 | cp build-cmake/ninja /usr/bin && \ 65 | cd .. && \ 66 | # xen build 67 | git clone --branch "$XEN_BRANCH" http://xenbits.xen.org/git-http/xen.git && \ 68 | cd xen && \ 69 | ./configure --enable-9pfs --with-extra-qemuu-configure-args="--disable-werror" &&\ 70 | make -j$(nproc) dist && \ 71 | cd dist/install && \ 72 | tar cfz ../xen.tar.gz ./* && \ 73 | mv ../xen.tar.gz / && \ 74 | cd ../../../ && \ 75 | rm -rf xen 76 | -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | set -e 16 | set -o pipefail 17 | 18 | # Path to statically built busybox binary i.e. 19 | # busybox=/usr/bin/busybox-static-aarch64 20 | 21 | execs="start delete state serial_start create pause mount" 22 | 23 | # Clean the repo, but save the vendor area 24 | if [ "x${1:-}" != "x" ] && [ "clean" == "$1" ]; then 25 | echo "cleaning project" 26 | rm -rf kernel/out 27 | rm -rf kernel/build 28 | rm -rf initrd/out 29 | rm -rf target 30 | cd sendfd 31 | make clean 32 | cd - 33 | 34 | exit 0 35 | fi 36 | 37 | # Support cross-compiling via ARCH variable 38 | if [[ -z "$ARCH" ]] 39 | then 40 | ARCH=`uname -m` 41 | fi 42 | if [[ $ARCH = "x86_64" ]] 43 | then 44 | export ARCH="x86" 45 | elif [[ $ARCH = "aarch64" || $ARCH = "arm64" ]] 46 | then 47 | export ARCH="arm64" 48 | elif [[ $ARCH = "arm" || $ARCH = "arm32" ]] 49 | then 50 | export ARCH="arm" 51 | else 52 | echo Architecture not supported 53 | exit 1 54 | fi 55 | 56 | mkdir -p target/usr/share/runX 57 | for i in $execs; do 58 | cp files/$i target/usr/share/runX 59 | done 60 | 61 | cd sendfd 62 | make 63 | cd .. 64 | cp sendfd/sendfd target/usr/share/runX/ 65 | 66 | mkdir -p target/usr/sbin 67 | cp runX target/usr/sbin 68 | 69 | # Build the kernel and initrd 70 | if test \! -f target/usr/share/runX/kernel 71 | then 72 | kernel/make-kernel 73 | cp kernel/out/kernel target/usr/share/runX 74 | fi 75 | if test \! -f target/usr/share/runX/initrd 76 | then 77 | initrd/make-initrd 78 | cp initrd/out/initrd target/usr/share/runX 79 | fi 80 | -------------------------------------------------------------------------------- /docs/containers_env_vars.md: -------------------------------------------------------------------------------- 1 | Containers Environmental Variables 2 | ================================== 3 | 4 | RunX reads a few special parameters from containers environmental variables (*config.json*). They are meant to be set by the container itself, as opposed to the *System Environmental Variables* that are meant to be set by the user. They are described in this document. 5 | 6 | 7 | RUNX_KERNEL 8 | ----------- 9 | 10 | The *RUNX_KERNEL* variable points to a file in the container filesystem (not the host filesystem) to be used by RunX as kernel to start the container. For instance: 11 | 12 | RUNX_KERNEL=/boot/kernel 13 | 14 | Where */boot/kernel* comes with the container. 15 | 16 | 17 | RUNX_RAMDISK 18 | ------------ 19 | 20 | The *RUNX_RAMDISK* variable points to a file in the container filesystem (not the host filesystem) to be used by RunX as ramdisk to start the container. For instance: 21 | 22 | RUNX_RAMDISK=/boot/ramdisk 23 | 24 | Where */boot/ramdisk* comes with the container. 25 | -------------------------------------------------------------------------------- /docs/initrd.md: -------------------------------------------------------------------------------- 1 | RunX Initrd Interface 2 | ===================== 3 | 4 | The RunX initrd (initrd/init-initrd) sets up the environment to run a container application. It creates device nodes, sets up the network, mounts the container filesystem, chroots into it, and executes the required application. In order to perform these operations appropriately, RunX makes some assumptions and retrieves information from special locations. These assumptions and interfaces are documented here. 5 | 6 | Filesystem 7 | ---------- 8 | The RunX initrd reads the filesystem root device from the *root=foo* command line argument (one of the kernel command line arguments of the virtual machine.) If the container filesystem is exposed to the VM using Xen 9pfs, *root=9p* should be used and the name of the Xen 9pfs share has to be *share_dir*. 9 | 10 | 11 | Network 12 | ------- 13 | The RunX initrd reads the network configuration from the following command line arguments (kernel command line arguments): 14 | 15 | - ip=address 16 | - gw=address 17 | - route=address 18 | 19 | For DHCP, *ip=dhcp* should be passed. 20 | 21 | Otherwise, the three parameters are IP addresses, they can be ipv4 or ipv6. *ip* is the IP used to configure the local network interface; *gw* is the gateway address; *route* is the route (as in *route add -net route-ip-address gw gateway-ip-address eth0*.) The nameserver is assumed to be *8.8.8.8* for ipv4 and *2001:4860:4860::8888* for ipv6. 22 | 23 | 24 | Command line 25 | ------------ 26 | The container application to run and its command line arguments (command line arguments for the application) are exposed to the RunX initrd via a special text file at the *root (/)* of the container filesystem. The file is named *cmdline*. The RunX initrd reads the content of the file and uses it to find the application to run and to pass command line arguments to it. 27 | -------------------------------------------------------------------------------- /docs/system_env_vars.md: -------------------------------------------------------------------------------- 1 | RunX System Environmental Variables 2 | =================================== 3 | 4 | RunX reads parameters via special environmental variables of the container, found in its *config.json*. They are meant to be set by the user; they do not come with the container. The user can use common mechanisms to add environmental variables offered by containers engines, for instance: 5 | 6 | containerd-ctr run --env XLCONF="/root/test.cfg" --no-pivot -t docker.io/arm64v8/alpine:latest t1 /bin/sh 7 | 8 | This command ends up adding a *XLCONF* environmental variable which is read and parsed by RunX. The meaning of these variables is described in this document. 9 | 10 | 11 | XLCONF 12 | ------ 13 | 14 | The XLCONF variable points to a file in the host filesystem (not the container filesystem) with parameters that are added *as is* to the xl config file generated by RunX. It can be used to modify the amount of memory, the number of vcpus, or any other VM parameter. It can also be used to add device assignment information. 15 | -------------------------------------------------------------------------------- /files/create: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | workpath=/usr/share/runX 4 | 5 | containerid="$1" 6 | crundir="$2" 7 | bundle=$( cat "$crundir"/bundle ) 8 | pidfile=$( cat "$crundir"/pidfile ) 9 | configfile="$bundle"/config.json 10 | mountpoint=$( cat "$crundir"/rootfs ) 11 | appname=`cat $configfile | jq '.["Path"]'` 12 | cmdline=\"`cat $configfile | jq -c -r '.["process"]["args"] | join("\" \"")'`\" 13 | env=`cat $configfile | jq -c -r '.["process"]["env"] | join("\" \"")'` 14 | xlconf="" 15 | kernel="$workpath/kernel" 16 | ramdisk="$workpath/initrd" 17 | for i in $env 18 | do 19 | i=$(echo $i | tr -d \") 20 | if [[ $i = XLCONF=* ]] 21 | then 22 | xlconf=${i#XLCONF=} 23 | if [[ $xlconf = $mountpoint* ]] 24 | then 25 | # Don't allow the container to use XLCONF 26 | xlconf="" 27 | fi 28 | fi 29 | if [[ $i = RUNX_KERNEL=* ]] 30 | then 31 | kernel=${i#RUNX_KERNEL=} 32 | kernel="$mountpoint"/"$kernel" 33 | fi 34 | if [[ $i = RUNX_RAMDISK=* ]] 35 | then 36 | ramdisk=${i#RUNX_RAMDISK=} 37 | ramdisk="$mountpoint"/"$ramdisk" 38 | fi 39 | done 40 | 41 | # netconf is file,type[,ip] 42 | netconf=`cat $configfile | jq -c -r '.["process"]["env"][] | select(contains("NETCONF"))'` 43 | netconf=`echo "$netconf" | awk -F "=" '{print $2}'` 44 | if test "$netconf" 45 | then 46 | netfile=`echo "$netconf" | awk -F "," '{print $1}'` 47 | netname=`echo "$netconf" | awk -F "," '{print $2}'` 48 | netaddr=`echo "$netconf" | awk -F "," '{print $3}'` 49 | nettype=`cat $netfile | jq -c -r "select(.[\"name\"] == \"$netname\") | .[\"type\"]"` 50 | 51 | if test "$nettype" = "bridge" 52 | then 53 | pvcalls=0 54 | bridge=`cat $netfile | jq -c -r "select(.[\"name\"] == \"$netname\") | .[\"bridge\"]"` 55 | gw=`cat $netfile | jq -c -r "select(.[\"name\"] == \"$netname\") | .[\"ipam\"][\"gateway\"]"` 56 | route=`cat $netfile | jq -c -r "select(.[\"name\"] == \"$netname\") | .[\"ipam\"][\"subnet\"]"` 57 | else 58 | #shouldn't get here, but if we do assume pvcalls 59 | pvcalls=1 60 | fi 61 | else 62 | pvcalls=1 63 | fi 64 | 65 | outconfig=$crundir/xen_vm.cfg 66 | rm $outconfig &> /dev/null 67 | 68 | echo "kernel='$kernel'" >> $outconfig 69 | if test "$ramdisk" 70 | then 71 | echo "ramdisk='$ramdisk'" >> $outconfig 72 | fi 73 | echo "memory = 1024" >> $outconfig 74 | echo "vcpus = 2" >> $outconfig 75 | echo "serial='pty'" >> $outconfig 76 | echo "boot='c'" >> $outconfig 77 | if test $pvcalls -eq 0 78 | then 79 | echo "vif=['bridge="$bridge"']" >> $outconfig 80 | if test "$netaddr" 81 | then 82 | echo extra=\'console=hvc0 root=9p rdinit=/bin/init ip=$netaddr gw=$gw route=$route\' >> $outconfig 83 | else 84 | echo extra=\'console=hvc0 root=9p rdinit=/bin/init ip=dhcp\' >> $outconfig 85 | fi 86 | else 87 | echo "pvcalls=['']" >> $outconfig 88 | echo extra=\'console=hvc0 root=9p rdinit=/bin/init pvcalls=1\' >> $outconfig 89 | fi 90 | echo "vfb=['vnc=1']" >> $outconfig 91 | echo "p9=[ 'tag=share_dir,security_model=none,path=$mountpoint' ]" >> $outconfig 92 | echo "name=\"$containerid\"" >> $outconfig 93 | if test -f "$xlconf" 94 | then 95 | cat "$xlconf" >> $outconfig 96 | fi 97 | 98 | echo $cmdline > $mountpoint/cmdline 99 | xl create -p $outconfig > /dev/null 2>&1 100 | 101 | pid=$( ps | grep -v grep | grep "xl create -p $outconfig" | awk '{print $1}' ) 102 | echo -n "$pid" > "$pidfile" 103 | -------------------------------------------------------------------------------- /files/delete: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | workpath=/usr/share/runX 4 | 5 | containerid="$1" 6 | 7 | xl destroy $containerid &> /dev/null 8 | -------------------------------------------------------------------------------- /files/mount: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | workpath=/usr/share/runX 4 | MNT_MAX_IT=30 5 | OPT_MAX_IT=15 6 | UMNT_MAX_IT=5 7 | 8 | containerid="$1" 9 | crundir="$2" 10 | op="$3" 11 | bundle=$( cat "$crundir"/bundle ) 12 | configfile="$bundle"/config.json 13 | mountpoint=$( cat "$crundir"/rootfs ) 14 | 15 | for (( i=0 ; i < MNT_MAX_IT ; i++ )) 16 | do 17 | jq_type=$( jq -r .[\"mounts\"][$i][\"type\"] "$configfile" ) 18 | 19 | if test "$jq_type" = "null" 20 | then 21 | break 22 | fi 23 | 24 | if test "$jq_type" = "bind" 25 | then 26 | jq_des=$( jq -r .[\"mounts\"][$i][\"destination\"] "$configfile" ) 27 | jq_src=$( jq -r .[\"mounts\"][$i][\"source\"] "$configfile" ) 28 | 29 | if test "$op" = "mount" 30 | then 31 | jq_rw="rw" 32 | jq_bind="bind" 33 | jq_cmd="" 34 | for (( j=0 ; j < OPT_MAX_IT ; j++ )) 35 | do 36 | jq_opt=$( jq -r .[\"mounts\"][$i][\"options\"][$j] "$configfile" ) 37 | 38 | case "$jq_opt" in 39 | "null") 40 | break 41 | ;; 42 | "bind") 43 | ;& 44 | "rbind") 45 | jq_bind="$jq_opt" 46 | ;; 47 | "rw") 48 | ;& 49 | "ro") 50 | jq_rw="$jq_opt" 51 | ;; 52 | *) 53 | jq_cmd+="$jq_opt," 54 | ;; 55 | esac 56 | done 57 | 58 | mkdir -p "$mountpoint$jq_des" 59 | mount -o "$jq_cmd$jq_bind" "$jq_src" "$mountpoint$jq_des" 60 | if test "$jq_rw" = "ro" 61 | then 62 | mount -o "$jq_cmd$jq_bind,remount,ro" "$mountpoint$jq_des" 63 | fi 64 | else 65 | for (( j=0 ; j < UMNT_MAX_IT ; j++ )) 66 | do 67 | umount "$mountpoint$jq_des" 68 | if test "$?" = "0" 69 | then 70 | break 71 | else 72 | sleep 1 73 | fi 74 | done 75 | fi 76 | fi 77 | done 78 | -------------------------------------------------------------------------------- /files/pause: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | containerid="$1" 4 | cmd="$2" 5 | 6 | case "$cmd" in 7 | pause) 8 | xl pause "$containerid" 9 | ;; 10 | resume) 11 | xl unpause "$containerid" 12 | ;; 13 | *) 14 | echo "pause/resume command not found" 15 | exit 1 16 | ;; 17 | esac 18 | 19 | exit $? 20 | -------------------------------------------------------------------------------- /files/serial_start: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | containerid=$1 4 | dev_containerd=$2 5 | 6 | domid=`xl list $containerid | tail -n 1 | awk '{print $2}'` 7 | dev_xen=$(xenstore-read /local/domain/${domid}/console/tty) 8 | socat \ 9 | PTY,link=${dev_containerd},rawer \ 10 | ${dev_xen},rawer 11 | -------------------------------------------------------------------------------- /files/start: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | workpath=/usr/share/runX 4 | 5 | containerid="$1" 6 | 7 | xl unpause "$1" 8 | -------------------------------------------------------------------------------- /files/state: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | containerid="$1" 4 | crundir="$2" 5 | bundle=$( cat "$crundir"/bundle ) 6 | pidfile=$( cat "$crundir"/pidfile ) 7 | domid="$(xl domid "$containerid")" 8 | mountpoint=$( cat "$crundir"/rootfs ) 9 | 10 | if test "$domid" 11 | then 12 | xenstate="$(xl list "$domid" 2> /dev/null | tail -n 1 | awk '{print$5}')" 13 | 14 | if [[ $xenstate =~ p ]] 15 | then 16 | uptime="$(xl list "$domid" 2> /dev/null | tail -n 1 | awk '{print$6}')" 17 | if [ $uptime = "0.0" ] 18 | then 19 | state="created" 20 | else 21 | state="paused" 22 | fi 23 | elif [[ $xenstate =~ r|b ]] 24 | then 25 | state="running" 26 | else 27 | state="stopped" 28 | fi 29 | else 30 | domid="$(xl list | tail -n 1 | awk '{print$2}')" 31 | domid="$(expr $domid + 1)" 32 | 33 | state="stopped" 34 | fi 35 | 36 | if test -f "$pidfile" 37 | then 38 | pid=$( cat "$pidfile" ) 39 | else 40 | pid=$domid 41 | fi 42 | 43 | cat << EOF 44 | { 45 | "ociVersion": "1.0.1-dev", 46 | "id": "$containerid", 47 | "pid": $pid, 48 | "status": "$state", 49 | "bundle": "$bundle", 50 | "rootfs": "$mountpoint", 51 | "created": "`date +"%Y-%m-%dT%H:%M:%SZ"`", 52 | "owner": "" 53 | } 54 | EOF 55 | -------------------------------------------------------------------------------- /initrd/applet-list: -------------------------------------------------------------------------------- 1 | ipneigh 2 | tee 3 | mpstat 4 | lzop 5 | ip 6 | inotifyd 7 | rdate 8 | nslookup 9 | switch_root 10 | sendmail 11 | slattach 12 | sum 13 | od 14 | less 15 | vlock 16 | cmp 17 | dnsdomainname 18 | renice 19 | fsync 20 | unlzop 21 | xxd 22 | stat 23 | flock 24 | fbset 25 | bzip2 26 | fdisk 27 | fallocate 28 | deallocvt 29 | cat 30 | mkdir 31 | traceroute 32 | dc 33 | loadfont 34 | nohup 35 | wc 36 | ping6 37 | login 38 | ifdown 39 | shred 40 | false 41 | pwd 42 | uname 43 | hd 44 | hdparm 45 | expand 46 | lspci 47 | shuf 48 | time 49 | tunctl 50 | sha3sum 51 | sed 52 | ed 53 | makemime 54 | factor 55 | ls 56 | volname 57 | stty 58 | truncate 59 | nproc 60 | openvt 61 | hexdump 62 | mountpoint 63 | nl 64 | more 65 | wget 66 | traceroute6 67 | linuxrc 68 | fbsplash 69 | pstree 70 | kill 71 | df 72 | uptime 73 | split 74 | arch 75 | getty 76 | syslogd 77 | cpio 78 | unexpand 79 | sha512sum 80 | sha256sum 81 | clear 82 | rdev 83 | md5sum 84 | egrep 85 | lzma 86 | rmdir 87 | tail 88 | netstat 89 | mkswap 90 | pkill 91 | fstrim 92 | bzcat 93 | chmod 94 | mount 95 | paste 96 | rev 97 | fsck 98 | ping 99 | ifup 100 | mesg 101 | gzip 102 | setconsole 103 | printenv 104 | swapoff 105 | unxz 106 | sort 107 | chpasswd 108 | true 109 | linux32 110 | blkid 111 | env 112 | dd 113 | fatattr 114 | bc 115 | [[ 116 | mkfifo 117 | route 118 | xz 119 | setkeycodes 120 | install 121 | mkpasswd 122 | awk 123 | rm 124 | nsenter 125 | which 126 | sh 127 | ln 128 | fdflush 129 | test 130 | ttysize 131 | fuser 132 | base64 133 | run-parts 134 | ntpd 135 | mv 136 | printf 137 | nanddump 138 | zcat 139 | basename 140 | xzcat 141 | unlzma 142 | ipcs 143 | ash 144 | tar 145 | iplink 146 | sysctl 147 | crontab 148 | chown 149 | watchdog 150 | partprobe 151 | ifconfig 152 | chvt 153 | readahead 154 | add-shell 155 | ipaddr 156 | link 157 | getopt 158 | reboot 159 | blkdiscard 160 | pscan 161 | nandwrite 162 | cksum 163 | iostat 164 | deluser 165 | du 166 | tty 167 | iprule 168 | setserial 169 | eject 170 | unix2dos 171 | free 172 | conspy 173 | pivot_root 174 | setfont 175 | kbd_mode 176 | strings 177 | groups 178 | ionice 179 | swapon 180 | smemcap 181 | brctl 182 | yes 183 | cal 184 | bbconfig 185 | uudecode 186 | logger 187 | watch 188 | [ 189 | udhcpc 190 | acpid 191 | echo 192 | setsid 193 | expr 194 | readlink 195 | linux64 196 | sync 197 | uuencode 198 | insmod 199 | rmmod 200 | raidautorun 201 | nbd-client 202 | ipcrm 203 | modinfo 204 | adjtimex 205 | unzip 206 | cp 207 | killall 208 | delgroup 209 | blockdev 210 | halt 211 | modprobe 212 | showkey 213 | setlogcons 214 | whois 215 | lsof 216 | vi 217 | grep 218 | sha1sum 219 | ps 220 | timeout 221 | crond 222 | hwclock 223 | unlink 224 | touch 225 | losetup 226 | iptunnel 227 | fold 228 | id 229 | chroot 230 | rfkill 231 | mdev 232 | lzcat 233 | microcom 234 | chgrp 235 | date 236 | udhcpc6 237 | init 238 | su 239 | head 240 | remove-shell 241 | reset 242 | realpath 243 | xargs 244 | cut 245 | poweroff 246 | killall5 247 | addgroup 248 | logread 249 | resize 250 | pipe_progress 251 | findfs 252 | dumpkmap 253 | reformime 254 | fdformat 255 | arping 256 | nologin 257 | lsmod 258 | mkdosfs 259 | klogd 260 | dirname 261 | umount 262 | setpriv 263 | cryptpw 264 | usleep 265 | pgrep 266 | hostname 267 | powertop 268 | dos2unix 269 | iproute 270 | ether-wake 271 | nice 272 | vconfig 273 | gunzip 274 | hostid 275 | top 276 | tr 277 | sleep 278 | mkfs.vfat 279 | comm 280 | lzopcat 281 | depmod 282 | arp 283 | mktemp 284 | uniq 285 | dumpleases 286 | adduser 287 | mknod 288 | dmesg 289 | nmeter 290 | lsusb 291 | find 292 | unshare 293 | nameif 294 | whoami 295 | ifenslave 296 | pwdx 297 | loadkmap 298 | pmap 299 | ipcalc 300 | tac 301 | bunzip2 302 | beep 303 | pidof 304 | nc 305 | fgrep 306 | readprofile 307 | seq 308 | diff 309 | -------------------------------------------------------------------------------- /initrd/autologin: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | exec /bin/login -f root 4 | -------------------------------------------------------------------------------- /initrd/busybox.config: -------------------------------------------------------------------------------- 1 | # 2 | # Automatically generated make config: don't edit 3 | # Busybox version: 1.34.1 4 | # Fri Oct 22 18:18:18 2021 5 | # 6 | CONFIG_HAVE_DOT_CONFIG=y 7 | 8 | # 9 | # Settings 10 | # 11 | CONFIG_DESKTOP=y 12 | # CONFIG_EXTRA_COMPAT is not set 13 | # CONFIG_FEDORA_COMPAT is not set 14 | # CONFIG_INCLUDE_SUSv2 is not set 15 | CONFIG_LONG_OPTS=y 16 | CONFIG_SHOW_USAGE=y 17 | CONFIG_FEATURE_VERBOSE_USAGE=y 18 | CONFIG_FEATURE_COMPRESS_USAGE=y 19 | CONFIG_LFS=y 20 | # CONFIG_PAM is not set 21 | CONFIG_FEATURE_DEVPTS=y 22 | # CONFIG_FEATURE_UTMP is not set 23 | # CONFIG_FEATURE_WTMP is not set 24 | CONFIG_FEATURE_PIDFILE=y 25 | CONFIG_PID_FILE_PATH="/var/run" 26 | CONFIG_BUSYBOX=y 27 | # CONFIG_FEATURE_SHOW_SCRIPT is not set 28 | CONFIG_FEATURE_INSTALLER=y 29 | # CONFIG_INSTALL_NO_USR is not set 30 | CONFIG_FEATURE_SUID=y 31 | # CONFIG_FEATURE_SUID_CONFIG is not set 32 | # CONFIG_FEATURE_SUID_CONFIG_QUIET is not set 33 | # CONFIG_FEATURE_PREFER_APPLETS is not set 34 | CONFIG_BUSYBOX_EXEC_PATH="/bin/busybox" 35 | # CONFIG_SELINUX is not set 36 | # CONFIG_FEATURE_CLEAN_UP is not set 37 | CONFIG_FEATURE_SYSLOG_INFO=y 38 | CONFIG_FEATURE_SYSLOG=y 39 | 40 | # 41 | # Build Options 42 | # 43 | CONFIG_STATIC=y 44 | # CONFIG_PIE is not set 45 | # CONFIG_NOMMU is not set 46 | # CONFIG_BUILD_LIBBUSYBOX is not set 47 | # CONFIG_FEATURE_LIBBUSYBOX_STATIC is not set 48 | # CONFIG_FEATURE_INDIVIDUAL is not set 49 | # CONFIG_FEATURE_SHARED_BUSYBOX is not set 50 | CONFIG_CROSS_COMPILER_PREFIX="" 51 | CONFIG_SYSROOT="" 52 | CONFIG_EXTRA_CFLAGS="" 53 | CONFIG_EXTRA_LDFLAGS="" 54 | CONFIG_EXTRA_LDLIBS="" 55 | # CONFIG_USE_PORTABLE_CODE is not set 56 | CONFIG_STACK_OPTIMIZATION_386=y 57 | CONFIG_STATIC_LIBGCC=y 58 | 59 | # 60 | # Installation Options ("make install" behavior) 61 | # 62 | # CONFIG_INSTALL_APPLET_SYMLINKS is not set 63 | # CONFIG_INSTALL_APPLET_HARDLINKS is not set 64 | # CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set 65 | CONFIG_INSTALL_APPLET_DONT=y 66 | # CONFIG_INSTALL_SH_APPLET_SYMLINK is not set 67 | # CONFIG_INSTALL_SH_APPLET_HARDLINK is not set 68 | # CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set 69 | CONFIG_PREFIX="./_install" 70 | 71 | # 72 | # Debugging Options 73 | # 74 | # CONFIG_DEBUG is not set 75 | # CONFIG_DEBUG_PESSIMIZE is not set 76 | # CONFIG_DEBUG_SANITIZE is not set 77 | # CONFIG_UNIT_TEST is not set 78 | # CONFIG_WERROR is not set 79 | # CONFIG_WARN_SIMPLE_MSG is not set 80 | CONFIG_NO_DEBUG_LIB=y 81 | # CONFIG_DMALLOC is not set 82 | # CONFIG_EFENCE is not set 83 | 84 | # 85 | # Library Tuning 86 | # 87 | # CONFIG_FEATURE_USE_BSS_TAIL is not set 88 | CONFIG_FLOAT_DURATION=y 89 | CONFIG_FEATURE_RTMINMAX=y 90 | CONFIG_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS=y 91 | CONFIG_FEATURE_BUFFERS_USE_MALLOC=y 92 | # CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set 93 | # CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set 94 | CONFIG_PASSWORD_MINLEN=6 95 | CONFIG_MD5_SMALL=0 96 | CONFIG_SHA3_SMALL=0 97 | CONFIG_FEATURE_FAST_TOP=y 98 | # CONFIG_FEATURE_ETC_NETWORKS is not set 99 | # CONFIG_FEATURE_ETC_SERVICES is not set 100 | CONFIG_FEATURE_EDITING=y 101 | CONFIG_FEATURE_EDITING_MAX_LEN=1024 102 | CONFIG_FEATURE_EDITING_VI=y 103 | CONFIG_FEATURE_EDITING_HISTORY=8192 104 | CONFIG_FEATURE_EDITING_SAVEHISTORY=y 105 | # CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set 106 | CONFIG_FEATURE_REVERSE_SEARCH=y 107 | CONFIG_FEATURE_TAB_COMPLETION=y 108 | CONFIG_FEATURE_USERNAME_COMPLETION=y 109 | CONFIG_FEATURE_EDITING_FANCY_PROMPT=y 110 | CONFIG_FEATURE_EDITING_WINCH=y 111 | CONFIG_FEATURE_EDITING_ASK_TERMINAL=y 112 | CONFIG_LOCALE_SUPPORT=y 113 | CONFIG_UNICODE_SUPPORT=y 114 | CONFIG_UNICODE_USING_LOCALE=y 115 | # CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set 116 | CONFIG_SUBST_WCHAR=63 117 | CONFIG_LAST_SUPPORTED_WCHAR=1114111 118 | CONFIG_UNICODE_COMBINING_WCHARS=y 119 | CONFIG_UNICODE_WIDE_WCHARS=y 120 | # CONFIG_UNICODE_BIDI_SUPPORT is not set 121 | # CONFIG_UNICODE_NEUTRAL_TABLE is not set 122 | CONFIG_UNICODE_PRESERVE_BROKEN=y 123 | CONFIG_FEATURE_NON_POSIX_CP=y 124 | # CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set 125 | CONFIG_FEATURE_USE_SENDFILE=y 126 | CONFIG_FEATURE_COPYBUF_KB=16 127 | CONFIG_FEATURE_SKIP_ROOTFS=y 128 | CONFIG_MONOTONIC_SYSCALL=y 129 | # CONFIG_IOCTL_HEX2STR_ERROR is not set 130 | CONFIG_FEATURE_HWIB=y 131 | 132 | # 133 | # Applets 134 | # 135 | 136 | # 137 | # Archival Utilities 138 | # 139 | CONFIG_FEATURE_SEAMLESS_XZ=y 140 | CONFIG_FEATURE_SEAMLESS_LZMA=y 141 | CONFIG_FEATURE_SEAMLESS_BZ2=y 142 | CONFIG_FEATURE_SEAMLESS_GZ=y 143 | CONFIG_FEATURE_SEAMLESS_Z=y 144 | # CONFIG_AR is not set 145 | # CONFIG_FEATURE_AR_LONG_FILENAMES is not set 146 | # CONFIG_FEATURE_AR_CREATE is not set 147 | # CONFIG_UNCOMPRESS is not set 148 | CONFIG_GUNZIP=y 149 | CONFIG_ZCAT=y 150 | CONFIG_FEATURE_GUNZIP_LONG_OPTIONS=y 151 | CONFIG_BUNZIP2=y 152 | CONFIG_BZCAT=y 153 | CONFIG_UNLZMA=y 154 | CONFIG_LZCAT=y 155 | CONFIG_LZMA=y 156 | CONFIG_UNXZ=y 157 | CONFIG_XZCAT=y 158 | CONFIG_XZ=y 159 | CONFIG_BZIP2=y 160 | CONFIG_BZIP2_SMALL=8 161 | CONFIG_FEATURE_BZIP2_DECOMPRESS=y 162 | CONFIG_CPIO=y 163 | CONFIG_FEATURE_CPIO_O=y 164 | CONFIG_FEATURE_CPIO_P=y 165 | # CONFIG_DPKG is not set 166 | # CONFIG_DPKG_DEB is not set 167 | CONFIG_GZIP=y 168 | # CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set 169 | CONFIG_GZIP_FAST=2 170 | CONFIG_FEATURE_GZIP_LEVELS=y 171 | CONFIG_FEATURE_GZIP_DECOMPRESS=y 172 | CONFIG_LZOP=y 173 | CONFIG_UNLZOP=y 174 | CONFIG_LZOPCAT=y 175 | # CONFIG_LZOP_COMPR_HIGH is not set 176 | # CONFIG_RPM is not set 177 | # CONFIG_RPM2CPIO is not set 178 | CONFIG_TAR=y 179 | CONFIG_FEATURE_TAR_LONG_OPTIONS=y 180 | CONFIG_FEATURE_TAR_CREATE=y 181 | CONFIG_FEATURE_TAR_AUTODETECT=y 182 | CONFIG_FEATURE_TAR_FROM=y 183 | CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y 184 | CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY=y 185 | CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y 186 | # CONFIG_FEATURE_TAR_TO_COMMAND is not set 187 | CONFIG_FEATURE_TAR_UNAME_GNAME=y 188 | CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y 189 | # CONFIG_FEATURE_TAR_SELINUX is not set 190 | CONFIG_UNZIP=y 191 | CONFIG_FEATURE_UNZIP_CDF=y 192 | CONFIG_FEATURE_UNZIP_BZIP2=y 193 | CONFIG_FEATURE_UNZIP_LZMA=y 194 | CONFIG_FEATURE_UNZIP_XZ=y 195 | CONFIG_FEATURE_LZMA_FAST=y 196 | 197 | # 198 | # Coreutils 199 | # 200 | CONFIG_BASENAME=y 201 | CONFIG_CAT=y 202 | CONFIG_FEATURE_CATN=y 203 | CONFIG_FEATURE_CATV=y 204 | CONFIG_CHGRP=y 205 | CONFIG_CHMOD=y 206 | CONFIG_CHOWN=y 207 | CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y 208 | CONFIG_CHROOT=y 209 | CONFIG_CKSUM=y 210 | CONFIG_CRC32=y 211 | CONFIG_COMM=y 212 | CONFIG_CP=y 213 | CONFIG_FEATURE_CP_LONG_OPTIONS=y 214 | CONFIG_FEATURE_CP_REFLINK=y 215 | CONFIG_CUT=y 216 | CONFIG_FEATURE_CUT_REGEX=y 217 | CONFIG_DATE=y 218 | CONFIG_FEATURE_DATE_ISOFMT=y 219 | # CONFIG_FEATURE_DATE_NANO is not set 220 | CONFIG_FEATURE_DATE_COMPAT=y 221 | CONFIG_DD=y 222 | CONFIG_FEATURE_DD_SIGNAL_HANDLING=y 223 | # CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set 224 | CONFIG_FEATURE_DD_IBS_OBS=y 225 | CONFIG_FEATURE_DD_STATUS=y 226 | CONFIG_DF=y 227 | CONFIG_FEATURE_DF_FANCY=y 228 | CONFIG_DIRNAME=y 229 | CONFIG_DOS2UNIX=y 230 | CONFIG_UNIX2DOS=y 231 | CONFIG_DU=y 232 | CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y 233 | CONFIG_ECHO=y 234 | CONFIG_FEATURE_FANCY_ECHO=y 235 | CONFIG_ENV=y 236 | CONFIG_EXPAND=y 237 | CONFIG_UNEXPAND=y 238 | CONFIG_EXPR=y 239 | CONFIG_EXPR_MATH_SUPPORT_64=y 240 | CONFIG_FACTOR=y 241 | CONFIG_FALSE=y 242 | CONFIG_FOLD=y 243 | CONFIG_HEAD=y 244 | CONFIG_FEATURE_FANCY_HEAD=y 245 | CONFIG_HOSTID=y 246 | CONFIG_ID=y 247 | CONFIG_GROUPS=y 248 | CONFIG_INSTALL=y 249 | # CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set 250 | CONFIG_LINK=y 251 | CONFIG_LN=y 252 | # CONFIG_LOGNAME is not set 253 | CONFIG_LS=y 254 | CONFIG_FEATURE_LS_FILETYPES=y 255 | CONFIG_FEATURE_LS_FOLLOWLINKS=y 256 | CONFIG_FEATURE_LS_RECURSIVE=y 257 | CONFIG_FEATURE_LS_WIDTH=y 258 | CONFIG_FEATURE_LS_SORTFILES=y 259 | CONFIG_FEATURE_LS_TIMESTAMPS=y 260 | CONFIG_FEATURE_LS_USERNAME=y 261 | CONFIG_FEATURE_LS_COLOR=y 262 | CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y 263 | CONFIG_MD5SUM=y 264 | CONFIG_SHA1SUM=y 265 | CONFIG_SHA256SUM=y 266 | CONFIG_SHA512SUM=y 267 | CONFIG_SHA3SUM=y 268 | 269 | # 270 | # Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum 271 | # 272 | CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y 273 | CONFIG_MKDIR=y 274 | CONFIG_MKFIFO=y 275 | CONFIG_MKNOD=y 276 | CONFIG_MKTEMP=y 277 | CONFIG_MV=y 278 | CONFIG_NICE=y 279 | CONFIG_NL=y 280 | CONFIG_NOHUP=y 281 | CONFIG_NPROC=y 282 | CONFIG_OD=y 283 | CONFIG_PASTE=y 284 | CONFIG_PRINTENV=y 285 | CONFIG_PRINTF=y 286 | CONFIG_PWD=y 287 | CONFIG_READLINK=y 288 | CONFIG_FEATURE_READLINK_FOLLOW=y 289 | CONFIG_REALPATH=y 290 | CONFIG_RM=y 291 | CONFIG_RMDIR=y 292 | CONFIG_SEQ=y 293 | CONFIG_SHRED=y 294 | CONFIG_SHUF=y 295 | CONFIG_SLEEP=y 296 | CONFIG_FEATURE_FANCY_SLEEP=y 297 | CONFIG_SORT=y 298 | CONFIG_FEATURE_SORT_BIG=y 299 | # CONFIG_FEATURE_SORT_OPTIMIZE_MEMORY is not set 300 | CONFIG_SPLIT=y 301 | # CONFIG_FEATURE_SPLIT_FANCY is not set 302 | CONFIG_STAT=y 303 | CONFIG_FEATURE_STAT_FORMAT=y 304 | CONFIG_FEATURE_STAT_FILESYSTEM=y 305 | CONFIG_STTY=y 306 | CONFIG_SUM=y 307 | CONFIG_SYNC=y 308 | CONFIG_FEATURE_SYNC_FANCY=y 309 | CONFIG_FSYNC=y 310 | CONFIG_TAC=y 311 | CONFIG_TAIL=y 312 | CONFIG_FEATURE_FANCY_TAIL=y 313 | CONFIG_TEE=y 314 | CONFIG_FEATURE_TEE_USE_BLOCK_IO=y 315 | CONFIG_TEST=y 316 | CONFIG_TEST1=y 317 | CONFIG_TEST2=y 318 | CONFIG_FEATURE_TEST_64=y 319 | CONFIG_TIMEOUT=y 320 | CONFIG_TOUCH=y 321 | CONFIG_FEATURE_TOUCH_SUSV3=y 322 | CONFIG_TR=y 323 | CONFIG_FEATURE_TR_CLASSES=y 324 | CONFIG_FEATURE_TR_EQUIV=y 325 | CONFIG_TRUE=y 326 | CONFIG_TRUNCATE=y 327 | CONFIG_TTY=y 328 | CONFIG_UNAME=y 329 | CONFIG_UNAME_OSNAME="Linux" 330 | CONFIG_BB_ARCH=y 331 | CONFIG_UNIQ=y 332 | CONFIG_UNLINK=y 333 | CONFIG_USLEEP=y 334 | CONFIG_UUDECODE=y 335 | CONFIG_BASE32=y 336 | CONFIG_BASE64=y 337 | CONFIG_UUENCODE=y 338 | CONFIG_WC=y 339 | CONFIG_FEATURE_WC_LARGE=y 340 | # CONFIG_WHO is not set 341 | # CONFIG_W is not set 342 | # CONFIG_USERS is not set 343 | CONFIG_WHOAMI=y 344 | CONFIG_YES=y 345 | 346 | # 347 | # Common options 348 | # 349 | CONFIG_FEATURE_VERBOSE=y 350 | 351 | # 352 | # Common options for cp and mv 353 | # 354 | CONFIG_FEATURE_PRESERVE_HARDLINKS=y 355 | 356 | # 357 | # Common options for df, du, ls 358 | # 359 | CONFIG_FEATURE_HUMAN_READABLE=y 360 | 361 | # 362 | # Console Utilities 363 | # 364 | CONFIG_CHVT=y 365 | CONFIG_CLEAR=y 366 | CONFIG_DEALLOCVT=y 367 | CONFIG_DUMPKMAP=y 368 | # CONFIG_FGCONSOLE is not set 369 | CONFIG_KBD_MODE=y 370 | CONFIG_LOADFONT=y 371 | CONFIG_SETFONT=y 372 | CONFIG_FEATURE_SETFONT_TEXTUAL_MAP=y 373 | CONFIG_DEFAULT_SETFONT_DIR="/usr/share" 374 | 375 | # 376 | # Common options for loadfont and setfont 377 | # 378 | CONFIG_FEATURE_LOADFONT_PSF2=y 379 | CONFIG_FEATURE_LOADFONT_RAW=y 380 | CONFIG_LOADKMAP=y 381 | CONFIG_OPENVT=y 382 | CONFIG_RESET=y 383 | CONFIG_RESIZE=y 384 | CONFIG_FEATURE_RESIZE_PRINT=y 385 | CONFIG_SETCONSOLE=y 386 | # CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set 387 | CONFIG_SETKEYCODES=y 388 | CONFIG_SETLOGCONS=y 389 | CONFIG_SHOWKEY=y 390 | 391 | # 392 | # Debian Utilities 393 | # 394 | CONFIG_PIPE_PROGRESS=y 395 | CONFIG_RUN_PARTS=y 396 | CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y 397 | # CONFIG_FEATURE_RUN_PARTS_FANCY is not set 398 | # CONFIG_START_STOP_DAEMON is not set 399 | # CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set 400 | # CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set 401 | CONFIG_WHICH=y 402 | 403 | # 404 | # klibc-utils 405 | # 406 | # CONFIG_MINIPS is not set 407 | # CONFIG_NUKE is not set 408 | # CONFIG_RESUME is not set 409 | # CONFIG_RUN_INIT is not set 410 | 411 | # 412 | # Editors 413 | # 414 | CONFIG_AWK=y 415 | CONFIG_FEATURE_AWK_LIBM=y 416 | CONFIG_FEATURE_AWK_GNU_EXTENSIONS=y 417 | CONFIG_CMP=y 418 | CONFIG_DIFF=y 419 | CONFIG_FEATURE_DIFF_LONG_OPTIONS=y 420 | CONFIG_FEATURE_DIFF_DIR=y 421 | CONFIG_ED=y 422 | # CONFIG_PATCH is not set 423 | CONFIG_SED=y 424 | CONFIG_VI=y 425 | CONFIG_FEATURE_VI_MAX_LEN=1024 426 | CONFIG_FEATURE_VI_8BIT=y 427 | CONFIG_FEATURE_VI_COLON=y 428 | CONFIG_FEATURE_VI_COLON_EXPAND=y 429 | CONFIG_FEATURE_VI_YANKMARK=y 430 | CONFIG_FEATURE_VI_SEARCH=y 431 | # CONFIG_FEATURE_VI_REGEX_SEARCH is not set 432 | CONFIG_FEATURE_VI_USE_SIGNALS=y 433 | CONFIG_FEATURE_VI_DOT_CMD=y 434 | CONFIG_FEATURE_VI_READONLY=y 435 | CONFIG_FEATURE_VI_SETOPTS=y 436 | CONFIG_FEATURE_VI_SET=y 437 | CONFIG_FEATURE_VI_WIN_RESIZE=y 438 | CONFIG_FEATURE_VI_ASK_TERMINAL=y 439 | CONFIG_FEATURE_VI_UNDO=y 440 | CONFIG_FEATURE_VI_UNDO_QUEUE=y 441 | CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=256 442 | CONFIG_FEATURE_VI_VERBOSE_STATUS=y 443 | CONFIG_FEATURE_ALLOW_EXEC=y 444 | 445 | # 446 | # Finding Utilities 447 | # 448 | CONFIG_FIND=y 449 | CONFIG_FEATURE_FIND_PRINT0=y 450 | CONFIG_FEATURE_FIND_MTIME=y 451 | CONFIG_FEATURE_FIND_MMIN=y 452 | CONFIG_FEATURE_FIND_PERM=y 453 | CONFIG_FEATURE_FIND_TYPE=y 454 | CONFIG_FEATURE_FIND_EXECUTABLE=y 455 | CONFIG_FEATURE_FIND_XDEV=y 456 | CONFIG_FEATURE_FIND_MAXDEPTH=y 457 | CONFIG_FEATURE_FIND_NEWER=y 458 | CONFIG_FEATURE_FIND_INUM=y 459 | CONFIG_FEATURE_FIND_EXEC=y 460 | CONFIG_FEATURE_FIND_EXEC_PLUS=y 461 | CONFIG_FEATURE_FIND_USER=y 462 | CONFIG_FEATURE_FIND_GROUP=y 463 | CONFIG_FEATURE_FIND_NOT=y 464 | CONFIG_FEATURE_FIND_DEPTH=y 465 | CONFIG_FEATURE_FIND_PAREN=y 466 | CONFIG_FEATURE_FIND_SIZE=y 467 | CONFIG_FEATURE_FIND_PRUNE=y 468 | CONFIG_FEATURE_FIND_QUIT=y 469 | CONFIG_FEATURE_FIND_DELETE=y 470 | CONFIG_FEATURE_FIND_EMPTY=y 471 | CONFIG_FEATURE_FIND_PATH=y 472 | CONFIG_FEATURE_FIND_REGEX=y 473 | # CONFIG_FEATURE_FIND_CONTEXT is not set 474 | CONFIG_FEATURE_FIND_LINKS=y 475 | CONFIG_GREP=y 476 | CONFIG_EGREP=y 477 | CONFIG_FGREP=y 478 | CONFIG_FEATURE_GREP_CONTEXT=y 479 | CONFIG_XARGS=y 480 | CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y 481 | CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y 482 | CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y 483 | CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y 484 | CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR=y 485 | CONFIG_FEATURE_XARGS_SUPPORT_PARALLEL=y 486 | CONFIG_FEATURE_XARGS_SUPPORT_ARGS_FILE=y 487 | 488 | # 489 | # Init Utilities 490 | # 491 | # CONFIG_BOOTCHARTD is not set 492 | # CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set 493 | # CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set 494 | CONFIG_HALT=y 495 | CONFIG_POWEROFF=y 496 | CONFIG_REBOOT=y 497 | CONFIG_FEATURE_WAIT_FOR_INIT=y 498 | # CONFIG_FEATURE_CALL_TELINIT is not set 499 | CONFIG_TELINIT_PATH="" 500 | CONFIG_INIT=y 501 | CONFIG_LINUXRC=y 502 | CONFIG_FEATURE_USE_INITTAB=y 503 | CONFIG_FEATURE_KILL_REMOVED=y 504 | CONFIG_FEATURE_KILL_DELAY=0 505 | CONFIG_FEATURE_INIT_SCTTY=y 506 | CONFIG_FEATURE_INIT_SYSLOG=y 507 | CONFIG_FEATURE_INIT_QUIET=y 508 | # CONFIG_FEATURE_INIT_COREDUMPS is not set 509 | CONFIG_INIT_TERMINAL_TYPE="linux" 510 | # CONFIG_FEATURE_INIT_MODIFY_CMDLINE is not set 511 | 512 | # 513 | # Login/Password Management Utilities 514 | # 515 | # CONFIG_FEATURE_SHADOWPASSWDS is not set 516 | CONFIG_USE_BB_PWD_GRP=y 517 | # CONFIG_USE_BB_SHADOW is not set 518 | CONFIG_USE_BB_CRYPT=y 519 | CONFIG_USE_BB_CRYPT_SHA=y 520 | CONFIG_ADD_SHELL=y 521 | CONFIG_REMOVE_SHELL=y 522 | CONFIG_ADDGROUP=y 523 | CONFIG_FEATURE_ADDUSER_TO_GROUP=y 524 | CONFIG_ADDUSER=y 525 | CONFIG_FEATURE_CHECK_NAMES=y 526 | CONFIG_LAST_ID=256000 527 | CONFIG_FIRST_SYSTEM_ID=100 528 | CONFIG_LAST_SYSTEM_ID=999 529 | CONFIG_CHPASSWD=y 530 | CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="sha512" 531 | CONFIG_CRYPTPW=y 532 | CONFIG_MKPASSWD=y 533 | CONFIG_DELUSER=y 534 | CONFIG_DELGROUP=y 535 | CONFIG_FEATURE_DEL_USER_FROM_GROUP=y 536 | CONFIG_GETTY=y 537 | CONFIG_LOGIN=y 538 | CONFIG_LOGIN_SESSION_AS_CHILD=y 539 | CONFIG_LOGIN_SCRIPTS=y 540 | CONFIG_FEATURE_NOLOGIN=y 541 | CONFIG_FEATURE_SECURETTY=y 542 | CONFIG_PASSWD=y 543 | # CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set 544 | CONFIG_SU=y 545 | CONFIG_FEATURE_SU_SYSLOG=y 546 | # CONFIG_FEATURE_SU_CHECKS_SHELLS is not set 547 | # CONFIG_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY is not set 548 | # CONFIG_SULOGIN is not set 549 | CONFIG_VLOCK=y 550 | 551 | # 552 | # Linux Ext2 FS Progs 553 | # 554 | # CONFIG_CHATTR is not set 555 | CONFIG_FSCK=y 556 | # CONFIG_LSATTR is not set 557 | # CONFIG_TUNE2FS is not set 558 | 559 | # 560 | # Linux Module Utilities 561 | # 562 | # CONFIG_MODPROBE_SMALL is not set 563 | CONFIG_DEPMOD=y 564 | CONFIG_INSMOD=y 565 | CONFIG_LSMOD=y 566 | CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y 567 | CONFIG_MODINFO=y 568 | CONFIG_MODPROBE=y 569 | CONFIG_FEATURE_MODPROBE_BLACKLIST=y 570 | CONFIG_RMMOD=y 571 | 572 | # 573 | # Options common to multiple modutils 574 | # 575 | CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS=y 576 | # CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set 577 | # CONFIG_FEATURE_2_4_MODULES is not set 578 | # CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set 579 | # CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set 580 | # CONFIG_FEATURE_INSMOD_LOADINKMEM is not set 581 | # CONFIG_FEATURE_INSMOD_LOAD_MAP is not set 582 | # CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set 583 | CONFIG_FEATURE_CHECK_TAINTED_MODULE=y 584 | # CONFIG_FEATURE_INSMOD_TRY_MMAP is not set 585 | CONFIG_FEATURE_MODUTILS_ALIAS=y 586 | CONFIG_FEATURE_MODUTILS_SYMBOLS=y 587 | CONFIG_DEFAULT_MODULES_DIR="/lib/modules" 588 | CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" 589 | 590 | # 591 | # Linux System Utilities 592 | # 593 | CONFIG_ACPID=y 594 | CONFIG_FEATURE_ACPID_COMPAT=y 595 | CONFIG_BLKDISCARD=y 596 | CONFIG_BLKID=y 597 | CONFIG_FEATURE_BLKID_TYPE=y 598 | CONFIG_BLOCKDEV=y 599 | CONFIG_CAL=y 600 | # CONFIG_CHRT is not set 601 | CONFIG_DMESG=y 602 | CONFIG_FEATURE_DMESG_PRETTY=y 603 | CONFIG_EJECT=y 604 | CONFIG_FEATURE_EJECT_SCSI=y 605 | CONFIG_FALLOCATE=y 606 | CONFIG_FATATTR=y 607 | CONFIG_FBSET=y 608 | CONFIG_FEATURE_FBSET_FANCY=y 609 | CONFIG_FEATURE_FBSET_READMODE=y 610 | CONFIG_FDFORMAT=y 611 | CONFIG_FDISK=y 612 | # CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set 613 | CONFIG_FEATURE_FDISK_WRITABLE=y 614 | CONFIG_FEATURE_AIX_LABEL=y 615 | CONFIG_FEATURE_SGI_LABEL=y 616 | CONFIG_FEATURE_SUN_LABEL=y 617 | CONFIG_FEATURE_OSF_LABEL=y 618 | CONFIG_FEATURE_GPT_LABEL=y 619 | CONFIG_FEATURE_FDISK_ADVANCED=y 620 | CONFIG_FINDFS=y 621 | CONFIG_FLOCK=y 622 | CONFIG_FDFLUSH=y 623 | # CONFIG_FREERAMDISK is not set 624 | # CONFIG_FSCK_MINIX is not set 625 | # CONFIG_FSFREEZE is not set 626 | CONFIG_FSTRIM=y 627 | CONFIG_GETOPT=y 628 | CONFIG_FEATURE_GETOPT_LONG=y 629 | CONFIG_HEXDUMP=y 630 | CONFIG_HD=y 631 | CONFIG_XXD=y 632 | CONFIG_HWCLOCK=y 633 | CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y 634 | CONFIG_IONICE=y 635 | CONFIG_IPCRM=y 636 | CONFIG_IPCS=y 637 | # CONFIG_LAST is not set 638 | # CONFIG_FEATURE_LAST_FANCY is not set 639 | CONFIG_LOSETUP=y 640 | CONFIG_LSPCI=y 641 | CONFIG_LSUSB=y 642 | CONFIG_MDEV=y 643 | CONFIG_FEATURE_MDEV_CONF=y 644 | CONFIG_FEATURE_MDEV_RENAME=y 645 | CONFIG_FEATURE_MDEV_RENAME_REGEXP=y 646 | CONFIG_FEATURE_MDEV_EXEC=y 647 | CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y 648 | # CONFIG_FEATURE_MDEV_DAEMON is not set 649 | CONFIG_MESG=y 650 | CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y 651 | # CONFIG_MKE2FS is not set 652 | # CONFIG_MKFS_EXT2 is not set 653 | # CONFIG_MKFS_MINIX is not set 654 | # CONFIG_FEATURE_MINIX2 is not set 655 | # CONFIG_MKFS_REISER is not set 656 | CONFIG_MKDOSFS=y 657 | CONFIG_MKFS_VFAT=y 658 | CONFIG_MKSWAP=y 659 | CONFIG_FEATURE_MKSWAP_UUID=y 660 | CONFIG_MORE=y 661 | CONFIG_MOUNT=y 662 | CONFIG_FEATURE_MOUNT_FAKE=y 663 | CONFIG_FEATURE_MOUNT_VERBOSE=y 664 | CONFIG_FEATURE_MOUNT_HELPERS=y 665 | CONFIG_FEATURE_MOUNT_LABEL=y 666 | # CONFIG_FEATURE_MOUNT_NFS is not set 667 | CONFIG_FEATURE_MOUNT_CIFS=y 668 | CONFIG_FEATURE_MOUNT_FLAGS=y 669 | CONFIG_FEATURE_MOUNT_FSTAB=y 670 | # CONFIG_FEATURE_MOUNT_OTHERTAB is not set 671 | CONFIG_MOUNTPOINT=y 672 | CONFIG_NOLOGIN=y 673 | CONFIG_NOLOGIN_DEPENDENCIES=y 674 | CONFIG_NSENTER=y 675 | CONFIG_PIVOT_ROOT=y 676 | CONFIG_RDATE=y 677 | CONFIG_RDEV=y 678 | CONFIG_READPROFILE=y 679 | CONFIG_RENICE=y 680 | CONFIG_REV=y 681 | # CONFIG_RTCWAKE is not set 682 | # CONFIG_SCRIPT is not set 683 | # CONFIG_SCRIPTREPLAY is not set 684 | # CONFIG_SETARCH is not set 685 | CONFIG_LINUX32=y 686 | CONFIG_LINUX64=y 687 | CONFIG_SETPRIV=y 688 | CONFIG_FEATURE_SETPRIV_DUMP=y 689 | CONFIG_FEATURE_SETPRIV_CAPABILITIES=y 690 | CONFIG_FEATURE_SETPRIV_CAPABILITY_NAMES=y 691 | CONFIG_SETSID=y 692 | CONFIG_SWAPON=y 693 | CONFIG_FEATURE_SWAPON_DISCARD=y 694 | CONFIG_FEATURE_SWAPON_PRI=y 695 | CONFIG_SWAPOFF=y 696 | CONFIG_FEATURE_SWAPONOFF_LABEL=y 697 | CONFIG_SWITCH_ROOT=y 698 | # CONFIG_TASKSET is not set 699 | # CONFIG_FEATURE_TASKSET_FANCY is not set 700 | # CONFIG_FEATURE_TASKSET_CPULIST is not set 701 | # CONFIG_UEVENT is not set 702 | CONFIG_UMOUNT=y 703 | CONFIG_FEATURE_UMOUNT_ALL=y 704 | CONFIG_UNSHARE=y 705 | # CONFIG_WALL is not set 706 | 707 | # 708 | # Common options for mount/umount 709 | # 710 | CONFIG_FEATURE_MOUNT_LOOP=y 711 | CONFIG_FEATURE_MOUNT_LOOP_CREATE=y 712 | # CONFIG_FEATURE_MTAB_SUPPORT is not set 713 | CONFIG_VOLUMEID=y 714 | 715 | # 716 | # Filesystem/Volume identification 717 | # 718 | CONFIG_FEATURE_VOLUMEID_BCACHE=y 719 | CONFIG_FEATURE_VOLUMEID_BTRFS=y 720 | CONFIG_FEATURE_VOLUMEID_CRAMFS=y 721 | CONFIG_FEATURE_VOLUMEID_EROFS=y 722 | CONFIG_FEATURE_VOLUMEID_EXFAT=y 723 | CONFIG_FEATURE_VOLUMEID_EXT=y 724 | CONFIG_FEATURE_VOLUMEID_F2FS=y 725 | CONFIG_FEATURE_VOLUMEID_FAT=y 726 | # CONFIG_FEATURE_VOLUMEID_HFS is not set 727 | CONFIG_FEATURE_VOLUMEID_ISO9660=y 728 | CONFIG_FEATURE_VOLUMEID_JFS=y 729 | CONFIG_FEATURE_VOLUMEID_LFS=y 730 | CONFIG_FEATURE_VOLUMEID_LINUXRAID=y 731 | CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y 732 | CONFIG_FEATURE_VOLUMEID_LUKS=y 733 | CONFIG_FEATURE_VOLUMEID_MINIX=y 734 | CONFIG_FEATURE_VOLUMEID_NILFS=y 735 | CONFIG_FEATURE_VOLUMEID_NTFS=y 736 | CONFIG_FEATURE_VOLUMEID_OCFS2=y 737 | CONFIG_FEATURE_VOLUMEID_REISERFS=y 738 | # CONFIG_FEATURE_VOLUMEID_ROMFS is not set 739 | CONFIG_FEATURE_VOLUMEID_SQUASHFS=y 740 | # CONFIG_FEATURE_VOLUMEID_SYSV is not set 741 | CONFIG_FEATURE_VOLUMEID_UBIFS=y 742 | CONFIG_FEATURE_VOLUMEID_UDF=y 743 | CONFIG_FEATURE_VOLUMEID_XFS=y 744 | 745 | # 746 | # Miscellaneous Utilities 747 | # 748 | CONFIG_ADJTIMEX=y 749 | CONFIG_ASCII=y 750 | CONFIG_BBCONFIG=y 751 | CONFIG_FEATURE_COMPRESS_BBCONFIG=y 752 | CONFIG_BC=y 753 | CONFIG_DC=y 754 | CONFIG_FEATURE_DC_BIG=y 755 | # CONFIG_FEATURE_DC_LIBM is not set 756 | CONFIG_FEATURE_BC_INTERACTIVE=y 757 | CONFIG_FEATURE_BC_LONG_OPTIONS=y 758 | CONFIG_BEEP=y 759 | CONFIG_FEATURE_BEEP_FREQ=440 760 | CONFIG_FEATURE_BEEP_LENGTH_MS=30 761 | # CONFIG_CHAT is not set 762 | # CONFIG_FEATURE_CHAT_NOFAIL is not set 763 | # CONFIG_FEATURE_CHAT_TTY_HIFI is not set 764 | # CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set 765 | # CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set 766 | # CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set 767 | # CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set 768 | # CONFIG_FEATURE_CHAT_CLR_ABORT is not set 769 | CONFIG_CONSPY=y 770 | CONFIG_CROND=y 771 | CONFIG_FEATURE_CROND_D=y 772 | CONFIG_FEATURE_CROND_CALL_SENDMAIL=y 773 | CONFIG_FEATURE_CROND_SPECIAL_TIMES=y 774 | CONFIG_FEATURE_CROND_DIR="/var/spool/cron" 775 | CONFIG_CRONTAB=y 776 | # CONFIG_DEVFSD is not set 777 | # CONFIG_DEVFSD_MODLOAD is not set 778 | # CONFIG_DEVFSD_FG_NP is not set 779 | # CONFIG_DEVFSD_VERBOSE is not set 780 | # CONFIG_FEATURE_DEVFS is not set 781 | # CONFIG_DEVMEM is not set 782 | CONFIG_FBSPLASH=y 783 | # CONFIG_FLASH_ERASEALL is not set 784 | # CONFIG_FLASH_LOCK is not set 785 | # CONFIG_FLASH_UNLOCK is not set 786 | # CONFIG_FLASHCP is not set 787 | CONFIG_HDPARM=y 788 | # CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set 789 | # CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set 790 | # CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set 791 | # CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set 792 | # CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set 793 | # CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set 794 | # CONFIG_HEXEDIT is not set 795 | # CONFIG_I2CGET is not set 796 | # CONFIG_I2CSET is not set 797 | # CONFIG_I2CDUMP is not set 798 | # CONFIG_I2CDETECT is not set 799 | # CONFIG_I2CTRANSFER is not set 800 | CONFIG_INOTIFYD=y 801 | CONFIG_LESS=y 802 | CONFIG_FEATURE_LESS_MAXLINES=9999999 803 | CONFIG_FEATURE_LESS_BRACKETS=y 804 | CONFIG_FEATURE_LESS_FLAGS=y 805 | CONFIG_FEATURE_LESS_TRUNCATE=y 806 | CONFIG_FEATURE_LESS_MARKS=y 807 | CONFIG_FEATURE_LESS_REGEXP=y 808 | CONFIG_FEATURE_LESS_WINCH=y 809 | CONFIG_FEATURE_LESS_ASK_TERMINAL=y 810 | CONFIG_FEATURE_LESS_DASHCMD=y 811 | CONFIG_FEATURE_LESS_LINENUMS=y 812 | CONFIG_FEATURE_LESS_RAW=y 813 | CONFIG_FEATURE_LESS_ENV=y 814 | # CONFIG_LSSCSI is not set 815 | # CONFIG_MAKEDEVS is not set 816 | # CONFIG_FEATURE_MAKEDEVS_LEAF is not set 817 | # CONFIG_FEATURE_MAKEDEVS_TABLE is not set 818 | # CONFIG_MAN is not set 819 | CONFIG_MICROCOM=y 820 | # CONFIG_MIM is not set 821 | # CONFIG_MT is not set 822 | CONFIG_NANDWRITE=y 823 | CONFIG_NANDDUMP=y 824 | CONFIG_PARTPROBE=y 825 | CONFIG_RAIDAUTORUN=y 826 | CONFIG_READAHEAD=y 827 | CONFIG_RFKILL=y 828 | # CONFIG_RUNLEVEL is not set 829 | # CONFIG_RX is not set 830 | # CONFIG_SETFATTR is not set 831 | CONFIG_SETSERIAL=y 832 | CONFIG_STRINGS=y 833 | CONFIG_TIME=y 834 | # CONFIG_TS is not set 835 | CONFIG_TTYSIZE=y 836 | # CONFIG_UBIATTACH is not set 837 | # CONFIG_UBIDETACH is not set 838 | # CONFIG_UBIMKVOL is not set 839 | # CONFIG_UBIRMVOL is not set 840 | # CONFIG_UBIRSVOL is not set 841 | # CONFIG_UBIUPDATEVOL is not set 842 | # CONFIG_UBIRENAME is not set 843 | CONFIG_VOLNAME=y 844 | CONFIG_WATCHDOG=y 845 | # CONFIG_FEATURE_WATCHDOG_OPEN_TWICE is not set 846 | 847 | # 848 | # Networking Utilities 849 | # 850 | CONFIG_FEATURE_IPV6=y 851 | CONFIG_FEATURE_UNIX_LOCAL=y 852 | # CONFIG_FEATURE_PREFER_IPV4_ADDRESS is not set 853 | CONFIG_VERBOSE_RESOLUTION_ERRORS=y 854 | # CONFIG_FEATURE_TLS_SHA1 is not set 855 | CONFIG_ARP=y 856 | CONFIG_ARPING=y 857 | CONFIG_BRCTL=y 858 | CONFIG_FEATURE_BRCTL_FANCY=y 859 | CONFIG_FEATURE_BRCTL_SHOW=y 860 | # CONFIG_DNSD is not set 861 | CONFIG_ETHER_WAKE=y 862 | # CONFIG_FTPD is not set 863 | # CONFIG_FEATURE_FTPD_WRITE is not set 864 | # CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST is not set 865 | # CONFIG_FEATURE_FTPD_AUTHENTICATION is not set 866 | # CONFIG_FTPGET is not set 867 | # CONFIG_FTPPUT is not set 868 | # CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set 869 | CONFIG_HOSTNAME=y 870 | CONFIG_DNSDOMAINNAME=y 871 | # CONFIG_HTTPD is not set 872 | # CONFIG_FEATURE_HTTPD_RANGES is not set 873 | # CONFIG_FEATURE_HTTPD_SETUID is not set 874 | # CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set 875 | # CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set 876 | # CONFIG_FEATURE_HTTPD_CGI is not set 877 | # CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set 878 | # CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set 879 | # CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set 880 | # CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set 881 | # CONFIG_FEATURE_HTTPD_PROXY is not set 882 | # CONFIG_FEATURE_HTTPD_GZIP is not set 883 | # CONFIG_FEATURE_HTTPD_ETAG is not set 884 | # CONFIG_FEATURE_HTTPD_LAST_MODIFIED is not set 885 | # CONFIG_FEATURE_HTTPD_DATE is not set 886 | # CONFIG_FEATURE_HTTPD_ACL_IP is not set 887 | CONFIG_IFCONFIG=y 888 | CONFIG_FEATURE_IFCONFIG_STATUS=y 889 | CONFIG_FEATURE_IFCONFIG_SLIP=y 890 | CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y 891 | CONFIG_FEATURE_IFCONFIG_HW=y 892 | CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y 893 | CONFIG_IFENSLAVE=y 894 | # CONFIG_IFPLUGD is not set 895 | CONFIG_IFUP=y 896 | CONFIG_IFDOWN=y 897 | CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" 898 | CONFIG_FEATURE_IFUPDOWN_IP=y 899 | CONFIG_FEATURE_IFUPDOWN_IPV4=y 900 | CONFIG_FEATURE_IFUPDOWN_IPV6=y 901 | # CONFIG_FEATURE_IFUPDOWN_MAPPING is not set 902 | CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP=y 903 | # CONFIG_INETD is not set 904 | # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set 905 | # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set 906 | # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set 907 | # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set 908 | # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set 909 | # CONFIG_FEATURE_INETD_RPC is not set 910 | CONFIG_IP=y 911 | CONFIG_IPADDR=y 912 | CONFIG_IPLINK=y 913 | CONFIG_IPROUTE=y 914 | CONFIG_IPTUNNEL=y 915 | CONFIG_IPRULE=y 916 | CONFIG_IPNEIGH=y 917 | CONFIG_FEATURE_IP_ADDRESS=y 918 | CONFIG_FEATURE_IP_LINK=y 919 | CONFIG_FEATURE_IP_ROUTE=y 920 | CONFIG_FEATURE_IP_ROUTE_DIR="/etc/iproute2" 921 | CONFIG_FEATURE_IP_TUNNEL=y 922 | CONFIG_FEATURE_IP_RULE=y 923 | CONFIG_FEATURE_IP_NEIGH=y 924 | CONFIG_FEATURE_IP_RARE_PROTOCOLS=y 925 | CONFIG_IPCALC=y 926 | # CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set 927 | CONFIG_FEATURE_IPCALC_FANCY=y 928 | # CONFIG_FAKEIDENTD is not set 929 | CONFIG_NAMEIF=y 930 | CONFIG_FEATURE_NAMEIF_EXTENDED=y 931 | CONFIG_NBDCLIENT=y 932 | CONFIG_NC=y 933 | # CONFIG_NETCAT is not set 934 | CONFIG_NC_SERVER=y 935 | CONFIG_NC_EXTRA=y 936 | CONFIG_NC_110_COMPAT=y 937 | CONFIG_NETSTAT=y 938 | CONFIG_FEATURE_NETSTAT_WIDE=y 939 | CONFIG_FEATURE_NETSTAT_PRG=y 940 | CONFIG_NSLOOKUP=y 941 | CONFIG_FEATURE_NSLOOKUP_BIG=y 942 | CONFIG_FEATURE_NSLOOKUP_LONG_OPTIONS=y 943 | CONFIG_NTPD=y 944 | CONFIG_FEATURE_NTPD_SERVER=y 945 | CONFIG_FEATURE_NTPD_CONF=y 946 | CONFIG_FEATURE_NTP_AUTH=y 947 | CONFIG_PING=y 948 | CONFIG_PING6=y 949 | CONFIG_FEATURE_FANCY_PING=y 950 | CONFIG_PSCAN=y 951 | CONFIG_ROUTE=y 952 | CONFIG_SLATTACH=y 953 | # CONFIG_SSL_CLIENT is not set 954 | # CONFIG_TC is not set 955 | # CONFIG_FEATURE_TC_INGRESS is not set 956 | # CONFIG_TCPSVD is not set 957 | # CONFIG_UDPSVD is not set 958 | # CONFIG_TELNET is not set 959 | # CONFIG_FEATURE_TELNET_TTYPE is not set 960 | # CONFIG_FEATURE_TELNET_AUTOLOGIN is not set 961 | # CONFIG_FEATURE_TELNET_WIDTH is not set 962 | # CONFIG_TELNETD is not set 963 | # CONFIG_FEATURE_TELNETD_STANDALONE is not set 964 | # CONFIG_FEATURE_TELNETD_INETD_WAIT is not set 965 | # CONFIG_TFTP is not set 966 | # CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set 967 | # CONFIG_FEATURE_TFTP_HPA_COMPAT is not set 968 | # CONFIG_TFTPD is not set 969 | # CONFIG_FEATURE_TFTP_GET is not set 970 | # CONFIG_FEATURE_TFTP_PUT is not set 971 | # CONFIG_FEATURE_TFTP_BLOCKSIZE is not set 972 | # CONFIG_TFTP_DEBUG is not set 973 | CONFIG_TLS=y 974 | CONFIG_TRACEROUTE=y 975 | CONFIG_TRACEROUTE6=y 976 | CONFIG_FEATURE_TRACEROUTE_VERBOSE=y 977 | CONFIG_FEATURE_TRACEROUTE_USE_ICMP=y 978 | CONFIG_TUNCTL=y 979 | CONFIG_FEATURE_TUNCTL_UG=y 980 | CONFIG_VCONFIG=y 981 | CONFIG_WGET=y 982 | CONFIG_FEATURE_WGET_LONG_OPTIONS=y 983 | CONFIG_FEATURE_WGET_STATUSBAR=y 984 | # CONFIG_FEATURE_WGET_FTP is not set 985 | CONFIG_FEATURE_WGET_AUTHENTICATION=y 986 | CONFIG_FEATURE_WGET_TIMEOUT=y 987 | CONFIG_FEATURE_WGET_HTTPS=y 988 | # CONFIG_FEATURE_WGET_OPENSSL is not set 989 | CONFIG_WHOIS=y 990 | # CONFIG_ZCIP is not set 991 | # CONFIG_UDHCPD is not set 992 | # CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set 993 | # CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set 994 | CONFIG_DHCPD_LEASES_FILE="" 995 | CONFIG_DUMPLEASES=y 996 | # CONFIG_DHCPRELAY is not set 997 | CONFIG_UDHCPC=y 998 | CONFIG_FEATURE_UDHCPC_ARPING=y 999 | CONFIG_FEATURE_UDHCPC_SANITIZEOPT=y 1000 | CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script" 1001 | CONFIG_UDHCPC6=y 1002 | CONFIG_FEATURE_UDHCPC6_RFC3646=y 1003 | CONFIG_FEATURE_UDHCPC6_RFC4704=y 1004 | CONFIG_FEATURE_UDHCPC6_RFC4833=y 1005 | CONFIG_FEATURE_UDHCPC6_RFC5970=y 1006 | 1007 | # 1008 | # Common options for DHCP applets 1009 | # 1010 | CONFIG_UDHCPC_DEFAULT_INTERFACE="eth0" 1011 | # CONFIG_FEATURE_UDHCP_PORT is not set 1012 | CONFIG_UDHCP_DEBUG=0 1013 | CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80 1014 | CONFIG_FEATURE_UDHCP_RFC3397=y 1015 | CONFIG_FEATURE_UDHCP_8021Q=y 1016 | CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-b -R" 1017 | 1018 | # 1019 | # Print Utilities 1020 | # 1021 | # CONFIG_LPD is not set 1022 | # CONFIG_LPR is not set 1023 | # CONFIG_LPQ is not set 1024 | 1025 | # 1026 | # Mail Utilities 1027 | # 1028 | CONFIG_MAKEMIME=y 1029 | # CONFIG_POPMAILDIR is not set 1030 | # CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set 1031 | CONFIG_REFORMIME=y 1032 | CONFIG_FEATURE_REFORMIME_COMPAT=y 1033 | CONFIG_SENDMAIL=y 1034 | CONFIG_FEATURE_MIME_CHARSET="us-ascii" 1035 | 1036 | # 1037 | # Process Utilities 1038 | # 1039 | CONFIG_FREE=y 1040 | CONFIG_FUSER=y 1041 | CONFIG_IOSTAT=y 1042 | CONFIG_KILL=y 1043 | CONFIG_KILLALL=y 1044 | CONFIG_KILLALL5=y 1045 | CONFIG_LSOF=y 1046 | CONFIG_MPSTAT=y 1047 | CONFIG_NMETER=y 1048 | CONFIG_PGREP=y 1049 | CONFIG_PKILL=y 1050 | CONFIG_PIDOF=y 1051 | CONFIG_FEATURE_PIDOF_SINGLE=y 1052 | CONFIG_FEATURE_PIDOF_OMIT=y 1053 | CONFIG_PMAP=y 1054 | CONFIG_POWERTOP=y 1055 | CONFIG_FEATURE_POWERTOP_INTERACTIVE=y 1056 | CONFIG_PS=y 1057 | # CONFIG_FEATURE_PS_WIDE is not set 1058 | # CONFIG_FEATURE_PS_LONG is not set 1059 | CONFIG_FEATURE_PS_TIME=y 1060 | # CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set 1061 | CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS=y 1062 | CONFIG_PSTREE=y 1063 | CONFIG_PWDX=y 1064 | CONFIG_SMEMCAP=y 1065 | CONFIG_BB_SYSCTL=y 1066 | CONFIG_TOP=y 1067 | CONFIG_FEATURE_TOP_INTERACTIVE=y 1068 | CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y 1069 | CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y 1070 | CONFIG_FEATURE_TOP_SMP_CPU=y 1071 | # CONFIG_FEATURE_TOP_DECIMALS is not set 1072 | CONFIG_FEATURE_TOP_SMP_PROCESS=y 1073 | CONFIG_FEATURE_TOPMEM=y 1074 | CONFIG_UPTIME=y 1075 | # CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set 1076 | CONFIG_WATCH=y 1077 | # CONFIG_FEATURE_SHOW_THREADS is not set 1078 | 1079 | # 1080 | # Runit Utilities 1081 | # 1082 | # CONFIG_CHPST is not set 1083 | # CONFIG_SETUIDGID is not set 1084 | # CONFIG_ENVUIDGID is not set 1085 | # CONFIG_ENVDIR is not set 1086 | # CONFIG_SOFTLIMIT is not set 1087 | # CONFIG_RUNSV is not set 1088 | # CONFIG_RUNSVDIR is not set 1089 | # CONFIG_FEATURE_RUNSVDIR_LOG is not set 1090 | # CONFIG_SV is not set 1091 | CONFIG_SV_DEFAULT_SERVICE_DIR="" 1092 | # CONFIG_SVC is not set 1093 | # CONFIG_SVOK is not set 1094 | # CONFIG_SVLOGD is not set 1095 | # CONFIG_CHCON is not set 1096 | # CONFIG_GETENFORCE is not set 1097 | # CONFIG_GETSEBOOL is not set 1098 | # CONFIG_LOAD_POLICY is not set 1099 | # CONFIG_MATCHPATHCON is not set 1100 | # CONFIG_RUNCON is not set 1101 | # CONFIG_SELINUXENABLED is not set 1102 | # CONFIG_SESTATUS is not set 1103 | # CONFIG_SETENFORCE is not set 1104 | # CONFIG_SETFILES is not set 1105 | # CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set 1106 | # CONFIG_RESTORECON is not set 1107 | # CONFIG_SETSEBOOL is not set 1108 | 1109 | # 1110 | # Shells 1111 | # 1112 | CONFIG_SH_IS_ASH=y 1113 | # CONFIG_SH_IS_HUSH is not set 1114 | # CONFIG_SH_IS_NONE is not set 1115 | # CONFIG_BASH_IS_ASH is not set 1116 | # CONFIG_BASH_IS_HUSH is not set 1117 | CONFIG_BASH_IS_NONE=y 1118 | CONFIG_SHELL_ASH=y 1119 | CONFIG_ASH=y 1120 | CONFIG_ASH_OPTIMIZE_FOR_SIZE=y 1121 | CONFIG_ASH_INTERNAL_GLOB=y 1122 | CONFIG_ASH_BASH_COMPAT=y 1123 | CONFIG_ASH_BASH_SOURCE_CURDIR=y 1124 | CONFIG_ASH_BASH_NOT_FOUND_HOOK=y 1125 | CONFIG_ASH_JOB_CONTROL=y 1126 | CONFIG_ASH_ALIAS=y 1127 | CONFIG_ASH_RANDOM_SUPPORT=y 1128 | CONFIG_ASH_EXPAND_PRMT=y 1129 | CONFIG_ASH_IDLE_TIMEOUT=y 1130 | CONFIG_ASH_MAIL=y 1131 | CONFIG_ASH_ECHO=y 1132 | CONFIG_ASH_PRINTF=y 1133 | CONFIG_ASH_TEST=y 1134 | CONFIG_ASH_HELP=y 1135 | CONFIG_ASH_GETOPTS=y 1136 | CONFIG_ASH_CMDCMD=y 1137 | # CONFIG_CTTYHACK is not set 1138 | # CONFIG_HUSH is not set 1139 | # CONFIG_SHELL_HUSH is not set 1140 | # CONFIG_HUSH_BASH_COMPAT is not set 1141 | # CONFIG_HUSH_BRACE_EXPANSION is not set 1142 | # CONFIG_HUSH_BASH_SOURCE_CURDIR is not set 1143 | # CONFIG_HUSH_LINENO_VAR is not set 1144 | # CONFIG_HUSH_INTERACTIVE is not set 1145 | # CONFIG_HUSH_SAVEHISTORY is not set 1146 | # CONFIG_HUSH_JOB is not set 1147 | # CONFIG_HUSH_TICK is not set 1148 | # CONFIG_HUSH_IF is not set 1149 | # CONFIG_HUSH_LOOPS is not set 1150 | # CONFIG_HUSH_CASE is not set 1151 | # CONFIG_HUSH_FUNCTIONS is not set 1152 | # CONFIG_HUSH_LOCAL is not set 1153 | # CONFIG_HUSH_RANDOM_SUPPORT is not set 1154 | # CONFIG_HUSH_MODE_X is not set 1155 | # CONFIG_HUSH_ECHO is not set 1156 | # CONFIG_HUSH_PRINTF is not set 1157 | # CONFIG_HUSH_TEST is not set 1158 | # CONFIG_HUSH_HELP is not set 1159 | # CONFIG_HUSH_EXPORT is not set 1160 | # CONFIG_HUSH_EXPORT_N is not set 1161 | # CONFIG_HUSH_READONLY is not set 1162 | # CONFIG_HUSH_KILL is not set 1163 | # CONFIG_HUSH_WAIT is not set 1164 | # CONFIG_HUSH_COMMAND is not set 1165 | # CONFIG_HUSH_TRAP is not set 1166 | # CONFIG_HUSH_TYPE is not set 1167 | # CONFIG_HUSH_TIMES is not set 1168 | # CONFIG_HUSH_READ is not set 1169 | # CONFIG_HUSH_SET is not set 1170 | # CONFIG_HUSH_UNSET is not set 1171 | # CONFIG_HUSH_ULIMIT is not set 1172 | # CONFIG_HUSH_UMASK is not set 1173 | # CONFIG_HUSH_GETOPTS is not set 1174 | # CONFIG_HUSH_MEMLEAK is not set 1175 | 1176 | # 1177 | # Options common to all shells 1178 | # 1179 | CONFIG_FEATURE_SH_MATH=y 1180 | CONFIG_FEATURE_SH_MATH_64=y 1181 | CONFIG_FEATURE_SH_MATH_BASE=y 1182 | CONFIG_FEATURE_SH_EXTRA_QUIET=y 1183 | # CONFIG_FEATURE_SH_STANDALONE is not set 1184 | # CONFIG_FEATURE_SH_NOFORK is not set 1185 | CONFIG_FEATURE_SH_READ_FRAC=y 1186 | CONFIG_FEATURE_SH_HISTFILESIZE=y 1187 | CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS=y 1188 | 1189 | # 1190 | # System Logging Utilities 1191 | # 1192 | CONFIG_KLOGD=y 1193 | 1194 | # 1195 | # klogd should not be used together with syslog to kernel printk buffer 1196 | # 1197 | CONFIG_FEATURE_KLOGD_KLOGCTL=y 1198 | CONFIG_LOGGER=y 1199 | CONFIG_LOGREAD=y 1200 | CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y 1201 | CONFIG_SYSLOGD=y 1202 | CONFIG_FEATURE_ROTATE_LOGFILE=y 1203 | CONFIG_FEATURE_REMOTE_LOG=y 1204 | CONFIG_FEATURE_SYSLOGD_DUP=y 1205 | CONFIG_FEATURE_SYSLOGD_CFG=y 1206 | # CONFIG_FEATURE_SYSLOGD_PRECISE_TIMESTAMPS is not set 1207 | CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=2048 1208 | CONFIG_FEATURE_IPC_SYSLOG=y 1209 | CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16 1210 | CONFIG_FEATURE_KMSG_SYSLOG=y 1211 | -------------------------------------------------------------------------------- /initrd/enter: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | cmd=`cat /mnt/cmdline` 4 | echo Executing $cmd 5 | eval chroot /mnt $cmd 6 | -------------------------------------------------------------------------------- /initrd/init-initrd: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | mount -t proc proc /proc 4 | mount -t sysfs sysfs /sys 5 | mount -t devtmpfs devtmpfs /dev 6 | 7 | touch /etc/fstab 8 | 9 | root=`cat /proc/cmdline | grep -o '\broot=[^ ]*' | cut -d = -f 2` 10 | if test -z "$root" 11 | then 12 | exit 1 13 | fi 14 | 15 | if [ "$root" = "9p" ] 16 | then 17 | mount -t 9p -o msize=131072,trans=xen share_dir /mnt 18 | else 19 | mount $root /mnt 20 | fi 21 | 22 | mkdir /mnt/dev &>/dev/null 23 | mkdir /mnt/sys &>/dev/null 24 | mkdir /mnt/proc &>/dev/null 25 | mount -o bind /dev /mnt/dev 26 | mount -o bind /sys /mnt/sys 27 | mount -o bind /proc /mnt/proc 28 | 29 | ip=`cat /proc/cmdline | grep -o '\bip=[^ ]*' | cut -d = -f 2` 30 | gw=`cat /proc/cmdline | grep -o '\bgw=[^ ]*' | cut -d = -f 2` 31 | route=`cat /proc/cmdline | grep -o '\broute=[^ ]*' | cut -d = -f 2` 32 | if test "$ip" 33 | then 34 | # ipv4 35 | if [ "$ip" != "${ip#*[0-9].[0-9]}" ] 36 | then 37 | ifconfig eth0 $ip up 38 | if [ "$route" ] && [ "$gw" ] 39 | then 40 | route add -net $route gw $gw eth0 41 | fi 42 | mkdir -p /mnt/etc 43 | echo "nameserver 8.8.8.8" > /mnt/etc/resolv.conf 44 | # ipv6 45 | elif [ "$ip" != "${ip#*:[0-9a-fA-F]}" ] 46 | then 47 | ifconfig eth0 add $ip up 48 | if [ "$route" ] && [ "$gw" ] 49 | then 50 | route -A inet6 add $route gw $gw eth0 51 | fi 52 | mkdir -p /mnt/etc 53 | echo "nameserver 2001:4860:4860::8888" > /mnt/etc/resolv.conf 54 | fi 55 | fi 56 | -------------------------------------------------------------------------------- /initrd/inittab: -------------------------------------------------------------------------------- 1 | ::sysinit:/etc/init.d/rcS 2 | hvc0::respawn:/bin/getty -n -l /bin/autologin 115200 hvc0 3 | -------------------------------------------------------------------------------- /initrd/make-initrd: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | base="`pwd`/initrd" 4 | builddir="$base"/build 5 | outpath="$base"/out 6 | tmpdir=`mktemp -d` 7 | tmpfile=`mktemp` 8 | initrd=$outpath/initrd 9 | init="$base"/init-initrd 10 | rm -rf $tmpdir 11 | 12 | 13 | if test -z "$busybox" 14 | then 15 | busybox_version=1.34.1 16 | busybox_name=busybox-$busybox_version 17 | busybox_tarball="$busybox_name".tar.bz2 18 | busybox_url="https://busybox.net/downloads/""$busybox_tarball" 19 | busybox_src_config="$base"/busybox.config 20 | busybox_image="$builddir"/"$busybox_name"/busybox 21 | 22 | rm -rf $outpath 23 | mkdir -p $outpath 24 | mkdir -p $builddir 25 | 26 | if [[ ! -f $builddir/$busybox_tarball ]] 27 | then 28 | wget -O $builddir/$busybox_tarball --tries=20 $busybox_url 29 | fi 30 | if [[ ! -d $builddir/$busybox_name ]] 31 | then 32 | tar --extract --bzip2 --touch --file="$builddir/$busybox_tarball" --directory="$builddir" 33 | fi 34 | cd $builddir/$busybox_name 35 | cp $busybox_src_config .config 36 | make -j "$(getconf _NPROCESSORS_ONLN)" 37 | export busybox="$busybox_image" 38 | fi 39 | 40 | 41 | mkdir -p $tmpdir/bin 42 | mkdir -p $tmpdir/sbin 43 | mkdir -p $tmpdir/etc 44 | mkdir -p $tmpdir/dev 45 | mkdir -p $tmpdir/proc 46 | mkdir -p $tmpdir/sys 47 | mkdir -p $tmpdir/lib 48 | mkdir -p $tmpdir/var 49 | mkdir -p $tmpdir/mnt 50 | cp "$busybox" $tmpdir/bin/busybox 51 | for i in `cat "$base"/applet-list` 52 | do 53 | ln -s /bin/busybox $tmpdir/bin/$i 54 | done 55 | 56 | mkdir -p $tmpdir/etc/init.d 57 | cp $init $tmpdir/etc/init.d/rcS 58 | chmod +x $tmpdir/etc/init.d/rcS 59 | 60 | cp "$base"/inittab $tmpdir/etc/inittab 61 | cp "$base"/passwd $tmpdir/etc/passwd 62 | 63 | cp "$base"/autologin $tmpdir/bin 64 | chmod +x $tmpdir/bin/autologin 65 | cp "$base"/enter $tmpdir/bin 66 | chmod +x $tmpdir/bin/enter 67 | 68 | cd $tmpdir 69 | find . | cpio --create --format='newc' > $tmpfile 70 | gzip < $tmpfile > $initrd 71 | sync 72 | 73 | rm -rf $tmpdir 74 | rm -rf $tmpfile 75 | -------------------------------------------------------------------------------- /initrd/passwd: -------------------------------------------------------------------------------- 1 | root::0:0:root:/:/bin/enter 2 | -------------------------------------------------------------------------------- /kernel/cutdown-config.arm64: -------------------------------------------------------------------------------- 1 | # 2 | # Automatically generated file; DO NOT EDIT. 3 | # Linux/arm64 5.10.74 Kernel Configuration 4 | # 5 | CONFIG_CC_VERSION_TEXT="aarch64-linux-gnu-gcc (Linaro GCC 7.3-2018.05) 7.3.1 20180425 [linaro-7.3-2018.05 revision d29120a424ecfbc167ef90065c0eeb7f91977701]" 6 | CONFIG_CC_IS_GCC=y 7 | CONFIG_GCC_VERSION=70301 8 | CONFIG_LD_VERSION=228020000 9 | CONFIG_CLANG_VERSION=0 10 | CONFIG_LLD_VERSION=0 11 | CONFIG_CC_CAN_LINK=y 12 | CONFIG_CC_CAN_LINK_STATIC=y 13 | CONFIG_CC_HAS_ASM_GOTO=y 14 | CONFIG_IRQ_WORK=y 15 | CONFIG_BUILDTIME_TABLE_SORT=y 16 | CONFIG_THREAD_INFO_IN_TASK=y 17 | 18 | # 19 | # General setup 20 | # 21 | CONFIG_INIT_ENV_ARG_LIMIT=32 22 | # CONFIG_COMPILE_TEST is not set 23 | CONFIG_LOCALVERSION="" 24 | # CONFIG_LOCALVERSION_AUTO is not set 25 | CONFIG_BUILD_SALT="" 26 | CONFIG_DEFAULT_INIT="" 27 | CONFIG_DEFAULT_HOSTNAME="(none)" 28 | # CONFIG_SWAP is not set 29 | # CONFIG_SYSVIPC is not set 30 | # CONFIG_POSIX_MQUEUE is not set 31 | # CONFIG_WATCH_QUEUE is not set 32 | # CONFIG_CROSS_MEMORY_ATTACH is not set 33 | # CONFIG_USELIB is not set 34 | # CONFIG_AUDIT is not set 35 | CONFIG_HAVE_ARCH_AUDITSYSCALL=y 36 | 37 | # 38 | # IRQ subsystem 39 | # 40 | CONFIG_GENERIC_IRQ_PROBE=y 41 | CONFIG_GENERIC_IRQ_SHOW=y 42 | CONFIG_GENERIC_IRQ_SHOW_LEVEL=y 43 | CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y 44 | CONFIG_HARDIRQS_SW_RESEND=y 45 | CONFIG_IRQ_DOMAIN=y 46 | CONFIG_IRQ_DOMAIN_HIERARCHY=y 47 | CONFIG_GENERIC_IRQ_IPI=y 48 | CONFIG_GENERIC_MSI_IRQ=y 49 | CONFIG_GENERIC_MSI_IRQ_DOMAIN=y 50 | CONFIG_HANDLE_DOMAIN_IRQ=y 51 | CONFIG_IRQ_FORCED_THREADING=y 52 | CONFIG_SPARSE_IRQ=y 53 | # end of IRQ subsystem 54 | 55 | CONFIG_GENERIC_IRQ_MULTI_HANDLER=y 56 | CONFIG_GENERIC_TIME_VSYSCALL=y 57 | CONFIG_GENERIC_CLOCKEVENTS=y 58 | CONFIG_ARCH_HAS_TICK_BROADCAST=y 59 | CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y 60 | 61 | # 62 | # Timers subsystem 63 | # 64 | CONFIG_HZ_PERIODIC=y 65 | # CONFIG_NO_HZ_IDLE is not set 66 | # CONFIG_NO_HZ_FULL is not set 67 | # CONFIG_NO_HZ is not set 68 | # CONFIG_HIGH_RES_TIMERS is not set 69 | # end of Timers subsystem 70 | 71 | CONFIG_PREEMPT_NONE=y 72 | # CONFIG_PREEMPT_VOLUNTARY is not set 73 | # CONFIG_PREEMPT is not set 74 | 75 | # 76 | # CPU/Task time and stats accounting 77 | # 78 | CONFIG_TICK_CPU_ACCOUNTING=y 79 | # CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set 80 | # CONFIG_IRQ_TIME_ACCOUNTING is not set 81 | # CONFIG_BSD_PROCESS_ACCT is not set 82 | # CONFIG_TASKSTATS is not set 83 | # CONFIG_PSI is not set 84 | # end of CPU/Task time and stats accounting 85 | 86 | # CONFIG_CPU_ISOLATION is not set 87 | 88 | # 89 | # RCU Subsystem 90 | # 91 | CONFIG_TREE_RCU=y 92 | # CONFIG_RCU_EXPERT is not set 93 | CONFIG_SRCU=y 94 | CONFIG_TREE_SRCU=y 95 | CONFIG_RCU_STALL_COMMON=y 96 | CONFIG_RCU_NEED_SEGCBLIST=y 97 | # end of RCU Subsystem 98 | 99 | # CONFIG_IKCONFIG is not set 100 | # CONFIG_IKHEADERS is not set 101 | CONFIG_LOG_BUF_SHIFT=17 102 | CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 103 | CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 104 | CONFIG_GENERIC_SCHED_CLOCK=y 105 | 106 | # 107 | # Scheduler features 108 | # 109 | # end of Scheduler features 110 | 111 | CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y 112 | CONFIG_CC_HAS_INT128=y 113 | CONFIG_ARCH_SUPPORTS_INT128=y 114 | # CONFIG_CGROUPS is not set 115 | # CONFIG_NAMESPACES is not set 116 | # CONFIG_CHECKPOINT_RESTORE is not set 117 | # CONFIG_SCHED_AUTOGROUP is not set 118 | # CONFIG_SYSFS_DEPRECATED is not set 119 | # CONFIG_RELAY is not set 120 | CONFIG_BLK_DEV_INITRD=y 121 | CONFIG_INITRAMFS_SOURCE="" 122 | CONFIG_RD_GZIP=y 123 | CONFIG_RD_BZIP2=y 124 | # CONFIG_RD_LZMA is not set 125 | # CONFIG_RD_XZ is not set 126 | # CONFIG_RD_LZO is not set 127 | # CONFIG_RD_LZ4 is not set 128 | CONFIG_RD_ZSTD=y 129 | # CONFIG_BOOT_CONFIG is not set 130 | # CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE is not set 131 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y 132 | CONFIG_LD_ORPHAN_WARN=y 133 | CONFIG_SYSCTL=y 134 | CONFIG_HAVE_UID16=y 135 | CONFIG_SYSCTL_EXCEPTION_TRACE=y 136 | CONFIG_BPF=y 137 | CONFIG_EXPERT=y 138 | CONFIG_UID16=y 139 | CONFIG_MULTIUSER=y 140 | CONFIG_SGETMASK_SYSCALL=y 141 | CONFIG_SYSFS_SYSCALL=y 142 | CONFIG_FHANDLE=y 143 | CONFIG_POSIX_TIMERS=y 144 | CONFIG_PRINTK=y 145 | CONFIG_PRINTK_NMI=y 146 | # CONFIG_BUG is not set 147 | CONFIG_ELF_CORE=y 148 | # CONFIG_BASE_FULL is not set 149 | CONFIG_FUTEX=y 150 | CONFIG_FUTEX_PI=y 151 | CONFIG_HAVE_FUTEX_CMPXCHG=y 152 | CONFIG_EPOLL=y 153 | # CONFIG_SIGNALFD is not set 154 | # CONFIG_TIMERFD is not set 155 | # CONFIG_EVENTFD is not set 156 | CONFIG_SHMEM=y 157 | CONFIG_AIO=y 158 | CONFIG_IO_URING=y 159 | CONFIG_ADVISE_SYSCALLS=y 160 | CONFIG_MEMBARRIER=y 161 | # CONFIG_KALLSYMS is not set 162 | # CONFIG_BPF_SYSCALL is not set 163 | CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y 164 | # CONFIG_USERFAULTFD is not set 165 | CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y 166 | # CONFIG_KCMP is not set 167 | CONFIG_RSEQ=y 168 | # CONFIG_DEBUG_RSEQ is not set 169 | CONFIG_EMBEDDED=y 170 | CONFIG_HAVE_PERF_EVENTS=y 171 | # CONFIG_PC104 is not set 172 | 173 | # 174 | # Kernel Performance Events And Counters 175 | # 176 | # CONFIG_PERF_EVENTS is not set 177 | # end of Kernel Performance Events And Counters 178 | 179 | # CONFIG_VM_EVENT_COUNTERS is not set 180 | # CONFIG_COMPAT_BRK is not set 181 | # CONFIG_SLAB is not set 182 | # CONFIG_SLUB is not set 183 | CONFIG_SLOB=y 184 | # CONFIG_SLAB_MERGE_DEFAULT is not set 185 | # CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set 186 | # CONFIG_PROFILING is not set 187 | # end of General setup 188 | 189 | CONFIG_ARM64=y 190 | CONFIG_64BIT=y 191 | CONFIG_MMU=y 192 | CONFIG_ARM64_PAGE_SHIFT=12 193 | CONFIG_ARM64_CONT_PTE_SHIFT=4 194 | CONFIG_ARM64_CONT_PMD_SHIFT=4 195 | CONFIG_ARCH_MMAP_RND_BITS_MIN=18 196 | CONFIG_ARCH_MMAP_RND_BITS_MAX=24 197 | CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11 198 | CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16 199 | CONFIG_NO_IOPORT_MAP=y 200 | CONFIG_STACKTRACE_SUPPORT=y 201 | CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 202 | CONFIG_LOCKDEP_SUPPORT=y 203 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y 204 | CONFIG_GENERIC_HWEIGHT=y 205 | CONFIG_GENERIC_CSUM=y 206 | CONFIG_GENERIC_CALIBRATE_DELAY=y 207 | CONFIG_ZONE_DMA=y 208 | CONFIG_ZONE_DMA32=y 209 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 210 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 211 | CONFIG_SMP=y 212 | CONFIG_KERNEL_MODE_NEON=y 213 | CONFIG_FIX_EARLYCON_MEM=y 214 | CONFIG_PGTABLE_LEVELS=3 215 | CONFIG_ARCH_SUPPORTS_UPROBES=y 216 | CONFIG_ARCH_PROC_KCORE_TEXT=y 217 | 218 | # 219 | # Platform selection 220 | # 221 | # CONFIG_ARCH_ACTIONS is not set 222 | # CONFIG_ARCH_AGILEX is not set 223 | # CONFIG_ARCH_SUNXI is not set 224 | # CONFIG_ARCH_ALPINE is not set 225 | # CONFIG_ARCH_BCM2835 is not set 226 | # CONFIG_ARCH_BCM_IPROC is not set 227 | # CONFIG_ARCH_BERLIN is not set 228 | # CONFIG_ARCH_BITMAIN is not set 229 | # CONFIG_ARCH_BRCMSTB is not set 230 | # CONFIG_ARCH_EXYNOS is not set 231 | # CONFIG_ARCH_SPARX5 is not set 232 | # CONFIG_ARCH_K3 is not set 233 | # CONFIG_ARCH_LAYERSCAPE is not set 234 | # CONFIG_ARCH_LG1K is not set 235 | # CONFIG_ARCH_HISI is not set 236 | # CONFIG_ARCH_KEEMBAY is not set 237 | # CONFIG_ARCH_MEDIATEK is not set 238 | # CONFIG_ARCH_MESON is not set 239 | # CONFIG_ARCH_MVEBU is not set 240 | # CONFIG_ARCH_MXC is not set 241 | # CONFIG_ARCH_QCOM is not set 242 | # CONFIG_ARCH_REALTEK is not set 243 | # CONFIG_ARCH_RENESAS is not set 244 | # CONFIG_ARCH_ROCKCHIP is not set 245 | # CONFIG_ARCH_S32 is not set 246 | # CONFIG_ARCH_SEATTLE is not set 247 | # CONFIG_ARCH_STRATIX10 is not set 248 | # CONFIG_ARCH_SYNQUACER is not set 249 | # CONFIG_ARCH_TEGRA is not set 250 | # CONFIG_ARCH_SPRD is not set 251 | # CONFIG_ARCH_THUNDER is not set 252 | # CONFIG_ARCH_THUNDER2 is not set 253 | # CONFIG_ARCH_UNIPHIER is not set 254 | # CONFIG_ARCH_VEXPRESS is not set 255 | # CONFIG_ARCH_VISCONTI is not set 256 | # CONFIG_ARCH_XGENE is not set 257 | # CONFIG_ARCH_ZX is not set 258 | # CONFIG_ARCH_ZYNQMP is not set 259 | # end of Platform selection 260 | 261 | # 262 | # Kernel Features 263 | # 264 | 265 | # 266 | # ARM errata workarounds via the alternatives framework 267 | # 268 | # CONFIG_ARM64_ERRATUM_826319 is not set 269 | # CONFIG_ARM64_ERRATUM_827319 is not set 270 | # CONFIG_ARM64_ERRATUM_824069 is not set 271 | # CONFIG_ARM64_ERRATUM_819472 is not set 272 | # CONFIG_ARM64_ERRATUM_832075 is not set 273 | CONFIG_ARM64_ERRATUM_845719=y 274 | # CONFIG_ARM64_ERRATUM_843419 is not set 275 | CONFIG_ARM64_ERRATUM_1024718=y 276 | CONFIG_ARM64_ERRATUM_1418040=y 277 | CONFIG_ARM64_WORKAROUND_SPECULATIVE_AT=y 278 | CONFIG_ARM64_ERRATUM_1165522=y 279 | CONFIG_ARM64_ERRATUM_1319367=y 280 | CONFIG_ARM64_ERRATUM_1530923=y 281 | CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y 282 | CONFIG_ARM64_ERRATUM_1286807=y 283 | CONFIG_ARM64_ERRATUM_1463225=y 284 | CONFIG_ARM64_ERRATUM_1542419=y 285 | CONFIG_ARM64_ERRATUM_1508412=y 286 | # CONFIG_CAVIUM_ERRATUM_22375 is not set 287 | # CONFIG_CAVIUM_ERRATUM_23154 is not set 288 | # CONFIG_CAVIUM_ERRATUM_27456 is not set 289 | # CONFIG_CAVIUM_ERRATUM_30115 is not set 290 | CONFIG_CAVIUM_TX2_ERRATUM_219=y 291 | CONFIG_FUJITSU_ERRATUM_010001=y 292 | # CONFIG_HISILICON_ERRATUM_161600802 is not set 293 | # CONFIG_QCOM_FALKOR_ERRATUM_1003 is not set 294 | # CONFIG_QCOM_FALKOR_ERRATUM_1009 is not set 295 | # CONFIG_QCOM_QDF2400_ERRATUM_0065 is not set 296 | # CONFIG_QCOM_FALKOR_ERRATUM_E1041 is not set 297 | # CONFIG_SOCIONEXT_SYNQUACER_PREITS is not set 298 | # end of ARM errata workarounds via the alternatives framework 299 | 300 | CONFIG_ARM64_4K_PAGES=y 301 | # CONFIG_ARM64_16K_PAGES is not set 302 | # CONFIG_ARM64_64K_PAGES is not set 303 | CONFIG_ARM64_VA_BITS_39=y 304 | # CONFIG_ARM64_VA_BITS_48 is not set 305 | CONFIG_ARM64_VA_BITS=39 306 | CONFIG_ARM64_PA_BITS_48=y 307 | CONFIG_ARM64_PA_BITS=48 308 | # CONFIG_CPU_BIG_ENDIAN is not set 309 | CONFIG_CPU_LITTLE_ENDIAN=y 310 | # CONFIG_SCHED_MC is not set 311 | # CONFIG_SCHED_SMT is not set 312 | CONFIG_NR_CPUS=64 313 | # CONFIG_HOTPLUG_CPU is not set 314 | # CONFIG_NUMA is not set 315 | CONFIG_HOLES_IN_ZONE=y 316 | # CONFIG_HZ_100 is not set 317 | CONFIG_HZ_250=y 318 | # CONFIG_HZ_300 is not set 319 | # CONFIG_HZ_1000 is not set 320 | CONFIG_HZ=250 321 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 322 | CONFIG_ARCH_SPARSEMEM_ENABLE=y 323 | CONFIG_ARCH_SPARSEMEM_DEFAULT=y 324 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y 325 | CONFIG_ARCH_FLATMEM_ENABLE=y 326 | CONFIG_HAVE_ARCH_PFN_VALID=y 327 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y 328 | CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y 329 | CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y 330 | CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y 331 | CONFIG_PARAVIRT=y 332 | # CONFIG_PARAVIRT_TIME_ACCOUNTING is not set 333 | # CONFIG_KEXEC_FILE is not set 334 | # CONFIG_CRASH_DUMP is not set 335 | CONFIG_XEN_DOM0=y 336 | CONFIG_XEN=y 337 | CONFIG_FORCE_MAX_ZONEORDER=11 338 | CONFIG_UNMAP_KERNEL_AT_EL0=y 339 | CONFIG_RODATA_FULL_DEFAULT_ENABLED=y 340 | # CONFIG_ARM64_SW_TTBR0_PAN is not set 341 | CONFIG_ARM64_TAGGED_ADDR_ABI=y 342 | CONFIG_COMPAT=y 343 | CONFIG_KUSER_HELPERS=y 344 | # CONFIG_ARMV8_DEPRECATED is not set 345 | 346 | # 347 | # ARMv8.1 architectural features 348 | # 349 | # CONFIG_ARM64_HW_AFDBM is not set 350 | # CONFIG_ARM64_PAN is not set 351 | CONFIG_AS_HAS_LSE_ATOMICS=y 352 | # CONFIG_ARM64_VHE is not set 353 | # end of ARMv8.1 architectural features 354 | 355 | # 356 | # ARMv8.2 architectural features 357 | # 358 | # CONFIG_ARM64_UAO is not set 359 | # CONFIG_ARM64_PMEM is not set 360 | CONFIG_ARM64_RAS_EXTN=y 361 | CONFIG_ARM64_CNP=y 362 | # end of ARMv8.2 architectural features 363 | 364 | # 365 | # ARMv8.3 architectural features 366 | # 367 | CONFIG_ARM64_PTR_AUTH=y 368 | CONFIG_CC_HAS_SIGN_RETURN_ADDRESS=y 369 | CONFIG_AS_HAS_PAC=y 370 | # end of ARMv8.3 architectural features 371 | 372 | # 373 | # ARMv8.4 architectural features 374 | # 375 | # CONFIG_ARM64_AMU_EXTN is not set 376 | # end of ARMv8.4 architectural features 377 | 378 | # 379 | # ARMv8.5 architectural features 380 | # 381 | CONFIG_ARM64_BTI=y 382 | CONFIG_ARM64_E0PD=y 383 | # CONFIG_ARCH_RANDOM is not set 384 | # end of ARMv8.5 architectural features 385 | 386 | # CONFIG_ARM64_SVE is not set 387 | # CONFIG_ARM64_PSEUDO_NMI is not set 388 | CONFIG_RELOCATABLE=y 389 | # CONFIG_RANDOMIZE_BASE is not set 390 | # end of Kernel Features 391 | 392 | # 393 | # Boot options 394 | # 395 | CONFIG_CMDLINE="" 396 | # CONFIG_EFI is not set 397 | # end of Boot options 398 | 399 | # 400 | # Power management options 401 | # 402 | # CONFIG_SUSPEND is not set 403 | # CONFIG_PM is not set 404 | CONFIG_ARCH_SUSPEND_POSSIBLE=y 405 | # end of Power management options 406 | 407 | # 408 | # CPU Power Management 409 | # 410 | 411 | # 412 | # CPU Idle 413 | # 414 | # CONFIG_CPU_IDLE is not set 415 | # end of CPU Idle 416 | 417 | # 418 | # CPU Frequency scaling 419 | # 420 | # CONFIG_CPU_FREQ is not set 421 | # end of CPU Frequency scaling 422 | # end of CPU Power Management 423 | 424 | # 425 | # Firmware Drivers 426 | # 427 | # CONFIG_ARM_SCMI_PROTOCOL is not set 428 | # CONFIG_ARM_SDE_INTERFACE is not set 429 | # CONFIG_FIRMWARE_MEMMAP is not set 430 | # CONFIG_GOOGLE_FIRMWARE is not set 431 | CONFIG_ARM_PSCI_FW=y 432 | CONFIG_HAVE_ARM_SMCCC=y 433 | CONFIG_HAVE_ARM_SMCCC_DISCOVERY=y 434 | CONFIG_ARM_SMCCC_SOC_ID=y 435 | 436 | # 437 | # Tegra firmware driver 438 | # 439 | # end of Tegra firmware driver 440 | # end of Firmware Drivers 441 | 442 | # CONFIG_VIRTUALIZATION is not set 443 | # CONFIG_ARM64_CRYPTO is not set 444 | 445 | # 446 | # General architecture-dependent options 447 | # 448 | CONFIG_SET_FS=y 449 | # CONFIG_JUMP_LABEL is not set 450 | CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 451 | CONFIG_HAVE_KPROBES=y 452 | CONFIG_HAVE_KRETPROBES=y 453 | CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y 454 | CONFIG_HAVE_NMI=y 455 | CONFIG_HAVE_ARCH_TRACEHOOK=y 456 | CONFIG_HAVE_DMA_CONTIGUOUS=y 457 | CONFIG_GENERIC_SMP_IDLE_THREAD=y 458 | CONFIG_GENERIC_IDLE_POLL_SETUP=y 459 | CONFIG_ARCH_HAS_FORTIFY_SOURCE=y 460 | CONFIG_ARCH_HAS_KEEPINITRD=y 461 | CONFIG_ARCH_HAS_SET_MEMORY=y 462 | CONFIG_ARCH_HAS_SET_DIRECT_MAP=y 463 | CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y 464 | CONFIG_HAVE_ASM_MODVERSIONS=y 465 | CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y 466 | CONFIG_HAVE_RSEQ=y 467 | CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y 468 | CONFIG_HAVE_PERF_REGS=y 469 | CONFIG_HAVE_PERF_USER_STACK_DUMP=y 470 | CONFIG_HAVE_ARCH_JUMP_LABEL=y 471 | CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y 472 | CONFIG_MMU_GATHER_TABLE_FREE=y 473 | CONFIG_MMU_GATHER_RCU_TABLE_FREE=y 474 | CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y 475 | CONFIG_HAVE_CMPXCHG_LOCAL=y 476 | CONFIG_HAVE_CMPXCHG_DOUBLE=y 477 | CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y 478 | CONFIG_HAVE_ARCH_SECCOMP=y 479 | CONFIG_HAVE_ARCH_SECCOMP_FILTER=y 480 | # CONFIG_SECCOMP is not set 481 | CONFIG_HAVE_ARCH_STACKLEAK=y 482 | CONFIG_HAVE_STACKPROTECTOR=y 483 | CONFIG_STACKPROTECTOR=y 484 | CONFIG_STACKPROTECTOR_STRONG=y 485 | CONFIG_HAVE_CONTEXT_TRACKING=y 486 | CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y 487 | CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y 488 | CONFIG_HAVE_MOVE_PMD=y 489 | CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y 490 | CONFIG_HAVE_ARCH_HUGE_VMAP=y 491 | CONFIG_MODULES_USE_ELF_RELA=y 492 | CONFIG_ARCH_HAS_ELF_RANDOMIZE=y 493 | CONFIG_HAVE_ARCH_MMAP_RND_BITS=y 494 | CONFIG_ARCH_MMAP_RND_BITS=18 495 | CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y 496 | CONFIG_ARCH_MMAP_RND_COMPAT_BITS=11 497 | CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y 498 | CONFIG_CLONE_BACKWARDS=y 499 | CONFIG_OLD_SIGSUSPEND3=y 500 | CONFIG_COMPAT_OLD_SIGACTION=y 501 | CONFIG_COMPAT_32BIT_TIME=y 502 | CONFIG_HAVE_ARCH_VMAP_STACK=y 503 | # CONFIG_VMAP_STACK is not set 504 | CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y 505 | CONFIG_STRICT_KERNEL_RWX=y 506 | CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y 507 | CONFIG_HAVE_ARCH_COMPILER_H=y 508 | CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y 509 | CONFIG_ARCH_HAS_RELR=y 510 | CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y 511 | 512 | # 513 | # GCOV-based kernel profiling 514 | # 515 | CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y 516 | # end of GCOV-based kernel profiling 517 | 518 | CONFIG_HAVE_GCC_PLUGINS=y 519 | CONFIG_GCC_PLUGINS=y 520 | # CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set 521 | # CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set 522 | # CONFIG_GCC_PLUGIN_RANDSTRUCT is not set 523 | # end of General architecture-dependent options 524 | 525 | CONFIG_RT_MUTEXES=y 526 | CONFIG_BASE_SMALL=1 527 | # CONFIG_MODULES is not set 528 | CONFIG_BLOCK=y 529 | CONFIG_BLK_SCSI_REQUEST=y 530 | CONFIG_BLK_DEV_BSG=y 531 | # CONFIG_BLK_DEV_BSGLIB is not set 532 | # CONFIG_BLK_DEV_INTEGRITY is not set 533 | # CONFIG_BLK_DEV_ZONED is not set 534 | # CONFIG_BLK_CMDLINE_PARSER is not set 535 | # CONFIG_BLK_WBT is not set 536 | # CONFIG_BLK_SED_OPAL is not set 537 | # CONFIG_BLK_INLINE_ENCRYPTION is not set 538 | 539 | # 540 | # Partition Types 541 | # 542 | # CONFIG_PARTITION_ADVANCED is not set 543 | CONFIG_MSDOS_PARTITION=y 544 | CONFIG_EFI_PARTITION=y 545 | # end of Partition Types 546 | 547 | CONFIG_BLOCK_COMPAT=y 548 | 549 | # 550 | # IO Schedulers 551 | # 552 | # CONFIG_MQ_IOSCHED_DEADLINE is not set 553 | # CONFIG_MQ_IOSCHED_KYBER is not set 554 | # CONFIG_IOSCHED_BFQ is not set 555 | # end of IO Schedulers 556 | 557 | CONFIG_ASN1=y 558 | CONFIG_ARCH_INLINE_SPIN_TRYLOCK=y 559 | CONFIG_ARCH_INLINE_SPIN_TRYLOCK_BH=y 560 | CONFIG_ARCH_INLINE_SPIN_LOCK=y 561 | CONFIG_ARCH_INLINE_SPIN_LOCK_BH=y 562 | CONFIG_ARCH_INLINE_SPIN_LOCK_IRQ=y 563 | CONFIG_ARCH_INLINE_SPIN_LOCK_IRQSAVE=y 564 | CONFIG_ARCH_INLINE_SPIN_UNLOCK=y 565 | CONFIG_ARCH_INLINE_SPIN_UNLOCK_BH=y 566 | CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQ=y 567 | CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE=y 568 | CONFIG_ARCH_INLINE_READ_LOCK=y 569 | CONFIG_ARCH_INLINE_READ_LOCK_BH=y 570 | CONFIG_ARCH_INLINE_READ_LOCK_IRQ=y 571 | CONFIG_ARCH_INLINE_READ_LOCK_IRQSAVE=y 572 | CONFIG_ARCH_INLINE_READ_UNLOCK=y 573 | CONFIG_ARCH_INLINE_READ_UNLOCK_BH=y 574 | CONFIG_ARCH_INLINE_READ_UNLOCK_IRQ=y 575 | CONFIG_ARCH_INLINE_READ_UNLOCK_IRQRESTORE=y 576 | CONFIG_ARCH_INLINE_WRITE_LOCK=y 577 | CONFIG_ARCH_INLINE_WRITE_LOCK_BH=y 578 | CONFIG_ARCH_INLINE_WRITE_LOCK_IRQ=y 579 | CONFIG_ARCH_INLINE_WRITE_LOCK_IRQSAVE=y 580 | CONFIG_ARCH_INLINE_WRITE_UNLOCK=y 581 | CONFIG_ARCH_INLINE_WRITE_UNLOCK_BH=y 582 | CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQ=y 583 | CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE=y 584 | CONFIG_INLINE_SPIN_TRYLOCK=y 585 | CONFIG_INLINE_SPIN_TRYLOCK_BH=y 586 | CONFIG_INLINE_SPIN_LOCK=y 587 | CONFIG_INLINE_SPIN_LOCK_BH=y 588 | CONFIG_INLINE_SPIN_LOCK_IRQ=y 589 | CONFIG_INLINE_SPIN_LOCK_IRQSAVE=y 590 | CONFIG_INLINE_SPIN_UNLOCK_BH=y 591 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y 592 | CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE=y 593 | CONFIG_INLINE_READ_LOCK=y 594 | CONFIG_INLINE_READ_LOCK_BH=y 595 | CONFIG_INLINE_READ_LOCK_IRQ=y 596 | CONFIG_INLINE_READ_LOCK_IRQSAVE=y 597 | CONFIG_INLINE_READ_UNLOCK=y 598 | CONFIG_INLINE_READ_UNLOCK_BH=y 599 | CONFIG_INLINE_READ_UNLOCK_IRQ=y 600 | CONFIG_INLINE_READ_UNLOCK_IRQRESTORE=y 601 | CONFIG_INLINE_WRITE_LOCK=y 602 | CONFIG_INLINE_WRITE_LOCK_BH=y 603 | CONFIG_INLINE_WRITE_LOCK_IRQ=y 604 | CONFIG_INLINE_WRITE_LOCK_IRQSAVE=y 605 | CONFIG_INLINE_WRITE_UNLOCK=y 606 | CONFIG_INLINE_WRITE_UNLOCK_BH=y 607 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y 608 | CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE=y 609 | CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y 610 | CONFIG_MUTEX_SPIN_ON_OWNER=y 611 | CONFIG_RWSEM_SPIN_ON_OWNER=y 612 | CONFIG_LOCK_SPIN_ON_OWNER=y 613 | CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y 614 | CONFIG_QUEUED_SPINLOCKS=y 615 | CONFIG_ARCH_USE_QUEUED_RWLOCKS=y 616 | CONFIG_QUEUED_RWLOCKS=y 617 | CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y 618 | CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y 619 | 620 | # 621 | # Executable file formats 622 | # 623 | CONFIG_BINFMT_ELF=y 624 | CONFIG_COMPAT_BINFMT_ELF=y 625 | CONFIG_ARCH_BINFMT_ELF_STATE=y 626 | CONFIG_ARCH_HAVE_ELF_PROT=y 627 | CONFIG_ARCH_USE_GNU_PROPERTY=y 628 | CONFIG_ELFCORE=y 629 | CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y 630 | CONFIG_BINFMT_SCRIPT=y 631 | CONFIG_BINFMT_MISC=y 632 | CONFIG_COREDUMP=y 633 | # end of Executable file formats 634 | 635 | # 636 | # Memory Management options 637 | # 638 | CONFIG_SELECT_MEMORY_MODEL=y 639 | # CONFIG_FLATMEM_MANUAL is not set 640 | CONFIG_SPARSEMEM_MANUAL=y 641 | CONFIG_SPARSEMEM=y 642 | CONFIG_SPARSEMEM_EXTREME=y 643 | CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y 644 | # CONFIG_SPARSEMEM_VMEMMAP is not set 645 | CONFIG_HAVE_FAST_GUP=y 646 | CONFIG_ARCH_KEEP_MEMBLOCK=y 647 | # CONFIG_MEMORY_HOTPLUG is not set 648 | CONFIG_SPLIT_PTLOCK_CPUS=4 649 | # CONFIG_COMPACTION is not set 650 | # CONFIG_PAGE_REPORTING is not set 651 | # CONFIG_MIGRATION is not set 652 | CONFIG_PHYS_ADDR_T_64BIT=y 653 | CONFIG_BOUNCE=y 654 | CONFIG_MMU_NOTIFIER=y 655 | # CONFIG_KSM is not set 656 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 657 | CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y 658 | # CONFIG_MEMORY_FAILURE is not set 659 | # CONFIG_TRANSPARENT_HUGEPAGE is not set 660 | # CONFIG_CLEANCACHE is not set 661 | # CONFIG_CMA is not set 662 | # CONFIG_ZPOOL is not set 663 | # CONFIG_ZBUD is not set 664 | # CONFIG_ZSMALLOC is not set 665 | CONFIG_GENERIC_EARLY_IOREMAP=y 666 | # CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set 667 | # CONFIG_IDLE_PAGE_TRACKING is not set 668 | CONFIG_ARCH_HAS_PTE_DEVMAP=y 669 | # CONFIG_PERCPU_STATS is not set 670 | # CONFIG_GUP_BENCHMARK is not set 671 | CONFIG_ARCH_HAS_PTE_SPECIAL=y 672 | # end of Memory Management options 673 | 674 | CONFIG_NET=y 675 | 676 | # 677 | # Networking options 678 | # 679 | # CONFIG_PACKET is not set 680 | CONFIG_UNIX=y 681 | CONFIG_UNIX_SCM=y 682 | # CONFIG_UNIX_DIAG is not set 683 | # CONFIG_TLS is not set 684 | # CONFIG_XFRM_USER is not set 685 | # CONFIG_NET_KEY is not set 686 | CONFIG_INET=y 687 | # CONFIG_IP_MULTICAST is not set 688 | # CONFIG_IP_ADVANCED_ROUTER is not set 689 | # CONFIG_IP_PNP is not set 690 | # CONFIG_NET_IPIP is not set 691 | # CONFIG_NET_IPGRE_DEMUX is not set 692 | CONFIG_NET_IP_TUNNEL=y 693 | # CONFIG_SYN_COOKIES is not set 694 | # CONFIG_NET_IPVTI is not set 695 | # CONFIG_NET_FOU is not set 696 | # CONFIG_NET_FOU_IP_TUNNELS is not set 697 | # CONFIG_INET_AH is not set 698 | # CONFIG_INET_ESP is not set 699 | # CONFIG_INET_IPCOMP is not set 700 | CONFIG_INET_TUNNEL=y 701 | CONFIG_INET_DIAG=y 702 | CONFIG_INET_TCP_DIAG=y 703 | # CONFIG_INET_UDP_DIAG is not set 704 | # CONFIG_INET_RAW_DIAG is not set 705 | # CONFIG_INET_DIAG_DESTROY is not set 706 | # CONFIG_TCP_CONG_ADVANCED is not set 707 | CONFIG_TCP_CONG_CUBIC=y 708 | CONFIG_DEFAULT_TCP_CONG="cubic" 709 | # CONFIG_TCP_MD5SIG is not set 710 | CONFIG_IPV6=y 711 | # CONFIG_IPV6_ROUTER_PREF is not set 712 | # CONFIG_IPV6_OPTIMISTIC_DAD is not set 713 | # CONFIG_INET6_AH is not set 714 | # CONFIG_INET6_ESP is not set 715 | # CONFIG_INET6_IPCOMP is not set 716 | # CONFIG_IPV6_MIP6 is not set 717 | # CONFIG_IPV6_VTI is not set 718 | CONFIG_IPV6_SIT=y 719 | # CONFIG_IPV6_SIT_6RD is not set 720 | CONFIG_IPV6_NDISC_NODETYPE=y 721 | # CONFIG_IPV6_TUNNEL is not set 722 | # CONFIG_IPV6_MULTIPLE_TABLES is not set 723 | # CONFIG_IPV6_MROUTE is not set 724 | # CONFIG_IPV6_SEG6_LWTUNNEL is not set 725 | # CONFIG_IPV6_SEG6_HMAC is not set 726 | # CONFIG_IPV6_RPL_LWTUNNEL is not set 727 | # CONFIG_MPTCP is not set 728 | # CONFIG_NETWORK_SECMARK is not set 729 | # CONFIG_NETWORK_PHY_TIMESTAMPING is not set 730 | # CONFIG_NETFILTER is not set 731 | # CONFIG_BPFILTER is not set 732 | # CONFIG_IP_DCCP is not set 733 | # CONFIG_IP_SCTP is not set 734 | # CONFIG_RDS is not set 735 | # CONFIG_TIPC is not set 736 | # CONFIG_ATM is not set 737 | # CONFIG_L2TP is not set 738 | # CONFIG_BRIDGE is not set 739 | CONFIG_HAVE_NET_DSA=y 740 | # CONFIG_NET_DSA is not set 741 | # CONFIG_VLAN_8021Q is not set 742 | # CONFIG_DECNET is not set 743 | # CONFIG_LLC2 is not set 744 | # CONFIG_ATALK is not set 745 | # CONFIG_X25 is not set 746 | # CONFIG_LAPB is not set 747 | # CONFIG_PHONET is not set 748 | # CONFIG_6LOWPAN is not set 749 | # CONFIG_IEEE802154 is not set 750 | # CONFIG_NET_SCHED is not set 751 | # CONFIG_DCB is not set 752 | # CONFIG_DNS_RESOLVER is not set 753 | # CONFIG_BATMAN_ADV is not set 754 | # CONFIG_OPENVSWITCH is not set 755 | # CONFIG_VSOCKETS is not set 756 | # CONFIG_NETLINK_DIAG is not set 757 | # CONFIG_MPLS is not set 758 | # CONFIG_NET_NSH is not set 759 | # CONFIG_HSR is not set 760 | # CONFIG_NET_SWITCHDEV is not set 761 | # CONFIG_NET_L3_MASTER_DEV is not set 762 | # CONFIG_QRTR is not set 763 | # CONFIG_NET_NCSI is not set 764 | CONFIG_RPS=y 765 | CONFIG_RFS_ACCEL=y 766 | CONFIG_XPS=y 767 | CONFIG_NET_RX_BUSY_POLL=y 768 | CONFIG_BQL=y 769 | CONFIG_NET_FLOW_LIMIT=y 770 | 771 | # 772 | # Network testing 773 | # 774 | # CONFIG_NET_PKTGEN is not set 775 | # end of Network testing 776 | # end of Networking options 777 | 778 | # CONFIG_HAMRADIO is not set 779 | # CONFIG_CAN is not set 780 | # CONFIG_BT is not set 781 | # CONFIG_AF_RXRPC is not set 782 | # CONFIG_AF_KCM is not set 783 | CONFIG_WIRELESS=y 784 | # CONFIG_CFG80211 is not set 785 | 786 | # 787 | # CFG80211 needs to be enabled for MAC80211 788 | # 789 | CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 790 | # CONFIG_WIMAX is not set 791 | # CONFIG_RFKILL is not set 792 | CONFIG_NET_9P=y 793 | CONFIG_NET_9P_XEN=y 794 | CONFIG_NET_9P_DEBUG=y 795 | # CONFIG_CAIF is not set 796 | # CONFIG_CEPH_LIB is not set 797 | # CONFIG_NFC is not set 798 | # CONFIG_PSAMPLE is not set 799 | # CONFIG_NET_IFE is not set 800 | # CONFIG_LWTUNNEL is not set 801 | CONFIG_DST_CACHE=y 802 | CONFIG_GRO_CELLS=y 803 | CONFIG_PAGE_POOL=y 804 | # CONFIG_FAILOVER is not set 805 | CONFIG_ETHTOOL_NETLINK=y 806 | CONFIG_HAVE_EBPF_JIT=y 807 | 808 | # 809 | # Device Drivers 810 | # 811 | CONFIG_ARM_AMBA=y 812 | CONFIG_HAVE_PCI=y 813 | # CONFIG_PCI is not set 814 | # CONFIG_PCCARD is not set 815 | 816 | # 817 | # Generic Driver Options 818 | # 819 | # CONFIG_UEVENT_HELPER is not set 820 | CONFIG_DEVTMPFS=y 821 | CONFIG_DEVTMPFS_MOUNT=y 822 | # CONFIG_STANDALONE is not set 823 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set 824 | 825 | # 826 | # Firmware loader 827 | # 828 | # CONFIG_FW_LOADER is not set 829 | # end of Firmware loader 830 | 831 | # CONFIG_ALLOW_DEV_COREDUMP is not set 832 | # CONFIG_DEBUG_DRIVER is not set 833 | # CONFIG_DEBUG_DEVRES is not set 834 | # CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set 835 | CONFIG_SYS_HYPERVISOR=y 836 | CONFIG_GENERIC_CPU_AUTOPROBE=y 837 | CONFIG_GENERIC_CPU_VULNERABILITIES=y 838 | CONFIG_SOC_BUS=y 839 | CONFIG_GENERIC_ARCH_TOPOLOGY=y 840 | # end of Generic Driver Options 841 | 842 | # 843 | # Bus devices 844 | # 845 | # CONFIG_BRCMSTB_GISB_ARB is not set 846 | # CONFIG_VEXPRESS_CONFIG is not set 847 | # CONFIG_MHI_BUS is not set 848 | # end of Bus devices 849 | 850 | # CONFIG_CONNECTOR is not set 851 | # CONFIG_GNSS is not set 852 | # CONFIG_MTD is not set 853 | CONFIG_DTC=y 854 | CONFIG_OF=y 855 | # CONFIG_OF_UNITTEST is not set 856 | CONFIG_OF_FLATTREE=y 857 | CONFIG_OF_EARLY_FLATTREE=y 858 | CONFIG_OF_KOBJ=y 859 | CONFIG_OF_ADDRESS=y 860 | CONFIG_OF_IRQ=y 861 | CONFIG_OF_NET=y 862 | CONFIG_OF_RESERVED_MEM=y 863 | # CONFIG_OF_OVERLAY is not set 864 | # CONFIG_PARPORT is not set 865 | CONFIG_BLK_DEV=y 866 | # CONFIG_BLK_DEV_NULL_BLK is not set 867 | # CONFIG_BLK_DEV_LOOP is not set 868 | # CONFIG_BLK_DEV_DRBD is not set 869 | # CONFIG_BLK_DEV_NBD is not set 870 | CONFIG_BLK_DEV_RAM=y 871 | CONFIG_BLK_DEV_RAM_COUNT=16 872 | CONFIG_BLK_DEV_RAM_SIZE=4096 873 | # CONFIG_CDROM_PKTCDVD is not set 874 | # CONFIG_ATA_OVER_ETH is not set 875 | CONFIG_XEN_BLKDEV_FRONTEND=y 876 | CONFIG_XEN_BLKDEV_BACKEND=y 877 | # CONFIG_BLK_DEV_RBD is not set 878 | 879 | # 880 | # NVME Support 881 | # 882 | # CONFIG_NVME_FC is not set 883 | # CONFIG_NVME_TCP is not set 884 | # end of NVME Support 885 | 886 | # 887 | # Misc devices 888 | # 889 | # CONFIG_DUMMY_IRQ is not set 890 | # CONFIG_ENCLOSURE_SERVICES is not set 891 | # CONFIG_SRAM is not set 892 | # CONFIG_XILINX_SDFEC is not set 893 | # CONFIG_PVPANIC is not set 894 | # CONFIG_C2PORT is not set 895 | 896 | # 897 | # EEPROM support 898 | # 899 | # CONFIG_EEPROM_93CX6 is not set 900 | # end of EEPROM support 901 | 902 | # 903 | # Texas Instruments shared transport line discipline 904 | # 905 | # end of Texas Instruments shared transport line discipline 906 | 907 | # 908 | # Altera FPGA firmware download module (requires I2C) 909 | # 910 | # CONFIG_ECHO is not set 911 | # end of Misc devices 912 | 913 | # 914 | # SCSI device support 915 | # 916 | CONFIG_SCSI_MOD=y 917 | # CONFIG_RAID_ATTRS is not set 918 | # CONFIG_SCSI is not set 919 | # end of SCSI device support 920 | 921 | CONFIG_HAVE_PATA_PLATFORM=y 922 | # CONFIG_ATA is not set 923 | # CONFIG_MD is not set 924 | # CONFIG_TARGET_CORE is not set 925 | CONFIG_NETDEVICES=y 926 | CONFIG_NET_CORE=y 927 | # CONFIG_BONDING is not set 928 | # CONFIG_DUMMY is not set 929 | # CONFIG_WIREGUARD is not set 930 | # CONFIG_EQUALIZER is not set 931 | # CONFIG_NET_TEAM is not set 932 | # CONFIG_MACVLAN is not set 933 | # CONFIG_IPVLAN is not set 934 | # CONFIG_VXLAN is not set 935 | # CONFIG_GENEVE is not set 936 | # CONFIG_BAREUDP is not set 937 | # CONFIG_GTP is not set 938 | # CONFIG_MACSEC is not set 939 | # CONFIG_NETCONSOLE is not set 940 | # CONFIG_TUN is not set 941 | # CONFIG_TUN_VNET_CROSS_LE is not set 942 | # CONFIG_VETH is not set 943 | # CONFIG_NLMON is not set 944 | 945 | # 946 | # Distributed Switch Architecture drivers 947 | # 948 | # end of Distributed Switch Architecture drivers 949 | 950 | # CONFIG_ETHERNET is not set 951 | # CONFIG_PHYLIB is not set 952 | # CONFIG_MDIO_DEVICE is not set 953 | 954 | # 955 | # PCS device drivers 956 | # 957 | # end of PCS device drivers 958 | 959 | # CONFIG_PPP is not set 960 | # CONFIG_SLIP is not set 961 | 962 | # 963 | # Host-side USB support is needed for USB Network Adapter support 964 | # 965 | # CONFIG_WLAN is not set 966 | 967 | # 968 | # Enable WiMAX (Networking options) to see the WiMAX drivers 969 | # 970 | # CONFIG_WAN is not set 971 | CONFIG_XEN_NETDEV_FRONTEND=y 972 | CONFIG_XEN_NETDEV_BACKEND=y 973 | # CONFIG_NET_FAILOVER is not set 974 | # CONFIG_ISDN is not set 975 | # CONFIG_NVM is not set 976 | 977 | # 978 | # Input device support 979 | # 980 | CONFIG_INPUT=y 981 | # CONFIG_INPUT_FF_MEMLESS is not set 982 | # CONFIG_INPUT_POLLDEV is not set 983 | # CONFIG_INPUT_SPARSEKMAP is not set 984 | # CONFIG_INPUT_MATRIXKMAP is not set 985 | 986 | # 987 | # Userland interfaces 988 | # 989 | # CONFIG_INPUT_MOUSEDEV is not set 990 | # CONFIG_INPUT_JOYDEV is not set 991 | # CONFIG_INPUT_EVDEV is not set 992 | # CONFIG_INPUT_EVBUG is not set 993 | 994 | # 995 | # Input Device Drivers 996 | # 997 | # CONFIG_INPUT_KEYBOARD is not set 998 | # CONFIG_INPUT_MOUSE is not set 999 | # CONFIG_INPUT_JOYSTICK is not set 1000 | # CONFIG_INPUT_TABLET is not set 1001 | # CONFIG_INPUT_TOUCHSCREEN is not set 1002 | # CONFIG_INPUT_MISC is not set 1003 | # CONFIG_RMI4_CORE is not set 1004 | 1005 | # 1006 | # Hardware I/O ports 1007 | # 1008 | # CONFIG_SERIO is not set 1009 | # CONFIG_GAMEPORT is not set 1010 | # end of Hardware I/O ports 1011 | # end of Input device support 1012 | 1013 | # 1014 | # Character devices 1015 | # 1016 | CONFIG_TTY=y 1017 | CONFIG_VT=y 1018 | CONFIG_CONSOLE_TRANSLATIONS=y 1019 | CONFIG_VT_CONSOLE=y 1020 | CONFIG_HW_CONSOLE=y 1021 | # CONFIG_VT_HW_CONSOLE_BINDING is not set 1022 | CONFIG_UNIX98_PTYS=y 1023 | # CONFIG_LEGACY_PTYS is not set 1024 | CONFIG_LDISC_AUTOLOAD=y 1025 | 1026 | # 1027 | # Serial drivers 1028 | # 1029 | # CONFIG_SERIAL_8250 is not set 1030 | 1031 | # 1032 | # Non-8250 serial port support 1033 | # 1034 | # CONFIG_SERIAL_AMBA_PL010 is not set 1035 | # CONFIG_SERIAL_AMBA_PL011 is not set 1036 | # CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST is not set 1037 | # CONFIG_SERIAL_UARTLITE is not set 1038 | # CONFIG_SERIAL_SIFIVE is not set 1039 | # CONFIG_SERIAL_SCCNXP is not set 1040 | # CONFIG_SERIAL_ALTERA_JTAGUART is not set 1041 | # CONFIG_SERIAL_ALTERA_UART is not set 1042 | # CONFIG_SERIAL_XILINX_PS_UART is not set 1043 | # CONFIG_SERIAL_ARC is not set 1044 | # CONFIG_SERIAL_FSL_LPUART is not set 1045 | # CONFIG_SERIAL_FSL_LINFLEXUART is not set 1046 | # CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set 1047 | # CONFIG_SERIAL_SPRD is not set 1048 | # end of Serial drivers 1049 | 1050 | # CONFIG_SERIAL_NONSTANDARD is not set 1051 | # CONFIG_N_GSM is not set 1052 | # CONFIG_NULL_TTY is not set 1053 | # CONFIG_TRACE_SINK is not set 1054 | CONFIG_HVC_DRIVER=y 1055 | CONFIG_HVC_IRQ=y 1056 | CONFIG_HVC_XEN=y 1057 | CONFIG_HVC_XEN_FRONTEND=y 1058 | # CONFIG_HVC_DCC is not set 1059 | # CONFIG_SERIAL_DEV_BUS is not set 1060 | # CONFIG_TTY_PRINTK is not set 1061 | # CONFIG_VIRTIO_CONSOLE is not set 1062 | # CONFIG_IPMI_HANDLER is not set 1063 | # CONFIG_HW_RANDOM is not set 1064 | # CONFIG_DEVMEM is not set 1065 | # CONFIG_RAW_DRIVER is not set 1066 | # CONFIG_TCG_TPM is not set 1067 | # CONFIG_XILLYBUS is not set 1068 | # end of Character devices 1069 | 1070 | # CONFIG_RANDOM_TRUST_BOOTLOADER is not set 1071 | 1072 | # 1073 | # I2C support 1074 | # 1075 | # CONFIG_I2C is not set 1076 | # end of I2C support 1077 | 1078 | # CONFIG_I3C is not set 1079 | # CONFIG_SPI is not set 1080 | # CONFIG_SPMI is not set 1081 | # CONFIG_HSI is not set 1082 | # CONFIG_PPS is not set 1083 | 1084 | # 1085 | # PTP clock support 1086 | # 1087 | # CONFIG_PTP_1588_CLOCK is not set 1088 | 1089 | # 1090 | # Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. 1091 | # 1092 | # end of PTP clock support 1093 | 1094 | # CONFIG_PINCTRL is not set 1095 | # CONFIG_GPIOLIB is not set 1096 | # CONFIG_W1 is not set 1097 | CONFIG_POWER_RESET=y 1098 | # CONFIG_POWER_RESET_RESTART is not set 1099 | # CONFIG_POWER_RESET_XGENE is not set 1100 | # CONFIG_POWER_RESET_SYSCON is not set 1101 | # CONFIG_POWER_RESET_SYSCON_POWEROFF is not set 1102 | # CONFIG_NVMEM_REBOOT_MODE is not set 1103 | CONFIG_POWER_SUPPLY=y 1104 | # CONFIG_POWER_SUPPLY_DEBUG is not set 1105 | # CONFIG_PDA_POWER is not set 1106 | # CONFIG_TEST_POWER is not set 1107 | # CONFIG_BATTERY_DS2780 is not set 1108 | # CONFIG_BATTERY_DS2781 is not set 1109 | # CONFIG_BATTERY_BQ27XXX is not set 1110 | # CONFIG_CHARGER_MAX8903 is not set 1111 | # CONFIG_HWMON is not set 1112 | # CONFIG_THERMAL is not set 1113 | # CONFIG_WATCHDOG is not set 1114 | CONFIG_SSB_POSSIBLE=y 1115 | # CONFIG_SSB is not set 1116 | CONFIG_BCMA_POSSIBLE=y 1117 | # CONFIG_BCMA is not set 1118 | 1119 | # 1120 | # Multifunction device drivers 1121 | # 1122 | # CONFIG_MFD_ATMEL_FLEXCOM is not set 1123 | # CONFIG_MFD_ATMEL_HLCDC is not set 1124 | # CONFIG_MFD_MADERA is not set 1125 | # CONFIG_MFD_HI6421_PMIC is not set 1126 | # CONFIG_HTC_PASIC3 is not set 1127 | # CONFIG_MFD_KEMPLD is not set 1128 | # CONFIG_MFD_MT6397 is not set 1129 | # CONFIG_MFD_SM501 is not set 1130 | # CONFIG_ABX500_CORE is not set 1131 | # CONFIG_MFD_SYSCON is not set 1132 | # CONFIG_MFD_TI_AM335X_TSCADC is not set 1133 | # CONFIG_MFD_TQMX86 is not set 1134 | # end of Multifunction device drivers 1135 | 1136 | # CONFIG_REGULATOR is not set 1137 | # CONFIG_RC_CORE is not set 1138 | # CONFIG_MEDIA_CEC_SUPPORT is not set 1139 | # CONFIG_MEDIA_SUPPORT is not set 1140 | 1141 | # 1142 | # Graphics support 1143 | # 1144 | # CONFIG_DRM is not set 1145 | 1146 | # 1147 | # ARM devices 1148 | # 1149 | # end of ARM devices 1150 | 1151 | # CONFIG_DRM_XEN is not set 1152 | 1153 | # 1154 | # Frame buffer Devices 1155 | # 1156 | # CONFIG_FB is not set 1157 | # end of Frame buffer Devices 1158 | 1159 | # 1160 | # Backlight & LCD device support 1161 | # 1162 | # CONFIG_LCD_CLASS_DEVICE is not set 1163 | # CONFIG_BACKLIGHT_CLASS_DEVICE is not set 1164 | # end of Backlight & LCD device support 1165 | 1166 | # 1167 | # Console display driver support 1168 | # 1169 | CONFIG_DUMMY_CONSOLE=y 1170 | CONFIG_DUMMY_CONSOLE_COLUMNS=80 1171 | CONFIG_DUMMY_CONSOLE_ROWS=25 1172 | # end of Console display driver support 1173 | # end of Graphics support 1174 | 1175 | # CONFIG_SOUND is not set 1176 | 1177 | # 1178 | # HID support 1179 | # 1180 | CONFIG_HID=y 1181 | # CONFIG_HID_BATTERY_STRENGTH is not set 1182 | # CONFIG_HIDRAW is not set 1183 | # CONFIG_UHID is not set 1184 | CONFIG_HID_GENERIC=y 1185 | 1186 | # 1187 | # Special HID drivers 1188 | # 1189 | # CONFIG_HID_A4TECH is not set 1190 | # CONFIG_HID_ACRUX is not set 1191 | # CONFIG_HID_APPLE is not set 1192 | # CONFIG_HID_AUREAL is not set 1193 | # CONFIG_HID_BELKIN is not set 1194 | # CONFIG_HID_CHERRY is not set 1195 | # CONFIG_HID_CHICONY is not set 1196 | # CONFIG_HID_COUGAR is not set 1197 | # CONFIG_HID_MACALLY is not set 1198 | # CONFIG_HID_CMEDIA is not set 1199 | # CONFIG_HID_CYPRESS is not set 1200 | # CONFIG_HID_DRAGONRISE is not set 1201 | # CONFIG_HID_EMS_FF is not set 1202 | # CONFIG_HID_ELECOM is not set 1203 | # CONFIG_HID_EZKEY is not set 1204 | # CONFIG_HID_GEMBIRD is not set 1205 | # CONFIG_HID_GFRM is not set 1206 | # CONFIG_HID_GLORIOUS is not set 1207 | # CONFIG_HID_VIVALDI is not set 1208 | # CONFIG_HID_KEYTOUCH is not set 1209 | # CONFIG_HID_KYE is not set 1210 | # CONFIG_HID_WALTOP is not set 1211 | # CONFIG_HID_VIEWSONIC is not set 1212 | # CONFIG_HID_GYRATION is not set 1213 | # CONFIG_HID_ICADE is not set 1214 | # CONFIG_HID_ITE is not set 1215 | # CONFIG_HID_JABRA is not set 1216 | # CONFIG_HID_TWINHAN is not set 1217 | # CONFIG_HID_KENSINGTON is not set 1218 | # CONFIG_HID_LCPOWER is not set 1219 | # CONFIG_HID_LENOVO is not set 1220 | # CONFIG_HID_MAGICMOUSE is not set 1221 | # CONFIG_HID_MALTRON is not set 1222 | # CONFIG_HID_MAYFLASH is not set 1223 | # CONFIG_HID_REDRAGON is not set 1224 | # CONFIG_HID_MICROSOFT is not set 1225 | # CONFIG_HID_MONTEREY is not set 1226 | # CONFIG_HID_MULTITOUCH is not set 1227 | # CONFIG_HID_NTI is not set 1228 | # CONFIG_HID_ORTEK is not set 1229 | # CONFIG_HID_PANTHERLORD is not set 1230 | # CONFIG_HID_PETALYNX is not set 1231 | # CONFIG_HID_PICOLCD is not set 1232 | # CONFIG_HID_PLANTRONICS is not set 1233 | # CONFIG_HID_PRIMAX is not set 1234 | # CONFIG_HID_SAITEK is not set 1235 | # CONFIG_HID_SAMSUNG is not set 1236 | # CONFIG_HID_SPEEDLINK is not set 1237 | # CONFIG_HID_STEAM is not set 1238 | # CONFIG_HID_STEELSERIES is not set 1239 | # CONFIG_HID_SUNPLUS is not set 1240 | # CONFIG_HID_RMI is not set 1241 | # CONFIG_HID_GREENASIA is not set 1242 | # CONFIG_HID_SMARTJOYPLUS is not set 1243 | # CONFIG_HID_TIVO is not set 1244 | # CONFIG_HID_TOPSEED is not set 1245 | # CONFIG_HID_THRUSTMASTER is not set 1246 | # CONFIG_HID_UDRAW_PS3 is not set 1247 | # CONFIG_HID_XINMO is not set 1248 | # CONFIG_HID_ZEROPLUS is not set 1249 | # CONFIG_HID_ZYDACRON is not set 1250 | # CONFIG_HID_SENSOR_HUB is not set 1251 | # CONFIG_HID_ALPS is not set 1252 | # end of Special HID drivers 1253 | # end of HID support 1254 | 1255 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y 1256 | # CONFIG_USB_SUPPORT is not set 1257 | # CONFIG_MMC is not set 1258 | # CONFIG_MEMSTICK is not set 1259 | # CONFIG_NEW_LEDS is not set 1260 | # CONFIG_ACCESSIBILITY is not set 1261 | # CONFIG_INFINIBAND is not set 1262 | CONFIG_EDAC_SUPPORT=y 1263 | # CONFIG_RTC_CLASS is not set 1264 | # CONFIG_DMADEVICES is not set 1265 | 1266 | # 1267 | # DMABUF options 1268 | # 1269 | # CONFIG_SYNC_FILE is not set 1270 | # CONFIG_DMABUF_HEAPS is not set 1271 | # end of DMABUF options 1272 | 1273 | # CONFIG_AUXDISPLAY is not set 1274 | # CONFIG_UIO is not set 1275 | # CONFIG_VFIO is not set 1276 | # CONFIG_VIRT_DRIVERS is not set 1277 | CONFIG_VIRTIO_MENU=y 1278 | # CONFIG_VIRTIO_MMIO is not set 1279 | # CONFIG_VDPA is not set 1280 | # CONFIG_VHOST_MENU is not set 1281 | 1282 | # 1283 | # Microsoft Hyper-V guest support 1284 | # 1285 | # end of Microsoft Hyper-V guest support 1286 | 1287 | # 1288 | # Xen driver support 1289 | # 1290 | CONFIG_XEN_BALLOON=y 1291 | CONFIG_XEN_SCRUB_PAGES_DEFAULT=y 1292 | CONFIG_XEN_DEV_EVTCHN=y 1293 | CONFIG_XEN_BACKEND=y 1294 | CONFIG_XENFS=y 1295 | CONFIG_XEN_COMPAT_XENFS=y 1296 | CONFIG_XEN_SYS_HYPERVISOR=y 1297 | CONFIG_XEN_XENBUS_FRONTEND=y 1298 | CONFIG_XEN_GNTDEV=y 1299 | CONFIG_XEN_GRANT_DEV_ALLOC=y 1300 | # CONFIG_XEN_GRANT_DMA_ALLOC is not set 1301 | CONFIG_SWIOTLB_XEN=y 1302 | CONFIG_XEN_PVCALLS_FRONTEND=y 1303 | CONFIG_XEN_PVCALLS_BACKEND=y 1304 | CONFIG_XEN_PRIVCMD=y 1305 | CONFIG_XEN_AUTO_XLATE=y 1306 | # end of Xen driver support 1307 | 1308 | # CONFIG_GREYBUS is not set 1309 | # CONFIG_STAGING is not set 1310 | # CONFIG_GOLDFISH is not set 1311 | # CONFIG_CHROME_PLATFORMS is not set 1312 | # CONFIG_MELLANOX_PLATFORM is not set 1313 | CONFIG_HAVE_CLK=y 1314 | CONFIG_CLKDEV_LOOKUP=y 1315 | CONFIG_HAVE_CLK_PREPARE=y 1316 | CONFIG_COMMON_CLK=y 1317 | # CONFIG_CLK_QORIQ is not set 1318 | # CONFIG_COMMON_CLK_XGENE is not set 1319 | # CONFIG_COMMON_CLK_FIXED_MMIO is not set 1320 | # CONFIG_HWSPINLOCK is not set 1321 | 1322 | # 1323 | # Clock Source drivers 1324 | # 1325 | CONFIG_TIMER_OF=y 1326 | CONFIG_TIMER_PROBE=y 1327 | CONFIG_ARM_ARCH_TIMER=y 1328 | # CONFIG_ARM_ARCH_TIMER_EVTSTREAM is not set 1329 | # CONFIG_FSL_ERRATUM_A008585 is not set 1330 | # CONFIG_HISILICON_ERRATUM_161010101 is not set 1331 | # CONFIG_ARM64_ERRATUM_858921 is not set 1332 | # CONFIG_MICROCHIP_PIT64B is not set 1333 | # end of Clock Source drivers 1334 | 1335 | # CONFIG_MAILBOX is not set 1336 | # CONFIG_IOMMU_SUPPORT is not set 1337 | 1338 | # 1339 | # Remoteproc drivers 1340 | # 1341 | # CONFIG_REMOTEPROC is not set 1342 | # end of Remoteproc drivers 1343 | 1344 | # 1345 | # Rpmsg drivers 1346 | # 1347 | # CONFIG_RPMSG_VIRTIO is not set 1348 | # end of Rpmsg drivers 1349 | 1350 | # CONFIG_SOUNDWIRE is not set 1351 | 1352 | # 1353 | # SOC (System On Chip) specific Drivers 1354 | # 1355 | 1356 | # 1357 | # Amlogic SoC drivers 1358 | # 1359 | # end of Amlogic SoC drivers 1360 | 1361 | # 1362 | # Aspeed SoC drivers 1363 | # 1364 | # end of Aspeed SoC drivers 1365 | 1366 | # 1367 | # Broadcom SoC drivers 1368 | # 1369 | # CONFIG_SOC_BRCMSTB is not set 1370 | # end of Broadcom SoC drivers 1371 | 1372 | # 1373 | # NXP/Freescale QorIQ SoC drivers 1374 | # 1375 | # CONFIG_QUICC_ENGINE is not set 1376 | # end of NXP/Freescale QorIQ SoC drivers 1377 | 1378 | # 1379 | # i.MX SoC drivers 1380 | # 1381 | # end of i.MX SoC drivers 1382 | 1383 | # 1384 | # Qualcomm SoC drivers 1385 | # 1386 | # end of Qualcomm SoC drivers 1387 | 1388 | # CONFIG_SOC_TI is not set 1389 | 1390 | # 1391 | # Xilinx SoC drivers 1392 | # 1393 | # CONFIG_XILINX_VCU is not set 1394 | # end of Xilinx SoC drivers 1395 | # end of SOC (System On Chip) specific Drivers 1396 | 1397 | # CONFIG_PM_DEVFREQ is not set 1398 | # CONFIG_EXTCON is not set 1399 | # CONFIG_MEMORY is not set 1400 | # CONFIG_IIO is not set 1401 | # CONFIG_PWM is not set 1402 | 1403 | # 1404 | # IRQ chip support 1405 | # 1406 | CONFIG_IRQCHIP=y 1407 | CONFIG_ARM_GIC=y 1408 | CONFIG_ARM_GIC_MAX_NR=1 1409 | CONFIG_ARM_GIC_V3=y 1410 | CONFIG_ARM_GIC_V3_ITS=y 1411 | # CONFIG_AL_FIC is not set 1412 | CONFIG_PARTITION_PERCPU=y 1413 | # end of IRQ chip support 1414 | 1415 | # CONFIG_IPACK_BUS is not set 1416 | # CONFIG_RESET_CONTROLLER is not set 1417 | 1418 | # 1419 | # PHY Subsystem 1420 | # 1421 | # CONFIG_GENERIC_PHY is not set 1422 | # CONFIG_PHY_XGENE is not set 1423 | # CONFIG_BCM_KONA_USB2_PHY is not set 1424 | # CONFIG_PHY_CADENCE_TORRENT is not set 1425 | # CONFIG_PHY_CADENCE_DPHY is not set 1426 | # CONFIG_PHY_CADENCE_SALVO is not set 1427 | # CONFIG_PHY_FSL_IMX8MQ_USB is not set 1428 | # CONFIG_PHY_MIXEL_MIPI_DPHY is not set 1429 | # CONFIG_PHY_PXA_28NM_HSIC is not set 1430 | # CONFIG_PHY_PXA_28NM_USB2 is not set 1431 | # end of PHY Subsystem 1432 | 1433 | # CONFIG_POWERCAP is not set 1434 | # CONFIG_MCB is not set 1435 | # CONFIG_RAS is not set 1436 | 1437 | # 1438 | # Android 1439 | # 1440 | # CONFIG_ANDROID is not set 1441 | # end of Android 1442 | 1443 | # CONFIG_LIBNVDIMM is not set 1444 | # CONFIG_DAX is not set 1445 | # CONFIG_NVMEM is not set 1446 | 1447 | # 1448 | # HW tracing support 1449 | # 1450 | # CONFIG_STM is not set 1451 | # CONFIG_INTEL_TH is not set 1452 | # end of HW tracing support 1453 | 1454 | # CONFIG_FPGA is not set 1455 | # CONFIG_FSI is not set 1456 | # CONFIG_TEE is not set 1457 | # CONFIG_SIOX is not set 1458 | # CONFIG_SLIMBUS is not set 1459 | # CONFIG_INTERCONNECT is not set 1460 | # CONFIG_COUNTER is not set 1461 | # end of Device Drivers 1462 | 1463 | # 1464 | # File systems 1465 | # 1466 | CONFIG_DCACHE_WORD_ACCESS=y 1467 | # CONFIG_VALIDATE_FS_PARSER is not set 1468 | # CONFIG_EXT2_FS is not set 1469 | # CONFIG_EXT3_FS is not set 1470 | # CONFIG_EXT4_FS is not set 1471 | # CONFIG_REISERFS_FS is not set 1472 | # CONFIG_JFS_FS is not set 1473 | # CONFIG_XFS_FS is not set 1474 | # CONFIG_GFS2_FS is not set 1475 | # CONFIG_BTRFS_FS is not set 1476 | # CONFIG_NILFS2_FS is not set 1477 | # CONFIG_F2FS_FS is not set 1478 | # CONFIG_FS_DAX is not set 1479 | CONFIG_EXPORTFS=y 1480 | # CONFIG_EXPORTFS_BLOCK_OPS is not set 1481 | # CONFIG_FILE_LOCKING is not set 1482 | # CONFIG_FS_ENCRYPTION is not set 1483 | # CONFIG_FS_VERITY is not set 1484 | # CONFIG_DNOTIFY is not set 1485 | # CONFIG_INOTIFY_USER is not set 1486 | # CONFIG_FANOTIFY is not set 1487 | # CONFIG_QUOTA is not set 1488 | # CONFIG_AUTOFS4_FS is not set 1489 | # CONFIG_AUTOFS_FS is not set 1490 | # CONFIG_FUSE_FS is not set 1491 | # CONFIG_OVERLAY_FS is not set 1492 | 1493 | # 1494 | # Caches 1495 | # 1496 | # CONFIG_FSCACHE is not set 1497 | # end of Caches 1498 | 1499 | # 1500 | # CD-ROM/DVD Filesystems 1501 | # 1502 | # CONFIG_ISO9660_FS is not set 1503 | # CONFIG_UDF_FS is not set 1504 | # end of CD-ROM/DVD Filesystems 1505 | 1506 | # 1507 | # DOS/FAT/EXFAT/NT Filesystems 1508 | # 1509 | # CONFIG_MSDOS_FS is not set 1510 | # CONFIG_VFAT_FS is not set 1511 | # CONFIG_EXFAT_FS is not set 1512 | # CONFIG_NTFS_FS is not set 1513 | # end of DOS/FAT/EXFAT/NT Filesystems 1514 | 1515 | # 1516 | # Pseudo filesystems 1517 | # 1518 | CONFIG_PROC_FS=y 1519 | # CONFIG_PROC_KCORE is not set 1520 | CONFIG_PROC_SYSCTL=y 1521 | CONFIG_PROC_PAGE_MONITOR=y 1522 | # CONFIG_PROC_CHILDREN is not set 1523 | CONFIG_KERNFS=y 1524 | CONFIG_SYSFS=y 1525 | CONFIG_TMPFS=y 1526 | # CONFIG_TMPFS_POSIX_ACL is not set 1527 | # CONFIG_TMPFS_XATTR is not set 1528 | # CONFIG_TMPFS_INODE64 is not set 1529 | # CONFIG_HUGETLBFS is not set 1530 | CONFIG_MEMFD_CREATE=y 1531 | CONFIG_ARCH_HAS_GIGANTIC_PAGE=y 1532 | # CONFIG_CONFIGFS_FS is not set 1533 | # end of Pseudo filesystems 1534 | 1535 | # CONFIG_MISC_FILESYSTEMS is not set 1536 | CONFIG_NETWORK_FILESYSTEMS=y 1537 | # CONFIG_CEPH_FS is not set 1538 | # CONFIG_CIFS is not set 1539 | # CONFIG_CODA_FS is not set 1540 | # CONFIG_AFS_FS is not set 1541 | CONFIG_9P_FS=y 1542 | # CONFIG_9P_FS_POSIX_ACL is not set 1543 | # CONFIG_9P_FS_SECURITY is not set 1544 | # CONFIG_NLS is not set 1545 | # CONFIG_UNICODE is not set 1546 | CONFIG_IO_WQ=y 1547 | # end of File systems 1548 | 1549 | # 1550 | # Security options 1551 | # 1552 | CONFIG_KEYS=y 1553 | # CONFIG_KEYS_REQUEST_CACHE is not set 1554 | # CONFIG_PERSISTENT_KEYRINGS is not set 1555 | # CONFIG_ENCRYPTED_KEYS is not set 1556 | # CONFIG_KEY_DH_OPERATIONS is not set 1557 | # CONFIG_SECURITY_DMESG_RESTRICT is not set 1558 | # CONFIG_SECURITY is not set 1559 | # CONFIG_SECURITYFS is not set 1560 | # CONFIG_FORTIFY_SOURCE is not set 1561 | # CONFIG_STATIC_USERMODEHELPER is not set 1562 | CONFIG_DEFAULT_SECURITY_DAC=y 1563 | CONFIG_LSM="lockdown,yama,loadpin,safesetid,integrity" 1564 | 1565 | # 1566 | # Kernel hardening options 1567 | # 1568 | 1569 | # 1570 | # Memory initialization 1571 | # 1572 | CONFIG_INIT_STACK_NONE=y 1573 | # CONFIG_GCC_PLUGIN_STRUCTLEAK_USER is not set 1574 | # CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF is not set 1575 | # CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL is not set 1576 | # CONFIG_GCC_PLUGIN_STACKLEAK is not set 1577 | # CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set 1578 | # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set 1579 | # end of Memory initialization 1580 | # end of Kernel hardening options 1581 | # end of Security options 1582 | 1583 | CONFIG_CRYPTO=y 1584 | 1585 | # 1586 | # Crypto core or helper 1587 | # 1588 | CONFIG_CRYPTO_ALGAPI=y 1589 | CONFIG_CRYPTO_ALGAPI2=y 1590 | CONFIG_CRYPTO_AEAD=y 1591 | CONFIG_CRYPTO_AEAD2=y 1592 | CONFIG_CRYPTO_SKCIPHER2=y 1593 | CONFIG_CRYPTO_HASH=y 1594 | CONFIG_CRYPTO_HASH2=y 1595 | CONFIG_CRYPTO_RNG=y 1596 | CONFIG_CRYPTO_RNG2=y 1597 | CONFIG_CRYPTO_RNG_DEFAULT=y 1598 | CONFIG_CRYPTO_AKCIPHER2=y 1599 | CONFIG_CRYPTO_AKCIPHER=y 1600 | CONFIG_CRYPTO_KPP2=y 1601 | CONFIG_CRYPTO_ACOMP2=y 1602 | CONFIG_CRYPTO_MANAGER=y 1603 | CONFIG_CRYPTO_MANAGER2=y 1604 | # CONFIG_CRYPTO_USER is not set 1605 | CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y 1606 | CONFIG_CRYPTO_NULL=y 1607 | CONFIG_CRYPTO_NULL2=y 1608 | # CONFIG_CRYPTO_PCRYPT is not set 1609 | # CONFIG_CRYPTO_CRYPTD is not set 1610 | # CONFIG_CRYPTO_AUTHENC is not set 1611 | 1612 | # 1613 | # Public-key cryptography 1614 | # 1615 | CONFIG_CRYPTO_RSA=y 1616 | # CONFIG_CRYPTO_DH is not set 1617 | # CONFIG_CRYPTO_ECDH is not set 1618 | # CONFIG_CRYPTO_ECRDSA is not set 1619 | # CONFIG_CRYPTO_SM2 is not set 1620 | # CONFIG_CRYPTO_CURVE25519 is not set 1621 | 1622 | # 1623 | # Authenticated Encryption with Associated Data 1624 | # 1625 | # CONFIG_CRYPTO_CCM is not set 1626 | # CONFIG_CRYPTO_GCM is not set 1627 | # CONFIG_CRYPTO_CHACHA20POLY1305 is not set 1628 | # CONFIG_CRYPTO_AEGIS128 is not set 1629 | # CONFIG_CRYPTO_SEQIV is not set 1630 | CONFIG_CRYPTO_ECHAINIV=y 1631 | 1632 | # 1633 | # Block modes 1634 | # 1635 | # CONFIG_CRYPTO_CBC is not set 1636 | # CONFIG_CRYPTO_CFB is not set 1637 | # CONFIG_CRYPTO_CTR is not set 1638 | # CONFIG_CRYPTO_CTS is not set 1639 | # CONFIG_CRYPTO_ECB is not set 1640 | # CONFIG_CRYPTO_LRW is not set 1641 | # CONFIG_CRYPTO_OFB is not set 1642 | # CONFIG_CRYPTO_PCBC is not set 1643 | # CONFIG_CRYPTO_XTS is not set 1644 | # CONFIG_CRYPTO_KEYWRAP is not set 1645 | # CONFIG_CRYPTO_ADIANTUM is not set 1646 | # CONFIG_CRYPTO_ESSIV is not set 1647 | 1648 | # 1649 | # Hash modes 1650 | # 1651 | # CONFIG_CRYPTO_CMAC is not set 1652 | CONFIG_CRYPTO_HMAC=y 1653 | # CONFIG_CRYPTO_XCBC is not set 1654 | # CONFIG_CRYPTO_VMAC is not set 1655 | 1656 | # 1657 | # Digest 1658 | # 1659 | # CONFIG_CRYPTO_CRC32C is not set 1660 | # CONFIG_CRYPTO_CRC32 is not set 1661 | # CONFIG_CRYPTO_XXHASH is not set 1662 | # CONFIG_CRYPTO_BLAKE2B is not set 1663 | # CONFIG_CRYPTO_BLAKE2S is not set 1664 | # CONFIG_CRYPTO_CRCT10DIF is not set 1665 | # CONFIG_CRYPTO_GHASH is not set 1666 | # CONFIG_CRYPTO_POLY1305 is not set 1667 | # CONFIG_CRYPTO_MD4 is not set 1668 | # CONFIG_CRYPTO_MD5 is not set 1669 | # CONFIG_CRYPTO_MICHAEL_MIC is not set 1670 | # CONFIG_CRYPTO_RMD128 is not set 1671 | # CONFIG_CRYPTO_RMD160 is not set 1672 | # CONFIG_CRYPTO_RMD256 is not set 1673 | # CONFIG_CRYPTO_RMD320 is not set 1674 | # CONFIG_CRYPTO_SHA1 is not set 1675 | CONFIG_CRYPTO_SHA256=y 1676 | # CONFIG_CRYPTO_SHA512 is not set 1677 | # CONFIG_CRYPTO_SHA3 is not set 1678 | # CONFIG_CRYPTO_SM3 is not set 1679 | # CONFIG_CRYPTO_STREEBOG is not set 1680 | # CONFIG_CRYPTO_TGR192 is not set 1681 | # CONFIG_CRYPTO_WP512 is not set 1682 | 1683 | # 1684 | # Ciphers 1685 | # 1686 | CONFIG_CRYPTO_AES=y 1687 | # CONFIG_CRYPTO_AES_TI is not set 1688 | # CONFIG_CRYPTO_BLOWFISH is not set 1689 | # CONFIG_CRYPTO_CAMELLIA is not set 1690 | # CONFIG_CRYPTO_CAST5 is not set 1691 | # CONFIG_CRYPTO_CAST6 is not set 1692 | # CONFIG_CRYPTO_DES is not set 1693 | # CONFIG_CRYPTO_FCRYPT is not set 1694 | # CONFIG_CRYPTO_SALSA20 is not set 1695 | # CONFIG_CRYPTO_CHACHA20 is not set 1696 | # CONFIG_CRYPTO_SERPENT is not set 1697 | # CONFIG_CRYPTO_SM4 is not set 1698 | # CONFIG_CRYPTO_TWOFISH is not set 1699 | 1700 | # 1701 | # Compression 1702 | # 1703 | # CONFIG_CRYPTO_DEFLATE is not set 1704 | # CONFIG_CRYPTO_LZO is not set 1705 | # CONFIG_CRYPTO_842 is not set 1706 | # CONFIG_CRYPTO_LZ4 is not set 1707 | # CONFIG_CRYPTO_LZ4HC is not set 1708 | # CONFIG_CRYPTO_ZSTD is not set 1709 | 1710 | # 1711 | # Random Number Generation 1712 | # 1713 | # CONFIG_CRYPTO_ANSI_CPRNG is not set 1714 | CONFIG_CRYPTO_DRBG_MENU=y 1715 | CONFIG_CRYPTO_DRBG_HMAC=y 1716 | # CONFIG_CRYPTO_DRBG_HASH is not set 1717 | # CONFIG_CRYPTO_DRBG_CTR is not set 1718 | CONFIG_CRYPTO_DRBG=y 1719 | CONFIG_CRYPTO_JITTERENTROPY=y 1720 | # CONFIG_CRYPTO_USER_API_HASH is not set 1721 | # CONFIG_CRYPTO_USER_API_SKCIPHER is not set 1722 | # CONFIG_CRYPTO_USER_API_RNG is not set 1723 | # CONFIG_CRYPTO_USER_API_AEAD is not set 1724 | CONFIG_CRYPTO_HASH_INFO=y 1725 | 1726 | # 1727 | # Crypto library routines 1728 | # 1729 | CONFIG_CRYPTO_LIB_AES=y 1730 | # CONFIG_CRYPTO_LIB_BLAKE2S is not set 1731 | # CONFIG_CRYPTO_LIB_CHACHA is not set 1732 | # CONFIG_CRYPTO_LIB_CURVE25519 is not set 1733 | CONFIG_CRYPTO_LIB_POLY1305_RSIZE=9 1734 | # CONFIG_CRYPTO_LIB_POLY1305 is not set 1735 | # CONFIG_CRYPTO_LIB_CHACHA20POLY1305 is not set 1736 | CONFIG_CRYPTO_LIB_SHA256=y 1737 | CONFIG_CRYPTO_HW=y 1738 | # CONFIG_CRYPTO_DEV_CCP is not set 1739 | # CONFIG_CRYPTO_DEV_SAFEXCEL is not set 1740 | # CONFIG_CRYPTO_DEV_CCREE is not set 1741 | # CONFIG_CRYPTO_DEV_HISI_SEC is not set 1742 | # CONFIG_CRYPTO_DEV_AMLOGIC_GXL is not set 1743 | CONFIG_ASYMMETRIC_KEY_TYPE=y 1744 | CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y 1745 | CONFIG_X509_CERTIFICATE_PARSER=y 1746 | # CONFIG_PKCS8_PRIVATE_KEY_PARSER is not set 1747 | CONFIG_PKCS7_MESSAGE_PARSER=y 1748 | 1749 | # 1750 | # Certificates for signature checking 1751 | # 1752 | CONFIG_SYSTEM_TRUSTED_KEYRING=y 1753 | CONFIG_SYSTEM_TRUSTED_KEYS="" 1754 | # CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set 1755 | # CONFIG_SECONDARY_TRUSTED_KEYRING is not set 1756 | # CONFIG_SYSTEM_BLACKLIST_KEYRING is not set 1757 | # end of Certificates for signature checking 1758 | 1759 | # 1760 | # Library routines 1761 | # 1762 | # CONFIG_PACKING is not set 1763 | CONFIG_BITREVERSE=y 1764 | CONFIG_HAVE_ARCH_BITREVERSE=y 1765 | CONFIG_GENERIC_STRNCPY_FROM_USER=y 1766 | CONFIG_GENERIC_STRNLEN_USER=y 1767 | CONFIG_GENERIC_NET_UTILS=y 1768 | # CONFIG_CORDIC is not set 1769 | # CONFIG_PRIME_NUMBERS is not set 1770 | CONFIG_RATIONAL=y 1771 | CONFIG_GENERIC_PCI_IOMAP=y 1772 | CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y 1773 | CONFIG_ARCH_HAS_FAST_MULTIPLIER=y 1774 | CONFIG_ARCH_USE_SYM_ANNOTATIONS=y 1775 | # CONFIG_INDIRECT_PIO is not set 1776 | # CONFIG_CRC_CCITT is not set 1777 | # CONFIG_CRC16 is not set 1778 | # CONFIG_CRC_T10DIF is not set 1779 | # CONFIG_CRC_ITU_T is not set 1780 | CONFIG_CRC32=y 1781 | # CONFIG_CRC32_SELFTEST is not set 1782 | CONFIG_CRC32_SLICEBY8=y 1783 | # CONFIG_CRC32_SLICEBY4 is not set 1784 | # CONFIG_CRC32_SARWATE is not set 1785 | # CONFIG_CRC32_BIT is not set 1786 | # CONFIG_CRC64 is not set 1787 | # CONFIG_CRC4 is not set 1788 | # CONFIG_CRC7 is not set 1789 | # CONFIG_LIBCRC32C is not set 1790 | # CONFIG_CRC8 is not set 1791 | CONFIG_XXHASH=y 1792 | CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y 1793 | # CONFIG_RANDOM32_SELFTEST is not set 1794 | CONFIG_ZLIB_INFLATE=y 1795 | CONFIG_ZSTD_DECOMPRESS=y 1796 | # CONFIG_XZ_DEC is not set 1797 | CONFIG_DECOMPRESS_GZIP=y 1798 | CONFIG_DECOMPRESS_BZIP2=y 1799 | CONFIG_DECOMPRESS_ZSTD=y 1800 | CONFIG_GENERIC_ALLOCATOR=y 1801 | CONFIG_INTERVAL_TREE=y 1802 | CONFIG_ASSOCIATIVE_ARRAY=y 1803 | CONFIG_HAS_IOMEM=y 1804 | CONFIG_HAS_DMA=y 1805 | CONFIG_DMA_OPS=y 1806 | CONFIG_NEED_SG_DMA_LENGTH=y 1807 | CONFIG_NEED_DMA_MAP_STATE=y 1808 | CONFIG_ARCH_DMA_ADDR_T_64BIT=y 1809 | CONFIG_DMA_DECLARE_COHERENT=y 1810 | CONFIG_ARCH_HAS_SETUP_DMA_OPS=y 1811 | CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y 1812 | CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y 1813 | CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y 1814 | CONFIG_SWIOTLB=y 1815 | CONFIG_DMA_NONCOHERENT_MMAP=y 1816 | CONFIG_DMA_COHERENT_POOL=y 1817 | CONFIG_DMA_REMAP=y 1818 | CONFIG_DMA_DIRECT_REMAP=y 1819 | # CONFIG_DMA_API_DEBUG is not set 1820 | CONFIG_SGL_ALLOC=y 1821 | CONFIG_CPU_RMAP=y 1822 | CONFIG_DQL=y 1823 | CONFIG_GLOB=y 1824 | # CONFIG_GLOB_SELFTEST is not set 1825 | CONFIG_NLATTR=y 1826 | CONFIG_CLZ_TAB=y 1827 | # CONFIG_IRQ_POLL is not set 1828 | CONFIG_MPILIB=y 1829 | CONFIG_LIBFDT=y 1830 | CONFIG_OID_REGISTRY=y 1831 | CONFIG_HAVE_GENERIC_VDSO=y 1832 | CONFIG_GENERIC_GETTIMEOFDAY=y 1833 | CONFIG_GENERIC_VDSO_TIME_NS=y 1834 | CONFIG_ARCH_STACKWALK=y 1835 | CONFIG_SBITMAP=y 1836 | # CONFIG_STRING_SELFTEST is not set 1837 | # end of Library routines 1838 | 1839 | # 1840 | # Kernel hacking 1841 | # 1842 | 1843 | # 1844 | # printk and dmesg options 1845 | # 1846 | # CONFIG_PRINTK_TIME is not set 1847 | # CONFIG_PRINTK_CALLER is not set 1848 | CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 1849 | CONFIG_CONSOLE_LOGLEVEL_QUIET=4 1850 | CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 1851 | # CONFIG_BOOT_PRINTK_DELAY is not set 1852 | # CONFIG_DYNAMIC_DEBUG is not set 1853 | # CONFIG_DYNAMIC_DEBUG_CORE is not set 1854 | CONFIG_SYMBOLIC_ERRNAME=y 1855 | # end of printk and dmesg options 1856 | 1857 | # 1858 | # Compile-time checks and compiler options 1859 | # 1860 | # CONFIG_DEBUG_INFO is not set 1861 | # CONFIG_ENABLE_MUST_CHECK is not set 1862 | CONFIG_FRAME_WARN=2048 1863 | # CONFIG_STRIP_ASM_SYMS is not set 1864 | # CONFIG_READABLE_ASM is not set 1865 | # CONFIG_HEADERS_INSTALL is not set 1866 | # CONFIG_DEBUG_SECTION_MISMATCH is not set 1867 | # CONFIG_SECTION_MISMATCH_WARN_ONLY is not set 1868 | # CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_32B is not set 1869 | CONFIG_ARCH_WANT_FRAME_POINTERS=y 1870 | CONFIG_FRAME_POINTER=y 1871 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set 1872 | # end of Compile-time checks and compiler options 1873 | 1874 | # 1875 | # Generic Kernel Debugging Instruments 1876 | # 1877 | # CONFIG_MAGIC_SYSRQ is not set 1878 | # CONFIG_DEBUG_FS is not set 1879 | CONFIG_HAVE_ARCH_KGDB=y 1880 | # CONFIG_KGDB is not set 1881 | CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y 1882 | # CONFIG_UBSAN is not set 1883 | # end of Generic Kernel Debugging Instruments 1884 | 1885 | CONFIG_DEBUG_KERNEL=y 1886 | CONFIG_DEBUG_MISC=y 1887 | 1888 | # 1889 | # Memory Debugging 1890 | # 1891 | # CONFIG_PAGE_EXTENSION is not set 1892 | # CONFIG_DEBUG_PAGEALLOC is not set 1893 | # CONFIG_PAGE_OWNER is not set 1894 | # CONFIG_PAGE_POISONING is not set 1895 | # CONFIG_DEBUG_RODATA_TEST is not set 1896 | CONFIG_ARCH_HAS_DEBUG_WX=y 1897 | # CONFIG_DEBUG_WX is not set 1898 | CONFIG_GENERIC_PTDUMP=y 1899 | # CONFIG_DEBUG_OBJECTS is not set 1900 | CONFIG_HAVE_DEBUG_KMEMLEAK=y 1901 | # CONFIG_DEBUG_KMEMLEAK is not set 1902 | # CONFIG_DEBUG_STACK_USAGE is not set 1903 | # CONFIG_SCHED_STACK_END_CHECK is not set 1904 | CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y 1905 | # CONFIG_DEBUG_VM is not set 1906 | # CONFIG_DEBUG_VM_PGTABLE is not set 1907 | CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y 1908 | # CONFIG_DEBUG_VIRTUAL is not set 1909 | # CONFIG_DEBUG_MEMORY_INIT is not set 1910 | # CONFIG_DEBUG_PER_CPU_MAPS is not set 1911 | CONFIG_HAVE_ARCH_KASAN=y 1912 | CONFIG_HAVE_ARCH_KASAN_SW_TAGS=y 1913 | CONFIG_CC_HAS_KASAN_GENERIC=y 1914 | # end of Memory Debugging 1915 | 1916 | # CONFIG_DEBUG_SHIRQ is not set 1917 | 1918 | # 1919 | # Debug Oops, Lockups and Hangs 1920 | # 1921 | # CONFIG_PANIC_ON_OOPS is not set 1922 | CONFIG_PANIC_ON_OOPS_VALUE=0 1923 | CONFIG_PANIC_TIMEOUT=0 1924 | # CONFIG_SOFTLOCKUP_DETECTOR is not set 1925 | # CONFIG_DETECT_HUNG_TASK is not set 1926 | # CONFIG_WQ_WATCHDOG is not set 1927 | # end of Debug Oops, Lockups and Hangs 1928 | 1929 | # 1930 | # Scheduler Debugging 1931 | # 1932 | CONFIG_SCHED_DEBUG=y 1933 | # CONFIG_SCHEDSTATS is not set 1934 | # end of Scheduler Debugging 1935 | 1936 | # CONFIG_DEBUG_TIMEKEEPING is not set 1937 | 1938 | # 1939 | # Lock Debugging (spinlocks, mutexes, etc...) 1940 | # 1941 | CONFIG_LOCK_DEBUGGING_SUPPORT=y 1942 | # CONFIG_PROVE_LOCKING is not set 1943 | # CONFIG_LOCK_STAT is not set 1944 | # CONFIG_DEBUG_RT_MUTEXES is not set 1945 | # CONFIG_DEBUG_SPINLOCK is not set 1946 | # CONFIG_DEBUG_MUTEXES is not set 1947 | # CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set 1948 | # CONFIG_DEBUG_RWSEMS is not set 1949 | # CONFIG_DEBUG_LOCK_ALLOC is not set 1950 | # CONFIG_DEBUG_ATOMIC_SLEEP is not set 1951 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1952 | # CONFIG_LOCK_TORTURE_TEST is not set 1953 | # CONFIG_WW_MUTEX_SELFTEST is not set 1954 | # CONFIG_SCF_TORTURE_TEST is not set 1955 | # CONFIG_CSD_LOCK_WAIT_DEBUG is not set 1956 | # end of Lock Debugging (spinlocks, mutexes, etc...) 1957 | 1958 | # CONFIG_STACKTRACE is not set 1959 | # CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set 1960 | # CONFIG_DEBUG_KOBJECT is not set 1961 | CONFIG_HAVE_DEBUG_BUGVERBOSE=y 1962 | 1963 | # 1964 | # Debug kernel data structures 1965 | # 1966 | # CONFIG_DEBUG_LIST is not set 1967 | # CONFIG_DEBUG_PLIST is not set 1968 | # CONFIG_DEBUG_SG is not set 1969 | # CONFIG_DEBUG_NOTIFIERS is not set 1970 | # CONFIG_BUG_ON_DATA_CORRUPTION is not set 1971 | # end of Debug kernel data structures 1972 | 1973 | # CONFIG_DEBUG_CREDENTIALS is not set 1974 | 1975 | # 1976 | # RCU Debugging 1977 | # 1978 | # CONFIG_RCU_SCALE_TEST is not set 1979 | # CONFIG_RCU_TORTURE_TEST is not set 1980 | # CONFIG_RCU_REF_SCALE_TEST is not set 1981 | CONFIG_RCU_CPU_STALL_TIMEOUT=21 1982 | # CONFIG_RCU_TRACE is not set 1983 | # CONFIG_RCU_EQS_DEBUG is not set 1984 | # end of RCU Debugging 1985 | 1986 | # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set 1987 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1988 | # CONFIG_LATENCYTOP is not set 1989 | CONFIG_HAVE_FUNCTION_TRACER=y 1990 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 1991 | CONFIG_HAVE_DYNAMIC_FTRACE=y 1992 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1993 | CONFIG_HAVE_SYSCALL_TRACEPOINTS=y 1994 | CONFIG_HAVE_C_RECORDMCOUNT=y 1995 | CONFIG_TRACING_SUPPORT=y 1996 | # CONFIG_FTRACE is not set 1997 | # CONFIG_SAMPLES is not set 1998 | CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y 1999 | 2000 | # 2001 | # arm64 Debugging 2002 | # 2003 | # CONFIG_PID_IN_CONTEXTIDR is not set 2004 | # CONFIG_CORESIGHT is not set 2005 | # end of arm64 Debugging 2006 | 2007 | # 2008 | # Kernel Testing and Coverage 2009 | # 2010 | # CONFIG_KUNIT is not set 2011 | # CONFIG_NOTIFIER_ERROR_INJECTION is not set 2012 | # CONFIG_FAULT_INJECTION is not set 2013 | CONFIG_ARCH_HAS_KCOV=y 2014 | CONFIG_CC_HAS_SANCOV_TRACE_PC=y 2015 | # CONFIG_KCOV is not set 2016 | CONFIG_RUNTIME_TESTING_MENU=y 2017 | # CONFIG_TEST_LIST_SORT is not set 2018 | # CONFIG_TEST_MIN_HEAP is not set 2019 | # CONFIG_TEST_SORT is not set 2020 | # CONFIG_BACKTRACE_SELF_TEST is not set 2021 | # CONFIG_RBTREE_TEST is not set 2022 | # CONFIG_REED_SOLOMON_TEST is not set 2023 | # CONFIG_INTERVAL_TREE_TEST is not set 2024 | # CONFIG_ATOMIC64_SELFTEST is not set 2025 | # CONFIG_TEST_HEXDUMP is not set 2026 | # CONFIG_TEST_STRING_HELPERS is not set 2027 | # CONFIG_TEST_STRSCPY is not set 2028 | # CONFIG_TEST_KSTRTOX is not set 2029 | # CONFIG_TEST_PRINTF is not set 2030 | # CONFIG_TEST_BITMAP is not set 2031 | # CONFIG_TEST_UUID is not set 2032 | # CONFIG_TEST_XARRAY is not set 2033 | # CONFIG_TEST_OVERFLOW is not set 2034 | # CONFIG_TEST_RHASHTABLE is not set 2035 | # CONFIG_TEST_HASH is not set 2036 | # CONFIG_TEST_IDA is not set 2037 | # CONFIG_FIND_BIT_BENCHMARK is not set 2038 | # CONFIG_TEST_SYSCTL is not set 2039 | # CONFIG_TEST_UDELAY is not set 2040 | # CONFIG_TEST_MEMCAT_P is not set 2041 | # CONFIG_TEST_STACKINIT is not set 2042 | # CONFIG_TEST_MEMINIT is not set 2043 | # CONFIG_TEST_FREE_PAGES is not set 2044 | # CONFIG_MEMTEST is not set 2045 | # end of Kernel Testing and Coverage 2046 | # end of Kernel hacking 2047 | -------------------------------------------------------------------------------- /kernel/make-kernel: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | 3 | if [[ $ARCH = "x86" ]] 4 | then 5 | image="bzImage" 6 | elif [[ $ARCH = "arm64" ]] 7 | then 8 | image="Image.gz" 9 | elif [[ $ARCH = "arm" ]] 10 | then 11 | image="zImage" 12 | fi 13 | 14 | kernel_stuffdir=`readlink -f kernel` 15 | kernel_outpath=$kernel_stuffdir/out 16 | kernel_builddir=$kernel_stuffdir/build 17 | kernel_out=$kernel_outpath/kernel 18 | 19 | kernel_version=5.10.74 20 | kernel_name=linux-$kernel_version 21 | kernel_tarball="$kernel_name".tar.xz 22 | kernel_url=https://www.kernel.org/pub/linux/kernel/v5.x/"$kernel_tarball" 23 | kernel_src_config="$kernel_stuffdir"/cutdown-config."$ARCH" 24 | kernel_patchesdir="$kernel_stuffdir"/patches 25 | kernel_image="$kernel_builddir"/"$kernel_name"/arch/"$ARCH"/boot/"$image" 26 | 27 | 28 | rm -rf $kernel_outpath 29 | mkdir -p $kernel_outpath 30 | mkdir -p $kernel_builddir 31 | 32 | if [[ ! -f $kernel_builddir/$kernel_tarball ]] 33 | then 34 | wget -O $kernel_builddir/$kernel_tarball --tries=20 $kernel_url 35 | fi 36 | if [[ ! -d $kernel_builddir/$kernel_name ]] 37 | then 38 | tar --extract --xz --touch --file="$kernel_builddir/$kernel_tarball" --directory="$kernel_builddir" 39 | cd $kernel_builddir/$kernel_name 40 | for i in $kernel_patchesdir/* 41 | do 42 | patch -p1 < $i 43 | done 44 | fi 45 | cd $kernel_builddir/$kernel_name 46 | cp $kernel_src_config .config 47 | make -j "$(getconf _NPROCESSORS_ONLN)" $image 48 | 49 | cp $kernel_image $kernel_out 50 | -------------------------------------------------------------------------------- /kernel/patches/0001-patch-pvcalls_enable.patch: -------------------------------------------------------------------------------- 1 | From b3ce057869beb661b8102dbbfbf895fe35a1f6c4 Mon Sep 17 00:00:00 2001 2 | From: Stefano Stabellini 3 | Date: Fri, 22 Oct 2021 17:51:29 -0700 4 | Subject: [PATCH] Enable pvcalls 5 | 6 | Signed-off-by: Stefano Stabellini 7 | --- 8 | drivers/xen/Makefile | 1 + 9 | drivers/xen/pvcalls.c | 136 ++++++++++++++++++++++++++++++++++++++++++ 10 | include/xen/pvcalls.h | 13 ++++ 11 | net/ipv4/af_inet.c | 6 ++ 12 | 4 files changed, 156 insertions(+) 13 | create mode 100644 drivers/xen/pvcalls.c 14 | create mode 100644 include/xen/pvcalls.h 15 | 16 | diff --git a/drivers/xen/Makefile b/drivers/xen/Makefile 17 | index babdca808861..7192a77a6cbb 100644 18 | --- a/drivers/xen/Makefile 19 | +++ b/drivers/xen/Makefile 20 | @@ -35,6 +35,7 @@ obj-$(CONFIG_XEN_SCSI_BACKEND) += xen-scsiback.o 21 | obj-$(CONFIG_XEN_AUTO_XLATE) += xlate_mmu.o 22 | obj-$(CONFIG_XEN_PVCALLS_BACKEND) += pvcalls-back.o 23 | obj-$(CONFIG_XEN_PVCALLS_FRONTEND) += pvcalls-front.o 24 | +obj-$(CONFIG_XEN_PVCALLS_FRONTEND) += pvcalls.o 25 | xen-evtchn-y := evtchn.o 26 | xen-gntdev-y := gntdev.o 27 | xen-gntdev-$(CONFIG_XEN_GNTDEV_DMABUF) += gntdev-dmabuf.o 28 | diff --git a/drivers/xen/pvcalls.c b/drivers/xen/pvcalls.c 29 | new file mode 100644 30 | index 000000000000..d9acabb78c2c 31 | --- /dev/null 32 | +++ b/drivers/xen/pvcalls.c 33 | @@ -0,0 +1,136 @@ 34 | +#include 35 | +#include 36 | +#include 37 | +#include 38 | +#include 39 | +#include 40 | +#include 41 | +#include 42 | +#include 43 | +#include 44 | +#include 45 | +#include 46 | +#include 47 | +#include 48 | +#include 49 | +#include 50 | +#include 51 | +#include 52 | +#include 53 | +#include 54 | +#include 55 | +#include 56 | + 57 | +#include "pvcalls-front.h" 58 | + 59 | +static int 60 | +pvcalls_bind(struct socket *sock, struct sockaddr *addr, int addr_len) 61 | +{ 62 | + int ret; 63 | + ret = pvcalls_front_socket(sock); 64 | + if (ret < 0) 65 | + return ret; 66 | + return pvcalls_front_bind(sock, addr, addr_len); 67 | +} 68 | + 69 | +static int pvcalls_stream_connect(struct socket *sock, struct sockaddr *addr, 70 | + int addr_len, int flags) 71 | +{ 72 | + int ret; 73 | + ret = pvcalls_front_socket(sock); 74 | + if (ret < 0) 75 | + return ret; 76 | + return pvcalls_front_connect(sock, addr, addr_len, flags); 77 | +} 78 | + 79 | +static int pvcalls_accept(struct socket *sock, struct socket *newsock, int flags, bool kern) 80 | +{ 81 | + return pvcalls_front_accept(sock, newsock, flags); 82 | +} 83 | + 84 | +static int pvcalls_getname(struct socket *sock, 85 | + struct sockaddr *uaddr, int peer) 86 | +{ 87 | + DECLARE_SOCKADDR(struct sockaddr_in *, sin, uaddr); 88 | + 89 | + sin->sin_family = AF_INET; 90 | + memset(sin->sin_zero, 0, sizeof(sin->sin_zero)); 91 | + return sizeof(*sin); 92 | +} 93 | + 94 | +static unsigned int pvcalls_poll(struct file *file, struct socket *sock, 95 | + poll_table *wait) 96 | +{ 97 | + return pvcalls_front_poll(file, sock, wait); 98 | +} 99 | + 100 | +static int pvcalls_listen(struct socket *sock, int backlog) 101 | +{ 102 | + return pvcalls_front_listen(sock, backlog); 103 | +} 104 | + 105 | +static int pvcalls_stream_sendmsg(struct socket *sock, struct msghdr *msg, 106 | + size_t len) 107 | +{ 108 | + return pvcalls_front_sendmsg(sock, msg, len); 109 | +} 110 | + 111 | +static int 112 | +pvcalls_stream_recvmsg(struct socket *sock, struct msghdr *msg, size_t len, 113 | + int flags) 114 | +{ 115 | + return pvcalls_front_recvmsg(sock, msg, len, flags); 116 | +} 117 | + 118 | +static int pvcalls_release(struct socket *s) 119 | +{ 120 | + return pvcalls_front_release(s); 121 | +} 122 | + 123 | +static int pvcalls_shutdown(struct socket *s, int h) 124 | +{ 125 | + return -ENOTSUPP; 126 | +} 127 | + 128 | +static int pvcalls_setsockopt(struct socket *sock, int level, int optname, 129 | + sockptr_t optval, unsigned int optlen) 130 | +{ 131 | + printk(KERN_DEBUG "ignoring setsockopt:0x%x\n", optname); 132 | + return 0; 133 | +} 134 | + 135 | +static int pvcalls_getsockopt(struct socket *sock, int level, int optname, 136 | + char __user *optval, int __user *optlen) 137 | +{ 138 | + printk(KERN_DEBUG "ignoring getsockopt:0x%x\n", optname); 139 | + return 0; 140 | +} 141 | + 142 | +const struct proto_ops pvcalls_stream_ops = { 143 | + .family = PF_INET, 144 | + .owner = THIS_MODULE, 145 | + .release = pvcalls_release, 146 | + .bind = pvcalls_bind, 147 | + .connect = pvcalls_stream_connect, 148 | + .socketpair = sock_no_socketpair, 149 | + .accept = pvcalls_accept, 150 | + .getname = pvcalls_getname, 151 | + .poll = pvcalls_poll, 152 | + .ioctl = sock_no_ioctl, 153 | + .listen = pvcalls_listen, 154 | + .shutdown = pvcalls_shutdown, 155 | + .setsockopt = pvcalls_setsockopt, 156 | + .getsockopt = pvcalls_getsockopt, 157 | + .sendmsg = pvcalls_stream_sendmsg, 158 | + .recvmsg = pvcalls_stream_recvmsg, 159 | + .mmap = sock_no_mmap, 160 | + .sendpage = sock_no_sendpage, 161 | +}; 162 | + 163 | +bool pvcalls = false; 164 | +static __init int xen_parse_pvcalls(char *arg) 165 | +{ 166 | + pvcalls = true; 167 | + return 0; 168 | +} 169 | +early_param("pvcalls", xen_parse_pvcalls); 170 | diff --git a/include/xen/pvcalls.h b/include/xen/pvcalls.h 171 | new file mode 100644 172 | index 000000000000..7a6147528ebd 173 | --- /dev/null 174 | +++ b/include/xen/pvcalls.h 175 | @@ -0,0 +1,13 @@ 176 | +#ifndef __LINUX_NET_PVCALLS_H 177 | +#define __LINUX_NET_PVCALLS_H 178 | + 179 | +#include 180 | + 181 | +#ifdef CONFIG_XEN_PVCALLS_FRONTEND 182 | +extern bool pvcalls; 183 | +#else 184 | +#define pvcalls (0) 185 | +#endif 186 | +extern const struct proto_ops pvcalls_stream_ops; 187 | + 188 | +#endif 189 | diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c 190 | index 8267349afe23..167e611f46de 100644 191 | --- a/net/ipv4/af_inet.c 192 | +++ b/net/ipv4/af_inet.c 193 | @@ -119,6 +119,7 @@ 194 | #include 195 | 196 | #include 197 | +#include 198 | 199 | /* The inetsw table contains everything that inet_create needs to 200 | * build a new socket. 201 | @@ -1988,6 +1989,11 @@ static int __init inet_init(void) 202 | for (r = &inetsw[0]; r < &inetsw[SOCK_MAX]; ++r) 203 | INIT_LIST_HEAD(r); 204 | 205 | + if (pvcalls) { 206 | + pr_info("Enabling pvcalls for AF_INET SOCK_STREAM\n"); 207 | + inetsw_array[0].ops = &pvcalls_stream_ops; 208 | + } 209 | + 210 | for (q = inetsw_array; q < &inetsw_array[INETSW_ARRAY_LEN]; ++q) 211 | inet_register_protosw(q); 212 | 213 | -- 214 | 2.17.1 215 | 216 | -------------------------------------------------------------------------------- /runX: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | workpath=/usr/share/runX 4 | rundir=/run/runX 5 | 6 | guestconsole="" 7 | cmd="" 8 | root="" 9 | bundle="" 10 | pidfile="" 11 | containerid="" 12 | while (( "$#" )) 13 | do 14 | if [[ $1 = "--root" ]] 15 | then 16 | root=$2 17 | shift 18 | shift 19 | continue 20 | fi 21 | if [[ $1 = "--bundle" ]] 22 | then 23 | bundle=$2 24 | shift 25 | shift 26 | continue 27 | fi 28 | if [[ $1 = "--pid-file" ]] 29 | then 30 | pidfile=$2 31 | shift 32 | shift 33 | continue 34 | fi 35 | if [[ $1 = "--console-socket" ]] 36 | then 37 | guestconsole="$2" 38 | shift 39 | shift 40 | continue 41 | fi 42 | if [[ $1 = "--no-pivot" ]] 43 | then 44 | shift 45 | continue 46 | fi 47 | if [[ $1 = "--"* ]] 48 | then 49 | shift 50 | shift 51 | continue 52 | fi 53 | if test -z "$cmd" 54 | then 55 | cmd=$1 56 | shift 57 | continue 58 | fi 59 | containerid=$1 60 | break 61 | done 62 | 63 | if ! test "$containerid" 64 | then 65 | echo "no containerid given, exiting" 66 | exit 1 67 | fi 68 | 69 | crundir="$rundir"/"$containerid" 70 | 71 | if test "$cmd" = "create" 72 | then 73 | rm -rf "$crundir" 74 | fi 75 | 76 | if test ! -d "$crundir" 77 | then 78 | mkdir -p "$crundir" 79 | fi 80 | 81 | if test \( "$bundle" \) -a \( ! -f "$crundir"/bundle \) 82 | then 83 | echo -n "$bundle" > "$crundir"/bundle 84 | 85 | if test -f "$bundle"/config.json 86 | then 87 | rootfs="$( jq -r -c '.["root"]["path"]' "$bundle"/config.json )" 88 | if [[ "$rootfs" != /* ]] 89 | then 90 | rootfs="$bundle"/"$rootfs" 91 | fi 92 | echo -n "$rootfs" > "$crundir"/rootfs 93 | else 94 | echo "can't determine rootfs, erring out" 95 | exit 1 96 | fi 97 | fi 98 | 99 | if test \( "$pidfile" \) -a \( ! -f "$crundir"/pidfile \) 100 | then 101 | echo -n "$pidfile" > "$crundir"/pidfile 102 | fi 103 | 104 | if test $cmd = "state" 105 | then 106 | $workpath/state $containerid "$crundir" 107 | elif test $cmd = "start" 108 | then 109 | $workpath/start $containerid 110 | elif test $cmd = "pause" 111 | then 112 | $workpath/pause $containerid pause 113 | elif test $cmd = "resume" 114 | then 115 | $workpath/pause $containerid resume 116 | elif test $cmd = "kill" 117 | then 118 | $workpath/delete $containerid 119 | $workpath/mount $containerid "$crundir" unmount 120 | elif test $cmd = "create" 121 | then 122 | $workpath/mount $containerid "$crundir" mount 123 | $workpath/create $containerid "$crundir" 124 | 125 | if test "$guestconsole" 126 | then 127 | daemonize $workpath/serial_start \ 128 | "$containerid" \ 129 | "$crundir"/console_pty 130 | for n in 10 9 8 7 6 5 4 3 2 1; do 131 | if [ ! -L "$crundir"/console_pty ]; then 132 | sleep .1 133 | else 134 | break 135 | fi; 136 | done 137 | daemonize $workpath/sendfd \ 138 | "$guestconsole" \ 139 | "$crundir"/console_pty 140 | else 141 | echo "connect to container console with 'xl console $containerid'" 142 | fi 143 | elif test $cmd = "delete" 144 | then 145 | rm -rf "$crundir" 146 | else 147 | : 148 | fi 149 | -------------------------------------------------------------------------------- /sendfd/Makefile: -------------------------------------------------------------------------------- 1 | CC = $(CROSS_COMPILE)gcc 2 | LDFLAGS += -static 3 | 4 | SOURCES=passfd.c sendfd.c 5 | OBJECTS=$(SOURCES:.c=.o) 6 | sendfd_OBJ=sendfd.o passfd.o 7 | PROGRAMS=sendfd 8 | 9 | 10 | .PHONY: all clean rebuild 11 | 12 | all: $(PROGRAMS) 13 | 14 | clean: 15 | $(RM) $(PROGRAMS) 16 | $(RM) $(OBJECTS) 17 | 18 | %.o: %.c 19 | $(CC) $(CFLAGS) -c $< -o $@ 20 | 21 | sendfd: $(sendfd_OBJ) 22 | $(CC) $(LDFLAGS) $? -o $@ 23 | -------------------------------------------------------------------------------- /sendfd/passfd.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005 Robert N. M. Watson 3 | * Copyright (c) 2015 Mark Johnston 4 | * All rights reserved. 5 | * 6 | * Redistribution and use in source and binary forms, with or without 7 | * modification, are permitted provided that the following conditions 8 | * are met: 9 | * 1. Redistributions of source code must retain the above copyright 10 | * notice, this list of conditions and the following disclaimer. 11 | * 2. Redistributions in binary form must reproduce the above copyright 12 | * notice, this list of conditions and the following disclaimer in the 13 | * documentation and/or other materials provided with the distribution. 14 | * 15 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 16 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25 | * SUCH DAMAGE. 26 | */ 27 | 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | #include 34 | #include 35 | #include 36 | #include 37 | #include "passfd.h" 38 | 39 | #define SCM_CREDS SCM_CREDENTIALS 40 | 41 | #define MAXNAMELEN 4096 /* maximum length of the name of fd being sent by sendfd */ 42 | 43 | static void putfds(char *buf, int fd, int nfds) 44 | { 45 | struct cmsghdr *cm; 46 | int *fdp, i; 47 | 48 | cm = (struct cmsghdr *)buf; 49 | cm->cmsg_len = CMSG_LEN(nfds * sizeof(int)); 50 | cm->cmsg_level = SOL_SOCKET; 51 | cm->cmsg_type = SCM_RIGHTS; 52 | for (fdp = (int *)CMSG_DATA(cm), i = 0; i < nfds; i++) 53 | *fdp++ = fd; 54 | } 55 | 56 | static size_t sendfd_payload(int sockfd, int send_fd, 57 | void *payload, size_t paylen) 58 | { 59 | struct iovec iovec; 60 | char message[CMSG_SPACE(sizeof(int))]; 61 | struct msghdr msghdr; 62 | ssize_t len; 63 | 64 | bzero(&msghdr, sizeof(msghdr)); 65 | bzero(&message, sizeof(message)); 66 | 67 | msghdr.msg_control = message; 68 | msghdr.msg_controllen = sizeof(message); 69 | 70 | iovec.iov_base = payload; 71 | iovec.iov_len = paylen; 72 | 73 | msghdr.msg_iov = &iovec; 74 | msghdr.msg_iovlen = 1; 75 | 76 | putfds(message, send_fd, 1); 77 | len = sendmsg(sockfd, &msghdr, 0); 78 | return ((size_t)len); 79 | } 80 | 81 | int sendfd(int sockfd, int send_fd, char *filepath) 82 | { 83 | size_t len; 84 | char *ch = NULL; 85 | size_t namelen; 86 | 87 | namelen = strnlen(filepath, PATH_MAX); 88 | 89 | if ((namelen == 0) || (namelen > MAXNAMELEN)) { 90 | return -1; 91 | } 92 | 93 | len = sendfd_payload(sockfd, send_fd, filepath, namelen); 94 | return len; 95 | } 96 | -------------------------------------------------------------------------------- /sendfd/passfd.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005 Robert N. M. Watson 3 | * Copyright (c) 2015 Mark Johnston 4 | * All rights reserved. 5 | * 6 | * Redistribution and use in source and binary forms, with or without 7 | * modification, are permitted provided that the following conditions 8 | * are met: 9 | * 1. Redistributions of source code must retain the above copyright 10 | * notice, this list of conditions and the following disclaimer. 11 | * 2. Redistributions in binary form must reproduce the above copyright 12 | * notice, this list of conditions and the following disclaimer in the 13 | * documentation and/or other materials provided with the distribution. 14 | * 15 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 16 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25 | * SUCH DAMAGE. 26 | */ 27 | 28 | int sendfd(int sockfd, int send_fd, char *filepath); 29 | -------------------------------------------------------------------------------- /sendfd/sendfd.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Wind River Systems, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | * Written by Rob Woolley 17 | */ 18 | 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include "passfd.h" 29 | 30 | #define BUFSIZE 100 31 | 32 | int main(int argc, char** argv) { 33 | struct sockaddr_un addr; 34 | char *socket_path = NULL; 35 | char buf[BUFSIZE]; 36 | int sockfd, filefd, rc; 37 | 38 | if (argc != 3) { 39 | printf("Usage: sendfd \n"); 40 | exit(-1); 41 | } 42 | 43 | socket_path = argv[1]; 44 | 45 | if ((sockfd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1 ) { 46 | perror("socket error"); 47 | exit(-1); 48 | } 49 | 50 | memset(&addr, 0, sizeof(addr)); 51 | addr.sun_family = AF_UNIX; 52 | strncpy(addr.sun_path, socket_path, sizeof(addr.sun_path)-1); 53 | 54 | if (connect(sockfd, (struct sockaddr*)&addr, sizeof(addr)) == -1) { 55 | perror("connect error"); 56 | exit(-1); 57 | } 58 | 59 | filefd = open(argv[2], O_RDWR); 60 | 61 | if ((rc = sendfd(sockfd, filefd, argv[2])) == -1) { 62 | perror("sendfd failed"); 63 | exit(-1); 64 | } 65 | 66 | return 0; 67 | } 68 | --------------------------------------------------------------------------------