├── .dockerignore ├── .gitignore ├── Dockerfile ├── Dockerfile.rootfs ├── LICENSE ├── README.md ├── build.sh ├── mnt ├── bb │ ├── config │ ├── fstab │ ├── group │ ├── inittab │ ├── passwd │ ├── profile │ ├── rcS │ └── shadow ├── build_all.sh ├── build_kernel.sh ├── build_kernel_vf2.sh ├── build_opensbi.sh ├── build_rootfs.sh ├── build_spl.sh ├── build_u-boot.sh └── clean.sh ├── podman_build.sh ├── podman_shell.sh ├── rootfs_image.sh ├── rootfs_shell.sh └── shell.sh /.dockerignore: -------------------------------------------------------------------------------- 1 | mnt/opensbi 2 | mnt/Tools 3 | mnt/u-boot 4 | mnt/linux 5 | mnt/boot 6 | mnt/lib 7 | mnt/busybox 8 | mnt/rootfs 9 | 10 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | mnt/opensbi 2 | mnt/Tools 3 | mnt/u-boot 4 | mnt/linux 5 | mnt/boot 6 | mnt/lib 7 | mnt/busybox 8 | mnt/rootfs* 9 | 10 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:bionic 2 | MAINTAINER sa2kng 3 | 4 | RUN apt-get -y update &&\ 5 | apt -y upgrade &&\ 6 | apt-get -y install \ 7 | bc \ 8 | bison \ 9 | ca-certificates \ 10 | cpio \ 11 | device-tree-compiler \ 12 | flex \ 13 | gcc \ 14 | gcc-riscv64-linux-gnu \ 15 | git \ 16 | kmod \ 17 | libncurses-dev \ 18 | libssl-dev \ 19 | make \ 20 | xz-utils &&\ 21 | rm -rf /var/lib/apt/lists/* 22 | 23 | ENV PATH="/mnt:${PATH}" 24 | WORKDIR /mnt 25 | CMD "bash" 26 | 27 | -------------------------------------------------------------------------------- /Dockerfile.rootfs: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | ADD mnt/rootfs.tar.xz / 3 | CMD "/bin/sh" 4 | 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU AFFERO GENERAL PUBLIC LICENSE 2 | Version 3, 19 November 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | Preamble 9 | 10 | The GNU Affero General Public License is a free, copyleft license for 11 | software and other kinds of works, specifically designed to ensure 12 | cooperation with the community in the case of network server software. 13 | 14 | The licenses for most software and other practical works are designed 15 | to take away your freedom to share and change the works. By contrast, 16 | our General Public Licenses are intended to guarantee your freedom to 17 | share and change all versions of a program--to make sure it remains free 18 | software for all its users. 19 | 20 | When we speak of free software, we are referring to freedom, not 21 | price. Our General Public Licenses are designed to make sure that you 22 | have the freedom to distribute copies of free software (and charge for 23 | them if you wish), that you receive source code or can get it if you 24 | want it, that you can change the software or use pieces of it in new 25 | free programs, and that you know you can do these things. 26 | 27 | Developers that use our General Public Licenses protect your rights 28 | with two steps: (1) assert copyright on the software, and (2) offer 29 | you this License which gives you legal permission to copy, distribute 30 | and/or modify the software. 31 | 32 | A secondary benefit of defending all users' freedom is that 33 | improvements made in alternate versions of the program, if they 34 | receive widespread use, become available for other developers to 35 | incorporate. Many developers of free software are heartened and 36 | encouraged by the resulting cooperation. However, in the case of 37 | software used on network servers, this result may fail to come about. 38 | The GNU General Public License permits making a modified version and 39 | letting the public access it on a server without ever releasing its 40 | source code to the public. 41 | 42 | The GNU Affero General Public License is designed specifically to 43 | ensure that, in such cases, the modified source code becomes available 44 | to the community. It requires the operator of a network server to 45 | provide the source code of the modified version running there to the 46 | users of that server. Therefore, public use of a modified version, on 47 | a publicly accessible server, gives the public access to the source 48 | code of the modified version. 49 | 50 | An older license, called the Affero General Public License and 51 | published by Affero, was designed to accomplish similar goals. This is 52 | a different license, not a version of the Affero GPL, but Affero has 53 | released a new version of the Affero GPL which permits relicensing under 54 | this license. 55 | 56 | The precise terms and conditions for copying, distribution and 57 | modification follow. 58 | 59 | TERMS AND CONDITIONS 60 | 61 | 0. Definitions. 62 | 63 | "This License" refers to version 3 of the GNU Affero General Public License. 64 | 65 | "Copyright" also means copyright-like laws that apply to other kinds of 66 | works, such as semiconductor masks. 67 | 68 | "The Program" refers to any copyrightable work licensed under this 69 | License. Each licensee is addressed as "you". "Licensees" and 70 | "recipients" may be individuals or organizations. 71 | 72 | To "modify" a work means to copy from or adapt all or part of the work 73 | in a fashion requiring copyright permission, other than the making of an 74 | exact copy. The resulting work is called a "modified version" of the 75 | earlier work or a work "based on" the earlier work. 76 | 77 | A "covered work" means either the unmodified Program or a work based 78 | on the Program. 79 | 80 | To "propagate" a work means to do anything with it that, without 81 | permission, would make you directly or secondarily liable for 82 | infringement under applicable copyright law, except executing it on a 83 | computer or modifying a private copy. Propagation includes copying, 84 | distribution (with or without modification), making available to the 85 | public, and in some countries other activities as well. 86 | 87 | To "convey" a work means any kind of propagation that enables other 88 | parties to make or receive copies. Mere interaction with a user through 89 | a computer network, with no transfer of a copy, is not conveying. 90 | 91 | An interactive user interface displays "Appropriate Legal Notices" 92 | to the extent that it includes a convenient and prominently visible 93 | feature that (1) displays an appropriate copyright notice, and (2) 94 | tells the user that there is no warranty for the work (except to the 95 | extent that warranties are provided), that licensees may convey the 96 | work under this License, and how to view a copy of this License. If 97 | the interface presents a list of user commands or options, such as a 98 | menu, a prominent item in the list meets this criterion. 99 | 100 | 1. Source Code. 101 | 102 | The "source code" for a work means the preferred form of the work 103 | for making modifications to it. "Object code" means any non-source 104 | form of a work. 105 | 106 | A "Standard Interface" means an interface that either is an official 107 | standard defined by a recognized standards body, or, in the case of 108 | interfaces specified for a particular programming language, one that 109 | is widely used among developers working in that language. 110 | 111 | The "System Libraries" of an executable work include anything, other 112 | than the work as a whole, that (a) is included in the normal form of 113 | packaging a Major Component, but which is not part of that Major 114 | Component, and (b) serves only to enable use of the work with that 115 | Major Component, or to implement a Standard Interface for which an 116 | implementation is available to the public in source code form. A 117 | "Major Component", in this context, means a major essential component 118 | (kernel, window system, and so on) of the specific operating system 119 | (if any) on which the executable work runs, or a compiler used to 120 | produce the work, or an object code interpreter used to run it. 121 | 122 | The "Corresponding Source" for a work in object code form means all 123 | the source code needed to generate, install, and (for an executable 124 | work) run the object code and to modify the work, including scripts to 125 | control those activities. However, it does not include the work's 126 | System Libraries, or general-purpose tools or generally available free 127 | programs which are used unmodified in performing those activities but 128 | which are not part of the work. For example, Corresponding Source 129 | includes interface definition files associated with source files for 130 | the work, and the source code for shared libraries and dynamically 131 | linked subprograms that the work is specifically designed to require, 132 | such as by intimate data communication or control flow between those 133 | subprograms and other parts of the work. 134 | 135 | The Corresponding Source need not include anything that users 136 | can regenerate automatically from other parts of the Corresponding 137 | Source. 138 | 139 | The Corresponding Source for a work in source code form is that 140 | same work. 141 | 142 | 2. Basic Permissions. 143 | 144 | All rights granted under this License are granted for the term of 145 | copyright on the Program, and are irrevocable provided the stated 146 | conditions are met. This License explicitly affirms your unlimited 147 | permission to run the unmodified Program. The output from running a 148 | covered work is covered by this License only if the output, given its 149 | content, constitutes a covered work. This License acknowledges your 150 | rights of fair use or other equivalent, as provided by copyright law. 151 | 152 | You may make, run and propagate covered works that you do not 153 | convey, without conditions so long as your license otherwise remains 154 | in force. You may convey covered works to others for the sole purpose 155 | of having them make modifications exclusively for you, or provide you 156 | with facilities for running those works, provided that you comply with 157 | the terms of this License in conveying all material for which you do 158 | not control copyright. Those thus making or running the covered works 159 | for you must do so exclusively on your behalf, under your direction 160 | and control, on terms that prohibit them from making any copies of 161 | your copyrighted material outside their relationship with you. 162 | 163 | Conveying under any other circumstances is permitted solely under 164 | the conditions stated below. Sublicensing is not allowed; section 10 165 | makes it unnecessary. 166 | 167 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 168 | 169 | No covered work shall be deemed part of an effective technological 170 | measure under any applicable law fulfilling obligations under article 171 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 172 | similar laws prohibiting or restricting circumvention of such 173 | measures. 174 | 175 | When you convey a covered work, you waive any legal power to forbid 176 | circumvention of technological measures to the extent such circumvention 177 | is effected by exercising rights under this License with respect to 178 | the covered work, and you disclaim any intention to limit operation or 179 | modification of the work as a means of enforcing, against the work's 180 | users, your or third parties' legal rights to forbid circumvention of 181 | technological measures. 182 | 183 | 4. Conveying Verbatim Copies. 184 | 185 | You may convey verbatim copies of the Program's source code as you 186 | receive it, in any medium, provided that you conspicuously and 187 | appropriately publish on each copy an appropriate copyright notice; 188 | keep intact all notices stating that this License and any 189 | non-permissive terms added in accord with section 7 apply to the code; 190 | keep intact all notices of the absence of any warranty; and give all 191 | recipients a copy of this License along with the Program. 192 | 193 | You may charge any price or no price for each copy that you convey, 194 | and you may offer support or warranty protection for a fee. 195 | 196 | 5. Conveying Modified Source Versions. 197 | 198 | You may convey a work based on the Program, or the modifications to 199 | produce it from the Program, in the form of source code under the 200 | terms of section 4, provided that you also meet all of these conditions: 201 | 202 | a) The work must carry prominent notices stating that you modified 203 | it, and giving a relevant date. 204 | 205 | b) The work must carry prominent notices stating that it is 206 | released under this License and any conditions added under section 207 | 7. This requirement modifies the requirement in section 4 to 208 | "keep intact all notices". 209 | 210 | c) You must license the entire work, as a whole, under this 211 | License to anyone who comes into possession of a copy. This 212 | License will therefore apply, along with any applicable section 7 213 | additional terms, to the whole of the work, and all its parts, 214 | regardless of how they are packaged. This License gives no 215 | permission to license the work in any other way, but it does not 216 | invalidate such permission if you have separately received it. 217 | 218 | d) If the work has interactive user interfaces, each must display 219 | Appropriate Legal Notices; however, if the Program has interactive 220 | interfaces that do not display Appropriate Legal Notices, your 221 | work need not make them do so. 222 | 223 | A compilation of a covered work with other separate and independent 224 | works, which are not by their nature extensions of the covered work, 225 | and which are not combined with it such as to form a larger program, 226 | in or on a volume of a storage or distribution medium, is called an 227 | "aggregate" if the compilation and its resulting copyright are not 228 | used to limit the access or legal rights of the compilation's users 229 | beyond what the individual works permit. Inclusion of a covered work 230 | in an aggregate does not cause this License to apply to the other 231 | parts of the aggregate. 232 | 233 | 6. Conveying Non-Source Forms. 234 | 235 | You may convey a covered work in object code form under the terms 236 | of sections 4 and 5, provided that you also convey the 237 | machine-readable Corresponding Source under the terms of this License, 238 | in one of these ways: 239 | 240 | a) Convey the object code in, or embodied in, a physical product 241 | (including a physical distribution medium), accompanied by the 242 | Corresponding Source fixed on a durable physical medium 243 | customarily used for software interchange. 244 | 245 | b) Convey the object code in, or embodied in, a physical product 246 | (including a physical distribution medium), accompanied by a 247 | written offer, valid for at least three years and valid for as 248 | long as you offer spare parts or customer support for that product 249 | model, to give anyone who possesses the object code either (1) a 250 | copy of the Corresponding Source for all the software in the 251 | product that is covered by this License, on a durable physical 252 | medium customarily used for software interchange, for a price no 253 | more than your reasonable cost of physically performing this 254 | conveying of source, or (2) access to copy the 255 | Corresponding Source from a network server at no charge. 256 | 257 | c) Convey individual copies of the object code with a copy of the 258 | written offer to provide the Corresponding Source. This 259 | alternative is allowed only occasionally and noncommercially, and 260 | only if you received the object code with such an offer, in accord 261 | with subsection 6b. 262 | 263 | d) Convey the object code by offering access from a designated 264 | place (gratis or for a charge), and offer equivalent access to the 265 | Corresponding Source in the same way through the same place at no 266 | further charge. You need not require recipients to copy the 267 | Corresponding Source along with the object code. If the place to 268 | copy the object code is a network server, the Corresponding Source 269 | may be on a different server (operated by you or a third party) 270 | that supports equivalent copying facilities, provided you maintain 271 | clear directions next to the object code saying where to find the 272 | Corresponding Source. Regardless of what server hosts the 273 | Corresponding Source, you remain obligated to ensure that it is 274 | available for as long as needed to satisfy these requirements. 275 | 276 | e) Convey the object code using peer-to-peer transmission, provided 277 | you inform other peers where the object code and Corresponding 278 | Source of the work are being offered to the general public at no 279 | charge under subsection 6d. 280 | 281 | A separable portion of the object code, whose source code is excluded 282 | from the Corresponding Source as a System Library, need not be 283 | included in conveying the object code work. 284 | 285 | A "User Product" is either (1) a "consumer product", which means any 286 | tangible personal property which is normally used for personal, family, 287 | or household purposes, or (2) anything designed or sold for incorporation 288 | into a dwelling. In determining whether a product is a consumer product, 289 | doubtful cases shall be resolved in favor of coverage. For a particular 290 | product received by a particular user, "normally used" refers to a 291 | typical or common use of that class of product, regardless of the status 292 | of the particular user or of the way in which the particular user 293 | actually uses, or expects or is expected to use, the product. A product 294 | is a consumer product regardless of whether the product has substantial 295 | commercial, industrial or non-consumer uses, unless such uses represent 296 | the only significant mode of use of the product. 297 | 298 | "Installation Information" for a User Product means any methods, 299 | procedures, authorization keys, or other information required to install 300 | and execute modified versions of a covered work in that User Product from 301 | a modified version of its Corresponding Source. The information must 302 | suffice to ensure that the continued functioning of the modified object 303 | code is in no case prevented or interfered with solely because 304 | modification has been made. 305 | 306 | If you convey an object code work under this section in, or with, or 307 | specifically for use in, a User Product, and the conveying occurs as 308 | part of a transaction in which the right of possession and use of the 309 | User Product is transferred to the recipient in perpetuity or for a 310 | fixed term (regardless of how the transaction is characterized), the 311 | Corresponding Source conveyed under this section must be accompanied 312 | by the Installation Information. But this requirement does not apply 313 | if neither you nor any third party retains the ability to install 314 | modified object code on the User Product (for example, the work has 315 | been installed in ROM). 316 | 317 | The requirement to provide Installation Information does not include a 318 | requirement to continue to provide support service, warranty, or updates 319 | for a work that has been modified or installed by the recipient, or for 320 | the User Product in which it has been modified or installed. Access to a 321 | network may be denied when the modification itself materially and 322 | adversely affects the operation of the network or violates the rules and 323 | protocols for communication across the network. 324 | 325 | Corresponding Source conveyed, and Installation Information provided, 326 | in accord with this section must be in a format that is publicly 327 | documented (and with an implementation available to the public in 328 | source code form), and must require no special password or key for 329 | unpacking, reading or copying. 330 | 331 | 7. Additional Terms. 332 | 333 | "Additional permissions" are terms that supplement the terms of this 334 | License by making exceptions from one or more of its conditions. 335 | Additional permissions that are applicable to the entire Program shall 336 | be treated as though they were included in this License, to the extent 337 | that they are valid under applicable law. If additional permissions 338 | apply only to part of the Program, that part may be used separately 339 | under those permissions, but the entire Program remains governed by 340 | this License without regard to the additional permissions. 341 | 342 | When you convey a copy of a covered work, you may at your option 343 | remove any additional permissions from that copy, or from any part of 344 | it. (Additional permissions may be written to require their own 345 | removal in certain cases when you modify the work.) You may place 346 | additional permissions on material, added by you to a covered work, 347 | for which you have or can give appropriate copyright permission. 348 | 349 | Notwithstanding any other provision of this License, for material you 350 | add to a covered work, you may (if authorized by the copyright holders of 351 | that material) supplement the terms of this License with terms: 352 | 353 | a) Disclaiming warranty or limiting liability differently from the 354 | terms of sections 15 and 16 of this License; or 355 | 356 | b) Requiring preservation of specified reasonable legal notices or 357 | author attributions in that material or in the Appropriate Legal 358 | Notices displayed by works containing it; or 359 | 360 | c) Prohibiting misrepresentation of the origin of that material, or 361 | requiring that modified versions of such material be marked in 362 | reasonable ways as different from the original version; or 363 | 364 | d) Limiting the use for publicity purposes of names of licensors or 365 | authors of the material; or 366 | 367 | e) Declining to grant rights under trademark law for use of some 368 | trade names, trademarks, or service marks; or 369 | 370 | f) Requiring indemnification of licensors and authors of that 371 | material by anyone who conveys the material (or modified versions of 372 | it) with contractual assumptions of liability to the recipient, for 373 | any liability that these contractual assumptions directly impose on 374 | those licensors and authors. 375 | 376 | All other non-permissive additional terms are considered "further 377 | restrictions" within the meaning of section 10. If the Program as you 378 | received it, or any part of it, contains a notice stating that it is 379 | governed by this License along with a term that is a further 380 | restriction, you may remove that term. If a license document contains 381 | a further restriction but permits relicensing or conveying under this 382 | License, you may add to a covered work material governed by the terms 383 | of that license document, provided that the further restriction does 384 | not survive such relicensing or conveying. 385 | 386 | If you add terms to a covered work in accord with this section, you 387 | must place, in the relevant source files, a statement of the 388 | additional terms that apply to those files, or a notice indicating 389 | where to find the applicable terms. 390 | 391 | Additional terms, permissive or non-permissive, may be stated in the 392 | form of a separately written license, or stated as exceptions; 393 | the above requirements apply either way. 394 | 395 | 8. Termination. 396 | 397 | You may not propagate or modify a covered work except as expressly 398 | provided under this License. Any attempt otherwise to propagate or 399 | modify it is void, and will automatically terminate your rights under 400 | this License (including any patent licenses granted under the third 401 | paragraph of section 11). 402 | 403 | However, if you cease all violation of this License, then your 404 | license from a particular copyright holder is reinstated (a) 405 | provisionally, unless and until the copyright holder explicitly and 406 | finally terminates your license, and (b) permanently, if the copyright 407 | holder fails to notify you of the violation by some reasonable means 408 | prior to 60 days after the cessation. 409 | 410 | Moreover, your license from a particular copyright holder is 411 | reinstated permanently if the copyright holder notifies you of the 412 | violation by some reasonable means, this is the first time you have 413 | received notice of violation of this License (for any work) from that 414 | copyright holder, and you cure the violation prior to 30 days after 415 | your receipt of the notice. 416 | 417 | Termination of your rights under this section does not terminate the 418 | licenses of parties who have received copies or rights from you under 419 | this License. If your rights have been terminated and not permanently 420 | reinstated, you do not qualify to receive new licenses for the same 421 | material under section 10. 422 | 423 | 9. Acceptance Not Required for Having Copies. 424 | 425 | You are not required to accept this License in order to receive or 426 | run a copy of the Program. Ancillary propagation of a covered work 427 | occurring solely as a consequence of using peer-to-peer transmission 428 | to receive a copy likewise does not require acceptance. However, 429 | nothing other than this License grants you permission to propagate or 430 | modify any covered work. These actions infringe copyright if you do 431 | not accept this License. Therefore, by modifying or propagating a 432 | covered work, you indicate your acceptance of this License to do so. 433 | 434 | 10. Automatic Licensing of Downstream Recipients. 435 | 436 | Each time you convey a covered work, the recipient automatically 437 | receives a license from the original licensors, to run, modify and 438 | propagate that work, subject to this License. You are not responsible 439 | for enforcing compliance by third parties with this License. 440 | 441 | An "entity transaction" is a transaction transferring control of an 442 | organization, or substantially all assets of one, or subdividing an 443 | organization, or merging organizations. If propagation of a covered 444 | work results from an entity transaction, each party to that 445 | transaction who receives a copy of the work also receives whatever 446 | licenses to the work the party's predecessor in interest had or could 447 | give under the previous paragraph, plus a right to possession of the 448 | Corresponding Source of the work from the predecessor in interest, if 449 | the predecessor has it or can get it with reasonable efforts. 450 | 451 | You may not impose any further restrictions on the exercise of the 452 | rights granted or affirmed under this License. For example, you may 453 | not impose a license fee, royalty, or other charge for exercise of 454 | rights granted under this License, and you may not initiate litigation 455 | (including a cross-claim or counterclaim in a lawsuit) alleging that 456 | any patent claim is infringed by making, using, selling, offering for 457 | sale, or importing the Program or any portion of it. 458 | 459 | 11. Patents. 460 | 461 | A "contributor" is a copyright holder who authorizes use under this 462 | License of the Program or a work on which the Program is based. The 463 | work thus licensed is called the contributor's "contributor version". 464 | 465 | A contributor's "essential patent claims" are all patent claims 466 | owned or controlled by the contributor, whether already acquired or 467 | hereafter acquired, that would be infringed by some manner, permitted 468 | by this License, of making, using, or selling its contributor version, 469 | but do not include claims that would be infringed only as a 470 | consequence of further modification of the contributor version. For 471 | purposes of this definition, "control" includes the right to grant 472 | patent sublicenses in a manner consistent with the requirements of 473 | this License. 474 | 475 | Each contributor grants you a non-exclusive, worldwide, royalty-free 476 | patent license under the contributor's essential patent claims, to 477 | make, use, sell, offer for sale, import and otherwise run, modify and 478 | propagate the contents of its contributor version. 479 | 480 | In the following three paragraphs, a "patent license" is any express 481 | agreement or commitment, however denominated, not to enforce a patent 482 | (such as an express permission to practice a patent or covenant not to 483 | sue for patent infringement). To "grant" such a patent license to a 484 | party means to make such an agreement or commitment not to enforce a 485 | patent against the party. 486 | 487 | If you convey a covered work, knowingly relying on a patent license, 488 | and the Corresponding Source of the work is not available for anyone 489 | to copy, free of charge and under the terms of this License, through a 490 | publicly available network server or other readily accessible means, 491 | then you must either (1) cause the Corresponding Source to be so 492 | available, or (2) arrange to deprive yourself of the benefit of the 493 | patent license for this particular work, or (3) arrange, in a manner 494 | consistent with the requirements of this License, to extend the patent 495 | license to downstream recipients. "Knowingly relying" means you have 496 | actual knowledge that, but for the patent license, your conveying the 497 | covered work in a country, or your recipient's use of the covered work 498 | in a country, would infringe one or more identifiable patents in that 499 | country that you have reason to believe are valid. 500 | 501 | If, pursuant to or in connection with a single transaction or 502 | arrangement, you convey, or propagate by procuring conveyance of, a 503 | covered work, and grant a patent license to some of the parties 504 | receiving the covered work authorizing them to use, propagate, modify 505 | or convey a specific copy of the covered work, then the patent license 506 | you grant is automatically extended to all recipients of the covered 507 | work and works based on it. 508 | 509 | A patent license is "discriminatory" if it does not include within 510 | the scope of its coverage, prohibits the exercise of, or is 511 | conditioned on the non-exercise of one or more of the rights that are 512 | specifically granted under this License. You may not convey a covered 513 | work if you are a party to an arrangement with a third party that is 514 | in the business of distributing software, under which you make payment 515 | to the third party based on the extent of your activity of conveying 516 | the work, and under which the third party grants, to any of the 517 | parties who would receive the covered work from you, a discriminatory 518 | patent license (a) in connection with copies of the covered work 519 | conveyed by you (or copies made from those copies), or (b) primarily 520 | for and in connection with specific products or compilations that 521 | contain the covered work, unless you entered into that arrangement, 522 | or that patent license was granted, prior to 28 March 2007. 523 | 524 | Nothing in this License shall be construed as excluding or limiting 525 | any implied license or other defenses to infringement that may 526 | otherwise be available to you under applicable patent law. 527 | 528 | 12. No Surrender of Others' Freedom. 529 | 530 | If conditions are imposed on you (whether by court order, agreement or 531 | otherwise) that contradict the conditions of this License, they do not 532 | excuse you from the conditions of this License. If you cannot convey a 533 | covered work so as to satisfy simultaneously your obligations under this 534 | License and any other pertinent obligations, then as a consequence you may 535 | not convey it at all. For example, if you agree to terms that obligate you 536 | to collect a royalty for further conveying from those to whom you convey 537 | the Program, the only way you could satisfy both those terms and this 538 | License would be to refrain entirely from conveying the Program. 539 | 540 | 13. Remote Network Interaction; Use with the GNU General Public License. 541 | 542 | Notwithstanding any other provision of this License, if you modify the 543 | Program, your modified version must prominently offer all users 544 | interacting with it remotely through a computer network (if your version 545 | supports such interaction) an opportunity to receive the Corresponding 546 | Source of your version by providing access to the Corresponding Source 547 | from a network server at no charge, through some standard or customary 548 | means of facilitating copying of software. This Corresponding Source 549 | shall include the Corresponding Source for any work covered by version 3 550 | of the GNU General Public License that is incorporated pursuant to the 551 | following paragraph. 552 | 553 | Notwithstanding any other provision of this License, you have 554 | permission to link or combine any covered work with a work licensed 555 | under version 3 of the GNU General Public License into a single 556 | combined work, and to convey the resulting work. The terms of this 557 | License will continue to apply to the part which is the covered work, 558 | but the work with which it is combined will remain governed by version 559 | 3 of the GNU General Public License. 560 | 561 | 14. Revised Versions of this License. 562 | 563 | The Free Software Foundation may publish revised and/or new versions of 564 | the GNU Affero General Public License from time to time. Such new versions 565 | will be similar in spirit to the present version, but may differ in detail to 566 | address new problems or concerns. 567 | 568 | Each version is given a distinguishing version number. If the 569 | Program specifies that a certain numbered version of the GNU Affero General 570 | Public License "or any later version" applies to it, you have the 571 | option of following the terms and conditions either of that numbered 572 | version or of any later version published by the Free Software 573 | Foundation. If the Program does not specify a version number of the 574 | GNU Affero General Public License, you may choose any version ever published 575 | by the Free Software Foundation. 576 | 577 | If the Program specifies that a proxy can decide which future 578 | versions of the GNU Affero General Public License can be used, that proxy's 579 | public statement of acceptance of a version permanently authorizes you 580 | to choose that version for the Program. 581 | 582 | Later license versions may give you additional or different 583 | permissions. However, no additional obligations are imposed on any 584 | author or copyright holder as a result of your choosing to follow a 585 | later version. 586 | 587 | 15. Disclaimer of Warranty. 588 | 589 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 590 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 591 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 592 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 593 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 594 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 595 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 596 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 597 | 598 | 16. Limitation of Liability. 599 | 600 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 601 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 602 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 603 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 604 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 605 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 606 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 607 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 608 | SUCH DAMAGES. 609 | 610 | 17. Interpretation of Sections 15 and 16. 611 | 612 | If the disclaimer of warranty and limitation of liability provided 613 | above cannot be given local legal effect according to their terms, 614 | reviewing courts shall apply local law that most closely approximates 615 | an absolute waiver of all civil liability in connection with the 616 | Program, unless a warranty or assumption of liability accompanies a 617 | copy of the Program in return for a fee. 618 | 619 | END OF TERMS AND CONDITIONS 620 | 621 | How to Apply These Terms to Your New Programs 622 | 623 | If you develop a new program, and you want it to be of the greatest 624 | possible use to the public, the best way to achieve this is to make it 625 | free software which everyone can redistribute and change under these terms. 626 | 627 | To do so, attach the following notices to the program. It is safest 628 | to attach them to the start of each source file to most effectively 629 | state the exclusion of warranty; and each file should have at least 630 | the "copyright" line and a pointer to where the full notice is found. 631 | 632 | 633 | Copyright (C) 634 | 635 | This program is free software: you can redistribute it and/or modify 636 | it under the terms of the GNU Affero General Public License as published 637 | by the Free Software Foundation, either version 3 of the License, or 638 | (at your option) any later version. 639 | 640 | This program is distributed in the hope that it will be useful, 641 | but WITHOUT ANY WARRANTY; without even the implied warranty of 642 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 643 | GNU Affero General Public License for more details. 644 | 645 | You should have received a copy of the GNU Affero General Public License 646 | along with this program. If not, see . 647 | 648 | Also add information on how to contact you by electronic and paper mail. 649 | 650 | If your software can interact with users remotely through a computer 651 | network, you should also make sure that it provides a way for users to 652 | get its source. For example, if your program is a web application, its 653 | interface could display a "Source" link that leads users to an archive 654 | of the code. There are many ways you could offer source, and different 655 | solutions will be better for different programs; see section 13 for the 656 | specific requirements. 657 | 658 | You should also get your employer (if you work as a programmer) or school, 659 | if any, to sign a "copyright disclaimer" for the program, if necessary. 660 | For more information on this, and how to apply and follow the GNU AGPL, see 661 | . 662 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # visionfive2-docker 2 | Docker build environment for VisionFive 2 SBC 3 | 4 | ## Building the docker image 5 | Clone this repo and enter it, build the image. 6 | ``` 7 | git clone https://github.com/kng/visionfive2-docker.git 8 | cd visionfive2-docker 9 | ./build.sh 10 | ``` 11 | 12 | If updating this repo or editing the Dockerfile, rebuild the image again. 13 | 14 | ## Building firmware and kernel 15 | All the scripts in mnt are from the [Technical Reference Manual](https://doc-en.rvspace.org/VisionFive2/PDF/VisionFive2_SW_TRM.pdf)
16 | You do not need to install any packages when running the container, it's all included in the build.
17 | The directory mnt is bind-mounted to the container /mnt
18 | When you run the scripts, the contents of the git pull and build etc will e in the mnt directory.
19 | 20 | Enter the build environment with a command prompt with: `./shell.sh` 21 | 22 | Build scripts available:
23 | `build_kernel.sh build_opensbi.sh build_spl.sh build_u-boot.sh`
24 | These scripts just removes the directory before fetching it from git, so be aware any local changes in those will be wiped. 25 | 26 | Quick build of everything:
27 | `./shell.sh build_all.sh` 28 | 29 | or manually for each step, making changes along the way. 30 | 31 | u-boot: 32 | `./shell.sh build_u-boot.sh` 33 | 34 | OpenSBI: 35 | `./shell.sh build_opensbi.sh` 36 | 37 | SPL and payload: 38 | `./shell.sh build_spl.sh` 39 | 40 | Linux kernel: 41 | `./shell.sh build_kernel.sh` 42 | 43 | Alternatively, linux kernel based on a-wai/vf2-linux, this enables IPv6 and docker: 44 | `./shell.sh build_kernel_vf2.sh` 45 | This also builds modules and installs them in mnt/lib/modules. 46 | 47 | ## Busybox rootfs 48 | 49 | Build the rootfs with: 50 | `./shell.sh build_rootfs.sh` 51 | 52 | If you want to test run it, make sure you have the proper qemu installed `docker run --privileged --rm tonistiigi/binfmt:riscv`
53 | First build the image with `./rootfs_image.sh` and then start a container shell with `./rootfs_shell.sh` 54 | 55 | ## Podman instead of Docker 56 | 57 | If you're using podman, simply replace the above `build.sh` with `podman_build.sh` and `shell.sh` with `podman_shell.sh` 58 | 59 | -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | docker build -t visionfive2:latest . "$@" 3 | 4 | -------------------------------------------------------------------------------- /mnt/bb/config: -------------------------------------------------------------------------------- 1 | # 2 | # Automatically generated make config: don't edit 3 | # Busybox version: 1.37.0.git 4 | # Fri Feb 3 18:27:51 2023 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=y 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=y 23 | CONFIG_FEATURE_WTMP=y 24 | CONFIG_FEATURE_PIDFILE=y 25 | CONFIG_PID_FILE_PATH="/var/run" 26 | CONFIG_BUSYBOX=y 27 | CONFIG_FEATURE_SHOW_SCRIPT=y 28 | CONFIG_FEATURE_INSTALLER=y 29 | # CONFIG_INSTALL_NO_USR is not set 30 | CONFIG_FEATURE_SUID=y 31 | CONFIG_FEATURE_SUID_CONFIG=y 32 | CONFIG_FEATURE_SUID_CONFIG_QUIET=y 33 | # CONFIG_FEATURE_PREFER_APPLETS is not set 34 | CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" 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="riscv64-linux-gnu-" 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=y 63 | # CONFIG_INSTALL_APPLET_HARDLINKS is not set 64 | # CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set 65 | # CONFIG_INSTALL_APPLET_DONT is not set 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="/mnt/rootfs" 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=1 96 | CONFIG_SHA1_SMALL=3 97 | CONFIG_SHA1_HWACCEL=y 98 | CONFIG_SHA256_HWACCEL=y 99 | CONFIG_SHA3_SMALL=1 100 | CONFIG_FEATURE_NON_POSIX_CP=y 101 | # CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set 102 | CONFIG_FEATURE_USE_SENDFILE=y 103 | CONFIG_FEATURE_COPYBUF_KB=4 104 | CONFIG_MONOTONIC_SYSCALL=y 105 | CONFIG_IOCTL_HEX2STR_ERROR=y 106 | CONFIG_FEATURE_EDITING=y 107 | CONFIG_FEATURE_EDITING_MAX_LEN=1024 108 | # CONFIG_FEATURE_EDITING_VI is not set 109 | CONFIG_FEATURE_EDITING_HISTORY=255 110 | CONFIG_FEATURE_EDITING_SAVEHISTORY=y 111 | # CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set 112 | CONFIG_FEATURE_REVERSE_SEARCH=y 113 | CONFIG_FEATURE_TAB_COMPLETION=y 114 | CONFIG_FEATURE_USERNAME_COMPLETION=y 115 | CONFIG_FEATURE_EDITING_FANCY_PROMPT=y 116 | CONFIG_FEATURE_EDITING_WINCH=y 117 | # CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set 118 | # CONFIG_LOCALE_SUPPORT is not set 119 | CONFIG_UNICODE_SUPPORT=y 120 | # CONFIG_UNICODE_USING_LOCALE is not set 121 | # CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set 122 | CONFIG_SUBST_WCHAR=63 123 | CONFIG_LAST_SUPPORTED_WCHAR=767 124 | # CONFIG_UNICODE_COMBINING_WCHARS is not set 125 | # CONFIG_UNICODE_WIDE_WCHARS is not set 126 | # CONFIG_UNICODE_BIDI_SUPPORT is not set 127 | # CONFIG_UNICODE_NEUTRAL_TABLE is not set 128 | # CONFIG_UNICODE_PRESERVE_BROKEN is not set 129 | # CONFIG_LOOP_CONFIGURE is not set 130 | # CONFIG_NO_LOOP_CONFIGURE is not set 131 | CONFIG_TRY_LOOP_CONFIGURE=y 132 | 133 | # 134 | # Applets 135 | # 136 | 137 | # 138 | # Archival Utilities 139 | # 140 | CONFIG_FEATURE_SEAMLESS_XZ=y 141 | CONFIG_FEATURE_SEAMLESS_LZMA=y 142 | CONFIG_FEATURE_SEAMLESS_BZ2=y 143 | CONFIG_FEATURE_SEAMLESS_GZ=y 144 | # CONFIG_FEATURE_SEAMLESS_Z is not set 145 | # CONFIG_AR is not set 146 | # CONFIG_FEATURE_AR_LONG_FILENAMES is not set 147 | # CONFIG_FEATURE_AR_CREATE is not set 148 | # CONFIG_UNCOMPRESS is not set 149 | CONFIG_GUNZIP=y 150 | CONFIG_ZCAT=y 151 | CONFIG_FEATURE_GUNZIP_LONG_OPTIONS=y 152 | CONFIG_BUNZIP2=y 153 | CONFIG_BZCAT=y 154 | CONFIG_UNLZMA=y 155 | CONFIG_LZCAT=y 156 | CONFIG_LZMA=y 157 | CONFIG_UNXZ=y 158 | CONFIG_XZCAT=y 159 | CONFIG_XZ=y 160 | CONFIG_BZIP2=y 161 | CONFIG_BZIP2_SMALL=8 162 | CONFIG_FEATURE_BZIP2_DECOMPRESS=y 163 | CONFIG_CPIO=y 164 | CONFIG_FEATURE_CPIO_O=y 165 | CONFIG_FEATURE_CPIO_P=y 166 | CONFIG_FEATURE_CPIO_IGNORE_DEVNO=y 167 | CONFIG_FEATURE_CPIO_RENUMBER_INODES=y 168 | CONFIG_DPKG=y 169 | CONFIG_DPKG_DEB=y 170 | CONFIG_GZIP=y 171 | CONFIG_FEATURE_GZIP_LONG_OPTIONS=y 172 | CONFIG_GZIP_FAST=0 173 | # CONFIG_FEATURE_GZIP_LEVELS is not set 174 | CONFIG_FEATURE_GZIP_DECOMPRESS=y 175 | CONFIG_LZOP=y 176 | # CONFIG_UNLZOP is not set 177 | # CONFIG_LZOPCAT is not set 178 | # CONFIG_LZOP_COMPR_HIGH is not set 179 | CONFIG_RPM=y 180 | CONFIG_RPM2CPIO=y 181 | CONFIG_TAR=y 182 | CONFIG_FEATURE_TAR_LONG_OPTIONS=y 183 | CONFIG_FEATURE_TAR_CREATE=y 184 | CONFIG_FEATURE_TAR_AUTODETECT=y 185 | CONFIG_FEATURE_TAR_FROM=y 186 | CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y 187 | CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY=y 188 | CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y 189 | CONFIG_FEATURE_TAR_TO_COMMAND=y 190 | CONFIG_FEATURE_TAR_UNAME_GNAME=y 191 | CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y 192 | # CONFIG_FEATURE_TAR_SELINUX is not set 193 | CONFIG_UNZIP=y 194 | CONFIG_FEATURE_UNZIP_CDF=y 195 | CONFIG_FEATURE_UNZIP_BZIP2=y 196 | CONFIG_FEATURE_UNZIP_LZMA=y 197 | CONFIG_FEATURE_UNZIP_XZ=y 198 | # CONFIG_FEATURE_LZMA_FAST is not set 199 | 200 | # 201 | # Coreutils 202 | # 203 | CONFIG_FEATURE_VERBOSE=y 204 | 205 | # 206 | # Common options for date and touch 207 | # 208 | CONFIG_FEATURE_TIMEZONE=y 209 | 210 | # 211 | # Common options for cp and mv 212 | # 213 | CONFIG_FEATURE_PRESERVE_HARDLINKS=y 214 | 215 | # 216 | # Common options for df, du, ls 217 | # 218 | CONFIG_FEATURE_HUMAN_READABLE=y 219 | CONFIG_BASENAME=y 220 | CONFIG_CAT=y 221 | CONFIG_FEATURE_CATN=y 222 | CONFIG_FEATURE_CATV=y 223 | CONFIG_CHGRP=y 224 | CONFIG_CHMOD=y 225 | CONFIG_CHOWN=y 226 | CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y 227 | CONFIG_CHROOT=y 228 | CONFIG_CKSUM=y 229 | CONFIG_CRC32=y 230 | CONFIG_COMM=y 231 | CONFIG_CP=y 232 | CONFIG_FEATURE_CP_LONG_OPTIONS=y 233 | CONFIG_FEATURE_CP_REFLINK=y 234 | CONFIG_CUT=y 235 | CONFIG_FEATURE_CUT_REGEX=y 236 | CONFIG_DATE=y 237 | CONFIG_FEATURE_DATE_ISOFMT=y 238 | # CONFIG_FEATURE_DATE_NANO is not set 239 | CONFIG_FEATURE_DATE_COMPAT=y 240 | CONFIG_DD=y 241 | CONFIG_FEATURE_DD_SIGNAL_HANDLING=y 242 | CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y 243 | CONFIG_FEATURE_DD_IBS_OBS=y 244 | CONFIG_FEATURE_DD_STATUS=y 245 | CONFIG_DF=y 246 | CONFIG_FEATURE_DF_FANCY=y 247 | CONFIG_FEATURE_SKIP_ROOTFS=y 248 | CONFIG_DIRNAME=y 249 | CONFIG_DOS2UNIX=y 250 | CONFIG_UNIX2DOS=y 251 | CONFIG_DU=y 252 | CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y 253 | CONFIG_ECHO=y 254 | CONFIG_FEATURE_FANCY_ECHO=y 255 | CONFIG_ENV=y 256 | CONFIG_EXPAND=y 257 | CONFIG_UNEXPAND=y 258 | CONFIG_EXPR=y 259 | CONFIG_EXPR_MATH_SUPPORT_64=y 260 | CONFIG_FACTOR=y 261 | CONFIG_FALSE=y 262 | CONFIG_FOLD=y 263 | CONFIG_HEAD=y 264 | CONFIG_FEATURE_FANCY_HEAD=y 265 | CONFIG_HOSTID=y 266 | CONFIG_ID=y 267 | CONFIG_GROUPS=y 268 | CONFIG_INSTALL=y 269 | CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y 270 | CONFIG_LINK=y 271 | CONFIG_LN=y 272 | CONFIG_LOGNAME=y 273 | CONFIG_LS=y 274 | CONFIG_FEATURE_LS_FILETYPES=y 275 | CONFIG_FEATURE_LS_FOLLOWLINKS=y 276 | CONFIG_FEATURE_LS_RECURSIVE=y 277 | CONFIG_FEATURE_LS_WIDTH=y 278 | CONFIG_FEATURE_LS_SORTFILES=y 279 | CONFIG_FEATURE_LS_TIMESTAMPS=y 280 | CONFIG_FEATURE_LS_USERNAME=y 281 | CONFIG_FEATURE_LS_COLOR=y 282 | CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y 283 | CONFIG_MD5SUM=y 284 | CONFIG_SHA1SUM=y 285 | CONFIG_SHA256SUM=y 286 | CONFIG_SHA512SUM=y 287 | CONFIG_SHA3SUM=y 288 | 289 | # 290 | # Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum 291 | # 292 | CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y 293 | CONFIG_MKDIR=y 294 | CONFIG_MKFIFO=y 295 | CONFIG_MKNOD=y 296 | CONFIG_MKTEMP=y 297 | CONFIG_MV=y 298 | CONFIG_NICE=y 299 | CONFIG_NL=y 300 | CONFIG_NOHUP=y 301 | CONFIG_NPROC=y 302 | CONFIG_OD=y 303 | CONFIG_PASTE=y 304 | CONFIG_PRINTENV=y 305 | CONFIG_PRINTF=y 306 | CONFIG_PWD=y 307 | CONFIG_READLINK=y 308 | CONFIG_FEATURE_READLINK_FOLLOW=y 309 | CONFIG_REALPATH=y 310 | CONFIG_RM=y 311 | CONFIG_RMDIR=y 312 | CONFIG_SEQ=y 313 | CONFIG_SHRED=y 314 | CONFIG_SHUF=y 315 | CONFIG_SLEEP=y 316 | CONFIG_FEATURE_FANCY_SLEEP=y 317 | CONFIG_SORT=y 318 | CONFIG_FEATURE_SORT_BIG=y 319 | # CONFIG_FEATURE_SORT_OPTIMIZE_MEMORY is not set 320 | CONFIG_SPLIT=y 321 | CONFIG_FEATURE_SPLIT_FANCY=y 322 | CONFIG_STAT=y 323 | CONFIG_FEATURE_STAT_FORMAT=y 324 | CONFIG_FEATURE_STAT_FILESYSTEM=y 325 | CONFIG_STTY=y 326 | CONFIG_SUM=y 327 | CONFIG_SYNC=y 328 | CONFIG_FEATURE_SYNC_FANCY=y 329 | CONFIG_FSYNC=y 330 | CONFIG_TAC=y 331 | CONFIG_TAIL=y 332 | CONFIG_FEATURE_FANCY_TAIL=y 333 | CONFIG_TEE=y 334 | CONFIG_FEATURE_TEE_USE_BLOCK_IO=y 335 | CONFIG_TEST=y 336 | CONFIG_TEST1=y 337 | CONFIG_TEST2=y 338 | CONFIG_FEATURE_TEST_64=y 339 | CONFIG_TIMEOUT=y 340 | CONFIG_TOUCH=y 341 | CONFIG_FEATURE_TOUCH_SUSV3=y 342 | CONFIG_TR=y 343 | CONFIG_FEATURE_TR_CLASSES=y 344 | CONFIG_FEATURE_TR_EQUIV=y 345 | CONFIG_TRUE=y 346 | CONFIG_TRUNCATE=y 347 | CONFIG_TSORT=y 348 | CONFIG_TTY=y 349 | CONFIG_UNAME=y 350 | CONFIG_UNAME_OSNAME="GNU/Linux" 351 | CONFIG_BB_ARCH=y 352 | CONFIG_UNIQ=y 353 | CONFIG_UNLINK=y 354 | CONFIG_USLEEP=y 355 | CONFIG_UUDECODE=y 356 | CONFIG_BASE32=y 357 | CONFIG_BASE64=y 358 | CONFIG_UUENCODE=y 359 | CONFIG_WC=y 360 | CONFIG_FEATURE_WC_LARGE=y 361 | CONFIG_WHO=y 362 | CONFIG_W=y 363 | CONFIG_USERS=y 364 | CONFIG_WHOAMI=y 365 | CONFIG_YES=y 366 | 367 | # 368 | # Console Utilities 369 | # 370 | CONFIG_CHVT=y 371 | CONFIG_CLEAR=y 372 | CONFIG_DEALLOCVT=y 373 | CONFIG_DUMPKMAP=y 374 | CONFIG_FGCONSOLE=y 375 | CONFIG_KBD_MODE=y 376 | CONFIG_LOADFONT=y 377 | CONFIG_SETFONT=y 378 | CONFIG_FEATURE_SETFONT_TEXTUAL_MAP=y 379 | CONFIG_DEFAULT_SETFONT_DIR="" 380 | 381 | # 382 | # Common options for loadfont and setfont 383 | # 384 | CONFIG_FEATURE_LOADFONT_PSF2=y 385 | CONFIG_FEATURE_LOADFONT_RAW=y 386 | CONFIG_LOADKMAP=y 387 | CONFIG_OPENVT=y 388 | CONFIG_RESET=y 389 | CONFIG_RESIZE=y 390 | CONFIG_FEATURE_RESIZE_PRINT=y 391 | CONFIG_SETCONSOLE=y 392 | CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y 393 | CONFIG_SETKEYCODES=y 394 | CONFIG_SETLOGCONS=y 395 | CONFIG_SHOWKEY=y 396 | 397 | # 398 | # Debian Utilities 399 | # 400 | CONFIG_PIPE_PROGRESS=y 401 | CONFIG_RUN_PARTS=y 402 | CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y 403 | CONFIG_FEATURE_RUN_PARTS_FANCY=y 404 | CONFIG_START_STOP_DAEMON=y 405 | CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y 406 | CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y 407 | CONFIG_WHICH=y 408 | 409 | # 410 | # klibc-utils 411 | # 412 | # CONFIG_MINIPS is not set 413 | # CONFIG_NUKE is not set 414 | CONFIG_RESUME=y 415 | CONFIG_RUN_INIT=y 416 | 417 | # 418 | # Editors 419 | # 420 | CONFIG_AWK=y 421 | CONFIG_FEATURE_AWK_LIBM=y 422 | CONFIG_FEATURE_AWK_GNU_EXTENSIONS=y 423 | CONFIG_CMP=y 424 | CONFIG_DIFF=y 425 | CONFIG_FEATURE_DIFF_LONG_OPTIONS=y 426 | CONFIG_FEATURE_DIFF_DIR=y 427 | CONFIG_ED=y 428 | CONFIG_PATCH=y 429 | CONFIG_SED=y 430 | CONFIG_VI=y 431 | CONFIG_FEATURE_VI_MAX_LEN=4096 432 | # CONFIG_FEATURE_VI_8BIT is not set 433 | CONFIG_FEATURE_VI_COLON=y 434 | CONFIG_FEATURE_VI_COLON_EXPAND=y 435 | CONFIG_FEATURE_VI_YANKMARK=y 436 | CONFIG_FEATURE_VI_SEARCH=y 437 | # CONFIG_FEATURE_VI_REGEX_SEARCH is not set 438 | CONFIG_FEATURE_VI_USE_SIGNALS=y 439 | CONFIG_FEATURE_VI_DOT_CMD=y 440 | CONFIG_FEATURE_VI_READONLY=y 441 | CONFIG_FEATURE_VI_SETOPTS=y 442 | CONFIG_FEATURE_VI_SET=y 443 | CONFIG_FEATURE_VI_WIN_RESIZE=y 444 | CONFIG_FEATURE_VI_ASK_TERMINAL=y 445 | CONFIG_FEATURE_VI_UNDO=y 446 | CONFIG_FEATURE_VI_UNDO_QUEUE=y 447 | CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=256 448 | CONFIG_FEATURE_VI_VERBOSE_STATUS=y 449 | CONFIG_FEATURE_ALLOW_EXEC=y 450 | 451 | # 452 | # Finding Utilities 453 | # 454 | CONFIG_FIND=y 455 | CONFIG_FEATURE_FIND_PRINT0=y 456 | CONFIG_FEATURE_FIND_MTIME=y 457 | CONFIG_FEATURE_FIND_ATIME=y 458 | CONFIG_FEATURE_FIND_CTIME=y 459 | CONFIG_FEATURE_FIND_MMIN=y 460 | CONFIG_FEATURE_FIND_AMIN=y 461 | CONFIG_FEATURE_FIND_CMIN=y 462 | CONFIG_FEATURE_FIND_PERM=y 463 | CONFIG_FEATURE_FIND_TYPE=y 464 | CONFIG_FEATURE_FIND_EXECUTABLE=y 465 | CONFIG_FEATURE_FIND_XDEV=y 466 | CONFIG_FEATURE_FIND_MAXDEPTH=y 467 | CONFIG_FEATURE_FIND_NEWER=y 468 | CONFIG_FEATURE_FIND_INUM=y 469 | CONFIG_FEATURE_FIND_SAMEFILE=y 470 | CONFIG_FEATURE_FIND_EXEC=y 471 | CONFIG_FEATURE_FIND_EXEC_PLUS=y 472 | CONFIG_FEATURE_FIND_USER=y 473 | CONFIG_FEATURE_FIND_GROUP=y 474 | CONFIG_FEATURE_FIND_NOT=y 475 | CONFIG_FEATURE_FIND_DEPTH=y 476 | CONFIG_FEATURE_FIND_PAREN=y 477 | CONFIG_FEATURE_FIND_SIZE=y 478 | CONFIG_FEATURE_FIND_PRUNE=y 479 | CONFIG_FEATURE_FIND_QUIT=y 480 | CONFIG_FEATURE_FIND_DELETE=y 481 | CONFIG_FEATURE_FIND_EMPTY=y 482 | CONFIG_FEATURE_FIND_PATH=y 483 | CONFIG_FEATURE_FIND_REGEX=y 484 | # CONFIG_FEATURE_FIND_CONTEXT is not set 485 | CONFIG_FEATURE_FIND_LINKS=y 486 | CONFIG_GREP=y 487 | CONFIG_EGREP=y 488 | CONFIG_FGREP=y 489 | CONFIG_FEATURE_GREP_CONTEXT=y 490 | CONFIG_XARGS=y 491 | CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y 492 | CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y 493 | CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y 494 | CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y 495 | CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR=y 496 | CONFIG_FEATURE_XARGS_SUPPORT_PARALLEL=y 497 | CONFIG_FEATURE_XARGS_SUPPORT_ARGS_FILE=y 498 | 499 | # 500 | # Init Utilities 501 | # 502 | CONFIG_BOOTCHARTD=y 503 | CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER=y 504 | CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE=y 505 | CONFIG_HALT=y 506 | CONFIG_POWEROFF=y 507 | CONFIG_REBOOT=y 508 | CONFIG_FEATURE_WAIT_FOR_INIT=y 509 | # CONFIG_FEATURE_CALL_TELINIT is not set 510 | CONFIG_TELINIT_PATH="" 511 | CONFIG_INIT=y 512 | CONFIG_LINUXRC=y 513 | CONFIG_FEATURE_USE_INITTAB=y 514 | # CONFIG_FEATURE_KILL_REMOVED is not set 515 | CONFIG_FEATURE_KILL_DELAY=0 516 | CONFIG_FEATURE_INIT_SCTTY=y 517 | CONFIG_FEATURE_INIT_SYSLOG=y 518 | CONFIG_FEATURE_INIT_QUIET=y 519 | # CONFIG_FEATURE_INIT_COREDUMPS is not set 520 | CONFIG_INIT_TERMINAL_TYPE="linux" 521 | CONFIG_FEATURE_INIT_MODIFY_CMDLINE=y 522 | 523 | # 524 | # Login/Password Management Utilities 525 | # 526 | CONFIG_FEATURE_SHADOWPASSWDS=y 527 | CONFIG_USE_BB_PWD_GRP=y 528 | CONFIG_USE_BB_SHADOW=y 529 | CONFIG_USE_BB_CRYPT=y 530 | CONFIG_USE_BB_CRYPT_SHA=y 531 | CONFIG_ADD_SHELL=y 532 | CONFIG_REMOVE_SHELL=y 533 | CONFIG_ADDGROUP=y 534 | CONFIG_FEATURE_ADDUSER_TO_GROUP=y 535 | CONFIG_ADDUSER=y 536 | # CONFIG_FEATURE_CHECK_NAMES is not set 537 | CONFIG_LAST_ID=60000 538 | CONFIG_FIRST_SYSTEM_ID=100 539 | CONFIG_LAST_SYSTEM_ID=999 540 | CONFIG_CHPASSWD=y 541 | CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="des" 542 | CONFIG_CRYPTPW=y 543 | CONFIG_MKPASSWD=y 544 | CONFIG_DELUSER=y 545 | CONFIG_DELGROUP=y 546 | CONFIG_FEATURE_DEL_USER_FROM_GROUP=y 547 | CONFIG_GETTY=y 548 | CONFIG_LOGIN=y 549 | # CONFIG_LOGIN_SESSION_AS_CHILD is not set 550 | CONFIG_LOGIN_SCRIPTS=y 551 | CONFIG_FEATURE_NOLOGIN=y 552 | CONFIG_FEATURE_SECURETTY=y 553 | CONFIG_PASSWD=y 554 | CONFIG_FEATURE_PASSWD_WEAK_CHECK=y 555 | CONFIG_SU=y 556 | CONFIG_FEATURE_SU_SYSLOG=y 557 | CONFIG_FEATURE_SU_CHECKS_SHELLS=y 558 | # CONFIG_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY is not set 559 | CONFIG_SULOGIN=y 560 | CONFIG_VLOCK=y 561 | 562 | # 563 | # Linux Ext2 FS Progs 564 | # 565 | CONFIG_CHATTR=y 566 | CONFIG_FSCK=y 567 | CONFIG_LSATTR=y 568 | # CONFIG_TUNE2FS is not set 569 | 570 | # 571 | # Linux Module Utilities 572 | # 573 | CONFIG_MODPROBE_SMALL=y 574 | CONFIG_DEPMOD=y 575 | CONFIG_INSMOD=y 576 | CONFIG_LSMOD=y 577 | # CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set 578 | CONFIG_MODINFO=y 579 | CONFIG_MODPROBE=y 580 | # CONFIG_FEATURE_MODPROBE_BLACKLIST is not set 581 | CONFIG_RMMOD=y 582 | 583 | # 584 | # Options common to multiple modutils 585 | # 586 | CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS=y 587 | CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED=y 588 | # CONFIG_FEATURE_2_4_MODULES is not set 589 | # CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set 590 | # CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set 591 | # CONFIG_FEATURE_INSMOD_LOADINKMEM is not set 592 | # CONFIG_FEATURE_INSMOD_LOAD_MAP is not set 593 | # CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set 594 | # CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set 595 | # CONFIG_FEATURE_INSMOD_TRY_MMAP is not set 596 | # CONFIG_FEATURE_MODUTILS_ALIAS is not set 597 | # CONFIG_FEATURE_MODUTILS_SYMBOLS is not set 598 | CONFIG_DEFAULT_MODULES_DIR="/lib/modules" 599 | CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" 600 | 601 | # 602 | # Linux System Utilities 603 | # 604 | CONFIG_ACPID=y 605 | CONFIG_FEATURE_ACPID_COMPAT=y 606 | CONFIG_BLKDISCARD=y 607 | CONFIG_BLKID=y 608 | CONFIG_FEATURE_BLKID_TYPE=y 609 | CONFIG_BLOCKDEV=y 610 | CONFIG_CAL=y 611 | CONFIG_CHRT=y 612 | CONFIG_DMESG=y 613 | CONFIG_FEATURE_DMESG_PRETTY=y 614 | CONFIG_EJECT=y 615 | CONFIG_FEATURE_EJECT_SCSI=y 616 | CONFIG_FALLOCATE=y 617 | CONFIG_FATATTR=y 618 | CONFIG_FBSET=y 619 | CONFIG_FEATURE_FBSET_FANCY=y 620 | CONFIG_FEATURE_FBSET_READMODE=y 621 | CONFIG_FDFORMAT=y 622 | CONFIG_FDISK=y 623 | # CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set 624 | CONFIG_FEATURE_FDISK_WRITABLE=y 625 | # CONFIG_FEATURE_AIX_LABEL is not set 626 | # CONFIG_FEATURE_SGI_LABEL is not set 627 | # CONFIG_FEATURE_SUN_LABEL is not set 628 | # CONFIG_FEATURE_OSF_LABEL is not set 629 | # CONFIG_FEATURE_GPT_LABEL is not set 630 | CONFIG_FEATURE_FDISK_ADVANCED=y 631 | CONFIG_FINDFS=y 632 | CONFIG_FLOCK=y 633 | CONFIG_FDFLUSH=y 634 | CONFIG_FREERAMDISK=y 635 | CONFIG_FSCK_MINIX=y 636 | CONFIG_FSFREEZE=y 637 | CONFIG_FSTRIM=y 638 | CONFIG_GETOPT=y 639 | CONFIG_FEATURE_GETOPT_LONG=y 640 | CONFIG_HEXDUMP=y 641 | CONFIG_HD=y 642 | CONFIG_XXD=y 643 | CONFIG_HWCLOCK=y 644 | # CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set 645 | CONFIG_IONICE=y 646 | CONFIG_IPCRM=y 647 | CONFIG_IPCS=y 648 | CONFIG_LAST=y 649 | CONFIG_FEATURE_LAST_FANCY=y 650 | CONFIG_LOSETUP=y 651 | CONFIG_LSPCI=y 652 | CONFIG_LSUSB=y 653 | CONFIG_MDEV=y 654 | CONFIG_FEATURE_MDEV_CONF=y 655 | CONFIG_FEATURE_MDEV_RENAME=y 656 | CONFIG_FEATURE_MDEV_RENAME_REGEXP=y 657 | CONFIG_FEATURE_MDEV_EXEC=y 658 | CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y 659 | CONFIG_FEATURE_MDEV_DAEMON=y 660 | CONFIG_MESG=y 661 | CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y 662 | CONFIG_MKE2FS=y 663 | CONFIG_MKFS_EXT2=y 664 | CONFIG_MKFS_MINIX=y 665 | CONFIG_FEATURE_MINIX2=y 666 | # CONFIG_MKFS_REISER is not set 667 | CONFIG_MKDOSFS=y 668 | CONFIG_MKFS_VFAT=y 669 | CONFIG_MKSWAP=y 670 | CONFIG_FEATURE_MKSWAP_UUID=y 671 | CONFIG_MORE=y 672 | CONFIG_MOUNT=y 673 | CONFIG_FEATURE_MOUNT_FAKE=y 674 | CONFIG_FEATURE_MOUNT_VERBOSE=y 675 | # CONFIG_FEATURE_MOUNT_HELPERS is not set 676 | CONFIG_FEATURE_MOUNT_LABEL=y 677 | # CONFIG_FEATURE_MOUNT_NFS is not set 678 | CONFIG_FEATURE_MOUNT_CIFS=y 679 | CONFIG_FEATURE_MOUNT_FLAGS=y 680 | CONFIG_FEATURE_MOUNT_FSTAB=y 681 | CONFIG_FEATURE_MOUNT_OTHERTAB=y 682 | CONFIG_MOUNTPOINT=y 683 | CONFIG_NOLOGIN=y 684 | # CONFIG_NOLOGIN_DEPENDENCIES is not set 685 | CONFIG_NSENTER=y 686 | CONFIG_PIVOT_ROOT=y 687 | CONFIG_RDATE=y 688 | CONFIG_RDEV=y 689 | CONFIG_READPROFILE=y 690 | CONFIG_RENICE=y 691 | CONFIG_REV=y 692 | CONFIG_RTCWAKE=y 693 | CONFIG_SCRIPT=y 694 | CONFIG_SCRIPTREPLAY=y 695 | CONFIG_SETARCH=y 696 | CONFIG_LINUX32=y 697 | CONFIG_LINUX64=y 698 | CONFIG_SETPRIV=y 699 | CONFIG_FEATURE_SETPRIV_DUMP=y 700 | CONFIG_FEATURE_SETPRIV_CAPABILITIES=y 701 | CONFIG_FEATURE_SETPRIV_CAPABILITY_NAMES=y 702 | CONFIG_SETSID=y 703 | CONFIG_SWAPON=y 704 | CONFIG_FEATURE_SWAPON_DISCARD=y 705 | CONFIG_FEATURE_SWAPON_PRI=y 706 | CONFIG_SWAPOFF=y 707 | CONFIG_FEATURE_SWAPONOFF_LABEL=y 708 | CONFIG_SWITCH_ROOT=y 709 | CONFIG_TASKSET=y 710 | CONFIG_FEATURE_TASKSET_FANCY=y 711 | CONFIG_FEATURE_TASKSET_CPULIST=y 712 | CONFIG_UEVENT=y 713 | CONFIG_UMOUNT=y 714 | CONFIG_FEATURE_UMOUNT_ALL=y 715 | CONFIG_UNSHARE=y 716 | CONFIG_WALL=y 717 | 718 | # 719 | # Common options for mount/umount 720 | # 721 | CONFIG_FEATURE_MOUNT_LOOP=y 722 | CONFIG_FEATURE_MOUNT_LOOP_CREATE=y 723 | # CONFIG_FEATURE_MTAB_SUPPORT is not set 724 | CONFIG_VOLUMEID=y 725 | 726 | # 727 | # Filesystem/Volume identification 728 | # 729 | CONFIG_FEATURE_VOLUMEID_BCACHE=y 730 | CONFIG_FEATURE_VOLUMEID_BTRFS=y 731 | CONFIG_FEATURE_VOLUMEID_CRAMFS=y 732 | CONFIG_FEATURE_VOLUMEID_EROFS=y 733 | CONFIG_FEATURE_VOLUMEID_EXFAT=y 734 | CONFIG_FEATURE_VOLUMEID_EXT=y 735 | CONFIG_FEATURE_VOLUMEID_F2FS=y 736 | CONFIG_FEATURE_VOLUMEID_FAT=y 737 | CONFIG_FEATURE_VOLUMEID_HFS=y 738 | CONFIG_FEATURE_VOLUMEID_ISO9660=y 739 | CONFIG_FEATURE_VOLUMEID_JFS=y 740 | CONFIG_FEATURE_VOLUMEID_LFS=y 741 | CONFIG_FEATURE_VOLUMEID_LINUXRAID=y 742 | CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y 743 | CONFIG_FEATURE_VOLUMEID_LUKS=y 744 | CONFIG_FEATURE_VOLUMEID_MINIX=y 745 | CONFIG_FEATURE_VOLUMEID_NILFS=y 746 | CONFIG_FEATURE_VOLUMEID_NTFS=y 747 | CONFIG_FEATURE_VOLUMEID_OCFS2=y 748 | CONFIG_FEATURE_VOLUMEID_REISERFS=y 749 | CONFIG_FEATURE_VOLUMEID_ROMFS=y 750 | CONFIG_FEATURE_VOLUMEID_SQUASHFS=y 751 | CONFIG_FEATURE_VOLUMEID_SYSV=y 752 | CONFIG_FEATURE_VOLUMEID_UBIFS=y 753 | CONFIG_FEATURE_VOLUMEID_UDF=y 754 | CONFIG_FEATURE_VOLUMEID_XFS=y 755 | 756 | # 757 | # Miscellaneous Utilities 758 | # 759 | CONFIG_ADJTIMEX=y 760 | CONFIG_ASCII=y 761 | # CONFIG_BBCONFIG is not set 762 | # CONFIG_FEATURE_COMPRESS_BBCONFIG is not set 763 | CONFIG_BC=y 764 | CONFIG_DC=y 765 | CONFIG_FEATURE_DC_BIG=y 766 | # CONFIG_FEATURE_DC_LIBM is not set 767 | CONFIG_FEATURE_BC_INTERACTIVE=y 768 | CONFIG_FEATURE_BC_LONG_OPTIONS=y 769 | CONFIG_BEEP=y 770 | CONFIG_FEATURE_BEEP_FREQ=4000 771 | CONFIG_FEATURE_BEEP_LENGTH_MS=30 772 | CONFIG_CHAT=y 773 | CONFIG_FEATURE_CHAT_NOFAIL=y 774 | # CONFIG_FEATURE_CHAT_TTY_HIFI is not set 775 | CONFIG_FEATURE_CHAT_IMPLICIT_CR=y 776 | CONFIG_FEATURE_CHAT_SWALLOW_OPTS=y 777 | CONFIG_FEATURE_CHAT_SEND_ESCAPES=y 778 | CONFIG_FEATURE_CHAT_VAR_ABORT_LEN=y 779 | CONFIG_FEATURE_CHAT_CLR_ABORT=y 780 | CONFIG_CONSPY=y 781 | CONFIG_CROND=y 782 | CONFIG_FEATURE_CROND_D=y 783 | CONFIG_FEATURE_CROND_CALL_SENDMAIL=y 784 | CONFIG_FEATURE_CROND_SPECIAL_TIMES=y 785 | CONFIG_FEATURE_CROND_DIR="/var/spool/cron" 786 | CONFIG_CRONTAB=y 787 | # CONFIG_DEVFSD is not set 788 | # CONFIG_DEVFSD_MODLOAD is not set 789 | # CONFIG_DEVFSD_FG_NP is not set 790 | # CONFIG_DEVFSD_VERBOSE is not set 791 | # CONFIG_FEATURE_DEVFS is not set 792 | CONFIG_DEVMEM=y 793 | CONFIG_FBSPLASH=y 794 | # CONFIG_FLASH_ERASEALL is not set 795 | # CONFIG_FLASH_LOCK is not set 796 | # CONFIG_FLASH_UNLOCK is not set 797 | # CONFIG_FLASHCP is not set 798 | CONFIG_HDPARM=y 799 | CONFIG_FEATURE_HDPARM_GET_IDENTITY=y 800 | CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF=y 801 | CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF=y 802 | CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET=y 803 | CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF=y 804 | CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y 805 | CONFIG_HEXEDIT=y 806 | CONFIG_I2CGET=y 807 | CONFIG_I2CSET=y 808 | CONFIG_I2CDUMP=y 809 | CONFIG_I2CDETECT=y 810 | CONFIG_I2CTRANSFER=y 811 | # CONFIG_INOTIFYD is not set 812 | CONFIG_LESS=y 813 | CONFIG_FEATURE_LESS_MAXLINES=9999999 814 | CONFIG_FEATURE_LESS_BRACKETS=y 815 | CONFIG_FEATURE_LESS_FLAGS=y 816 | CONFIG_FEATURE_LESS_TRUNCATE=y 817 | CONFIG_FEATURE_LESS_MARKS=y 818 | CONFIG_FEATURE_LESS_REGEXP=y 819 | CONFIG_FEATURE_LESS_WINCH=y 820 | CONFIG_FEATURE_LESS_ASK_TERMINAL=y 821 | CONFIG_FEATURE_LESS_DASHCMD=y 822 | CONFIG_FEATURE_LESS_LINENUMS=y 823 | CONFIG_FEATURE_LESS_RAW=y 824 | CONFIG_FEATURE_LESS_ENV=y 825 | CONFIG_LSSCSI=y 826 | CONFIG_MAKEDEVS=y 827 | # CONFIG_FEATURE_MAKEDEVS_LEAF is not set 828 | CONFIG_FEATURE_MAKEDEVS_TABLE=y 829 | CONFIG_MAN=y 830 | CONFIG_MICROCOM=y 831 | CONFIG_MIM=y 832 | CONFIG_MT=y 833 | CONFIG_NANDWRITE=y 834 | CONFIG_NANDDUMP=y 835 | CONFIG_PARTPROBE=y 836 | CONFIG_RAIDAUTORUN=y 837 | CONFIG_READAHEAD=y 838 | # CONFIG_RFKILL is not set 839 | CONFIG_RUNLEVEL=y 840 | CONFIG_RX=y 841 | CONFIG_SEEDRNG=y 842 | CONFIG_SETFATTR=y 843 | CONFIG_SETSERIAL=y 844 | CONFIG_STRINGS=y 845 | CONFIG_TIME=y 846 | CONFIG_TREE=y 847 | CONFIG_TS=y 848 | CONFIG_TTYSIZE=y 849 | CONFIG_UBIATTACH=y 850 | CONFIG_UBIDETACH=y 851 | CONFIG_UBIMKVOL=y 852 | CONFIG_UBIRMVOL=y 853 | CONFIG_UBIRSVOL=y 854 | CONFIG_UBIUPDATEVOL=y 855 | CONFIG_UBIRENAME=y 856 | CONFIG_VOLNAME=y 857 | CONFIG_WATCHDOG=y 858 | # CONFIG_FEATURE_WATCHDOG_OPEN_TWICE is not set 859 | 860 | # 861 | # Networking Utilities 862 | # 863 | CONFIG_FEATURE_IPV6=y 864 | # CONFIG_FEATURE_UNIX_LOCAL is not set 865 | CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y 866 | # CONFIG_VERBOSE_RESOLUTION_ERRORS is not set 867 | # CONFIG_FEATURE_ETC_NETWORKS is not set 868 | # CONFIG_FEATURE_ETC_SERVICES is not set 869 | CONFIG_FEATURE_HWIB=y 870 | # CONFIG_FEATURE_TLS_SHA1 is not set 871 | CONFIG_ARP=y 872 | CONFIG_ARPING=y 873 | CONFIG_BRCTL=y 874 | CONFIG_FEATURE_BRCTL_FANCY=y 875 | CONFIG_FEATURE_BRCTL_SHOW=y 876 | CONFIG_DNSD=y 877 | CONFIG_ETHER_WAKE=y 878 | CONFIG_FTPD=y 879 | CONFIG_FEATURE_FTPD_WRITE=y 880 | CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=y 881 | CONFIG_FEATURE_FTPD_AUTHENTICATION=y 882 | CONFIG_FTPGET=y 883 | CONFIG_FTPPUT=y 884 | CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y 885 | CONFIG_HOSTNAME=y 886 | CONFIG_DNSDOMAINNAME=y 887 | CONFIG_HTTPD=y 888 | CONFIG_FEATURE_HTTPD_PORT_DEFAULT=80 889 | CONFIG_FEATURE_HTTPD_RANGES=y 890 | CONFIG_FEATURE_HTTPD_SETUID=y 891 | CONFIG_FEATURE_HTTPD_BASIC_AUTH=y 892 | CONFIG_FEATURE_HTTPD_AUTH_MD5=y 893 | CONFIG_FEATURE_HTTPD_CGI=y 894 | CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR=y 895 | CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV=y 896 | CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y 897 | CONFIG_FEATURE_HTTPD_ERROR_PAGES=y 898 | CONFIG_FEATURE_HTTPD_PROXY=y 899 | CONFIG_FEATURE_HTTPD_GZIP=y 900 | CONFIG_FEATURE_HTTPD_ETAG=y 901 | CONFIG_FEATURE_HTTPD_LAST_MODIFIED=y 902 | CONFIG_FEATURE_HTTPD_DATE=y 903 | CONFIG_FEATURE_HTTPD_ACL_IP=y 904 | CONFIG_IFCONFIG=y 905 | CONFIG_FEATURE_IFCONFIG_STATUS=y 906 | CONFIG_FEATURE_IFCONFIG_SLIP=y 907 | CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y 908 | CONFIG_FEATURE_IFCONFIG_HW=y 909 | CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y 910 | CONFIG_IFENSLAVE=y 911 | CONFIG_IFPLUGD=y 912 | CONFIG_IFUP=y 913 | CONFIG_IFDOWN=y 914 | CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" 915 | CONFIG_FEATURE_IFUPDOWN_IP=y 916 | CONFIG_FEATURE_IFUPDOWN_IPV4=y 917 | CONFIG_FEATURE_IFUPDOWN_IPV6=y 918 | CONFIG_FEATURE_IFUPDOWN_MAPPING=y 919 | # CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set 920 | CONFIG_INETD=y 921 | CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO=y 922 | CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD=y 923 | CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y 924 | CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y 925 | CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y 926 | # CONFIG_FEATURE_INETD_RPC is not set 927 | CONFIG_IP=y 928 | CONFIG_IPADDR=y 929 | CONFIG_IPLINK=y 930 | CONFIG_IPROUTE=y 931 | CONFIG_IPTUNNEL=y 932 | CONFIG_IPRULE=y 933 | CONFIG_IPNEIGH=y 934 | CONFIG_FEATURE_IP_ADDRESS=y 935 | CONFIG_FEATURE_IP_LINK=y 936 | CONFIG_FEATURE_IP_ROUTE=y 937 | CONFIG_FEATURE_IP_ROUTE_DIR="/etc/iproute2" 938 | CONFIG_FEATURE_IP_TUNNEL=y 939 | CONFIG_FEATURE_IP_RULE=y 940 | CONFIG_FEATURE_IP_NEIGH=y 941 | # CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set 942 | CONFIG_IPCALC=y 943 | CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y 944 | CONFIG_FEATURE_IPCALC_FANCY=y 945 | CONFIG_FAKEIDENTD=y 946 | CONFIG_NAMEIF=y 947 | CONFIG_FEATURE_NAMEIF_EXTENDED=y 948 | CONFIG_NBDCLIENT=y 949 | CONFIG_NC=y 950 | # CONFIG_NETCAT is not set 951 | CONFIG_NC_SERVER=y 952 | CONFIG_NC_EXTRA=y 953 | CONFIG_NC_110_COMPAT=y 954 | CONFIG_NETSTAT=y 955 | CONFIG_FEATURE_NETSTAT_WIDE=y 956 | CONFIG_FEATURE_NETSTAT_PRG=y 957 | CONFIG_NSLOOKUP=y 958 | CONFIG_FEATURE_NSLOOKUP_BIG=y 959 | CONFIG_FEATURE_NSLOOKUP_LONG_OPTIONS=y 960 | CONFIG_NTPD=y 961 | CONFIG_FEATURE_NTPD_SERVER=y 962 | CONFIG_FEATURE_NTPD_CONF=y 963 | CONFIG_FEATURE_NTP_AUTH=y 964 | CONFIG_PING=y 965 | CONFIG_PING6=y 966 | CONFIG_FEATURE_FANCY_PING=y 967 | CONFIG_PSCAN=y 968 | CONFIG_ROUTE=y 969 | CONFIG_SLATTACH=y 970 | CONFIG_SSL_CLIENT=y 971 | CONFIG_TC=y 972 | CONFIG_FEATURE_TC_INGRESS=y 973 | CONFIG_TCPSVD=y 974 | CONFIG_UDPSVD=y 975 | CONFIG_TELNET=y 976 | CONFIG_FEATURE_TELNET_TTYPE=y 977 | CONFIG_FEATURE_TELNET_AUTOLOGIN=y 978 | CONFIG_FEATURE_TELNET_WIDTH=y 979 | CONFIG_TELNETD=y 980 | CONFIG_FEATURE_TELNETD_STANDALONE=y 981 | CONFIG_FEATURE_TELNETD_PORT_DEFAULT=23 982 | CONFIG_FEATURE_TELNETD_INETD_WAIT=y 983 | CONFIG_TFTP=y 984 | CONFIG_FEATURE_TFTP_PROGRESS_BAR=y 985 | CONFIG_FEATURE_TFTP_HPA_COMPAT=y 986 | CONFIG_TFTPD=y 987 | CONFIG_FEATURE_TFTP_GET=y 988 | CONFIG_FEATURE_TFTP_PUT=y 989 | CONFIG_FEATURE_TFTP_BLOCKSIZE=y 990 | # CONFIG_TFTP_DEBUG is not set 991 | CONFIG_TLS=y 992 | CONFIG_TRACEROUTE=y 993 | CONFIG_TRACEROUTE6=y 994 | CONFIG_FEATURE_TRACEROUTE_VERBOSE=y 995 | CONFIG_FEATURE_TRACEROUTE_USE_ICMP=y 996 | CONFIG_TUNCTL=y 997 | CONFIG_FEATURE_TUNCTL_UG=y 998 | CONFIG_VCONFIG=y 999 | CONFIG_WGET=y 1000 | CONFIG_FEATURE_WGET_LONG_OPTIONS=y 1001 | CONFIG_FEATURE_WGET_STATUSBAR=y 1002 | CONFIG_FEATURE_WGET_FTP=y 1003 | CONFIG_FEATURE_WGET_AUTHENTICATION=y 1004 | CONFIG_FEATURE_WGET_TIMEOUT=y 1005 | CONFIG_FEATURE_WGET_HTTPS=y 1006 | CONFIG_FEATURE_WGET_OPENSSL=y 1007 | CONFIG_WHOIS=y 1008 | CONFIG_ZCIP=y 1009 | CONFIG_UDHCPD=y 1010 | # CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set 1011 | CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY=y 1012 | CONFIG_DHCPD_LEASES_FILE="/var/lib/misc/udhcpd.leases" 1013 | CONFIG_DUMPLEASES=y 1014 | CONFIG_DHCPRELAY=y 1015 | CONFIG_UDHCPC=y 1016 | CONFIG_FEATURE_UDHCPC_ARPING=y 1017 | CONFIG_FEATURE_UDHCPC_SANITIZEOPT=y 1018 | CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script" 1019 | CONFIG_UDHCPC6_DEFAULT_SCRIPT="/usr/share/udhcpc/default6.script" 1020 | CONFIG_UDHCPC6=y 1021 | CONFIG_FEATURE_UDHCPC6_RFC3646=y 1022 | CONFIG_FEATURE_UDHCPC6_RFC4704=y 1023 | CONFIG_FEATURE_UDHCPC6_RFC4833=y 1024 | CONFIG_FEATURE_UDHCPC6_RFC5970=y 1025 | 1026 | # 1027 | # Common options for DHCP applets 1028 | # 1029 | CONFIG_UDHCPC_DEFAULT_INTERFACE="eth0" 1030 | # CONFIG_FEATURE_UDHCP_PORT is not set 1031 | CONFIG_UDHCP_DEBUG=2 1032 | CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80 1033 | CONFIG_FEATURE_UDHCP_RFC3397=y 1034 | CONFIG_FEATURE_UDHCP_8021Q=y 1035 | CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n" 1036 | 1037 | # 1038 | # Print Utilities 1039 | # 1040 | CONFIG_LPD=y 1041 | CONFIG_LPR=y 1042 | CONFIG_LPQ=y 1043 | 1044 | # 1045 | # Mail Utilities 1046 | # 1047 | CONFIG_FEATURE_MIME_CHARSET="us-ascii" 1048 | CONFIG_MAKEMIME=y 1049 | CONFIG_POPMAILDIR=y 1050 | CONFIG_FEATURE_POPMAILDIR_DELIVERY=y 1051 | CONFIG_REFORMIME=y 1052 | CONFIG_FEATURE_REFORMIME_COMPAT=y 1053 | CONFIG_SENDMAIL=y 1054 | 1055 | # 1056 | # Process Utilities 1057 | # 1058 | # CONFIG_FEATURE_FAST_TOP is not set 1059 | CONFIG_FEATURE_SHOW_THREADS=y 1060 | CONFIG_FREE=y 1061 | CONFIG_FUSER=y 1062 | CONFIG_IOSTAT=y 1063 | CONFIG_KILL=y 1064 | CONFIG_KILLALL=y 1065 | CONFIG_KILLALL5=y 1066 | CONFIG_LSOF=y 1067 | CONFIG_MPSTAT=y 1068 | CONFIG_NMETER=y 1069 | CONFIG_PGREP=y 1070 | CONFIG_PKILL=y 1071 | CONFIG_PIDOF=y 1072 | CONFIG_FEATURE_PIDOF_SINGLE=y 1073 | CONFIG_FEATURE_PIDOF_OMIT=y 1074 | CONFIG_PMAP=y 1075 | CONFIG_POWERTOP=y 1076 | CONFIG_FEATURE_POWERTOP_INTERACTIVE=y 1077 | CONFIG_PS=y 1078 | # CONFIG_FEATURE_PS_WIDE is not set 1079 | # CONFIG_FEATURE_PS_LONG is not set 1080 | CONFIG_FEATURE_PS_TIME=y 1081 | # CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set 1082 | CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS=y 1083 | CONFIG_PSTREE=y 1084 | CONFIG_PWDX=y 1085 | CONFIG_SMEMCAP=y 1086 | CONFIG_BB_SYSCTL=y 1087 | CONFIG_TOP=y 1088 | CONFIG_FEATURE_TOP_INTERACTIVE=y 1089 | CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y 1090 | CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y 1091 | CONFIG_FEATURE_TOP_SMP_CPU=y 1092 | CONFIG_FEATURE_TOP_DECIMALS=y 1093 | CONFIG_FEATURE_TOP_SMP_PROCESS=y 1094 | CONFIG_FEATURE_TOPMEM=y 1095 | CONFIG_UPTIME=y 1096 | CONFIG_FEATURE_UPTIME_UTMP_SUPPORT=y 1097 | CONFIG_WATCH=y 1098 | 1099 | # 1100 | # Runit Utilities 1101 | # 1102 | CONFIG_CHPST=y 1103 | CONFIG_SETUIDGID=y 1104 | CONFIG_ENVUIDGID=y 1105 | CONFIG_ENVDIR=y 1106 | CONFIG_SOFTLIMIT=y 1107 | CONFIG_RUNSV=y 1108 | CONFIG_RUNSVDIR=y 1109 | # CONFIG_FEATURE_RUNSVDIR_LOG is not set 1110 | CONFIG_SV=y 1111 | CONFIG_SV_DEFAULT_SERVICE_DIR="/var/service" 1112 | CONFIG_SVC=y 1113 | CONFIG_SVOK=y 1114 | CONFIG_SVLOGD=y 1115 | # CONFIG_CHCON is not set 1116 | # CONFIG_GETENFORCE is not set 1117 | # CONFIG_GETSEBOOL is not set 1118 | # CONFIG_LOAD_POLICY is not set 1119 | # CONFIG_MATCHPATHCON is not set 1120 | # CONFIG_RUNCON is not set 1121 | # CONFIG_SELINUXENABLED is not set 1122 | # CONFIG_SESTATUS is not set 1123 | # CONFIG_SETENFORCE is not set 1124 | # CONFIG_SETFILES is not set 1125 | # CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set 1126 | # CONFIG_RESTORECON is not set 1127 | # CONFIG_SETSEBOOL is not set 1128 | 1129 | # 1130 | # Shells 1131 | # 1132 | CONFIG_SH_IS_ASH=y 1133 | # CONFIG_SH_IS_HUSH is not set 1134 | # CONFIG_SH_IS_NONE is not set 1135 | # CONFIG_BASH_IS_ASH is not set 1136 | # CONFIG_BASH_IS_HUSH is not set 1137 | CONFIG_BASH_IS_NONE=y 1138 | CONFIG_SHELL_ASH=y 1139 | CONFIG_ASH=y 1140 | CONFIG_ASH_OPTIMIZE_FOR_SIZE=y 1141 | CONFIG_ASH_INTERNAL_GLOB=y 1142 | CONFIG_ASH_BASH_COMPAT=y 1143 | # CONFIG_ASH_BASH_SOURCE_CURDIR is not set 1144 | CONFIG_ASH_BASH_NOT_FOUND_HOOK=y 1145 | CONFIG_ASH_JOB_CONTROL=y 1146 | CONFIG_ASH_ALIAS=y 1147 | CONFIG_ASH_RANDOM_SUPPORT=y 1148 | CONFIG_ASH_EXPAND_PRMT=y 1149 | CONFIG_ASH_IDLE_TIMEOUT=y 1150 | CONFIG_ASH_MAIL=y 1151 | CONFIG_ASH_ECHO=y 1152 | CONFIG_ASH_PRINTF=y 1153 | CONFIG_ASH_TEST=y 1154 | CONFIG_ASH_SLEEP=y 1155 | CONFIG_ASH_HELP=y 1156 | CONFIG_ASH_GETOPTS=y 1157 | CONFIG_ASH_CMDCMD=y 1158 | CONFIG_CTTYHACK=y 1159 | CONFIG_HUSH=y 1160 | CONFIG_SHELL_HUSH=y 1161 | CONFIG_HUSH_BASH_COMPAT=y 1162 | CONFIG_HUSH_BRACE_EXPANSION=y 1163 | # CONFIG_HUSH_BASH_SOURCE_CURDIR is not set 1164 | CONFIG_HUSH_LINENO_VAR=y 1165 | CONFIG_HUSH_INTERACTIVE=y 1166 | CONFIG_HUSH_SAVEHISTORY=y 1167 | CONFIG_HUSH_JOB=y 1168 | CONFIG_HUSH_TICK=y 1169 | CONFIG_HUSH_IF=y 1170 | CONFIG_HUSH_LOOPS=y 1171 | CONFIG_HUSH_CASE=y 1172 | CONFIG_HUSH_FUNCTIONS=y 1173 | CONFIG_HUSH_LOCAL=y 1174 | CONFIG_HUSH_RANDOM_SUPPORT=y 1175 | CONFIG_HUSH_MODE_X=y 1176 | CONFIG_HUSH_ECHO=y 1177 | CONFIG_HUSH_PRINTF=y 1178 | CONFIG_HUSH_TEST=y 1179 | CONFIG_HUSH_HELP=y 1180 | CONFIG_HUSH_EXPORT=y 1181 | CONFIG_HUSH_EXPORT_N=y 1182 | CONFIG_HUSH_READONLY=y 1183 | CONFIG_HUSH_KILL=y 1184 | CONFIG_HUSH_WAIT=y 1185 | CONFIG_HUSH_COMMAND=y 1186 | CONFIG_HUSH_TRAP=y 1187 | CONFIG_HUSH_TYPE=y 1188 | CONFIG_HUSH_TIMES=y 1189 | CONFIG_HUSH_READ=y 1190 | CONFIG_HUSH_SET=y 1191 | CONFIG_HUSH_UNSET=y 1192 | CONFIG_HUSH_ULIMIT=y 1193 | CONFIG_HUSH_UMASK=y 1194 | CONFIG_HUSH_GETOPTS=y 1195 | # CONFIG_HUSH_MEMLEAK is not set 1196 | 1197 | # 1198 | # Options common to all shells 1199 | # 1200 | CONFIG_FEATURE_SH_MATH=y 1201 | CONFIG_FEATURE_SH_MATH_64=y 1202 | CONFIG_FEATURE_SH_MATH_BASE=y 1203 | CONFIG_FEATURE_SH_EXTRA_QUIET=y 1204 | # CONFIG_FEATURE_SH_STANDALONE is not set 1205 | # CONFIG_FEATURE_SH_NOFORK is not set 1206 | CONFIG_FEATURE_SH_READ_FRAC=y 1207 | CONFIG_FEATURE_SH_HISTFILESIZE=y 1208 | CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS=y 1209 | 1210 | # 1211 | # System Logging Utilities 1212 | # 1213 | CONFIG_KLOGD=y 1214 | 1215 | # 1216 | # klogd should not be used together with syslog to kernel printk buffer 1217 | # 1218 | CONFIG_FEATURE_KLOGD_KLOGCTL=y 1219 | CONFIG_LOGGER=y 1220 | CONFIG_LOGREAD=y 1221 | CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y 1222 | CONFIG_SYSLOGD=y 1223 | CONFIG_FEATURE_ROTATE_LOGFILE=y 1224 | CONFIG_FEATURE_REMOTE_LOG=y 1225 | CONFIG_FEATURE_SYSLOGD_DUP=y 1226 | CONFIG_FEATURE_SYSLOGD_CFG=y 1227 | # CONFIG_FEATURE_SYSLOGD_PRECISE_TIMESTAMPS is not set 1228 | CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256 1229 | CONFIG_FEATURE_IPC_SYSLOG=y 1230 | CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16 1231 | CONFIG_FEATURE_KMSG_SYSLOG=y 1232 | -------------------------------------------------------------------------------- /mnt/bb/fstab: -------------------------------------------------------------------------------- 1 | proc /proc proc defaults 0 0 2 | none /tmp tmpfs defaults 0 0 3 | mdev /dev tmpfs defaults 0 0 4 | sysfs /sys sysfs defaults 0 0 5 | 6 | -------------------------------------------------------------------------------- /mnt/bb/group: -------------------------------------------------------------------------------- 1 | root:x:0:root 2 | 3 | -------------------------------------------------------------------------------- /mnt/bb/inittab: -------------------------------------------------------------------------------- 1 | ::sysinit:/etc/init.d/rcS 2 | ::respawn:-/bin/login 3 | ::restart:/sbin/init 4 | ::ctrlaltdel:/sbin/reboot 5 | ::shutdown:/bin/umount -a -r 6 | ::shutdown:/sbin/swapoff -a 7 | 8 | -------------------------------------------------------------------------------- /mnt/bb/passwd: -------------------------------------------------------------------------------- 1 | root:x:0:0:root:/root:/bin/sh 2 | 3 | -------------------------------------------------------------------------------- /mnt/bb/profile: -------------------------------------------------------------------------------- 1 | # /etc/profile: system-wide .profile file for the Bourne shells 2 | echo 3 | # echo -n "Processing /etc/profile... " 4 | # no-op 5 | # Set search library path 6 | # echo "Set search library path in /etc/profile" 7 | export LD_LIBRARY_PATH=/lib:/usr/lib 8 | # Set user path 9 | # echo "Set user path in /etc/profile" 10 | PATH=/bin:/sbin:/usr/bin:/usr/sbin 11 | export PATH 12 | # Set PS1 13 | # Note: In addition to the SHELL variable, ash supports \u, \h, \W, \$, \!, \n, \w, \nnn (octal numbers corresponding to ASCII characters) 14 | # And \e[xx;xxm (color effects), etc. 15 | # Also add an extra '\' in front of it! 16 | # echo "Set PS1 in /etc/profile" 17 | export PS1="\\e[00;32m[$USER@\\w\\a]\\$\\e[00;34m" 18 | # echo "Done" 19 | 20 | -------------------------------------------------------------------------------- /mnt/bb/rcS: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | #echo "----------mount all" 3 | /bin/mount -a 4 | #echo "----------Starting mdev......" 5 | #/bin/echo /sbin/mdev > /proc/sys/kernel/hotplug 6 | mdev -s 7 | echo "********************************************************" 8 | echo " starfive mini RISC-V Rootfs" 9 | echo "********************************************************" 10 | 11 | -------------------------------------------------------------------------------- /mnt/bb/shadow: -------------------------------------------------------------------------------- 1 | root:BAy5qvelNWKns:1:0:99999:7::: 2 | 3 | -------------------------------------------------------------------------------- /mnt/build_all.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | build_u-boot.sh || exit $? 3 | build_opensbi.sh || exit $? 4 | build_spl.sh || exit $? 5 | build_kernel.sh || exit $? 6 | -------------------------------------------------------------------------------- /mnt/build_kernel.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | CORES=$(nproc) 3 | ROOTFS=/mnt/boot 4 | git clone --depth 1 -b JH7110_VisionFive2_devel https://github.com/starfive-tech/linux.git 5 | cd linux || exit 1 6 | make starfive_visionfive2_defconfig CROSS_COMPILE=riscv64-linux-gnu- ARCH=riscv || exit 2 7 | #make CROSS_COMPILE=riscv64-linux-gnu- ARCH=riscv menuconfig 8 | make CROSS_COMPILE=riscv64-linux-gnu- ARCH=riscv -j "${CORES}" || exit 3 9 | mkdir -p ${ROOTFS} 10 | make CROSS_COMPILE=riscv64-linux-gnu- ARCH=riscv INSTALL_PATH=${ROOTFS} zinstall || exit 4 11 | ls -l arch/riscv/boot/Image.gz 12 | ls -l arch/riscv/boot/dts/starfive/*.dtb 13 | ls -l ${ROOTFS} 14 | 15 | -------------------------------------------------------------------------------- /mnt/build_kernel_vf2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | CORES=$(nproc) 3 | declare -x INSTALL_PATH=/mnt/boot 4 | declare -x INSTALL_MOD_PATH=/mnt 5 | declare -x LOCALVERSION="-starfive" 6 | declare -x CROSS_COMPILE=riscv64-linux-gnu- 7 | declare -x ARCH=riscv 8 | 9 | rm -rf linux ${INSTALL_PATH} ${INSTALL_MOD_PATH}/lib 10 | git clone --depth 1 https://gitlab.com/a-wai/vf2-linux.git linux 11 | cd linux || exit 1 12 | touch .scmversion 13 | make starfive_visionfive2_defconfig || exit 2 14 | #make menuconfig 15 | make olddefconfig || exit 3 16 | make -j "${CORES}" || exit 4 17 | mkdir -p ${INSTALL_PATH} 18 | make zinstall modules_install || exit 5 19 | ls -l arch/riscv/boot/Image.gz 20 | ls -l arch/riscv/boot/dts/starfive/*.dtb 21 | ls -l ${INSTALL_PATH} 22 | echo "Kernel installed in ${INSTALL_PATH} and modules in ${INSTALL_MOD_PATH}/lib/modules/" 23 | 24 | -------------------------------------------------------------------------------- /mnt/build_opensbi.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | UBOOT=/mnt/u-boot 3 | rm -rf opensbi 4 | git clone https://github.com/starfive-tech/opensbi.git 5 | cd opensbi || exit 1 6 | make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- PLATFORM=generic FW_PAYLOAD_PATH=${UBOOT}/u-boot.bin FW_FDT_PATH=${UBOOT}/arch/riscv/dts/starfive_visionfive2.dtb FW_TEXT_START=0x40000000 || exit 2 7 | ls -l build/platform/generic/firmware/fw_payload.bin 8 | 9 | -------------------------------------------------------------------------------- /mnt/build_rootfs.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | CORES=$(nproc) 3 | ROOTFS=/mnt/rootfs 4 | BBCONF=/mnt/bb 5 | declare -x ARCH=riscv 6 | 7 | rm -rf "$ROOTFS" busybox 8 | mkdir -p "$ROOTFS"/dev "$ROOTFS"/usr "$ROOTFS"/bin "$ROOTFS"/sbin "$ROOTFS"/lib "$ROOTFS"/etc/init.d "$ROOTFS"/proc "$ROOTFS"/tmp "$ROOTFS"/sys "$ROOTFS"/var "$ROOTFS"/root "$ROOTFS"/mnt 9 | git clone https://git.busybox.net/busybox.git 10 | cd busybox || exit 1 11 | cp "$BBCONF"/config .config 12 | make oldconfig 13 | #make CROSS_COMPILE=riscv64-linux-gnu- ARCH=riscv menuconfig 14 | make -j "$CORES" all install 15 | cd "$BBCONF" && cp inittab profile fstab passwd group shadow "$ROOTFS"/etc && cp rcS "$ROOTFS"/etc/init.d 16 | cd "$ROOTFS" && ln -s bin/busybox init 17 | cd "$ROOTFS"/dev && mknod -m 666 console c 5 1 && mknod -m 666 null c 1 3 18 | #sudo chmod 777 -R * 19 | cd "$ROOTFS" && find . | cpio -o -H newc | gzip > ../rootfs.cpio.gz 20 | cd "$ROOTFS" && tar -Jcf ../rootfs.tar.xz . 21 | cd /mnt && ls -l rootfs.* 22 | 23 | -------------------------------------------------------------------------------- /mnt/build_spl.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | UBOOT=/mnt/u-boot 3 | OPENSBI=/mnt/opensbi 4 | rm -rf Tools 5 | git clone https://github.com/starfive-tech/Tools.git 6 | cd Tools/spl_tool || exit 1 7 | make || exit 6 8 | ./spl_tool -c -f ${UBOOT}/spl/u-boot-spl.bin || exit 2 9 | ls -l u-boot-spl.bin.normal.out 10 | cd ../uboot_its || exit 3 11 | cp ${OPENSBI}/build/platform/generic/firmware/fw_payload.bin ./ || exit 4 12 | ${UBOOT}/tools/mkimage -f visionfive2-uboot-fit-image.its -A riscv -O u-boot -T firmware visionfive2_fw_payload.img || exit 5 13 | ls -l visionfive2_fw_payload.img 14 | 15 | -------------------------------------------------------------------------------- /mnt/build_u-boot.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | CORES=$(nproc) 3 | rm -rf u-boot 4 | git clone --depth 1 -b JH7110_VisionFive2_devel https://github.com/starfive-tech/u-boot.git 5 | cd u-boot || exit 1 6 | make starfive_visionfive2_defconfig ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- -j "${CORES}" || exit 2 7 | make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- -j "${CORES}" || exit 3 8 | ls -l u-boot.bin arch/riscv/dts/starfive_visionfive2.dtb spl/u-boot-spl.bin 9 | 10 | -------------------------------------------------------------------------------- /mnt/clean.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | rm -rf linux opensbi Tools u-boot boot lib rootfs busybox rootfs.* 3 | 4 | -------------------------------------------------------------------------------- /podman_build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | podman build -t visionfive2:latest . 3 | # built image is named localhost/visionfive2:latest 4 | -------------------------------------------------------------------------------- /podman_shell.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # if not running privileged 3 | # either: chmod 777 $(pwd)/mnt 4 | # or: -v $(pwd)/mnt:/mnt:Z \ 5 | podman run --rm \ 6 | -v "$(pwd)"/mnt:/mnt \ 7 | --privileged \ 8 | -it localhost/visionfive2:latest "$@" 9 | 10 | -------------------------------------------------------------------------------- /rootfs_image.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | if [ -f mnt/rootfs.tar.xz ]; then 3 | docker build -t visionfive2:rootfs -f Dockerfile.rootfs . --no-cache 4 | else 5 | echo "rootfs missing, build it with: build_rootfs.sh" 6 | fi 7 | 8 | -------------------------------------------------------------------------------- /rootfs_shell.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | docker run --rm \ 3 | -it visionfive2:rootfs "$@" 4 | 5 | -------------------------------------------------------------------------------- /shell.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | docker run --rm \ 3 | -v "$(pwd)"/mnt:/mnt \ 4 | -it visionfive2:latest "$@" 5 | 6 | --------------------------------------------------------------------------------