diff --git a/rkos/.gitignore b/rkos/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..6bc4f9e6bc934361696c3e1833345b106477f392 --- /dev/null +++ b/rkos/.gitignore @@ -0,0 +1,12 @@ +# Generated by Cargo +# will have compiled files and executables +/target/ + +# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries +# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html +Cargo.lock + +# These are backup files generated by rustfmt +**/*.rs.bk + +**/*.iso diff --git a/rkos/Cargo.toml b/rkos/Cargo.toml new file mode 100644 index 0000000000000000000000000000000000000000..f2baa8a4fc958c2dbf213d531a00ba6e9ff37d4c --- /dev/null +++ b/rkos/Cargo.toml @@ -0,0 +1,24 @@ +[package] +name = "rkos-builder" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +dagrs={git="https://github.com/xyyy1420/dagrs"} +libparted = "0.1.3" +nix = "0.17.0" +serde_json = "1.0" +serde = "1.0.1" +lazy_static = "1.1.1" +glob = "0.3.1" +to_absolute = "0.1.0" +log4rs = "1.2.0" +log = "0.4.17" +clap = { version = "4.0.0", features = ["derive"] } +once_cell="1.9.0" +cmd_lib = "1.3.0" +walkdir = "2.3.2" +requestty = "0.4.1" +regex = "1.6.0" diff --git a/rkos/LICENSE b/rkos/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..33202a327b7e6e02beca2c8d90260858fc17d1a6 --- /dev/null +++ b/rkos/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 open-rust-initiative + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/rkos/README.md b/rkos/README.md new file mode 100644 index 0000000000000000000000000000000000000000..eda50abd830fc3ffc53ce9548f8e1cbea6ef388d --- /dev/null +++ b/rkos/README.md @@ -0,0 +1,177 @@ +# rkos +Rust King OS - Linux Distro of Rust Programing Language + +# Tutorial + +## 宿主机的准备工作 + +### 注意事项 + +- 请确认目前使用的是root用户,并且在所有构建流程都应该使用root用户,另外不推荐使用物理机,虽然构建程序理论上并不会破坏宿主机环境,为了安全起见,建议使用虚拟机 + +- 请确认内存+交换分区总大小在35GB及以上,如果使用了构建程序提供的宿主机环境,请保证第三块磁盘容量足够,并且已经挂载为交换分区 + +### 使用提供的宿主机环境 + +- 运行version-check.sh查看输出,判断是否存在软件包缺失等问题 + +- 构建宿主系统,并使用kvm启动宿主系统 + +- 挂载目标分区 + ``` + mkdir -pv /mnt/lfs + mkdir -pv /mnt/lfs/boot + cp /etc/fstab{,.DISK_origin} + echo "/dev/vdb1 /mnt/lfs/boot vfat defaults 1 1" >> /etc/fstab + echo "/dev/vdb2 /mnt/lfs ext4 defaults 1 1" >> /etc/fstab + mount -a + systemctl daemon-reload + ``` + +- 编译构建工具 + +- 将配置文件(configs,scripts,config-6.1,umount.sh)以及运行程序(rkos-builder)置于宿主系统目标分区(/mnt/lfs/)下 + +- 运行rkos-builder --help 查看指令,并按选项流程构建 + +- 构建完成后在主机上压缩目标分区qcow2镜像,镜像目录在宿主机kvm镜像存放的位置处 + + ``` + TMPDIR=/home/tmp/path virt-sparsity --compress xxx.qcow2 xxx_compress.qcow2 + ``` + +### 使用自己的Linux + +- 安装宿主机必需的软件 + ``` + Bash >= 3.2 (/bin/sh 必须是到 bash 的符号链接或硬连接) + Binutils >= 2.13.1 + Bison >= 2.7 (/usr/bin/yacc 必须是到 bison 的链接,或者是一个执行 bison 的小脚本) + Coreutils >= 6.9 + Diffutils >= 2.8.1 + Findutils >= 4.2.31 + Gawk >= 4.0.1 (/usr/bin/awk 必须是到 gawk 的链接) + GCC >= 4.8,包括 C++ 编译器 g++ ,C 和 C++ 标准库 (包括头文件) 也必须可用,这样 C++ 编译器才能构建宿主环境的程序 + Grep >= 2.5.1a + Gzip >= 1.3.12 + Linux Kernel >= 3.2 + M4 >= 1.4.10 + Make >= 4.0 + Patch >= 2.5.4 + Perl >= 5.8.8 + Python >= 3.4 + Sed >= 4.1.5 + Tar >= 1.22 + Texinfo >= 4.7 + Xz >= 5.0.0 + ``` + +- 运行version-check.sh查看输出,判断是否存在软件包缺失等问题 + +- 创建一个大小为30G的qcow2镜像 + + ``` + qemu-img create -f qcow2 vda.qcow2 30G + ``` + +- 设置分区并挂载 + + ``` + sudo modprobe nbd max_part=16 + qemu-nbd -c /dev/nbdx vda.qocw2 + sudo parted /dev/nbdx mklabel msdos + sudo parted /dev/nbdx mkpart primary fat32 0% 200M + sudo parted /dev/nbdx mkpart primary ext4 200M 100% + sudo mkfs.vfat /dev/nbdxp1 + sudo mkfs.ext4 /dev/nbdxp2 + sudo mount /dev/nbdxp1 /mnt/lfs + mkdir /mnt/lfs/boot + sudo mount /dev/nbdxp2 /mnt/lfs/boot + + ``` +- 调整配置文件(根据需求调整) + + - 文件路径:configs/base_configs.json + + - 将"path":{"install_path":"设置为/mnt/lfs/或者自己挂载镜像的其他路径,但是要确保在/mnt目录下"} + + - 将"envs":["name":"LFS","value":"设置为上述相同的路径"] + + 注意路径末尾需要有'/'符号 + +- 编译构建工具 + +- 将配置文件(configs,scripts,config-6.1,umount.sh)以及运行程序(rkos-builder)置于宿主系统目标分区(/mnt/lfs/)下 + +- 运行rkos-builder --help 查看指令,并按选项流程构建 + +- 构建完成后在主机上压缩目标分区qcow2镜像,镜像目录在宿主机kvm镜像存放的位置处 + + ``` + TMPDIR=/home/tmp/path virt-sparsity --compress xxx.qcow2 xxx_compress.qcow2 + ``` + +# Command + +``` +rkos-builder --help + +Usage: rkos-builder [OPTIONS] [PACKAGE_NAME] + +Arguments: + + possible values: + build, + host-config, + package-download, + build-temp-toolchains, + build-base-packages, + config-target-system, + build-rust-support-package-and-kernel, + install-grub, + clean-up #Comming soon + + possible values: + start, + reset #Comming soon + + default:NULL #Comming soon + +Options: + -c, --config #Comming soon + -d, --debug... #Comming soon + -h, --help Print help + -V, --version PrintVersion +``` +## Example: + +``` +# 配置宿主机环境 +rkos-builder host-config start +``` + +- 构建时可以按照中的选项,从host-config开始手动构建每一步,在build-temp-toolchains之后每一步构建完成后需要手动运行umount.sh然后再开始下一步 + +- build-base-packages由于需要构建clang,根据机器性能不同可能会需要2小时以上的时间,并且需要宿主机挂载有20GB的交换分区 + +- 可以直接使用build选项来构建所有流程,暂时还不稳定,可能会出现问题,构建的日志会记录在目标分区的root/prepare.log、root/config.log 和root/log.log文件中,分别记录宿主机环境准备过程中的日志和配置中的日志以及构建过程中的日志 + +# Issue + +- e2fsck 版本太旧,内核启动时会产生一个错误,不影响启动,即将修复 + +- 宿主机网络不通会导致配置和安装失败 + +- rust包(rust,coreutils,kernel)的构建和安装过程的日志输出不会被记录,即将修复 + +- 可能出现由于网络不稳定导致rust-src下载失败,重新开始对应option即可 + +- 软件包安装验证功能缺少,可能出现软件包漏安装,目前测试可能会出现1-2个包漏安装 + +- 如果安装过程中出现问题,修复问题后,在对应的配置文件中暂时删除已经安装的软件包即可继续构建 + + ``` + cp configs/[base_packages.json|temp_toolchains.json|rust_support_packages.json]{,.bak} + + #然后找到对应安装失败的软件包,将之前安装好的全部删掉,解决安装失败的问题后,可以继续运行构建流程 + ``` diff --git a/rkos/builder_iso/README.md b/rkos/builder_iso/README.md new file mode 100644 index 0000000000000000000000000000000000000000..d1a5e3c1714353f17720e68e0b6c94d2a88c3eae --- /dev/null +++ b/rkos/builder_iso/README.md @@ -0,0 +1,53 @@ + +# 宿主机环境构建指南 + +* 安装构建工具 + +```bash +sudo pacman -S archiso +``` + +* 修改配置文件 + + * 如果计划使用kvm虚拟机用作宿主机,则无需修改 + * 如果计划使用virtualbox一类的虚拟机用做宿主机,则修改user_configureation.json中的"harddrives"键的值为/dev/sda、/dev/sdb、/dev/sdc + +* 创建构建过程的配置文件目录 + +```bash +mkdir -p ./archiso +cd ./archiso +cp -r /usr/share/archiso/configs/releng/* ./ +``` + +* 将配置文件覆盖到配置文件目录中 + +```bash +cd ./archiso +cp path/to/builder_iso/* ./ +``` + +* 构建宿主机镜像 + +```bash +cd ./archiso +mkarchiso -v -w work/ -o out/ ./ +``` + +* 使用kvm运行构建好的镜像以安装宿主机系统、 + + * 需要确认的配置是,务必配置三块虚拟磁盘,第一块磁盘容量20GB,用于宿主机系统安装,第二块磁盘30GB,用作目标磁盘,第三块磁盘根据实际情况选择,要求第三块磁盘容量+内存容量大于35GB + * 宿主机镜像启动后大约5分钟内会自动运行安装程序,安装程序启动后,需要手动选择install选项,不需要设置任何选项 + * 如果没有自动运行或者运行错误则手动执行指令 ```archinstall --config user_configuration.json --creds user_credentials.json --disk_layouts user_disk_layout.json``` + * 安装完毕后会提示是否进入chroot环境,这里选择no然后reboot即可 + * 宿主机环境安装好后需要手动挂载交换分区 + +* 自动化脚本(Comming soon) + +## 参考文献 + +[https://wiki.archlinux.org/title/archiso](https://wiki.archlinux.org/title/archiso) + +[https://github.com/archlinux/archinstall](https://github.com/archlinux/archinstall) + +[https://github.com/archlinux/archinstall/wiki/Building-and-Testing](https://github.com/archlinux/archinstall/wiki/Building-and-Testing) diff --git a/rkos/builder_iso/airootfs/etc/hostname b/rkos/builder_iso/airootfs/etc/hostname new file mode 100644 index 0000000000000000000000000000000000000000..2dbe21eb853e62e1e1b3a23eea57a570aa701a57 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/hostname @@ -0,0 +1 @@ +archiso diff --git a/rkos/builder_iso/airootfs/etc/locale.conf b/rkos/builder_iso/airootfs/etc/locale.conf new file mode 100644 index 0000000000000000000000000000000000000000..f9c983cc4d7246f708f0882e4a5acbe8a999d57f --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/locale.conf @@ -0,0 +1 @@ +LANG=C.UTF-8 diff --git a/rkos/builder_iso/airootfs/etc/localtime b/rkos/builder_iso/airootfs/etc/localtime new file mode 120000 index 0000000000000000000000000000000000000000..0e35b576ba3960a87850bfef5bc5f7a01d7b63fc --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/localtime @@ -0,0 +1 @@ +/usr/share/zoneinfo/UTC \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/mkinitcpio.conf b/rkos/builder_iso/airootfs/etc/mkinitcpio.conf new file mode 100644 index 0000000000000000000000000000000000000000..96a8752da285c0b9c5bdc25620dd9167bfbdb9a9 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/mkinitcpio.conf @@ -0,0 +1,67 @@ +# vim:set ft=sh +# MODULES +# The following modules are loaded before any boot hooks are +# run. Advanced users may wish to specify all system modules +# in this array. For instance: +# MODULES=(piix ide_disk reiserfs) +MODULES=() + +# BINARIES +# This setting includes any additional binaries a given user may +# wish into the CPIO image. This is run last, so it may be used to +# override the actual binaries included by a given hook +# BINARIES are dependency parsed, so you may safely ignore libraries +BINARIES=() + +# FILES +# This setting is similar to BINARIES above, however, files are added +# as-is and are not parsed in any way. This is useful for config files. +FILES=() + +# HOOKS +# This is the most important setting in this file. The HOOKS control the +# modules and scripts added to the image, and what happens at boot time. +# Order is important, and it is recommended that you do not change the +# order in which HOOKS are added. Run 'mkinitcpio -H ' for +# help on a given hook. +# 'base' is _required_ unless you know precisely what you are doing. +# 'udev' is _required_ in order to automatically load modules +# 'filesystems' is _required_ unless you specify your fs modules in MODULES +# Examples: +## This setup specifies all modules in the MODULES setting above. +## No raid, lvm2, or encrypted root is needed. +# HOOKS=(base) +# +## This setup will autodetect all modules for your system and should +## work as a sane default +# HOOKS=(base udev autodetect block filesystems) +# +## This setup will generate a 'full' image which supports most systems. +## No autodetection is done. +# HOOKS=(base udev block filesystems) +# +## This setup assembles a pata mdadm array with an encrypted root FS. +## Note: See 'mkinitcpio -H mdadm' for more information on raid devices. +# HOOKS=(base udev block mdadm encrypt filesystems) +# +## This setup loads an lvm2 volume group on a usb device. +# HOOKS=(base udev block lvm2 filesystems) +# +## NOTE: If you have /usr on a separate partition, you MUST include the +# usr, fsck and shutdown hooks. +HOOKS=(base udev modconf kms memdisk archiso archiso_loop_mnt archiso_pxe_common archiso_pxe_nbd archiso_pxe_http archiso_pxe_nfs block filesystems keyboard) + +# COMPRESSION +# Use this to compress the initramfs image. By default, gzip compression +# is used. Use 'cat' to create an uncompressed image. +#COMPRESSION="gzip" +#COMPRESSION="bzip2" +#COMPRESSION="lzma" +COMPRESSION="xz" +#COMPRESSION="lzop" +#COMPRESSION="lz4" +#COMPRESSION="zstd" + +# COMPRESSION_OPTIONS +# Additional options for the compressor +#COMPRESSION_OPTIONS=() diff --git a/rkos/builder_iso/airootfs/etc/mkinitcpio.d/linux.preset b/rkos/builder_iso/airootfs/etc/mkinitcpio.d/linux.preset new file mode 100644 index 0000000000000000000000000000000000000000..9f67184a7336abd679dec394961b2bbb598c4c10 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/mkinitcpio.d/linux.preset @@ -0,0 +1,8 @@ +# mkinitcpio preset file for the 'linux' package on archiso + +PRESETS=('archiso') + +ALL_kver='/boot/vmlinuz-linux' +ALL_config='/etc/mkinitcpio.conf' + +archiso_image="/boot/initramfs-linux.img" diff --git a/rkos/builder_iso/airootfs/etc/modprobe.d/broadcom-wl.conf b/rkos/builder_iso/airootfs/etc/modprobe.d/broadcom-wl.conf new file mode 100644 index 0000000000000000000000000000000000000000..0eae70c93c68e7803fecaad703d5e8c0094e16e2 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/modprobe.d/broadcom-wl.conf @@ -0,0 +1,7 @@ +# The broadcom-wl package requires some modules to be disabled in order to use +# wl. Since the ISO image needs to cover many hardware cases, this file +# overrides the default blacklist in /usr/lib/modprobe.d/ +# +# If you need to use wl, you may need to delete this file, then `rmmod` any +# already-loaded modules that are now blacklisted before proceeding to modprobe +# wl itself. diff --git a/rkos/builder_iso/airootfs/etc/motd b/rkos/builder_iso/airootfs/etc/motd new file mode 100644 index 0000000000000000000000000000000000000000..4d9eda1ede97f0fddcb959525b21306c8499c09e --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/motd @@ -0,0 +1,11 @@ +To install Arch Linux follow the installation guide: +https://wiki.archlinux.org/title/Installation_guide + +For Wi-Fi, authenticate to the wireless network using the iwctl utility. +For mobile broadband (WWAN) modems, connect with the mmcli utility. +Ethernet, WLAN and WWAN interfaces using DHCP should work automatically. + +After connecting to the internet, the installation guide can be accessed +via the convenience script Installation_guide. + +                                           diff --git a/rkos/builder_iso/airootfs/etc/pacman.d/hooks/uncomment-mirrors.hook b/rkos/builder_iso/airootfs/etc/pacman.d/hooks/uncomment-mirrors.hook new file mode 100644 index 0000000000000000000000000000000000000000..342aa95b4a48fec6ae5376c6ca82397ff26f3ffe --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/pacman.d/hooks/uncomment-mirrors.hook @@ -0,0 +1,13 @@ +# remove from airootfs! +[Trigger] +Operation = Install +Operation = Upgrade +Type = Package +Target = pacman-mirrorlist + +[Action] +Description = Uncommenting all mirrors in /etc/pacman.d/mirrorlist... +When = PostTransaction +Depends = pacman-mirrorlist +Depends = sed +Exec = /usr/bin/sed -i "s/#Server/Server/g" /etc/pacman.d/mirrorlist diff --git a/rkos/builder_iso/airootfs/etc/pacman.d/hooks/zzzz99-remove-custom-hooks-from-airootfs.hook b/rkos/builder_iso/airootfs/etc/pacman.d/hooks/zzzz99-remove-custom-hooks-from-airootfs.hook new file mode 100644 index 0000000000000000000000000000000000000000..8dfb94354d211fda7f19f5b4437dbfad4d45e652 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/pacman.d/hooks/zzzz99-remove-custom-hooks-from-airootfs.hook @@ -0,0 +1,18 @@ +# remove from airootfs! +# As a workaround for https://bugs.archlinux.org/task/49347 , remove pacman hooks specific to the ISO build process. +# If not, they would be used when pacstrap is run in the live environment. + +[Trigger] +Operation = Install +Operation = Upgrade +Operation = Remove +Type = Package +Target = * + +[Action] +Description = Work around FS#49347 by removing custom pacman hooks that are only required during ISO build... +When = PostTransaction +Depends = sh +Depends = coreutils +Depends = grep +Exec = /bin/sh -c "rm -- $(grep -Frl 'remove from airootfs' /etc/pacman.d/hooks/)" diff --git a/rkos/builder_iso/airootfs/etc/passwd b/rkos/builder_iso/airootfs/etc/passwd new file mode 100644 index 0000000000000000000000000000000000000000..2807d5d6f5a46f7eaa746e590941ea3ecf22202d --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/passwd @@ -0,0 +1 @@ +root:x:0:0:root:/root:/usr/bin/zsh diff --git a/rkos/builder_iso/airootfs/etc/resolv.conf b/rkos/builder_iso/airootfs/etc/resolv.conf new file mode 120000 index 0000000000000000000000000000000000000000..36396629da50066a7f6ab00706bb08d0966596d2 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/resolv.conf @@ -0,0 +1 @@ +/run/systemd/resolve/stub-resolv.conf \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/shadow b/rkos/builder_iso/airootfs/etc/shadow new file mode 100644 index 0000000000000000000000000000000000000000..7edfd69bed55abe78ff06beec466b0da1cfa2fc2 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/shadow @@ -0,0 +1 @@ +root::14871:::::: diff --git a/rkos/builder_iso/airootfs/etc/ssh/sshd_config b/rkos/builder_iso/airootfs/etc/ssh/sshd_config new file mode 100644 index 0000000000000000000000000000000000000000..dc22c11c8fc2d552b296eb8df9b924d48b67e9ab --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/ssh/sshd_config @@ -0,0 +1,116 @@ +# $OpenBSD: sshd_config,v 1.104 2021/07/02 05:11:21 dtucker Exp $ + +# This is the sshd server system-wide configuration file. See +# sshd_config(5) for more information. + +# This sshd was compiled with PATH=/usr/local/sbin:/usr/local/bin:/usr/bin + +# The strategy used for options in the default sshd_config shipped with +# OpenSSH is to specify options with their default value where +# possible, but leave them commented. Uncommented options override the +# default value. + +#Port 22 +#AddressFamily any +#ListenAddress 0.0.0.0 +#ListenAddress :: + +#HostKey /etc/ssh/ssh_host_rsa_key +#HostKey /etc/ssh/ssh_host_ecdsa_key +#HostKey /etc/ssh/ssh_host_ed25519_key + +# Ciphers and keying +#RekeyLimit default none + +# Logging +#SyslogFacility AUTH +#LogLevel INFO + +# Authentication: + +#LoginGraceTime 2m +PermitRootLogin yes +#StrictModes yes +#MaxAuthTries 6 +#MaxSessions 10 + +#PubkeyAuthentication yes + +# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2 +# but this is overridden so installations will only check .ssh/authorized_keys +AuthorizedKeysFile .ssh/authorized_keys + +#AuthorizedPrincipalsFile none + +#AuthorizedKeysCommand none +#AuthorizedKeysCommandUser nobody + +# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts +#HostbasedAuthentication no +# Change to yes if you don't trust ~/.ssh/known_hosts for +# HostbasedAuthentication +#IgnoreUserKnownHosts no +# Don't read the user's ~/.rhosts and ~/.shosts files +#IgnoreRhosts yes + +# To disable tunneled clear text passwords, change to no here! +#PasswordAuthentication yes +#PermitEmptyPasswords no + +# Change to no to disable s/key passwords +KbdInteractiveAuthentication no + +# Kerberos options +#KerberosAuthentication no +#KerberosOrLocalPasswd yes +#KerberosTicketCleanup yes +#KerberosGetAFSToken no + +# GSSAPI options +#GSSAPIAuthentication no +#GSSAPICleanupCredentials yes + +# Set this to 'yes' to enable PAM authentication, account processing, +# and session processing. If this is enabled, PAM authentication will +# be allowed through the KbdInteractiveAuthentication and +# PasswordAuthentication. Depending on your PAM configuration, +# PAM authentication via KbdInteractiveAuthentication may bypass +# the setting of "PermitRootLogin prohibit-password". +# If you just want the PAM account and session checks to run without +# PAM authentication, then enable this but set PasswordAuthentication +# and KbdInteractiveAuthentication to 'no'. +UsePAM yes + +#AllowAgentForwarding yes +#AllowTcpForwarding yes +#GatewayPorts no +#X11Forwarding no +#X11DisplayOffset 10 +#X11UseLocalhost yes +#PermitTTY yes +PrintMotd no +#PrintLastLog yes +#TCPKeepAlive yes +#PermitUserEnvironment no +#Compression delayed +#ClientAliveInterval 0 +#ClientAliveCountMax 3 +#UseDNS no +#PidFile /run/sshd.pid +#MaxStartups 10:30:100 +#PermitTunnel no +#ChrootDirectory none +#VersionAddendum none + +# no default banner path +#Banner none + +# override default of no subsystems +Subsystem sftp /usr/lib/ssh/sftp-server + +# Example of overriding settings on a per-user basis +#Match User anoncvs +# X11Forwarding no +# AllowTcpForwarding no +# PermitTTY no +# ForceCommand cvs server diff --git a/rkos/builder_iso/airootfs/etc/systemd/journald.conf.d/volatile-storage.conf b/rkos/builder_iso/airootfs/etc/systemd/journald.conf.d/volatile-storage.conf new file mode 100644 index 0000000000000000000000000000000000000000..b69850df1d39ae8454044390bc35994ab52518b1 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/journald.conf.d/volatile-storage.conf @@ -0,0 +1,2 @@ +[Journal] +Storage=volatile diff --git a/rkos/builder_iso/airootfs/etc/systemd/logind.conf.d/do-not-suspend.conf b/rkos/builder_iso/airootfs/etc/systemd/logind.conf.d/do-not-suspend.conf new file mode 100644 index 0000000000000000000000000000000000000000..f3ecb393f2e4e6c56f7a9a16643966af480a3d80 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/logind.conf.d/do-not-suspend.conf @@ -0,0 +1,4 @@ +[Login] +HandleSuspendKey=ignore +HandleHibernateKey=ignore +HandleLidSwitch=ignore diff --git a/rkos/builder_iso/airootfs/etc/systemd/network/20-ethernet.network b/rkos/builder_iso/airootfs/etc/systemd/network/20-ethernet.network new file mode 100644 index 0000000000000000000000000000000000000000..9ada778299b0ce958572f56daf535ff7df7d9581 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/network/20-ethernet.network @@ -0,0 +1,21 @@ +[Match] +# Matching with "Type=ether" causes issues with containers because it also matches virtual Ethernet interfaces (veth*). +# See https://bugs.archlinux.org/task/70892 +# Instead match by globbing the network interface name. +Name=en* +Name=eth* + +[Network] +DHCP=yes +IPv6PrivacyExtensions=yes + +# systemd-networkd does not set per-interface-type default route metrics +# https://github.com/systemd/systemd/issues/17698 +# Explicitly set route metric, so that Ethernet is preferred over Wi-Fi and Wi-Fi is preferred over mobile broadband. +# Use values from NetworkManager. From nm_device_get_route_metric_default in +# https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/blob/main/src/core/devices/nm-device.c +[DHCPv4] +RouteMetric=100 + +[IPv6AcceptRA] +RouteMetric=100 diff --git a/rkos/builder_iso/airootfs/etc/systemd/network/20-wlan.network b/rkos/builder_iso/airootfs/etc/systemd/network/20-wlan.network new file mode 100644 index 0000000000000000000000000000000000000000..601d5b8fd4ed5ba32b3407c385c8b07da2c871dc --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/network/20-wlan.network @@ -0,0 +1,17 @@ +[Match] +Name=wl* + +[Network] +DHCP=yes +IPv6PrivacyExtensions=yes + +# systemd-networkd does not set per-interface-type default route metrics +# https://github.com/systemd/systemd/issues/17698 +# Explicitly set route metric, so that Ethernet is preferred over Wi-Fi and Wi-Fi is preferred over mobile broadband. +# Use values from NetworkManager. From nm_device_get_route_metric_default in +# https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/blob/main/src/core/devices/nm-device.c +[DHCPv4] +RouteMetric=600 + +[IPv6AcceptRA] +RouteMetric=600 diff --git a/rkos/builder_iso/airootfs/etc/systemd/network/20-wwan.network b/rkos/builder_iso/airootfs/etc/systemd/network/20-wwan.network new file mode 100644 index 0000000000000000000000000000000000000000..9104c243f6adfedad40032e8a8e79442ad7008e5 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/network/20-wwan.network @@ -0,0 +1,17 @@ +[Match] +Name=ww* + +[Network] +DHCP=yes +IPv6PrivacyExtensions=yes + +# systemd-networkd does not set per-interface-type default route metrics +# https://github.com/systemd/systemd/issues/17698 +# Explicitly set route metric, so that Ethernet is preferred over Wi-Fi and Wi-Fi is preferred over mobile broadband. +# Use values from NetworkManager. From nm_device_get_route_metric_default in +# https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/blob/main/src/core/devices/nm-device.c +[DHCPv4] +RouteMetric=700 + +[IPv6AcceptRA] +RouteMetric=700 diff --git a/rkos/builder_iso/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator b/rkos/builder_iso/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator new file mode 120000 index 0000000000000000000000000000000000000000..dc1dc0cde0f7dff7b7f7c9347fff75936d705cb8 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator @@ -0,0 +1 @@ +/dev/null \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/choose-mirror.service b/rkos/builder_iso/airootfs/etc/systemd/system/choose-mirror.service new file mode 100644 index 0000000000000000000000000000000000000000..b6a3562a62fb3869a5a8bca0a8cd48653f08c553 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/choose-mirror.service @@ -0,0 +1,10 @@ +[Unit] +Description=Choose mirror from the kernel command line +ConditionKernelCommandLine=mirror + +[Service] +Type=oneshot +ExecStart=/usr/local/bin/choose-mirror + +[Install] +WantedBy=multi-user.target diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-config.service b/rkos/builder_iso/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-config.service new file mode 120000 index 0000000000000000000000000000000000000000..ebc50f0c16a29a68dc5a8516e1cde30653c8a845 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-config.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/cloud-config.service \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-final.service b/rkos/builder_iso/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-final.service new file mode 120000 index 0000000000000000000000000000000000000000..80fa3c82e79ca430fdd159e72f9fea33d3ccde0f --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-final.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/cloud-final.service \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service b/rkos/builder_iso/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service new file mode 120000 index 0000000000000000000000000000000000000000..dd8e9f1c989d2cc7e5b321251649e3d04bc24a46 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/cloud-init-local.service \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init.service b/rkos/builder_iso/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init.service new file mode 120000 index 0000000000000000000000000000000000000000..24c7a26f0dc523c18442ee746c60de5ba30ef17c --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/cloud-init.service \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/dbus-org.freedesktop.ModemManager1.service b/rkos/builder_iso/airootfs/etc/systemd/system/dbus-org.freedesktop.ModemManager1.service new file mode 120000 index 0000000000000000000000000000000000000000..dcf7c8edce6d4e201092a802afe5a3d7f9f8a109 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/dbus-org.freedesktop.ModemManager1.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/ModemManager.service \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/dbus-org.freedesktop.network1.service b/rkos/builder_iso/airootfs/etc/systemd/system/dbus-org.freedesktop.network1.service new file mode 120000 index 0000000000000000000000000000000000000000..4c158e62e19939d13d5ac981b16408e9b67aaefa --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/dbus-org.freedesktop.network1.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-networkd.service \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/dbus-org.freedesktop.resolve1.service b/rkos/builder_iso/airootfs/etc/systemd/system/dbus-org.freedesktop.resolve1.service new file mode 120000 index 0000000000000000000000000000000000000000..4f6ae342a726014ccb7d30b11839299bc6775462 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/dbus-org.freedesktop.resolve1.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-resolved.service \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/dbus-org.freedesktop.timesync1.service b/rkos/builder_iso/airootfs/etc/systemd/system/dbus-org.freedesktop.timesync1.service new file mode 120000 index 0000000000000000000000000000000000000000..cd004113fcf3f0b3c3d344321de164a83d231ae5 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/dbus-org.freedesktop.timesync1.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-timesyncd.service \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount b/rkos/builder_iso/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount new file mode 100644 index 0000000000000000000000000000000000000000..0ba0e674280ec000a4ab453c67927cd5fe2162cb --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount @@ -0,0 +1,8 @@ +[Unit] +Description=Temporary /etc/pacman.d/gnupg directory + +[Mount] +What=ramfs +Where=/etc/pacman.d/gnupg +Type=ramfs +Options=mode=0755 diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf b/rkos/builder_iso/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf new file mode 100644 index 0000000000000000000000000000000000000000..b9d22eb8596a6a0c472a3f9d4910bc5f1776c466 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf @@ -0,0 +1,3 @@ +[Service] +ExecStart= +ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --autologin root - $TERM diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/livecd-alsa-unmuter.service b/rkos/builder_iso/airootfs/etc/systemd/system/livecd-alsa-unmuter.service new file mode 100644 index 0000000000000000000000000000000000000000..03db4b95217fde391f7462d9b3de290f1291c7c1 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/livecd-alsa-unmuter.service @@ -0,0 +1,13 @@ +[Unit] +Description=Unmute All Sound Card Controls For Use With The Live Arch Environment +# This needs to run after the audio device becomes available. +Wants=systemd-udev-settle.service +After=systemd-udev-settle.service sound.target +ConditionKernelCommandLine=accessibility=on + +[Service] +Type=oneshot +ExecStart=/usr/local/bin/livecd-sound -u + +[Install] +WantedBy=sound.target diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/livecd-talk.service b/rkos/builder_iso/airootfs/etc/systemd/system/livecd-talk.service new file mode 100644 index 0000000000000000000000000000000000000000..b38df22c371d12c34698d50e41f7a4af21b67f1e --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/livecd-talk.service @@ -0,0 +1,20 @@ +[Unit] +Description=Screen reader service +After=livecd-alsa-unmuter.service +Before=getty@tty1.service +ConditionKernelCommandLine=accessibility=on + +[Service] +Type=oneshot +TTYPath=/dev/tty13 +ExecStartPre=/usr/bin/chvt 13 +ExecStart=/usr/local/bin/livecd-sound -p +ExecStartPost=/usr/bin/chvt 1 +ExecStartPost=systemctl start espeakup.service +StandardInput=tty +TTYVHangup=yes +TTYVTDisallocate=yes +RemainAfterExit=true + +[Install] +WantedBy=multi-user.target diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/ModemManager.service b/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/ModemManager.service new file mode 120000 index 0000000000000000000000000000000000000000..dcf7c8edce6d4e201092a802afe5a3d7f9f8a109 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/ModemManager.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/ModemManager.service \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/choose-mirror.service b/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/choose-mirror.service new file mode 120000 index 0000000000000000000000000000000000000000..2d8d256ade0cf835bdb1bbdffda334328f0decfb --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/choose-mirror.service @@ -0,0 +1 @@ +../choose-mirror.service \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/hv_fcopy_daemon.service b/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/hv_fcopy_daemon.service new file mode 120000 index 0000000000000000000000000000000000000000..20ac7b284f9af78569e6166156cda33ffa0be9c5 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/hv_fcopy_daemon.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/hv_fcopy_daemon.service \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/hv_kvp_daemon.service b/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/hv_kvp_daemon.service new file mode 120000 index 0000000000000000000000000000000000000000..a7eac4a8c7f3966bd1248d10a3961c1922d617b8 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/hv_kvp_daemon.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/hv_kvp_daemon.service \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/hv_vss_daemon.service b/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/hv_vss_daemon.service new file mode 120000 index 0000000000000000000000000000000000000000..eae19ef959c26511ee5c17e9d34118f4a8042b09 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/hv_vss_daemon.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/hv_vss_daemon.service \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/iwd.service b/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/iwd.service new file mode 120000 index 0000000000000000000000000000000000000000..3625abda1be73fb6fb02c19d4528b1d9f3aac5b7 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/iwd.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/iwd.service \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/livecd-talk.service b/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/livecd-talk.service new file mode 120000 index 0000000000000000000000000000000000000000..b9174818a2512bc6d649e70e52d1d75cccacda81 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/livecd-talk.service @@ -0,0 +1 @@ +/etc/systemd/system/livecd-talk.service \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/pacman-init.service b/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/pacman-init.service new file mode 120000 index 0000000000000000000000000000000000000000..d09eec68ba0b893041345fcde9e08480b51eabbd --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/pacman-init.service @@ -0,0 +1 @@ +../pacman-init.service \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/reflector.service b/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/reflector.service new file mode 120000 index 0000000000000000000000000000000000000000..d3727297213c0c8e2d56cfd838bc3d6559d822ff --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/reflector.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/reflector.service \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/sshd.service b/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/sshd.service new file mode 120000 index 0000000000000000000000000000000000000000..d21ebd9d633f3da676c3638ac72e04b528443a90 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/sshd.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/sshd.service \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/systemd-networkd.service b/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/systemd-networkd.service new file mode 120000 index 0000000000000000000000000000000000000000..4c158e62e19939d13d5ac981b16408e9b67aaefa --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/systemd-networkd.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-networkd.service \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/systemd-resolved.service b/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/systemd-resolved.service new file mode 120000 index 0000000000000000000000000000000000000000..4f6ae342a726014ccb7d30b11839299bc6775462 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/systemd-resolved.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-resolved.service \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/vboxservice.service b/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/vboxservice.service new file mode 120000 index 0000000000000000000000000000000000000000..cb2d56043ec77a4ea988bf2be5dc8003c43c24c9 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/vboxservice.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/vboxservice.service \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/vmtoolsd.service b/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/vmtoolsd.service new file mode 120000 index 0000000000000000000000000000000000000000..e0a11a770883a2bf86b256098d5430fe4af50bda --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/vmtoolsd.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/vmtoolsd.service \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service b/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service new file mode 120000 index 0000000000000000000000000000000000000000..173f306ca042fbd0a5d461d5ecac0102615e4aca --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/vmware-vmblock-fuse.service \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service b/rkos/builder_iso/airootfs/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service new file mode 120000 index 0000000000000000000000000000000000000000..7d6ad92c968aae59f298a07f97d222a3c307896c --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-networkd-wait-online.service \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/pacman-init.service b/rkos/builder_iso/airootfs/etc/systemd/system/pacman-init.service new file mode 100644 index 0000000000000000000000000000000000000000..b82488434845b94c469de89f4f3e1222557e1484 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/pacman-init.service @@ -0,0 +1,15 @@ +[Unit] +Description=Initializes Pacman keyring +Requires=etc-pacman.d-gnupg.mount +After=etc-pacman.d-gnupg.mount time-sync.target +BindsTo=etc-pacman.d-gnupg.mount +Before=archlinux-keyring-wkd-sync.service + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/usr/bin/pacman-key --init +ExecStart=/usr/bin/pacman-key --populate + +[Install] +WantedBy=multi-user.target diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/reflector.service.d/archiso.conf b/rkos/builder_iso/airootfs/etc/systemd/system/reflector.service.d/archiso.conf new file mode 100644 index 0000000000000000000000000000000000000000..de6664df07b6796e73879c323f5f691175d23650 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/reflector.service.d/archiso.conf @@ -0,0 +1,6 @@ +[Unit] +ConditionKernelCommandLine=!mirror + +[Service] +Restart=on-failure +RestartSec=10 diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/sockets.target.wants/systemd-networkd.socket b/rkos/builder_iso/airootfs/etc/systemd/system/sockets.target.wants/systemd-networkd.socket new file mode 120000 index 0000000000000000000000000000000000000000..51942c8e18cb952149cb7781e636bec9f73e0936 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/sockets.target.wants/systemd-networkd.socket @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-networkd.socket \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/sound.target.wants/livecd-alsa-unmuter.service b/rkos/builder_iso/airootfs/etc/systemd/system/sound.target.wants/livecd-alsa-unmuter.service new file mode 120000 index 0000000000000000000000000000000000000000..98c0fc87ee8f6df90f3196dbda80bd9872f5fa7b --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/sound.target.wants/livecd-alsa-unmuter.service @@ -0,0 +1 @@ +../livecd-alsa-unmuter.service \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/sysinit.target.wants/systemd-time-wait-sync.service b/rkos/builder_iso/airootfs/etc/systemd/system/sysinit.target.wants/systemd-time-wait-sync.service new file mode 120000 index 0000000000000000000000000000000000000000..cabf28bef9923c03ccffc50c44fec49af5c055eb --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/sysinit.target.wants/systemd-time-wait-sync.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-time-wait-sync.service \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service b/rkos/builder_iso/airootfs/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service new file mode 120000 index 0000000000000000000000000000000000000000..cd004113fcf3f0b3c3d344321de164a83d231ae5 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-timesyncd.service \ No newline at end of file diff --git a/rkos/builder_iso/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf b/rkos/builder_iso/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf new file mode 100644 index 0000000000000000000000000000000000000000..c9f9bceae32e10c5d18ff1470a251a71883db759 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf @@ -0,0 +1,6 @@ +# Allow systemd-networkd-wait-online to succeed with one interface, otherwise, if multiple network interfaces exist, +# network-online.target gets needlessly delayed. +# See https://wiki.archlinux.org/title/systemd-networkd#systemd-networkd-wait-online +[Service] +ExecStart= +ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --any diff --git a/rkos/builder_iso/airootfs/etc/xdg/reflector/reflector.conf b/rkos/builder_iso/airootfs/etc/xdg/reflector/reflector.conf new file mode 100644 index 0000000000000000000000000000000000000000..7c830d2df3e21aa7908f8f4632161699bde3c0b9 --- /dev/null +++ b/rkos/builder_iso/airootfs/etc/xdg/reflector/reflector.conf @@ -0,0 +1,8 @@ +# Reflector configuration file for the systemd service. + +--save /etc/pacman.d/mirrorlist +--ipv4 +--ipv6 +--protocol https +--latest 20 +--sort rate diff --git a/rkos/builder_iso/airootfs/root/.automated_script.sh b/rkos/builder_iso/airootfs/root/.automated_script.sh new file mode 100755 index 0000000000000000000000000000000000000000..52c47e6a0a1c694651c5a3ea320725498a2cd08b --- /dev/null +++ b/rkos/builder_iso/airootfs/root/.automated_script.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash + +script_cmdline () +{ + local param + for param in $(< /proc/cmdline); do + case "${param}" in + script=*) echo "${param#*=}" ; return 0 ;; + esac + done +} + +automated_script () +{ + local script rt + script="$(script_cmdline)" + if [[ -n "${script}" && ! -x /tmp/startup_script ]]; then + if [[ "${script}" =~ ^((http|https|ftp)://) ]]; then + curl "${script}" --location --retry-connrefused --retry 10 -s -o /tmp/startup_script >/dev/null + rt=$? + else + cp "${script}" /tmp/startup_script + rt=$? + fi + if [[ ${rt} -eq 0 ]]; then + chmod +x /tmp/startup_script + /tmp/startup_script + fi + fi +} + +if [[ $(tty) == "/dev/tty1" ]]; then + automated_script +fi diff --git a/rkos/builder_iso/airootfs/root/.zlogin b/rkos/builder_iso/airootfs/root/.zlogin new file mode 100644 index 0000000000000000000000000000000000000000..bf6bc8f6c3e94a4eadc68f3db541148507d00fe9 --- /dev/null +++ b/rkos/builder_iso/airootfs/root/.zlogin @@ -0,0 +1,6 @@ +# fix for screen readers +if grep -Fqa 'accessibility=' /proc/cmdline &> /dev/null; then + setopt SINGLE_LINE_ZLE +fi + +~/.automated_script.sh diff --git a/rkos/builder_iso/airootfs/root/.zprofile b/rkos/builder_iso/airootfs/root/.zprofile new file mode 100644 index 0000000000000000000000000000000000000000..5efa0e5e04d44a8e5a336a2bafe33c6456811f3b --- /dev/null +++ b/rkos/builder_iso/airootfs/root/.zprofile @@ -0,0 +1 @@ +[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && sh -c "archinstall --config user_configuration.json --creds user_credentials.json --disk_layout user_disk_layout.json" diff --git a/rkos/builder_iso/airootfs/root/user_configuration.json b/rkos/builder_iso/airootfs/root/user_configuration.json new file mode 100644 index 0000000000000000000000000000000000000000..9edf6a58e9304ae25d301db06b09b8220755fc82 --- /dev/null +++ b/rkos/builder_iso/airootfs/root/user_configuration.json @@ -0,0 +1,60 @@ +{ + "additional-repositories": [], + "archinstall-language": "English", + "bootloader": "grub-install", + "config_version": "2.5.1", + "debug": false, + "hostname": "lfs_host", + "harddrives": ["/dev/vda", "/dev/vdb", "/dev/vdc"], + "kernels": ["linux"], + "keyboard-layout": "us", + "mirror-region": { + "China": { + "http://mirror.lzu.edu.cn/archlinux/$repo/os/$arch": true, + "http://mirror.redrock.team/archlinux/$repo/os/$arch": true, + "http://mirrors.163.com/archlinux/$repo/os/$arch": true, + "http://mirrors.aliyun.com/archlinux/$repo/os/$arch": true, + "http://mirrors.bfsu.edu.cn/archlinux/$repo/os/$arch": true, + "http://mirrors.cqu.edu.cn/archlinux/$repo/os/$arch": true, + "http://mirrors.hit.edu.cn/archlinux/$repo/os/$arch": true, + "http://mirrors.neusoft.edu.cn/archlinux/$repo/os/$arch": true, + "http://mirrors.nju.edu.cn/archlinux/$repo/os/$arch": true, + "http://mirrors.shanghaitech.edu.cn/archlinux/$repo/os/$arch": true, + "http://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch": true, + "http://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch": true, + "http://mirrors.wsyu.edu.cn/archlinux/$repo/os/$arch": true, + "http://mirrors.zju.edu.cn/archlinux/$repo/os/$arch": true, + "https://mirror.redrock.team/archlinux/$repo/os/$arch": true, + "https://mirrors.aliyun.com/archlinux/$repo/os/$arch": true, + "https://mirrors.bfsu.edu.cn/archlinux/$repo/os/$arch": true, + "https://mirrors.cqu.edu.cn/archlinux/$repo/os/$arch": true, + "https://mirrors.hit.edu.cn/archlinux/$repo/os/$arch": true, + "https://mirrors.neusoft.edu.cn/archlinux/$repo/os/$arch": true, + "https://mirrors.nju.edu.cn/archlinux/$repo/os/$arch": true, + "https://mirrors.njupt.edu.cn/archlinux/$repo/os/$arch": true, + "https://mirrors.shanghaitech.edu.cn/archlinux/$repo/os/$arch": true, + "https://mirrors.sjtug.sjtu.edu.cn/archlinux/$repo/os/$arch": true, + "https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch": true, + "https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch": true, + "https://mirrors.wsyu.edu.cn/archlinux/$repo/os/$arch": true, + "https://mirrors.xjtu.edu.cn/archlinux/$repo/os/$arch": true + } + }, + "nic": { + "dhcp": true, + "dns": null, + "gateway": null, + "iface": null, + "ip": null, + "type": "iso" + }, + "packages": ["openssh", "vim", "wget"], + "services": ["sshd"], + "no_pkg_lookups": false, + "offline": false, + "script": "guided", + "silent": false, + "swap": true, + "timezone": "UTC", + "version": "2.5.1" +} diff --git a/rkos/builder_iso/airootfs/root/user_credentials.json b/rkos/builder_iso/airootfs/root/user_credentials.json new file mode 100644 index 0000000000000000000000000000000000000000..1dab4eef72d4db737afbfbe2d9ec0cb0722322ae --- /dev/null +++ b/rkos/builder_iso/airootfs/root/user_credentials.json @@ -0,0 +1,5 @@ +{ + "!root-password": "root", + "!encryption-password": null, + "!users": {} +} diff --git a/rkos/builder_iso/airootfs/root/user_disk_layout.json b/rkos/builder_iso/airootfs/root/user_disk_layout.json new file mode 100644 index 0000000000000000000000000000000000000000..3782fc9d8c5c58c01bc820bb08fcf79aae46cf7f --- /dev/null +++ b/rkos/builder_iso/airootfs/root/user_disk_layout.json @@ -0,0 +1,74 @@ +{ + "/dev/vda": { + "partitions": [ + { + "boot": true, + "encrypted": false, + "filesystem": { + "format": "fat32" + }, + "mountpoint": "/boot", + "size": "203MiB", + "start": "3MiB", + "type": "primary", + "wipe": true + }, + { + "encrypted": false, + "filesystem": { + "format": "ext4", + "mount_options": [] + }, + "mountpoint": "/", + "size": "100%", + "start": "206MiB", + "type": "primary", + "wipe": true + } + ], + "wipe": true + }, + "/dev/vdb": { + "partitions": [ + { + "boot": true, + "encrypted": false, + "filesystem": { + "format": "fat32" + }, + "mountpoint": "/mnt/lfs/boot", + "size": "203MiB", + "start": "3MiB", + "type": "primary", + "wipe": true + }, + { + "encrypted": false, + "filesystem": { + "format": "ext4", + "mount_options": [] + }, + "mountpoint": "/mnt/lfs", + "size": "100%", + "start": "206MiB", + "type": "primary", + "wipe": true + } + ], + "wipe": true + }, + "/dev/vdc": { + "partitions": [ + { + "filesystem": { + "format": "ext4" + }, + "mountpoint": null, + "size": "100%", + "start": "512MB", + "type": "primary", + "wipe": true + } + ] + } +} diff --git a/rkos/builder_iso/airootfs/usr/local/bin/Installation_guide b/rkos/builder_iso/airootfs/usr/local/bin/Installation_guide new file mode 100755 index 0000000000000000000000000000000000000000..42667548da37d36d845a108f177172ec766f6244 --- /dev/null +++ b/rkos/builder_iso/airootfs/usr/local/bin/Installation_guide @@ -0,0 +1,5 @@ +#!/bin/sh +# +# SPDX-License-Identifier: GPL-3.0-or-later + +exec lynx 'https://wiki.archlinux.org/title/Installation_guide' diff --git a/rkos/builder_iso/airootfs/usr/local/bin/choose-mirror b/rkos/builder_iso/airootfs/usr/local/bin/choose-mirror new file mode 100755 index 0000000000000000000000000000000000000000..b021945b9dde8d4cddad77c753017054375e3a9e --- /dev/null +++ b/rkos/builder_iso/airootfs/usr/local/bin/choose-mirror @@ -0,0 +1,28 @@ +#!/bin/bash +# +# SPDX-License-Identifier: GPL-3.0-or-later + +get_cmdline() { + local param + for param in $(< /proc/cmdline); do + case "${param}" in + $1=*) echo "${param##*=}"; + return 0 + ;; + esac + done +} + +mirror=$(get_cmdline mirror) +[[ $mirror = auto ]] && mirror=$(get_cmdline archiso_http_srv) +[[ $mirror ]] || exit 0 + +mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.orig +cat >/etc/pacman.d/mirrorlist << EOF +# +# Arch Linux repository mirrorlist +# Generated by archiso +# + +Server = ${mirror%%/}/\$repo/os/\$arch +EOF diff --git a/rkos/builder_iso/airootfs/usr/local/bin/livecd-sound b/rkos/builder_iso/airootfs/usr/local/bin/livecd-sound new file mode 100755 index 0000000000000000000000000000000000000000..baae0d2665e193b3259e94c9e34ec6bd38931dfd --- /dev/null +++ b/rkos/builder_iso/airootfs/usr/local/bin/livecd-sound @@ -0,0 +1,248 @@ +#!/usr/bin/env bash +# +# SPDX-License-Identifier: GPL-3.0-or-later + +usage() { + cat <<- _EOF_ + live cd sound helper script. + Usage: livecdsound [OPTION] + OPTIONS + -u, --unmute unmute all sound cards + -p, --pick select a card for speetch output + -h, --help Show this usage message + +_EOF_ +} + +bugout () { + printf "/usr/local/bin/livecdsound: programming error" + stat_fail +} + +echo_card_indices() +{ + if [ -f /proc/asound/cards ] ; then + sed -n -e's/^[[:space:]]*\([0-7]\)[[:space:]].*/\1/p' /proc/asound/cards + fi +} + +# The following functions try to set many controls. +# No card has all the controls and so some of the attempts are bound to fail. +# Because of this, the functions can't return useful status values. + +# $1 +# $2 +# $3 +unmute_and_set_level(){ + { [ "$3" ] &&[ "$2" ] && [ "$1" ] ; } || bugout + systemd-cat -t "livecdsound" printf "Setting: %s on card: %s to %s\n" "$2" "$1" "$3" + systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "$3" unmute + return 0 +} + +# $1 +# $2 +mute_and_zero_level() +{ + { [ "$1" ] && [ "$2" ] ; } || bugout + systemd-cat -t "livecdsound" printf "Muting control: %s on card: %s\n" "$2" "$1" + systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "0%" mute + return 0 +} + +# $1 +# $2 +# $3 "on" | "off" +switch_control() +{ + { [ "$3" ] && [ "$1" ] ; } || bugout + systemd-cat -t "livecdsound" printf "Switching control: %s on card: %s to %s\n" "$2" "$1" "$3" + systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "$3" + return 0 +} + +# $1 +sanify_levels_on_card() +{ + unmute_and_set_level "$1" "Front" "80%" + unmute_and_set_level "$1" "Master" "80%" + unmute_and_set_level "$1" "Master Mono" "80%" + unmute_and_set_level "$1" "Master Digital" "80%" # E.g., cs4237B + unmute_and_set_level "$1" "Playback" "80%" + unmute_and_set_level "$1" "Headphone" "100%" + unmute_and_set_level "$1" "PCM" "80%" + unmute_and_set_level "$1" "PCM,1" "80%" # E.g., ess1969 + unmute_and_set_level "$1" "DAC" "80%" # E.g., envy24, cs46xx + unmute_and_set_level "$1" "DAC,0" "80%" # E.g., envy24 + unmute_and_set_level "$1" "DAC,1" "80%" # E.g., envy24 + unmute_and_set_level "$1" "Synth" "80%" + unmute_and_set_level "$1" "CD" "80%" + unmute_and_set_level "$1" "PC Speaker" "100%" + + mute_and_zero_level "$1" "Mic" + mute_and_zero_level "$1" "IEC958" # Ubuntu #19648 + + # Intel P4P800-MX + switch_control "$1" "Master Playback Switch" on + switch_control "$1" "Master Surround" on + + # Trident/YMFPCI/emu10k1: + unmute_and_set_level "$1" "Wave" "80%" + unmute_and_set_level "$1" "Music" "80%" + unmute_and_set_level "$1" "AC97" "80%" + + # DRC: + unmute_and_set_level "$1" "Dynamic Range Compression" "80%" + + # Required for HDA Intel (hda-intel): + unmute_and_set_level "$1" "Front" "80%" + + # Required for SB Live 7.1/24-bit (ca0106): + unmute_and_set_level "$1" "Analog Front" "80%" + + # Required at least for Via 823x hardware on DFI K8M800-MLVF Motherboard + switch_control "$1" "IEC958 Capture Monitor" off + + # Required for hardware allowing toggles for AC97 through IEC958, + # valid values are 0, 1, 2, 3. Needs to be set to 0 for PCM1. + unmute_and_set_level "$1" "IEC958 Playback AC97-SPSA" "0" + + # Required for newer Via hardware + unmute_and_set_level "$1" "VIA DXS,0" "80%" + unmute_and_set_level "$1" "VIA DXS,1" "80%" + unmute_and_set_level "$1" "VIA DXS,2" "80%" + unmute_and_set_level "$1" "VIA DXS,3" "80%" + + # Required on some notebooks with ICH4: + switch_control "$1" "Headphone Jack Sense" off + switch_control "$1" "Line Jack Sense" off + + # Some machines need one or more of these to be on; + # others need one or more of these to be off: + + switch_control "$1" "Audigy Analog/Digital Output Jack" on + switch_control "$1" "SB Live Analog/Digital Output Jack" on + + # D1984 -- Thinkpad T61/X61 + switch_control "$1" "Speaker" on + switch_control "$1" "Headphone" on + + # HDA-Intel w/ "Digital" capture mixer (See Ubuntu #193823) + unmute_and_set_level "$1" "Digital" "80%" + + return 0 +} + +# $1 | "all" +sanify_levels() +{ + local ttsdml_returnstatus=0 + local card + case "$1" in + all) + for card in $(echo_card_indices) ; do + sanify_levels_on_card "$card" || ttsdml_returnstatus=1 + done + ;; + *) + sanify_levels_on_card "$1" || ttsdml_returnstatus=1 + ;; + esac + return $ttsdml_returnstatus +} + +# List all cards that *should* be usable for PCM audio. In my experience, +# the console speaker (handled by the pcsp driver) isn't a suitable playback +# device, so we'll exclude it. +list_non_pcsp_cards() +{ + for card in $(echo_card_indices); do + local cardfile="/proc/asound/card${card}/id" + if [ -r "$cardfile" ] && [ -f "$cardfile" ] && \ + [ "$(cat "$cardfile")" != pcsp ]; then + echo "$card" + fi + done +} + +# Properly initialize the sound card so that we have audio at boot. +unmute_all_cards() +{ + sanify_levels all +} + +is_numeric() { + local str=$1 + [[ "$str" =~ ^[0-9]+$ ]] +} + +set_default_card() { + local card=$1 + sed -e "s/%card%/$card/g" < /usr/local/share/livecd-sound/asound.conf.in \ + > /etc/asound.conf +} + +play_on_card() { + local card=$1 file=$2 + aplay -q "-Dplughw:$card,0" "$file" +} + +# If there are multiple usable sound cards, prompt the user to choose one, +# using auditory feedback. +pick_a_card() +{ + set -f + usable_cards="$(list_non_pcsp_cards)" + num_usable_cards="$(wc -w <<< "$usable_cards")" + + if [ "$num_usable_cards" -eq 1 ]; then + systemd-cat -t "livecdsound" printf "Only one sound card is detected\n" + exit 0 + fi + systemd-cat -t "livecdsound" printf "multiple sound cards detected\n" + for card in $usable_cards; do + if ! is_numeric "$card"; then + continue + fi + play_on_card "$card" /usr/share/livecd-sounds/pick-a-card.wav& + done + wait + sleep 1 + for card in $usable_cards; do + if ! is_numeric "$card"; then + continue + fi + play_on_card "$card" /usr/share/livecd-sounds/beep.wav + if read -r -t 10; then + systemd-cat -t "livecdsound" printf "Selecting %s sound card as default\n" "$card" + set_default_card "$card" + break + fi +done +} + +if [[ $# -eq 0 ]]; then + echo "error: No argument passed." + exit 1 +fi +while [[ "${1}" != "" ]]; do + case ${1} in + -h|--help) + usage + exit + ;; + -u|--unmute) + systemd-cat -t "livecdsound" printf "Unmuting all cards" + unmute_all_cards + ;; + -p|--pick) + pick_a_card + ;; + *) + echo "error: Unsupported argument" + usage + exit 1 + ;; + esac + shift +done diff --git a/rkos/builder_iso/airootfs/usr/local/share/livecd-sound/asound.conf.in b/rkos/builder_iso/airootfs/usr/local/share/livecd-sound/asound.conf.in new file mode 100644 index 0000000000000000000000000000000000000000..3f9c7aa0a31306a4bd917b17b960442b47808d83 --- /dev/null +++ b/rkos/builder_iso/airootfs/usr/local/share/livecd-sound/asound.conf.in @@ -0,0 +1,3 @@ +Defaults node +defaults.ctl.card %card%; +defaults.pcm.card %card%; diff --git a/rkos/builder_iso/packages.x86_64 b/rkos/builder_iso/packages.x86_64 new file mode 100644 index 0000000000000000000000000000000000000000..b5e3652fe35b66578346e10913b2c408de885114 --- /dev/null +++ b/rkos/builder_iso/packages.x86_64 @@ -0,0 +1,142 @@ +alsa-utils +amd-ucode +arch-install-scripts +archinstall +b43-fwcutter +base +bind +brltty +broadcom-wl +btrfs-progs +clonezilla +cloud-init +cryptsetup +darkhttpd +ddrescue +dhclient +dhcpcd +diffutils +dmidecode +dmraid +dnsmasq +dosfstools +e2fsprogs +edk2-shell +efibootmgr +espeakup +ethtool +exfatprogs +f2fs-tools +fatresize +fsarchiver +gnu-netcat +gpart +gpm +gptfdisk +grml-zsh-config +grub +hdparm +hyperv +intel-ucode +irssi +iw +iwd +jfsutils +kitty-terminfo +less +lftp +libfido2 +libusb-compat +linux +linux-atm +linux-firmware +linux-firmware-marvell +livecd-sounds +lsscsi +lvm2 +lynx +man-db +man-pages +mc +mdadm +memtest86+ +memtest86+-efi +mkinitcpio +mkinitcpio-archiso +mkinitcpio-nfs-utils +modemmanager +mtools +nano +nbd +ndisc6 +nfs-utils +nilfs-utils +nmap +ntfs-3g +nvme-cli +open-iscsi +open-vm-tools +openconnect +openssh +openvpn +partclone +parted +partimage +pcsclite +ppp +pptpclient +pv +qemu-guest-agent +refind +reflector +reiserfsprogs +rp-pppoe +rsync +rxvt-unicode-terminfo +screen +sdparm +sg3_utils +smartmontools +sof-firmware +squashfs-tools +sudo +syslinux +systemd-resolvconf +tcpdump +terminus-font +testdisk +tmux +tpm2-tss +udftools +usb_modeswitch +usbmuxd +usbutils +vim +virtualbox-guest-utils-nox +vpnc +wireless-regdb +wireless_tools +wpa_supplicant +wvdial +xfsprogs +xl2tpd +bash +binutils +bison +coreutils +findutils +gawk +gcc +grep +gzip +m4 +make +patch +perl +sed +tar +texinfo +xz +python3 +wget +zsh diff --git a/rkos/src/build_lfs_sys.rs b/rkos/src/build_lfs_sys.rs new file mode 100644 index 0000000000000000000000000000000000000000..8fdea2b8e83d42d1b91502f00d770d07dc0f22f3 --- /dev/null +++ b/rkos/src/build_lfs_sys.rs @@ -0,0 +1,90 @@ +extern crate dagrs; + +use dagrs::{EnvVar, Inputval, Retval, TaskTrait}; +use log::{error, info}; +use std::collections::HashMap; + +use crate::{ + utils::{self, InstallInfo, ProgramEndingFlag}, + vars, +}; + +pub struct InstallBasicSystemSoftware {} +impl utils::ProgramEndingFlag for InstallBasicSystemSoftware {} +impl TaskTrait for InstallBasicSystemSoftware { + fn run(&self, _input: Inputval, _env: EnvVar) -> Retval { + self.check_flag(); + + let mut system_pack_status = HashMap::new(); + let base_packages = &vars::BASE_PACKAGES.base_packages; + for package in base_packages { + let package_info = InstallInfo { + //TODO:替换成vars中的常量 + dir_name: package.name.clone(), + package_name: package.package_name.clone(), + //script_path: "base_package_script/".to_owned(), + script_path: vars::BASE_CONFIG.scripts_path.root.clone() + + &vars::BASE_CONFIG.scripts_path.build_base_packages, + script_name: package.script.clone(), + //package_source_path: "/sources/".to_string(), + package_source_path: vars::BASE_CONFIG.path.package_source.clone(), + package_target_path: vars::BASE_CONFIG.path.package_build.clone(), + }; + match utils::install_package(package_info, true) { + Ok(v) => { + system_pack_status.insert(package.script.clone(), v); + } + Err(e) => { + system_pack_status.insert(package.script.clone(), false); + error!( + "package {} install failed Err msg: {}", + package.name.clone(), + e + ); + self.try_set_flag(false); + } + } + } + for (pack_name, pack_status) in system_pack_status { + info!("{} : {}", pack_name, pack_status); + } + + Retval::empty() + } +} + +pub struct RemoveDebugSymbol {} +impl utils::ProgramEndingFlag for RemoveDebugSymbol {} +impl TaskTrait for RemoveDebugSymbol { + fn run(&self, _input: Inputval, _env: EnvVar) -> Retval { + self.check_flag(); + // let remove_symbol_path = "other_script/clean_debug_symbol.sh"; + let remove_symbol_path = + vars::BASE_CONFIG.scripts_path.root.clone() + &vars::BASE_CONFIG.scripts_path.clean; + + let status = utils::exec_chroot_script( + ["remove_debug_symbol.sh"].iter().collect(), + remove_symbol_path.into(), + ); + self.try_set_flag(status); + Retval::empty() + } +} + +pub struct CleanUpSystem {} +impl utils::ProgramEndingFlag for CleanUpSystem {} +impl TaskTrait for CleanUpSystem { + fn run(&self, _input: Inputval, _env: EnvVar) -> Retval { + self.check_flag(); + let remove_symbol_path = + vars::BASE_CONFIG.scripts_path.root.clone() + &vars::BASE_CONFIG.scripts_path.clean; + + let status = utils::exec_chroot_script( + ["remove_system_trash.sh"].iter().collect(), + remove_symbol_path.into(), + ); + self.try_set_flag(status); + + Retval::empty() + } +} diff --git a/rkos/src/build_rust_packages.rs b/rkos/src/build_rust_packages.rs new file mode 100644 index 0000000000000000000000000000000000000000..e8141a9d7b6772f87ac8a33a65e3b4577031b27a --- /dev/null +++ b/rkos/src/build_rust_packages.rs @@ -0,0 +1,52 @@ +extern crate dagrs; + +use dagrs::{EnvVar, Inputval, Retval, TaskTrait}; +use log::{error, info}; +use std::collections::HashMap; + +use crate::{ + utils::{self, InstallInfo, ProgramEndingFlag}, + vars, +}; + +pub struct InstallRustSupportPackages {} +impl utils::ProgramEndingFlag for InstallRustSupportPackages {} +impl TaskTrait for InstallRustSupportPackages { + fn run(&self, _input: Inputval, _env: EnvVar) -> Retval { + self.check_flag(); + + let mut rust_support_package_status = HashMap::new(); + let packages = &vars::RUST_SUPPORT_PACKAGES.rust_support_packages; + for package in packages { + let package_info = InstallInfo { + dir_name: package.name.clone(), + package_name: package.package_name.clone(), + script_path: vars::BASE_CONFIG.scripts_path.root.clone() + + &vars::BASE_CONFIG.scripts_path.build_rust_support_packages, + script_name: package.script.clone(), + package_source_path: vars::BASE_CONFIG.path.package_source.clone(), + package_target_path: vars::BASE_CONFIG.path.package_build.clone(), + }; + match utils::install_package(package_info, true) { + Ok(v) => { + rust_support_package_status.insert(package.script.clone(), v); + } + Err(e) => { + rust_support_package_status.insert(package.script.clone(), false); + error!( + "package {} install failed Err msg: {}", + package.name.clone(), + e + ); + self.try_set_flag(false); + } + } + } + for (k, v) in rust_support_package_status { + info!("{} {}", k, v); + assert!(v); + } + + Retval::empty() + } +} diff --git a/rkos/src/build_temp_toolchain.rs b/rkos/src/build_temp_toolchain.rs new file mode 100644 index 0000000000000000000000000000000000000000..c66596d35d41d7623860bed03cb14fc268728afc --- /dev/null +++ b/rkos/src/build_temp_toolchain.rs @@ -0,0 +1,226 @@ +extern crate dagrs; + +use crate::utils; +use crate::utils::ProgramEndingFlag; +use crate::vars; +use clap::Parser; +use dagrs::{EnvVar, Inputval, Retval, TaskTrait}; +use log::{error, info}; +use std::collections::HashMap; +use std::error::Error; + +pub struct PackageInput {} +impl utils::ProgramEndingFlag for PackageInput {} +impl TaskTrait for PackageInput { + fn run(&self, _input: Inputval, _env: EnvVar) -> Retval { + let cli = vars::Cli::parse(); + let user_input = cli.package_name; + Retval::new(user_input) + } +} + +//编译交叉工具链以及chroot前的其他工具 +pub struct CompilingCrossToolChain {} +impl utils::ProgramEndingFlag for CompilingCrossToolChain {} +impl CompilingCrossToolChain { + fn before_chroot_install_packages(&self) -> Result<(), Box> { + let mut package_install_status = HashMap::new(); + let cross_compile_toolchains = &vars::CROSS_COMPILE_PACKAGES.cross_compile_toolchains; + let cross_compile_packages = &vars::CROSS_COMPILE_PACKAGES.cross_compile_packages; + info!( + "waiting for {:?} {:?}", + &cross_compile_toolchains, &cross_compile_packages + ); + + //安装临时工具链 + for package in cross_compile_toolchains { + let pack_install_info = utils::InstallInfo { + dir_name: package.name.clone(), + package_name: package.package_name.clone(), + script_name: package.script.clone(), + + script_path: vars::BASE_CONFIG.scripts_path.root.clone() + + &vars::BASE_CONFIG.scripts_path.build_temp_toolchains, + package_source_path: vars::BASE_CONFIG.path.install_path.clone() + + &vars::BASE_CONFIG.path.package_source, + package_target_path: vars::BASE_CONFIG.path.install_path.clone() + + &vars::BASE_CONFIG.path.package_build, + }; + + let res = utils::install_package(pack_install_info, false); + match res { + Ok(v) => package_install_status.insert(package.script.clone(), v), + Err(e) => { + error!("{:?}", e); + package_install_status.insert(package.script.clone(), false); + return Err(format!("Failed install package {}", &package.name).into()); + } + }; + } + //安装临时工具 + for package in cross_compile_packages { + let pack_install_info = utils::InstallInfo { + dir_name: package.name.clone(), + package_name: package.package_name.clone(), + script_name: package.script.clone(), + script_path: vars::BASE_CONFIG.scripts_path.root.clone() + + &vars::BASE_CONFIG.scripts_path.build_temp_toolchains, + // script_path: "cross_compile_script/".to_owned(), + package_source_path: vars::BASE_CONFIG.path.install_path.clone() + + &vars::BASE_CONFIG.path.package_source, + // package_source_path: "/mnt/lfs/sources/".to_owned(), + package_target_path: vars::BASE_CONFIG.path.install_path.clone() + + &vars::BASE_CONFIG.path.package_build, + // package_target_path: "/mnt/lfs/sources/".to_owned(), + }; + let res = utils::install_package(pack_install_info, false); + match res { + Ok(v) => package_install_status.insert(package.script.clone(), v), + Err(e) => { + error!("{:?}", e); + package_install_status.insert(package.script.clone(), false); + return Err(format!("Failed install package {}", &package.name).into()); + } + }; + } + + for (pack_name, pack_status) in package_install_status { + info!("{} : {}", pack_name, pack_status); + //FIXME:下面一句没必要,和上面的逻辑还有重复的地方 + assert!(pack_status); + } + + Ok(()) + } + + //TODO:检查安装状态 + #[allow(unused)] + fn check_data(&self, package_name: String) { + let cross_compile_toolchains = &vars::CROSS_COMPILE_PACKAGES.cross_compile_toolchains; + let cross_compile_packages = &vars::CROSS_COMPILE_PACKAGES.cross_compile_packages; + let after_chroot_packages = &vars::CROSS_COMPILE_PACKAGES.after_chroot_packages; + let script_path = "cross_compile_script"; + let sources_path = "sources"; + } +} +impl TaskTrait for CompilingCrossToolChain { + fn run(&self, _input: Inputval, _env: EnvVar) -> Retval { + self.check_flag(); + match self.before_chroot_install_packages() { + Ok(_v) => { + info!("cross compile toolchain install success!"); + } + Err(_e) => self.try_set_flag(false), + } + + Retval::empty() + } +} + +//准备chroot后的环境 + +pub struct AfterChroot {} +impl utils::ProgramEndingFlag for AfterChroot {} +impl TaskTrait for AfterChroot { + fn run(&self, _input: Inputval, _env: EnvVar) -> Retval { + self.check_flag(); + let status = utils::exec_chroot_script( + ["create_dirs.sh"].iter().collect(), + // ["/chroot_scripts"].iter().collect(), + [ + &vars::BASE_CONFIG.scripts_path.root, + &vars::BASE_CONFIG.scripts_path.chroot, + ] + .iter() + .collect(), + ); + + self.try_set_flag(status); + let status = utils::exec_chroot_script( + ["create_files.sh"].iter().collect(), + //["/chroot_scripts"].iter().collect(), + [ + &vars::BASE_CONFIG.scripts_path.root, + &vars::BASE_CONFIG.scripts_path.chroot, + ] + .iter() + .collect(), + ); + self.try_set_flag(status); + + Retval::empty() + } +} + +// chroot之后安装临时工具 +pub struct AfterChrootInstall {} +impl utils::ProgramEndingFlag for AfterChrootInstall {} +impl AfterChrootInstall { + fn after_chroot_install_packages(&self) -> Result<(), Box> { + let mut package_install_status = HashMap::new(); + let after_chroot_packages = &vars::CROSS_COMPILE_PACKAGES.after_chroot_packages; + info!("{:?}", after_chroot_packages); + for packages in after_chroot_packages { + let pack_build_info = utils::InstallInfo { + dir_name: packages.name.clone(), + package_name: packages.package_name.clone(), + script_name: packages.script.clone(), + // script_path: "cross_compile_script/".to_owned(), + script_path: vars::BASE_CONFIG.scripts_path.root.clone() + + &vars::BASE_CONFIG.scripts_path.build_temp_toolchains, + // package_source_path: "/sources/".to_owned(), + package_source_path: vars::BASE_CONFIG.path.package_source.clone(), + package_target_path: vars::BASE_CONFIG.path.package_build.clone(), + }; + let res = utils::install_package(pack_build_info, true); + match res { + Ok(v) => package_install_status.insert(packages.script.clone(), v), + Err(e) => { + error!("{:?}", e); + package_install_status.insert(packages.script.clone(), false); + return Err(format!("Failed install package {}", &packages.name).into()); + } + }; + } + for (k, v) in package_install_status { + info!("{} {}", k, v); + assert!(v); + } + Ok(()) + } +} + +//安装其他的临时工具链 +impl TaskTrait for AfterChrootInstall { + fn run(&self, _input: Inputval, _env: EnvVar) -> Retval { + self.check_flag(); + if self.after_chroot_install_packages().is_ok() { + Retval::empty() + } else { + self.try_set_flag(false); + panic!("Cannot installl packages in chroot env"); + } + } +} + +//清理环境临时工具等 +pub struct CleanUpAndSaveTempSystem {} +impl utils::ProgramEndingFlag for CleanUpAndSaveTempSystem {} +impl TaskTrait for CleanUpAndSaveTempSystem { + fn run(&self, _input: Inputval, _env: EnvVar) -> Retval { + self.check_flag(); + let status = utils::exec_chroot_script( + ["remove_temp_file.sh"].iter().collect(), + // ["/chroot_scripts"].iter().collect(), + [ + &vars::BASE_CONFIG.scripts_path.root, + &vars::BASE_CONFIG.scripts_path.chroot, + ] + .iter() + .collect(), + ); + + self.try_set_flag(status); + Retval::empty() + } +} diff --git a/rkos/src/config-6.1 b/rkos/src/config-6.1 new file mode 100755 index 0000000000000000000000000000000000000000..cb51ba6dcb5b7aebf9714a158139f3d601d5eba8 --- /dev/null +++ b/rkos/src/config-6.1 @@ -0,0 +1,5192 @@ +# +# Automatically generated file; DO NOT EDIT. +# Linux/x86 6.1.0 Kernel Configuration +# +CONFIG_CC_VERSION_TEXT="clang version 15.0.7" +CONFIG_GCC_VERSION=0 +CONFIG_CC_IS_CLANG=y +CONFIG_CLANG_VERSION=150007 +CONFIG_AS_IS_LLVM=y +CONFIG_AS_VERSION=150007 +CONFIG_LD_IS_BFD=y +CONFIG_LD_VERSION=23900 +CONFIG_LLD_VERSION=0 +CONFIG_RUST_IS_AVAILABLE=y +CONFIG_CC_CAN_LINK=y +CONFIG_CC_CAN_LINK_STATIC=y +CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y +CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y +CONFIG_CC_HAS_ASM_INLINE=y +CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y +CONFIG_PAHOLE_VERSION=0 +CONFIG_CONSTRUCTORS=y +CONFIG_IRQ_WORK=y +CONFIG_BUILDTIME_TABLE_SORT=y +CONFIG_THREAD_INFO_IN_TASK=y + +# +# General setup +# +CONFIG_INIT_ENV_ARG_LIMIT=32 +# CONFIG_COMPILE_TEST is not set +# CONFIG_WERROR is not set +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y +CONFIG_BUILD_SALT="" +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_BZIP2=y +CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_XZ=y +CONFIG_HAVE_KERNEL_LZO=y +CONFIG_HAVE_KERNEL_LZ4=y +CONFIG_HAVE_KERNEL_ZSTD=y +CONFIG_KERNEL_GZIP=y +# CONFIG_KERNEL_BZIP2 is not set +# CONFIG_KERNEL_LZMA is not set +# CONFIG_KERNEL_XZ is not set +# CONFIG_KERNEL_LZO is not set +# CONFIG_KERNEL_LZ4 is not set +# CONFIG_KERNEL_ZSTD is not set +CONFIG_DEFAULT_INIT="" +CONFIG_DEFAULT_HOSTNAME="(none)" +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_SYSVIPC_COMPAT=y +CONFIG_POSIX_MQUEUE=y +CONFIG_POSIX_MQUEUE_SYSCTL=y +# CONFIG_WATCH_QUEUE is not set +CONFIG_CROSS_MEMORY_ATTACH=y +# CONFIG_USELIB is not set +CONFIG_AUDIT=y +CONFIG_HAVE_ARCH_AUDITSYSCALL=y +CONFIG_AUDITSYSCALL=y + +# +# IRQ subsystem +# +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_IRQ_MIGRATION=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_IRQ_DOMAIN=y +CONFIG_IRQ_DOMAIN_HIERARCHY=y +CONFIG_GENERIC_MSI_IRQ=y +CONFIG_GENERIC_MSI_IRQ_DOMAIN=y +CONFIG_IRQ_MSI_IOMMU=y +CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y +CONFIG_GENERIC_IRQ_RESERVATION_MODE=y +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_SPARSE_IRQ=y +# CONFIG_GENERIC_IRQ_DEBUGFS is not set +# end of IRQ subsystem + +CONFIG_CLOCKSOURCE_WATCHDOG=y +CONFIG_ARCH_CLOCKSOURCE_INIT=y +CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y +CONFIG_GENERIC_CMOS_UPDATE=y +CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y +CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y +CONFIG_CONTEXT_TRACKING=y +CONFIG_CONTEXT_TRACKING_IDLE=y + +# +# Timers subsystem +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ_COMMON=y +# CONFIG_HZ_PERIODIC is not set +CONFIG_NO_HZ_IDLE=y +# CONFIG_NO_HZ_FULL is not set +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_CLOCKSOURCE_WATCHDOG_MAX_SKEW_US=100 +# end of Timers subsystem + +CONFIG_BPF=y +CONFIG_HAVE_EBPF_JIT=y +CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y + +# +# BPF subsystem +# +# CONFIG_BPF_SYSCALL is not set +# CONFIG_BPF_JIT is not set +# end of BPF subsystem + +CONFIG_PREEMPT_BUILD=y +# CONFIG_PREEMPT_NONE is not set +CONFIG_PREEMPT_VOLUNTARY=y +# CONFIG_PREEMPT is not set +CONFIG_PREEMPT_COUNT=y +CONFIG_PREEMPTION=y +CONFIG_PREEMPT_DYNAMIC=y +# CONFIG_SCHED_CORE is not set + +# +# CPU/Task time and stats accounting +# +CONFIG_TICK_CPU_ACCOUNTING=y +# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set +# CONFIG_IRQ_TIME_ACCOUNTING is not set +CONFIG_BSD_PROCESS_ACCT=y +# CONFIG_BSD_PROCESS_ACCT_V3 is not set +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +# CONFIG_PSI is not set +# end of CPU/Task time and stats accounting + +CONFIG_CPU_ISOLATION=y + +# +# RCU Subsystem +# +CONFIG_TREE_RCU=y +CONFIG_PREEMPT_RCU=y +# CONFIG_RCU_EXPERT is not set +CONFIG_SRCU=y +CONFIG_TREE_SRCU=y +CONFIG_TASKS_RCU_GENERIC=y +CONFIG_TASKS_RCU=y +CONFIG_RCU_STALL_COMMON=y +CONFIG_RCU_NEED_SEGCBLIST=y +# end of RCU Subsystem + +# CONFIG_IKCONFIG is not set +# CONFIG_IKHEADERS is not set +CONFIG_LOG_BUF_SHIFT=18 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 +CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 +# CONFIG_PRINTK_INDEX is not set +CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y + +# +# Scheduler features +# +# CONFIG_UCLAMP_TASK is not set +# end of Scheduler features + +CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y +CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y +CONFIG_CC_HAS_INT128=y +CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough" +CONFIG_GCC12_NO_ARRAY_BOUNDS=y +CONFIG_ARCH_SUPPORTS_INT128=y +# CONFIG_NUMA_BALANCING is not set +CONFIG_CGROUPS=y +CONFIG_PAGE_COUNTER=y +# CONFIG_CGROUP_FAVOR_DYNMODS is not set +# CONFIG_MEMCG is not set +CONFIG_BLK_CGROUP=y +CONFIG_CGROUP_SCHED=y +CONFIG_FAIR_GROUP_SCHED=y +# CONFIG_CFS_BANDWIDTH is not set +# CONFIG_RT_GROUP_SCHED is not set +CONFIG_CGROUP_PIDS=y +CONFIG_CGROUP_RDMA=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_HUGETLB=y +CONFIG_CPUSETS=y +CONFIG_PROC_PID_CPUSET=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_MISC=y +CONFIG_CGROUP_DEBUG=y +CONFIG_SOCK_CGROUP_DATA=y +CONFIG_NAMESPACES=y +CONFIG_UTS_NS=y +CONFIG_TIME_NS=y +CONFIG_IPC_NS=y +# CONFIG_USER_NS is not set +CONFIG_PID_NS=y +CONFIG_NET_NS=y +# CONFIG_CHECKPOINT_RESTORE is not set +# CONFIG_SCHED_AUTOGROUP is not set +# CONFIG_SYSFS_DEPRECATED is not set +CONFIG_RELAY=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_RD_GZIP=y +CONFIG_RD_BZIP2=y +CONFIG_RD_LZMA=y +CONFIG_RD_XZ=y +CONFIG_RD_LZO=y +CONFIG_RD_LZ4=y +CONFIG_RD_ZSTD=y +# CONFIG_BOOT_CONFIG is not set +CONFIG_INITRAMFS_PRESERVE_MTIME=y +CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_LD_ORPHAN_WARN=y +CONFIG_SYSCTL=y +CONFIG_HAVE_UID16=y +CONFIG_SYSCTL_EXCEPTION_TRACE=y +CONFIG_HAVE_PCSPKR_PLATFORM=y +# CONFIG_EXPERT is not set +CONFIG_UID16=y +CONFIG_MULTIUSER=y +CONFIG_SGETMASK_SYSCALL=y +CONFIG_SYSFS_SYSCALL=y +CONFIG_FHANDLE=y +CONFIG_POSIX_TIMERS=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_PCSPKR_PLATFORM=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_FUTEX_PI=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_AIO=y +CONFIG_IO_URING=y +CONFIG_ADVISE_SYSCALLS=y +CONFIG_MEMBARRIER=y +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y +CONFIG_KALLSYMS_BASE_RELATIVE=y +CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y +CONFIG_KCMP=y +CONFIG_RSEQ=y +# CONFIG_EMBEDDED is not set +CONFIG_HAVE_PERF_EVENTS=y + +# +# Kernel Performance Events And Counters +# +CONFIG_PERF_EVENTS=y +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +# end of Kernel Performance Events And Counters + +CONFIG_SYSTEM_DATA_VERIFICATION=y +CONFIG_PROFILING=y +CONFIG_RUST=y +CONFIG_RUSTC_VERSION_TEXT="rustc 1.68.0 (2c8cc3432 2023-03-06)" +CONFIG_BINDGEN_VERSION_TEXT="bindgen 0.56.0" +CONFIG_TRACEPOINTS=y +# end of General setup + +CONFIG_64BIT=y +CONFIG_X86_64=y +CONFIG_X86=y +CONFIG_INSTRUCTION_DECODER=y +CONFIG_OUTPUT_FORMAT="elf64-x86-64" +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_MMU=y +CONFIG_ARCH_MMAP_RND_BITS_MIN=28 +CONFIG_ARCH_MMAP_RND_BITS_MAX=32 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16 +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y +CONFIG_ARCH_MAY_HAVE_PC_FDC=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ARCH_HAS_CPU_RELAX=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_NR_GPIO=1024 +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_AUDIT_ARCH=y +CONFIG_HAVE_INTEL_TXT=y +CONFIG_X86_64_SMP=y +CONFIG_ARCH_SUPPORTS_UPROBES=y +CONFIG_FIX_EARLYCON_MEM=y +CONFIG_PGTABLE_LEVELS=5 +CONFIG_CC_HAS_SANE_STACKPROTECTOR=y + +# +# Processor type and features +# +CONFIG_SMP=y +CONFIG_X86_FEATURE_NAMES=y +CONFIG_X86_X2APIC=y +CONFIG_X86_MPPARSE=y +# CONFIG_GOLDFISH is not set +# CONFIG_X86_CPU_RESCTRL is not set +CONFIG_X86_EXTENDED_PLATFORM=y +# CONFIG_X86_NUMACHIP is not set +# CONFIG_X86_VSMP is not set +# CONFIG_X86_UV is not set +# CONFIG_X86_GOLDFISH is not set +# CONFIG_X86_INTEL_MID is not set +# CONFIG_X86_INTEL_LPSS is not set +# CONFIG_X86_AMD_PLATFORM_DEVICE is not set +CONFIG_IOSF_MBI=y +# CONFIG_IOSF_MBI_DEBUG is not set +CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y +CONFIG_SCHED_OMIT_FRAME_POINTER=y +CONFIG_HYPERVISOR_GUEST=y +CONFIG_PARAVIRT=y +# CONFIG_PARAVIRT_DEBUG is not set +# CONFIG_PARAVIRT_SPINLOCKS is not set +CONFIG_X86_HV_CALLBACK_VECTOR=y +# CONFIG_XEN is not set +CONFIG_KVM_GUEST=y +CONFIG_ARCH_CPUIDLE_HALTPOLL=y +# CONFIG_PVH is not set +# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set +CONFIG_PARAVIRT_CLOCK=y +# CONFIG_JAILHOUSE_GUEST is not set +# CONFIG_ACRN_GUEST is not set +# CONFIG_INTEL_TDX_GUEST is not set +# CONFIG_MK8 is not set +# CONFIG_MPSC is not set +# CONFIG_MCORE2 is not set +# CONFIG_MATOM is not set +CONFIG_GENERIC_CPU=y +CONFIG_X86_INTERNODE_CACHE_SHIFT=6 +CONFIG_X86_L1_CACHE_SHIFT=6 +CONFIG_X86_TSC=y +CONFIG_X86_CMPXCHG64=y +CONFIG_X86_CMOV=y +CONFIG_X86_MINIMUM_CPU_FAMILY=64 +CONFIG_X86_DEBUGCTLMSR=y +CONFIG_IA32_FEAT_CTL=y +CONFIG_X86_VMX_FEATURE_NAMES=y +CONFIG_CPU_SUP_INTEL=y +CONFIG_CPU_SUP_AMD=y +CONFIG_CPU_SUP_HYGON=y +CONFIG_CPU_SUP_CENTAUR=y +CONFIG_CPU_SUP_ZHAOXIN=y +CONFIG_HPET_TIMER=y +CONFIG_HPET_EMULATE_RTC=y +CONFIG_DMI=y +# CONFIG_GART_IOMMU is not set +# CONFIG_MAXSMP is not set +CONFIG_NR_CPUS_RANGE_BEGIN=2 +CONFIG_NR_CPUS_RANGE_END=512 +CONFIG_NR_CPUS_DEFAULT=64 +CONFIG_NR_CPUS=64 +CONFIG_SCHED_CLUSTER=y +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_MC_PRIO=y +CONFIG_X86_LOCAL_APIC=y +CONFIG_X86_IO_APIC=y +CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y +CONFIG_X86_MCE=y +# CONFIG_X86_MCELOG_LEGACY is not set +CONFIG_X86_MCE_INTEL=y +CONFIG_X86_MCE_AMD=y +CONFIG_X86_MCE_THRESHOLD=y +# CONFIG_X86_MCE_INJECT is not set + +# +# Performance monitoring +# +CONFIG_PERF_EVENTS_INTEL_UNCORE=y +CONFIG_PERF_EVENTS_INTEL_RAPL=y +CONFIG_PERF_EVENTS_INTEL_CSTATE=y +# CONFIG_PERF_EVENTS_AMD_POWER is not set +CONFIG_PERF_EVENTS_AMD_UNCORE=y +# CONFIG_PERF_EVENTS_AMD_BRS is not set +# end of Performance monitoring + +CONFIG_X86_16BIT=y +CONFIG_X86_ESPFIX64=y +CONFIG_X86_VSYSCALL_EMULATION=y +CONFIG_X86_IOPL_IOPERM=y +CONFIG_MICROCODE=y +CONFIG_MICROCODE_INTEL=y +CONFIG_MICROCODE_AMD=y +# CONFIG_MICROCODE_LATE_LOADING is not set +CONFIG_X86_MSR=y +CONFIG_X86_CPUID=y +CONFIG_X86_5LEVEL=y +CONFIG_X86_DIRECT_GBPAGES=y +# CONFIG_X86_CPA_STATISTICS is not set +# CONFIG_AMD_MEM_ENCRYPT is not set +CONFIG_NUMA=y +CONFIG_AMD_NUMA=y +CONFIG_X86_64_ACPI_NUMA=y +# CONFIG_NUMA_EMU is not set +CONFIG_NODES_SHIFT=6 +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +CONFIG_ARCH_PROC_KCORE_TEXT=y +CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 +# CONFIG_X86_PMEM_LEGACY is not set +CONFIG_X86_CHECK_BIOS_CORRUPTION=y +CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y +CONFIG_MTRR=y +# CONFIG_MTRR_SANITIZER is not set +CONFIG_X86_PAT=y +CONFIG_ARCH_USES_PG_UNCACHED=y +CONFIG_X86_UMIP=y +CONFIG_CC_HAS_IBT=y +# CONFIG_X86_KERNEL_IBT is not set +CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y +CONFIG_X86_INTEL_TSX_MODE_OFF=y +# CONFIG_X86_INTEL_TSX_MODE_ON is not set +# CONFIG_X86_INTEL_TSX_MODE_AUTO is not set +# CONFIG_X86_SGX is not set +CONFIG_EFI=y +CONFIG_EFI_STUB=y +CONFIG_EFI_MIXED=y +# CONFIG_HZ_100 is not set +# CONFIG_HZ_250 is not set +# CONFIG_HZ_300 is not set +CONFIG_HZ_1000=y +CONFIG_HZ=1000 +CONFIG_SCHED_HRTICK=y +CONFIG_KEXEC=y +# CONFIG_KEXEC_FILE is not set +CONFIG_CRASH_DUMP=y +# CONFIG_KEXEC_JUMP is not set +CONFIG_PHYSICAL_START=0x1000000 +CONFIG_RELOCATABLE=y +CONFIG_RANDOMIZE_BASE=y +CONFIG_X86_NEED_RELOCS=y +CONFIG_PHYSICAL_ALIGN=0x200000 +CONFIG_DYNAMIC_MEMORY_LAYOUT=y +CONFIG_RANDOMIZE_MEMORY=y +CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0x0 +CONFIG_HOTPLUG_CPU=y +# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set +# CONFIG_DEBUG_HOTPLUG_CPU0 is not set +# CONFIG_COMPAT_VDSO is not set +CONFIG_LEGACY_VSYSCALL_XONLY=y +# CONFIG_LEGACY_VSYSCALL_NONE is not set +# CONFIG_CMDLINE_BOOL is not set +CONFIG_MODIFY_LDT_SYSCALL=y +# CONFIG_STRICT_SIGALTSTACK_SIZE is not set +CONFIG_HAVE_LIVEPATCH=y +# end of Processor type and features + +CONFIG_CC_HAS_SLS=y +CONFIG_CC_HAS_RETURN_THUNK=y +CONFIG_SPECULATION_MITIGATIONS=y +CONFIG_PAGE_TABLE_ISOLATION=y +CONFIG_RETPOLINE=y +CONFIG_RETHUNK=y +CONFIG_CPU_UNRET_ENTRY=y +CONFIG_CPU_IBPB_ENTRY=y +CONFIG_CPU_IBRS_ENTRY=y +# CONFIG_SLS is not set +CONFIG_ARCH_HAS_ADD_PAGES=y +CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y + +# +# Power management and ACPI options +# +CONFIG_ARCH_HIBERNATION_HEADER=y +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_HIBERNATE_CALLBACKS=y +CONFIG_HIBERNATION=y +CONFIG_HIBERNATION_SNAPSHOT_DEV=y +CONFIG_PM_STD_PARTITION="" +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y +# CONFIG_PM_AUTOSLEEP is not set +# CONFIG_PM_USERSPACE_AUTOSLEEP is not set +# CONFIG_PM_WAKELOCKS is not set +CONFIG_PM=y +CONFIG_PM_DEBUG=y +# CONFIG_PM_ADVANCED_DEBUG is not set +# CONFIG_PM_TEST_SUSPEND is not set +CONFIG_PM_SLEEP_DEBUG=y +CONFIG_PM_TRACE=y +CONFIG_PM_TRACE_RTC=y +# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set +# CONFIG_ENERGY_MODEL is not set +CONFIG_ARCH_SUPPORTS_ACPI=y +CONFIG_ACPI=y +CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y +CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y +CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y +# CONFIG_ACPI_DEBUGGER is not set +CONFIG_ACPI_SPCR_TABLE=y +# CONFIG_ACPI_FPDT is not set +CONFIG_ACPI_LPIT=y +CONFIG_ACPI_SLEEP=y +CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y +# CONFIG_ACPI_EC_DEBUGFS is not set +CONFIG_ACPI_AC=y +CONFIG_ACPI_BATTERY=y +CONFIG_ACPI_BUTTON=y +CONFIG_ACPI_VIDEO=y +CONFIG_ACPI_FAN=y +# CONFIG_ACPI_TAD is not set +CONFIG_ACPI_DOCK=y +CONFIG_ACPI_CPU_FREQ_PSS=y +CONFIG_ACPI_PROCESSOR_CSTATE=y +CONFIG_ACPI_PROCESSOR_IDLE=y +CONFIG_ACPI_CPPC_LIB=y +CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_HOTPLUG_CPU=y +# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set +CONFIG_ACPI_THERMAL=y +CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y +CONFIG_ACPI_TABLE_UPGRADE=y +# CONFIG_ACPI_DEBUG is not set +# CONFIG_ACPI_PCI_SLOT is not set +CONFIG_ACPI_CONTAINER=y +CONFIG_ACPI_HOTPLUG_IOAPIC=y +# CONFIG_ACPI_SBS is not set +# CONFIG_ACPI_HED is not set +# CONFIG_ACPI_CUSTOM_METHOD is not set +CONFIG_ACPI_BGRT=y +# CONFIG_ACPI_NFIT is not set +CONFIG_ACPI_NUMA=y +# CONFIG_ACPI_HMAT is not set +CONFIG_HAVE_ACPI_APEI=y +CONFIG_HAVE_ACPI_APEI_NMI=y +# CONFIG_ACPI_APEI is not set +# CONFIG_ACPI_DPTF is not set +# CONFIG_ACPI_CONFIGFS is not set +# CONFIG_ACPI_PFRUT is not set +CONFIG_ACPI_PCC=y +# CONFIG_PMIC_OPREGION is not set +CONFIG_ACPI_PRMT=y +CONFIG_X86_PM_TIMER=y + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_ATTR_SET=y +CONFIG_CPU_FREQ_GOV_COMMON=y +# CONFIG_CPU_FREQ_STAT is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y + +# +# CPU frequency scaling drivers +# +CONFIG_X86_INTEL_PSTATE=y +# CONFIG_X86_PCC_CPUFREQ is not set +# CONFIG_X86_AMD_PSTATE is not set +# CONFIG_X86_AMD_PSTATE_UT is not set +CONFIG_X86_ACPI_CPUFREQ=y +CONFIG_X86_ACPI_CPUFREQ_CPB=y +# CONFIG_X86_POWERNOW_K8 is not set +# CONFIG_X86_AMD_FREQ_SENSITIVITY is not set +# CONFIG_X86_SPEEDSTEP_CENTRINO is not set +# CONFIG_X86_P4_CLOCKMOD is not set + +# +# shared options +# +# end of CPU Frequency scaling + +# +# CPU Idle +# +CONFIG_CPU_IDLE=y +# CONFIG_CPU_IDLE_GOV_LADDER is not set +CONFIG_CPU_IDLE_GOV_MENU=y +# CONFIG_CPU_IDLE_GOV_TEO is not set +# CONFIG_CPU_IDLE_GOV_HALTPOLL is not set +CONFIG_HALTPOLL_CPUIDLE=y +# end of CPU Idle + +# CONFIG_INTEL_IDLE is not set +# end of Power management and ACPI options + +# +# Bus options (PCI etc.) +# +CONFIG_PCI_DIRECT=y +CONFIG_PCI_MMCONFIG=y +CONFIG_MMCONF_FAM10H=y +CONFIG_ISA_DMA_API=y +CONFIG_AMD_NB=y +# end of Bus options (PCI etc.) + +# +# Binary Emulations +# +CONFIG_IA32_EMULATION=y +# CONFIG_X86_X32_ABI is not set +CONFIG_COMPAT_32=y +CONFIG_COMPAT=y +CONFIG_COMPAT_FOR_U64_ALIGNMENT=y +# end of Binary Emulations + +CONFIG_HAVE_KVM=y +CONFIG_VIRTUALIZATION=y +# CONFIG_KVM is not set +CONFIG_AS_AVX512=y +CONFIG_AS_SHA1_NI=y +CONFIG_AS_SHA256_NI=y +CONFIG_AS_TPAUSE=y + +# +# General architecture-dependent options +# +CONFIG_CRASH_CORE=y +CONFIG_KEXEC_CORE=y +CONFIG_HOTPLUG_SMT=y +CONFIG_GENERIC_ENTRY=y +CONFIG_KPROBES=y +CONFIG_JUMP_LABEL=y +# CONFIG_STATIC_KEYS_SELFTEST is not set +# CONFIG_STATIC_CALL_SELFTEST is not set +CONFIG_OPTPROBES=y +CONFIG_UPROBES=y +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_ARCH_USE_BUILTIN_BSWAP=y +CONFIG_KRETPROBES=y +CONFIG_KRETPROBE_ON_RETHOOK=y +CONFIG_HAVE_IOREMAP_PROT=y +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_OPTPROBES=y +CONFIG_HAVE_KPROBES_ON_FTRACE=y +CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y +CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y +CONFIG_HAVE_NMI=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_ARCH_HAS_FORTIFY_SOURCE=y +CONFIG_ARCH_HAS_SET_MEMORY=y +CONFIG_ARCH_HAS_SET_DIRECT_MAP=y +CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y +CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y +CONFIG_ARCH_WANTS_NO_INSTR=y +CONFIG_HAVE_ASM_MODVERSIONS=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_RSEQ=y +CONFIG_HAVE_RUST=y +CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y +CONFIG_HAVE_HW_BREAKPOINT=y +CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y +CONFIG_HAVE_USER_RETURN_NOTIFIER=y +CONFIG_HAVE_PERF_EVENTS_NMI=y +CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y +CONFIG_HAVE_PERF_REGS=y +CONFIG_HAVE_PERF_USER_STACK_DUMP=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y +CONFIG_MMU_GATHER_TABLE_FREE=y +CONFIG_MMU_GATHER_RCU_TABLE_FREE=y +CONFIG_MMU_GATHER_MERGE_VMAS=y +CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y +CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y +CONFIG_HAVE_CMPXCHG_LOCAL=y +CONFIG_HAVE_CMPXCHG_DOUBLE=y +CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y +CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y +CONFIG_HAVE_ARCH_SECCOMP=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_SECCOMP=y +CONFIG_SECCOMP_FILTER=y +# CONFIG_SECCOMP_CACHE_DEBUG is not set +CONFIG_HAVE_ARCH_STACKLEAK=y +CONFIG_HAVE_STACKPROTECTOR=y +CONFIG_STACKPROTECTOR=y +CONFIG_STACKPROTECTOR_STRONG=y +CONFIG_ARCH_SUPPORTS_LTO_CLANG=y +CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y +CONFIG_LTO_NONE=y +CONFIG_ARCH_SUPPORTS_CFI_CLANG=y +CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y +CONFIG_HAVE_CONTEXT_TRACKING_USER=y +CONFIG_HAVE_CONTEXT_TRACKING_USER_OFFSTACK=y +CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_MOVE_PUD=y +CONFIG_HAVE_MOVE_PMD=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y +CONFIG_HAVE_ARCH_HUGE_VMAP=y +CONFIG_HAVE_ARCH_HUGE_VMALLOC=y +CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y +CONFIG_HAVE_ARCH_SOFT_DIRTY=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_MODULES_USE_ELF_RELA=y +CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y +CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y +CONFIG_SOFTIRQ_ON_OWN_STACK=y +CONFIG_ARCH_HAS_ELF_RANDOMIZE=y +CONFIG_HAVE_ARCH_MMAP_RND_BITS=y +CONFIG_HAVE_EXIT_THREAD=y +CONFIG_ARCH_MMAP_RND_BITS=28 +CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y +CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8 +CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES=y +CONFIG_PAGE_SIZE_LESS_THAN_64KB=y +CONFIG_PAGE_SIZE_LESS_THAN_256KB=y +CONFIG_HAVE_OBJTOOL=y +CONFIG_HAVE_JUMP_LABEL_HACK=y +CONFIG_HAVE_NOINSTR_HACK=y +CONFIG_HAVE_NOINSTR_VALIDATION=y +CONFIG_HAVE_UACCESS_VALIDATION=y +CONFIG_HAVE_STACK_VALIDATION=y +CONFIG_HAVE_RELIABLE_STACKTRACE=y +CONFIG_OLD_SIGSUSPEND3=y +CONFIG_COMPAT_OLD_SIGACTION=y +CONFIG_COMPAT_32BIT_TIME=y +CONFIG_HAVE_ARCH_VMAP_STACK=y +CONFIG_VMAP_STACK=y +CONFIG_HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET=y +CONFIG_RANDOMIZE_KSTACK_OFFSET=y +# CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT is not set +CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y +CONFIG_STRICT_KERNEL_RWX=y +CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y +CONFIG_STRICT_MODULE_RWX=y +CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y +CONFIG_ARCH_USE_MEMREMAP_PROT=y +# CONFIG_LOCK_EVENT_COUNTS is not set +CONFIG_ARCH_HAS_MEM_ENCRYPT=y +CONFIG_HAVE_STATIC_CALL=y +CONFIG_HAVE_STATIC_CALL_INLINE=y +CONFIG_HAVE_PREEMPT_DYNAMIC=y +CONFIG_HAVE_PREEMPT_DYNAMIC_CALL=y +CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y +CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y +CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y +CONFIG_ARCH_HAS_ELFCORE_COMPAT=y +CONFIG_ARCH_HAS_PARANOID_L1D_FLUSH=y +CONFIG_DYNAMIC_SIGFRAME=y +CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG=y + +# +# GCOV-based kernel profiling +# +# CONFIG_GCOV_KERNEL is not set +CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y +# end of GCOV-based kernel profiling + +CONFIG_HAVE_GCC_PLUGINS=y +# end of General architecture-dependent options + +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +# CONFIG_MODULE_FORCE_LOAD is not set +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODULE_UNLOAD_TAINT_TRACKING is not set +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +# CONFIG_MODULE_SIG is not set +CONFIG_MODULE_COMPRESS_NONE=y +# CONFIG_MODULE_COMPRESS_GZIP is not set +# CONFIG_MODULE_COMPRESS_XZ is not set +# CONFIG_MODULE_COMPRESS_ZSTD is not set +# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set +CONFIG_MODPROBE_PATH="/sbin/modprobe" +CONFIG_MODULES_TREE_LOOKUP=y +CONFIG_BLOCK=y +CONFIG_BLOCK_LEGACY_AUTOLOAD=y +CONFIG_BLK_RQ_ALLOC_TIME=y +CONFIG_BLK_DEV_BSG_COMMON=y +# CONFIG_BLK_DEV_BSGLIB is not set +# CONFIG_BLK_DEV_INTEGRITY is not set +# CONFIG_BLK_DEV_ZONED is not set +# CONFIG_BLK_DEV_THROTTLING is not set +# CONFIG_BLK_WBT is not set +CONFIG_BLK_CGROUP_IOLATENCY=y +CONFIG_BLK_CGROUP_IOCOST=y +CONFIG_BLK_CGROUP_IOPRIO=y +CONFIG_BLK_DEBUG_FS=y +# CONFIG_BLK_SED_OPAL is not set +# CONFIG_BLK_INLINE_ENCRYPTION is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y +CONFIG_EFI_PARTITION=y +# end of Partition Types + +CONFIG_BLOCK_COMPAT=y +CONFIG_BLK_MQ_PCI=y +CONFIG_BLK_MQ_VIRTIO=y +CONFIG_BLK_PM=y +CONFIG_BLOCK_HOLDER_DEPRECATED=y +CONFIG_BLK_MQ_STACKING=y + +# +# IO Schedulers +# +CONFIG_MQ_IOSCHED_DEADLINE=y +CONFIG_MQ_IOSCHED_KYBER=y +# CONFIG_IOSCHED_BFQ is not set +# end of IO Schedulers + +CONFIG_ASN1=y +CONFIG_UNINLINE_SPIN_UNLOCK=y +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_LOCK_SPIN_ON_OWNER=y +CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y +CONFIG_QUEUED_SPINLOCKS=y +CONFIG_ARCH_USE_QUEUED_RWLOCKS=y +CONFIG_QUEUED_RWLOCKS=y +CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y +CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y +CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y +CONFIG_FREEZER=y + +# +# Executable file formats +# +CONFIG_BINFMT_ELF=y +CONFIG_COMPAT_BINFMT_ELF=y +CONFIG_ELFCORE=y +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y +CONFIG_BINFMT_SCRIPT=y +CONFIG_BINFMT_MISC=y +CONFIG_COREDUMP=y +# end of Executable file formats + +# +# Memory Management options +# +CONFIG_SWAP=y +# CONFIG_ZSWAP is not set + +# +# SLAB allocator options +# +# CONFIG_SLAB is not set +CONFIG_SLUB=y +CONFIG_SLAB_MERGE_DEFAULT=y +# CONFIG_SLAB_FREELIST_RANDOM is not set +# CONFIG_SLAB_FREELIST_HARDENED is not set +# CONFIG_SLUB_STATS is not set +CONFIG_SLUB_CPU_PARTIAL=y +# end of SLAB allocator options + +# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set +# CONFIG_COMPAT_BRK is not set +CONFIG_SPARSEMEM=y +CONFIG_SPARSEMEM_EXTREME=y +CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y +CONFIG_SPARSEMEM_VMEMMAP=y +CONFIG_HAVE_FAST_GUP=y +CONFIG_EXCLUSIVE_SYSTEM_RAM=y +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y +# CONFIG_MEMORY_HOTPLUG is not set +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y +CONFIG_COMPACTION=y +CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1 +# CONFIG_PAGE_REPORTING is not set +CONFIG_MIGRATION=y +CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_MMU_NOTIFIER=y +# CONFIG_KSM is not set +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y +# CONFIG_MEMORY_FAILURE is not set +CONFIG_ARCH_WANT_GENERAL_HUGETLB=y +CONFIG_ARCH_WANTS_THP_SWAP=y +# CONFIG_TRANSPARENT_HUGEPAGE is not set +CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y +CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y +CONFIG_USE_PERCPU_NUMA_NODE_ID=y +CONFIG_HAVE_SETUP_PER_CPU_AREA=y +# CONFIG_CMA is not set +CONFIG_GENERIC_EARLY_IOREMAP=y +# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set +# CONFIG_IDLE_PAGE_TRACKING is not set +CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y +CONFIG_ARCH_HAS_PTE_DEVMAP=y +CONFIG_ZONE_DMA=y +CONFIG_ZONE_DMA32=y +CONFIG_VMAP_PFN=y +CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y +CONFIG_ARCH_HAS_PKEYS=y +CONFIG_VM_EVENT_COUNTERS=y +# CONFIG_PERCPU_STATS is not set +# CONFIG_GUP_TEST is not set +CONFIG_ARCH_HAS_PTE_SPECIAL=y +CONFIG_SECRETMEM=y +# CONFIG_ANON_VMA_NAME is not set +# CONFIG_USERFAULTFD is not set +# CONFIG_LRU_GEN is not set + +# +# Data Access Monitoring +# +# CONFIG_DAMON is not set +# end of Data Access Monitoring +# end of Memory Management options + +CONFIG_NET=y +CONFIG_NET_INGRESS=y +CONFIG_NET_EGRESS=y +CONFIG_SKB_EXTENSIONS=y + +# +# Networking options +# +CONFIG_PACKET=y +# CONFIG_PACKET_DIAG is not set +CONFIG_UNIX=y +CONFIG_UNIX_SCM=y +CONFIG_AF_UNIX_OOB=y +# CONFIG_UNIX_DIAG is not set +# CONFIG_TLS is not set +CONFIG_XFRM=y +CONFIG_XFRM_ALGO=y +CONFIG_XFRM_USER=y +# CONFIG_XFRM_USER_COMPAT is not set +# CONFIG_XFRM_INTERFACE is not set +# CONFIG_XFRM_SUB_POLICY is not set +# CONFIG_XFRM_MIGRATE is not set +# CONFIG_XFRM_STATISTICS is not set +CONFIG_XFRM_AH=y +CONFIG_XFRM_ESP=y +# CONFIG_NET_KEY is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +# CONFIG_IP_FIB_TRIE_STATS is not set +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +CONFIG_IP_PNP_RARP=y +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE_DEMUX is not set +CONFIG_NET_IP_TUNNEL=y +CONFIG_IP_MROUTE_COMMON=y +CONFIG_IP_MROUTE=y +# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +CONFIG_SYN_COOKIES=y +# CONFIG_NET_IPVTI is not set +# CONFIG_NET_FOU is not set +# CONFIG_NET_FOU_IP_TUNNELS is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +CONFIG_INET_TABLE_PERTURB_ORDER=16 +CONFIG_INET_TUNNEL=y +# CONFIG_INET_DIAG is not set +CONFIG_TCP_CONG_ADVANCED=y +# CONFIG_TCP_CONG_BIC is not set +CONFIG_TCP_CONG_CUBIC=y +# CONFIG_TCP_CONG_WESTWOOD is not set +# CONFIG_TCP_CONG_HTCP is not set +# CONFIG_TCP_CONG_HSTCP is not set +# CONFIG_TCP_CONG_HYBLA is not set +# CONFIG_TCP_CONG_VEGAS is not set +# CONFIG_TCP_CONG_NV is not set +# CONFIG_TCP_CONG_SCALABLE is not set +# CONFIG_TCP_CONG_LP is not set +# CONFIG_TCP_CONG_VENO is not set +# CONFIG_TCP_CONG_YEAH is not set +# CONFIG_TCP_CONG_ILLINOIS is not set +# CONFIG_TCP_CONG_DCTCP is not set +# CONFIG_TCP_CONG_CDG is not set +# CONFIG_TCP_CONG_BBR is not set +CONFIG_DEFAULT_CUBIC=y +# CONFIG_DEFAULT_RENO is not set +CONFIG_DEFAULT_TCP_CONG="cubic" +CONFIG_TCP_MD5SIG=y +CONFIG_IPV6=y +# CONFIG_IPV6_ROUTER_PREF is not set +# CONFIG_IPV6_OPTIMISTIC_DAD is not set +CONFIG_INET6_AH=y +CONFIG_INET6_ESP=y +# CONFIG_INET6_ESP_OFFLOAD is not set +# CONFIG_INET6_ESPINTCP is not set +# CONFIG_INET6_IPCOMP is not set +# CONFIG_IPV6_MIP6 is not set +# CONFIG_IPV6_ILA is not set +# CONFIG_IPV6_VTI is not set +CONFIG_IPV6_SIT=y +# CONFIG_IPV6_SIT_6RD is not set +CONFIG_IPV6_NDISC_NODETYPE=y +# CONFIG_IPV6_TUNNEL is not set +# CONFIG_IPV6_MULTIPLE_TABLES is not set +# CONFIG_IPV6_MROUTE is not set +# CONFIG_IPV6_SEG6_LWTUNNEL is not set +# CONFIG_IPV6_SEG6_HMAC is not set +# CONFIG_IPV6_RPL_LWTUNNEL is not set +# CONFIG_IPV6_IOAM6_LWTUNNEL is not set +CONFIG_NETLABEL=y +# CONFIG_MPTCP is not set +CONFIG_NETWORK_SECMARK=y +CONFIG_NET_PTP_CLASSIFY=y +# CONFIG_NETWORK_PHY_TIMESTAMPING is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_ADVANCED is not set + +# +# Core Netfilter Configuration +# +CONFIG_NETFILTER_INGRESS=y +CONFIG_NETFILTER_EGRESS=y +CONFIG_NETFILTER_SKIP_EGRESS=y +CONFIG_NETFILTER_NETLINK=y +CONFIG_NETFILTER_NETLINK_LOG=y +CONFIG_NF_CONNTRACK=y +CONFIG_NF_LOG_SYSLOG=m +CONFIG_NF_CONNTRACK_SECMARK=y +# CONFIG_NF_CONNTRACK_PROCFS is not set +# CONFIG_NF_CONNTRACK_LABELS is not set +CONFIG_NF_CONNTRACK_FTP=y +CONFIG_NF_CONNTRACK_IRC=y +# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set +CONFIG_NF_CONNTRACK_SIP=y +CONFIG_NF_CT_NETLINK=y +# CONFIG_NETFILTER_NETLINK_GLUE_CT is not set +CONFIG_NF_NAT=y +CONFIG_NF_NAT_FTP=y +CONFIG_NF_NAT_IRC=y +CONFIG_NF_NAT_SIP=y +CONFIG_NF_NAT_MASQUERADE=y +# CONFIG_NF_TABLES is not set +CONFIG_NETFILTER_XTABLES=y +CONFIG_NETFILTER_XTABLES_COMPAT=y + +# +# Xtables combined modules +# +CONFIG_NETFILTER_XT_MARK=m + +# +# Xtables targets +# +CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y +CONFIG_NETFILTER_XT_TARGET_LOG=m +CONFIG_NETFILTER_XT_NAT=m +# CONFIG_NETFILTER_XT_TARGET_NETMAP is not set +CONFIG_NETFILTER_XT_TARGET_NFLOG=y +# CONFIG_NETFILTER_XT_TARGET_REDIRECT is not set +CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m +CONFIG_NETFILTER_XT_TARGET_SECMARK=y +CONFIG_NETFILTER_XT_TARGET_TCPMSS=y + +# +# Xtables matches +# +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y +CONFIG_NETFILTER_XT_MATCH_POLICY=y +CONFIG_NETFILTER_XT_MATCH_STATE=y +# end of Core Netfilter Configuration + +# CONFIG_IP_SET is not set +# CONFIG_IP_VS is not set + +# +# IP: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV4=y +# CONFIG_NF_SOCKET_IPV4 is not set +# CONFIG_NF_TPROXY_IPV4 is not set +# CONFIG_NF_DUP_IPV4 is not set +CONFIG_NF_LOG_ARP=m +CONFIG_NF_LOG_IPV4=m +CONFIG_NF_REJECT_IPV4=y +CONFIG_IP_NF_IPTABLES=y +CONFIG_IP_NF_FILTER=y +CONFIG_IP_NF_TARGET_REJECT=y +CONFIG_IP_NF_NAT=m +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_MANGLE=y +# CONFIG_IP_NF_RAW is not set +# end of IP: Netfilter Configuration + +# +# IPv6: Netfilter Configuration +# +# CONFIG_NF_SOCKET_IPV6 is not set +# CONFIG_NF_TPROXY_IPV6 is not set +# CONFIG_NF_DUP_IPV6 is not set +CONFIG_NF_REJECT_IPV6=y +CONFIG_NF_LOG_IPV6=m +CONFIG_IP6_NF_IPTABLES=y +CONFIG_IP6_NF_MATCH_IPV6HEADER=y +CONFIG_IP6_NF_FILTER=y +CONFIG_IP6_NF_TARGET_REJECT=y +CONFIG_IP6_NF_MANGLE=y +# CONFIG_IP6_NF_RAW is not set +# end of IPv6: Netfilter Configuration + +CONFIG_NF_DEFRAG_IPV6=y +# CONFIG_NF_CONNTRACK_BRIDGE is not set +# CONFIG_BPFILTER is not set +# CONFIG_IP_DCCP is not set +# CONFIG_IP_SCTP is not set +# CONFIG_RDS is not set +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_L2TP is not set +# CONFIG_BRIDGE is not set +# CONFIG_NET_DSA is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_LLC2 is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_PHONET is not set +# CONFIG_6LOWPAN is not set +# CONFIG_IEEE802154 is not set +CONFIG_NET_SCHED=y + +# +# Queueing/Scheduling +# +# CONFIG_NET_SCH_CBQ is not set +# CONFIG_NET_SCH_HTB is not set +# CONFIG_NET_SCH_HFSC is not set +# CONFIG_NET_SCH_PRIO is not set +# CONFIG_NET_SCH_MULTIQ is not set +# CONFIG_NET_SCH_RED is not set +# CONFIG_NET_SCH_SFB is not set +# CONFIG_NET_SCH_SFQ is not set +# CONFIG_NET_SCH_TEQL is not set +# CONFIG_NET_SCH_TBF is not set +# CONFIG_NET_SCH_CBS is not set +# CONFIG_NET_SCH_ETF is not set +# CONFIG_NET_SCH_TAPRIO is not set +# CONFIG_NET_SCH_GRED is not set +# CONFIG_NET_SCH_DSMARK is not set +# CONFIG_NET_SCH_NETEM is not set +# CONFIG_NET_SCH_DRR is not set +# CONFIG_NET_SCH_MQPRIO is not set +# CONFIG_NET_SCH_SKBPRIO is not set +# CONFIG_NET_SCH_CHOKE is not set +# CONFIG_NET_SCH_QFQ is not set +# CONFIG_NET_SCH_CODEL is not set +# CONFIG_NET_SCH_FQ_CODEL is not set +# CONFIG_NET_SCH_CAKE is not set +# CONFIG_NET_SCH_FQ is not set +# CONFIG_NET_SCH_HHF is not set +# CONFIG_NET_SCH_PIE is not set +# CONFIG_NET_SCH_INGRESS is not set +# CONFIG_NET_SCH_PLUG is not set +# CONFIG_NET_SCH_ETS is not set +# CONFIG_NET_SCH_DEFAULT is not set + +# +# Classification +# +CONFIG_NET_CLS=y +# CONFIG_NET_CLS_BASIC is not set +# CONFIG_NET_CLS_TCINDEX is not set +# CONFIG_NET_CLS_ROUTE4 is not set +# CONFIG_NET_CLS_FW is not set +# CONFIG_NET_CLS_U32 is not set +# CONFIG_NET_CLS_RSVP is not set +# CONFIG_NET_CLS_RSVP6 is not set +# CONFIG_NET_CLS_FLOW is not set +CONFIG_NET_CLS_CGROUP=y +# CONFIG_NET_CLS_BPF is not set +# CONFIG_NET_CLS_FLOWER is not set +# CONFIG_NET_CLS_MATCHALL is not set +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_STACK=32 +# CONFIG_NET_EMATCH_CMP is not set +# CONFIG_NET_EMATCH_NBYTE is not set +# CONFIG_NET_EMATCH_U32 is not set +# CONFIG_NET_EMATCH_META is not set +# CONFIG_NET_EMATCH_TEXT is not set +# CONFIG_NET_EMATCH_IPT is not set +CONFIG_NET_CLS_ACT=y +# CONFIG_NET_ACT_POLICE is not set +# CONFIG_NET_ACT_GACT is not set +# CONFIG_NET_ACT_MIRRED is not set +# CONFIG_NET_ACT_SAMPLE is not set +# CONFIG_NET_ACT_IPT is not set +# CONFIG_NET_ACT_NAT is not set +# CONFIG_NET_ACT_PEDIT is not set +# CONFIG_NET_ACT_SIMP is not set +# CONFIG_NET_ACT_SKBEDIT is not set +# CONFIG_NET_ACT_CSUM is not set +# CONFIG_NET_ACT_MPLS is not set +# CONFIG_NET_ACT_VLAN is not set +# CONFIG_NET_ACT_BPF is not set +# CONFIG_NET_ACT_SKBMOD is not set +# CONFIG_NET_ACT_IFE is not set +# CONFIG_NET_ACT_TUNNEL_KEY is not set +# CONFIG_NET_ACT_GATE is not set +# CONFIG_NET_TC_SKB_EXT is not set +CONFIG_NET_SCH_FIFO=y +# CONFIG_DCB is not set +CONFIG_DNS_RESOLVER=y +# CONFIG_BATMAN_ADV is not set +# CONFIG_OPENVSWITCH is not set +# CONFIG_VSOCKETS is not set +# CONFIG_NETLINK_DIAG is not set +# CONFIG_MPLS is not set +# CONFIG_NET_NSH is not set +# CONFIG_HSR is not set +# CONFIG_NET_SWITCHDEV is not set +# CONFIG_NET_L3_MASTER_DEV is not set +# CONFIG_QRTR is not set +# CONFIG_NET_NCSI is not set +CONFIG_PCPU_DEV_REFCNT=y +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_SOCK_RX_QUEUE_MAPPING=y +CONFIG_XPS=y +CONFIG_CGROUP_NET_PRIO=y +CONFIG_CGROUP_NET_CLASSID=y +CONFIG_NET_RX_BUSY_POLL=y +CONFIG_BQL=y +CONFIG_NET_FLOW_LIMIT=y + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_NET_DROP_MONITOR is not set +# end of Network testing +# end of Networking options + +# CONFIG_HAMRADIO is not set +# CONFIG_CAN is not set +# CONFIG_BT is not set +# CONFIG_AF_RXRPC is not set +# CONFIG_AF_KCM is not set +# CONFIG_MCTP is not set +CONFIG_FIB_RULES=y +CONFIG_WIRELESS=y +CONFIG_CFG80211=y +# CONFIG_NL80211_TESTMODE is not set +# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set +CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y +CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y +CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_DEBUGFS is not set +CONFIG_CFG80211_CRDA_SUPPORT=y +# CONFIG_CFG80211_WEXT is not set +CONFIG_MAC80211=y +CONFIG_MAC80211_HAS_RC=y +CONFIG_MAC80211_RC_MINSTREL=y +CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y +CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" +# CONFIG_MAC80211_MESH is not set +CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUGFS is not set +# CONFIG_MAC80211_MESSAGE_TRACING is not set +# CONFIG_MAC80211_DEBUG_MENU is not set +CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 +CONFIG_RFKILL=y +CONFIG_RFKILL_LEDS=y +CONFIG_RFKILL_INPUT=y +CONFIG_NET_9P=y +CONFIG_NET_9P_FD=y +CONFIG_NET_9P_VIRTIO=y +# CONFIG_NET_9P_DEBUG is not set +# CONFIG_CAIF is not set +# CONFIG_CEPH_LIB is not set +# CONFIG_NFC is not set +# CONFIG_PSAMPLE is not set +# CONFIG_NET_IFE is not set +# CONFIG_LWTUNNEL is not set +CONFIG_DST_CACHE=y +CONFIG_GRO_CELLS=y +CONFIG_NET_SELFTESTS=y +CONFIG_FAILOVER=y +CONFIG_ETHTOOL_NETLINK=y + +# +# Device Drivers +# +CONFIG_HAVE_EISA=y +# CONFIG_EISA is not set +CONFIG_HAVE_PCI=y +CONFIG_PCI=y +CONFIG_PCI_DOMAINS=y +CONFIG_PCIEPORTBUS=y +# CONFIG_HOTPLUG_PCI_PCIE is not set +# CONFIG_PCIEAER is not set +CONFIG_PCIEASPM=y +CONFIG_PCIEASPM_DEFAULT=y +# CONFIG_PCIEASPM_POWERSAVE is not set +# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set +# CONFIG_PCIEASPM_PERFORMANCE is not set +CONFIG_PCIE_PME=y +# CONFIG_PCIE_PTM is not set +CONFIG_PCI_MSI=y +CONFIG_PCI_MSI_IRQ_DOMAIN=y +CONFIG_PCI_QUIRKS=y +# CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_STUB is not set +CONFIG_PCI_ATS=y +CONFIG_PCI_LOCKLESS_CONFIG=y +# CONFIG_PCI_IOV is not set +CONFIG_PCI_PRI=y +CONFIG_PCI_PASID=y +CONFIG_PCI_LABEL=y +CONFIG_VGA_ARB=y +CONFIG_VGA_ARB_MAX_GPUS=16 +CONFIG_HOTPLUG_PCI=y +# CONFIG_HOTPLUG_PCI_ACPI is not set +# CONFIG_HOTPLUG_PCI_CPCI is not set +# CONFIG_HOTPLUG_PCI_SHPC is not set + +# +# PCI controller drivers +# +# CONFIG_VMD is not set + +# +# DesignWare PCI Core Support +# +# CONFIG_PCIE_DW_PLAT_HOST is not set +# CONFIG_PCI_MESON is not set +# end of DesignWare PCI Core Support + +# +# Mobiveil PCIe Core Support +# +# end of Mobiveil PCIe Core Support + +# +# Cadence PCIe controllers support +# +# end of Cadence PCIe controllers support +# end of PCI controller drivers + +# +# PCI Endpoint +# +# CONFIG_PCI_ENDPOINT is not set +# end of PCI Endpoint + +# +# PCI switch controller drivers +# +# CONFIG_PCI_SW_SWITCHTEC is not set +# end of PCI switch controller drivers + +# CONFIG_CXL_BUS is not set +CONFIG_PCCARD=y +CONFIG_PCMCIA=y +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_CARDBUS=y + +# +# PC-card bridges +# +CONFIG_YENTA=y +CONFIG_YENTA_O2=y +CONFIG_YENTA_RICOH=y +CONFIG_YENTA_TI=y +CONFIG_YENTA_ENE_TUNE=y +CONFIG_YENTA_TOSHIBA=y +# CONFIG_PD6729 is not set +# CONFIG_I82092 is not set +CONFIG_PCCARD_NONSTATIC=y +# CONFIG_RAPIDIO is not set + +# +# Generic Driver Options +# +CONFIG_AUXILIARY_BUS=y +# CONFIG_UEVENT_HELPER is not set +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +# CONFIG_DEVTMPFS_SAFE is not set +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y + +# +# Firmware loader +# +CONFIG_FW_LOADER=y +CONFIG_EXTRA_FIRMWARE="" +# CONFIG_FW_LOADER_USER_HELPER is not set +# CONFIG_FW_LOADER_COMPRESS is not set +CONFIG_FW_CACHE=y +# CONFIG_FW_UPLOAD is not set +# end of Firmware loader + +CONFIG_ALLOW_DEV_COREDUMP=y +# CONFIG_DEBUG_DRIVER is not set +CONFIG_DEBUG_DEVRES=y +# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set +# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set +CONFIG_GENERIC_CPU_AUTOPROBE=y +CONFIG_GENERIC_CPU_VULNERABILITIES=y +CONFIG_REGMAP=y +CONFIG_DMA_SHARED_BUFFER=y +# CONFIG_DMA_FENCE_TRACE is not set +# end of Generic Driver Options + +# +# Bus devices +# +# CONFIG_MHI_BUS is not set +# CONFIG_MHI_BUS_EP is not set +# end of Bus devices + +CONFIG_CONNECTOR=y +CONFIG_PROC_EVENTS=y + +# +# Firmware Drivers +# + +# +# ARM System Control and Management Interface Protocol +# +# end of ARM System Control and Management Interface Protocol + +# CONFIG_EDD is not set +CONFIG_FIRMWARE_MEMMAP=y +CONFIG_DMIID=y +# CONFIG_DMI_SYSFS is not set +CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y +# CONFIG_ISCSI_IBFT is not set +# CONFIG_FW_CFG_SYSFS is not set +# CONFIG_SYSFB_SIMPLEFB is not set +# CONFIG_GOOGLE_FIRMWARE is not set + +# +# EFI (Extensible Firmware Interface) Support +# +CONFIG_EFI_ESRT=y +CONFIG_EFI_RUNTIME_MAP=y +# CONFIG_EFI_FAKE_MEMMAP is not set +CONFIG_EFI_DXE_MEM_ATTRIBUTES=y +CONFIG_EFI_RUNTIME_WRAPPERS=y +CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y +# CONFIG_EFI_BOOTLOADER_CONTROL is not set +# CONFIG_EFI_CAPSULE_LOADER is not set +# CONFIG_EFI_TEST is not set +# CONFIG_APPLE_PROPERTIES is not set +# CONFIG_RESET_ATTACK_MITIGATION is not set +# CONFIG_EFI_RCI2_TABLE is not set +# CONFIG_EFI_DISABLE_PCI_DMA is not set +CONFIG_EFI_EARLYCON=y +CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y +# CONFIG_EFI_DISABLE_RUNTIME is not set +# CONFIG_EFI_COCO_SECRET is not set +# end of EFI (Extensible Firmware Interface) Support + +# +# Tegra firmware driver +# +# end of Tegra firmware driver +# end of Firmware Drivers + +# CONFIG_GNSS is not set +# CONFIG_MTD is not set +# CONFIG_OF is not set +CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y +# CONFIG_PARPORT is not set +CONFIG_PNP=y +CONFIG_PNP_DEBUG_MESSAGES=y + +# +# Protocols +# +CONFIG_PNPACPI=y +CONFIG_BLK_DEV=y +# CONFIG_BLK_DEV_NULL_BLK is not set +# CONFIG_BLK_DEV_FD is not set +CONFIG_CDROM=y +# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 +# CONFIG_BLK_DEV_DRBD is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_RAM is not set +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set +CONFIG_VIRTIO_BLK=y +# CONFIG_BLK_DEV_RBD is not set +# CONFIG_BLK_DEV_UBLK is not set + +# +# NVME Support +# +# CONFIG_BLK_DEV_NVME is not set +# CONFIG_NVME_FC is not set +# CONFIG_NVME_TCP is not set +# end of NVME Support + +# +# Misc devices +# +# CONFIG_AD525X_DPOT is not set +# CONFIG_DUMMY_IRQ is not set +# CONFIG_IBM_ASM is not set +# CONFIG_PHANTOM is not set +# CONFIG_TIFM_CORE is not set +# CONFIG_ICS932S401 is not set +# CONFIG_ENCLOSURE_SERVICES is not set +# CONFIG_HP_ILO is not set +# CONFIG_APDS9802ALS is not set +# CONFIG_ISL29003 is not set +# CONFIG_ISL29020 is not set +# CONFIG_SENSORS_TSL2550 is not set +# CONFIG_SENSORS_BH1770 is not set +# CONFIG_SENSORS_APDS990X is not set +# CONFIG_HMC6352 is not set +# CONFIG_DS1682 is not set +# CONFIG_SRAM is not set +# CONFIG_DW_XDATA_PCIE is not set +# CONFIG_PCI_ENDPOINT_TEST is not set +# CONFIG_XILINX_SDFEC is not set +# CONFIG_C2PORT is not set + +# +# EEPROM support +# +# CONFIG_EEPROM_AT24 is not set +# CONFIG_EEPROM_LEGACY is not set +# CONFIG_EEPROM_MAX6875 is not set +# CONFIG_EEPROM_93CX6 is not set +# CONFIG_EEPROM_IDT_89HPESX is not set +# CONFIG_EEPROM_EE1004 is not set +# end of EEPROM support + +# CONFIG_CB710_CORE is not set + +# +# Texas Instruments shared transport line discipline +# +# end of Texas Instruments shared transport line discipline + +# CONFIG_SENSORS_LIS3_I2C is not set +# CONFIG_ALTERA_STAPL is not set +# CONFIG_INTEL_MEI is not set +# CONFIG_INTEL_MEI_ME is not set +# CONFIG_INTEL_MEI_TXE is not set +# CONFIG_INTEL_MEI_HDCP is not set +# CONFIG_INTEL_MEI_PXP is not set +# CONFIG_VMWARE_VMCI is not set +# CONFIG_GENWQE is not set +# CONFIG_ECHO is not set +# CONFIG_BCM_VK is not set +# CONFIG_MISC_ALCOR_PCI is not set +# CONFIG_MISC_RTSX_PCI is not set +# CONFIG_MISC_RTSX_USB is not set +# CONFIG_HABANA_AI is not set +# CONFIG_UACCE is not set +# CONFIG_PVPANIC is not set +# end of Misc devices + +# +# SCSI device support +# +CONFIG_SCSI_MOD=y +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI_COMMON=y +CONFIG_SCSI=y +CONFIG_SCSI_DMA=y +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +# CONFIG_CHR_DEV_ST is not set +CONFIG_BLK_DEV_SR=y +CONFIG_CHR_DEV_SG=y +CONFIG_BLK_DEV_BSG=y +# CONFIG_CHR_DEV_SCH is not set +CONFIG_SCSI_CONSTANTS=y +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set + +# +# SCSI Transports +# +CONFIG_SCSI_SPI_ATTRS=y +# CONFIG_SCSI_FC_ATTRS is not set +# CONFIG_SCSI_ISCSI_ATTRS is not set +# CONFIG_SCSI_SAS_ATTRS is not set +# CONFIG_SCSI_SAS_LIBSAS is not set +# CONFIG_SCSI_SRP_ATTRS is not set +# end of SCSI Transports + +CONFIG_SCSI_LOWLEVEL=y +# CONFIG_ISCSI_TCP is not set +# CONFIG_ISCSI_BOOT_SYSFS is not set +# CONFIG_SCSI_CXGB3_ISCSI is not set +# CONFIG_SCSI_CXGB4_ISCSI is not set +# CONFIG_SCSI_BNX2_ISCSI is not set +# CONFIG_BE2ISCSI is not set +# CONFIG_BLK_DEV_3W_XXXX_RAID is not set +# CONFIG_SCSI_HPSA is not set +# CONFIG_SCSI_3W_9XXX is not set +# CONFIG_SCSI_3W_SAS is not set +# CONFIG_SCSI_ACARD is not set +# CONFIG_SCSI_AACRAID is not set +# CONFIG_SCSI_AIC7XXX is not set +# CONFIG_SCSI_AIC79XX is not set +# CONFIG_SCSI_AIC94XX is not set +# CONFIG_SCSI_MVSAS is not set +# CONFIG_SCSI_MVUMI is not set +# CONFIG_SCSI_ADVANSYS is not set +# CONFIG_SCSI_ARCMSR is not set +# CONFIG_SCSI_ESAS2R is not set +# CONFIG_MEGARAID_NEWGEN is not set +# CONFIG_MEGARAID_LEGACY is not set +# CONFIG_MEGARAID_SAS is not set +# CONFIG_SCSI_MPT3SAS is not set +# CONFIG_SCSI_MPT2SAS is not set +# CONFIG_SCSI_MPI3MR is not set +# CONFIG_SCSI_SMARTPQI is not set +# CONFIG_SCSI_HPTIOP is not set +# CONFIG_SCSI_BUSLOGIC is not set +# CONFIG_SCSI_MYRB is not set +# CONFIG_SCSI_MYRS is not set +# CONFIG_VMWARE_PVSCSI is not set +# CONFIG_SCSI_SNIC is not set +# CONFIG_SCSI_DMX3191D is not set +# CONFIG_SCSI_FDOMAIN_PCI is not set +# CONFIG_SCSI_ISCI is not set +# CONFIG_SCSI_IPS is not set +# CONFIG_SCSI_INITIO is not set +# CONFIG_SCSI_INIA100 is not set +# CONFIG_SCSI_STEX is not set +# CONFIG_SCSI_SYM53C8XX_2 is not set +# CONFIG_SCSI_IPR is not set +# CONFIG_SCSI_QLOGIC_1280 is not set +# CONFIG_SCSI_QLA_ISCSI is not set +# CONFIG_SCSI_DC395x is not set +# CONFIG_SCSI_AM53C974 is not set +# CONFIG_SCSI_WD719X is not set +# CONFIG_SCSI_DEBUG is not set +# CONFIG_SCSI_PMCRAID is not set +# CONFIG_SCSI_PM8001 is not set +CONFIG_SCSI_VIRTIO=y +# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set +# CONFIG_SCSI_DH is not set +# end of SCSI device support + +CONFIG_ATA=y +CONFIG_SATA_HOST=y +CONFIG_PATA_TIMINGS=y +CONFIG_ATA_VERBOSE_ERROR=y +CONFIG_ATA_FORCE=y +CONFIG_ATA_ACPI=y +# CONFIG_SATA_ZPODD is not set +CONFIG_SATA_PMP=y + +# +# Controllers with non-SFF native interface +# +CONFIG_SATA_AHCI=y +CONFIG_SATA_MOBILE_LPM_POLICY=0 +# CONFIG_SATA_AHCI_PLATFORM is not set +# CONFIG_AHCI_DWC is not set +# CONFIG_SATA_INIC162X is not set +# CONFIG_SATA_ACARD_AHCI is not set +# CONFIG_SATA_SIL24 is not set +CONFIG_ATA_SFF=y + +# +# SFF controllers with custom DMA interface +# +# CONFIG_PDC_ADMA is not set +# CONFIG_SATA_QSTOR is not set +# CONFIG_SATA_SX4 is not set +CONFIG_ATA_BMDMA=y + +# +# SATA SFF controllers with BMDMA +# +CONFIG_ATA_PIIX=y +# CONFIG_SATA_DWC is not set +# CONFIG_SATA_MV is not set +# CONFIG_SATA_NV is not set +# CONFIG_SATA_PROMISE is not set +# CONFIG_SATA_SIL is not set +# CONFIG_SATA_SIS is not set +# CONFIG_SATA_SVW is not set +# CONFIG_SATA_ULI is not set +# CONFIG_SATA_VIA is not set +# CONFIG_SATA_VITESSE is not set + +# +# PATA SFF controllers with BMDMA +# +# CONFIG_PATA_ALI is not set +CONFIG_PATA_AMD=y +# CONFIG_PATA_ARTOP is not set +# CONFIG_PATA_ATIIXP is not set +# CONFIG_PATA_ATP867X is not set +# CONFIG_PATA_CMD64X is not set +# CONFIG_PATA_CYPRESS is not set +# CONFIG_PATA_EFAR is not set +# CONFIG_PATA_HPT366 is not set +# CONFIG_PATA_HPT37X is not set +# CONFIG_PATA_HPT3X2N is not set +# CONFIG_PATA_HPT3X3 is not set +# CONFIG_PATA_IT8213 is not set +# CONFIG_PATA_IT821X is not set +# CONFIG_PATA_JMICRON is not set +# CONFIG_PATA_MARVELL is not set +# CONFIG_PATA_NETCELL is not set +# CONFIG_PATA_NINJA32 is not set +# CONFIG_PATA_NS87415 is not set +CONFIG_PATA_OLDPIIX=y +# CONFIG_PATA_OPTIDMA is not set +# CONFIG_PATA_PDC2027X is not set +# CONFIG_PATA_PDC_OLD is not set +# CONFIG_PATA_RADISYS is not set +# CONFIG_PATA_RDC is not set +CONFIG_PATA_SCH=y +# CONFIG_PATA_SERVERWORKS is not set +# CONFIG_PATA_SIL680 is not set +# CONFIG_PATA_SIS is not set +# CONFIG_PATA_TOSHIBA is not set +# CONFIG_PATA_TRIFLEX is not set +# CONFIG_PATA_VIA is not set +# CONFIG_PATA_WINBOND is not set + +# +# PIO-only SFF controllers +# +# CONFIG_PATA_CMD640_PCI is not set +# CONFIG_PATA_MPIIX is not set +# CONFIG_PATA_NS87410 is not set +# CONFIG_PATA_OPTI is not set +# CONFIG_PATA_PCMCIA is not set +# CONFIG_PATA_RZ1000 is not set + +# +# Generic fallback / legacy drivers +# +# CONFIG_PATA_ACPI is not set +# CONFIG_ATA_GENERIC is not set +# CONFIG_PATA_LEGACY is not set +CONFIG_MD=y +CONFIG_BLK_DEV_MD=y +CONFIG_MD_AUTODETECT=y +# CONFIG_MD_LINEAR is not set +# CONFIG_MD_RAID0 is not set +# CONFIG_MD_RAID1 is not set +# CONFIG_MD_RAID10 is not set +# CONFIG_MD_RAID456 is not set +# CONFIG_MD_MULTIPATH is not set +# CONFIG_MD_FAULTY is not set +# CONFIG_BCACHE is not set +CONFIG_BLK_DEV_DM_BUILTIN=y +CONFIG_BLK_DEV_DM=y +# CONFIG_DM_DEBUG is not set +# CONFIG_DM_UNSTRIPED is not set +# CONFIG_DM_CRYPT is not set +# CONFIG_DM_SNAPSHOT is not set +# CONFIG_DM_THIN_PROVISIONING is not set +# CONFIG_DM_CACHE is not set +# CONFIG_DM_WRITECACHE is not set +# CONFIG_DM_EBS is not set +# CONFIG_DM_ERA is not set +# CONFIG_DM_CLONE is not set +CONFIG_DM_MIRROR=y +# CONFIG_DM_LOG_USERSPACE is not set +# CONFIG_DM_RAID is not set +CONFIG_DM_ZERO=y +# CONFIG_DM_MULTIPATH is not set +# CONFIG_DM_DELAY is not set +# CONFIG_DM_DUST is not set +# CONFIG_DM_INIT is not set +# CONFIG_DM_UEVENT is not set +# CONFIG_DM_FLAKEY is not set +# CONFIG_DM_VERITY is not set +# CONFIG_DM_SWITCH is not set +# CONFIG_DM_LOG_WRITES is not set +# CONFIG_DM_INTEGRITY is not set +# CONFIG_DM_AUDIT is not set +# CONFIG_TARGET_CORE is not set +# CONFIG_FUSION is not set + +# +# IEEE 1394 (FireWire) support +# +# CONFIG_FIREWIRE is not set +# CONFIG_FIREWIRE_NOSY is not set +# end of IEEE 1394 (FireWire) support + +CONFIG_MACINTOSH_DRIVERS=y +CONFIG_MAC_EMUMOUSEBTN=y +CONFIG_NETDEVICES=y +CONFIG_MII=y +CONFIG_NET_CORE=y +# CONFIG_BONDING is not set +# CONFIG_DUMMY is not set +# CONFIG_WIREGUARD is not set +# CONFIG_EQUALIZER is not set +# CONFIG_NET_FC is not set +# CONFIG_NET_TEAM is not set +# CONFIG_MACVLAN is not set +# CONFIG_IPVLAN is not set +# CONFIG_VXLAN is not set +# CONFIG_GENEVE is not set +# CONFIG_BAREUDP is not set +# CONFIG_GTP is not set +# CONFIG_AMT is not set +# CONFIG_MACSEC is not set +CONFIG_NETCONSOLE=y +CONFIG_NETPOLL=y +CONFIG_NET_POLL_CONTROLLER=y +# CONFIG_TUN is not set +# CONFIG_TUN_VNET_CROSS_LE is not set +# CONFIG_VETH is not set +CONFIG_VIRTIO_NET=y +# CONFIG_NLMON is not set +# CONFIG_ARCNET is not set +CONFIG_ETHERNET=y +CONFIG_NET_VENDOR_3COM=y +# CONFIG_PCMCIA_3C574 is not set +# CONFIG_PCMCIA_3C589 is not set +# CONFIG_VORTEX is not set +# CONFIG_TYPHOON is not set +CONFIG_NET_VENDOR_ADAPTEC=y +# CONFIG_ADAPTEC_STARFIRE is not set +CONFIG_NET_VENDOR_AGERE=y +# CONFIG_ET131X is not set +CONFIG_NET_VENDOR_ALACRITECH=y +# CONFIG_SLICOSS is not set +CONFIG_NET_VENDOR_ALTEON=y +# CONFIG_ACENIC is not set +# CONFIG_ALTERA_TSE is not set +CONFIG_NET_VENDOR_AMAZON=y +# CONFIG_ENA_ETHERNET is not set +CONFIG_NET_VENDOR_AMD=y +# CONFIG_AMD8111_ETH is not set +# CONFIG_PCNET32 is not set +# CONFIG_PCMCIA_NMCLAN is not set +# CONFIG_AMD_XGBE is not set +CONFIG_NET_VENDOR_AQUANTIA=y +# CONFIG_AQTION is not set +CONFIG_NET_VENDOR_ARC=y +CONFIG_NET_VENDOR_ASIX=y +CONFIG_NET_VENDOR_ATHEROS=y +# CONFIG_ATL2 is not set +# CONFIG_ATL1 is not set +# CONFIG_ATL1E is not set +# CONFIG_ATL1C is not set +# CONFIG_ALX is not set +# CONFIG_CX_ECAT is not set +CONFIG_NET_VENDOR_BROADCOM=y +# CONFIG_B44 is not set +# CONFIG_BCMGENET is not set +# CONFIG_BNX2 is not set +# CONFIG_CNIC is not set +CONFIG_TIGON3=y +CONFIG_TIGON3_HWMON=y +# CONFIG_BNX2X is not set +# CONFIG_SYSTEMPORT is not set +# CONFIG_BNXT is not set +CONFIG_NET_VENDOR_CADENCE=y +CONFIG_NET_VENDOR_CAVIUM=y +# CONFIG_THUNDER_NIC_PF is not set +# CONFIG_THUNDER_NIC_VF is not set +# CONFIG_THUNDER_NIC_BGX is not set +# CONFIG_THUNDER_NIC_RGX is not set +# CONFIG_CAVIUM_PTP is not set +# CONFIG_LIQUIDIO is not set +# CONFIG_LIQUIDIO_VF is not set +CONFIG_NET_VENDOR_CHELSIO=y +# CONFIG_CHELSIO_T1 is not set +# CONFIG_CHELSIO_T3 is not set +# CONFIG_CHELSIO_T4 is not set +# CONFIG_CHELSIO_T4VF is not set +CONFIG_NET_VENDOR_CISCO=y +# CONFIG_ENIC is not set +CONFIG_NET_VENDOR_CORTINA=y +CONFIG_NET_VENDOR_DAVICOM=y +# CONFIG_DNET is not set +CONFIG_NET_VENDOR_DEC=y +CONFIG_NET_TULIP=y +# CONFIG_DE2104X is not set +# CONFIG_TULIP is not set +# CONFIG_WINBOND_840 is not set +# CONFIG_DM9102 is not set +# CONFIG_ULI526X is not set +# CONFIG_PCMCIA_XIRCOM is not set +CONFIG_NET_VENDOR_DLINK=y +# CONFIG_DL2K is not set +# CONFIG_SUNDANCE is not set +CONFIG_NET_VENDOR_EMULEX=y +# CONFIG_BE2NET is not set +CONFIG_NET_VENDOR_ENGLEDER=y +# CONFIG_TSNEP is not set +CONFIG_NET_VENDOR_EZCHIP=y +CONFIG_NET_VENDOR_FUJITSU=y +# CONFIG_PCMCIA_FMVJ18X is not set +CONFIG_NET_VENDOR_FUNGIBLE=y +# CONFIG_FUN_ETH is not set +CONFIG_NET_VENDOR_GOOGLE=y +# CONFIG_GVE is not set +CONFIG_NET_VENDOR_HUAWEI=y +# CONFIG_HINIC is not set +CONFIG_NET_VENDOR_I825XX=y +CONFIG_NET_VENDOR_INTEL=y +CONFIG_E100=y +CONFIG_E1000=y +CONFIG_E1000E=y +CONFIG_E1000E_HWTS=y +# CONFIG_IGB is not set +# CONFIG_IGBVF is not set +# CONFIG_IXGB is not set +# CONFIG_IXGBE is not set +# CONFIG_IXGBEVF is not set +# CONFIG_I40E is not set +# CONFIG_I40EVF is not set +# CONFIG_ICE is not set +# CONFIG_FM10K is not set +# CONFIG_IGC is not set +CONFIG_NET_VENDOR_WANGXUN=y +# CONFIG_NGBE is not set +# CONFIG_TXGBE is not set +# CONFIG_JME is not set +CONFIG_NET_VENDOR_LITEX=y +CONFIG_NET_VENDOR_MARVELL=y +# CONFIG_MVMDIO is not set +# CONFIG_SKGE is not set +CONFIG_SKY2=y +# CONFIG_SKY2_DEBUG is not set +# CONFIG_OCTEON_EP is not set +CONFIG_NET_VENDOR_MELLANOX=y +# CONFIG_MLX4_EN is not set +# CONFIG_MLX5_CORE is not set +# CONFIG_MLXSW_CORE is not set +# CONFIG_MLXFW is not set +CONFIG_NET_VENDOR_MICREL=y +# CONFIG_KS8842 is not set +# CONFIG_KS8851_MLL is not set +# CONFIG_KSZ884X_PCI is not set +CONFIG_NET_VENDOR_MICROCHIP=y +# CONFIG_LAN743X is not set +CONFIG_NET_VENDOR_MICROSEMI=y +CONFIG_NET_VENDOR_MICROSOFT=y +CONFIG_NET_VENDOR_MYRI=y +# CONFIG_MYRI10GE is not set +# CONFIG_FEALNX is not set +CONFIG_NET_VENDOR_NI=y +# CONFIG_NI_XGE_MANAGEMENT_ENET is not set +CONFIG_NET_VENDOR_NATSEMI=y +# CONFIG_NATSEMI is not set +# CONFIG_NS83820 is not set +CONFIG_NET_VENDOR_NETERION=y +# CONFIG_S2IO is not set +CONFIG_NET_VENDOR_NETRONOME=y +# CONFIG_NFP is not set +CONFIG_NET_VENDOR_8390=y +# CONFIG_PCMCIA_AXNET is not set +# CONFIG_NE2K_PCI is not set +# CONFIG_PCMCIA_PCNET is not set +CONFIG_NET_VENDOR_NVIDIA=y +CONFIG_FORCEDETH=y +CONFIG_NET_VENDOR_OKI=y +# CONFIG_ETHOC is not set +CONFIG_NET_VENDOR_PACKET_ENGINES=y +# CONFIG_HAMACHI is not set +# CONFIG_YELLOWFIN is not set +CONFIG_NET_VENDOR_PENSANDO=y +# CONFIG_IONIC is not set +CONFIG_NET_VENDOR_QLOGIC=y +# CONFIG_QLA3XXX is not set +# CONFIG_QLCNIC is not set +# CONFIG_NETXEN_NIC is not set +# CONFIG_QED is not set +CONFIG_NET_VENDOR_BROCADE=y +# CONFIG_BNA is not set +CONFIG_NET_VENDOR_QUALCOMM=y +# CONFIG_QCOM_EMAC is not set +# CONFIG_RMNET is not set +CONFIG_NET_VENDOR_RDC=y +# CONFIG_R6040 is not set +CONFIG_NET_VENDOR_REALTEK=y +# CONFIG_8139CP is not set +CONFIG_8139TOO=y +CONFIG_8139TOO_PIO=y +# CONFIG_8139TOO_TUNE_TWISTER is not set +# CONFIG_8139TOO_8129 is not set +# CONFIG_8139_OLD_RX_RESET is not set +CONFIG_R8169=y +CONFIG_NET_VENDOR_RENESAS=y +CONFIG_NET_VENDOR_ROCKER=y +CONFIG_NET_VENDOR_SAMSUNG=y +# CONFIG_SXGBE_ETH is not set +CONFIG_NET_VENDOR_SEEQ=y +CONFIG_NET_VENDOR_SILAN=y +# CONFIG_SC92031 is not set +CONFIG_NET_VENDOR_SIS=y +# CONFIG_SIS900 is not set +# CONFIG_SIS190 is not set +CONFIG_NET_VENDOR_SOLARFLARE=y +# CONFIG_SFC is not set +# CONFIG_SFC_FALCON is not set +# CONFIG_SFC_SIENA is not set +CONFIG_NET_VENDOR_SMSC=y +# CONFIG_PCMCIA_SMC91C92 is not set +# CONFIG_EPIC100 is not set +# CONFIG_SMSC911X is not set +# CONFIG_SMSC9420 is not set +CONFIG_NET_VENDOR_SOCIONEXT=y +CONFIG_NET_VENDOR_STMICRO=y +# CONFIG_STMMAC_ETH is not set +CONFIG_NET_VENDOR_SUN=y +# CONFIG_HAPPYMEAL is not set +# CONFIG_SUNGEM is not set +# CONFIG_CASSINI is not set +# CONFIG_NIU is not set +CONFIG_NET_VENDOR_SYNOPSYS=y +# CONFIG_DWC_XLGMAC is not set +CONFIG_NET_VENDOR_TEHUTI=y +# CONFIG_TEHUTI is not set +CONFIG_NET_VENDOR_TI=y +# CONFIG_TI_CPSW_PHY_SEL is not set +# CONFIG_TLAN is not set +CONFIG_NET_VENDOR_VERTEXCOM=y +CONFIG_NET_VENDOR_VIA=y +# CONFIG_VIA_RHINE is not set +# CONFIG_VIA_VELOCITY is not set +CONFIG_NET_VENDOR_WIZNET=y +# CONFIG_WIZNET_W5100 is not set +# CONFIG_WIZNET_W5300 is not set +CONFIG_NET_VENDOR_XILINX=y +# CONFIG_XILINX_EMACLITE is not set +# CONFIG_XILINX_AXI_EMAC is not set +# CONFIG_XILINX_LL_TEMAC is not set +CONFIG_NET_VENDOR_XIRCOM=y +# CONFIG_PCMCIA_XIRC2PS is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_NET_SB1000 is not set +CONFIG_PHYLIB=y +CONFIG_SWPHY=y +# CONFIG_LED_TRIGGER_PHY is not set +CONFIG_FIXED_PHY=y + +# +# MII PHY device drivers +# +# CONFIG_AMD_PHY is not set +# CONFIG_ADIN_PHY is not set +# CONFIG_ADIN1100_PHY is not set +# CONFIG_AQUANTIA_PHY is not set +# CONFIG_AX88796B_PHY is not set +# CONFIG_BROADCOM_PHY is not set +# CONFIG_BCM54140_PHY is not set +# CONFIG_BCM7XXX_PHY is not set +# CONFIG_BCM84881_PHY is not set +# CONFIG_BCM87XX_PHY is not set +# CONFIG_CICADA_PHY is not set +# CONFIG_CORTINA_PHY is not set +# CONFIG_DAVICOM_PHY is not set +# CONFIG_ICPLUS_PHY is not set +# CONFIG_LXT_PHY is not set +# CONFIG_INTEL_XWAY_PHY is not set +# CONFIG_LSI_ET1011C_PHY is not set +# CONFIG_MARVELL_PHY is not set +# CONFIG_MARVELL_10G_PHY is not set +# CONFIG_MARVELL_88X2222_PHY is not set +# CONFIG_MAXLINEAR_GPHY is not set +# CONFIG_MEDIATEK_GE_PHY is not set +# CONFIG_MICREL_PHY is not set +# CONFIG_MICROCHIP_PHY is not set +# CONFIG_MICROCHIP_T1_PHY is not set +# CONFIG_MICROSEMI_PHY is not set +# CONFIG_MOTORCOMM_PHY is not set +# CONFIG_NATIONAL_PHY is not set +# CONFIG_NXP_C45_TJA11XX_PHY is not set +# CONFIG_NXP_TJA11XX_PHY is not set +# CONFIG_QSEMI_PHY is not set +CONFIG_REALTEK_PHY=y +# CONFIG_RENESAS_PHY is not set +# CONFIG_ROCKCHIP_PHY is not set +# CONFIG_SMSC_PHY is not set +# CONFIG_STE10XP is not set +# CONFIG_TERANETICS_PHY is not set +# CONFIG_DP83822_PHY is not set +# CONFIG_DP83TC811_PHY is not set +# CONFIG_DP83848_PHY is not set +# CONFIG_DP83867_PHY is not set +# CONFIG_DP83869_PHY is not set +# CONFIG_DP83TD510_PHY is not set +# CONFIG_VITESSE_PHY is not set +# CONFIG_XILINX_GMII2RGMII is not set +# CONFIG_PSE_CONTROLLER is not set +CONFIG_MDIO_DEVICE=y +CONFIG_MDIO_BUS=y +CONFIG_FWNODE_MDIO=y +CONFIG_ACPI_MDIO=y +CONFIG_MDIO_DEVRES=y +# CONFIG_MDIO_BITBANG is not set +# CONFIG_MDIO_BCM_UNIMAC is not set +# CONFIG_MDIO_MVUSB is not set +# CONFIG_MDIO_THUNDER is not set + +# +# MDIO Multiplexers +# + +# +# PCS device drivers +# +# end of PCS device drivers + +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +CONFIG_USB_NET_DRIVERS=y +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +# CONFIG_USB_RTL8152 is not set +# CONFIG_USB_LAN78XX is not set +# CONFIG_USB_USBNET is not set +# CONFIG_USB_HSO is not set +# CONFIG_USB_IPHETH is not set +CONFIG_WLAN=y +CONFIG_WLAN_VENDOR_ADMTEK=y +# CONFIG_ADM8211 is not set +CONFIG_WLAN_VENDOR_ATH=y +# CONFIG_ATH_DEBUG is not set +# CONFIG_ATH5K is not set +# CONFIG_ATH5K_PCI is not set +# CONFIG_ATH9K is not set +# CONFIG_ATH9K_HTC is not set +# CONFIG_CARL9170 is not set +# CONFIG_ATH6KL is not set +# CONFIG_AR5523 is not set +# CONFIG_WIL6210 is not set +# CONFIG_ATH10K is not set +# CONFIG_WCN36XX is not set +CONFIG_WLAN_VENDOR_ATMEL=y +# CONFIG_ATMEL is not set +# CONFIG_AT76C50X_USB is not set +CONFIG_WLAN_VENDOR_BROADCOM=y +# CONFIG_B43 is not set +# CONFIG_B43LEGACY is not set +# CONFIG_BRCMSMAC is not set +# CONFIG_BRCMFMAC is not set +CONFIG_WLAN_VENDOR_CISCO=y +# CONFIG_AIRO is not set +# CONFIG_AIRO_CS is not set +CONFIG_WLAN_VENDOR_INTEL=y +# CONFIG_IPW2100 is not set +# CONFIG_IPW2200 is not set +# CONFIG_IWL4965 is not set +# CONFIG_IWL3945 is not set +# CONFIG_IWLWIFI is not set +CONFIG_WLAN_VENDOR_INTERSIL=y +# CONFIG_HOSTAP is not set +# CONFIG_HERMES is not set +# CONFIG_P54_COMMON is not set +CONFIG_WLAN_VENDOR_MARVELL=y +# CONFIG_LIBERTAS is not set +# CONFIG_LIBERTAS_THINFIRM is not set +# CONFIG_MWIFIEX is not set +# CONFIG_MWL8K is not set +CONFIG_WLAN_VENDOR_MEDIATEK=y +# CONFIG_MT7601U is not set +# CONFIG_MT76x0U is not set +# CONFIG_MT76x0E is not set +# CONFIG_MT76x2E is not set +# CONFIG_MT76x2U is not set +# CONFIG_MT7603E is not set +# CONFIG_MT7615E is not set +# CONFIG_MT7663U is not set +# CONFIG_MT7915E is not set +# CONFIG_MT7921E is not set +# CONFIG_MT7921U is not set +CONFIG_WLAN_VENDOR_MICROCHIP=y +CONFIG_WLAN_VENDOR_PURELIFI=y +# CONFIG_PLFXLC is not set +CONFIG_WLAN_VENDOR_RALINK=y +# CONFIG_RT2X00 is not set +CONFIG_WLAN_VENDOR_REALTEK=y +# CONFIG_RTL8180 is not set +# CONFIG_RTL8187 is not set +CONFIG_RTL_CARDS=y +# CONFIG_RTL8192CE is not set +# CONFIG_RTL8192SE is not set +# CONFIG_RTL8192DE is not set +# CONFIG_RTL8723AE is not set +# CONFIG_RTL8723BE is not set +# CONFIG_RTL8188EE is not set +# CONFIG_RTL8192EE is not set +# CONFIG_RTL8821AE is not set +# CONFIG_RTL8192CU is not set +# CONFIG_RTL8XXXU is not set +# CONFIG_RTW88 is not set +# CONFIG_RTW89 is not set +CONFIG_WLAN_VENDOR_RSI=y +# CONFIG_RSI_91X is not set +CONFIG_WLAN_VENDOR_SILABS=y +CONFIG_WLAN_VENDOR_ST=y +# CONFIG_CW1200 is not set +CONFIG_WLAN_VENDOR_TI=y +# CONFIG_WL1251 is not set +# CONFIG_WL12XX is not set +# CONFIG_WL18XX is not set +# CONFIG_WLCORE is not set +CONFIG_WLAN_VENDOR_ZYDAS=y +# CONFIG_USB_ZD1201 is not set +# CONFIG_ZD1211RW is not set +CONFIG_WLAN_VENDOR_QUANTENNA=y +# CONFIG_QTNFMAC_PCIE is not set +# CONFIG_PCMCIA_RAYCS is not set +# CONFIG_PCMCIA_WL3501 is not set +# CONFIG_MAC80211_HWSIM is not set +# CONFIG_USB_NET_RNDIS_WLAN is not set +# CONFIG_VIRT_WIFI is not set +# CONFIG_WAN is not set + +# +# Wireless WAN +# +# CONFIG_WWAN is not set +# end of Wireless WAN + +# CONFIG_VMXNET3 is not set +# CONFIG_FUJITSU_ES is not set +# CONFIG_NETDEVSIM is not set +CONFIG_NET_FAILOVER=y +# CONFIG_ISDN is not set + +# +# Input device support +# +CONFIG_INPUT=y +CONFIG_INPUT_LEDS=y +CONFIG_INPUT_FF_MEMLESS=y +CONFIG_INPUT_SPARSEKMAP=y +# CONFIG_INPUT_MATRIXKMAP is not set +CONFIG_INPUT_VIVALDIFMAP=y + +# +# Userland interfaces +# +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +# CONFIG_KEYBOARD_ADP5588 is not set +# CONFIG_KEYBOARD_ADP5589 is not set +CONFIG_KEYBOARD_ATKBD=y +# CONFIG_KEYBOARD_QT1050 is not set +# CONFIG_KEYBOARD_QT1070 is not set +# CONFIG_KEYBOARD_QT2160 is not set +# CONFIG_KEYBOARD_DLINK_DIR685 is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_TCA6416 is not set +# CONFIG_KEYBOARD_TCA8418 is not set +# CONFIG_KEYBOARD_LM8323 is not set +# CONFIG_KEYBOARD_LM8333 is not set +# CONFIG_KEYBOARD_MAX7359 is not set +# CONFIG_KEYBOARD_MCS is not set +# CONFIG_KEYBOARD_MPR121 is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_OPENCORES is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_CYPRESS_SF is not set +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=y +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_BYD=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y +CONFIG_MOUSE_PS2_CYPRESS=y +CONFIG_MOUSE_PS2_LIFEBOOK=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +# CONFIG_MOUSE_PS2_ELANTECH is not set +# CONFIG_MOUSE_PS2_SENTELIC is not set +# CONFIG_MOUSE_PS2_TOUCHKIT is not set +CONFIG_MOUSE_PS2_FOCALTECH=y +# CONFIG_MOUSE_PS2_VMMOUSE is not set +CONFIG_MOUSE_PS2_SMBUS=y +# CONFIG_MOUSE_SERIAL is not set +# CONFIG_MOUSE_APPLETOUCH is not set +# CONFIG_MOUSE_BCM5974 is not set +# CONFIG_MOUSE_CYAPA is not set +# CONFIG_MOUSE_ELAN_I2C is not set +# CONFIG_MOUSE_VSXXXAA is not set +# CONFIG_MOUSE_SYNAPTICS_I2C is not set +# CONFIG_MOUSE_SYNAPTICS_USB is not set +CONFIG_INPUT_JOYSTICK=y +# CONFIG_JOYSTICK_ANALOG is not set +# CONFIG_JOYSTICK_A3D is not set +# CONFIG_JOYSTICK_ADI is not set +# CONFIG_JOYSTICK_COBRA is not set +# CONFIG_JOYSTICK_GF2K is not set +# CONFIG_JOYSTICK_GRIP is not set +# CONFIG_JOYSTICK_GRIP_MP is not set +# CONFIG_JOYSTICK_GUILLEMOT is not set +# CONFIG_JOYSTICK_INTERACT is not set +# CONFIG_JOYSTICK_SIDEWINDER is not set +# CONFIG_JOYSTICK_TMDC is not set +# CONFIG_JOYSTICK_IFORCE is not set +# CONFIG_JOYSTICK_WARRIOR is not set +# CONFIG_JOYSTICK_MAGELLAN is not set +# CONFIG_JOYSTICK_SPACEORB is not set +# CONFIG_JOYSTICK_SPACEBALL is not set +# CONFIG_JOYSTICK_STINGER is not set +# CONFIG_JOYSTICK_TWIDJOY is not set +# CONFIG_JOYSTICK_ZHENHUA is not set +# CONFIG_JOYSTICK_AS5011 is not set +# CONFIG_JOYSTICK_JOYDUMP is not set +# CONFIG_JOYSTICK_XPAD is not set +# CONFIG_JOYSTICK_PXRC is not set +# CONFIG_JOYSTICK_QWIIC is not set +# CONFIG_JOYSTICK_FSIA6B is not set +# CONFIG_JOYSTICK_SENSEHAT is not set +CONFIG_INPUT_TABLET=y +# CONFIG_TABLET_USB_ACECAD is not set +# CONFIG_TABLET_USB_AIPTEK is not set +# CONFIG_TABLET_USB_HANWANG is not set +# CONFIG_TABLET_USB_KBTAB is not set +# CONFIG_TABLET_USB_PEGASUS is not set +# CONFIG_TABLET_SERIAL_WACOM4 is not set +CONFIG_INPUT_TOUCHSCREEN=y +# CONFIG_TOUCHSCREEN_AD7879 is not set +# CONFIG_TOUCHSCREEN_ATMEL_MXT is not set +# CONFIG_TOUCHSCREEN_BU21013 is not set +# CONFIG_TOUCHSCREEN_BU21029 is not set +# CONFIG_TOUCHSCREEN_CHIPONE_ICN8505 is not set +# CONFIG_TOUCHSCREEN_CY8CTMA140 is not set +# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set +# CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set +# CONFIG_TOUCHSCREEN_DYNAPRO is not set +# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set +# CONFIG_TOUCHSCREEN_EETI is not set +# CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set +# CONFIG_TOUCHSCREEN_EXC3000 is not set +# CONFIG_TOUCHSCREEN_FUJITSU is not set +# CONFIG_TOUCHSCREEN_HIDEEP is not set +# CONFIG_TOUCHSCREEN_HYCON_HY46XX is not set +# CONFIG_TOUCHSCREEN_ILI210X is not set +# CONFIG_TOUCHSCREEN_ILITEK is not set +# CONFIG_TOUCHSCREEN_S6SY761 is not set +# CONFIG_TOUCHSCREEN_GUNZE is not set +# CONFIG_TOUCHSCREEN_EKTF2127 is not set +# CONFIG_TOUCHSCREEN_ELAN is not set +# CONFIG_TOUCHSCREEN_ELO is not set +# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set +# CONFIG_TOUCHSCREEN_WACOM_I2C is not set +# CONFIG_TOUCHSCREEN_MAX11801 is not set +# CONFIG_TOUCHSCREEN_MCS5000 is not set +# CONFIG_TOUCHSCREEN_MMS114 is not set +# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set +# CONFIG_TOUCHSCREEN_MTOUCH is not set +# CONFIG_TOUCHSCREEN_IMAGIS is not set +# CONFIG_TOUCHSCREEN_INEXIO is not set +# CONFIG_TOUCHSCREEN_MK712 is not set +# CONFIG_TOUCHSCREEN_PENMOUNT is not set +# CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set +# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set +# CONFIG_TOUCHSCREEN_TOUCHWIN is not set +# CONFIG_TOUCHSCREEN_PIXCIR is not set +# CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set +# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set +# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set +# CONFIG_TOUCHSCREEN_TSC_SERIO is not set +# CONFIG_TOUCHSCREEN_TSC2004 is not set +# CONFIG_TOUCHSCREEN_TSC2007 is not set +# CONFIG_TOUCHSCREEN_SILEAD is not set +# CONFIG_TOUCHSCREEN_ST1232 is not set +# CONFIG_TOUCHSCREEN_STMFTS is not set +# CONFIG_TOUCHSCREEN_SX8654 is not set +# CONFIG_TOUCHSCREEN_TPS6507X is not set +# CONFIG_TOUCHSCREEN_ZET6223 is not set +# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set +# CONFIG_TOUCHSCREEN_IQS5XX is not set +# CONFIG_TOUCHSCREEN_ZINITIX is not set +CONFIG_INPUT_MISC=y +# CONFIG_INPUT_AD714X is not set +# CONFIG_INPUT_BMA150 is not set +# CONFIG_INPUT_E3X0_BUTTON is not set +# CONFIG_INPUT_PCSPKR is not set +# CONFIG_INPUT_MMA8450 is not set +# CONFIG_INPUT_APANEL is not set +# CONFIG_INPUT_ATLAS_BTNS is not set +# CONFIG_INPUT_ATI_REMOTE2 is not set +# CONFIG_INPUT_KEYSPAN_REMOTE is not set +# CONFIG_INPUT_KXTJ9 is not set +# CONFIG_INPUT_POWERMATE is not set +# CONFIG_INPUT_YEALINK is not set +# CONFIG_INPUT_CM109 is not set +# CONFIG_INPUT_UINPUT is not set +# CONFIG_INPUT_PCF8574 is not set +# CONFIG_INPUT_DA7280_HAPTICS is not set +# CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_IMS_PCU is not set +# CONFIG_INPUT_IQS269A is not set +# CONFIG_INPUT_IQS626A is not set +# CONFIG_INPUT_IQS7222 is not set +# CONFIG_INPUT_CMA3000 is not set +# CONFIG_INPUT_IDEAPAD_SLIDEBAR is not set +# CONFIG_INPUT_DRV2665_HAPTICS is not set +# CONFIG_INPUT_DRV2667_HAPTICS is not set +# CONFIG_RMI4_CORE is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y +CONFIG_SERIO_I8042=y +CONFIG_SERIO_SERPORT=y +# CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_PCIPS2 is not set +CONFIG_SERIO_LIBPS2=y +# CONFIG_SERIO_RAW is not set +# CONFIG_SERIO_ALTERA_PS2 is not set +# CONFIG_SERIO_PS2MULT is not set +# CONFIG_SERIO_ARC_PS2 is not set +# CONFIG_USERIO is not set +# CONFIG_GAMEPORT is not set +# end of Hardware I/O ports +# end of Input device support + +# +# Character devices +# +CONFIG_TTY=y +CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y +CONFIG_HW_CONSOLE=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set +CONFIG_UNIX98_PTYS=y +# CONFIG_LEGACY_PTYS is not set +CONFIG_LDISC_AUTOLOAD=y + +# +# Serial drivers +# +CONFIG_SERIAL_EARLYCON=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y +CONFIG_SERIAL_8250_PNP=y +# CONFIG_SERIAL_8250_16550A_VARIANTS is not set +# CONFIG_SERIAL_8250_FINTEK is not set +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_DMA=y +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_EXAR=y +# CONFIG_SERIAL_8250_CS is not set +CONFIG_SERIAL_8250_NR_UARTS=32 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_8250_DETECT_IRQ=y +CONFIG_SERIAL_8250_RSA=y +CONFIG_SERIAL_8250_DWLIB=y +# CONFIG_SERIAL_8250_DW is not set +# CONFIG_SERIAL_8250_RT288X is not set +CONFIG_SERIAL_8250_LPSS=y +CONFIG_SERIAL_8250_MID=y +CONFIG_SERIAL_8250_PERICOM=y + +# +# Non-8250 serial port support +# +# CONFIG_SERIAL_UARTLITE is not set +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_JSM is not set +# CONFIG_SERIAL_LANTIQ is not set +# CONFIG_SERIAL_SCCNXP is not set +# CONFIG_SERIAL_SC16IS7XX is not set +# CONFIG_SERIAL_ALTERA_JTAGUART is not set +# CONFIG_SERIAL_ALTERA_UART is not set +# CONFIG_SERIAL_ARC is not set +# CONFIG_SERIAL_RP2 is not set +# CONFIG_SERIAL_FSL_LPUART is not set +# CONFIG_SERIAL_FSL_LINFLEXUART is not set +# end of Serial drivers + +CONFIG_SERIAL_NONSTANDARD=y +# CONFIG_MOXA_INTELLIO is not set +# CONFIG_MOXA_SMARTIO is not set +# CONFIG_SYNCLINK_GT is not set +# CONFIG_N_HDLC is not set +# CONFIG_N_GSM is not set +# CONFIG_NOZOMI is not set +# CONFIG_NULL_TTY is not set +CONFIG_HVC_DRIVER=y +# CONFIG_SERIAL_DEV_BUS is not set +CONFIG_VIRTIO_CONSOLE=y +# CONFIG_IPMI_HANDLER is not set +CONFIG_HW_RANDOM=y +# CONFIG_HW_RANDOM_TIMERIOMEM is not set +# CONFIG_HW_RANDOM_INTEL is not set +# CONFIG_HW_RANDOM_AMD is not set +# CONFIG_HW_RANDOM_BA431 is not set +CONFIG_HW_RANDOM_VIA=y +# CONFIG_HW_RANDOM_VIRTIO is not set +# CONFIG_HW_RANDOM_XIPHERA is not set +# CONFIG_APPLICOM is not set + +# +# PCMCIA character devices +# +# CONFIG_SYNCLINK_CS is not set +# CONFIG_CARDMAN_4000 is not set +# CONFIG_CARDMAN_4040 is not set +# CONFIG_SCR24X is not set +# CONFIG_IPWIRELESS is not set +# end of PCMCIA character devices + +# CONFIG_MWAVE is not set +CONFIG_DEVMEM=y +CONFIG_NVRAM=y +CONFIG_DEVPORT=y +CONFIG_HPET=y +# CONFIG_HPET_MMAP is not set +# CONFIG_HANGCHECK_TIMER is not set +# CONFIG_TCG_TPM is not set +# CONFIG_TELCLOCK is not set +# CONFIG_XILLYBUS is not set +# CONFIG_XILLYUSB is not set +CONFIG_RANDOM_TRUST_CPU=y +CONFIG_RANDOM_TRUST_BOOTLOADER=y +# end of Character devices + +# +# I2C support +# +CONFIG_I2C=y +CONFIG_ACPI_I2C_OPREGION=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_COMPAT=y +# CONFIG_I2C_CHARDEV is not set +# CONFIG_I2C_MUX is not set +CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_SMBUS=y +CONFIG_I2C_ALGOBIT=y + +# +# I2C Hardware Bus support +# + +# +# PC SMBus host controller drivers +# +# CONFIG_I2C_ALI1535 is not set +# CONFIG_I2C_ALI1563 is not set +# CONFIG_I2C_ALI15X3 is not set +# CONFIG_I2C_AMD756 is not set +# CONFIG_I2C_AMD8111 is not set +# CONFIG_I2C_AMD_MP2 is not set +CONFIG_I2C_I801=y +# CONFIG_I2C_ISCH is not set +# CONFIG_I2C_ISMT is not set +# CONFIG_I2C_PIIX4 is not set +# CONFIG_I2C_NFORCE2 is not set +# CONFIG_I2C_NVIDIA_GPU is not set +# CONFIG_I2C_SIS5595 is not set +# CONFIG_I2C_SIS630 is not set +# CONFIG_I2C_SIS96X is not set +# CONFIG_I2C_VIA is not set +# CONFIG_I2C_VIAPRO is not set + +# +# ACPI drivers +# +# CONFIG_I2C_SCMI is not set + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +# CONFIG_I2C_DESIGNWARE_PCI is not set +# CONFIG_I2C_OCORES is not set +# CONFIG_I2C_PCA_PLATFORM is not set +# CONFIG_I2C_SIMTEC is not set +# CONFIG_I2C_XILINX is not set + +# +# External I2C/SMBus adapter drivers +# +# CONFIG_I2C_DIOLAN_U2C is not set +# CONFIG_I2C_CP2615 is not set +# CONFIG_I2C_PCI1XXXX is not set +# CONFIG_I2C_ROBOTFUZZ_OSIF is not set +# CONFIG_I2C_TAOS_EVM is not set +# CONFIG_I2C_TINY_USB is not set + +# +# Other I2C/SMBus bus drivers +# +# CONFIG_I2C_MLXCPLD is not set +# CONFIG_I2C_VIRTIO is not set +# end of I2C Hardware Bus support + +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_SLAVE is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# end of I2C support + +# CONFIG_I3C is not set +# CONFIG_SPI is not set +# CONFIG_SPMI is not set +# CONFIG_HSI is not set +CONFIG_PPS=y +# CONFIG_PPS_DEBUG is not set + +# +# PPS clients support +# +# CONFIG_PPS_CLIENT_KTIMER is not set +# CONFIG_PPS_CLIENT_LDISC is not set +# CONFIG_PPS_CLIENT_GPIO is not set + +# +# PPS generators support +# + +# +# PTP clock support +# +CONFIG_PTP_1588_CLOCK=y +CONFIG_PTP_1588_CLOCK_OPTIONAL=y + +# +# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. +# +CONFIG_PTP_1588_CLOCK_KVM=y +# CONFIG_PTP_1588_CLOCK_IDT82P33 is not set +# CONFIG_PTP_1588_CLOCK_IDTCM is not set +# CONFIG_PTP_1588_CLOCK_VMW is not set +# end of PTP clock support + +# CONFIG_PINCTRL is not set +# CONFIG_GPIOLIB is not set +# CONFIG_W1 is not set +# CONFIG_POWER_RESET is not set +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +CONFIG_POWER_SUPPLY_HWMON=y +# CONFIG_PDA_POWER is not set +# CONFIG_IP5XXX_POWER is not set +# CONFIG_TEST_POWER is not set +# CONFIG_CHARGER_ADP5061 is not set +# CONFIG_BATTERY_CW2015 is not set +# CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2781 is not set +# CONFIG_BATTERY_DS2782 is not set +# CONFIG_BATTERY_SAMSUNG_SDI is not set +# CONFIG_BATTERY_SBS is not set +# CONFIG_CHARGER_SBS is not set +# CONFIG_BATTERY_BQ27XXX is not set +# CONFIG_BATTERY_MAX17040 is not set +# CONFIG_BATTERY_MAX17042 is not set +# CONFIG_CHARGER_MAX8903 is not set +# CONFIG_CHARGER_LP8727 is not set +# CONFIG_CHARGER_LTC4162L is not set +# CONFIG_CHARGER_MAX77976 is not set +# CONFIG_CHARGER_BQ2415X is not set +# CONFIG_BATTERY_GAUGE_LTC2941 is not set +# CONFIG_BATTERY_GOLDFISH is not set +# CONFIG_BATTERY_RT5033 is not set +# CONFIG_CHARGER_BD99954 is not set +# CONFIG_BATTERY_UG3105 is not set +CONFIG_HWMON=y +# CONFIG_HWMON_DEBUG_CHIP is not set + +# +# Native drivers +# +# CONFIG_SENSORS_ABITUGURU is not set +# CONFIG_SENSORS_ABITUGURU3 is not set +# CONFIG_SENSORS_AD7414 is not set +# CONFIG_SENSORS_AD7418 is not set +# CONFIG_SENSORS_ADM1021 is not set +# CONFIG_SENSORS_ADM1025 is not set +# CONFIG_SENSORS_ADM1026 is not set +# CONFIG_SENSORS_ADM1029 is not set +# CONFIG_SENSORS_ADM1031 is not set +# CONFIG_SENSORS_ADM1177 is not set +# CONFIG_SENSORS_ADM9240 is not set +# CONFIG_SENSORS_ADT7410 is not set +# CONFIG_SENSORS_ADT7411 is not set +# CONFIG_SENSORS_ADT7462 is not set +# CONFIG_SENSORS_ADT7470 is not set +# CONFIG_SENSORS_ADT7475 is not set +# CONFIG_SENSORS_AHT10 is not set +# CONFIG_SENSORS_AQUACOMPUTER_D5NEXT is not set +# CONFIG_SENSORS_AS370 is not set +# CONFIG_SENSORS_ASC7621 is not set +# CONFIG_SENSORS_AXI_FAN_CONTROL is not set +# CONFIG_SENSORS_K8TEMP is not set +# CONFIG_SENSORS_K10TEMP is not set +# CONFIG_SENSORS_FAM15H_POWER is not set +# CONFIG_SENSORS_APPLESMC is not set +# CONFIG_SENSORS_ASB100 is not set +# CONFIG_SENSORS_ATXP1 is not set +# CONFIG_SENSORS_CORSAIR_CPRO is not set +# CONFIG_SENSORS_CORSAIR_PSU is not set +# CONFIG_SENSORS_DRIVETEMP is not set +# CONFIG_SENSORS_DS620 is not set +# CONFIG_SENSORS_DS1621 is not set +# CONFIG_SENSORS_DELL_SMM is not set +# CONFIG_SENSORS_I5K_AMB is not set +# CONFIG_SENSORS_F71805F is not set +# CONFIG_SENSORS_F71882FG is not set +# CONFIG_SENSORS_F75375S is not set +# CONFIG_SENSORS_FSCHMD is not set +# CONFIG_SENSORS_FTSTEUTATES is not set +# CONFIG_SENSORS_GL518SM is not set +# CONFIG_SENSORS_GL520SM is not set +# CONFIG_SENSORS_G760A is not set +# CONFIG_SENSORS_G762 is not set +# CONFIG_SENSORS_HIH6130 is not set +# CONFIG_SENSORS_I5500 is not set +# CONFIG_SENSORS_CORETEMP is not set +# CONFIG_SENSORS_IT87 is not set +# CONFIG_SENSORS_JC42 is not set +# CONFIG_SENSORS_POWR1220 is not set +# CONFIG_SENSORS_LINEAGE is not set +# CONFIG_SENSORS_LTC2945 is not set +# CONFIG_SENSORS_LTC2947_I2C is not set +# CONFIG_SENSORS_LTC2990 is not set +# CONFIG_SENSORS_LTC4151 is not set +# CONFIG_SENSORS_LTC4215 is not set +# CONFIG_SENSORS_LTC4222 is not set +# CONFIG_SENSORS_LTC4245 is not set +# CONFIG_SENSORS_LTC4260 is not set +# CONFIG_SENSORS_LTC4261 is not set +# CONFIG_SENSORS_MAX127 is not set +# CONFIG_SENSORS_MAX16065 is not set +# CONFIG_SENSORS_MAX1619 is not set +# CONFIG_SENSORS_MAX1668 is not set +# CONFIG_SENSORS_MAX197 is not set +# CONFIG_SENSORS_MAX31730 is not set +# CONFIG_SENSORS_MAX31760 is not set +# CONFIG_SENSORS_MAX6620 is not set +# CONFIG_SENSORS_MAX6621 is not set +# CONFIG_SENSORS_MAX6639 is not set +# CONFIG_SENSORS_MAX6642 is not set +# CONFIG_SENSORS_MAX6650 is not set +# CONFIG_SENSORS_MAX6697 is not set +# CONFIG_SENSORS_MAX31790 is not set +# CONFIG_SENSORS_MCP3021 is not set +# CONFIG_SENSORS_TC654 is not set +# CONFIG_SENSORS_TPS23861 is not set +# CONFIG_SENSORS_MR75203 is not set +# CONFIG_SENSORS_LM63 is not set +# CONFIG_SENSORS_LM73 is not set +# CONFIG_SENSORS_LM75 is not set +# CONFIG_SENSORS_LM77 is not set +# CONFIG_SENSORS_LM78 is not set +# CONFIG_SENSORS_LM80 is not set +# CONFIG_SENSORS_LM83 is not set +# CONFIG_SENSORS_LM85 is not set +# CONFIG_SENSORS_LM87 is not set +# CONFIG_SENSORS_LM90 is not set +# CONFIG_SENSORS_LM92 is not set +# CONFIG_SENSORS_LM93 is not set +# CONFIG_SENSORS_LM95234 is not set +# CONFIG_SENSORS_LM95241 is not set +# CONFIG_SENSORS_LM95245 is not set +# CONFIG_SENSORS_PC87360 is not set +# CONFIG_SENSORS_PC87427 is not set +# CONFIG_SENSORS_NCT6683 is not set +# CONFIG_SENSORS_NCT6775 is not set +# CONFIG_SENSORS_NCT6775_I2C is not set +# CONFIG_SENSORS_NCT7802 is not set +# CONFIG_SENSORS_NCT7904 is not set +# CONFIG_SENSORS_NPCM7XX is not set +# CONFIG_SENSORS_NZXT_KRAKEN2 is not set +# CONFIG_SENSORS_NZXT_SMART2 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_PMBUS is not set +# CONFIG_SENSORS_SBTSI is not set +# CONFIG_SENSORS_SBRMI is not set +# CONFIG_SENSORS_SHT21 is not set +# CONFIG_SENSORS_SHT3x is not set +# CONFIG_SENSORS_SHT4x is not set +# CONFIG_SENSORS_SHTC1 is not set +# CONFIG_SENSORS_SIS5595 is not set +# CONFIG_SENSORS_DME1737 is not set +# CONFIG_SENSORS_EMC1403 is not set +# CONFIG_SENSORS_EMC2103 is not set +# CONFIG_SENSORS_EMC2305 is not set +# CONFIG_SENSORS_EMC6W201 is not set +# CONFIG_SENSORS_SMSC47M1 is not set +# CONFIG_SENSORS_SMSC47M192 is not set +# CONFIG_SENSORS_SMSC47B397 is not set +# CONFIG_SENSORS_SCH5627 is not set +# CONFIG_SENSORS_SCH5636 is not set +# CONFIG_SENSORS_STTS751 is not set +# CONFIG_SENSORS_SMM665 is not set +# CONFIG_SENSORS_ADC128D818 is not set +# CONFIG_SENSORS_ADS7828 is not set +# CONFIG_SENSORS_AMC6821 is not set +# CONFIG_SENSORS_INA209 is not set +# CONFIG_SENSORS_INA2XX is not set +# CONFIG_SENSORS_INA238 is not set +# CONFIG_SENSORS_INA3221 is not set +# CONFIG_SENSORS_TC74 is not set +# CONFIG_SENSORS_THMC50 is not set +# CONFIG_SENSORS_TMP102 is not set +# CONFIG_SENSORS_TMP103 is not set +# CONFIG_SENSORS_TMP108 is not set +# CONFIG_SENSORS_TMP401 is not set +# CONFIG_SENSORS_TMP421 is not set +# CONFIG_SENSORS_TMP464 is not set +# CONFIG_SENSORS_TMP513 is not set +# CONFIG_SENSORS_VIA_CPUTEMP is not set +# CONFIG_SENSORS_VIA686A is not set +# CONFIG_SENSORS_VT1211 is not set +# CONFIG_SENSORS_VT8231 is not set +# CONFIG_SENSORS_W83773G is not set +# CONFIG_SENSORS_W83781D is not set +# CONFIG_SENSORS_W83791D is not set +# CONFIG_SENSORS_W83792D is not set +# CONFIG_SENSORS_W83793 is not set +# CONFIG_SENSORS_W83795 is not set +# CONFIG_SENSORS_W83L785TS is not set +# CONFIG_SENSORS_W83L786NG is not set +# CONFIG_SENSORS_W83627HF is not set +# CONFIG_SENSORS_W83627EHF is not set +# CONFIG_SENSORS_XGENE is not set + +# +# ACPI drivers +# +# CONFIG_SENSORS_ACPI_POWER is not set +# CONFIG_SENSORS_ATK0110 is not set +# CONFIG_SENSORS_ASUS_WMI is not set +# CONFIG_SENSORS_ASUS_EC is not set +CONFIG_THERMAL=y +# CONFIG_THERMAL_NETLINK is not set +# CONFIG_THERMAL_STATISTICS is not set +CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 +CONFIG_THERMAL_HWMON=y +CONFIG_THERMAL_WRITABLE_TRIPS=y +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y +# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set +# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set +# CONFIG_THERMAL_GOV_FAIR_SHARE is not set +CONFIG_THERMAL_GOV_STEP_WISE=y +# CONFIG_THERMAL_GOV_BANG_BANG is not set +CONFIG_THERMAL_GOV_USER_SPACE=y +# CONFIG_THERMAL_EMULATION is not set + +# +# Intel thermal drivers +# +# CONFIG_INTEL_POWERCLAMP is not set +CONFIG_X86_THERMAL_VECTOR=y +CONFIG_X86_PKG_TEMP_THERMAL=m +# CONFIG_INTEL_SOC_DTS_THERMAL is not set + +# +# ACPI INT340X thermal drivers +# +# CONFIG_INT340X_THERMAL is not set +# end of ACPI INT340X thermal drivers + +# CONFIG_INTEL_PCH_THERMAL is not set +# CONFIG_INTEL_TCC_COOLING is not set +# CONFIG_INTEL_MENLOW is not set +# CONFIG_INTEL_HFI_THERMAL is not set +# end of Intel thermal drivers + +CONFIG_WATCHDOG=y +# CONFIG_WATCHDOG_CORE is not set +# CONFIG_WATCHDOG_NOWAYOUT is not set +CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y +CONFIG_WATCHDOG_OPEN_TIMEOUT=0 +# CONFIG_WATCHDOG_SYSFS is not set +# CONFIG_WATCHDOG_HRTIMER_PRETIMEOUT is not set + +# +# Watchdog Pretimeout Governors +# + +# +# Watchdog Device Drivers +# +# CONFIG_SOFT_WATCHDOG is not set +# CONFIG_WDAT_WDT is not set +# CONFIG_XILINX_WATCHDOG is not set +# CONFIG_ZIIRAVE_WATCHDOG is not set +# CONFIG_CADENCE_WATCHDOG is not set +# CONFIG_DW_WATCHDOG is not set +# CONFIG_MAX63XX_WATCHDOG is not set +# CONFIG_ACQUIRE_WDT is not set +# CONFIG_ADVANTECH_WDT is not set +# CONFIG_ALIM1535_WDT is not set +# CONFIG_ALIM7101_WDT is not set +# CONFIG_EBC_C384_WDT is not set +# CONFIG_EXAR_WDT is not set +# CONFIG_F71808E_WDT is not set +# CONFIG_SP5100_TCO is not set +# CONFIG_SBC_FITPC2_WATCHDOG is not set +# CONFIG_EUROTECH_WDT is not set +# CONFIG_IB700_WDT is not set +# CONFIG_IBMASR is not set +# CONFIG_WAFER_WDT is not set +# CONFIG_I6300ESB_WDT is not set +# CONFIG_IE6XX_WDT is not set +# CONFIG_ITCO_WDT is not set +# CONFIG_IT8712F_WDT is not set +# CONFIG_IT87_WDT is not set +# CONFIG_HP_WATCHDOG is not set +# CONFIG_SC1200_WDT is not set +# CONFIG_PC87413_WDT is not set +# CONFIG_NV_TCO is not set +# CONFIG_60XX_WDT is not set +# CONFIG_CPU5_WDT is not set +# CONFIG_SMSC_SCH311X_WDT is not set +# CONFIG_SMSC37B787_WDT is not set +# CONFIG_TQMX86_WDT is not set +# CONFIG_VIA_WDT is not set +# CONFIG_W83627HF_WDT is not set +# CONFIG_W83877F_WDT is not set +# CONFIG_W83977F_WDT is not set +# CONFIG_MACHZ_WDT is not set +# CONFIG_SBC_EPX_C3_WATCHDOG is not set +# CONFIG_NI903X_WDT is not set +# CONFIG_NIC7018_WDT is not set + +# +# PCI-based Watchdog Cards +# +# CONFIG_PCIPCWATCHDOG is not set +# CONFIG_WDTPCI is not set + +# +# USB-based Watchdog Cards +# +# CONFIG_USBPCWATCHDOG is not set +CONFIG_SSB_POSSIBLE=y +# CONFIG_SSB is not set +CONFIG_BCMA_POSSIBLE=y +# CONFIG_BCMA is not set + +# +# Multifunction device drivers +# +# CONFIG_MFD_AS3711 is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_BCM590XX is not set +# CONFIG_MFD_BD9571MWV is not set +# CONFIG_MFD_AXP20X_I2C is not set +# CONFIG_MFD_MADERA is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_MFD_DA9052_I2C is not set +# CONFIG_MFD_DA9055 is not set +# CONFIG_MFD_DA9062 is not set +# CONFIG_MFD_DA9063 is not set +# CONFIG_MFD_DA9150 is not set +# CONFIG_MFD_DLN2 is not set +# CONFIG_MFD_MC13XXX_I2C is not set +# CONFIG_MFD_MP2629 is not set +# CONFIG_HTC_PASIC3 is not set +# CONFIG_LPC_ICH is not set +# CONFIG_LPC_SCH is not set +# CONFIG_MFD_INTEL_LPSS_ACPI is not set +# CONFIG_MFD_INTEL_LPSS_PCI is not set +# CONFIG_MFD_INTEL_PMC_BXT is not set +# CONFIG_MFD_IQS62X is not set +# CONFIG_MFD_JANZ_CMODIO is not set +# CONFIG_MFD_KEMPLD is not set +# CONFIG_MFD_88PM800 is not set +# CONFIG_MFD_88PM805 is not set +# CONFIG_MFD_88PM860X is not set +# CONFIG_MFD_MAX14577 is not set +# CONFIG_MFD_MAX77693 is not set +# CONFIG_MFD_MAX77843 is not set +# CONFIG_MFD_MAX8907 is not set +# CONFIG_MFD_MAX8925 is not set +# CONFIG_MFD_MAX8997 is not set +# CONFIG_MFD_MAX8998 is not set +# CONFIG_MFD_MT6360 is not set +# CONFIG_MFD_MT6370 is not set +# CONFIG_MFD_MT6397 is not set +# CONFIG_MFD_MENF21BMC is not set +# CONFIG_MFD_VIPERBOARD is not set +# CONFIG_MFD_RETU is not set +# CONFIG_MFD_PCF50633 is not set +# CONFIG_MFD_SY7636A is not set +# CONFIG_MFD_RDC321X is not set +# CONFIG_MFD_RT4831 is not set +# CONFIG_MFD_RT5033 is not set +# CONFIG_MFD_RT5120 is not set +# CONFIG_MFD_RC5T583 is not set +# CONFIG_MFD_SI476X_CORE is not set +# CONFIG_MFD_SM501 is not set +# CONFIG_MFD_SKY81452 is not set +# CONFIG_MFD_SYSCON is not set +# CONFIG_MFD_TI_AM335X_TSCADC is not set +# CONFIG_MFD_LP3943 is not set +# CONFIG_MFD_LP8788 is not set +# CONFIG_MFD_TI_LMU is not set +# CONFIG_MFD_PALMAS is not set +# CONFIG_TPS6105X is not set +# CONFIG_TPS6507X is not set +# CONFIG_MFD_TPS65086 is not set +# CONFIG_MFD_TPS65090 is not set +# CONFIG_MFD_TI_LP873X is not set +# CONFIG_MFD_TPS6586X is not set +# CONFIG_MFD_TPS65912_I2C is not set +# CONFIG_TWL4030_CORE is not set +# CONFIG_TWL6040_CORE is not set +# CONFIG_MFD_WL1273_CORE is not set +# CONFIG_MFD_LM3533 is not set +# CONFIG_MFD_TQMX86 is not set +# CONFIG_MFD_VX855 is not set +# CONFIG_MFD_ARIZONA_I2C is not set +# CONFIG_MFD_WM8400 is not set +# CONFIG_MFD_WM831X_I2C is not set +# CONFIG_MFD_WM8350_I2C is not set +# CONFIG_MFD_WM8994 is not set +# CONFIG_MFD_ATC260X_I2C is not set +# end of Multifunction device drivers + +# CONFIG_REGULATOR is not set +# CONFIG_RC_CORE is not set + +# +# CEC support +# +# CONFIG_MEDIA_CEC_SUPPORT is not set +# end of CEC support + +# CONFIG_MEDIA_SUPPORT is not set + +# +# Graphics support +# +CONFIG_APERTURE_HELPERS=y +CONFIG_AGP=y +CONFIG_AGP_AMD64=y +CONFIG_AGP_INTEL=y +# CONFIG_AGP_SIS is not set +# CONFIG_AGP_VIA is not set +CONFIG_INTEL_GTT=y +# CONFIG_VGA_SWITCHEROO is not set +CONFIG_DRM=y +CONFIG_DRM_MIPI_DSI=y +# CONFIG_DRM_DEBUG_MM is not set +CONFIG_DRM_KMS_HELPER=y +# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set +CONFIG_DRM_DISPLAY_HELPER=y +CONFIG_DRM_DISPLAY_DP_HELPER=y +CONFIG_DRM_DISPLAY_HDCP_HELPER=y +CONFIG_DRM_DISPLAY_HDMI_HELPER=y +# CONFIG_DRM_DP_AUX_CHARDEV is not set +# CONFIG_DRM_DP_CEC is not set +CONFIG_DRM_TTM=y +CONFIG_DRM_BUDDY=y +CONFIG_DRM_GEM_SHMEM_HELPER=y + +# +# I2C encoder or helper chips +# +# CONFIG_DRM_I2C_CH7006 is not set +# CONFIG_DRM_I2C_SIL164 is not set +# CONFIG_DRM_I2C_NXP_TDA998X is not set +# CONFIG_DRM_I2C_NXP_TDA9950 is not set +# end of I2C encoder or helper chips + +# +# ARM devices +# +# end of ARM devices + +# CONFIG_DRM_RADEON is not set +# CONFIG_DRM_AMDGPU is not set +# CONFIG_DRM_NOUVEAU is not set +CONFIG_DRM_I915=y +CONFIG_DRM_I915_FORCE_PROBE="" +CONFIG_DRM_I915_CAPTURE_ERROR=y +CONFIG_DRM_I915_COMPRESS_ERROR=y +CONFIG_DRM_I915_USERPTR=y +CONFIG_DRM_I915_REQUEST_TIMEOUT=20000 +CONFIG_DRM_I915_FENCE_TIMEOUT=10000 +CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250 +CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500 +CONFIG_DRM_I915_PREEMPT_TIMEOUT=640 +CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000 +CONFIG_DRM_I915_STOP_TIMEOUT=100 +CONFIG_DRM_I915_TIMESLICE_DURATION=1 +# CONFIG_DRM_VGEM is not set +# CONFIG_DRM_VKMS is not set +# CONFIG_DRM_VMWGFX is not set +# CONFIG_DRM_GMA500 is not set +# CONFIG_DRM_UDL is not set +# CONFIG_DRM_AST is not set +# CONFIG_DRM_MGAG200 is not set +# CONFIG_DRM_QXL is not set +CONFIG_DRM_VIRTIO_GPU=y +CONFIG_DRM_PANEL=y + +# +# Display Panels +# +# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set +# end of Display Panels + +CONFIG_DRM_BRIDGE=y +CONFIG_DRM_PANEL_BRIDGE=y + +# +# Display Interface Bridges +# +# CONFIG_DRM_ANALOGIX_ANX78XX is not set +# end of Display Interface Bridges + +# CONFIG_DRM_ETNAVIV is not set +# CONFIG_DRM_BOCHS is not set +# CONFIG_DRM_CIRRUS_QEMU is not set +# CONFIG_DRM_GM12U320 is not set +# CONFIG_DRM_SIMPLEDRM is not set +# CONFIG_DRM_VBOXVIDEO is not set +# CONFIG_DRM_GUD is not set +# CONFIG_DRM_SSD130X is not set +# CONFIG_DRM_LEGACY is not set +CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y +CONFIG_DRM_NOMODESET=y + +# +# Frame buffer Devices +# +CONFIG_FB_CMDLINE=y +CONFIG_FB_NOTIFY=y +CONFIG_FB=m +# CONFIG_FIRMWARE_EDID is not set +# CONFIG_FB_FOREIGN_ENDIAN is not set +# CONFIG_FB_MODE_HELPERS is not set +# CONFIG_FB_TILEBLITTING is not set + +# +# Frame buffer hardware drivers +# +# CONFIG_FB_CIRRUS is not set +# CONFIG_FB_PM2 is not set +# CONFIG_FB_CYBER2000 is not set +# CONFIG_FB_ARC is not set +# CONFIG_FB_VGA16 is not set +# CONFIG_FB_UVESA is not set +# CONFIG_FB_N411 is not set +# CONFIG_FB_HGA is not set +# CONFIG_FB_OPENCORES is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_NVIDIA is not set +# CONFIG_FB_RIVA is not set +# CONFIG_FB_I740 is not set +# CONFIG_FB_LE80578 is not set +# CONFIG_FB_MATROX is not set +# CONFIG_FB_RADEON is not set +# CONFIG_FB_ATY128 is not set +# CONFIG_FB_ATY is not set +# CONFIG_FB_S3 is not set +# CONFIG_FB_SAVAGE is not set +# CONFIG_FB_SIS is not set +# CONFIG_FB_NEOMAGIC is not set +# CONFIG_FB_KYRO is not set +# CONFIG_FB_3DFX is not set +# CONFIG_FB_VOODOO1 is not set +# CONFIG_FB_VT8623 is not set +# CONFIG_FB_TRIDENT is not set +# CONFIG_FB_ARK is not set +# CONFIG_FB_PM3 is not set +# CONFIG_FB_CARMINE is not set +# CONFIG_FB_SMSCUFX is not set +# CONFIG_FB_UDL is not set +# CONFIG_FB_IBM_GXT4500 is not set +# CONFIG_FB_VIRTUAL is not set +# CONFIG_FB_METRONOME is not set +# CONFIG_FB_MB862XX is not set +# CONFIG_FB_SIMPLE is not set +# CONFIG_FB_SM712 is not set +# end of Frame buffer Devices + +# +# Backlight & LCD device support +# +# CONFIG_LCD_CLASS_DEVICE is not set +CONFIG_BACKLIGHT_CLASS_DEVICE=y +# CONFIG_BACKLIGHT_APPLE is not set +# CONFIG_BACKLIGHT_QCOM_WLED is not set +# CONFIG_BACKLIGHT_SAHARA is not set +# CONFIG_BACKLIGHT_ADP8860 is not set +# CONFIG_BACKLIGHT_ADP8870 is not set +# CONFIG_BACKLIGHT_LM3639 is not set +# CONFIG_BACKLIGHT_LV5207LP is not set +# CONFIG_BACKLIGHT_BD6107 is not set +# CONFIG_BACKLIGHT_ARCXCNN is not set +# end of Backlight & LCD device support + +CONFIG_HDMI=y + +# +# Console display driver support +# +CONFIG_VGA_CONSOLE=y +CONFIG_DUMMY_CONSOLE=y +CONFIG_DUMMY_CONSOLE_COLUMNS=80 +CONFIG_DUMMY_CONSOLE_ROWS=25 +# CONFIG_FRAMEBUFFER_CONSOLE is not set +# end of Console display driver support + +# CONFIG_LOGO is not set +# end of Graphics support + +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_TIMER=y +CONFIG_SND_PCM=y +CONFIG_SND_HWDEP=y +CONFIG_SND_SEQ_DEVICE=y +CONFIG_SND_JACK=y +CONFIG_SND_JACK_INPUT_DEV=y +# CONFIG_SND_OSSEMUL is not set +CONFIG_SND_PCM_TIMER=y +CONFIG_SND_HRTIMER=y +# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_PROC_FS=y +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +CONFIG_SND_CTL_FAST_LOOKUP=y +# CONFIG_SND_DEBUG is not set +# CONFIG_SND_CTL_INPUT_VALIDATION is not set +CONFIG_SND_VMASTER=y +CONFIG_SND_DMA_SGBUF=y +CONFIG_SND_SEQUENCER=y +CONFIG_SND_SEQ_DUMMY=y +CONFIG_SND_SEQ_HRTIMER_DEFAULT=y +CONFIG_SND_DRIVERS=y +# CONFIG_SND_PCSP is not set +# CONFIG_SND_DUMMY is not set +# CONFIG_SND_ALOOP is not set +# CONFIG_SND_VIRMIDI is not set +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set +CONFIG_SND_PCI=y +# CONFIG_SND_AD1889 is not set +# CONFIG_SND_ALS300 is not set +# CONFIG_SND_ALS4000 is not set +# CONFIG_SND_ALI5451 is not set +# CONFIG_SND_ASIHPI is not set +# CONFIG_SND_ATIIXP is not set +# CONFIG_SND_ATIIXP_MODEM is not set +# CONFIG_SND_AU8810 is not set +# CONFIG_SND_AU8820 is not set +# CONFIG_SND_AU8830 is not set +# CONFIG_SND_AW2 is not set +# CONFIG_SND_AZT3328 is not set +# CONFIG_SND_BT87X is not set +# CONFIG_SND_CA0106 is not set +# CONFIG_SND_CMIPCI is not set +# CONFIG_SND_OXYGEN is not set +# CONFIG_SND_CS4281 is not set +# CONFIG_SND_CS46XX is not set +# CONFIG_SND_CTXFI is not set +# CONFIG_SND_DARLA20 is not set +# CONFIG_SND_GINA20 is not set +# CONFIG_SND_LAYLA20 is not set +# CONFIG_SND_DARLA24 is not set +# CONFIG_SND_GINA24 is not set +# CONFIG_SND_LAYLA24 is not set +# CONFIG_SND_MONA is not set +# CONFIG_SND_MIA is not set +# CONFIG_SND_ECHO3G is not set +# CONFIG_SND_INDIGO is not set +# CONFIG_SND_INDIGOIO is not set +# CONFIG_SND_INDIGODJ is not set +# CONFIG_SND_INDIGOIOX is not set +# CONFIG_SND_INDIGODJX is not set +# CONFIG_SND_EMU10K1 is not set +# CONFIG_SND_EMU10K1X is not set +# CONFIG_SND_ENS1370 is not set +# CONFIG_SND_ENS1371 is not set +# CONFIG_SND_ES1938 is not set +# CONFIG_SND_ES1968 is not set +# CONFIG_SND_FM801 is not set +# CONFIG_SND_HDSP is not set +# CONFIG_SND_HDSPM is not set +# CONFIG_SND_ICE1712 is not set +# CONFIG_SND_ICE1724 is not set +# CONFIG_SND_INTEL8X0 is not set +# CONFIG_SND_INTEL8X0M is not set +# CONFIG_SND_KORG1212 is not set +# CONFIG_SND_LOLA is not set +# CONFIG_SND_LX6464ES is not set +# CONFIG_SND_MAESTRO3 is not set +# CONFIG_SND_MIXART is not set +# CONFIG_SND_NM256 is not set +# CONFIG_SND_PCXHR is not set +# CONFIG_SND_RIPTIDE is not set +# CONFIG_SND_RME32 is not set +# CONFIG_SND_RME96 is not set +# CONFIG_SND_RME9652 is not set +# CONFIG_SND_SE6X is not set +# CONFIG_SND_SONICVIBES is not set +# CONFIG_SND_TRIDENT is not set +# CONFIG_SND_VIA82XX is not set +# CONFIG_SND_VIA82XX_MODEM is not set +# CONFIG_SND_VIRTUOSO is not set +# CONFIG_SND_VX222 is not set +# CONFIG_SND_YMFPCI is not set + +# +# HD-Audio +# +CONFIG_SND_HDA=y +CONFIG_SND_HDA_INTEL=y +CONFIG_SND_HDA_HWDEP=y +# CONFIG_SND_HDA_RECONFIG is not set +# CONFIG_SND_HDA_INPUT_BEEP is not set +# CONFIG_SND_HDA_PATCH_LOADER is not set +# CONFIG_SND_HDA_CODEC_REALTEK is not set +# CONFIG_SND_HDA_CODEC_ANALOG is not set +# CONFIG_SND_HDA_CODEC_SIGMATEL is not set +# CONFIG_SND_HDA_CODEC_VIA is not set +# CONFIG_SND_HDA_CODEC_HDMI is not set +# CONFIG_SND_HDA_CODEC_CIRRUS is not set +# CONFIG_SND_HDA_CODEC_CS8409 is not set +# CONFIG_SND_HDA_CODEC_CONEXANT is not set +# CONFIG_SND_HDA_CODEC_CA0110 is not set +# CONFIG_SND_HDA_CODEC_CA0132 is not set +# CONFIG_SND_HDA_CODEC_CMEDIA is not set +# CONFIG_SND_HDA_CODEC_SI3054 is not set +# CONFIG_SND_HDA_GENERIC is not set +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +# CONFIG_SND_HDA_INTEL_HDMI_SILENT_STREAM is not set +# end of HD-Audio + +CONFIG_SND_HDA_CORE=y +CONFIG_SND_HDA_COMPONENT=y +CONFIG_SND_HDA_I915=y +CONFIG_SND_HDA_PREALLOC_SIZE=0 +CONFIG_SND_INTEL_NHLT=y +CONFIG_SND_INTEL_DSP_CONFIG=y +CONFIG_SND_INTEL_SOUNDWIRE_ACPI=y +CONFIG_SND_USB=y +# CONFIG_SND_USB_AUDIO is not set +# CONFIG_SND_USB_UA101 is not set +# CONFIG_SND_USB_USX2Y is not set +# CONFIG_SND_USB_CAIAQ is not set +# CONFIG_SND_USB_US122L is not set +# CONFIG_SND_USB_6FIRE is not set +# CONFIG_SND_USB_HIFACE is not set +# CONFIG_SND_BCD2000 is not set +# CONFIG_SND_USB_POD is not set +# CONFIG_SND_USB_PODHD is not set +# CONFIG_SND_USB_TONEPORT is not set +# CONFIG_SND_USB_VARIAX is not set +CONFIG_SND_PCMCIA=y +# CONFIG_SND_VXPOCKET is not set +# CONFIG_SND_PDAUDIOCF is not set +# CONFIG_SND_SOC is not set +CONFIG_SND_X86=y +# CONFIG_HDMI_LPE_AUDIO is not set +# CONFIG_SND_VIRTIO is not set + +# +# HID support +# +CONFIG_HID=y +# CONFIG_HID_BATTERY_STRENGTH is not set +CONFIG_HIDRAW=y +# CONFIG_UHID is not set +CONFIG_HID_GENERIC=y + +# +# Special HID drivers +# +CONFIG_HID_A4TECH=y +# CONFIG_HID_ACCUTOUCH is not set +# CONFIG_HID_ACRUX is not set +CONFIG_HID_APPLE=y +# CONFIG_HID_APPLEIR is not set +# CONFIG_HID_ASUS is not set +# CONFIG_HID_AUREAL is not set +CONFIG_HID_BELKIN=y +# CONFIG_HID_BETOP_FF is not set +# CONFIG_HID_BIGBEN_FF is not set +CONFIG_HID_CHERRY=y +CONFIG_HID_CHICONY=y +# CONFIG_HID_CORSAIR is not set +# CONFIG_HID_COUGAR is not set +# CONFIG_HID_MACALLY is not set +# CONFIG_HID_PRODIKEYS is not set +# CONFIG_HID_CMEDIA is not set +# CONFIG_HID_CREATIVE_SB0540 is not set +CONFIG_HID_CYPRESS=y +# CONFIG_HID_DRAGONRISE is not set +# CONFIG_HID_EMS_FF is not set +# CONFIG_HID_ELAN is not set +# CONFIG_HID_ELECOM is not set +# CONFIG_HID_ELO is not set +CONFIG_HID_EZKEY=y +# CONFIG_HID_FT260 is not set +# CONFIG_HID_GEMBIRD is not set +# CONFIG_HID_GFRM is not set +# CONFIG_HID_GLORIOUS is not set +# CONFIG_HID_HOLTEK is not set +# CONFIG_HID_VIVALDI is not set +# CONFIG_HID_GT683R is not set +# CONFIG_HID_KEYTOUCH is not set +# CONFIG_HID_KYE is not set +# CONFIG_HID_UCLOGIC is not set +# CONFIG_HID_WALTOP is not set +# CONFIG_HID_VIEWSONIC is not set +# CONFIG_HID_VRC2 is not set +# CONFIG_HID_XIAOMI is not set +CONFIG_HID_GYRATION=y +# CONFIG_HID_ICADE is not set +CONFIG_HID_ITE=y +# CONFIG_HID_JABRA is not set +# CONFIG_HID_TWINHAN is not set +CONFIG_HID_KENSINGTON=y +# CONFIG_HID_LCPOWER is not set +# CONFIG_HID_LED is not set +# CONFIG_HID_LENOVO is not set +# CONFIG_HID_LETSKETCH is not set +CONFIG_HID_LOGITECH=y +# CONFIG_HID_LOGITECH_DJ is not set +# CONFIG_HID_LOGITECH_HIDPP is not set +CONFIG_LOGITECH_FF=y +# CONFIG_LOGIRUMBLEPAD2_FF is not set +# CONFIG_LOGIG940_FF is not set +CONFIG_LOGIWHEELS_FF=y +# CONFIG_HID_MAGICMOUSE is not set +# CONFIG_HID_MALTRON is not set +# CONFIG_HID_MAYFLASH is not set +# CONFIG_HID_MEGAWORLD_FF is not set +CONFIG_HID_REDRAGON=y +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MONTEREY=y +# CONFIG_HID_MULTITOUCH is not set +# CONFIG_HID_NINTENDO is not set +# CONFIG_HID_NTI is not set +CONFIG_HID_NTRIG=y +# CONFIG_HID_ORTEK is not set +CONFIG_HID_PANTHERLORD=y +CONFIG_PANTHERLORD_FF=y +# CONFIG_HID_PENMOUNT is not set +CONFIG_HID_PETALYNX=y +# CONFIG_HID_PICOLCD is not set +# CONFIG_HID_PLANTRONICS is not set +# CONFIG_HID_PXRC is not set +# CONFIG_HID_RAZER is not set +# CONFIG_HID_PRIMAX is not set +# CONFIG_HID_RETRODE is not set +# CONFIG_HID_ROCCAT is not set +# CONFIG_HID_SAITEK is not set +CONFIG_HID_SAMSUNG=y +# CONFIG_HID_SEMITEK is not set +# CONFIG_HID_SIGMAMICRO is not set +CONFIG_HID_SONY=y +# CONFIG_SONY_FF is not set +# CONFIG_HID_SPEEDLINK is not set +# CONFIG_HID_STEAM is not set +# CONFIG_HID_STEELSERIES is not set +CONFIG_HID_SUNPLUS=y +# CONFIG_HID_RMI is not set +# CONFIG_HID_GREENASIA is not set +# CONFIG_HID_SMARTJOYPLUS is not set +# CONFIG_HID_TIVO is not set +CONFIG_HID_TOPSEED=y +# CONFIG_HID_TOPRE is not set +# CONFIG_HID_THINGM is not set +# CONFIG_HID_THRUSTMASTER is not set +# CONFIG_HID_UDRAW_PS3 is not set +# CONFIG_HID_U2FZERO is not set +# CONFIG_HID_WACOM is not set +# CONFIG_HID_WIIMOTE is not set +# CONFIG_HID_XINMO is not set +# CONFIG_HID_ZEROPLUS is not set +# CONFIG_HID_ZYDACRON is not set +# CONFIG_HID_SENSOR_HUB is not set +# CONFIG_HID_ALPS is not set +# end of Special HID drivers + +# +# USB HID support +# +CONFIG_USB_HID=y +CONFIG_HID_PID=y +CONFIG_USB_HIDDEV=y +# end of USB HID support + +# +# I2C HID support +# +# CONFIG_I2C_HID_ACPI is not set +# end of I2C HID support + +# +# Intel ISH HID support +# +# CONFIG_INTEL_ISH_HID is not set +# end of Intel ISH HID support + +# +# AMD SFH HID Support +# +# CONFIG_AMD_SFH_HID is not set +# end of AMD SFH HID Support +# end of HID support + +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y +# CONFIG_USB_LED_TRIG is not set +# CONFIG_USB_ULPI_BUS is not set +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB=y +CONFIG_USB_PCI=y +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y + +# +# Miscellaneous USB options +# +CONFIG_USB_DEFAULT_PERSIST=y +# CONFIG_USB_FEW_INIT_RETRIES is not set +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_OTG is not set +# CONFIG_USB_OTG_PRODUCTLIST is not set +# CONFIG_USB_LEDS_TRIGGER_USBPORT is not set +CONFIG_USB_AUTOSUSPEND_DELAY=2 +CONFIG_USB_MON=y + +# +# USB Host Controller Drivers +# +# CONFIG_USB_C67X00_HCD is not set +CONFIG_USB_XHCI_HCD=y +# CONFIG_USB_XHCI_DBGCAP is not set +CONFIG_USB_XHCI_PCI=y +# CONFIG_USB_XHCI_PCI_RENESAS is not set +# CONFIG_USB_XHCI_PLATFORM is not set +CONFIG_USB_EHCI_HCD=y +# CONFIG_USB_EHCI_ROOT_HUB_TT is not set +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_EHCI_PCI=y +# CONFIG_USB_EHCI_FSL is not set +# CONFIG_USB_EHCI_HCD_PLATFORM is not set +# CONFIG_USB_OXU210HP_HCD is not set +# CONFIG_USB_ISP116X_HCD is not set +# CONFIG_USB_FOTG210_HCD is not set +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PCI=y +# CONFIG_USB_OHCI_HCD_PLATFORM is not set +CONFIG_USB_UHCI_HCD=y +# CONFIG_USB_SL811_HCD is not set +# CONFIG_USB_R8A66597_HCD is not set +# CONFIG_USB_HCD_TEST_MODE is not set + +# +# USB Device Class drivers +# +# CONFIG_USB_ACM is not set +CONFIG_USB_PRINTER=y +# CONFIG_USB_WDM is not set +# CONFIG_USB_TMC is not set + +# +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may +# + +# +# also be needed; see USB_STORAGE Help for more info +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_REALTEK is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_USBAT is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_ALAUDA is not set +# CONFIG_USB_STORAGE_ONETOUCH is not set +# CONFIG_USB_STORAGE_KARMA is not set +# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set +# CONFIG_USB_STORAGE_ENE_UB6250 is not set +# CONFIG_USB_UAS is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set +# CONFIG_USBIP_CORE is not set +# CONFIG_USB_CDNS_SUPPORT is not set +# CONFIG_USB_MUSB_HDRC is not set +# CONFIG_USB_DWC3 is not set +# CONFIG_USB_DWC2 is not set +# CONFIG_USB_CHIPIDEA is not set +# CONFIG_USB_ISP1760 is not set + +# +# USB port drivers +# +# CONFIG_USB_SERIAL is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_ADUTUX is not set +# CONFIG_USB_SEVSEG is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_APPLEDISPLAY is not set +# CONFIG_APPLE_MFI_FASTCHARGE is not set +# CONFIG_USB_SISUSBVGA is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_IOWARRIOR is not set +# CONFIG_USB_TEST is not set +# CONFIG_USB_EHSET_TEST_FIXTURE is not set +# CONFIG_USB_ISIGHTFW is not set +# CONFIG_USB_YUREX is not set +# CONFIG_USB_EZUSB_FX2 is not set +# CONFIG_USB_HUB_USB251XB is not set +# CONFIG_USB_HSIC_USB3503 is not set +# CONFIG_USB_HSIC_USB4604 is not set +# CONFIG_USB_LINK_LAYER_TEST is not set +# CONFIG_USB_CHAOSKEY is not set + +# +# USB Physical Layer drivers +# +# CONFIG_NOP_USB_XCEIV is not set +# CONFIG_USB_ISP1301 is not set +# end of USB Physical Layer drivers + +# CONFIG_USB_GADGET is not set +# CONFIG_TYPEC is not set +# CONFIG_USB_ROLE_SWITCH is not set +# CONFIG_MMC is not set +# CONFIG_SCSI_UFSHCD is not set +# CONFIG_MEMSTICK is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +# CONFIG_LEDS_CLASS_FLASH is not set +# CONFIG_LEDS_CLASS_MULTICOLOR is not set +# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set + +# +# LED drivers +# +# CONFIG_LEDS_APU is not set +# CONFIG_LEDS_LM3530 is not set +# CONFIG_LEDS_LM3532 is not set +# CONFIG_LEDS_LM3642 is not set +# CONFIG_LEDS_PCA9532 is not set +# CONFIG_LEDS_LP3944 is not set +# CONFIG_LEDS_PCA955X is not set +# CONFIG_LEDS_PCA963X is not set +# CONFIG_LEDS_BD2802 is not set +# CONFIG_LEDS_INTEL_SS4200 is not set +# CONFIG_LEDS_TCA6507 is not set +# CONFIG_LEDS_TLC591XX is not set +# CONFIG_LEDS_LM355x is not set +# CONFIG_LEDS_IS31FL319X is not set + +# +# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM) +# +# CONFIG_LEDS_BLINKM is not set +# CONFIG_LEDS_MLXCPLD is not set +# CONFIG_LEDS_MLXREG is not set +# CONFIG_LEDS_USER is not set +# CONFIG_LEDS_NIC78BX is not set +# CONFIG_LEDS_TI_LMU_COMMON is not set + +# +# Flash and Torch LED drivers +# + +# +# RGB LED drivers +# + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +# CONFIG_LEDS_TRIGGER_TIMER is not set +# CONFIG_LEDS_TRIGGER_ONESHOT is not set +# CONFIG_LEDS_TRIGGER_DISK is not set +# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set +# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set +# CONFIG_LEDS_TRIGGER_CPU is not set +# CONFIG_LEDS_TRIGGER_ACTIVITY is not set +# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set + +# +# iptables trigger is under Netfilter config (LED target) +# +# CONFIG_LEDS_TRIGGER_TRANSIENT is not set +# CONFIG_LEDS_TRIGGER_CAMERA is not set +# CONFIG_LEDS_TRIGGER_PANIC is not set +# CONFIG_LEDS_TRIGGER_NETDEV is not set +# CONFIG_LEDS_TRIGGER_PATTERN is not set +# CONFIG_LEDS_TRIGGER_AUDIO is not set +# CONFIG_LEDS_TRIGGER_TTY is not set + +# +# Simple LED drivers +# +# CONFIG_ACCESSIBILITY is not set +# CONFIG_INFINIBAND is not set +CONFIG_EDAC_ATOMIC_SCRUB=y +CONFIG_EDAC_SUPPORT=y +CONFIG_RTC_LIB=y +CONFIG_RTC_MC146818_LIB=y +CONFIG_RTC_CLASS=y +# CONFIG_RTC_HCTOSYS is not set +CONFIG_RTC_SYSTOHC=y +CONFIG_RTC_SYSTOHC_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set +CONFIG_RTC_NVMEM=y + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set +# CONFIG_RTC_DRV_TEST is not set + +# +# I2C RTC drivers +# +# CONFIG_RTC_DRV_ABB5ZES3 is not set +# CONFIG_RTC_DRV_ABEOZ9 is not set +# CONFIG_RTC_DRV_ABX80X is not set +# CONFIG_RTC_DRV_DS1307 is not set +# CONFIG_RTC_DRV_DS1374 is not set +# CONFIG_RTC_DRV_DS1672 is not set +# CONFIG_RTC_DRV_MAX6900 is not set +# CONFIG_RTC_DRV_RS5C372 is not set +# CONFIG_RTC_DRV_ISL1208 is not set +# CONFIG_RTC_DRV_ISL12022 is not set +# CONFIG_RTC_DRV_X1205 is not set +# CONFIG_RTC_DRV_PCF8523 is not set +# CONFIG_RTC_DRV_PCF85063 is not set +# CONFIG_RTC_DRV_PCF85363 is not set +# CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_PCF8583 is not set +# CONFIG_RTC_DRV_M41T80 is not set +# CONFIG_RTC_DRV_BQ32K is not set +# CONFIG_RTC_DRV_S35390A is not set +# CONFIG_RTC_DRV_FM3130 is not set +# CONFIG_RTC_DRV_RX8010 is not set +# CONFIG_RTC_DRV_RX8581 is not set +# CONFIG_RTC_DRV_RX8025 is not set +# CONFIG_RTC_DRV_EM3027 is not set +# CONFIG_RTC_DRV_RV3028 is not set +# CONFIG_RTC_DRV_RV3032 is not set +# CONFIG_RTC_DRV_RV8803 is not set +# CONFIG_RTC_DRV_SD3078 is not set + +# +# SPI RTC drivers +# +CONFIG_RTC_I2C_AND_SPI=y + +# +# SPI and I2C RTC drivers +# +# CONFIG_RTC_DRV_DS3232 is not set +# CONFIG_RTC_DRV_PCF2127 is not set +# CONFIG_RTC_DRV_RV3029C2 is not set +# CONFIG_RTC_DRV_RX6110 is not set + +# +# Platform RTC drivers +# +CONFIG_RTC_DRV_CMOS=y +# CONFIG_RTC_DRV_DS1286 is not set +# CONFIG_RTC_DRV_DS1511 is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_DS1685_FAMILY is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_DS2404 is not set +# CONFIG_RTC_DRV_STK17TA8 is not set +# CONFIG_RTC_DRV_M48T86 is not set +# CONFIG_RTC_DRV_M48T35 is not set +# CONFIG_RTC_DRV_M48T59 is not set +# CONFIG_RTC_DRV_MSM6242 is not set +# CONFIG_RTC_DRV_BQ4802 is not set +# CONFIG_RTC_DRV_RP5C01 is not set +# CONFIG_RTC_DRV_V3020 is not set + +# +# on-CPU RTC drivers +# +# CONFIG_RTC_DRV_FTRTC010 is not set + +# +# HID Sensor RTC drivers +# +# CONFIG_RTC_DRV_GOLDFISH is not set +CONFIG_DMADEVICES=y +# CONFIG_DMADEVICES_DEBUG is not set + +# +# DMA Devices +# +CONFIG_DMA_ENGINE=y +CONFIG_DMA_VIRTUAL_CHANNELS=y +CONFIG_DMA_ACPI=y +# CONFIG_ALTERA_MSGDMA is not set +# CONFIG_INTEL_IDMA64 is not set +# CONFIG_INTEL_IDXD is not set +# CONFIG_INTEL_IDXD_COMPAT is not set +# CONFIG_INTEL_IOATDMA is not set +# CONFIG_PLX_DMA is not set +# CONFIG_AMD_PTDMA is not set +# CONFIG_QCOM_HIDMA_MGMT is not set +# CONFIG_QCOM_HIDMA is not set +CONFIG_DW_DMAC_CORE=y +# CONFIG_DW_DMAC is not set +# CONFIG_DW_DMAC_PCI is not set +# CONFIG_DW_EDMA is not set +# CONFIG_DW_EDMA_PCIE is not set +CONFIG_HSU_DMA=y +# CONFIG_SF_PDMA is not set +# CONFIG_INTEL_LDMA is not set + +# +# DMA Clients +# +# CONFIG_ASYNC_TX_DMA is not set +# CONFIG_DMATEST is not set + +# +# DMABUF options +# +CONFIG_SYNC_FILE=y +# CONFIG_SW_SYNC is not set +# CONFIG_UDMABUF is not set +# CONFIG_DMABUF_MOVE_NOTIFY is not set +# CONFIG_DMABUF_DEBUG is not set +# CONFIG_DMABUF_SELFTESTS is not set +# CONFIG_DMABUF_HEAPS is not set +# CONFIG_DMABUF_SYSFS_STATS is not set +# end of DMABUF options + +# CONFIG_AUXDISPLAY is not set +# CONFIG_UIO is not set +# CONFIG_VFIO is not set +# CONFIG_VIRT_DRIVERS is not set +CONFIG_VIRTIO_ANCHOR=y +CONFIG_VIRTIO=y +CONFIG_VIRTIO_PCI_LIB=y +CONFIG_VIRTIO_PCI_LIB_LEGACY=y +CONFIG_VIRTIO_MENU=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_PCI_LEGACY=y +# CONFIG_VIRTIO_BALLOON is not set +CONFIG_VIRTIO_INPUT=y +# CONFIG_VIRTIO_MMIO is not set +CONFIG_VIRTIO_DMA_SHARED_BUFFER=y +# CONFIG_VDPA is not set +CONFIG_VHOST_MENU=y +# CONFIG_VHOST_NET is not set +# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set + +# +# Microsoft Hyper-V guest support +# +# CONFIG_HYPERV is not set +# end of Microsoft Hyper-V guest support + +# CONFIG_GREYBUS is not set +# CONFIG_COMEDI is not set +# CONFIG_STAGING is not set +# CONFIG_CHROME_PLATFORMS is not set +# CONFIG_MELLANOX_PLATFORM is not set +CONFIG_SURFACE_PLATFORMS=y +# CONFIG_SURFACE_3_POWER_OPREGION is not set +# CONFIG_SURFACE_GPE is not set +# CONFIG_SURFACE_PRO3_BUTTON is not set +CONFIG_X86_PLATFORM_DEVICES=y +CONFIG_ACPI_WMI=y +CONFIG_WMI_BMOF=y +# CONFIG_HUAWEI_WMI is not set +# CONFIG_MXM_WMI is not set +# CONFIG_PEAQ_WMI is not set +# CONFIG_NVIDIA_WMI_EC_BACKLIGHT is not set +# CONFIG_XIAOMI_WMI is not set +# CONFIG_GIGABYTE_WMI is not set +# CONFIG_YOGABOOK_WMI is not set +# CONFIG_ACERHDF is not set +# CONFIG_ACER_WIRELESS is not set +# CONFIG_ACER_WMI is not set +# CONFIG_AMD_PMF is not set +# CONFIG_AMD_PMC is not set +# CONFIG_AMD_HSMP is not set +# CONFIG_ADV_SWBUTTON is not set +# CONFIG_APPLE_GMUX is not set +# CONFIG_ASUS_LAPTOP is not set +# CONFIG_ASUS_WIRELESS is not set +# CONFIG_ASUS_WMI is not set +CONFIG_EEEPC_LAPTOP=y +# CONFIG_X86_PLATFORM_DRIVERS_DELL is not set +# CONFIG_AMILO_RFKILL is not set +# CONFIG_FUJITSU_LAPTOP is not set +# CONFIG_FUJITSU_TABLET is not set +# CONFIG_GPD_POCKET_FAN is not set +# CONFIG_HP_ACCEL is not set +# CONFIG_WIRELESS_HOTKEY is not set +# CONFIG_HP_WMI is not set +# CONFIG_IBM_RTL is not set +# CONFIG_IDEAPAD_LAPTOP is not set +# CONFIG_SENSORS_HDAPS is not set +# CONFIG_THINKPAD_ACPI is not set +# CONFIG_THINKPAD_LMI is not set +# CONFIG_INTEL_ATOMISP2_PM is not set +# CONFIG_INTEL_SAR_INT1092 is not set +# CONFIG_INTEL_PMC_CORE is not set + +# +# Intel Speed Select Technology interface support +# +# CONFIG_INTEL_SPEED_SELECT_INTERFACE is not set +# end of Intel Speed Select Technology interface support + +# CONFIG_INTEL_WMI_SBL_FW_UPDATE is not set +# CONFIG_INTEL_WMI_THUNDERBOLT is not set + +# +# Intel Uncore Frequency Control +# +# CONFIG_INTEL_UNCORE_FREQ_CONTROL is not set +# end of Intel Uncore Frequency Control + +# CONFIG_INTEL_HID_EVENT is not set +# CONFIG_INTEL_VBTN is not set +# CONFIG_INTEL_OAKTRAIL is not set +# CONFIG_INTEL_PUNIT_IPC is not set +# CONFIG_INTEL_RST is not set +# CONFIG_INTEL_SMARTCONNECT is not set +# CONFIG_INTEL_TURBO_MAX_3 is not set +# CONFIG_INTEL_VSEC is not set +# CONFIG_MSI_LAPTOP is not set +# CONFIG_MSI_WMI is not set +# CONFIG_SAMSUNG_LAPTOP is not set +# CONFIG_SAMSUNG_Q10 is not set +# CONFIG_TOSHIBA_BT_RFKILL is not set +# CONFIG_TOSHIBA_HAPS is not set +# CONFIG_TOSHIBA_WMI is not set +# CONFIG_ACPI_CMPC is not set +# CONFIG_COMPAL_LAPTOP is not set +# CONFIG_LG_LAPTOP is not set +# CONFIG_PANASONIC_LAPTOP is not set +# CONFIG_SONY_LAPTOP is not set +# CONFIG_SYSTEM76_ACPI is not set +# CONFIG_TOPSTAR_LAPTOP is not set +# CONFIG_MLX_PLATFORM is not set +# CONFIG_INTEL_IPS is not set +# CONFIG_INTEL_SCU_PCI is not set +# CONFIG_INTEL_SCU_PLATFORM is not set +# CONFIG_SIEMENS_SIMATIC_IPC is not set +# CONFIG_WINMATE_FM07_KEYS is not set +CONFIG_P2SB=y +# CONFIG_COMMON_CLK is not set +# CONFIG_HWSPINLOCK is not set + +# +# Clock Source drivers +# +CONFIG_CLKEVT_I8253=y +CONFIG_I8253_LOCK=y +CONFIG_CLKBLD_I8253=y +# end of Clock Source drivers + +CONFIG_MAILBOX=y +CONFIG_PCC=y +# CONFIG_ALTERA_MBOX is not set +CONFIG_IOMMU_IOVA=y +CONFIG_IOASID=y +CONFIG_IOMMU_API=y +CONFIG_IOMMU_SUPPORT=y + +# +# Generic IOMMU Pagetable Support +# +CONFIG_IOMMU_IO_PGTABLE=y +# end of Generic IOMMU Pagetable Support + +# CONFIG_IOMMU_DEBUGFS is not set +# CONFIG_IOMMU_DEFAULT_DMA_STRICT is not set +CONFIG_IOMMU_DEFAULT_DMA_LAZY=y +# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set +CONFIG_IOMMU_DMA=y +CONFIG_AMD_IOMMU=y +# CONFIG_AMD_IOMMU_V2 is not set +CONFIG_DMAR_TABLE=y +CONFIG_INTEL_IOMMU=y +# CONFIG_INTEL_IOMMU_SVM is not set +# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set +CONFIG_INTEL_IOMMU_FLOPPY_WA=y +CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON=y +CONFIG_IRQ_REMAP=y +# CONFIG_VIRTIO_IOMMU is not set + +# +# Remoteproc drivers +# +# CONFIG_REMOTEPROC is not set +# end of Remoteproc drivers + +# +# Rpmsg drivers +# +# CONFIG_RPMSG_QCOM_GLINK_RPM is not set +# CONFIG_RPMSG_VIRTIO is not set +# end of Rpmsg drivers + +# CONFIG_SOUNDWIRE is not set + +# +# SOC (System On Chip) specific Drivers +# + +# +# Amlogic SoC drivers +# +# end of Amlogic SoC drivers + +# +# Broadcom SoC drivers +# +# end of Broadcom SoC drivers + +# +# NXP/Freescale QorIQ SoC drivers +# +# end of NXP/Freescale QorIQ SoC drivers + +# +# fujitsu SoC drivers +# +# end of fujitsu SoC drivers + +# +# i.MX SoC drivers +# +# end of i.MX SoC drivers + +# +# Enable LiteX SoC Builder specific drivers +# +# end of Enable LiteX SoC Builder specific drivers + +# +# Qualcomm SoC drivers +# +# end of Qualcomm SoC drivers + +# CONFIG_SOC_TI is not set + +# +# Xilinx SoC drivers +# +# end of Xilinx SoC drivers +# end of SOC (System On Chip) specific Drivers + +# CONFIG_PM_DEVFREQ is not set +# CONFIG_EXTCON is not set +# CONFIG_MEMORY is not set +# CONFIG_IIO is not set +# CONFIG_NTB is not set +# CONFIG_PWM is not set + +# +# IRQ chip support +# +# end of IRQ chip support + +# CONFIG_IPACK_BUS is not set +# CONFIG_RESET_CONTROLLER is not set + +# +# PHY Subsystem +# +# CONFIG_GENERIC_PHY is not set +# CONFIG_USB_LGM_PHY is not set +# CONFIG_PHY_CAN_TRANSCEIVER is not set + +# +# PHY drivers for Broadcom platforms +# +# CONFIG_BCM_KONA_USB2_PHY is not set +# end of PHY drivers for Broadcom platforms + +# CONFIG_PHY_PXA_28NM_HSIC is not set +# CONFIG_PHY_PXA_28NM_USB2 is not set +# CONFIG_PHY_INTEL_LGM_EMMC is not set +# end of PHY Subsystem + +# CONFIG_POWERCAP is not set +# CONFIG_MCB is not set + +# +# Performance monitor support +# +# end of Performance monitor support + +# CONFIG_RAS is not set +# CONFIG_USB4 is not set + +# +# Android +# +# CONFIG_ANDROID_BINDER_IPC is not set +# end of Android + +# CONFIG_LIBNVDIMM is not set +# CONFIG_DAX is not set +CONFIG_NVMEM=y +CONFIG_NVMEM_SYSFS=y +# CONFIG_NVMEM_RMEM is not set + +# +# HW tracing support +# +# CONFIG_STM is not set +# CONFIG_INTEL_TH is not set +# end of HW tracing support + +# CONFIG_FPGA is not set +# CONFIG_TEE is not set +# CONFIG_SIOX is not set +# CONFIG_SLIMBUS is not set +# CONFIG_INTERCONNECT is not set +# CONFIG_COUNTER is not set +# CONFIG_PECI is not set +# CONFIG_HTE is not set +# end of Device Drivers + +# +# File systems +# +CONFIG_DCACHE_WORD_ACCESS=y +# CONFIG_VALIDATE_FS_PARSER is not set +CONFIG_FS_IOMAP=y +# CONFIG_EXT2_FS is not set +# CONFIG_EXT3_FS is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_USE_FOR_EXT2=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +# CONFIG_EXT4_DEBUG is not set +CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set +CONFIG_FS_MBCACHE=y +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +# CONFIG_BTRFS_FS is not set +# CONFIG_NILFS2_FS is not set +# CONFIG_F2FS_FS is not set +CONFIG_FS_POSIX_ACL=y +CONFIG_EXPORTFS=y +# CONFIG_EXPORTFS_BLOCK_OPS is not set +CONFIG_FILE_LOCKING=y +# CONFIG_FS_ENCRYPTION is not set +# CONFIG_FS_VERITY is not set +CONFIG_FSNOTIFY=y +CONFIG_DNOTIFY=y +CONFIG_INOTIFY_USER=y +# CONFIG_FANOTIFY is not set +CONFIG_QUOTA=y +CONFIG_QUOTA_NETLINK_INTERFACE=y +# CONFIG_PRINT_QUOTA_WARNING is not set +# CONFIG_QUOTA_DEBUG is not set +CONFIG_QUOTA_TREE=y +# CONFIG_QFMT_V1 is not set +CONFIG_QFMT_V2=y +CONFIG_QUOTACTL=y +CONFIG_AUTOFS4_FS=y +CONFIG_AUTOFS_FS=y +# CONFIG_FUSE_FS is not set +# CONFIG_OVERLAY_FS is not set + +# +# Caches +# +CONFIG_NETFS_SUPPORT=y +# CONFIG_NETFS_STATS is not set +# CONFIG_FSCACHE is not set +# end of Caches + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=y +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +# CONFIG_UDF_FS is not set +# end of CD-ROM/DVD Filesystems + +# +# DOS/FAT/EXFAT/NT Filesystems +# +CONFIG_FAT_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_FAT_DEFAULT_UTF8 is not set +# CONFIG_EXFAT_FS is not set +# CONFIG_NTFS_FS is not set +# CONFIG_NTFS3_FS is not set +# end of DOS/FAT/EXFAT/NT Filesystems + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_VMCORE=y +# CONFIG_PROC_VMCORE_DEVICE_DUMP is not set +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y +# CONFIG_PROC_CHILDREN is not set +CONFIG_PROC_PID_ARCH_STATUS=y +CONFIG_KERNFS=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_XATTR=y +# CONFIG_TMPFS_INODE64 is not set +CONFIG_HUGETLBFS=y +CONFIG_HUGETLB_PAGE=y +CONFIG_ARCH_WANT_HUGETLB_PAGE_OPTIMIZE_VMEMMAP=y +CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP=y +# CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON is not set +CONFIG_MEMFD_CREATE=y +CONFIG_ARCH_HAS_GIGANTIC_PAGE=y +# CONFIG_CONFIGFS_FS is not set +CONFIG_EFIVAR_FS=m +# end of Pseudo filesystems + +CONFIG_MISC_FILESYSTEMS=y +# CONFIG_ORANGEFS_FS is not set +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_ECRYPT_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +# CONFIG_CRAMFS is not set +# CONFIG_SQUASHFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_OMFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_QNX6FS_FS is not set +# CONFIG_ROMFS_FS is not set +# CONFIG_PSTORE is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set +# CONFIG_EROFS_FS is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V2=y +CONFIG_NFS_V3=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +# CONFIG_NFS_SWAP is not set +# CONFIG_NFS_V4_1 is not set +CONFIG_ROOT_NFS=y +# CONFIG_NFS_USE_LEGACY_DNS is not set +CONFIG_NFS_USE_KERNEL_DNS=y +CONFIG_NFS_DISABLE_UDP_SUPPORT=y +# CONFIG_NFSD is not set +CONFIG_GRACE_PERIOD=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_NFS_ACL_SUPPORT=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +CONFIG_SUNRPC_GSS=y +# CONFIG_SUNRPC_DEBUG is not set +# CONFIG_CEPH_FS is not set +# CONFIG_CIFS is not set +# CONFIG_SMB_SERVER is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set +CONFIG_9P_FS=y +# CONFIG_9P_FS_POSIX_ACL is not set +# CONFIG_9P_FS_SECURITY is not set +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NLS_CODEPAGE_437=y +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +# CONFIG_NLS_MAC_ROMAN is not set +# CONFIG_NLS_MAC_CELTIC is not set +# CONFIG_NLS_MAC_CENTEURO is not set +# CONFIG_NLS_MAC_CROATIAN is not set +# CONFIG_NLS_MAC_CYRILLIC is not set +# CONFIG_NLS_MAC_GAELIC is not set +# CONFIG_NLS_MAC_GREEK is not set +# CONFIG_NLS_MAC_ICELAND is not set +# CONFIG_NLS_MAC_INUIT is not set +# CONFIG_NLS_MAC_ROMANIAN is not set +# CONFIG_NLS_MAC_TURKISH is not set +CONFIG_NLS_UTF8=y +# CONFIG_UNICODE is not set +CONFIG_IO_WQ=y +# end of File systems + +# +# Security options +# +CONFIG_KEYS=y +# CONFIG_KEYS_REQUEST_CACHE is not set +# CONFIG_PERSISTENT_KEYRINGS is not set +# CONFIG_TRUSTED_KEYS is not set +# CONFIG_ENCRYPTED_KEYS is not set +# CONFIG_KEY_DH_OPERATIONS is not set +# CONFIG_SECURITY_DMESG_RESTRICT is not set +CONFIG_SECURITY=y +CONFIG_SECURITY_WRITABLE_HOOKS=y +# CONFIG_SECURITYFS is not set +CONFIG_SECURITY_NETWORK=y +# CONFIG_SECURITY_NETWORK_XFRM is not set +# CONFIG_SECURITY_PATH is not set +# CONFIG_INTEL_TXT is not set +CONFIG_LSM_MMAP_MIN_ADDR=65536 +CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y +# CONFIG_HARDENED_USERCOPY is not set +# CONFIG_FORTIFY_SOURCE is not set +# CONFIG_STATIC_USERMODEHELPER is not set +CONFIG_SECURITY_SELINUX=y +CONFIG_SECURITY_SELINUX_BOOTPARAM=y +CONFIG_SECURITY_SELINUX_DISABLE=y +CONFIG_SECURITY_SELINUX_DEVELOP=y +CONFIG_SECURITY_SELINUX_AVC_STATS=y +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 +CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9 +CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 +# CONFIG_SECURITY_SMACK is not set +# CONFIG_SECURITY_TOMOYO is not set +# CONFIG_SECURITY_APPARMOR is not set +# CONFIG_SECURITY_LOADPIN is not set +# CONFIG_SECURITY_YAMA is not set +# CONFIG_SECURITY_SAFESETID is not set +# CONFIG_SECURITY_LOCKDOWN_LSM is not set +# CONFIG_SECURITY_LANDLOCK is not set +CONFIG_INTEGRITY=y +# CONFIG_INTEGRITY_SIGNATURE is not set +CONFIG_INTEGRITY_AUDIT=y +# CONFIG_IMA is not set +# CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT is not set +# CONFIG_EVM is not set +CONFIG_DEFAULT_SECURITY_SELINUX=y +# CONFIG_DEFAULT_SECURITY_DAC is not set +CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,integrity,selinux,smack,tomoyo,apparmor,bpf" + +# +# Kernel hardening options +# + +# +# Memory initialization +# +CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y +CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_ENABLER=y +CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y +# CONFIG_INIT_STACK_NONE is not set +# CONFIG_INIT_STACK_ALL_PATTERN is not set +CONFIG_INIT_STACK_ALL_ZERO=y +# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set +# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set +CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y +# CONFIG_ZERO_CALL_USED_REGS is not set +# end of Memory initialization + +CONFIG_CC_HAS_RANDSTRUCT=y +CONFIG_RANDSTRUCT_NONE=y +# CONFIG_RANDSTRUCT_FULL is not set +# end of Kernel hardening options +# end of Security options + +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_AEAD=y +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_SKCIPHER=y +CONFIG_CRYPTO_SKCIPHER2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_RNG=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_RNG_DEFAULT=y +CONFIG_CRYPTO_AKCIPHER2=y +CONFIG_CRYPTO_AKCIPHER=y +CONFIG_CRYPTO_KPP2=y +CONFIG_CRYPTO_ACOMP2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +# CONFIG_CRYPTO_USER is not set +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y +CONFIG_CRYPTO_GF128MUL=y +CONFIG_CRYPTO_NULL=y +CONFIG_CRYPTO_NULL2=y +# CONFIG_CRYPTO_PCRYPT is not set +# CONFIG_CRYPTO_CRYPTD is not set +CONFIG_CRYPTO_AUTHENC=y +# CONFIG_CRYPTO_TEST is not set +# end of Crypto core or helper + +# +# Public-key cryptography +# +CONFIG_CRYPTO_RSA=y +# CONFIG_CRYPTO_DH is not set +# CONFIG_CRYPTO_ECDH is not set +# CONFIG_CRYPTO_ECDSA is not set +# CONFIG_CRYPTO_ECRDSA is not set +# CONFIG_CRYPTO_SM2 is not set +# CONFIG_CRYPTO_CURVE25519 is not set +# end of Public-key cryptography + +# +# Block ciphers +# +CONFIG_CRYPTO_AES=y +# CONFIG_CRYPTO_AES_TI is not set +# CONFIG_CRYPTO_ARIA is not set +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set +# CONFIG_CRYPTO_DES is not set +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_SM4_GENERIC is not set +# CONFIG_CRYPTO_TWOFISH is not set +# end of Block ciphers + +# +# Length-preserving ciphers and modes +# +# CONFIG_CRYPTO_ADIANTUM is not set +# CONFIG_CRYPTO_CHACHA20 is not set +CONFIG_CRYPTO_CBC=y +# CONFIG_CRYPTO_CFB is not set +CONFIG_CRYPTO_CTR=y +# CONFIG_CRYPTO_CTS is not set +# CONFIG_CRYPTO_ECB is not set +# CONFIG_CRYPTO_HCTR2 is not set +# CONFIG_CRYPTO_KEYWRAP is not set +# CONFIG_CRYPTO_LRW is not set +# CONFIG_CRYPTO_OFB is not set +# CONFIG_CRYPTO_PCBC is not set +# CONFIG_CRYPTO_XTS is not set +# end of Length-preserving ciphers and modes + +# +# AEAD (authenticated encryption with associated data) ciphers +# +# CONFIG_CRYPTO_AEGIS128 is not set +# CONFIG_CRYPTO_CHACHA20POLY1305 is not set +CONFIG_CRYPTO_CCM=y +CONFIG_CRYPTO_GCM=y +CONFIG_CRYPTO_SEQIV=y +CONFIG_CRYPTO_ECHAINIV=y +# CONFIG_CRYPTO_ESSIV is not set +# end of AEAD (authenticated encryption with associated data) ciphers + +# +# Hashes, digests, and MACs +# +# CONFIG_CRYPTO_BLAKE2B is not set +CONFIG_CRYPTO_CMAC=y +CONFIG_CRYPTO_GHASH=y +CONFIG_CRYPTO_HMAC=y +# CONFIG_CRYPTO_MD4 is not set +CONFIG_CRYPTO_MD5=y +# CONFIG_CRYPTO_MICHAEL_MIC is not set +# CONFIG_CRYPTO_POLY1305 is not set +# CONFIG_CRYPTO_RMD160 is not set +# CONFIG_CRYPTO_SHA1 is not set +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_SHA512=y +# CONFIG_CRYPTO_SHA3 is not set +# CONFIG_CRYPTO_SM3_GENERIC is not set +# CONFIG_CRYPTO_STREEBOG is not set +# CONFIG_CRYPTO_VMAC is not set +# CONFIG_CRYPTO_WP512 is not set +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_XXHASH is not set +# end of Hashes, digests, and MACs + +# +# CRCs (cyclic redundancy checks) +# +CONFIG_CRYPTO_CRC32C=y +# CONFIG_CRYPTO_CRC32 is not set +# CONFIG_CRYPTO_CRCT10DIF is not set +# end of CRCs (cyclic redundancy checks) + +# +# Compression +# +# CONFIG_CRYPTO_DEFLATE is not set +# CONFIG_CRYPTO_LZO is not set +# CONFIG_CRYPTO_842 is not set +# CONFIG_CRYPTO_LZ4 is not set +# CONFIG_CRYPTO_LZ4HC is not set +# CONFIG_CRYPTO_ZSTD is not set +# end of Compression + +# +# Random number generation +# +# CONFIG_CRYPTO_ANSI_CPRNG is not set +CONFIG_CRYPTO_DRBG_MENU=y +CONFIG_CRYPTO_DRBG_HMAC=y +# CONFIG_CRYPTO_DRBG_HASH is not set +# CONFIG_CRYPTO_DRBG_CTR is not set +CONFIG_CRYPTO_DRBG=y +CONFIG_CRYPTO_JITTERENTROPY=y +# end of Random number generation + +# +# Userspace interface +# +# CONFIG_CRYPTO_USER_API_HASH is not set +# CONFIG_CRYPTO_USER_API_SKCIPHER is not set +# CONFIG_CRYPTO_USER_API_RNG is not set +# CONFIG_CRYPTO_USER_API_AEAD is not set +# end of Userspace interface + +CONFIG_CRYPTO_HASH_INFO=y + +# +# Accelerated Cryptographic Algorithms for CPU (x86) +# +# CONFIG_CRYPTO_CURVE25519_X86 is not set +# CONFIG_CRYPTO_AES_NI_INTEL is not set +# CONFIG_CRYPTO_BLOWFISH_X86_64 is not set +# CONFIG_CRYPTO_CAMELLIA_X86_64 is not set +# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64 is not set +# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_CAST5_AVX_X86_64 is not set +# CONFIG_CRYPTO_CAST6_AVX_X86_64 is not set +# CONFIG_CRYPTO_DES3_EDE_X86_64 is not set +# CONFIG_CRYPTO_SERPENT_SSE2_X86_64 is not set +# CONFIG_CRYPTO_SERPENT_AVX_X86_64 is not set +# CONFIG_CRYPTO_SERPENT_AVX2_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_TWOFISH_X86_64 is not set +# CONFIG_CRYPTO_TWOFISH_X86_64_3WAY is not set +# CONFIG_CRYPTO_TWOFISH_AVX_X86_64 is not set +# CONFIG_CRYPTO_ARIA_AESNI_AVX_X86_64 is not set +# CONFIG_CRYPTO_CHACHA20_X86_64 is not set +# CONFIG_CRYPTO_AEGIS128_AESNI_SSE2 is not set +# CONFIG_CRYPTO_NHPOLY1305_SSE2 is not set +# CONFIG_CRYPTO_NHPOLY1305_AVX2 is not set +# CONFIG_CRYPTO_BLAKE2S_X86 is not set +# CONFIG_CRYPTO_POLYVAL_CLMUL_NI is not set +# CONFIG_CRYPTO_POLY1305_X86_64 is not set +# CONFIG_CRYPTO_SHA1_SSSE3 is not set +# CONFIG_CRYPTO_SHA256_SSSE3 is not set +# CONFIG_CRYPTO_SHA512_SSSE3 is not set +# CONFIG_CRYPTO_SM3_AVX_X86_64 is not set +# CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL is not set +# CONFIG_CRYPTO_CRC32C_INTEL is not set +# CONFIG_CRYPTO_CRC32_PCLMUL is not set +# end of Accelerated Cryptographic Algorithms for CPU (x86) + +CONFIG_CRYPTO_HW=y +# CONFIG_CRYPTO_DEV_PADLOCK is not set +# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set +# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set +# CONFIG_CRYPTO_DEV_CCP is not set +# CONFIG_CRYPTO_DEV_QAT_DH895xCC is not set +# CONFIG_CRYPTO_DEV_QAT_C3XXX is not set +# CONFIG_CRYPTO_DEV_QAT_C62X is not set +# CONFIG_CRYPTO_DEV_QAT_4XXX is not set +# CONFIG_CRYPTO_DEV_QAT_DH895xCCVF is not set +# CONFIG_CRYPTO_DEV_QAT_C3XXXVF is not set +# CONFIG_CRYPTO_DEV_QAT_C62XVF is not set +# CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set +# CONFIG_CRYPTO_DEV_VIRTIO is not set +# CONFIG_CRYPTO_DEV_SAFEXCEL is not set +# CONFIG_CRYPTO_DEV_AMLOGIC_GXL is not set +CONFIG_ASYMMETRIC_KEY_TYPE=y +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y +CONFIG_X509_CERTIFICATE_PARSER=y +# CONFIG_PKCS8_PRIVATE_KEY_PARSER is not set +CONFIG_PKCS7_MESSAGE_PARSER=y +# CONFIG_PKCS7_TEST_KEY is not set +# CONFIG_SIGNED_PE_FILE_VERIFICATION is not set +# CONFIG_FIPS_SIGNATURE_SELFTEST is not set + +# +# Certificates for signature checking +# +CONFIG_SYSTEM_TRUSTED_KEYRING=y +CONFIG_SYSTEM_TRUSTED_KEYS="" +# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set +# CONFIG_SECONDARY_TRUSTED_KEYRING is not set +# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set +# end of Certificates for signature checking + +CONFIG_BINARY_PRINTF=y + +# +# Library routines +# +# CONFIG_PACKING is not set +CONFIG_BITREVERSE=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +CONFIG_GENERIC_NET_UTILS=y +# CONFIG_CORDIC is not set +# CONFIG_PRIME_NUMBERS is not set +CONFIG_RATIONAL=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_IOMAP=y +CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y +CONFIG_ARCH_HAS_FAST_MULTIPLIER=y +CONFIG_ARCH_USE_SYM_ANNOTATIONS=y + +# +# Crypto library routines +# +CONFIG_CRYPTO_LIB_UTILS=y +CONFIG_CRYPTO_LIB_AES=y +CONFIG_CRYPTO_LIB_ARC4=y +CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y +# CONFIG_CRYPTO_LIB_CHACHA is not set +# CONFIG_CRYPTO_LIB_CURVE25519 is not set +CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11 +# CONFIG_CRYPTO_LIB_POLY1305 is not set +# CONFIG_CRYPTO_LIB_CHACHA20POLY1305 is not set +CONFIG_CRYPTO_LIB_SHA1=y +CONFIG_CRYPTO_LIB_SHA256=y +# end of Crypto library routines + +CONFIG_CRC_CCITT=y +CONFIG_CRC16=y +# CONFIG_CRC_T10DIF is not set +# CONFIG_CRC64_ROCKSOFT is not set +# CONFIG_CRC_ITU_T is not set +CONFIG_CRC32=y +# CONFIG_CRC32_SELFTEST is not set +CONFIG_CRC32_SLICEBY8=y +# CONFIG_CRC32_SLICEBY4 is not set +# CONFIG_CRC32_SARWATE is not set +# CONFIG_CRC32_BIT is not set +# CONFIG_CRC64 is not set +# CONFIG_CRC4 is not set +# CONFIG_CRC7 is not set +# CONFIG_LIBCRC32C is not set +# CONFIG_CRC8 is not set +CONFIG_XXHASH=y +# CONFIG_RANDOM32_SELFTEST is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_LZ4_DECOMPRESS=y +CONFIG_ZSTD_COMMON=y +CONFIG_ZSTD_DECOMPRESS=y +CONFIG_XZ_DEC=y +CONFIG_XZ_DEC_X86=y +CONFIG_XZ_DEC_POWERPC=y +CONFIG_XZ_DEC_IA64=y +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_ARMTHUMB=y +CONFIG_XZ_DEC_SPARC=y +# CONFIG_XZ_DEC_MICROLZMA is not set +CONFIG_XZ_DEC_BCJ=y +# CONFIG_XZ_DEC_TEST is not set +CONFIG_DECOMPRESS_GZIP=y +CONFIG_DECOMPRESS_BZIP2=y +CONFIG_DECOMPRESS_LZMA=y +CONFIG_DECOMPRESS_XZ=y +CONFIG_DECOMPRESS_LZO=y +CONFIG_DECOMPRESS_LZ4=y +CONFIG_DECOMPRESS_ZSTD=y +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_INTERVAL_TREE=y +CONFIG_XARRAY_MULTI=y +CONFIG_ASSOCIATIVE_ARRAY=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT_MAP=y +CONFIG_HAS_DMA=y +CONFIG_DMA_OPS=y +CONFIG_NEED_SG_DMA_LENGTH=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_SWIOTLB=y +# CONFIG_DMA_API_DEBUG is not set +# CONFIG_DMA_MAP_BENCHMARK is not set +CONFIG_SGL_ALLOC=y +CONFIG_CHECK_SIGNATURE=y +# CONFIG_FORCE_NR_CPUS is not set +CONFIG_CPU_RMAP=y +CONFIG_DQL=y +CONFIG_GLOB=y +# CONFIG_GLOB_SELFTEST is not set +CONFIG_NLATTR=y +CONFIG_CLZ_TAB=y +# CONFIG_IRQ_POLL is not set +CONFIG_MPILIB=y +CONFIG_OID_REGISTRY=y +CONFIG_UCS2_STRING=y +CONFIG_HAVE_GENERIC_VDSO=y +CONFIG_GENERIC_GETTIMEOFDAY=y +CONFIG_GENERIC_VDSO_TIME_NS=y +CONFIG_FONT_SUPPORT=y +CONFIG_FONT_8x16=y +CONFIG_FONT_AUTOSELECT=y +CONFIG_SG_POOL=y +CONFIG_ARCH_HAS_PMEM_API=y +CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y +CONFIG_ARCH_HAS_COPY_MC=y +CONFIG_ARCH_STACKWALK=y +CONFIG_STACKDEPOT=y +CONFIG_SBITMAP=y +# end of Library routines + +# +# Kernel hacking +# + +# +# printk and dmesg options +# +CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_CALLER is not set +# CONFIG_STACKTRACE_BUILD_ID is not set +CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 +CONFIG_CONSOLE_LOGLEVEL_QUIET=4 +CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 +# CONFIG_BOOT_PRINTK_DELAY is not set +# CONFIG_DYNAMIC_DEBUG is not set +# CONFIG_DYNAMIC_DEBUG_CORE is not set +CONFIG_SYMBOLIC_ERRNAME=y +CONFIG_DEBUG_BUGVERBOSE=y +# end of printk and dmesg options + +CONFIG_DEBUG_KERNEL=y +CONFIG_DEBUG_MISC=y + +# +# Compile-time checks and compiler options +# +CONFIG_AS_HAS_NON_CONST_LEB128=y +CONFIG_DEBUG_INFO_NONE=y +# CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT is not set +# CONFIG_DEBUG_INFO_DWARF4 is not set +# CONFIG_DEBUG_INFO_DWARF5 is not set +CONFIG_FRAME_WARN=2048 +# CONFIG_STRIP_ASM_SYMS is not set +# CONFIG_HEADERS_INSTALL is not set +CONFIG_SECTION_MISMATCH_WARN_ONLY=y +CONFIG_OBJTOOL=y +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# end of Compile-time checks and compiler options + +# +# Generic Kernel Debugging Instruments +# +CONFIG_MAGIC_SYSRQ=y +CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 +CONFIG_MAGIC_SYSRQ_SERIAL=y +CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" +CONFIG_DEBUG_FS=y +CONFIG_DEBUG_FS_ALLOW_ALL=y +# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set +# CONFIG_DEBUG_FS_ALLOW_NONE is not set +CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_KGDB is not set +CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y +# CONFIG_UBSAN is not set +CONFIG_HAVE_ARCH_KCSAN=y +CONFIG_HAVE_KCSAN_COMPILER=y +# CONFIG_KCSAN is not set +# end of Generic Kernel Debugging Instruments + +# +# Networking Debugging +# +# CONFIG_NET_DEV_REFCNT_TRACKER is not set +# CONFIG_NET_NS_REFCNT_TRACKER is not set +# CONFIG_DEBUG_NET is not set +# end of Networking Debugging + +# +# Memory Debugging +# +# CONFIG_PAGE_EXTENSION is not set +# CONFIG_DEBUG_PAGEALLOC is not set +CONFIG_SLUB_DEBUG=y +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_PAGE_OWNER is not set +# CONFIG_PAGE_TABLE_CHECK is not set +# CONFIG_PAGE_POISONING is not set +# CONFIG_DEBUG_PAGE_REF is not set +# CONFIG_DEBUG_RODATA_TEST is not set +CONFIG_ARCH_HAS_DEBUG_WX=y +CONFIG_DEBUG_WX=y +CONFIG_GENERIC_PTDUMP=y +CONFIG_PTDUMP_CORE=y +# CONFIG_PTDUMP_DEBUGFS is not set +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_SHRINKER_DEBUG is not set +CONFIG_HAVE_DEBUG_KMEMLEAK=y +# CONFIG_DEBUG_KMEMLEAK is not set +CONFIG_DEBUG_STACK_USAGE=y +# CONFIG_SCHED_STACK_END_CHECK is not set +CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_VM_PGTABLE is not set +CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y +# CONFIG_DEBUG_VIRTUAL is not set +CONFIG_DEBUG_MEMORY_INIT=y +# CONFIG_DEBUG_PER_CPU_MAPS is not set +CONFIG_ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP=y +# CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP is not set +CONFIG_HAVE_ARCH_KASAN=y +CONFIG_HAVE_ARCH_KASAN_VMALLOC=y +CONFIG_CC_HAS_KASAN_GENERIC=y +CONFIG_CC_HAS_KASAN_SW_TAGS=y +CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y +# CONFIG_KASAN is not set +CONFIG_HAVE_ARCH_KFENCE=y +# CONFIG_KFENCE is not set +CONFIG_HAVE_ARCH_KMSAN=y +CONFIG_HAVE_KMSAN_COMPILER=y +# CONFIG_KMSAN is not set +# end of Memory Debugging + +# CONFIG_DEBUG_SHIRQ is not set + +# +# Debug Oops, Lockups and Hangs +# +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 +CONFIG_PANIC_TIMEOUT=0 +# CONFIG_SOFTLOCKUP_DETECTOR is not set +CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y +# CONFIG_HARDLOCKUP_DETECTOR is not set +# CONFIG_DETECT_HUNG_TASK is not set +# CONFIG_WQ_WATCHDOG is not set +# CONFIG_TEST_LOCKUP is not set +# end of Debug Oops, Lockups and Hangs + +# +# Scheduler Debugging +# +# CONFIG_SCHED_DEBUG is not set +CONFIG_SCHED_INFO=y +CONFIG_SCHEDSTATS=y +# end of Scheduler Debugging + +# CONFIG_DEBUG_TIMEKEEPING is not set +CONFIG_DEBUG_PREEMPT=y + +# +# Lock Debugging (spinlocks, mutexes, etc...) +# +CONFIG_LOCK_DEBUGGING_SUPPORT=y +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set +# CONFIG_DEBUG_RWSEMS is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_LOCK_TORTURE_TEST is not set +# CONFIG_WW_MUTEX_SELFTEST is not set +# CONFIG_SCF_TORTURE_TEST is not set +# CONFIG_CSD_LOCK_WAIT_DEBUG is not set +# end of Lock Debugging (spinlocks, mutexes, etc...) + +# CONFIG_DEBUG_IRQFLAGS is not set +CONFIG_STACKTRACE=y +# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set +# CONFIG_DEBUG_KOBJECT is not set + +# +# Debug kernel data structures +# +# CONFIG_DEBUG_LIST is not set +# CONFIG_DEBUG_PLIST is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_BUG_ON_DATA_CORRUPTION is not set +# CONFIG_DEBUG_MAPLE_TREE is not set +# end of Debug kernel data structures + +# CONFIG_DEBUG_CREDENTIALS is not set + +# +# RCU Debugging +# +# CONFIG_RCU_SCALE_TEST is not set +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_RCU_REF_SCALE_TEST is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=21 +CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0 +CONFIG_RCU_TRACE=y +# CONFIG_RCU_EQS_DEBUG is not set +# end of RCU Debugging + +# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set +# CONFIG_LATENCYTOP is not set +CONFIG_USER_STACKTRACE_SUPPORT=y +CONFIG_NOP_TRACER=y +CONFIG_HAVE_RETHOOK=y +CONFIG_RETHOOK=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS=y +CONFIG_HAVE_DYNAMIC_FTRACE_NO_PATCHABLE=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_FENTRY=y +CONFIG_HAVE_OBJTOOL_MCOUNT=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_HAVE_BUILDTIME_MCOUNT_SORT=y +CONFIG_TRACE_CLOCK=y +CONFIG_RING_BUFFER=y +CONFIG_EVENT_TRACING=y +CONFIG_CONTEXT_SWITCH_TRACER=y +CONFIG_TRACING=y +CONFIG_GENERIC_TRACER=y +CONFIG_TRACING_SUPPORT=y +CONFIG_FTRACE=y +# CONFIG_BOOTTIME_TRACING is not set +# CONFIG_FUNCTION_TRACER is not set +# CONFIG_STACK_TRACER is not set +# CONFIG_IRQSOFF_TRACER is not set +# CONFIG_PREEMPT_TRACER is not set +# CONFIG_SCHED_TRACER is not set +# CONFIG_HWLAT_TRACER is not set +# CONFIG_OSNOISE_TRACER is not set +# CONFIG_TIMERLAT_TRACER is not set +# CONFIG_MMIOTRACE is not set +# CONFIG_FTRACE_SYSCALLS is not set +# CONFIG_TRACER_SNAPSHOT is not set +CONFIG_BRANCH_PROFILE_NONE=y +# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set +# CONFIG_PROFILE_ALL_BRANCHES is not set +CONFIG_BLK_DEV_IO_TRACE=y +CONFIG_KPROBE_EVENTS=y +CONFIG_UPROBE_EVENTS=y +CONFIG_DYNAMIC_EVENTS=y +CONFIG_PROBE_EVENTS=y +# CONFIG_SYNTH_EVENTS is not set +# CONFIG_HIST_TRIGGERS is not set +# CONFIG_TRACE_EVENT_INJECT is not set +# CONFIG_TRACEPOINT_BENCHMARK is not set +# CONFIG_RING_BUFFER_BENCHMARK is not set +# CONFIG_TRACE_EVAL_MAP_FILE is not set +# CONFIG_FTRACE_STARTUP_TEST is not set +# CONFIG_RING_BUFFER_STARTUP_TEST is not set +# CONFIG_RING_BUFFER_VALIDATE_TIME_DELTAS is not set +# CONFIG_PREEMPTIRQ_DELAY_TEST is not set +# CONFIG_KPROBE_EVENT_GEN_TEST is not set +# CONFIG_RV is not set +CONFIG_PROVIDE_OHCI1394_DMA_INIT=y +# CONFIG_SAMPLES is not set +CONFIG_HAVE_SAMPLE_FTRACE_DIRECT=y +CONFIG_HAVE_SAMPLE_FTRACE_DIRECT_MULTI=y +CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y +CONFIG_STRICT_DEVMEM=y +# CONFIG_IO_STRICT_DEVMEM is not set + +# +# x86 Debugging +# +CONFIG_EARLY_PRINTK_USB=y +CONFIG_X86_VERBOSE_BOOTUP=y +CONFIG_EARLY_PRINTK=y +CONFIG_EARLY_PRINTK_DBGP=y +# CONFIG_EARLY_PRINTK_USB_XDBC is not set +# CONFIG_EFI_PGT_DUMP is not set +# CONFIG_DEBUG_TLBFLUSH is not set +CONFIG_HAVE_MMIOTRACE_SUPPORT=y +# CONFIG_X86_DECODER_SELFTEST is not set +CONFIG_IO_DELAY_0X80=y +# CONFIG_IO_DELAY_0XED is not set +# CONFIG_IO_DELAY_UDELAY is not set +# CONFIG_IO_DELAY_NONE is not set +CONFIG_DEBUG_BOOT_PARAMS=y +# CONFIG_CPA_DEBUG is not set +# CONFIG_DEBUG_ENTRY is not set +# CONFIG_DEBUG_NMI_SELFTEST is not set +CONFIG_X86_DEBUG_FPU=y +# CONFIG_PUNIT_ATOM_DEBUG is not set +CONFIG_UNWINDER_ORC=y +# CONFIG_UNWINDER_FRAME_POINTER is not set +# end of x86 Debugging + +# +# Kernel Testing and Coverage +# +# CONFIG_KUNIT is not set +# CONFIG_NOTIFIER_ERROR_INJECTION is not set +# CONFIG_FUNCTION_ERROR_INJECTION is not set +# CONFIG_FAULT_INJECTION is not set +CONFIG_ARCH_HAS_KCOV=y +CONFIG_CC_HAS_SANCOV_TRACE_PC=y +# CONFIG_KCOV is not set +CONFIG_RUNTIME_TESTING_MENU=y +# CONFIG_LKDTM is not set +# CONFIG_TEST_MIN_HEAP is not set +# CONFIG_TEST_DIV64 is not set +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_TEST_REF_TRACKER is not set +# CONFIG_RBTREE_TEST is not set +# CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_INTERVAL_TREE_TEST is not set +# CONFIG_PERCPU_TEST is not set +# CONFIG_ATOMIC64_SELFTEST is not set +# CONFIG_TEST_HEXDUMP is not set +# CONFIG_STRING_SELFTEST is not set +# CONFIG_TEST_STRING_HELPERS is not set +# CONFIG_TEST_STRSCPY is not set +# CONFIG_TEST_KSTRTOX is not set +# CONFIG_TEST_PRINTF is not set +# CONFIG_TEST_SCANF is not set +# CONFIG_TEST_BITMAP is not set +# CONFIG_TEST_UUID is not set +# CONFIG_TEST_XARRAY is not set +# CONFIG_TEST_MAPLE_TREE is not set +# CONFIG_TEST_RHASHTABLE is not set +# CONFIG_TEST_SIPHASH is not set +# CONFIG_TEST_IDA is not set +# CONFIG_TEST_LKM is not set +# CONFIG_TEST_BITOPS is not set +# CONFIG_TEST_VMALLOC is not set +# CONFIG_TEST_USER_COPY is not set +# CONFIG_TEST_BPF is not set +# CONFIG_TEST_BLACKHOLE_DEV is not set +# CONFIG_FIND_BIT_BENCHMARK is not set +# CONFIG_TEST_FIRMWARE is not set +# CONFIG_TEST_SYSCTL is not set +# CONFIG_TEST_UDELAY is not set +# CONFIG_TEST_STATIC_KEYS is not set +# CONFIG_TEST_KMOD is not set +# CONFIG_TEST_MEMCAT_P is not set +# CONFIG_TEST_MEMINIT is not set +# CONFIG_TEST_FREE_PAGES is not set +# CONFIG_TEST_FPU is not set +# CONFIG_TEST_CLOCKSOURCE_WATCHDOG is not set +CONFIG_ARCH_USE_MEMTEST=y +# CONFIG_MEMTEST is not set +# end of Kernel Testing and Coverage + +# +# Rust hacking +# +# CONFIG_RUST_DEBUG_ASSERTIONS is not set +CONFIG_RUST_OVERFLOW_CHECKS=y +# end of Rust hacking +# end of Kernel hacking diff --git a/rkos/src/config_sys.rs b/rkos/src/config_sys.rs new file mode 100644 index 0000000000000000000000000000000000000000..cdca2b618ac2753b30bca2431e3e1d5b901e6c22 --- /dev/null +++ b/rkos/src/config_sys.rs @@ -0,0 +1,323 @@ +extern crate dagrs; + +use crate::utils; +use crate::utils::ProgramEndingFlag; +use crate::vars; +use dagrs::{EnvVar, Inputval, Retval, TaskTrait}; +use log::error; +use std::fs::File; +use std::path::PathBuf; +use std::process::{Command, Stdio}; + +fn exec_config_script(script_path: PathBuf) -> bool { + let stdout_file = match File::create("/root/config.log") { + Ok(v) => v, + Err(_e) => return false, + }; + + let stderr_file = match stdout_file.try_clone() { + Ok(v) => v, + Err(_e) => return false, + }; + + let stdout = Stdio::from(stdout_file); + let stderr = Stdio::from(stderr_file); + + let output = match Command::new("/bin/bash") + .env_clear() + .env("PATH", "/usr/bin:/usr/sbin") + .env("HOME", "/root") + .env("TERM", "$TERM") + .arg("-e") + .arg(script_path) + .stdout(stdout) + .stderr(stderr) + .status() + { + Ok(v) => v, + Err(_e) => return false, + }; + output.success() +} + +pub struct Fstab {} +impl utils::ProgramEndingFlag for Fstab {} +impl TaskTrait for Fstab { + fn run(&self, _input: Inputval, _env: EnvVar) -> Retval { + self.check_flag(); + let script_path: PathBuf = [ + &vars::BASE_CONFIG.scripts_path.root, + &vars::BASE_CONFIG.scripts_path.sysconfig, + "config_fstab.sh", + ] + .iter() + .collect(); + + let stdout_file = match File::create("/root/config.log") { + Ok(v) => v, + Err(_e) => panic!(), + }; + + let stderr_file = match stdout_file.try_clone() { + Ok(v) => v, + Err(_e) => panic!(), + }; + + let stdout = Stdio::from(stdout_file); + let stderr = Stdio::from(stderr_file); + + let output = match Command::new("/bin/bash") + .env_clear() + .env("PATH", "/usr/bin:/usr/sbin") + .env("HOME", "/root") + .env("TERM", "$TERM") + .arg("-e") + .arg(script_path) + .arg(vars::ROOT_UUID.clone()) + .arg(vars::BOOT_UUID.clone()) + .stdout(stdout) + .stderr(stderr) + .status() + { + Ok(v) => v, + Err(e) => { + error!("Exec fstab config script failed {}", e); + self.try_set_flag(false); + panic!(); + } + }; + + match output.success() { + true => (), + false => self.try_set_flag(false), + }; + + Retval::empty() + } +} + +pub struct Inputrc {} +impl utils::ProgramEndingFlag for Inputrc {} +impl TaskTrait for Inputrc { + fn run(&self, _input: Inputval, _env: EnvVar) -> Retval { + self.check_flag(); + let script_path: PathBuf = [ + &vars::BASE_CONFIG.scripts_path.root, + &vars::BASE_CONFIG.scripts_path.sysconfig, + "config_inputrc.sh", + ] + .iter() + .collect(); + match exec_config_script(script_path) { + true => {} + false => self.try_set_flag(false), + }; + + Retval::empty() + } +} + +pub struct Network {} +impl utils::ProgramEndingFlag for Network {} +impl TaskTrait for Network { + fn run(&self, _input: Inputval, _env: EnvVar) -> Retval { + self.check_flag(); + let script_path: PathBuf = [ + &vars::BASE_CONFIG.scripts_path.root, + &vars::BASE_CONFIG.scripts_path.sysconfig, + "config_network.sh", + ] + .iter() + .collect(); + match exec_config_script(script_path) { + true => {} + false => self.try_set_flag(false), + }; + + Retval::empty() + } +} + +pub struct Profile {} +impl utils::ProgramEndingFlag for Profile {} +impl TaskTrait for Profile { + fn run(&self, _input: Inputval, _env: EnvVar) -> Retval { + self.check_flag(); + let script_path: PathBuf = [ + &vars::BASE_CONFIG.scripts_path.root, + &vars::BASE_CONFIG.scripts_path.sysconfig, + "config_profile.sh", + ] + .iter() + .collect(); + match exec_config_script(script_path) { + true => {} + false => self.try_set_flag(false), + }; + + Retval::empty() + } +} + +pub struct RcSite {} +impl utils::ProgramEndingFlag for RcSite {} +impl TaskTrait for RcSite { + fn run(&self, _input: Inputval, _env: EnvVar) -> Retval { + self.check_flag(); + let script_path: PathBuf = [ + &vars::BASE_CONFIG.scripts_path.root, + &vars::BASE_CONFIG.scripts_path.sysconfig, + "config_rc_site.sh", + ] + .iter() + .collect(); + match exec_config_script(script_path) { + true => {} + false => self.try_set_flag(false), + }; + + Retval::empty() + } +} + +pub struct Shell {} +impl utils::ProgramEndingFlag for Shell {} +impl TaskTrait for Shell { + fn run(&self, _input: Inputval, _env: EnvVar) -> Retval { + self.check_flag(); + let script_path: PathBuf = [ + &vars::BASE_CONFIG.scripts_path.root, + &vars::BASE_CONFIG.scripts_path.sysconfig, + "config_shell.sh", + ] + .iter() + .collect(); + match exec_config_script(script_path) { + true => {} + false => self.try_set_flag(false), + }; + + Retval::empty() + } +} + +pub struct Sysvinit {} +impl utils::ProgramEndingFlag for Sysvinit {} +impl TaskTrait for Sysvinit { + fn run(&self, _input: Inputval, _env: EnvVar) -> Retval { + self.check_flag(); + let script_path: PathBuf = [ + &vars::BASE_CONFIG.scripts_path.root, + &vars::BASE_CONFIG.scripts_path.sysconfig, + "config_sysvinit.sh", + ] + .iter() + .collect(); + match exec_config_script(script_path) { + true => {} + false => self.try_set_flag(false), + }; + + Retval::empty() + } +} + +pub struct Time {} +impl utils::ProgramEndingFlag for Time {} +impl TaskTrait for Time { + fn run(&self, _input: Inputval, _env: EnvVar) -> Retval { + self.check_flag(); + let script_path: PathBuf = [ + &vars::BASE_CONFIG.scripts_path.root, + &vars::BASE_CONFIG.scripts_path.sysconfig, + "config_time.sh", + ] + .iter() + .collect(); + match exec_config_script(script_path) { + true => {} + false => self.try_set_flag(false), + }; + + Retval::empty() + } +} + +//TODO:kernel 部分如果按照单独的安装,还是需要有按照软件安装的流程,所以先放到软件的部分,后续再优 +//化 +pub struct InstallKernel {} +impl utils::ProgramEndingFlag for InstallKernel {} +impl TaskTrait for InstallKernel { + fn run(&self, _input: Inputval, _env: EnvVar) -> Retval { + self.check_flag(); + let script_path: PathBuf = [ + &vars::BASE_CONFIG.scripts_path.root, + &vars::BASE_CONFIG.scripts_path.sysconfig, + "config_kernel.sh", + ] + .iter() + .collect(); + match exec_config_script(script_path) { + true => (), + false => self.try_set_flag(false), + }; + + Retval::empty() + } +} + +pub struct ConfigGrub {} +impl utils::ProgramEndingFlag for ConfigGrub {} +impl TaskTrait for ConfigGrub { + fn run(&self, _input: Inputval, _env: EnvVar) -> Retval { + self.check_flag(); + //执行脚本 + let script_path: PathBuf = [ + &vars::BASE_CONFIG.scripts_path.root, + &vars::BASE_CONFIG.scripts_path.sysconfig, + "config_grub.sh", + ] + .iter() + .collect(); + + let stdout_file = match File::create("/root/grub.log") { + Ok(v) => v, + Err(_e) => panic!(), + }; + + let stderr_file = match stdout_file.try_clone() { + Ok(v) => v, + Err(_e) => panic!(), + }; + + let stdout = Stdio::from(stdout_file); + let stderr = Stdio::from(stderr_file); + + let output = match Command::new("/bin/bash") + .env_clear() + .env("PATH", "/usr/bin:/usr/sbin") + .env("HOME", "/root") + .env("TERM", "$TERM") + .arg("-e") + .arg(script_path) + .arg(vars::BOOT_UUID.clone()) + .arg(vars::ROOT_PARTUUID.clone()) + .stdout(stdout) + .stderr(stderr) + .status() + { + Ok(v) => v, + Err(e) => { + error!("Exec grub install script failed {}", e); + self.try_set_flag(false); + panic!(); + } + }; + + match output.success() { + true => (), + false => self.try_set_flag(false), + }; + Retval::empty() + } +} diff --git a/rkos/src/configs/base_configs.json b/rkos/src/configs/base_configs.json new file mode 100644 index 0000000000000000000000000000000000000000..1d4c37458e3017db5efb8637506c6a0ae723cab4 --- /dev/null +++ b/rkos/src/configs/base_configs.json @@ -0,0 +1,65 @@ +{ + "host_info": { + "target_part": "", + "stop_flag": "./stop" + }, + "scripts_path": { + "root": "./scripts/", + "build_base_packages": "build_base_packages/", + "build_temp_toolchains": "build_temp_toolchains/", + "build_rust_support_packages": "build_rust_support_packages/", + "chroot": "chroot/", + "clean": "clean/", + "prepare": "prepare/", + "release": "release/", + "sysconfig": "sysconfig/" + }, + "configs": { + "root": "./configs/", + "package_info": "packages_info.json", + "base_packages": "base_packages.json", + "temp_toolchains": "temp_toolchains.json", + "rust_support_packages": "rust_support_packages.json" + }, + "path": { + "root": "./", + "package_source": "sources/", + "package_build": "sources/", + "package_patches": "base_patches/", + "install_path": "/mnt/lfs/" + }, + "envs": [ + { + "name": "LFS", + "value": "/mnt/lfs" + }, + { + "name": "LFS_TGT", + "value": "x86_64-rkos-linux-gnu" + }, + { + "name": "LC_ALL", + "value": "POSIX" + }, + { + "name": "PATH", + "value": "/tools/bin:/usr/bin:/bin" + }, + { + "name": "CONFIG_FILE", + "value": "$LFS/usr/share/config.site" + }, + { + "name": "MAKEFLAGS", + "value": "-j8" + }, + { + "name": "FORCE_UNSAFE_CONFIGURE", + "value": "1" + }, + { + "name": "NINJAJOBS", + "value": "4" + } + ] +} diff --git a/rkos/src/configs/base_packages.json b/rkos/src/configs/base_packages.json new file mode 100644 index 0000000000000000000000000000000000000000..cf9cd9b4998869d5be3e6c1884b1ab29268d4655 --- /dev/null +++ b/rkos/src/configs/base_packages.json @@ -0,0 +1,444 @@ +{ + "base_packages": [ + { + "name": "man-page", + "package_name": "man-pages", + "script": "man_page" + }, + { + "name": "iana-etc", + "package_name": "iana-etc", + "script": "iana_etc" + }, + { + "name": "glibc", + "package_name": "glibc", + "script": "glibc" + }, + { + "name": "zlib", + "package_name": "zlib", + "script": "zlib" + }, + { + "name": "bzip2", + "package_name": "bzip2", + "script": "bzip2" + }, + { + "name": "xz", + "package_name": "xz", + "script": "xz" + }, + { + "name": "zstd", + "package_name": "zstd", + "script": "zstd" + }, + { + "name": "file", + "package_name": "file", + "script": "file" + }, + { + "name": "readline", + "package_name": "readline", + "script": "readline" + }, + { + "name": "m4", + "package_name": "m4", + "script": "m4" + }, + { + "name": "bc", + "package_name": "bc", + "script": "bc" + }, + { + "name": "flex", + "package_name": "flex", + "script": "flex" + }, + { + "name": "tcl", + "package_name": "tcl8", + "script": "tcl" + }, + { + "name": "expect", + "package_name": "expect", + "script": "expect" + }, + { + "name": "dejagnu", + "package_name": "dejagnu", + "script": "dejagnu" + }, + { + "name": "binutils", + "package_name": "binutils", + "script": "binutils" + }, + { + "name": "gmp", + "package_name": "gmp", + "script": "gmp" + }, + { + "name": "mpfr", + "package_name": "mpfr", + "script": "mpfr" + }, + { + "name": "mpc", + "package_name": "mpc", + "script": "mpc" + }, + { + "name": "attr", + "package_name": "attr", + "script": "attr" + }, + { + "name": "acl", + "package_name": "acl", + "script": "acl" + }, + { + "name": "libcap", + "package_name": "libcap", + "script": "libcap" + }, + { + "name": "shadow", + "package_name": "shadow", + "script": "shadow" + }, + { + "name": "gcc", + "package_name": "gcc", + "script": "gcc" + }, + { + "name": "pkg-config", + "package_name": "pkg-config", + "script": "pkg_config" + }, + { + "name": "ncurses", + "package_name": "ncurses", + "script": "ncurses" + }, + { + "name": "sed", + "package_name": "sed", + "script": "sed" + }, + { + "name": "psmisc", + "package_name": "psmisc", + "script": "psmisc" + }, + { + "name": "gettext", + "package_name": "gettext", + "script": "gettext" + }, + { + "name": "bison", + "package_name": "bison", + "script": "bison" + }, + { + "name": "grep", + "package_name": "grep", + "script": "grep" + }, + { + "name": "bash", + "package_name": "bash", + "script": "bash" + }, + { + "name": "libtool", + "package_name": "libtool", + "script": "libtool" + }, + { + "name": "gdbm", + "package_name": "gdbm", + "script": "gdbm" + }, + { + "name": "gperf", + "package_name": "gperf", + "script": "gperf" + }, + { + "name": "expat", + "package_name": "expat", + "script": "expat" + }, + { + "name": "inetutils", + "package_name": "inetutils", + "script": "inetutils" + }, + { + "name": "less", + "package_name": "less", + "script": "less" + }, + { + "name": "perl", + "package_name": "perl", + "script": "perl" + }, + { + "name": "XML-Parser", + "package_name": "XML-Parser", + "script": "xml_parser" + }, + { + "name": "intltool", + "package_name": "intltool", + "script": "intltool" + }, + { + "name": "autoconf", + "package_name": "autoconf", + "script": "autoconf" + }, + { + "name": "automake", + "package_name": "automake", + "script": "automake" + }, + { + "name": "openssl", + "package_name": "openssl", + "script": "openssl" + }, + { + "name": "kmod", + "package_name": "kmod", + "script": "kmod" + }, + { + "name": "elfutils", + "package_name": "elfutils", + "script": "libelf" + }, + { + "name": "libffi", + "package_name": "libffi", + "script": "libffi" + }, + { + "name": "Python", + "package_name": "Python", + "script": "python" + }, + { + "name": "wheel", + "package_name": "wheel", + "script": "wheel" + }, + { + "name": "ninja", + "package_name": "ninja", + "script": "ninja" + }, + { + "name": "meson", + "package_name": "meson", + "script": "meson" + }, + { + "name": "check", + "package_name": "check", + "script": "check" + }, + { + "name": "diffutils", + "package_name": "diffutils", + "script": "diffutils" + }, + { + "name": "gawk", + "package_name": "gawk", + "script": "gawk" + }, + { + "name": "findutils", + "package_name": "findutils", + "script": "findutils" + }, + { + "name": "groff", + "package_name": "groff", + "script": "groff" + }, + { + "name": "grub", + "package_name": "grub", + "script": "grub" + }, + { + "name": "gzip", + "package_name": "gzip", + "script": "gzip" + }, + { + "name": "iproute", + "package_name": "iproute2", + "script": "iproute" + }, + { + "name": "kbd", + "package_name": "kbd", + "script": "kbd" + }, + { + "name": "libpipeline", + "package_name": "libpipeline", + "script": "libpipeline" + }, + { + "name": "make", + "package_name": "make", + "script": "make.sh" + }, + { + "name": "patch", + "package_name": "patch", + "script": "patch" + }, + { + "name": "tar", + "package_name": "tar", + "script": "tar" + }, + { + "name": "texinfo", + "package_name": "texinfo", + "script": "texinfo" + }, + { + "name": "vim", + "package_name": "vim", + "script": "vim" + }, + { + "name": "libxml2", + "package_name": "libxml2", + "script": "libxml2" + }, + { + "name": "nghttp", + "package_name": "nghttp", + "script": "nghttp" + }, + { + "name": "libuv", + "package_name": "libuv", + "script": "libuv" + }, + { + "name": "nettle", + "package_name": "nettle", + "script": "nettle" + }, + { + "name": "lzo", + "package_name": "lzo", + "script": "lzo" + }, + { + "name": "libarchive", + "package_name": "libarchive", + "script": "libarchive" + }, + { + "name": "libtasn", + "package_name": "libtasn", + "script": "libtasn" + }, + { + "name": "p11", + "package_name": "p11", + "script": "p11" + }, + { + "name": "make-ca", + "package_name": "make-ca", + "script": "make-ca" + }, + { + "name": "curl", + "package_name": "curl", + "script": "curl" + }, + { + "name": "cmake", + "package_name": "cmake", + "script": "cmake" + }, + { + "name": "llvm", + "package_name": "llvm", + "script": "llvm" + }, + { + "name": "eudev", + "package_name": "eudev", + "script": "eudev" + }, + { + "name": "man-db", + "package_name": "man-db", + "script": "man_db" + }, + { + "name": "procps-ng", + "package_name": "procps-ng", + "script": "procps_ng" + }, + { + "name": "util-linux", + "package_name": "util-linux", + "script": "util_linux" + }, + { + "name": "e2fsprogs", + "package_name": "e2fsprogs", + "script": "e2fsprogs" + }, + { + "name": "sysklogd", + "package_name": "sysklogd", + "script": "sysklogd" + }, + { + "name": "sysvinit", + "package_name": "sysvinit", + "script": "sysvinit" + }, + { + "name": "dhcpcd", + "package_name": "dhcpcd", + "script": "dhcpcd" + }, + { + "name": "blfs-bootscripts", + "package_name": "blfs-bootscripts", + "script": "blfs-bootscripts" + }, + { + "name": "lfs_bootscript", + "package_name": "lfs-bootscripts", + "script": "lfs-bootscripts" + } + ] +} diff --git a/rkos/src/configs/packages_info.json b/rkos/src/configs/packages_info.json new file mode 100644 index 0000000000000000000000000000000000000000..70bcb6a64dd8e66b46dba498a96e52f42072c49a --- /dev/null +++ b/rkos/src/configs/packages_info.json @@ -0,0 +1,426 @@ +{ + "all_packages": [ + { + "name": "acl", + "url": "https://download.savannah.gnu.org/releases/acl/acl-2.3.1.tar.xz" + }, + { + "name": "attr", + "url": "https://download.savannah.gnu.org/releases/attr/attr-2.5.1.tar.gz" + }, + { + "name": "autoconf", + "url": "https://mirrors.ustc.edu.cn/gnu/autoconf/autoconf-2.71.tar.xz" + }, + { + "name": "automake", + "url": "https://mirrors.ustc.edu.cn/gnu/automake/automake-1.16.5.tar.xz" + }, + { + "name": "bash", + "url": "https://mirrors.ustc.edu.cn/gnu/bash/bash-5.1.16.tar.gz" + }, + { + "name": "bc", + "url": "https://ghproxy.com/https://github.com/gavinhoward/bc/releases/download/6.0.1/bc-6.0.1.tar.xz" + }, + { + "name": "binutils", + "url": "https://mirrors.ustc.edu.cn/gnu/binutils/binutils-2.39.tar.xz" + }, + { + "name": "bison", + "url": "https://mirrors.ustc.edu.cn/gnu/bison/bison-3.8.2.tar.xz" + }, + { + "name": "bzip2", + "url": "https://www.sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz" + }, + { + "name": "check", + "url": "https://ghproxy.com/https://github.com/libcheck/check/releases/download/0.15.2/check-0.15.2.tar.gz" + }, + { + "name": "coreutils", + "url": "https://mirrors.ustc.edu.cn/gnu/coreutils/coreutils-9.1.tar.xz" + }, + { + "name": "rust", + "url": "https://static.rust-lang.org/dist/rust-1.67.1-x86_64-unknown-linux-gnu.tar.gz" + }, + { + "name": "coreutils_rust", + "url": "https://ghproxy.com/https://github.com/uutils/coreutils/archive/refs/tags/0.0.17.tar.gz" + }, + { + "name": "dejagnu", + "url": "https://mirrors.ustc.edu.cn/gnu/dejagnu/dejagnu-1.6.3.tar.gz" + }, + { + "name": "diffutils", + "url": "https://mirrors.ustc.edu.cn/gnu/diffutils/diffutils-3.8.tar.xz" + }, + { + "name": "e2fsprogs", + "url": "https://downloads.sourceforge.net/project/e2fsprogs/e2fsprogs/v1.46.5/e2fsprogs-1.46.5.tar.gz" + }, + { + "name": "elfutils", + "url": "https://sourceware.org/ftp/elfutils/0.187/elfutils-0.187.tar.bz2" + }, + { + "name": "eudev", + "url": "https://ghproxy.com/https://github.com/eudev-project/eudev/releases/download/v3.2.11/eudev-3.2.11.tar.gz" + }, + { + "name": "expat", + "url": "https://sourceforge.net/projects/expat/files/expat/2.5.0/expat-2.5.0.tar.xz" + }, + { + "name": "expect", + "url": "https://prdownloads.sourceforge.net/expect/expect5.45.4.tar.gz" + }, + { + "name": "file", + "url": "https://astron.com/pub/file/file-5.42.tar.gz" + }, + { + "name": "findutils", + "url": "https://mirrors.ustc.edu.cn/gnu/findutils/findutils-4.9.0.tar.xz" + }, + { + "name": "flex", + "url": "https://ghproxy.com/https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz" + }, + { + "name": "gawk", + "url": "https://mirrors.ustc.edu.cn/gnu/gawk/gawk-5.1.1.tar.xz" + }, + { + "name": "gcc", + "url": "https://mirrors.ustc.edu.cn/gnu/gcc/gcc-12.2.0/gcc-12.2.0.tar.xz" + }, + { + "name": "gdbm", + "url": "https://mirrors.ustc.edu.cn/gnu/gdbm/gdbm-1.23.tar.gz" + }, + { + "name": "gettext", + "url": "https://mirrors.ustc.edu.cn/gnu/gettext/gettext-0.21.tar.xz" + }, + { + "name": "glibc", + "url": "https://mirrors.ustc.edu.cn/gnu/glibc/glibc-2.36.tar.xz" + }, + { + "name": "gmp", + "url": "https://mirrors.ustc.edu.cn/gnu/gmp/gmp-6.2.1.tar.xz" + }, + { + "name": "gperf", + "url": "https://mirrors.ustc.edu.cn/gnu/gperf/gperf-3.1.tar.gz" + }, + { + "name": "grep", + "url": "https://mirrors.ustc.edu.cn/gnu/grep/grep-3.7.tar.xz" + }, + { + "name": "groff", + "url": "https://mirrors.ustc.edu.cn/gnu/groff/groff-1.22.4.tar.gz" + }, + { + "name": "grub", + "url": "https://mirrors.ustc.edu.cn/gnu/grub/grub-2.06.tar.xz" + }, + { + "name": "gzip", + "url": "https://mirrors.ustc.edu.cn/gnu/gzip/gzip-1.12.tar.xz" + }, + { + "name": "iana-etc", + "url": "https://ghproxy.com/https://github.com/Mic92/iana-etc/releases/download/20220812/iana-etc-20220812.tar.gz" + }, + { + "name": "inetutils", + "url": "https://mirrors.ustc.edu.cn/gnu/inetutils/inetutils-2.4.tar.xz" + }, + { + "name": "intltool", + "url": "https://launchpad.net/intltool/trunk/0.51.0/+download/intltool-0.51.0.tar.gz" + }, + { + "name": "iproute2", + "url": "https://mirrors.ustc.edu.cn/kernel.org/linux/utils/net/iproute2/iproute2-6.2.0.tar.xz" + }, + { + "name": "kbd", + "url": "https://mirrors.ustc.edu.cn/kernel.org/linux/utils/kbd/kbd-2.5.1.tar.gz" + }, + { + "name": "kmod", + "url": "https://mirrors.ustc.edu.cn/kernel.org/linux/utils/kernel/kmod/kmod-30.tar.gz" + }, + { + "name": "less", + "url": "https://www.greenwoodsoftware.com/less/less-590.tar.gz" + }, + { + "name": "lfs-bootscripts", + "url": "https://www.linuxfromscratch.org/lfs/downloads/11.2/lfs-bootscripts-20220723.tar.xz" + }, + { + "name": "libcap", + "url": "https://mirrors.ustc.edu.cn/kernel.org/linux/libs/security/linux-privs/libcap2/libcap-2.67.tar.xz" + }, + { + "name": "libffi", + "url": "https://ghproxy.com/https://github.com/libffi/libffi/releases/download/v3.4.2/libffi-3.4.2.tar.gz" + }, + { + "name": "libpipeline", + "url": "https://download.savannah.gnu.org/releases/libpipeline/libpipeline-1.5.6.tar.gz" + }, + { + "name": "libtool", + "url": "https://mirrors.ustc.edu.cn/gnu/libtool/libtool-2.4.7.tar.xz" + }, + { + "name": "linux", + "url": "https://mirrors.ustc.edu.cn/kernel.org/linux/kernel/v6.x/linux-6.1.tar.gz" + }, + { + "name": "m4", + "url": "https://mirrors.ustc.edu.cn/gnu/m4/m4-1.4.19.tar.xz" + }, + { + "name": "make", + "url": "https://mirrors.ustc.edu.cn/gnu/make/make-4.3.tar.gz" + }, + { + "name": "man-db", + "url": "https://download-mirror.savannah.gnu.org/releases/man-db/man-db-2.10.0.tar.xz" + }, + { + "name": "man-pages", + "url": "https://mirrors.ustc.edu.cn/kernel.org/linux/docs/man-pages/man-pages-6.03.tar.xz" + }, + { + "name": "meson", + "url": "https://ghproxy.com/https://github.com/mesonbuild/meson/releases/download/0.63.1/meson-0.63.1.tar.gz" + }, + { + "name": "mpc", + "url": "https://mirrors.ustc.edu.cn/gnu/mpc/mpc-1.2.1.tar.gz" + }, + { + "name": "mpfr", + "url": "https://mirrors.ustc.edu.cn/gnu/mpfr/mpfr-4.1.0.tar.xz" + }, + { + "name": "ncurses", + "url": "https://invisible-mirror.net/archives/ncurses/ncurses-6.3.tar.gz" + }, + { + "name": "ninja", + "url": "https://github.com/ninja-build/ninja/archive/v1.11.0/ninja-1.11.0.tar.gz" + }, + { + "name": "openssl", + "url": "https://www.openssl.org/source/openssl-3.0.5.tar.gz" + }, + { + "name": "patch", + "url": "https://mirrors.ustc.edu.cn/gnu/patch/patch-2.7.6.tar.xz" + }, + { + "name": "perl", + "url": "http://mirrors.ustc.edu.cn/CPAN/src/5.0/perl-5.36.0.tar.xz" + }, + { + "name": "pkg-config", + "url": "https://pkg-config.freedesktop.org/releases/pkg-config-0.29.2.tar.gz" + }, + { + "name": "procps", + "url": "https://sourceforge.net/projects/procps-ng/files/Production/procps-ng-4.0.0.tar.xz" + }, + { + "name": "psmisc", + "url": "https://sourceforge.net/projects/psmisc/files/psmisc/psmisc-23.5.tar.xz" + }, + { + "name": "python", + "url": "https://www.python.org/ftp/python/3.10.6/Python-3.10.6.tar.xz" + }, + { + "name": "readline", + "url": "https://mirrors.ustc.edu.cn/gnu/readline/readline-8.1.2.tar.gz" + }, + { + "name": "sed", + "url": "https://mirrors.ustc.edu.cn/gnu/sed/sed-4.8.tar.xz" + }, + { + "name": "shadow", + "url": "https://ghproxy.com/https://github.com/shadow-maint/shadow/releases/download/4.12.2/shadow-4.12.2.tar.xz" + }, + { + "name": "sysklogd", + "url": "https://www.infodrom.org/projects/sysklogd/download/sysklogd-1.5.1.tar.gz" + }, + { + "name": "sysvinit", + "url": "https://download.savannah.gnu.org/releases/sysvinit/sysvinit-3.04.tar.xz" + }, + { + "name": "tar", + "url": "https://mirrors.ustc.edu.cn/gnu/tar/tar-1.34.tar.xz" + }, + { + "name": "tcl", + "url": "https://downloads.sourceforge.net/tcl/tcl8.6.12-src.tar.gz" + }, + { + "name": "texinfo", + "url": "https://mirrors.ustc.edu.cn/gnu/texinfo/texinfo-6.8.tar.xz" + }, + { + "name": "tzdata", + "url": "https://www.iana.org/time-zones/repository/releases/tzdata2022c.tar.gz" + }, + { + "name": "udev-lfs", + "url": "https://anduin.linuxfromscratch.org/LFS/udev-lfs-20171102.tar.xz" + }, + { + "name": "util-linux", + "url": "https://mirrors.ustc.edu.cn/kernel.org/linux/utils/util-linux/v2.38/util-linux-2.38.1.tar.gz" + }, + { + "name": "vim", + "url": "https://anduin.linuxfromscratch.org/LFS/vim-9.0.0228.tar.gz" + }, + { + "name": "wheel", + "url": "https://anduin.linuxfromscratch.org/LFS/wheel-0.37.1.tar.gz" + }, + { + "name": "XML-Parser", + "url": "http://mirrors.ustc.edu.cn/CPAN/authors/id/T/TO/TODDR/XML-Parser-2.46.tar.gz" + }, + { + "name": "xz", + "url": "https://tukaani.org/xz/xz-5.2.6.tar.xz" + }, + { + "name": "zlib", + "url": "https://www.zlib.net/zlib-1.2.13.tar.gz" + }, + { + "name": "zstd", + "url": "https://ghproxy.com/https://github.com/facebook/zstd/releases/download/v1.5.2/zstd-1.5.2.tar.gz" + }, + { + "name": "libxml2", + "url": "https://download.gnome.org/sources/libxml2/2.10/libxml2-2.10.3.tar.xz" + }, + { + "name": "nghttp", + "url": "https://ghproxy.com/https://github.com/nghttp2/nghttp2/releases/download/v1.52.0/nghttp2-1.52.0.tar.xz" + }, + { + "name": "libuv", + "url": " https://dist.libuv.org/dist/v1.44.2/libuv-v1.44.2.tar.gz" + }, + { + "name": "lzo", + "url": "https://www.oberhumer.com/opensource/lzo/download/lzo-2.10.tar.gz" + }, + { + "name": "nettle", + "url": "https://mirrors.ustc.edu.cn/gnu/nettle/nettle-3.8.1.tar.gz" + }, + { + "name": "valgrind", + "url": "https://sourceware.org/pub/valgrind/valgrind-3.20.0.tar.bz2" + }, + { + "name": "libarchive", + "url": "https://ghproxy.com/https://github.com/libarchive/libarchive/releases/download/v3.6.2/libarchive-3.6.2.tar.xz" + }, + { + "name": "curl", + "url": "https://curl.se/download/curl-7.88.1.tar.xz" + }, + { + "name": "make-ca", + "url": "https://ghproxy.com/https://github.com/lfs-book/make-ca/releases/download/v1.12/make-ca-1.12.tar.xz" + }, + { + "name": "cmake", + "url": "https://cmake.org/files/v3.25/cmake-3.25.2.tar.gz" + }, + { + "name": "p11-kit", + "url": "https://ghproxy.com/https://github.com/p11-glue/p11-kit/releases/download/0.24.1/p11-kit-0.24.1.tar.xz" + }, + { + "name": "libtasn1", + "url": "https://mirrors.ustc.edu.cn/gnu/libtasn1/libtasn1-4.19.0.tar.gz" + }, + { + "name": "llvm", + "url": " https://ghproxy.com/https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.7/llvm-15.0.7.src.tar.xz" + }, + { + "name": "llvm_cmake", + "url": "https://anduin.linuxfromscratch.org/BLFS/llvm/llvm-cmake-15.0.7.src.tar.xz" + }, + { + "name": "clang", + "url": "https://ghproxy.com/https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.7/clang-15.0.7.src.tar.xz" + }, + { + "name": "lld", + "url": "http://ghproxy.com/https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.7/lld-15.0.7.src.tar.xz" + }, + { + "name": "dhcpcd", + "url": "https://roy.marples.name/downloads/dhcpcd/dhcpcd-9.4.1.tar.xz" + }, + { + "name": "blfs-bootscript", + "url": "https://anduin.linuxfromscratch.org/BLFS/blfs-bootscripts/blfs-bootscripts-20230101.tar.xz" + } + ], + "package_patches": [ + { + "name": "bzip2_patch", + "url": "https://www.linuxfromscratch.org/patches/lfs/11.2/bzip2-1.0.8-install_docs-1.patch" + }, + { + "name": "coreutils_patch", + "url": "https://www.linuxfromscratch.org/patches/lfs/11.2/coreutils-9.1-i18n-1.patch" + }, + { + "name": "glibc_patch", + "url": "https://www.linuxfromscratch.org/patches/lfs/11.2/glibc-2.36-fhs-1.patch" + }, + { + "name": "kbd_patch", + "url": "https://www.linuxfromscratch.org/patches/lfs/11.2/kbd-2.5.1-backspace-1.patch" + }, + { + "name": "sysvinit_patch", + "url": "https://www.linuxfromscratch.org/patches/lfs/11.2/sysvinit-3.04-consolidated-1.patch" + }, + { + "name": "zstd_patch", + "url": "https://www.linuxfromscratch.org/patches/lfs/11.2/zstd-1.5.2-upstream_fixes-1.patch" + }, + { + "name": "clang_patch", + "url": "https://www.linuxfromscratch.org/patches/blfs/11.3/clang-15.0.7-enable_default_ssp-1.patch" + } + ] +} diff --git a/rkos/src/configs/rust_support_packages.json b/rkos/src/configs/rust_support_packages.json new file mode 100644 index 0000000000000000000000000000000000000000..4fcba12cc93ef2ffe320db99da53b6fd0d648a3d --- /dev/null +++ b/rkos/src/configs/rust_support_packages.json @@ -0,0 +1,14 @@ +{ + "rust_support_packages": [ + { + "name": "coreutils", + "package_name": "0.0.17", + "script": "coreutils" + }, + { + "name": "linux", + "package_name": "linux", + "script": "kernel" + } + ] +} diff --git a/rkos/src/configs/temp_toolchains.json b/rkos/src/configs/temp_toolchains.json new file mode 100644 index 0000000000000000000000000000000000000000..03f8de08a38b7bbaa648dbca407fdc9679c01c74 --- /dev/null +++ b/rkos/src/configs/temp_toolchains.json @@ -0,0 +1,148 @@ +{ + "cross_compile_toolchains": [ + { + "name": "binutils", + "package_name": "binutils", + "script": "binutils_first" + }, + { + "name": "linux", + "package_name": "linux", + "script": "linux_headers_api" + }, + { + "name": "gcc", + "package_name": "gcc", + "script": "gcc_first" + }, + { + "name": "glibc", + "package_name": "glibc", + "script": "glibc" + }, + { + "name": "gcc", + "package_name": "gcc", + "script": "libstdc++" + } + ], + "cross_compile_packages": [ + { + "name": "m4", + "package_name": "m4", + "script": "m4" + }, + { + "name": "ncurses", + "package_name": "ncurses", + "script": "ncurses" + }, + { + "name": "bash", + "package_name": "bash", + "script": "bash" + }, + { + "name": "coreutils", + "package_name": "coreutils", + "script": "coreutils" + }, + { + "name": "diffutils", + "package_name": "diffutils", + "script": "diffutils" + }, + { + "name": "file", + "package_name": "file", + "script": "file" + }, + { + "name": "findutils", + "package_name": "findutils", + "script": "findutils" + }, + { + "name": "gawk", + "package_name": "gawk", + "script": "gawk" + }, + { + "name": "grep", + "package_name": "grep", + "script": "grep" + }, + { + "name": "gzip", + "package_name": "gzip", + "script": "gzip" + }, + { + "name": "make", + "package_name": "make", + "script": "make" + }, + { + "name": "patch", + "package_name": "patch", + "script": "patch" + }, + { + "name": "sed", + "package_name": "sed", + "script": "sed" + }, + { + "name": "tar", + "package_name": "tar", + "script": "tar" + }, + { + "name": "xz", + "package_name": "xz", + "script": "xz" + }, + { + "name": "binutils", + "package_name": "binutils", + "script": "binutils_second" + }, + { + "name": "gcc", + "package_name": "gcc", + "script": "gcc_second" + } + ], + "after_chroot_packages": [ + { + "name": "gettext", + "package_name": "gettext", + "script": "gettext" + }, + { + "name": "bison", + "package_name": "bison", + "script": "bison" + }, + { + "name": "perl", + "package_name": "perl", + "script": "perl" + }, + { + "name": "Python", + "package_name": "Python", + "script": "python" + }, + { + "name": "texinfo", + "package_name": "texinfo", + "script": "texinfo" + }, + { + "name": "util-linux", + "package_name": "util-linux", + "script": "util-linux" + } + ] +} diff --git a/rkos/src/main.rs b/rkos/src/main.rs new file mode 100644 index 0000000000000000000000000000000000000000..07265f563c1061224e33ea51011db7cc34cb1c5c --- /dev/null +++ b/rkos/src/main.rs @@ -0,0 +1,264 @@ +use clap::Parser; +use dagrs::{init_logger, DagEngine, EnvVar, Inputval, Retval, TaskTrait, TaskWrapper}; +use log::{error, warn}; +use std::env; +use std::fs; + +mod build_lfs_sys; +mod build_rust_packages; +mod build_temp_toolchain; +mod config_sys; +mod prepare_host_sys; +mod utils; +mod vars; +use cmd_lib::*; +use std::path::Path; + +#[allow(unused)] +use requestty::Question; + +#[allow(unused)] +struct OutputLfsImg {} +impl TaskTrait for OutputLfsImg { + fn run(&self, _input: Inputval, _env: EnvVar) -> Retval { + Retval::new(()) + // TODO: 导出合适的镜像 + } +} + +#[warn(dead_code)] +/// 初始化 +fn init() { + let _init_disk_info = vars::DISK_INFO.clone(); + let stop_flag_path = Path::new("./stop"); + if stop_flag_path.exists() { + if let Err(e) = fs::remove_file(stop_flag_path) { + panic!("Cannot init stop flag {}", e); + } + } +} + +fn main() { + let cli = vars::Cli::parse(); + + init(); + init_logger(None); + + //检测是否在必要的工作目录下 + let current_dir = env::current_dir().unwrap(); + if current_dir.parent() != Some(Path::new("/mnt")) { + error!( + "Cannot run at path {:?} , you must take the program in /mnt/[TEMP_SYSTEM]", + current_dir + ); + return; + } + + //检查环境变量 + let check_env = TaskWrapper::new(prepare_host_sys::CheckEnv {}, "Check host env"); + + //准备配置目标文件目录 + let mut prepare_dirs = TaskWrapper::new(prepare_host_sys::PreparingDirs {}, "PREPARE DIRS"); + + //准备下载软件 + let mut prepare_software = + TaskWrapper::new(prepare_host_sys::PreparingSoftware {}, "Prepare software"); + + //安装临时工具链 + let mut compile_toolchains = TaskWrapper::new( + build_temp_toolchain::CompilingCrossToolChain {}, + "Compile Toolchains", + ); + + //进入chroot环境 + let mut enter_chroot = TaskWrapper::new(utils::EnterChroot {}, "Enter Chroot"); + + //配置进入chroot环境后的部分 + let mut after_chroot = + TaskWrapper::new(build_temp_toolchain::AfterChroot {}, "After chroot config"); + + //安装chroot后的工具 + let mut install_other_packages = TaskWrapper::new( + build_temp_toolchain::AfterChrootInstall {}, + "Install other packages", + ); + + //清理系统 + let mut clean_system = TaskWrapper::new( + build_temp_toolchain::CleanUpAndSaveTempSystem {}, + "Clean up", + ); + + //安装基础软件包 + let mut install_packages = TaskWrapper::new( + build_lfs_sys::InstallBasicSystemSoftware {}, + "Install Packages", + ); + //删除debug的符号 + let mut remove_debug_symbol = + TaskWrapper::new(build_lfs_sys::RemoveDebugSymbol {}, "Remove debug symbol"); + //清理系统 + #[allow(unused)] + let clean_up_system = TaskWrapper::new(build_lfs_sys::CleanUpSystem {}, "Clean up system"); + + //配置系统 + let mut config_fstab = TaskWrapper::new(config_sys::Fstab {}, "Config fstab"); + let mut config_inputrc = TaskWrapper::new(config_sys::Inputrc {}, "Config inputrc"); + let mut config_network = TaskWrapper::new(config_sys::Network {}, "Config network"); + let mut config_profile = TaskWrapper::new(config_sys::Profile {}, "Config profile"); + let mut config_rcsite = TaskWrapper::new(config_sys::RcSite {}, "Config rc_site"); + let mut config_shell = TaskWrapper::new(config_sys::Shell {}, "Config shell"); + let mut config_sysvinit = TaskWrapper::new(config_sys::Sysvinit {}, "Config sysvinit"); + let mut config_time = TaskWrapper::new(config_sys::Time {}, "Config time"); + + //安装内核和rust支持 + let mut build_rust_packages = TaskWrapper::new( + build_rust_packages::InstallRustSupportPackages {}, + "Build rust support package and kernel", + ); + + let mut grub_install = TaskWrapper::new(config_sys::ConfigGrub {}, "Install grub"); + + let mut dagrs = DagEngine::new(); + let mut dag_nodes: Vec = Vec::new(); + + match &cli.build_option { + vars::BuildOption::Build => { + prepare_dirs.exec_after(&[&check_env]); + + prepare_software.exec_after(&[&prepare_dirs]); + + compile_toolchains.exec_after(&[&prepare_software]); + enter_chroot.exec_after(&[&compile_toolchains]); + after_chroot.exec_after(&[&enter_chroot]); + install_other_packages.exec_after(&[&after_chroot]); + clean_system.exec_after(&[&install_other_packages]); + + install_packages.exec_after(&[&clean_system]); + + remove_debug_symbol.exec_after(&[&install_packages]); + + config_fstab.exec_after(&[&remove_debug_symbol]); + config_inputrc.exec_after(&[&remove_debug_symbol]); + config_network.exec_after(&[&remove_debug_symbol]); + config_profile.exec_after(&[&remove_debug_symbol]); + config_rcsite.exec_after(&[&remove_debug_symbol]); + config_shell.exec_after(&[&remove_debug_symbol]); + config_sysvinit.exec_after(&[&remove_debug_symbol]); + config_time.exec_after(&[&remove_debug_symbol]); + + build_rust_packages.exec_after(&[&config_network]); + + grub_install.exec_after(&[&build_rust_packages]); + + dag_nodes.push(check_env); + + dag_nodes.push(prepare_dirs); + + dag_nodes.push(prepare_software); + dag_nodes.push(compile_toolchains); + dag_nodes.push(enter_chroot); + dag_nodes.push(after_chroot); + dag_nodes.push(install_other_packages); + dag_nodes.push(clean_system); + dag_nodes.push(install_packages); + dag_nodes.push(remove_debug_symbol); + dag_nodes.push(config_fstab); + dag_nodes.push(config_inputrc); + dag_nodes.push(config_network); + dag_nodes.push(config_profile); + dag_nodes.push(config_rcsite); + dag_nodes.push(config_shell); + dag_nodes.push(config_sysvinit); + dag_nodes.push(config_time); + dag_nodes.push(build_rust_packages); + dag_nodes.push(grub_install); + } + + vars::BuildOption::HostConfig => { + prepare_dirs.exec_after(&[&check_env]); + + dag_nodes.push(check_env); + + dag_nodes.push(prepare_dirs); + } + vars::BuildOption::PackageDownload => { + dag_nodes.push(prepare_software); + } + vars::BuildOption::BuildTempToolchains => { + compile_toolchains.exec_after(&[&check_env]); + enter_chroot.exec_after(&[&compile_toolchains]); + after_chroot.exec_after(&[&enter_chroot]); + install_other_packages.exec_after(&[&after_chroot]); + clean_system.exec_after(&[&install_other_packages]); + + dag_nodes.push(check_env); + dag_nodes.push(compile_toolchains); + dag_nodes.push(enter_chroot); + dag_nodes.push(after_chroot); + dag_nodes.push(install_other_packages); + dag_nodes.push(clean_system); + } + vars::BuildOption::BuildBasePackages => { + enter_chroot.exec_after(&[&check_env]); + install_packages.exec_after(&[&enter_chroot]); + dag_nodes.push(check_env); + dag_nodes.push(enter_chroot); + dag_nodes.push(install_packages); + } + vars::BuildOption::CleanUp => { + dag_nodes.push(remove_debug_symbol); + } + vars::BuildOption::ConfigTargetSystem => { + enter_chroot.exec_after(&[&check_env]); + config_fstab.exec_after(&[&enter_chroot]); + config_inputrc.exec_after(&[&enter_chroot]); + config_network.exec_after(&[&enter_chroot]); + config_profile.exec_after(&[&enter_chroot]); + config_rcsite.exec_after(&[&enter_chroot]); + config_shell.exec_after(&[&enter_chroot]); + config_sysvinit.exec_after(&[&enter_chroot]); + config_time.exec_after(&[&enter_chroot]); + + dag_nodes.push(check_env); + dag_nodes.push(enter_chroot); + dag_nodes.push(config_fstab); + dag_nodes.push(config_inputrc); + dag_nodes.push(config_network); + dag_nodes.push(config_profile); + dag_nodes.push(config_rcsite); + dag_nodes.push(config_shell); + dag_nodes.push(config_sysvinit); + dag_nodes.push(config_time); + } + vars::BuildOption::BuildRustSupportPackageAndKernel => { + enter_chroot.exec_after(&[&check_env]); + build_rust_packages.exec_after(&[&enter_chroot]); + + dag_nodes.push(check_env); + dag_nodes.push(enter_chroot); + dag_nodes.push(build_rust_packages); + } + vars::BuildOption::InstallGrub => { + enter_chroot.exec_after(&[&check_env]); + grub_install.exec_after(&[&enter_chroot]); + + dag_nodes.push(check_env); + dag_nodes.push(enter_chroot); + dag_nodes.push(grub_install); + } + } + + match &cli.operate { + vars::StartMode::Start => { + dagrs.add_tasks(dag_nodes); + } + vars::StartMode::Reset => { + //TODO:增加reset系统的部分 + } + }; + assert!(dagrs.run().unwrap()); +} + +#[cfg(test)] +mod tests {} diff --git a/rkos/src/prepare_host_sys.rs b/rkos/src/prepare_host_sys.rs new file mode 100644 index 0000000000000000000000000000000000000000..37e6387c3c71c1ee2708cf46d919de2aa055d003 --- /dev/null +++ b/rkos/src/prepare_host_sys.rs @@ -0,0 +1,324 @@ +extern crate dagrs; +//extern crate sys_mount; + +use dagrs::{EnvVar, Inputval, Retval, TaskTrait}; + +#[allow(unused)] +use libparted::{Device, Disk, FileSystemType, Partition, PartitionFlag, PartitionType}; + +#[allow(unused)] +use walkdir::WalkDir; + +use cmd_lib::*; +use log::{error, info, warn}; +use std::collections::HashMap; +use std::env; +use std::fs; +use std::fs::File; +use std::process::Command; + +use crate::utils::ProgramEndingFlag; +use crate::{utils, vars}; + +#[allow(unused)] +pub struct CleanOldConfig {} +impl TaskTrait for CleanOldConfig { + fn run(&self, _input: Inputval, _env: EnvVar) -> Retval { + //TODO: 删除环境变量配置 + //卸载目录 + //删除目录配置 + // + Retval::empty() + } +} +impl utils::ProgramEndingFlag for CleanOldConfig {} + +//TODO:添加全局重置脚本 +#[allow(unused)] +pub struct ResetAllSystemConfig {} +impl TaskTrait for ResetAllSystemConfig { + fn run(&self, _input: Inputval, _env: EnvVar) -> Retval { + // reset bash profile + // reset target dirs + // reset system auto mount + // + Retval::empty() + } +} + +pub struct PreparingSoftware {} +impl utils::ProgramEndingFlag for PreparingSoftware {} +impl PreparingSoftware { + /// 下载软件包和软件包补丁 + fn preparing_base_software(&self) { + //软件包和补丁列表 + let all_packages = &vars::ALL_PACKAGES.all_packages; + let patches = &vars::ALL_PACKAGES.package_patches; + + //软件包下载状态记录 + let mut pack_status = HashMap::new(); + + for package in all_packages { + // + let mut try_download_times = 0; + + //检查是否已经存在数据,原本存在就不需要下载 + if utils::check_download_before(&package.name, &vars::BASE_CONFIG.path.package_build) { + continue; + } + + while try_download_times < 5 { + utils::delete_failed_download_pack( + &package.name, + &vars::BASE_CONFIG.path.package_build, + ); + match utils::download( + vars::BASE_CONFIG.path.package_build.clone(), + package.url.clone(), + ) { + Ok(v) => { + match v { + true => { + //下载成功 + try_download_times = 0; + pack_status.insert(&package.name, v); + break; + } + false => { + //下载失败,重试 + try_download_times += 1; + continue; + } + } + } + Err(_e) => { + //下载命令执行失败,重试 + //FIXME:下载命令执行失败应该print命令然后终止 + try_download_times += 1; + continue; + } + } + } + if try_download_times == 5 { + pack_status.insert(&package.name, false); + } + } + + //下载补丁 + for patch in patches { + //重试次数 + let mut try_download_times = 0; + + //检查是否存在 + //FIXME:目录不是补丁目录,需要调整 + if utils::check_download_before( + &patch.name, + &(vars::BASE_CONFIG.path.package_source.clone() + + &vars::BASE_CONFIG.path.package_patches), + ) { + continue; + } + + while try_download_times < 5 { + //大于5次,下载失败 + + //TODO:调整成由var配置的部分 + //并且添加对patches的存在性判断 + match utils::download( + vars::BASE_CONFIG.path.package_source.clone() + + &vars::BASE_CONFIG.path.package_patches, + patch.url.clone(), + ) { + Ok(v) => match v { + true => { + try_download_times = 0; + pack_status.insert(&patch.name, v); + break; + } + false => { + try_download_times += 1; + continue; + } + }, + Err(_e) => { + try_download_times += 1; + continue; + } + } + } + if try_download_times == 5 { + pack_status.insert(&patch.name, false); + } + } + + for (package_name, download_status) in pack_status { + info!("{} : {}", package_name, download_status); + self.try_set_flag(download_status); + } + } +} + +impl TaskTrait for PreparingSoftware { + fn run(&self, _input: Inputval, _env: EnvVar) -> Retval { + self.check_flag(); + self.preparing_base_software(); + Retval::empty() + } +} + +//备份环境变量配置文件 +pub struct BackupBashProfile {} +impl utils::ProgramEndingFlag for BackupBashProfile {} +impl TaskTrait for BackupBashProfile { + fn run(&self, mut input: Inputval, _env: EnvVar) -> Retval { + self.check_flag(); + match input.get::(0).unwrap() { + //无需备份返回true + true => Retval::new(true), + false => { + //需要备份返回false + let src_path = "/root/.bash_profile"; + let target_path = "/root/.bash_profile.bak"; + match fs::rename(src_path, target_path) { + Ok(_v) => { + info!("Back up bash profile success"); + } + Err(e) => { + error!("Back up bash profile failed {}", e); + self.try_set_flag(false); + } + } + + Retval::new(false) + } + } + } +} + +// TODO 完全替换成rust实现 +pub struct PreparingEnv {} +impl utils::ProgramEndingFlag for PreparingEnv {} +impl PreparingEnv { + #[allow(unused)] + fn prepare_env(&self) { + // let packages = &vars::HOST_PACKAGES; + // let mut cmd: String = vars::BASE_CONFIG.host_install_cmd.clone(); + // for package in &packages.host_packages { + // cmd += &package; + // cmd += " "; + // } + // println!("{}", &cmd); + // + // let output = Command::new("bash") + // .arg("-c") + // .arg(cmd) + // .status() + // .expect("failed to execute process"); + // assert!(output.success()); + + let mut link_list = HashMap::new(); + link_list.insert("sh", "bash"); + link_list.insert("yacc", "bison"); + link_list.insert("awk", "gawk"); + fs::remove_file("/usr/bin/sh").unwrap_or_else(|why| { + println!("! {:?}", why.kind()); + }); + fs::remove_file("/usr/bin/yacc").unwrap_or_else(|why| { + println!("! {:?}", why.kind()); + }); + fs::remove_file("/usr/bin/awk").unwrap_or_else(|why| { + println!("! {:?}", why.kind()); + }); + for link in &link_list { + // TODO: 换成unix::fs::symlink + let cmd = format!("sudo ln -s /usr/bin/{} /usr/bin/{}", &link.1, &link.0); + let create_link_res = Command::new("bash") + .arg("-c") + .arg(cmd) + .status() + .expect("failed to create link"); + if !create_link_res.success() { + println!("failed to create link"); + } + } + } + #[allow(unused)] + fn check() {} +} + +//准备宿主机目标安装分区的目录 +//FIXME:确保每一次运行的时候都能检查是否mount了分区 +pub struct PreparingDirs {} +impl utils::ProgramEndingFlag for PreparingDirs {} +impl TaskTrait for PreparingDirs { + fn run(&self, _input: Inputval, _env: EnvVar) -> Retval { + self.check_flag(); + let script_path = vars::BASE_CONFIG.scripts_path.root.clone() + + &vars::BASE_CONFIG.scripts_path.prepare + + "prepare_host_dirs.sh"; + // let script = RunScript::new("other_script/create_dirs.sh", RunType::SH); + // let script = RunScript::new(&script_path, RunType::SH); + + let stdout_file = File::create("/root/prepare.log").unwrap(); + + let stderr_file = stdout_file.try_clone().unwrap(); + + match Command::new("/bin/bash") + .arg("-e") + .arg(script_path) + .stdout(stdout_file) + .stderr(stderr_file) + .status() + { + Ok(_v) => (), + Err(_e) => self.try_set_flag(false), + }; + + // let res = script.exec(None); + Retval::empty() + } +} + +pub struct MountTargetPart {} +impl utils::ProgramEndingFlag for MountTargetPart {} +impl TaskTrait for MountTargetPart { + fn run(&self, _input: Inputval, _env: EnvVar) -> Retval { + Retval::empty() + } +} + +//检查并配置环境变量 +pub struct CheckEnv {} +impl utils::ProgramEndingFlag for CheckEnv {} +impl TaskTrait for CheckEnv { + fn run(&self, _input: Inputval, _env: EnvVar) -> Retval { + self.check_flag(); + //从配置文件中读出环境变量配置,设定到本进程上。 + for env in &vars::BASE_CONFIG.envs { + match utils::env_status(env.name.clone()) { + Ok(v) => { + if v.clone() == env.value.clone() { + info!("Get {} env : {}", env.name.clone(), v.clone()); + } else { + env::set_var(env.name.clone(), env.value.clone()); + warn!( + "Get {} env , reset value from {} to {}", + env.name.clone(), + v.clone(), + env.value.clone() + ); + } + } + Err(_e) => { + warn!( + "Nou found env {} , set new value {}", + env.name.clone(), + env.value.clone() + ); + env::set_var(env.name.clone(), env.value.clone()); + } + } + } + Retval::new(true) + } +} diff --git a/rkos/src/scripts/build_base_packages/acl.sh b/rkos/src/scripts/build_base_packages/acl.sh new file mode 100755 index 0000000000000000000000000000000000000000..17ccd8ba42b32549efc22b27cc53d2fd8e0db2c2 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/acl.sh @@ -0,0 +1,4 @@ +./configure --prefix=/usr \ + --disable-static \ + --docdir=/usr/share/doc/acl-2.3.1 +make && make install diff --git a/rkos/src/scripts/build_base_packages/attr.sh b/rkos/src/scripts/build_base_packages/attr.sh new file mode 100755 index 0000000000000000000000000000000000000000..f6af0917291abf424212adfce6a7c9c5e4def321 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/attr.sh @@ -0,0 +1,5 @@ +./configure --prefix=/usr \ + --disable-static \ + --sysconfdir=/etc \ + --docdir=/usr/share/doc/attr-2.5.1 +make && make install diff --git a/rkos/src/scripts/build_base_packages/autoconf.sh b/rkos/src/scripts/build_base_packages/autoconf.sh new file mode 100755 index 0000000000000000000000000000000000000000..5d077a37d688f40a84d8a39348b05f08135f63fa --- /dev/null +++ b/rkos/src/scripts/build_base_packages/autoconf.sh @@ -0,0 +1,2 @@ +./configure --prefix=/usr +make && make install diff --git a/rkos/src/scripts/build_base_packages/automake.sh b/rkos/src/scripts/build_base_packages/automake.sh new file mode 100755 index 0000000000000000000000000000000000000000..e61f7ce6f5d8765df9baf1d1bb45201bc377f5f2 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/automake.sh @@ -0,0 +1,2 @@ +./configure --prefix=/usr --docdir=/usr/share/doc/automake-1.16.5 +make && make install diff --git a/rkos/src/scripts/build_base_packages/bash.sh b/rkos/src/scripts/build_base_packages/bash.sh new file mode 100755 index 0000000000000000000000000000000000000000..361b2a248676609b0e9caea98859a9ecfd1f38bc --- /dev/null +++ b/rkos/src/scripts/build_base_packages/bash.sh @@ -0,0 +1,18 @@ +./configure --prefix=/usr \ + --docdir=/usr/share/doc/bash-5.1.16 \ + --without-bash-malloc \ + --with-installed-readline + +make + +#chown -Rv tester . +#su -s /usr/bin/expect tester << EOF +#set timeout -1 +#spawn make tests +#expect eof +#lassign [wait] _ _ _ value +#exit $value +#EOF +make install + +#TODO:替换正在执行的版本 diff --git a/rkos/src/scripts/build_base_packages/bc.sh b/rkos/src/scripts/build_base_packages/bc.sh new file mode 100755 index 0000000000000000000000000000000000000000..c3f0890802190dacd3efc5c557ea78fc4f1e4d2a --- /dev/null +++ b/rkos/src/scripts/build_base_packages/bc.sh @@ -0,0 +1,3 @@ +CC=gcc ./configure --prefix=/usr -G -O3 -r + +make && make install diff --git a/rkos/src/scripts/build_base_packages/binutils.sh b/rkos/src/scripts/build_base_packages/binutils.sh new file mode 100755 index 0000000000000000000000000000000000000000..33fd804b561b052641f71dde58292b8b528c1f47 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/binutils.sh @@ -0,0 +1,17 @@ +mkdir -v build && cd build + +../configure --prefix=/usr \ + --sysconfdir=/etc \ + --enable-gold \ + --enable-ld=default \ + --enable-plugins \ + --enable-shared \ + --disable-werror \ + --enable-64-bit-bfd \ + --with-system-zlib + +make tooldir=/usr + +make tooldir=/usr install + +rm -fv /usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes}.a diff --git a/rkos/src/scripts/build_base_packages/bison.sh b/rkos/src/scripts/build_base_packages/bison.sh new file mode 100755 index 0000000000000000000000000000000000000000..1b349733fb0ecffb0972b57fffac745f0a0d4c9f --- /dev/null +++ b/rkos/src/scripts/build_base_packages/bison.sh @@ -0,0 +1,2 @@ +./configure --prefix=/usr --docdir=/usr/share/doc/bison-3.8.2 +make && make install diff --git a/rkos/src/scripts/build_base_packages/blfs-bootscripts.sh b/rkos/src/scripts/build_base_packages/blfs-bootscripts.sh new file mode 100755 index 0000000000000000000000000000000000000000..aa750e4a4bce3708c42e3b3bacbaae16445d5241 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/blfs-bootscripts.sh @@ -0,0 +1 @@ +make install-service-dhcpcd diff --git a/rkos/src/scripts/build_base_packages/bzip2.sh b/rkos/src/scripts/build_base_packages/bzip2.sh new file mode 100755 index 0000000000000000000000000000000000000000..19120f1cd0d92af37399fa88da492cae2330ab5c --- /dev/null +++ b/rkos/src/scripts/build_base_packages/bzip2.sh @@ -0,0 +1,21 @@ +patch -Np1 -i ../base_patches/bzip2-1.0.8-install_docs-1.patch + +sed -i 's@\(ln -s -f \)$(PREFIX)/bin/@\1@' Makefile + +sed -i "s@(PREFIX)/man@(PREFIX)/share/man@g" Makefile + +make -f Makefile-libbz2_so +make clean + +make +make PREFIX=/usr install + +cp -av libbz2.so.* /usr/lib +ln -sv libbz2.so.1.0.8 /usr/lib/libbz2.so + +cp -v bzip2-shared /usr/bin/bzip2 +for i in /usr/bin/{bzcat,bunzip2}; do + ln -sfv bzip2 $i +done + +rm -fv /usr/lib/libbz2.a diff --git a/rkos/src/scripts/build_base_packages/check.sh b/rkos/src/scripts/build_base_packages/check.sh new file mode 100755 index 0000000000000000000000000000000000000000..7d83bb8a4d12990bfa78684712b16c591e6bf776 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/check.sh @@ -0,0 +1,3 @@ +./configure --prefix=/usr --disable-static +make +make docdir=/usr/share/doc/check-0.15.2 install diff --git a/rkos/src/scripts/build_base_packages/clean_up.sh b/rkos/src/scripts/build_base_packages/clean_up.sh new file mode 100755 index 0000000000000000000000000000000000000000..a62996ede183a7ee5d36e83dd0d8cc24705ac838 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/clean_up.sh @@ -0,0 +1,4 @@ +rm -rf /tmp/* +find /usr/lib /usr/libexec -name \*.la -delete +find /usr -depth -name $(uname -m)-lfs-linux-gnu\* | xargs rm -rf + diff --git a/rkos/src/scripts/build_base_packages/cmake.sh b/rkos/src/scripts/build_base_packages/cmake.sh new file mode 100755 index 0000000000000000000000000000000000000000..8ba5149cccf6521d9e08b4d473cada4d6aca7943 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/cmake.sh @@ -0,0 +1,11 @@ +sed -i '/"lib64"/s/64//' Modules/GNUInstallDirs.cmake && + +./bootstrap --prefix=/usr \ + --system-libs \ + --mandir=/share/man \ + --no-system-jsoncpp \ + --no-system-librhash \ + --docdir=/share/doc/cmake-3.25.2 && +make + +make install diff --git a/rkos/src/scripts/build_base_packages/coreutils.sh b/rkos/src/scripts/build_base_packages/coreutils.sh new file mode 100755 index 0000000000000000000000000000000000000000..8f268bdbc2f6dd8642a03d5ea037ae7bc92461f3 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/coreutils.sh @@ -0,0 +1,16 @@ +patch -Np1 -i ../base_patches/coreutils-9.1-i18n-1.patch +autoreconf -fiv +FORCE_UNSAFE_CONFIGURE=1 ./configure \ + --prefix=/usr \ + --enable-no-install-program=kill,uptime +make +echo "dummy:x:102:tester" >> /etc/group +chown -Rv tester . +su tester -c "PATH=$PATH make RUN_EXPENSIVE_TESTS=yes check" +sed -i '/dummy/d' /etc/group +make install +mv -v /usr/bin/chroot /usr/sbin +mv -v /usr/share/man/man1/chroot.1 /usr/share/man/man8/chroot.8 +sed -i 's/"1"/"8"/' /usr/share/man/man8/chroot.8 + +#TODO:更换成coreutils rust diff --git a/rkos/src/scripts/build_base_packages/curl.sh b/rkos/src/scripts/build_base_packages/curl.sh new file mode 100755 index 0000000000000000000000000000000000000000..faf58147ad46ef846b2adce18e2064afd25e255b --- /dev/null +++ b/rkos/src/scripts/build_base_packages/curl.sh @@ -0,0 +1,14 @@ +./configure --prefix=/usr \ + --disable-static \ + --with-openssl \ + --enable-threaded-resolver \ + --with-ca-path=/etc/ssl/certs && +make +make install && + +rm -rf docs/examples/.deps && + +find docs \( -name Makefile\* -o -name \*.1 -o -name \*.3 \) -exec rm {} \; && + +install -v -d -m755 /usr/share/doc/curl-7.88.1 && +cp -v -R docs/* /usr/share/doc/curl-7.88.1 diff --git a/rkos/src/scripts/build_base_packages/dejagnu.sh b/rkos/src/scripts/build_base_packages/dejagnu.sh new file mode 100755 index 0000000000000000000000000000000000000000..47d74107f8757fbc9e4472be7cd57e937312efec --- /dev/null +++ b/rkos/src/scripts/build_base_packages/dejagnu.sh @@ -0,0 +1,11 @@ +mkdir -v build +cd build + +../configure --prefix=/usr +makeinfo --html --no-split -o doc/dejagnu.html ../doc/dejagnu.texi +makeinfo --plaintext -o doc/dejagnu.txt ../doc/dejagnu.texi + +make install +install -v -dm755 /usr/share/doc/dejagnu-1.6.3 +install -v -m644 doc/dejagnu.{html,txt} /usr/share/doc/dejagnu-1.6.3 + diff --git a/rkos/src/scripts/build_base_packages/dhcpcd.sh b/rkos/src/scripts/build_base_packages/dhcpcd.sh new file mode 100755 index 0000000000000000000000000000000000000000..9005e347a6a3787b6dadab0eae5c7031895a6551 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/dhcpcd.sh @@ -0,0 +1,11 @@ +sed '/Deny everything else/i SECCOMP_ALLOW(__NR_getrandom),' \ + -i src/privsep-linux.c + +./configure --prefix=/usr \ + --sysconfdir=/etc \ + --libexecdir=/usr/lib/dhcpcd \ + --dbdir=/var/lib/dhcpcd \ + --runstatedir=/run \ + --disable-privsep && +make +make install diff --git a/rkos/src/scripts/build_base_packages/diffutils.sh b/rkos/src/scripts/build_base_packages/diffutils.sh new file mode 100755 index 0000000000000000000000000000000000000000..5d077a37d688f40a84d8a39348b05f08135f63fa --- /dev/null +++ b/rkos/src/scripts/build_base_packages/diffutils.sh @@ -0,0 +1,2 @@ +./configure --prefix=/usr +make && make install diff --git a/rkos/src/scripts/build_base_packages/e2fsprogs.sh b/rkos/src/scripts/build_base_packages/e2fsprogs.sh new file mode 100755 index 0000000000000000000000000000000000000000..794b4ad12d99a9ef23490eff2db325f47c843255 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/e2fsprogs.sh @@ -0,0 +1,20 @@ +mkdir -v build +cd build + +../configure --prefix=/usr \ + --sysconfdir=/etc \ + --enable-elf-shlibs \ + --disable-libblkid \ + --disable-libuuid \ + --disable-uuidd \ + --disable-fsck + +make && make install +rm -fv /usr/lib/{libcom_err,libe2p,libext2fs,libss}.a + +gunzip -v /usr/share/info/libext2fs.info.gz +install-info --dir-file=/usr/share/info/dir /usr/share/info/libext2fs.info + +makeinfo -o doc/com_err.info ../lib/et/com_err.texinfo +install -v -m644 doc/com_err.info /usr/share/info +install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info diff --git a/rkos/src/scripts/build_base_packages/eudev.sh b/rkos/src/scripts/build_base_packages/eudev.sh new file mode 100755 index 0000000000000000000000000000000000000000..37eed7f21cea4f25d1a00efdf72b04c8b419e083 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/eudev.sh @@ -0,0 +1,15 @@ +./configure --prefix=/usr \ + --bindir=/usr/sbin \ + --sysconfdir=/etc \ + --enable-manpages \ + --disable-static + +make +mkdir -pv /usr/lib/udev/rules.d +mkdir -pv /etc/udev/rules.d +make install +tar -xvf ../udev-lfs-20171102.tar.xz +make -f udev-lfs-20171102/Makefile.lfs install + +udevadm hwdb --update + diff --git a/rkos/src/scripts/build_base_packages/expat.sh b/rkos/src/scripts/build_base_packages/expat.sh new file mode 100755 index 0000000000000000000000000000000000000000..fd34dd2ffec3c7d5a82422177aa385e30d7631fc --- /dev/null +++ b/rkos/src/scripts/build_base_packages/expat.sh @@ -0,0 +1,7 @@ +./configure --prefix=/usr \ + --disable-static \ + --docdir=/usr/share/doc/expat-2.4.8 + +make && make install +install -v -m644 doc/*.{html,css} /usr/share/doc/expat-2.4.8 + diff --git a/rkos/src/scripts/build_base_packages/expect.sh b/rkos/src/scripts/build_base_packages/expect.sh new file mode 100755 index 0000000000000000000000000000000000000000..97b6c32ee98303f25b61de838bac053bf14f75d9 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/expect.sh @@ -0,0 +1,11 @@ +./configure --prefix=/usr \ + --with-tcl=/usr/lib \ + --enable-shared \ + --mandir=/usr/share/man \ + --with-tclinclude=/usr/include + +make + +make install +ln -svf expect5.45.4/libexpect5.45.4.so /usr/lib + diff --git a/rkos/src/scripts/build_base_packages/file.sh b/rkos/src/scripts/build_base_packages/file.sh new file mode 100755 index 0000000000000000000000000000000000000000..a661fa0a6050daf4aad7fc560775d33d3af1788e --- /dev/null +++ b/rkos/src/scripts/build_base_packages/file.sh @@ -0,0 +1,3 @@ +./configure --prefix=/usr + +make && make install diff --git a/rkos/src/scripts/build_base_packages/findutils.sh b/rkos/src/scripts/build_base_packages/findutils.sh new file mode 100755 index 0000000000000000000000000000000000000000..1a69512fedb9c1721410ab451b6bb4df0f925f9d --- /dev/null +++ b/rkos/src/scripts/build_base_packages/findutils.sh @@ -0,0 +1,9 @@ +case $(uname -m) in + i?86) TIME_T_32_BIT_OK=yes ./configure --prefix=/usr --localstatedir=/var/lib/locate ;; + x86_64) ./configure --prefix=/usr --localstatedir=/var/lib/locate ;; +esac + +make + + +make install diff --git a/rkos/src/scripts/build_base_packages/flex.sh b/rkos/src/scripts/build_base_packages/flex.sh new file mode 100755 index 0000000000000000000000000000000000000000..5b648f913203bcd8e245c1fb4b40c0d21b8e281e --- /dev/null +++ b/rkos/src/scripts/build_base_packages/flex.sh @@ -0,0 +1,7 @@ +./configure --prefix=/usr \ + --docdir=/usr/share/doc/flex-2.6.4 \ + --disable-static + +make && make install + +ln -sv flex /usr/bin/lex diff --git a/rkos/src/scripts/build_base_packages/gawk.sh b/rkos/src/scripts/build_base_packages/gawk.sh new file mode 100755 index 0000000000000000000000000000000000000000..e4efad7dcb3f46a61030dd536359308e1b7a6425 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/gawk.sh @@ -0,0 +1,8 @@ +sed -i 's/extras//' Makefile.in + +./configure --prefix=/usr + +make && make install + +mkdir -pv /usr/share/doc/gawk-5.1.1 +cp -v doc/{awkforai.txt,*.{eps,pdf,jpg}} /usr/share/doc/gawk-5.1.1 diff --git a/rkos/src/scripts/build_base_packages/gcc.sh b/rkos/src/scripts/build_base_packages/gcc.sh new file mode 100755 index 0000000000000000000000000000000000000000..75f1c1f55175b97d3570c9b3ee8b7caaede79d0c --- /dev/null +++ b/rkos/src/scripts/build_base_packages/gcc.sh @@ -0,0 +1,43 @@ +case $(uname -m) in + x86_64) + sed -e '/m64=/s/lib64/lib/' \ + -i.orig gcc/config/i386/t-linux64 + ;; +esac + +mkdir -v build +cd build + +../configure --prefix=/usr \ + LD=ld \ + --enable-languages=c,c++ \ + --disable-multilib \ + --disable-bootstrap \ + --with-system-zlib + +#TODO:是否需要测试 +make && make install + +chown -v -R root:root \ + /usr/lib/gcc/$(gcc -dumpmachine)/12.2.0/include{,-fixed} + +ln -svr /usr/bin/cpp /usr/lib + +ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/12.2.0/liblto_plugin.so \ + /usr/lib/bfd-plugins/ + +#echo 'int main(){}' > dummy.c +#cc dummy.c -v -Wl,--verbose &> dummy.log +#readelf -l a.out | grep ': /lib' +# +#TODO:这块需要检测测试输出结果 +#grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log +#grep -B4 '^ /usr/include' dummy.log +#grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g' +#grep "/lib.*/libc.so.6 " dummy.log +#grep found dummy.log +# +#rm -v dummy.c a.out dummy.log +mkdir -pv /usr/share/gdb/auto-load/usr/lib +mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib + diff --git a/rkos/src/scripts/build_base_packages/gdbm.sh b/rkos/src/scripts/build_base_packages/gdbm.sh new file mode 100755 index 0000000000000000000000000000000000000000..59225dce33d971d7bcbb59dc0f96ef5d1945af9f --- /dev/null +++ b/rkos/src/scripts/build_base_packages/gdbm.sh @@ -0,0 +1,4 @@ +./configure --prefix=/usr \ + --disable-static \ + --enable-libgdbm-compat +make && make install diff --git a/rkos/src/scripts/build_base_packages/gettext.sh b/rkos/src/scripts/build_base_packages/gettext.sh new file mode 100755 index 0000000000000000000000000000000000000000..155a5c3736eb62a9e802135b888caaebdcd4d0e5 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/gettext.sh @@ -0,0 +1,7 @@ +./configure --prefix=/usr \ + --disable-static \ + --docdir=/usr/share/doc/gettext-0.21 + +make && make install + +chmod -v 0755 /usr/lib/preloadable_libintl.so diff --git a/rkos/src/scripts/build_base_packages/glibc.sh b/rkos/src/scripts/build_base_packages/glibc.sh new file mode 100755 index 0000000000000000000000000000000000000000..dac9f0dbd4d1795ebc7588e40afb7e47a1633819 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/glibc.sh @@ -0,0 +1,115 @@ +patch -Np1 -i ../base_patches/glibc-2.36-fhs-1.patch + +mkdir -v build && cd build + +echo "rootsbindir=/usr/sbin" > configparms + +../configure --prefix=/usr \ + --disable-werror \ + --enable-kernel=3.2 \ + --enable-stack-protector=strong \ + --with-headers=/usr/include \ + libc_cv_slibdir=/usr/lib + +make + +touch /etc/ld.so.conf + +sed '/test-installation/s@$(PERL)@echo not running@' -i ../Makefile + +make install + +sed '/RTLDLIST=/s@/usr@@g' -i /usr/bin/ldd + +cp -v ../nscd/nscd.conf /etc/nscd.conf +mkdir -pv /var/cache/nscd + +mkdir -pv /usr/lib/locale +localedef -i POSIX -f UTF-8 C.UTF-8 2> /dev/null || true +localedef -i cs_CZ -f UTF-8 cs_CZ.UTF-8 +localedef -i de_DE -f ISO-8859-1 de_DE +localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro +localedef -i de_DE -f UTF-8 de_DE.UTF-8 +localedef -i el_GR -f ISO-8859-7 el_GR +localedef -i en_GB -f ISO-8859-1 en_GB +localedef -i en_GB -f UTF-8 en_GB.UTF-8 +localedef -i en_HK -f ISO-8859-1 en_HK +localedef -i en_PH -f ISO-8859-1 en_PH +localedef -i en_US -f ISO-8859-1 en_US +localedef -i en_US -f UTF-8 en_US.UTF-8 +localedef -i es_ES -f ISO-8859-15 es_ES@euro +localedef -i es_MX -f ISO-8859-1 es_MX +localedef -i fa_IR -f UTF-8 fa_IR +localedef -i fr_FR -f ISO-8859-1 fr_FR +localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro +localedef -i fr_FR -f UTF-8 fr_FR.UTF-8 +localedef -i is_IS -f ISO-8859-1 is_IS +localedef -i is_IS -f UTF-8 is_IS.UTF-8 +localedef -i it_IT -f ISO-8859-1 it_IT +localedef -i it_IT -f ISO-8859-15 it_IT@euro +localedef -i it_IT -f UTF-8 it_IT.UTF-8 +localedef -i ja_JP -f EUC-JP ja_JP +localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true +localedef -i ja_JP -f UTF-8 ja_JP.UTF-8 +localedef -i nl_NL@euro -f ISO-8859-15 nl_NL@euro +localedef -i ru_RU -f KOI8-R ru_RU.KOI8-R +localedef -i ru_RU -f UTF-8 ru_RU.UTF-8 +localedef -i se_NO -f UTF-8 se_NO.UTF-8 +localedef -i ta_IN -f UTF-8 ta_IN.UTF-8 +localedef -i tr_TR -f UTF-8 tr_TR.UTF-8 +localedef -i zh_CN -f GB18030 zh_CN.GB18030 +localedef -i zh_HK -f BIG5-HKSCS zh_HK.BIG5-HKSCS +localedef -i zh_TW -f UTF-8 zh_TW.UTF-8 + +localedef -i POSIX -f UTF-8 C.UTF-8 2> /dev/null || true +localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true + +cat > /etc/nsswitch.conf << "EOF" +# Begin /etc/nsswitch.conf + +passwd: files +group: files +shadow: files + +hosts: files dns +networks: files + +protocols: files +services: files +ethers: files +rpc: files + +# End /etc/nsswitch.conf +EOF + +tar -xf ../../tzdata2022c.tar.gz + +ZONEINFO=/usr/share/zoneinfo +mkdir -pv $ZONEINFO/{posix,right} + +for tz in etcetera southamerica northamerica europe africa antarctica \ + asia australasia backward; do + zic -L /dev/null -d $ZONEINFO ${tz} + zic -L /dev/null -d $ZONEINFO/posix ${tz} + zic -L leapseconds -d $ZONEINFO/right ${tz} +done + +cp -v zone.tab zone1970.tab iso3166.tab $ZONEINFO +zic -d $ZONEINFO -p America/New_York +unset ZONEINFO + +ln -sfv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime + +cat > /etc/ld.so.conf << "EOF" +# Begin /etc/ld.so.conf +/usr/local/lib +/opt/lib + +EOF + +cat >> /etc/ld.so.conf << "EOF" +# Add an include directory +include /etc/ld.so.conf.d/*.conf + +EOF +mkdir -pv /etc/ld.so.conf.d diff --git a/rkos/src/scripts/build_base_packages/gmp.sh b/rkos/src/scripts/build_base_packages/gmp.sh new file mode 100755 index 0000000000000000000000000000000000000000..d6618aedadf22a3b3019d971c371715fb40b3e86 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/gmp.sh @@ -0,0 +1,15 @@ +cp -v configfsf.guess config.guess +cp -v configfsf.sub config.sub + +./configure --prefix=/usr \ + --enable-cxx \ + --disable-static \ + --build=x86_64-pc-linux-gnu \ + --docdir=/usr/share/doc/gmp-6.2.1 +make && make html + +make check 2>&1 | tee gmp-check-log +awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log + +make install && make install-html + diff --git a/rkos/src/scripts/build_base_packages/gperf.sh b/rkos/src/scripts/build_base_packages/gperf.sh new file mode 100755 index 0000000000000000000000000000000000000000..6b5f03eecbdef8c504cc6f7fab528db8f5e95b52 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/gperf.sh @@ -0,0 +1,2 @@ +./configure --prefix=/usr --docdir=/usr/share/doc/gperf-3.1 +make && make install diff --git a/rkos/src/scripts/build_base_packages/grep.sh b/rkos/src/scripts/build_base_packages/grep.sh new file mode 100755 index 0000000000000000000000000000000000000000..5d077a37d688f40a84d8a39348b05f08135f63fa --- /dev/null +++ b/rkos/src/scripts/build_base_packages/grep.sh @@ -0,0 +1,2 @@ +./configure --prefix=/usr +make && make install diff --git a/rkos/src/scripts/build_base_packages/groff.sh b/rkos/src/scripts/build_base_packages/groff.sh new file mode 100755 index 0000000000000000000000000000000000000000..f1dffa47e03d5e5f6831a09a5d97916a644a45fa --- /dev/null +++ b/rkos/src/scripts/build_base_packages/groff.sh @@ -0,0 +1,4 @@ +PAGE=A4 ./configure --prefix=/usr +export MAKEFLAGS='j1' +make -j1 +make install diff --git a/rkos/src/scripts/build_base_packages/grub.sh b/rkos/src/scripts/build_base_packages/grub.sh new file mode 100755 index 0000000000000000000000000000000000000000..c8811b9d755980cdcbef2994986aa6559afe65e4 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/grub.sh @@ -0,0 +1,7 @@ +./configure --prefix=/usr \ + --sysconfdir=/etc \ + --disable-efiemu \ + --disable-werror +make +make install +mv -v /etc/bash_completion.d/grub /usr/share/bash-completion/completions diff --git a/rkos/src/scripts/build_base_packages/gzip.sh b/rkos/src/scripts/build_base_packages/gzip.sh new file mode 100755 index 0000000000000000000000000000000000000000..5d077a37d688f40a84d8a39348b05f08135f63fa --- /dev/null +++ b/rkos/src/scripts/build_base_packages/gzip.sh @@ -0,0 +1,2 @@ +./configure --prefix=/usr +make && make install diff --git a/rkos/src/scripts/build_base_packages/iana_etc.sh b/rkos/src/scripts/build_base_packages/iana_etc.sh new file mode 100755 index 0000000000000000000000000000000000000000..81b06e6e4ced02972b311d31b99678eef06f5402 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/iana_etc.sh @@ -0,0 +1 @@ +cp services protocols /etc diff --git a/rkos/src/scripts/build_base_packages/inetutils.sh b/rkos/src/scripts/build_base_packages/inetutils.sh new file mode 100755 index 0000000000000000000000000000000000000000..70105961754cf3e674daeb062eabdc8c99186eb3 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/inetutils.sh @@ -0,0 +1,13 @@ +./configure --prefix=/usr \ + --bindir=/usr/bin \ + --localstatedir=/var \ + --disable-logger \ + --disable-whois \ + --disable-rcp \ + --disable-rexec \ + --disable-rlogin \ + --disable-rsh \ + --disable-servers + +make && make install +mv -v /usr/{,s}bin/ifconfig diff --git a/rkos/src/scripts/build_base_packages/inna_etc.sh b/rkos/src/scripts/build_base_packages/inna_etc.sh new file mode 100755 index 0000000000000000000000000000000000000000..81b06e6e4ced02972b311d31b99678eef06f5402 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/inna_etc.sh @@ -0,0 +1 @@ +cp services protocols /etc diff --git a/rkos/src/scripts/build_base_packages/intltool.sh b/rkos/src/scripts/build_base_packages/intltool.sh new file mode 100755 index 0000000000000000000000000000000000000000..173a3a825f5a70e8c126b459e0a15d4fe498dfd2 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/intltool.sh @@ -0,0 +1,5 @@ +sed -i 's:\\\${:\\\$\\{:' intltool-update.in + +./configure --prefix=/usr +make && make install +install -v -Dm644 doc/I18N-HOWTO /usr/share/doc/intltool-0.51.0/I18N-HOWTO diff --git a/rkos/src/scripts/build_base_packages/iproute.sh b/rkos/src/scripts/build_base_packages/iproute.sh new file mode 100755 index 0000000000000000000000000000000000000000..48e26996a4113bfbfb4247f5e7a2c185d5174825 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/iproute.sh @@ -0,0 +1,10 @@ +sed -i /ARPD/d Makefile +rm -fv man/man8/arpd.8 + +make NETNS_RUN_DIR=/run/netns + +make SBINDIR=/usr/sbin install + +mkdir -pv /usr/share/doc/iproute2-5.19.0 +cp -v COPYING README* /usr/share/doc/iproute2-5.19.0 + diff --git a/rkos/src/scripts/build_base_packages/kbd.sh b/rkos/src/scripts/build_base_packages/kbd.sh new file mode 100755 index 0000000000000000000000000000000000000000..3d92a7f1b012bcecbc57423d2c3046824f98af9a --- /dev/null +++ b/rkos/src/scripts/build_base_packages/kbd.sh @@ -0,0 +1,6 @@ +patch -Np1 -i ../base_patches/kbd-2.5.1-backspace-1.patch + +sed -i '/RESIZECONS_PROGS=/s/yes/no/' configure +sed -i 's/resizecons.8 //' docs/man/man8/Makefile.in +./configure --prefix=/usr --disable-vlock +make && make install diff --git a/rkos/src/scripts/build_base_packages/kmod.sh b/rkos/src/scripts/build_base_packages/kmod.sh new file mode 100755 index 0000000000000000000000000000000000000000..da91576a684fdd64f751e7692dc2d11df25e473d --- /dev/null +++ b/rkos/src/scripts/build_base_packages/kmod.sh @@ -0,0 +1,16 @@ +./configure --prefix=/usr \ + --sysconfdir=/etc \ + --with-openssl \ + --with-xz \ + --with-zstd \ + --with-zlib + +make +make install + +for target in depmod insmod modinfo modprobe rmmod; do + ln -sfv ../bin/kmod /usr/sbin/$target +done + +ln -sfv kmod /usr/bin/ + diff --git a/rkos/src/scripts/build_base_packages/less.sh b/rkos/src/scripts/build_base_packages/less.sh new file mode 100755 index 0000000000000000000000000000000000000000..4b076720c62d580c3db75902be7f7c9d5a7137f5 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/less.sh @@ -0,0 +1,2 @@ +./configure --prefix=/usr --sysconfdir=/etc +make && make install diff --git a/rkos/src/scripts/build_base_packages/lfs-bootscripts.sh b/rkos/src/scripts/build_base_packages/lfs-bootscripts.sh new file mode 100755 index 0000000000000000000000000000000000000000..e6fe4f7638418d346bbad69e6226fc026b4ef592 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/lfs-bootscripts.sh @@ -0,0 +1 @@ +make install diff --git a/rkos/src/scripts/build_base_packages/libarchive.sh b/rkos/src/scripts/build_base_packages/libarchive.sh new file mode 100755 index 0000000000000000000000000000000000000000..874774f92059550d69b848dc5f866ae30b42f20c --- /dev/null +++ b/rkos/src/scripts/build_base_packages/libarchive.sh @@ -0,0 +1,5 @@ +./configure --prefix=/usr --disable-static && +make +make install + +sed -i "s/iconv //" /usr/lib/pkgconfig/libarchive.pc diff --git a/rkos/src/scripts/build_base_packages/libcap.sh b/rkos/src/scripts/build_base_packages/libcap.sh new file mode 100755 index 0000000000000000000000000000000000000000..5086cc81eca4c3f124ddba4da8072c0b3cf6790c --- /dev/null +++ b/rkos/src/scripts/build_base_packages/libcap.sh @@ -0,0 +1,3 @@ +sed -i '/install -m.*STA/d' libcap/Makefile + +make prefix=/usr lib=lib && make prefix=/usr lib=lib install diff --git a/rkos/src/scripts/build_base_packages/libelf.sh b/rkos/src/scripts/build_base_packages/libelf.sh new file mode 100755 index 0000000000000000000000000000000000000000..e2a5b2dc52c6e74bb098718445af1723517af0bc --- /dev/null +++ b/rkos/src/scripts/build_base_packages/libelf.sh @@ -0,0 +1,8 @@ +./configure --prefix=/usr \ + --disable-debuginfod \ + --enable-libdebuginfod=dummy + +make +make -C libelf install +install -vm644 config/libelf.pc /usr/lib/pkgconfig +rm /usr/lib/libelf.a diff --git a/rkos/src/scripts/build_base_packages/libffi.sh b/rkos/src/scripts/build_base_packages/libffi.sh new file mode 100755 index 0000000000000000000000000000000000000000..d754063d843dc530206543f4f13af76fc3624851 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/libffi.sh @@ -0,0 +1,5 @@ +./configure --prefix=/usr \ + --disable-static \ + --with-gcc-arch=native \ + --disable-exec-static-tramp +make && make install diff --git a/rkos/src/scripts/build_base_packages/libpipeline.sh b/rkos/src/scripts/build_base_packages/libpipeline.sh new file mode 100755 index 0000000000000000000000000000000000000000..5d077a37d688f40a84d8a39348b05f08135f63fa --- /dev/null +++ b/rkos/src/scripts/build_base_packages/libpipeline.sh @@ -0,0 +1,2 @@ +./configure --prefix=/usr +make && make install diff --git a/rkos/src/scripts/build_base_packages/libtasn.sh b/rkos/src/scripts/build_base_packages/libtasn.sh new file mode 100755 index 0000000000000000000000000000000000000000..0dc94ced7264ddceb10958800d69bf3a9ed56867 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/libtasn.sh @@ -0,0 +1,5 @@ +./configure --prefix=/usr --disable-static && make + +make install + +make -C doc/reference install-data-local diff --git a/rkos/src/scripts/build_base_packages/libtools.sh b/rkos/src/scripts/build_base_packages/libtools.sh new file mode 100755 index 0000000000000000000000000000000000000000..121ba47b9393f7bcca1af2cb38289f815adbb6e6 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/libtools.sh @@ -0,0 +1,4 @@ +./configure --prefix=/usr +make && make install +rm -fv /usr/lib/libltdl.a + diff --git a/rkos/src/scripts/build_base_packages/libuv.sh b/rkos/src/scripts/build_base_packages/libuv.sh new file mode 100755 index 0000000000000000000000000000000000000000..dff5ab59c86b673542232fe6ab6d44074c52f36a --- /dev/null +++ b/rkos/src/scripts/build_base_packages/libuv.sh @@ -0,0 +1,5 @@ +sh autogen.sh && +./configure --prefix=/usr --disable-static && +make + +make install diff --git a/rkos/src/scripts/build_base_packages/libxml2.sh b/rkos/src/scripts/build_base_packages/libxml2.sh new file mode 100755 index 0000000000000000000000000000000000000000..e0149f4fd4c5e04cadac901351fd7492833f12f0 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/libxml2.sh @@ -0,0 +1,9 @@ + +./configure --prefix=/usr \ + --sysconfdir=/etc \ + --disable-static \ + --with-history \ + PYTHON=/usr/bin/python3 \ + --docdir=/usr/share/doc/libxml2-2.10.3 && +make +make install diff --git a/rkos/src/scripts/build_base_packages/llvm.sh b/rkos/src/scripts/build_base_packages/llvm.sh new file mode 100755 index 0000000000000000000000000000000000000000..ab9daf59d2799e111ff007404bd9d94e3b9290e2 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/llvm.sh @@ -0,0 +1,33 @@ +swapon /dev/vdc +tar -xf ../llvm-cmake-15.0.7.src.tar.xz && +sed '/LLVM_COMMON_CMAKE_UTILS/s@../cmake@cmake-15.0.7.src@' \ + -i CMakeLists.txt + +tar -xf ../clang-15.0.7.src.tar.xz -C tools && +mv tools/clang-15.0.7.src tools/clang + +#tar -xf ../lld-15.0.7.src.tar.xz -C tools && +#mv tools/lld-15.0.7.src tools/lld + +grep -rl '#!.*python' | xargs sed -i '1s/python$/python3/' +patch -Np2 -d tools/clang <../base_patches/clang-15.0.7-enable_default_ssp-1.patch + +mkdir -v build && +cd build && + +CC=gcc CXX=g++ \ +cmake -DCMAKE_INSTALL_PREFIX=/usr \ + -DLLVM_ENABLE_FFI=ON \ + -DCMAKE_BUILD_TYPE=Release \ + -DLLVM_BUILD_LLVM_DYLIB=ON \ + -DLLVM_LINK_LLVM_DYLIB=ON \ + -DLLVM_ENABLE_RTTI=ON \ + -DLLVM_TARGETS_TO_BUILD="host;AMDGPU;BPF" \ + -DLLVM_BINUTILS_INCDIR=/usr/include \ + -DLLVM_INCLUDE_BENCHMARKS=OFF \ + -DCLANG_DEFAULT_PIE_ON_LINUX=ON \ + -Wno-dev -G Ninja .. && +ninja + +ninja install && +cp bin/FileCheck /usr/bin diff --git a/rkos/src/scripts/build_base_packages/lzo.sh b/rkos/src/scripts/build_base_packages/lzo.sh new file mode 100755 index 0000000000000000000000000000000000000000..8c142472651174fbfe1af4797e530f48250075b7 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/lzo.sh @@ -0,0 +1,6 @@ +./configure --prefix=/usr \ + --enable-shared \ + --disable-static \ + --docdir=/usr/share/doc/lzo-2.10 && +make +make install diff --git a/rkos/src/scripts/build_base_packages/m4.sh b/rkos/src/scripts/build_base_packages/m4.sh new file mode 100755 index 0000000000000000000000000000000000000000..a661fa0a6050daf4aad7fc560775d33d3af1788e --- /dev/null +++ b/rkos/src/scripts/build_base_packages/m4.sh @@ -0,0 +1,3 @@ +./configure --prefix=/usr + +make && make install diff --git a/rkos/src/scripts/build_base_packages/make-ca.sh b/rkos/src/scripts/build_base_packages/make-ca.sh new file mode 100755 index 0000000000000000000000000000000000000000..1ca9cadc574fe65ef447bde2f92e14c1161b8e45 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/make-ca.sh @@ -0,0 +1 @@ +make install && install -vdm755 /etc/ssl/local diff --git a/rkos/src/scripts/build_base_packages/make.sh b/rkos/src/scripts/build_base_packages/make.sh new file mode 100755 index 0000000000000000000000000000000000000000..b9535d02e7f2a53d3e983ff87f4136ec95bd0328 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/make.sh @@ -0,0 +1,3 @@ +./configure --prefix=/usr +make +make install diff --git a/rkos/src/scripts/build_base_packages/man_db.sh b/rkos/src/scripts/build_base_packages/man_db.sh new file mode 100755 index 0000000000000000000000000000000000000000..9b7ebcb37972ebf8545b365b89c8a7c88fca6cc2 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/man_db.sh @@ -0,0 +1,12 @@ +./configure --prefix=/usr \ + --docdir=/usr/share/doc/man-db-2.10.2 \ + --sysconfdir=/etc \ + --disable-setuid \ + --enable-cache-owner=bin \ + --with-browser=/usr/bin/lynx \ + --with-vgrind=/usr/bin/vgrind \ + --with-grap=/usr/bin/grap \ + --with-systemdtmpfilesdir= \ + --with-systemdsystemunitdir= + +make && make install diff --git a/rkos/src/scripts/build_base_packages/man_page.sh b/rkos/src/scripts/build_base_packages/man_page.sh new file mode 100755 index 0000000000000000000000000000000000000000..4e76028c2e2891f844c6a5d27b67a48c4c41d8ba --- /dev/null +++ b/rkos/src/scripts/build_base_packages/man_page.sh @@ -0,0 +1 @@ +make prefix=/usr install diff --git a/rkos/src/scripts/build_base_packages/meson.sh b/rkos/src/scripts/build_base_packages/meson.sh new file mode 100755 index 0000000000000000000000000000000000000000..a25ae230f16e5c39d30a42189b44a13c6445f6e8 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/meson.sh @@ -0,0 +1,5 @@ +pip3 wheel -w dist --no-build-isolation --no-deps $PWD +pip3 install --no-index --find-links dist meson +install -vDm644 data/shell-completions/bash/meson /usr/share/bash-completion/completions/meson +install -vDm644 data/shell-completions/zsh/_meson /usr/share/zsh/site-functions/_meson + diff --git a/rkos/src/scripts/build_base_packages/mpc.sh b/rkos/src/scripts/build_base_packages/mpc.sh new file mode 100755 index 0000000000000000000000000000000000000000..19079e1fb03692246ccd82bb96c1663399ab5bc2 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/mpc.sh @@ -0,0 +1,5 @@ +./configure --prefix=/usr \ + --disable-static \ + --docdir=/usr/share/doc/mpc-1.2.1 +make && make html +make install && make install-html diff --git a/rkos/src/scripts/build_base_packages/mpfr.sh b/rkos/src/scripts/build_base_packages/mpfr.sh new file mode 100755 index 0000000000000000000000000000000000000000..d322cbe79da4771ac0b2816e81f9294823c014b2 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/mpfr.sh @@ -0,0 +1,10 @@ +./configure --prefix=/usr \ + --disable-static \ + --enable-thread-safe \ + --docdir=/usr/share/doc/mpfr-4.1.0 +make && make html + +make check + +make install +make install-html diff --git a/rkos/src/scripts/build_base_packages/ncurses.sh b/rkos/src/scripts/build_base_packages/ncurses.sh new file mode 100755 index 0000000000000000000000000000000000000000..58593979f0651424d025f6b43020d98e573f396c --- /dev/null +++ b/rkos/src/scripts/build_base_packages/ncurses.sh @@ -0,0 +1,29 @@ +./configure --prefix=/usr \ + --mandir=/usr/share/man \ + --with-shared \ + --without-debug \ + --without-normal \ + --with-cxx-shared \ + --enable-pc-files \ + --enable-widec \ + --with-pkg-config-libdir=/usr/lib/pkgconfig + +make + +make DESTDIR=$PWD/dest install +install -vm755 dest/usr/lib/libncursesw.so.6.3 /usr/lib +rm -v dest/usr/lib/libncursesw.so.6.3 +cp -av dest/* / + +for lib in ncurses form panel menu ; do + rm -vf /usr/lib/lib${lib}.so + echo "INPUT(-l${lib}w)" > /usr/lib/lib${lib}.so + ln -sfv ${lib}w.pc /usr/lib/pkgconfig/${lib}.pc +done + +rm -vf /usr/lib/libcursesw.so +echo "INPUT(-lncursesw)" > /usr/lib/libcursesw.so +ln -sfv libncurses.so /usr/lib/libcurses.so + +mkdir -pv /usr/share/doc/ncurses-6.3 +cp -v -R doc/* /usr/share/doc/ncurses-6.3 diff --git a/rkos/src/scripts/build_base_packages/nettle.sh b/rkos/src/scripts/build_base_packages/nettle.sh new file mode 100755 index 0000000000000000000000000000000000000000..8631350313f3f63c69704d7a7fadbd2139d4841c --- /dev/null +++ b/rkos/src/scripts/build_base_packages/nettle.sh @@ -0,0 +1,6 @@ +./configure --prefix=/usr --disable-static && +make +make install && +chmod -v 755 /usr/lib/lib{hogweed,nettle}.so && +install -v -m755 -d /usr/share/doc/nettle-3.8.1 && +install -v -m644 nettle.html /usr/share/doc/nettle-3.8.1 diff --git a/rkos/src/scripts/build_base_packages/nghttp.sh b/rkos/src/scripts/build_base_packages/nghttp.sh new file mode 100755 index 0000000000000000000000000000000000000000..6a59b32c27ebba69c182a0015555185243570470 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/nghttp.sh @@ -0,0 +1,7 @@ +./configure --prefix=/usr \ + --disable-static \ + --enable-lib-only \ + --docdir=/usr/share/doc/nghttp2-1.52.0 && +make + +make install diff --git a/rkos/src/scripts/build_base_packages/ninja.sh b/rkos/src/scripts/build_base_packages/ninja.sh new file mode 100755 index 0000000000000000000000000000000000000000..66ced5ef11b574eb04d768d534522809cec3678f --- /dev/null +++ b/rkos/src/scripts/build_base_packages/ninja.sh @@ -0,0 +1,15 @@ +export NINJAJOBS=4 + +sed -i '/int Guess/a \ + int j = 0;\ + char* jobs = getenv( "NINJAJOBS" );\ + if ( jobs != NULL ) j = atoi( jobs );\ + if ( j > 0 ) return j;\ +' src/ninja.cc + +python3 configure.py --bootstrap + +install -vm755 ninja /usr/bin/ +install -vDm644 misc/bash-completion /usr/share/bash-completion/completions/ninja +install -vDm644 misc/zsh-completion /usr/share/zsh/site-functions/_ninja + diff --git a/rkos/src/scripts/build_base_packages/openssl.sh b/rkos/src/scripts/build_base_packages/openssl.sh new file mode 100755 index 0000000000000000000000000000000000000000..5a7f5a005c3da07ffdab8d63cdcc7c946055d630 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/openssl.sh @@ -0,0 +1,14 @@ +./config --prefix=/usr \ + --openssldir=/etc/ssl \ + --libdir=lib \ + shared \ + zlib-dynamic + +make +sed -i '/INSTALL_LIBS/s/libcrypto.a libssl.a//' Makefile +make MANSUFFIX=ssl install + +mv -v /usr/share/doc/openssl /usr/share/doc/openssl-3.0.5 + +cp -vfr doc/* /usr/share/doc/openssl-3.0.5 + diff --git a/rkos/src/scripts/build_base_packages/p11.sh b/rkos/src/scripts/build_base_packages/p11.sh new file mode 100755 index 0000000000000000000000000000000000000000..1cfeab54deef2ff33ab0aaf8c1f3289b322a437a --- /dev/null +++ b/rkos/src/scripts/build_base_packages/p11.sh @@ -0,0 +1,19 @@ +sed '20,$ d' -i trust/trust-extract-compat && +cat >> trust/trust-extract-compat << "EOF" +# Copy existing anchor modifications to /etc/ssl/local +/usr/libexec/make-ca/copy-trust-modifications + +# Update trust stores +/usr/sbin/make-ca -r +EOF +mkdir p11-build && +cd p11-build && + +meson --prefix=/usr \ + --buildtype=release \ + -Dtrust_paths=/etc/pki/anchors && +ninja +ninja install && +ln -sfv /usr/libexec/p11-kit/trust-extract-compat \ + /usr/bin/update-ca-certificates +ln -sfv ./pkcs11/p11-kit-trust.so /usr/lib/libnssckbi.so diff --git a/rkos/src/scripts/build_base_packages/patch.sh b/rkos/src/scripts/build_base_packages/patch.sh new file mode 100755 index 0000000000000000000000000000000000000000..a661fa0a6050daf4aad7fc560775d33d3af1788e --- /dev/null +++ b/rkos/src/scripts/build_base_packages/patch.sh @@ -0,0 +1,3 @@ +./configure --prefix=/usr + +make && make install diff --git a/rkos/src/scripts/build_base_packages/perl.sh b/rkos/src/scripts/build_base_packages/perl.sh new file mode 100755 index 0000000000000000000000000000000000000000..b18f9d19baf80f79d5b882292b0161b9b59089a2 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/perl.sh @@ -0,0 +1,20 @@ +export BUILD_ZLIB=False +export BUILD_BZIP2=0 + +sh Configure -des \ + -Dprefix=/usr \ + -Dvendorprefix=/usr \ + -Dprivlib=/usr/lib/perl5/5.36/core_perl \ + -Darchlib=/usr/lib/perl5/5.36/core_perl \ + -Dsitelib=/usr/lib/perl5/5.36/site_perl \ + -Dsitearch=/usr/lib/perl5/5.36/site_perl \ + -Dvendorlib=/usr/lib/perl5/5.36/vendor_perl \ + -Dvendorarch=/usr/lib/perl5/5.36/vendor_perl \ + -Dman1dir=/usr/share/man/man1 \ + -Dman3dir=/usr/share/man/man3 \ + -Dpager="/usr/bin/less -isR" \ + -Duseshrplib \ + -Dusethreads + +make && make install +unset BUILD_ZLIB BUILD_BZIP2 diff --git a/rkos/src/scripts/build_base_packages/pkg_config.sh b/rkos/src/scripts/build_base_packages/pkg_config.sh new file mode 100755 index 0000000000000000000000000000000000000000..512d9c1d79dbc2481222762b07bdecc437b20782 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/pkg_config.sh @@ -0,0 +1,5 @@ +./configure --prefix=/usr \ + --with-internal-glib \ + --disable-host-tool \ + --docdir=/usr/share/doc/pkg-config-0.29.2 +make && make install diff --git a/rkos/src/scripts/build_base_packages/procps_ng.sh b/rkos/src/scripts/build_base_packages/procps_ng.sh new file mode 100755 index 0000000000000000000000000000000000000000..af1bfd821e4b3efbbfc287ccbcfcf9f8af3e2914 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/procps_ng.sh @@ -0,0 +1,5 @@ +./configure --prefix=/usr \ + --docdir=/usr/share/doc/procps-ng-4.0.0 \ + --disable-static \ + --disable-kill +make && make install diff --git a/rkos/src/scripts/build_base_packages/psmisc.sh b/rkos/src/scripts/build_base_packages/psmisc.sh new file mode 100755 index 0000000000000000000000000000000000000000..5d077a37d688f40a84d8a39348b05f08135f63fa --- /dev/null +++ b/rkos/src/scripts/build_base_packages/psmisc.sh @@ -0,0 +1,2 @@ +./configure --prefix=/usr +make && make install diff --git a/rkos/src/scripts/build_base_packages/python.sh b/rkos/src/scripts/build_base_packages/python.sh new file mode 100755 index 0000000000000000000000000000000000000000..1e0affec25a4d4fd7b4a1b6b55f93314a7911c94 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/python.sh @@ -0,0 +1,21 @@ +./configure --prefix=/usr \ + --enable-shared \ + --with-system-expat \ + --with-system-ffi \ + --enable-optimizations + +make && make install + +cat > /etc/pip.conf << EOF +[global] +root-user-action = ignore +disable-pip-version-check = true +EOF + +#install -v -dm755 /usr/share/doc/python-3.10.6/html + +#tar --strip-components=1 \ +# --no-same-owner \ +# --no-same-permissions \ +# -C /usr/share/doc/python-3.10.6/html \ +# -xvf ../python-3.10.6-docs-html.tar.bz2 diff --git a/rkos/src/scripts/build_base_packages/readline.sh b/rkos/src/scripts/build_base_packages/readline.sh new file mode 100755 index 0000000000000000000000000000000000000000..73af436b95f91b83bd1955b852334a61f690252c --- /dev/null +++ b/rkos/src/scripts/build_base_packages/readline.sh @@ -0,0 +1,12 @@ +sed -i '/MV.*old/d' Makefile.in +sed -i '/{OLDSUFF}/c:' support/shlib-install + +./configure --prefix=/usr \ + --disable-static \ + --with-curses \ + --docdir=/usr/share/doc/readline-8.1.2 + +make SHLIB_LIBS="-lncursesw" +make SHLIB_LIBS="-lncursesw" install + +install -v -m644 doc/*.{ps,pdf,html,dvi} /usr/share/doc/readline-8.1.2 diff --git a/rkos/src/scripts/build_base_packages/remove_debug_tag.sh b/rkos/src/scripts/build_base_packages/remove_debug_tag.sh new file mode 100755 index 0000000000000000000000000000000000000000..a879416064e924753ba66f3736552188b4047099 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/remove_debug_tag.sh @@ -0,0 +1,54 @@ +save_usrlib="$(cd /usr/lib; ls ld-linux*[^g]) + libc.so.6 + libthread_db.so.1 + libquadmath.so.0.0.0 + libstdc++.so.6.0.30 + libitm.so.1.0.0 + libatomic.so.1.2.0" + +cd /usr/lib + +for LIB in $save_usrlib; do + objcopy --only-keep-debug $LIB $LIB.dbg + cp $LIB /tmp/$LIB + strip --strip-unneeded /tmp/$LIB + objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB + install -vm755 /tmp/$LIB /usr/lib + rm /tmp/$LIB +done + +online_usrbin="bash find strip" +online_usrlib="libbfd-2.39.so + libhistory.so.8.1 + libncursesw.so.6.3 + libm.so.6 + libreadline.so.8.1 + libz.so.1.2.12 + $(cd /usr/lib; find libnss*.so* -type f)" + +for BIN in $online_usrbin; do + cp /usr/bin/$BIN /tmp/$BIN + strip --strip-unneeded /tmp/$BIN + install -vm755 /tmp/$BIN /usr/bin + rm /tmp/$BIN +done + +for LIB in $online_usrlib; do + cp /usr/lib/$LIB /tmp/$LIB + strip --strip-unneeded /tmp/$LIB + install -vm755 /tmp/$LIB /usr/lib + rm /tmp/$LIB +done + +for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \ + $(find /usr/lib -type f -name \*.a) \ + $(find /usr/{bin,sbin,libexec} -type f); do + case "$online_usrbin $online_usrlib $save_usrlib" in + *$(basename $i)* ) + ;; + * ) strip --strip-unneeded $i + ;; + esac +done + +unset BIN LIB save_usrlib online_usrbin online_usrlib diff --git a/rkos/src/scripts/build_base_packages/sed.sh b/rkos/src/scripts/build_base_packages/sed.sh new file mode 100755 index 0000000000000000000000000000000000000000..b734fda606da7894efe95400c93954f315968163 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/sed.sh @@ -0,0 +1,8 @@ +./configure --prefix=/usr + +make +make html + +make install +install -d -m755 /usr/share/doc/sed-4.8 +install -m644 doc/sed.html /usr/share/doc/sed-4.8 diff --git a/rkos/src/scripts/build_base_packages/shadow.sh b/rkos/src/scripts/build_base_packages/shadow.sh new file mode 100755 index 0000000000000000000000000000000000000000..29b11f26a4db174ba355f6d3b0b74aed913eb876 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/shadow.sh @@ -0,0 +1,30 @@ +sed -i 's/groups$(EXEEXT) //' src/Makefile.in +find man -name Makefile.in -exec sed -i 's/groups\.1 / /' {} \; +find man -name Makefile.in -exec sed -i 's/getspnam\.3 / /' {} \; +find man -name Makefile.in -exec sed -i 's/passwd\.5 / /' {} \; + +sed -e 's:#ENCRYPT_METHOD DES:ENCRYPT_METHOD SHA512:' \ + -e 's:/var/spool/mail:/var/mail:' \ + -e '/PATH=/{s@/sbin:@@;s@/bin:@@}' \ + -i etc/login.defs + +touch /usr/bin/passwd +./configure --sysconfdir=/etc \ + --disable-static \ + --with-group-name-max-length=32 + +make && make exec_prefix=/usr install +make -C man install-man + + +#TODO:还有一些shadow的配置,再调整 +# +pwconv + +grpconv + +mkdir -p /etc/default + +useradd -D --gid 999 +sed -i '/MAIL/s/yes/no/' /etc/default/useradd + diff --git a/rkos/src/scripts/build_base_packages/sysklogd.sh b/rkos/src/scripts/build_base_packages/sysklogd.sh new file mode 100755 index 0000000000000000000000000000000000000000..a6717fa0a00afbd75500fe05a21aafece8eb7f81 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/sysklogd.sh @@ -0,0 +1,20 @@ +sed -i '/Error loading kernel symbols/{n;n;d}' ksym_mod.c +sed -i 's/union wait/int/' syslogd.c + +make +make BINDIR=/sbin install + +cat > /etc/syslog.conf << "EOF" +# Begin /etc/syslog.conf + +auth,authpriv.* -/var/log/auth.log +*.*;auth,authpriv.none -/var/log/sys.log +daemon.* -/var/log/daemon.log +kern.* -/var/log/kern.log +mail.* -/var/log/mail.log +user.* -/var/log/user.log +*.emerg * + +# End /etc/syslog.conf +EOF + diff --git a/rkos/src/scripts/build_base_packages/sysvinit.sh b/rkos/src/scripts/build_base_packages/sysvinit.sh new file mode 100755 index 0000000000000000000000000000000000000000..d832ae24814a59318310433112045302a280ae35 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/sysvinit.sh @@ -0,0 +1,3 @@ +patch -Np1 -i ../base_patches/sysvinit-3.04-consolidated-1.patch +make +make install diff --git a/rkos/src/scripts/build_base_packages/tar.sh b/rkos/src/scripts/build_base_packages/tar.sh new file mode 100755 index 0000000000000000000000000000000000000000..8cb89c3559b4896960cf82a6a78d5a02ee9377c4 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/tar.sh @@ -0,0 +1,5 @@ +FORCE_UNSAFE_CONFIGURE=1 \ +./configure --prefix=/usr + +make && make install +make -C doc install-html docdir=/usr/share/doc/tar-1.34 diff --git a/rkos/src/scripts/build_base_packages/tcl.sh b/rkos/src/scripts/build_base_packages/tcl.sh new file mode 100755 index 0000000000000000000000000000000000000000..b66f60d6b02d48048c66d4427c144052b4d413a3 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/tcl.sh @@ -0,0 +1,36 @@ + +SRCDIR=$(pwd) +cd unix +./configure --prefix=/usr \ + --mandir=/usr/share/man + +make + +sed -e "s|$SRCDIR/unix|/usr/lib|" \ + -e "s|$SRCDIR|/usr/include|" \ + -i tclConfig.sh + +sed -e "s|$SRCDIR/unix/pkgs/tdbc1.1.3|/usr/lib/tdbc1.1.3|" \ + -e "s|$SRCDIR/pkgs/tdbc1.1.3/generic|/usr/include|" \ + -e "s|$SRCDIR/pkgs/tdbc1.1.3/library|/usr/lib/tcl8.6|" \ + -e "s|$SRCDIR/pkgs/tdbc1.1.3|/usr/include|" \ + -i pkgs/tdbc1.1.3/tdbcConfig.sh + +sed -e "s|$SRCDIR/unix/pkgs/itcl4.2.2|/usr/lib/itcl4.2.2|" \ + -e "s|$SRCDIR/pkgs/itcl4.2.2/generic|/usr/include|" \ + -e "s|$SRCDIR/pkgs/itcl4.2.2|/usr/include|" \ + -i pkgs/itcl4.2.2/itclConfig.sh + +unset SRCDIR + +make install + +chmod -v u+w /usr/lib/libtcl8.6.so + +make install-private-headers + +ln -sfv tclsh8.6 /usr/bin/tclsh + +mv /usr/share/man/man3/{Thread,Tcl_Thread}.3 + +mkdir -v -p /usr/share/doc/tcl-8.6.12 diff --git a/rkos/src/scripts/build_base_packages/texinfo.sh b/rkos/src/scripts/build_base_packages/texinfo.sh new file mode 100755 index 0000000000000000000000000000000000000000..50ad4d1ce34173faffe7323191d5946155109129 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/texinfo.sh @@ -0,0 +1,6 @@ +./configure --prefix=/usr + +make && make install +make TEXMF=/usr/share/texmf install-tex + + diff --git a/rkos/src/scripts/build_base_packages/util_linux.sh b/rkos/src/scripts/build_base_packages/util_linux.sh new file mode 100755 index 0000000000000000000000000000000000000000..9a6b0a54651a45bc0d7a56c20a65f4d3835e07d9 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/util_linux.sh @@ -0,0 +1,17 @@ +./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ + --bindir=/usr/bin \ + --libdir=/usr/lib \ + --sbindir=/usr/sbin \ + --docdir=/usr/share/doc/util-linux-2.38.1 \ + --disable-chfn-chsh \ + --disable-login \ + --disable-nologin \ + --disable-su \ + --disable-setpriv \ + --disable-runuser \ + --disable-pylibmount \ + --disable-static \ + --without-python \ + --without-systemd \ + --without-systemdsystemunitdir +make && make install diff --git a/rkos/src/scripts/build_base_packages/valgrind.sh b/rkos/src/scripts/build_base_packages/valgrind.sh new file mode 100755 index 0000000000000000000000000000000000000000..068f7dc361fa2e017fafe839f8a0c6efb6e71fef --- /dev/null +++ b/rkos/src/scripts/build_base_packages/valgrind.sh @@ -0,0 +1,6 @@ +sed -i 's|/doc/valgrind||' docs/Makefile.in && + +./configure --prefix=/usr \ + --datadir=/usr/share/doc/valgrind-3.20.0 && +make +make install diff --git a/rkos/src/scripts/build_base_packages/vim.sh b/rkos/src/scripts/build_base_packages/vim.sh new file mode 100755 index 0000000000000000000000000000000000000000..e444bb93b6d4d80a208148292c5ed7cd8af1277c --- /dev/null +++ b/rkos/src/scripts/build_base_packages/vim.sh @@ -0,0 +1,14 @@ +echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h + +./configure --prefix=/usr + +make + + +make install +ln -sv vim /usr/bin/vi +for L in /usr/share/man/{,*/}man1/vim.1; do + ln -sv vim.1 $(dirname $L)/vi.1 +done +ln -sv ../vim/vim90/doc /usr/share/doc/vim-9.0.0228 + diff --git a/rkos/src/scripts/build_base_packages/wheel.sh b/rkos/src/scripts/build_base_packages/wheel.sh new file mode 100755 index 0000000000000000000000000000000000000000..616e70e50818c00c18e4bdf9076230e8751c8a1f --- /dev/null +++ b/rkos/src/scripts/build_base_packages/wheel.sh @@ -0,0 +1 @@ +pip3 install --no-index $PWD diff --git a/rkos/src/scripts/build_base_packages/xml_parser.sh b/rkos/src/scripts/build_base_packages/xml_parser.sh new file mode 100755 index 0000000000000000000000000000000000000000..de5e1a91c8832d18ab82ccf7ded16d035f6f8d10 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/xml_parser.sh @@ -0,0 +1,3 @@ +perl Makefile.PL + +make && make install diff --git a/rkos/src/scripts/build_base_packages/xz.sh b/rkos/src/scripts/build_base_packages/xz.sh new file mode 100755 index 0000000000000000000000000000000000000000..eda300b7c50d74ac1f1207828cdf1afe27af9f98 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/xz.sh @@ -0,0 +1,5 @@ +./configure --prefix=/usr \ + --disable-static \ + --docdir=/usr/share/doc/xz-5.2.6 + +make && make install diff --git a/rkos/src/scripts/build_base_packages/zlib.sh b/rkos/src/scripts/build_base_packages/zlib.sh new file mode 100755 index 0000000000000000000000000000000000000000..662861d08e222ca9b8f1efeb194a1a057c648b31 --- /dev/null +++ b/rkos/src/scripts/build_base_packages/zlib.sh @@ -0,0 +1,3 @@ +./configure --prefix=/usr +make && make install +rm -fv /usr/lib/libz.a diff --git a/rkos/src/scripts/build_base_packages/zstd.sh b/rkos/src/scripts/build_base_packages/zstd.sh new file mode 100755 index 0000000000000000000000000000000000000000..a3e1a60f39786c345374063bab5b9d859c0adfad --- /dev/null +++ b/rkos/src/scripts/build_base_packages/zstd.sh @@ -0,0 +1,5 @@ +patch -Np1 -i ../base_patches/zstd-1.5.2-upstream_fixes-1.patch + +make prefix=/usr && make prefix=/usr install + +rm -v /usr/lib/libzstd.a diff --git a/rkos/src/scripts/build_rust_support_packages/coreutils.sh b/rkos/src/scripts/build_rust_support_packages/coreutils.sh new file mode 100755 index 0000000000000000000000000000000000000000..ab5b74170f101673e7ee5222cd78a2303790d4a0 --- /dev/null +++ b/rkos/src/scripts/build_rust_support_packages/coreutils.sh @@ -0,0 +1,14 @@ +curl -o rust.sh --proto '=https' --tlsv1.2 -ssf https://sh.rustup.rs + +chmod +x rust.sh + +./rust.sh -y + +rustup install 1.62.0 + +rustup default 1.62.0 + + +make PREFIX=/usr SKIP_UTILS='kill uptime' install + +mv -v /usr/bin/chroot /usr/sbin diff --git a/rkos/src/scripts/build_rust_support_packages/kernel.sh b/rkos/src/scripts/build_rust_support_packages/kernel.sh new file mode 100755 index 0000000000000000000000000000000000000000..96eab62d5f4b4e3d6c1ae24172fa3b39eed57896 --- /dev/null +++ b/rkos/src/scripts/build_rust_support_packages/kernel.sh @@ -0,0 +1,27 @@ + +rustup component add rust-src + +cargo install --locked --version $(scripts/min-tool-version.sh bindgen) bindgen + +rustup component add rustfmt + +rustup component add clippy + + +make CC=clang rustavailable + +make CC=clang allnoconfig /config-6.1 + +make CC=clang + +make CC=clang modules_install + +cp -v arch/x86_64/boot/bzImage /boot/vmlinuz-6.1-rkos-0.0.1 + +cp -v System.map /boot/System.map-6.1 + +cp -v .config /boot/config-6.1 + + +install -d /usr/share/doc/linux-6.1 +cp -r Documentation/* /usr/share/doc/linux-6.1 diff --git a/rkos/src/scripts/build_temp_toolchains/bash.sh b/rkos/src/scripts/build_temp_toolchains/bash.sh new file mode 100755 index 0000000000000000000000000000000000000000..e7b19237b5481c513785c1e5013f0d175835381e --- /dev/null +++ b/rkos/src/scripts/build_temp_toolchains/bash.sh @@ -0,0 +1,9 @@ +./configure --prefix=/usr \ + --build=$(support/config.guess) \ + --host=$LFS_TGT \ + --without-bash-malloc + + +make && make DESTDIR=$LFS install + +ln -sv bash $LFS/bin/sh diff --git a/rkos/src/scripts/build_temp_toolchains/binutils_first.sh b/rkos/src/scripts/build_temp_toolchains/binutils_first.sh new file mode 100755 index 0000000000000000000000000000000000000000..e9a0466e5ec56d38a25a4d17ccc2fb3446630709 --- /dev/null +++ b/rkos/src/scripts/build_temp_toolchains/binutils_first.sh @@ -0,0 +1,12 @@ +mkdir -v build +cd build +../configure --prefix=$LFS/tools \ + --with-sysroot=$LFS \ + --target=$LFS_TGT \ + --disable-nls \ + --enable-gprofng=no \ + --disable-werror + + +make && make install + diff --git a/rkos/src/scripts/build_temp_toolchains/binutils_second.sh b/rkos/src/scripts/build_temp_toolchains/binutils_second.sh new file mode 100755 index 0000000000000000000000000000000000000000..c7dcd9aa1b3f1c217e5896bd59811f451d8608a1 --- /dev/null +++ b/rkos/src/scripts/build_temp_toolchains/binutils_second.sh @@ -0,0 +1,19 @@ +sed '6009s/$add_dir//' -i ltmain.sh + +mkdir -v build +cd build + ../configure \ + --prefix=/usr \ + --build=$(../config.guess) \ + --host=$LFS_TGT \ + --disable-nls \ + --enable-shared \ + --enable-gprofng=no \ + --disable-werror \ + --enable-64-bit-bfd + + +make && make DESTDIR=$LFS install + +rm -v $LFS/usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes}.{a,la} + diff --git a/rkos/src/scripts/build_temp_toolchains/bison.sh b/rkos/src/scripts/build_temp_toolchains/bison.sh new file mode 100755 index 0000000000000000000000000000000000000000..63f304ac096978b8a6986e570da282086f2381a6 --- /dev/null +++ b/rkos/src/scripts/build_temp_toolchains/bison.sh @@ -0,0 +1,3 @@ +./configure --prefix=/usr \ + --docdir=/usr/share/doc/bison-3.8.2 +make && make install diff --git a/rkos/src/scripts/build_temp_toolchains/clean_up.sh b/rkos/src/scripts/build_temp_toolchains/clean_up.sh new file mode 100755 index 0000000000000000000000000000000000000000..49ad9fc33aff1b70a36bc9dd5e574a78e11edb14 --- /dev/null +++ b/rkos/src/scripts/build_temp_toolchains/clean_up.sh @@ -0,0 +1,4 @@ +rm -rf /usr/share/{info,man,doc}/* +find /usr/{lib,libexec} -name \*.la -delete +rm -rf /tools + diff --git a/rkos/src/scripts/build_temp_toolchains/coreutils.sh b/rkos/src/scripts/build_temp_toolchains/coreutils.sh new file mode 100755 index 0000000000000000000000000000000000000000..33780d80e13d1a9b9411b58275ad57a1a769e23f --- /dev/null +++ b/rkos/src/scripts/build_temp_toolchains/coreutils.sh @@ -0,0 +1,14 @@ +./configure --prefix=/usr \ + --host=$LFS_TGT \ + --build=$(build-aux/config.guess) \ + --enable-install-program=hostname \ + --enable-no-install-program=kill,uptime + + +make && make DESTDIR=$LFS install + +mv -v $LFS/usr/bin/chroot $LFS/usr/sbin +mkdir -pv $LFS/usr/share/man/man8 +mv -v $LFS/usr/share/man/man1/chroot.1 $LFS/usr/share/man/man8/chroot.8 +sed -i 's/"1"/"8"/' $LFS/usr/share/man/man8/chroot.8 +#NOTE:此时的coreutils还不是rust版本,但是最终会把它替换掉,现在这样可以节省宿主机空间 diff --git a/rkos/src/scripts/build_temp_toolchains/diffutils.sh b/rkos/src/scripts/build_temp_toolchains/diffutils.sh new file mode 100755 index 0000000000000000000000000000000000000000..a09a0dbd86461df2fce23ebe017d4825cab1c087 --- /dev/null +++ b/rkos/src/scripts/build_temp_toolchains/diffutils.sh @@ -0,0 +1,4 @@ +./configure --prefix=/usr --host=$LFS_TGT + + +make && make DESTDIR=$LFS install diff --git a/rkos/src/scripts/build_temp_toolchains/file.sh b/rkos/src/scripts/build_temp_toolchains/file.sh new file mode 100755 index 0000000000000000000000000000000000000000..1efc7ee526c8902a01e4927ab02ab31823c8a31c --- /dev/null +++ b/rkos/src/scripts/build_temp_toolchains/file.sh @@ -0,0 +1,14 @@ +mkdir build +pushd build + ../configure --disable-bzlib \ + --disable-libseccomp \ + --disable-xzlib \ + --disable-zlib + make +popd + +./configure --prefix=/usr --host=$LFS_TGT --build=$(./config.guess) + + +make FILE_COMPILE=$(pwd)/build/src/file && make DESTDIR=$LFS install +rm -v $LFS/usr/lib/libmagic.la diff --git a/rkos/src/scripts/build_temp_toolchains/findutils.sh b/rkos/src/scripts/build_temp_toolchains/findutils.sh new file mode 100755 index 0000000000000000000000000000000000000000..bac00d4f8c98a0d18dd00c0f5727d736933a5cd5 --- /dev/null +++ b/rkos/src/scripts/build_temp_toolchains/findutils.sh @@ -0,0 +1,7 @@ +./configure --prefix=/usr \ + --localstatedir=/var/lib/locate \ + --host=$LFS_TGT \ + --build=$(build-aux/config.guess) + + +make && make DESTDIR=$LFS install diff --git a/rkos/src/scripts/build_temp_toolchains/gawk.sh b/rkos/src/scripts/build_temp_toolchains/gawk.sh new file mode 100755 index 0000000000000000000000000000000000000000..657881d2ee97e2be8d5220a7deb6275963f35857 --- /dev/null +++ b/rkos/src/scripts/build_temp_toolchains/gawk.sh @@ -0,0 +1,8 @@ +sed -i 's/extras//' Makefile.in + +./configure --prefix=/usr \ + --host=$LFS_TGT \ + --build=$(build-aux/config.guess) + + +make && make DESTDIR=$LFS install diff --git a/rkos/src/scripts/build_temp_toolchains/gcc_first.sh b/rkos/src/scripts/build_temp_toolchains/gcc_first.sh new file mode 100755 index 0000000000000000000000000000000000000000..6f3f093f5f7c75e17089f92ff16409b9438d6e48 --- /dev/null +++ b/rkos/src/scripts/build_temp_toolchains/gcc_first.sh @@ -0,0 +1,44 @@ +tar -xf ../mpfr-4.1.0.tar.xz +mv -v mpfr-4.1.0 mpfr +tar -xf ../gmp-6.2.1.tar.xz +mv -v gmp-6.2.1 gmp +tar -xf ../mpc-1.2.1.tar.gz +mv -v mpc-1.2.1 mpc + +case $(uname -m) in + x86_64) + sed -e '/m64=/s/lib64/lib/' \ + -i.orig gcc/config/i386/t-linux64 + ;; +esac + +mkdir -v build + +cd build + +../configure \ + --target=$LFS_TGT \ + --prefix=$LFS/tools \ + --with-glibc-version=2.36 \ + --with-sysroot=$LFS \ + --with-newlib \ + --without-headers \ + --disable-nls \ + --disable-shared \ + --disable-multilib \ + --disable-decimal-float \ + --disable-threads \ + --disable-libatomic \ + --disable-libgomp \ + --disable-libquadmath \ + --disable-libssp \ + --disable-libvtv \ + --disable-libstdcxx \ + --enable-languages=c,c++ + +make && make install + +cd .. + +cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \ + `dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/install-tools/include/limits.h diff --git a/rkos/src/scripts/build_temp_toolchains/gcc_second.sh b/rkos/src/scripts/build_temp_toolchains/gcc_second.sh new file mode 100755 index 0000000000000000000000000000000000000000..f092c90a19309325a35a19382a3b765df335fdb9 --- /dev/null +++ b/rkos/src/scripts/build_temp_toolchains/gcc_second.sh @@ -0,0 +1,42 @@ +tar -xf ../mpfr-4.1.0.tar.xz +mv -v mpfr-4.1.0 mpfr +tar -xf ../gmp-6.2.1.tar.xz +mv -v gmp-6.2.1 gmp +tar -xf ../mpc-1.2.1.tar.gz +mv -v mpc-1.2.1 mpc + +case $(uname -m) in + x86_64) + sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/i386/t-linux64 + ;; +esac + +sed '/thread_header =/s/@.*@/gthr-posix.h/' \ + -i libgcc/Makefile.in libstdc++-v3/include/Makefile.in + +mkdir -v build +cd build + +../configure \ + --build=$(../config.guess) \ + --host=$LFS_TGT \ + --target=$LFS_TGT \ + LDFLAGS_FOR_TARGET=-L$PWD/$LFS_TGT/libgcc \ + --prefix=/usr \ + --with-build-sysroot=$LFS \ + --enable-initfini-array \ + --disable-nls \ + --disable-multilib \ + --disable-decimal-float \ + --disable-libatomic \ + --disable-libgomp \ + --disable-libquadmath \ + --disable-libssp \ + --disable-libvtv \ + --enable-languages=c,c++ + + +make && make DESTDIR=$LFS install + + +ln -sv gcc $LFS/usr/bin/cc diff --git a/rkos/src/scripts/build_temp_toolchains/gettext.sh b/rkos/src/scripts/build_temp_toolchains/gettext.sh new file mode 100755 index 0000000000000000000000000000000000000000..261d145e547922b0023b8b8e9fae674b703e0ab3 --- /dev/null +++ b/rkos/src/scripts/build_temp_toolchains/gettext.sh @@ -0,0 +1,5 @@ +./configure --disable-shared + +make + +cp -v gettext-tools/src/{msgfmt,msgmerge,xgettext} /usr/bin diff --git a/rkos/src/scripts/build_temp_toolchains/glibc.sh b/rkos/src/scripts/build_temp_toolchains/glibc.sh new file mode 100755 index 0000000000000000000000000000000000000000..34b5e04a17f67b328f9f5cf3b33ecf73b9f88bab --- /dev/null +++ b/rkos/src/scripts/build_temp_toolchains/glibc.sh @@ -0,0 +1,33 @@ +unset MAKEFLAGS +case $(uname -m) in + i?86) ln -sfv ld-linux.so.2 $LFS/lib/ld-lsb.so.3 + ;; + x86_64) ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64 + ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.3 + ;; +esac + +patch -Np1 -i ../base_patches/glibc-2.36-fhs-1.patch + +mkdir -v build +cd build + +echo "rootsbindir=/usr/sbin" > configparms + +../configure \ + --prefix=/usr \ + --host=$LFS_TGT \ + --build=$(../scripts/config.guess) \ + --enable-kernel=3.2 \ + --with-headers=$LFS/usr/include \ + libc_cv_slibdir=/usr/lib + + +make && make DESTDIR=$LFS install + + +sed '/RTLDLIST=/s@/usr@@g' -i $LFS/usr/bin/ldd + +$LFS/tools/libexec/gcc/$LFS_TGT/12.2.0/install-tools/mkheaders + +export MAKEFLAGS='-j4' diff --git a/rkos/src/scripts/build_temp_toolchains/grep.sh b/rkos/src/scripts/build_temp_toolchains/grep.sh new file mode 100755 index 0000000000000000000000000000000000000000..021b9c5e4dfb412c1742a00737788f767e22c110 --- /dev/null +++ b/rkos/src/scripts/build_temp_toolchains/grep.sh @@ -0,0 +1,5 @@ +./configure --prefix=/usr \ + --host=$LFS_TGT + + +make && make DESTDIR=$LFS install diff --git a/rkos/src/scripts/build_temp_toolchains/gzip.sh b/rkos/src/scripts/build_temp_toolchains/gzip.sh new file mode 100755 index 0000000000000000000000000000000000000000..a09a0dbd86461df2fce23ebe017d4825cab1c087 --- /dev/null +++ b/rkos/src/scripts/build_temp_toolchains/gzip.sh @@ -0,0 +1,4 @@ +./configure --prefix=/usr --host=$LFS_TGT + + +make && make DESTDIR=$LFS install diff --git a/rkos/src/scripts/build_temp_toolchains/libstdc++.sh b/rkos/src/scripts/build_temp_toolchains/libstdc++.sh new file mode 100755 index 0000000000000000000000000000000000000000..2d752a892638e16b2109f90da206aa1e2679c2ca --- /dev/null +++ b/rkos/src/scripts/build_temp_toolchains/libstdc++.sh @@ -0,0 +1,22 @@ +mkdir -v build +cd build + +../libstdc++-v3/configure \ + --host=$LFS_TGT \ + --build=$(../config.guess) \ + --prefix=/usr \ + --disable-multilib \ + --disable-nls \ + --disable-libstdcxx-pch \ + --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/12.2.0 + + +if [ "$?" -eq 1 ]; +then + exit $? +fi + +make && make DESTDIR=$LFS install + + +rm -v $LFS/usr/lib/lib{stdc++,stdc++fs,supc++}.la diff --git a/rkos/src/scripts/build_temp_toolchains/linux_headers_api.sh b/rkos/src/scripts/build_temp_toolchains/linux_headers_api.sh new file mode 100755 index 0000000000000000000000000000000000000000..3b494384fea0fa9e76848ef00a487a6c5c63b123 --- /dev/null +++ b/rkos/src/scripts/build_temp_toolchains/linux_headers_api.sh @@ -0,0 +1,4 @@ +make mrproper +make headers +find usr/include -type f ! -name '*.h' -delete +cp -rv usr/include/ $LFS/usr/ diff --git a/rkos/src/scripts/build_temp_toolchains/m4.sh b/rkos/src/scripts/build_temp_toolchains/m4.sh new file mode 100755 index 0000000000000000000000000000000000000000..7daec3e3e2240237f06cdf25086924a3ee2b2bcc --- /dev/null +++ b/rkos/src/scripts/build_temp_toolchains/m4.sh @@ -0,0 +1,6 @@ +./configure --prefix=/usr \ + --host=$LFS_TGT \ + --build=$(build-aux/config.guess) + + +make && make DESTDIR=$LFS install diff --git a/rkos/src/scripts/build_temp_toolchains/make.sh b/rkos/src/scripts/build_temp_toolchains/make.sh new file mode 100755 index 0000000000000000000000000000000000000000..b0c345897298e5b787b6b563e22151e2ad50a55b --- /dev/null +++ b/rkos/src/scripts/build_temp_toolchains/make.sh @@ -0,0 +1,7 @@ +./configure --prefix=/usr \ + --without-guile \ + --host=$LFS_TGT \ + --build=$(build-aux/config.guess) + + +make && make DESTDIR=$LFS install diff --git a/rkos/src/scripts/build_temp_toolchains/ncurses.sh b/rkos/src/scripts/build_temp_toolchains/ncurses.sh new file mode 100755 index 0000000000000000000000000000000000000000..3747303901df9b650bf8de11ac269cce7b92ebaa --- /dev/null +++ b/rkos/src/scripts/build_temp_toolchains/ncurses.sh @@ -0,0 +1,24 @@ +sed -i s/mawk// configure +mkdir build +pushd build + ../configure + make -C include + make -C progs tic +popd +./configure --prefix=/usr \ + --host=$LFS_TGT \ + --build=$(./config.guess) \ + --mandir=/usr/share/man \ + --with-manpage-format=normal \ + --with-shared \ + --without-normal \ + --with-cxx-shared \ + --without-debug \ + --without-ada \ + --disable-stripping \ + --enable-widec + + +make && make DESTDIR=$LFS TIC_PATH=$(pwd)/build/progs/tic install + +echo "INPUT(-lncursesw)" > $LFS/usr/lib/libncurses.so diff --git a/rkos/src/scripts/build_temp_toolchains/patch.sh b/rkos/src/scripts/build_temp_toolchains/patch.sh new file mode 100755 index 0000000000000000000000000000000000000000..7daec3e3e2240237f06cdf25086924a3ee2b2bcc --- /dev/null +++ b/rkos/src/scripts/build_temp_toolchains/patch.sh @@ -0,0 +1,6 @@ +./configure --prefix=/usr \ + --host=$LFS_TGT \ + --build=$(build-aux/config.guess) + + +make && make DESTDIR=$LFS install diff --git a/rkos/src/scripts/build_temp_toolchains/perl.sh b/rkos/src/scripts/build_temp_toolchains/perl.sh new file mode 100755 index 0000000000000000000000000000000000000000..e58c539ed5f2125454aebaa7d17ef787e69a9048 --- /dev/null +++ b/rkos/src/scripts/build_temp_toolchains/perl.sh @@ -0,0 +1,10 @@ +sh Configure -des \ + -Dprefix=/usr \ + -Dvendorprefix=/usr \ + -Dprivlib=/usr/lib/perl5/5.36/core_perl \ + -Darchlib=/usr/lib/perl5/5.36/core_perl \ + -Dsitelib=/usr/lib/perl5/5.36/site_perl \ + -Dsitearch=/usr/lib/perl5/5.36/site_perl \ + -Dvendorlib=/usr/lib/perl5/5.36/vendor_perl \ + -Dvendorarch=/usr/lib/perl5/5.36/vendor_perl +make && make install diff --git a/rkos/src/scripts/build_temp_toolchains/python.sh b/rkos/src/scripts/build_temp_toolchains/python.sh new file mode 100755 index 0000000000000000000000000000000000000000..5b70a483d9ab205ff054424a9a188495cd47269b --- /dev/null +++ b/rkos/src/scripts/build_temp_toolchains/python.sh @@ -0,0 +1,5 @@ +./configure --prefix=/usr \ + --enable-shared \ + --without-ensurepip + +make && make install diff --git a/rkos/src/scripts/build_temp_toolchains/rust.sh b/rkos/src/scripts/build_temp_toolchains/rust.sh new file mode 100755 index 0000000000000000000000000000000000000000..58fdc3d375ae258ca64d00a63b9fd4827aecc688 --- /dev/null +++ b/rkos/src/scripts/build_temp_toolchains/rust.sh @@ -0,0 +1,2 @@ + +./install.sh --destdir=$LFS --prefix=usr diff --git a/rkos/src/scripts/build_temp_toolchains/sed.sh b/rkos/src/scripts/build_temp_toolchains/sed.sh new file mode 100755 index 0000000000000000000000000000000000000000..021b9c5e4dfb412c1742a00737788f767e22c110 --- /dev/null +++ b/rkos/src/scripts/build_temp_toolchains/sed.sh @@ -0,0 +1,5 @@ +./configure --prefix=/usr \ + --host=$LFS_TGT + + +make && make DESTDIR=$LFS install diff --git a/rkos/src/scripts/build_temp_toolchains/tar.sh b/rkos/src/scripts/build_temp_toolchains/tar.sh new file mode 100755 index 0000000000000000000000000000000000000000..a503cd282a639fb88d7194dbcdd1f6c1c1cfb989 --- /dev/null +++ b/rkos/src/scripts/build_temp_toolchains/tar.sh @@ -0,0 +1,5 @@ +./configure --prefix=/usr \ + --host=$LFS_TGT \ + --build=$(build-aux/config.guess) + +make && make DESTDIR=$LFS install diff --git a/rkos/src/scripts/build_temp_toolchains/texinfo.sh b/rkos/src/scripts/build_temp_toolchains/texinfo.sh new file mode 100755 index 0000000000000000000000000000000000000000..a661fa0a6050daf4aad7fc560775d33d3af1788e --- /dev/null +++ b/rkos/src/scripts/build_temp_toolchains/texinfo.sh @@ -0,0 +1,3 @@ +./configure --prefix=/usr + +make && make install diff --git a/rkos/src/scripts/build_temp_toolchains/util-linux.sh b/rkos/src/scripts/build_temp_toolchains/util-linux.sh new file mode 100755 index 0000000000000000000000000000000000000000..219e1b9cd78b6ae698909c293c92143654793d70 --- /dev/null +++ b/rkos/src/scripts/build_temp_toolchains/util-linux.sh @@ -0,0 +1,17 @@ +mkdir -pv /var/lib/hwclock +./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \ + --libdir=/usr/lib \ + --docdir=/usr/share/doc/util-linux-2.38.1 \ + --disable-chfn-chsh \ + --disable-login \ + --disable-nologin \ + --disable-su \ + --disable-setpriv \ + --disable-runuser \ + --disable-pylibmount \ + --disable-static \ + --without-python \ + runstatedir=/run + + +make && make install diff --git a/rkos/src/scripts/build_temp_toolchains/xz.sh b/rkos/src/scripts/build_temp_toolchains/xz.sh new file mode 100755 index 0000000000000000000000000000000000000000..c56ad965a85a522e745c11f70edeadfa05b4fa9e --- /dev/null +++ b/rkos/src/scripts/build_temp_toolchains/xz.sh @@ -0,0 +1,8 @@ +./configure --prefix=/usr \ + --host=$LFS_TGT \ + --build=$(build-aux/config.guess) \ + --disable-static \ + --docdir=/usr/share/doc/xz-5.2.6 + +make && make DESTDIR=$LFS install +rm -v $LFS/usr/lib/liblzma.la diff --git a/rkos/src/scripts/chroot/create_dirs.sh b/rkos/src/scripts/chroot/create_dirs.sh new file mode 100755 index 0000000000000000000000000000000000000000..6578f81bedd9cc31a7084b19f61b185704779cbb --- /dev/null +++ b/rkos/src/scripts/chroot/create_dirs.sh @@ -0,0 +1,18 @@ +mkdir -pv /{boot,home,mnt,opt,srv} + +mkdir -pv /etc/{opt,sysconfig} +mkdir -pv /lib/firmware +mkdir -pv /media/{floppy,cdrom} +mkdir -pv /usr/{,local/}{include,src} +mkdir -pv /usr/local/{bin,lib,sbin} +mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man} +mkdir -pv /usr/{,local/}share/{misc,terminfo,zoneinfo} +mkdir -pv /usr/{,local/}share/man/man{1..8} +mkdir -pv /var/{cache,local,log,mail,opt,spool} +mkdir -pv /var/lib/{color,misc,locate} + +ln -sfv /run /var/run +ln -sfv /run/lock /var/lock + +install -dv -m 0750 /root +install -dv -m 1777 /tmp /var/tmp diff --git a/rkos/src/scripts/chroot/create_files.sh b/rkos/src/scripts/chroot/create_files.sh new file mode 100755 index 0000000000000000000000000000000000000000..b19ad2e862c7cc8b2acb037d557180a28703db1a --- /dev/null +++ b/rkos/src/scripts/chroot/create_files.sh @@ -0,0 +1,48 @@ +ln -sv /proc/self/mounts /etc/mtab + +cat > /etc/hosts << EOF +127.0.0.1 localhost $(hostname) +::1 localhost +EOF + +cat > /etc/passwd << "EOF" +root:root:0:0:root:/root:/bin/bash +bin:x:1:1:bin:/dev/null:/usr/bin/false +daemon:x:6:6:Daemon User:/dev/null:/usr/bin/false +messagebus:x:18:18:D-Bus Message Daemon User:/run/dbus:/usr/bin/false +uuidd:x:80:80:UUID Generation Daemon User:/dev/null:/usr/bin/false +nobody:x:65534:65534:Unprivileged User:/dev/null:/usr/bin/false +EOF + +cat > /etc/group << "EOF" +root:x:0: +bin:x:1:daemon +sys:x:2: +kmem:x:3: +tape:x:4: +tty:x:5: +daemon:x:6: +floppy:x:7: +disk:x:8: +lp:x:9: +dialout:x:10: +audio:x:11: +video:x:12: +utmp:x:13: +usb:x:14: +cdrom:x:15: +adm:x:16: +messagebus:x:18: +input:x:24: +mail:x:34: +kvm:x:61: +uuidd:x:80: +wheel:x:97: +users:x:999: +nogroup:x:65534: +EOF + +touch /var/log/{btmp,lastlog,faillog,wtmp} +chgrp -v utmp /var/log/lastlog +chmod -v 664 /var/log/lastlog +chmod -v 600 /var/log/btmp diff --git a/rkos/src/scripts/chroot/mount_vfsys.sh b/rkos/src/scripts/chroot/mount_vfsys.sh new file mode 100755 index 0000000000000000000000000000000000000000..a64ccdeecdcdf06f5fdb08d38029b12e5e004481 --- /dev/null +++ b/rkos/src/scripts/chroot/mount_vfsys.sh @@ -0,0 +1,9 @@ +mkdir -pv $LFS/{dev,proc,sys,run} +mount -v --bind /dev $LFS/dev +mount -v --bind /dev/pts $LFS/dev/pts +mount -vt proc proc $LFS/proc +mount -vt sysfs sysfs $LFS/sys +mount -vt tmpfs tmpfs $LFS/run +if [ -h $LFS/dev/shm ]; then + mkdir -pv $LFS/$(readlink $LFS/dev/shm) +fi diff --git a/rkos/src/scripts/chroot/remove_temp_file.sh b/rkos/src/scripts/chroot/remove_temp_file.sh new file mode 100755 index 0000000000000000000000000000000000000000..675f9465c075d064e55a0b118a23d599fdc0d2cf --- /dev/null +++ b/rkos/src/scripts/chroot/remove_temp_file.sh @@ -0,0 +1,5 @@ +rm -rf /usr/share/{info,man,doc}/* + +find /usr/{lib,libexec} -name \*.la -delete + +rm -rf /tools diff --git a/rkos/src/scripts/chroot/target_path_chown.sh b/rkos/src/scripts/chroot/target_path_chown.sh new file mode 100755 index 0000000000000000000000000000000000000000..d85de21988e29a93bd0178ff3193cbc22f0a89ce --- /dev/null +++ b/rkos/src/scripts/chroot/target_path_chown.sh @@ -0,0 +1,4 @@ +chown -R root:root $LFS/{usr,lib,var,etc,bin,sbin} +case $(uname -m) in + x86_64) chown -R root:root $LFS/lib64 ;; +esac diff --git a/rkos/src/scripts/clean/remove_debug_symbol.sh b/rkos/src/scripts/clean/remove_debug_symbol.sh new file mode 100755 index 0000000000000000000000000000000000000000..a879416064e924753ba66f3736552188b4047099 --- /dev/null +++ b/rkos/src/scripts/clean/remove_debug_symbol.sh @@ -0,0 +1,54 @@ +save_usrlib="$(cd /usr/lib; ls ld-linux*[^g]) + libc.so.6 + libthread_db.so.1 + libquadmath.so.0.0.0 + libstdc++.so.6.0.30 + libitm.so.1.0.0 + libatomic.so.1.2.0" + +cd /usr/lib + +for LIB in $save_usrlib; do + objcopy --only-keep-debug $LIB $LIB.dbg + cp $LIB /tmp/$LIB + strip --strip-unneeded /tmp/$LIB + objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB + install -vm755 /tmp/$LIB /usr/lib + rm /tmp/$LIB +done + +online_usrbin="bash find strip" +online_usrlib="libbfd-2.39.so + libhistory.so.8.1 + libncursesw.so.6.3 + libm.so.6 + libreadline.so.8.1 + libz.so.1.2.12 + $(cd /usr/lib; find libnss*.so* -type f)" + +for BIN in $online_usrbin; do + cp /usr/bin/$BIN /tmp/$BIN + strip --strip-unneeded /tmp/$BIN + install -vm755 /tmp/$BIN /usr/bin + rm /tmp/$BIN +done + +for LIB in $online_usrlib; do + cp /usr/lib/$LIB /tmp/$LIB + strip --strip-unneeded /tmp/$LIB + install -vm755 /tmp/$LIB /usr/lib + rm /tmp/$LIB +done + +for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \ + $(find /usr/lib -type f -name \*.a) \ + $(find /usr/{bin,sbin,libexec} -type f); do + case "$online_usrbin $online_usrlib $save_usrlib" in + *$(basename $i)* ) + ;; + * ) strip --strip-unneeded $i + ;; + esac +done + +unset BIN LIB save_usrlib online_usrbin online_usrlib diff --git a/rkos/src/scripts/clean/remove_system_trash.sh b/rkos/src/scripts/clean/remove_system_trash.sh new file mode 100755 index 0000000000000000000000000000000000000000..6e9187bf563cfa5766918e36803890ac2f982a85 --- /dev/null +++ b/rkos/src/scripts/clean/remove_system_trash.sh @@ -0,0 +1,6 @@ +rm -rf /tmp/* + +find /usr/lib /usr/libexec -name \*.la -delete + +find /usr -depth -name $(uname -m)-rkos-linux-gnu\* | xargs rm -rf + diff --git a/rkos/src/scripts/prepare/prepare_host_dirs.sh b/rkos/src/scripts/prepare/prepare_host_dirs.sh new file mode 100644 index 0000000000000000000000000000000000000000..22fda0488e773b05082dfc49ac2df05a6d316d1c --- /dev/null +++ b/rkos/src/scripts/prepare/prepare_host_dirs.sh @@ -0,0 +1,18 @@ +cd $LFS +mkdir -v $LFS/sources +chmod -v a+wt $LFS/sources + +mkdir -pv $LFS/{etc,var} $LFS/usr/{bin,lib,sbin} + +for i in bin lib sbin; do + ln -sv usr/$i $LFS/$i +done + +case $(uname -m) in + x86_64) mkdir -pv $LFS/lib64 ;; +esac + +mkdir -pv $LFS/tools + +ln -sv $LFS/tools / + diff --git a/rkos/src/scripts/prepare/prepare_host_env.sh b/rkos/src/scripts/prepare/prepare_host_env.sh new file mode 100644 index 0000000000000000000000000000000000000000..f917111ab29b1c9859e4382fe265c212d4891fe8 --- /dev/null +++ b/rkos/src/scripts/prepare/prepare_host_env.sh @@ -0,0 +1,60 @@ +#!/bin/bash + +#默认加载LFS系统变量 +cp /root/.bash_profile{,.LFS_origin} +if [ $LFS ];then + echo "LFS=$LFS" +else + echo "export LFS=/mnt/lfs" >> /root/.bash_profile +fi + +#系统默认挂载硬盘,TODO:这部分硬盘设备名还得实际调整,如果可以动态是最好的 +mkdir -pv $LFS +mkdir -pv $LFS/boot +cp /etc/fstab{,.DISK_origin} +echo "/dev/vdb1 /mnt/lfs/boot vfat defaults 1 1" >> /etc/fstab +echo "/dev/vdb2 /mnt/lfs ext4 defaults 1 1" >> /etc/fstab +mount -a +systemctl daemon-reload + +#默认设定目标系统的环境变量,TODO:后续收尾需要替换名字 +cp /root/.bash_profile{,.TGT_origin} +if [ $LFS_TGT ]; then + echo "LFS_TGT=$LFS_TGT" +else + echo "export LFS_TGT=$(uname -m)-rkos-linux-gnu" >> /root/.bash_profile +fi + +#设定LC_ALL,PATH,CONFIG_FILE的环境变量 +cp /root/.bash_profile{,.PATH_origin} +if [ $LC_ALL ];then + echo "LC_ALL=$LC_ALL" +else + echo "export LC_ALL=POSIX" >> /root/.bash_profile +fi + +PATH=/usr/bin +if [ ! -L /bin ]; then PATH=/bin:$PATH; fi +PATH=/tools/bin:$PATH +echo "export PATH=$PATH" >> /root/.bash_profile + +if [ $CONFIG_FILE ];then + echo "CONFIG_FILE=$CONFIG_FILE" +else + CONFIG_FILE=$LFS/usr/share/config.site +fi +echo "export CONFIG_FILE=$CONFIG_FILE" >> /root/.bash_profile + +CPUS=$(cat /proc/cpuinfo | grep "processor" | wc -l) +if [ $MAKEFLAGS ];then + echo "MAKEFLAGS=$MAKEFLAGS" +else + echo "export MAKEFLAGS='-j$CPUS'" >> /root/.bash_profile +fi + +echo "export FORCE_UNSAFE_CONFIGURE=1" >> /root/.bash_profile + +echo "export NINJAJOBS=$CPUS" >> /root/.bash_profile + + +source /root/.bash_profile diff --git a/rkos/src/scripts/prepare/version_check.sh b/rkos/src/scripts/prepare/version_check.sh new file mode 100644 index 0000000000000000000000000000000000000000..dfcfb4278d5179e2b8213a9e0cb30e1de922b663 --- /dev/null +++ b/rkos/src/scripts/prepare/version_check.sh @@ -0,0 +1,53 @@ +#!/bin/bash +# Simple script to list version numbers of critical development tools +export LC_ALL=C +bash --version | head -n1 | cut -d" " -f2-4 +MYSH=$(readlink -f /bin/sh) +echo "/bin/sh -> $MYSH" +echo $MYSH | grep -q bash || echo "ERROR: /bin/sh does not point to bash" +unset MYSH + +echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3- +bison --version | head -n1 + +if [ -h /usr/bin/yacc ]; then + echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`"; +elif [ -x /usr/bin/yacc ]; then + echo yacc is `/usr/bin/yacc --version | head -n1` +else + echo "yacc not found" +fi + +echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2 +diff --version | head -n1 +find --version | head -n1 +gawk --version | head -n1 + +if [ -h /usr/bin/awk ]; then + echo "/usr/bin/awk -> `readlink -f /usr/bin/awk`"; +elif [ -x /usr/bin/awk ]; then + echo awk is `/usr/bin/awk --version | head -n1` +else + echo "awk not found" +fi + +gcc --version | head -n1 +g++ --version | head -n1 +grep --version | head -n1 +gzip --version | head -n1 +cat /proc/version +m4 --version | head -n1 +make --version | head -n1 +patch --version | head -n1 +echo Perl `perl -V:version` +python3 --version +sed --version | head -n1 +tar --version | head -n1 +makeinfo --version | head -n1 # texinfo version +xz --version | head -n1 + +echo 'int main(){}' > dummy.c && g++ -o dummy dummy.c +if [ -x dummy ] + then echo "g++ compilation OK"; + else echo "g++ compilation failed"; fi +rm -f dummy.c dummy diff --git a/rkos/src/scripts/release/config_lsb_release.sh b/rkos/src/scripts/release/config_lsb_release.sh new file mode 100755 index 0000000000000000000000000000000000000000..e452555657dab03edccdea41e13cfe316f2842ad --- /dev/null +++ b/rkos/src/scripts/release/config_lsb_release.sh @@ -0,0 +1,5 @@ +cat > /etc/lsb-release << "EOF" +DISTRIB_ID="Rust King OS" +DISTRIB_RELEASE="0.0.1" +DISTRIB_DESCRIPTION="Linux Distro of Rust Programing Language" +EOF diff --git a/rkos/src/scripts/release/config_os_release.sh b/rkos/src/scripts/release/config_os_release.sh new file mode 100755 index 0000000000000000000000000000000000000000..b85e4837da09c199e1d7ead431f3101034d0b267 --- /dev/null +++ b/rkos/src/scripts/release/config_os_release.sh @@ -0,0 +1,6 @@ +cat > /etc/os-release << "EOF" +NAME="Rust King OS" +VERSION="0.0.1" +ID=rkos +PRETTY_NAME="Rust King OS" +EOF diff --git a/rkos/src/scripts/sysconfig/config_fstab.sh b/rkos/src/scripts/sysconfig/config_fstab.sh new file mode 100755 index 0000000000000000000000000000000000000000..c0efb494a608b3e45a91588a529745c5f4f1d81e --- /dev/null +++ b/rkos/src/scripts/sysconfig/config_fstab.sh @@ -0,0 +1,20 @@ + +uuid1=$1 +uuid2=$2 + +# fstab +#cat > /etc/fstab << "EOF" +echo "# Begin /etc/fstab + +# 文件系统 挂载点 类型 选项 转储 检查 +# 顺序 + +UUID=${uuid1} / ext4 defaults 1 1 +UUID=${uuid2} /boot vfat defaults 1 1 +proc /proc proc nosuid,noexec,nodev 0 0 +sysfs /sys sysfs nosuid,noexec,nodev 0 0 +devpts /dev/pts devpts gid=5,mode=620 0 0 +tmpfs /run tmpfs defaults 0 0 +devtmpfs /dev devtmpfs mode=0755,nosuid 0 0 + +# End /etc/fstab">/etc/fstab diff --git a/rkos/src/scripts/sysconfig/config_grub.sh b/rkos/src/scripts/sysconfig/config_grub.sh new file mode 100644 index 0000000000000000000000000000000000000000..08534c0a8d676d67799a06a964f00e3772579fce --- /dev/null +++ b/rkos/src/scripts/sysconfig/config_grub.sh @@ -0,0 +1,16 @@ +grub-install /dev/vdb + +#cat > /boot/grub/grub.cfg << "EOF" +echo "# Begin /boot/grub/grub.cfg +set default=0 +set timeout=5 + +insmod ext2 + +search --set=root --fs-uuid $1 + +menuentry \"GNU/Linux, Linux 6.1-rkos-0.0.1\" { + linux /vmlinuz-6.1-rkos-0.0.1 root=PARTUUID=$2 ro +}">/boot/grub/grub.cfg + + diff --git a/rkos/src/scripts/sysconfig/config_inputrc.sh b/rkos/src/scripts/sysconfig/config_inputrc.sh new file mode 100755 index 0000000000000000000000000000000000000000..2851ec22eedda0ca42e73304e9160e24cf0c8f0c --- /dev/null +++ b/rkos/src/scripts/sysconfig/config_inputrc.sh @@ -0,0 +1,46 @@ + +# inputrc +cat > /etc/inputrc << "EOF" +# Begin /etc/inputrc + +# Allow the command prompt to wrap to the next line +set horizontal-scroll-mode Off + +# Enable 8-bit input +set meta-flag On +set input-meta On + +# Turns off 8th bit stripping +set convert-meta Off + +# Keep the 8th bit for display +set output-meta On + +# none, visible or audible +set bell-style none + +# All of the following map the escape sequence of the value +# contained in the 1st argument to the readline specific functions +"\eOd": backward-word +"\eOc": forward-word + +# for linux console +"\e[1~": beginning-of-line +"\e[4~": end-of-line +"\e[5~": beginning-of-history +"\e[6~": end-of-history +"\e[3~": delete-char +"\e[2~": quoted-insert + +# for xterm +"\eOH": beginning-of-line +"\eOF": end-of-line + +# for Konsole +"\e[H": beginning-of-line +"\e[F": end-of-line + +# End /etc/inputrc +EOF + + diff --git a/rkos/src/scripts/sysconfig/config_kernel.sh b/rkos/src/scripts/sysconfig/config_kernel.sh new file mode 100644 index 0000000000000000000000000000000000000000..51c69b3020d9f4dc0c18818f5536736bbbeed6d9 --- /dev/null +++ b/rkos/src/scripts/sysconfig/config_kernel.sh @@ -0,0 +1,25 @@ + +rustup component add rust-src + +cargo install --locked --version $(scripts/min-tool-version.sh bindgen) bindgen + +rustup component add rustfmt + +rustup component add clippy + + +make CC=clang rustavailable + +make CC=clang allnoconfig /config-6.1 + +make CC=clang + +cp -iv arch/x86_64/boot/bzImage /boot/vmlinuz-6.1-rkos-0.0.1 + +cp -iv System.map /boot/System.map-6.1 + +cp -iv .config /boot/config-6.1 + + +install -d /usr/share/doc/linux-6.1 +cp -r Documentation/* /usr/share/doc/linux-6.1 diff --git a/rkos/src/scripts/sysconfig/config_network.sh b/rkos/src/scripts/sysconfig/config_network.sh new file mode 100755 index 0000000000000000000000000000000000000000..4e7db41346a8ad57f6f58e5963bc2e1305dc5293 --- /dev/null +++ b/rkos/src/scripts/sysconfig/config_network.sh @@ -0,0 +1,36 @@ +cat > /etc/sysconfig/ifconfig.eth0 << "EOF" +ONBOOT="yes" +IFACE="eth0" +SERVICE="dhcpcd" +DHCP_START="-b -q -h ''" +DHCP_STOP="-k " +EOF + +cat > /etc/resolv.conf << "EOF" +# Begin /etc/resolv.conf + +nameserver 114.114.114.114 +nameserver 8.8.8.8 + +# End /etc/resolv.conf +EOF + + +echo "rkos" > /etc/hostname + + +cat > /etc/hosts << "EOF" +# Begin /etc/hosts + + +127.0.0.1 localhost +127.0.1.1 rkos.localdomain localhost +::1 localhost +ff02::1 ip6-allnodes +ff02::2 ip6-allrouters + +# End /etc/hosts +EOF + + +/usr/sbin/make-ca -g diff --git a/rkos/src/scripts/sysconfig/config_profile.sh b/rkos/src/scripts/sysconfig/config_profile.sh new file mode 100755 index 0000000000000000000000000000000000000000..9689a02d8d298c47094f34240d4c357c9f0559fd --- /dev/null +++ b/rkos/src/scripts/sysconfig/config_profile.sh @@ -0,0 +1,9 @@ + +# LANG +cat > /etc/profile << "EOF" +# Begin /etc/profile + +export LANG=en_US.utf8 +# End /etc/profile +EOF + diff --git a/rkos/src/scripts/sysconfig/config_rc_site.sh b/rkos/src/scripts/sysconfig/config_rc_site.sh new file mode 100755 index 0000000000000000000000000000000000000000..9ef69d6d99707a15a2bbf07f9f1697e14fad3f4d --- /dev/null +++ b/rkos/src/scripts/sysconfig/config_rc_site.sh @@ -0,0 +1,97 @@ +#rc site + +cat > /etc/sysconfig/rc.site << "EOF" +# rc.site +# Optional parameters for boot scripts. + +# Distro Information +# These values, if specified here, override the defaults +DISTRO="Rust linux distro" # The distro name +DISTRO_CONTACT="xyyy1420@gmail.com" # Bug report address +DISTRO_MINI="RKOS" # Short name used in filenames for distro config + +# Define custom colors used in messages printed to the screen + +# Please consult `man console_codes` for more information +# under the "ECMA-48 Set Graphics Rendition" section +# +# Warning: when switching from a 8bit to a 9bit font, +# the linux console will reinterpret the bold (1;) to +# the top 256 glyphs of the 9bit font. This does +# not affect framebuffer consoles + +# These values, if specified here, override the defaults +BRACKET="\\033[1;34m" # Blue +FAILURE="\\033[1;31m" # Red +INFO="\\033[1;36m" # Cyan +NORMAL="\\033[0;39m" # Grey +SUCCESS="\\033[1;32m" # Green +WARNING="\\033[1;33m" # Yellow + +# Use a colored prefix +# These values, if specified here, override the defaults +BMPREFIX=" " +SUCCESS_PREFIX="${SUCCESS} * ${NORMAL} " +FAILURE_PREFIX="${FAILURE}*****${NORMAL} " +WARNING_PREFIX="${WARNING} *** ${NORMAL} " + +# Manually seet the right edge of message output (characters) +# Useful when resetting console font during boot to override +# automatic screen width detection +COLUMNS=120 + +# Interactive startup +#IPROMPT="yes" # Whether to display the interactive boot prompt +#itime="3" # The amount of time (in seconds) to display the prompt + +# The total length of the distro welcome string, without escape codes +wlen=$(echo "Welcome to ${DISTRO}" | wc -c ) +welcome_message="Welcome to ${INFO}${DISTRO}${NORMAL}" + +# The total length of the interactive string, without escape codes +#ilen=$(echo "Press 'I' to enter interactive startup" | wc -c ) +#i_message="Press '${FAILURE}I${NORMAL}' to enter interactive startup" + +# Set scripts to skip the file system check on reboot +#FASTBOOT=yes + +# Skip reading from the console +#HEADLESS=yes + +# Write out fsck progress if yes +#VERBOSE_FSCK=no + +# Speed up boot without waiting for settle in udev +#OMIT_UDEV_SETTLE=y + +# Speed up boot without waiting for settle in udev_retry +#OMIT_UDEV_RETRY_SETTLE=yes + +# Skip cleaning /tmp if yes +#SKIPTMPCLEAN=no + +# For setclock +#UTC=1 +#CLOCKPARAMS= + +# For consolelog (Note that the default, 7=debug, is noisy) +#LOGLEVEL=7 + +# For network +#HOSTNAME=mylfs + +# Delay between TERM and KILL signals at shutdown +#KILLDELAY=3 + +# Optional sysklogd parameters +#SYSKLOGD_PARMS="-m 0" + +# Console parameters +#UNICODE=1 +#KEYMAP="de-latin1" +#KEYMAP_CORRECTIONS="euro2" +#FONT="lat0-16 -m 8859-15" +#LEGACY_CHARSET= +# +EOF + diff --git a/rkos/src/scripts/sysconfig/config_shell.sh b/rkos/src/scripts/sysconfig/config_shell.sh new file mode 100755 index 0000000000000000000000000000000000000000..6b8a2de0a07c42e9c52b726de235c1e3663bd954 --- /dev/null +++ b/rkos/src/scripts/sysconfig/config_shell.sh @@ -0,0 +1,11 @@ + +# Shell +cat > /etc/shells << "EOF" +# Begin /etc/shells + +/bin/sh +/bin/bash + +# End /etc/shells +EOF + diff --git a/rkos/src/scripts/sysconfig/config_sysvinit.sh b/rkos/src/scripts/sysconfig/config_sysvinit.sh new file mode 100755 index 0000000000000000000000000000000000000000..540400e8f6a115ba8d33e02ae1e725c130511c0c --- /dev/null +++ b/rkos/src/scripts/sysconfig/config_sysvinit.sh @@ -0,0 +1,29 @@ +cat > /etc/inittab << "EOF" +# Begin /etc/inittab + +id:3:initdefault: + +si::sysinit:/etc/rc.d/init.d/rc S + +l0:0:wait:/etc/rc.d/init.d/rc 0 +l1:S1:wait:/etc/rc.d/init.d/rc 1 +l2:2:wait:/etc/rc.d/init.d/rc 2 +l3:3:wait:/etc/rc.d/init.d/rc 3 +l4:4:wait:/etc/rc.d/init.d/rc 4 +l5:5:wait:/etc/rc.d/init.d/rc 5 +l6:6:wait:/etc/rc.d/init.d/rc 6 + +ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now + +su:S06:once:/sbin/sulogin +s1:1:respawn:/sbin/sulogin + +1:2345:respawn:/sbin/agetty --noclear tty1 9600 +2:2345:respawn:/sbin/agetty tty2 9600 +3:2345:respawn:/sbin/agetty tty3 9600 +4:2345:respawn:/sbin/agetty tty4 9600 +5:2345:respawn:/sbin/agetty tty5 9600 +6:2345:respawn:/sbin/agetty tty6 9600 + +# End /etc/inittab +EOF diff --git a/rkos/src/scripts/sysconfig/config_time.sh b/rkos/src/scripts/sysconfig/config_time.sh new file mode 100755 index 0000000000000000000000000000000000000000..2773f1edc6977a29ca4ba0f362bfa250c315c139 --- /dev/null +++ b/rkos/src/scripts/sysconfig/config_time.sh @@ -0,0 +1,14 @@ +# TIME + +cat > /etc/sysconfig/clock << "EOF" +# Begin /etc/sysconfig/clock + +UTC=1 + +# Set this to any options you might need to give to hwclock, +# such as machine hardware clock type for Alphas. +CLOCKPARAMS= + +# End /etc/sysconfig/clock +EOF + diff --git a/rkos/src/umount.sh b/rkos/src/umount.sh new file mode 100755 index 0000000000000000000000000000000000000000..299b18298f01c184abf32e4b03bce086846bfa7b --- /dev/null +++ b/rkos/src/umount.sh @@ -0,0 +1,2 @@ +umount $LFS/dev/pts +umount $LFS/{sys,proc,run,dev} diff --git a/rkos/src/utils.rs b/rkos/src/utils.rs new file mode 100644 index 0000000000000000000000000000000000000000..e853a104394730cc7b5f0b8c01271d604c62237e --- /dev/null +++ b/rkos/src/utils.rs @@ -0,0 +1,335 @@ +use cmd_lib::*; +use dagrs::{EnvVar, Inputval, Retval, TaskTrait}; +use log::{error, info}; +use std::env; +use std::error::Error; +use std::fs; +use std::fs::File; +use std::path::Path; +use std::path::PathBuf; +use std::process::Command; +use std::result::Result; + +use glob::glob; +use std::os::unix::fs::chroot; +use std::process::Stdio; + +use crate::vars::BASE_CONFIG; + +pub struct InstallInfo { + pub dir_name: String, + pub package_name: String, + pub script_name: String, + pub script_path: String, + pub package_source_path: String, + pub package_target_path: String, +} + +pub fn exec_chroot_script(script_path: PathBuf, dir: PathBuf) -> bool { + //日志输出文件 + let stdout_file = match File::create("/root/log.log") { + Ok(v) => v, + Err(_e) => return false, + }; + + let stderr_file = match stdout_file.try_clone() { + Ok(v) => v, + Err(_e) => return false, + }; + + let stdio = Stdio::from(stdout_file); + let stderr = Stdio::from(stderr_file); + //取绝对路径 + let abs_path = match fs::canonicalize(dir.as_path()) { + Ok(v) => v, + Err(_e) => return false, + }; + + let output = match Command::new("/bin/bash") + .current_dir(abs_path) + .env_clear() + .env("PATH", "/usr/bin:/usr/sbin:/root/.cargo/bin") + .env("HOME", "/root") + .env("TERM", "$TERM") + .env("MAKEFLAGS", "-j8") + .env("NINJAJOBS", "8") + .arg("-e") + .arg(script_path) + .stdout(stdio) + .stderr(stderr) + .status() + { + Ok(v) => v, + Err(_e) => return false, + }; + + output.success() +} + +fn exec_build_script(script_path: PathBuf, dir: PathBuf) -> bool { + let stdout_file = match File::create("/root/log.log") { + Ok(v) => v, + Err(_e) => return false, + }; + let stderr_file = match stdout_file.try_clone() { + Ok(v) => v, + Err(_e) => return false, + }; + + let stdio = Stdio::from(stdout_file); + let stderr = Stdio::from(stderr_file); + let abs_path = match fs::canonicalize(dir.as_path()) { + Ok(v) => v, + Err(_e) => return false, + }; + + let output = match Command::new("/bin/bash") + .current_dir(abs_path) + .env("MAKEFLAGS", "-j8") + .arg("-e") + .arg(script_path) + .stdout(stdio) + .stderr(stderr) + .status() + { + Ok(v) => v, + Err(_e) => return false, + }; + output.success() +} + +//FIXME:看情况是否需要单独的配置步骤 +pub struct ConfigChrootEnv {} +impl ProgramEndingFlag for ConfigChrootEnv {} +impl TaskTrait for ConfigChrootEnv { + fn run(&self, _input: Inputval, _env: EnvVar) -> Retval { + Retval::empty() + } +} + +pub struct EnterChroot {} +impl ProgramEndingFlag for EnterChroot {} +impl TaskTrait for EnterChroot { + fn run(&self, _input: Inputval, _env: EnvVar) -> Retval { + self.check_flag(); + // let chmod_script_path = "chroot_scripts/chown.sh"; + let chmod_script_path: PathBuf = [ + &BASE_CONFIG.scripts_path.root, + &BASE_CONFIG.scripts_path.chroot, + "target_path_chown.sh", + ] + .iter() + .collect(); + + match Command::new("/bin/bash") + .arg("-e") + .arg(chmod_script_path) + .status() + { + Ok(v) => match v.success() { + true => {} + false => { + self.try_set_flag(false); + } + }, + Err(e) => { + error!("Failed chown target path , Err msg:{}", e); + self.try_set_flag(false); + } + }; + + let mount_virt_fsystem: PathBuf = [ + &BASE_CONFIG.scripts_path.root, + &BASE_CONFIG.scripts_path.chroot, + "mount_vfsys.sh", + ] + .iter() + .collect(); + match Command::new("/bin/bash") + .arg("-e") + .arg(mount_virt_fsystem) + .status() + { + Ok(v) => match v.success() { + true => {} + false => { + self.try_set_flag(false); + } + }, + Err(e) => { + error!("Failed mount virt file system , Err msg:{}", e); + self.try_set_flag(false); + } + }; + + match chroot("/mnt/lfs") { + Ok(_v) => { + info!("success chroot to /mnt/lfs "); + } + Err(e) => { + error!("chroot to /mnt/lfs failed , Err msg {}", e); + self.try_set_flag(false); + } + } + match std::env::set_current_dir("/") { + Ok(_v) => { + info!("success chroot to /mnt/lfs "); + } + Err(e) => { + error!("Set current dir failed , Err msg {}", e); + self.try_set_flag(false); + } + } + + Retval::empty() + } +} + +pub fn env_status(env: String) -> Result { + if let Ok(v) = env::var(env) { + return Ok(v); + } + Err(false) +} + +pub fn download(target_path: String, url: String) -> Result> { + let cmd = format!("wget -P {} {}", target_path, url); + let output = Command::new("/bin/bash").arg("-c").arg(cmd).status()?; + Ok(output.success()) +} + +pub fn install_package( + package_info: InstallInfo, + chroot_flag: bool, +) -> Result> { + info!("package source path :{}; package name :{}; script path :{}; script name :{}; package_target_path :{};",&package_info.package_source_path,&package_info.package_name,&package_info.script_path,&package_info.script_name,&package_info.package_target_path); + + //软件包相对工作目录的路径 + let package_path = + match glob(&(package_info.package_source_path.clone() + &package_info.package_name + "*"))? + .filter_map(Result::ok) + .next() + { + Some(v) => v, + None => return Err(format!("Not found package {:?}", package_info.package_name).into()), + }; + + info!( + "Package name : {:?} ; Package path : {:?} ;", + &package_info.package_name, &package_path, + ); + + //预先准备的脚本文件路径 + let script_full_path = + match glob(&(package_info.script_path.clone() + &package_info.script_name + "*sh"))? + .filter_map(Result::ok) + .next() + { + Some(v) => v, + None => return Err(format!("Not found script {:?}", package_info.package_name).into()), + }; + + info!( + "Package name : {:?} ; Package path : {:?} ; Script path : {:?}", + &package_info.package_name, &package_path, &script_full_path + ); + + let output = Command::new("/usr/bin/tar") + .arg("xf") + .arg(package_path) + .arg("-C") + .arg(package_info.package_target_path.clone()) + .output() + .expect("error"); + let out = String::from_utf8(output.stdout).unwrap(); + + info!("{}", out); + + //解压好的程序包路径 + let target_path = + match glob(&(package_info.package_target_path + &package_info.dir_name + "*/"))? + // let target_path = match glob(&("sources/".to_owned() + &package_name + "*/")) + .filter_map(Result::ok) + .next() + { + Some(v) => v, + None => { + return Err(format!("Can not get target path {}", package_info.package_name).into()) + } //None => panic!("Not found target path {:?}", package_name), + }; + + //最终脚本文件在程序包中的路径 + let script_target_path: PathBuf = [ + target_path.clone(), + (package_info.script_name.clone() + ".sh").into(), + ] + .iter() + .collect(); + + info!( + "Script source path : {:?} ; Script target path : {:?} ;", + target_path, script_target_path + ); + // println!("{:?} : {:?}", &target_path, script_target_path); + fs::copy(script_full_path, &script_target_path)?; + + //脚本文件名字 + let fin_script_name = match script_target_path.file_name() { + Some(v) => v, + None => return Err("get filename failed".into()), + }; + + let status = match chroot_flag { + true => exec_chroot_script(fin_script_name.into(), target_path.clone()), + false => exec_build_script(fin_script_name.into(), target_path.clone()), + }; + //let status = exec_build_script(fin_script_name.into(), target_path.clone()); + + fs::remove_dir_all(target_path.clone()).unwrap(); + + match status { + true => { + info!("Package {:?} install success", package_info.package_name); + Ok(true) + } + false => Err(format!("Package {:?} install failed", target_path).into()), + } +} + +pub fn delete_failed_download_pack(target_pack_name: &str, target_path: &str) { + match glob(&(target_path.to_string() + target_pack_name)) { + Ok(v) => { + if let Some(v) = v.filter_map(Result::ok).next() { + fs::remove_file(v).unwrap() + } + } + Err(_e) => {} + } +} + +pub fn check_download_before(target_pack_name: &str, target_path: &str) -> bool { + match glob(&(target_path.to_string() + target_pack_name)) { + Ok(v) => v.filter_map(Result::ok).next().is_some(), + Err(_e) => false, + } +} + +pub trait ProgramEndingFlag { + fn check_flag(&self) { + let target_path = Path::new("stop"); + if target_path.exists() { + panic!("Program Ending"); + } + } + fn try_set_flag(&self, flag: bool) { + let target_path = Path::new("./stop"); + match flag { + false => { + //FIXME:直接unwrap虽然可以,但是不太美观 + File::create(target_path).unwrap(); + panic!("Program Ending"); + } + true => (), + } + } +} diff --git a/rkos/src/vars.rs b/rkos/src/vars.rs new file mode 100644 index 0000000000000000000000000000000000000000..cb83f6428bf9f7cc4985a597b9e0f205c6e80d96 --- /dev/null +++ b/rkos/src/vars.rs @@ -0,0 +1,308 @@ +use clap::{Parser, ValueEnum}; +use lazy_static::lazy_static; +use regex::Regex; +use serde::{Deserialize, Serialize}; +use std::env; +use std::error::Error; +use std::fs::File; +use std::io::{BufRead, BufReader, Cursor}; +use std::path::PathBuf; +use std::process::Command; + +use log::{error, info}; +use requestty::{Answer, Answers, Question}; + +#[derive(Parser)] +#[command(name = "rkos_builder")] +#[command(author = "xyyy ")] +#[command(version = "0.0.1")] +pub struct Cli { + #[arg(value_enum)] + pub build_option: BuildOption, + + #[arg(short, long, value_name = "DIR")] + pub config: Option, + + #[arg(value_enum)] + pub operate: StartMode, + + //编译中断后,可以填写该字段,避免重复编译成功的部分 + #[arg(default_value_t = String::from("NULL"), value_name = "PACKAGE_NAME")] + pub package_name: String, + + #[arg(short,long,action=clap::ArgAction::Count)] + pub debug: u8, +} + +#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, ValueEnum)] +pub enum StartMode { + Start, + Reset, +} + +#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, ValueEnum)] +pub enum BuildOption { + Build, + HostConfig, + PackageDownload, + BuildTempToolchains, + BuildBasePackages, + BuildRustSupportPackageAndKernel, + ConfigTargetSystem, + InstallGrub, + CleanUp, +} + +lazy_static! { + pub static ref DISK_INFO:Answers=req_user_input(); + pub static ref BOOT_PARTUUID:String=get_uuid(DISK_INFO["target_boot_part"].clone(), false); + pub static ref BOOT_UUID:String=get_uuid(DISK_INFO["target_boot_part"].clone(), true); + pub static ref ROOT_PARTUUID:String=get_uuid(DISK_INFO["target_root_part"].clone(), false); + pub static ref ROOT_UUID:String=get_uuid(DISK_INFO["target_root_part"].clone(), true); + pub static ref ROOT_DIR: PathBuf = env::current_dir().unwrap(); + pub static ref BASE_CONFIG: BaseConfig = { + let temp = parse_json(["configs", "base_configs.json"].iter().collect()); + match temp { + Ok(v) => v, + Err(e) => panic!("Cannot load base config , Err msg: {}",e), + } + }; + pub static ref STOP_FLAG: PathBuf = PathBuf::from(&BASE_CONFIG.host_info.stop_flag); + pub static ref ALL_PACKAGES: AllPackages = { +// let temp = parse_json("configs/all_packages.json"); + let temp = parse_json( + [&BASE_CONFIG.configs.root, &BASE_CONFIG.configs.package_info] + .iter() + .collect(), + ); + match temp { + Ok(v) => v, + Err(e) => panic!("Cannot load all packages , Err msg: {}",e), + } + }; + pub static ref RUST_SUPPORT_PACKAGES: RustSupportPackages = { +// let temp = parse_json("configs/cross_compile_packages.json"); + let temp = parse_json([&BASE_CONFIG.configs.root,&BASE_CONFIG.configs.rust_support_packages].iter().collect()); + match temp { + Ok(v) => v, + Err(e) => panic!("Cannot load cross compile packages, Err msg: {}",e), + } + }; + + pub static ref CROSS_COMPILE_PACKAGES: CrossCompilePackages = { +// let temp = parse_json("configs/cross_compile_packages.json"); + let temp = parse_json([&BASE_CONFIG.configs.root,&BASE_CONFIG.configs.temp_toolchains].iter().collect()); + match temp { + Ok(v) => v, + Err(e) => panic!("Cannot load cross compile packages, Err msg: {}",e), + } + }; + pub static ref BASE_PACKAGES: BasePackages = { +// let temp = parse_json("configs/base_packages.json"); + let temp = parse_json([&BASE_CONFIG.configs.root,&BASE_CONFIG.configs.base_packages].iter().collect()); + match temp { + Ok(v) => v, + Err(e) => panic!("Cannot load base packages , Err msg: {}",e), + } + }; +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct HostInfo { + pub target_part: String, + pub stop_flag: String, +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct ScriptsPath { + pub root: String, + pub build_base_packages: String, + pub build_temp_toolchains: String, + pub build_rust_support_packages: String, + pub chroot: String, + pub clean: String, + pub prepare: String, + pub release: String, + pub sysconfig: String, +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct Configs { + pub root: String, + pub package_info: String, + pub base_packages: String, + pub temp_toolchains: String, + pub rust_support_packages: String, +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct PathInfo { + pub root: String, + pub package_source: String, + pub package_build: String, + pub package_patches: String, + pub install_path: String, +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct EnvsInfo { + pub name: String, + pub value: String, +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct Envs { + pub envs: Vec, +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct BaseConfig { + pub host_info: HostInfo, + pub scripts_path: ScriptsPath, + pub configs: Configs, + pub path: PathInfo, + pub envs: Vec, +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct BasePackagesInfo { + pub name: String, + pub package_name: String, + pub script: String, +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct BasePackages { + pub base_packages: Vec, +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct RustSupportPackageInfo { + pub name: String, + pub package_name: String, + pub script: String, +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct RustSupportPackages { + pub rust_support_packages: Vec, +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct PackageInfo { + pub name: String, + pub url: String, +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct PatchInfo { + pub name: String, + pub url: String, +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct AllPackages { + pub all_packages: Vec, + pub package_patches: Vec, +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct CrossCompilePackagesInfo { + pub name: String, + pub package_name: String, + pub script: String, +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct CrossCompilePackages { + pub cross_compile_toolchains: Vec, + pub cross_compile_packages: Vec, + pub after_chroot_packages: Vec, +} + +pub fn parse_json( + json_file_path: PathBuf, +) -> Result> { + info!("{:?}", json_file_path); + let file = File::open(json_file_path)?; + let reader = BufReader::new(file); + let value: T = serde_json::from_reader(reader)?; + Ok(value) +} + +pub fn req_user_input() -> Answers { + let option = get_blkid_output(); + + let questions = vec![ + Question::select("target_boot_part") + .message("Which partition you want to use as a boot partition?") + .choices(option.clone()) + .build(), + Question::select("target_root_part") + .message("Which partition you want to use as a root partition?") + .choices(option) + .build(), + ]; + + match requestty::prompt(questions) { + Ok(v) => v, + Err(e) => { + error!("Failed get user input Err msg : {}", e); + panic!(); + } + } +} + +pub fn get_blkid_output() -> Vec { + let blkid = String::from_utf8(Command::new("/usr/bin/blkid").output().unwrap().stdout); + let mut lines: Vec = Vec::new(); + match blkid { + Ok(v) => { + //TODO:确认flatten的方式是否可行 + let cursor = Cursor::new(v.as_bytes()); + for line in cursor.lines().into_iter().flatten() { + lines.push(line); + } + // for line in cursor.lines().into_iter() { + // if let Ok(v) = line { + // lines.push(v); + // } + // } + } + Err(e) => error!("Cannot get blkid output Err msg: {}", e), + } + lines +} + +pub fn get_uuid(value: Answer, uuid: bool) -> String { + match uuid { + true => { + if let Answer::ListItem(s) = value { + let pattern = Regex::new("UUID=\"(.*?)\"").unwrap(); + if let Some(cap) = pattern.captures_iter(&s.text).next() { + return cap[1].to_string(); + } + // for cap in pattern.captures_iter(&s.text) { + // return cap[1].to_string(); + // } + "NULL".to_string() + } else { + "NULL".to_string() + } + } + false => { + if let Answer::ListItem(s) = value { + let pattern = Regex::new("PARTUUID=\"(.*?)\"").unwrap(); + if let Some(cap) = pattern.captures_iter(&s.text).next() { + return cap[1].to_string(); + } + // for cap in pattern.captures_iter(&s.text) { + // return cap[1].to_string(); + // } + "NULL".to_string() + } else { + "NULL".to_string() + } + } + } +} diff --git a/rkos/src/version-check.sh b/rkos/src/version-check.sh new file mode 100755 index 0000000000000000000000000000000000000000..dfcfb4278d5179e2b8213a9e0cb30e1de922b663 --- /dev/null +++ b/rkos/src/version-check.sh @@ -0,0 +1,53 @@ +#!/bin/bash +# Simple script to list version numbers of critical development tools +export LC_ALL=C +bash --version | head -n1 | cut -d" " -f2-4 +MYSH=$(readlink -f /bin/sh) +echo "/bin/sh -> $MYSH" +echo $MYSH | grep -q bash || echo "ERROR: /bin/sh does not point to bash" +unset MYSH + +echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3- +bison --version | head -n1 + +if [ -h /usr/bin/yacc ]; then + echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`"; +elif [ -x /usr/bin/yacc ]; then + echo yacc is `/usr/bin/yacc --version | head -n1` +else + echo "yacc not found" +fi + +echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2 +diff --version | head -n1 +find --version | head -n1 +gawk --version | head -n1 + +if [ -h /usr/bin/awk ]; then + echo "/usr/bin/awk -> `readlink -f /usr/bin/awk`"; +elif [ -x /usr/bin/awk ]; then + echo awk is `/usr/bin/awk --version | head -n1` +else + echo "awk not found" +fi + +gcc --version | head -n1 +g++ --version | head -n1 +grep --version | head -n1 +gzip --version | head -n1 +cat /proc/version +m4 --version | head -n1 +make --version | head -n1 +patch --version | head -n1 +echo Perl `perl -V:version` +python3 --version +sed --version | head -n1 +tar --version | head -n1 +makeinfo --version | head -n1 # texinfo version +xz --version | head -n1 + +echo 'int main(){}' > dummy.c && g++ -o dummy dummy.c +if [ -x dummy ] + then echo "g++ compilation OK"; + else echo "g++ compilation failed"; fi +rm -f dummy.c dummy