From 765756ae126d57735c22d59a7c1242f01443921e Mon Sep 17 00:00:00 2001 From: David P Date: Wed, 16 May 2018 21:08:49 -0400 Subject: modify entire source according to archiso32 and remove unused configs/talkingparabola-X11 Signed-off-by: David P --- .editorconfig | 15 + .gitignore | 6 +- Makefile | 56 +-- .../lxde-openrc/airootfs/etc/X11/Xwrapper.config | 1 + .../lxde-openrc/airootfs/etc/conf.d/agetty.tty1 | 3 + configs/lxde-openrc/airootfs/etc/conf.d/hostname | 1 + configs/lxde-openrc/airootfs/etc/fstab | 0 .../lxde-openrc/airootfs/etc/init.d/pacman-init | 30 ++ configs/lxde-openrc/airootfs/etc/locale.conf | 1 + configs/lxde-openrc/airootfs/etc/motd | 17 + configs/lxde-openrc/airootfs/etc/pam.d/su | 6 + .../etc/skel/.config/lxsession/LXDE/desktop.conf | 48 +++ .../skel/.config/pcmanfm/LXDE/desktop-items-0.conf | 14 + configs/lxde-openrc/airootfs/etc/sudoers.d/g_wheel | 1 + configs/lxde-openrc/airootfs/etc/wallpaper.png | Bin 0 -> 159460 bytes .../lxde-openrc/airootfs/root/.automated_script.sh | 34 ++ configs/lxde-openrc/airootfs/root/.codecheck | 2 + .../lxde-openrc/airootfs/root/.config/dconf/user | Bin 0 -> 6616 bytes .../root/.config/gtk-2.0/gtkfilechooser.ini | 11 + .../airootfs/root/.config/lxsession/LXDE/autostart | 4 + .../airootfs/root/.config/volumeicon/volumeicon | 25 ++ configs/lxde-openrc/airootfs/root/.keymap.sh | 116 ++++++ configs/lxde-openrc/airootfs/root/.language.sh | 32 ++ .../.scriptsInstallation/language/en/install.sh | 227 +++++++++++ .../language/en/systemConfig.sh | 271 +++++++++++++ .../language/en/userAccount.sh | 13 + .../.scriptsInstallation/language/es/install.sh | 227 +++++++++++ .../language/es/systemConfig.sh | 271 +++++++++++++ .../language/es/userAccount.sh | 13 + .../.scriptsInstallation/language/gl/install.sh | 226 +++++++++++ .../language/gl/systemConfig.sh | 271 +++++++++++++ .../language/gl/userAccount.sh | 13 + .../.scriptsInstallation/language/pt/install.sh | 227 +++++++++++ .../language/pt/systemConfig.sh | 271 +++++++++++++ .../language/pt/userAccount.sh | 13 + .../root/.scriptsInstallation/parabolaicon.png | Bin 0 -> 857 bytes .../airootfs/root/.scriptsInstallation/x11.sh | 14 + .../airootfs/root/.themes/Parabola/index.theme | 13 + configs/lxde-openrc/airootfs/root/.xinitrc | 7 + configs/lxde-openrc/airootfs/root/.zlogin | 4 + .../root/Desktop/Parabola Installation CLI.desktop | 12 + .../airootfs/root/customize_airootfs.sh | 48 +++ configs/lxde-openrc/airootfs/root/install.txt | 2 + configs/lxde-openrc/aitab | 3 - configs/lxde-openrc/build.sh | 152 ++++---- configs/lxde-openrc/mkinitcpio.conf | 2 +- .../lxde-openrc/root-image/etc/conf.d/agetty.tty1 | 11 - configs/lxde-openrc/root-image/etc/conf.d/hostname | 2 - configs/lxde-openrc/root-image/etc/fstab | 0 .../lxde-openrc/root-image/etc/init.d/pacman-init | 31 -- configs/lxde-openrc/root-image/etc/locale.conf | 1 - configs/lxde-openrc/root-image/etc/motd | 13 - configs/lxde-openrc/root-image/etc/pam.d/su | 6 - .../etc/skel/.config/lxsession/LXDE/desktop.conf | 48 --- .../skel/.config/pcmanfm/LXDE/desktop-items-0.conf | 14 - .../lxde-openrc/root-image/etc/sudoers.d/g_wheel | 1 - .../root-image/etc/udev/rules.d/81-dhcpcd.rules | 1 - configs/lxde-openrc/root-image/etc/wallpaper.png | Bin 159460 -> 0 bytes .../root-image/root/.automated_script.sh | 34 -- configs/lxde-openrc/root-image/root/.codecheck | 2 - .../lxde-openrc/root-image/root/.config/dconf/user | Bin 6616 -> 0 bytes .../root/.config/gtk-2.0/gtkfilechooser.ini | 11 - .../root/.config/lxsession/LXDE/autostart | 4 - .../root/.config/lxsession/LXDE/desktop.conf | 48 --- .../root/.config/pcmanfm/LXDE/desktop-items-0.conf | 14 - .../root-image/root/.config/volumeicon/volumeicon | 25 -- configs/lxde-openrc/root-image/root/.keymap.sh | 116 ------ configs/lxde-openrc/root-image/root/.language.sh | 32 -- .../.scriptsInstallation/language/en/install.sh | 227 ----------- .../language/en/systemConfig.sh | 271 ------------- .../language/en/userAccount.sh | 13 - .../.scriptsInstallation/language/es/install.sh | 227 ----------- .../language/es/systemConfig.sh | 271 ------------- .../language/es/userAccount.sh | 13 - .../.scriptsInstallation/language/gl/install.sh | 226 ----------- .../language/gl/systemConfig.sh | 271 ------------- .../language/gl/userAccount.sh | 13 - .../.scriptsInstallation/language/pt/install.sh | 227 ----------- .../language/pt/systemConfig.sh | 271 ------------- .../language/pt/userAccount.sh | 13 - .../root/.scriptsInstallation/parabolaicon.png | Bin 857 -> 0 bytes .../root-image/root/.scriptsInstallation/x11.sh | 14 - .../root-image/root/.themes/Parabola/index.theme | 13 - configs/lxde-openrc/root-image/root/.xinitrc | 7 - configs/lxde-openrc/root-image/root/.zlogin | 4 - .../root/Desktop/Parabola Installation CLI.desktop | 12 - .../root-image/root/customize_root_image.sh | 42 -- .../profile-openrc/airootfs/etc/conf.d/agetty.tty1 | 3 + .../profile-openrc/airootfs/etc/conf.d/hostname | 1 + configs/profile-openrc/airootfs/etc/fstab | 0 .../profile-openrc/airootfs/etc/init.d/pacman-init | 30 ++ configs/profile-openrc/airootfs/etc/locale.conf | 1 + configs/profile-openrc/airootfs/etc/motd | 17 + configs/profile-openrc/airootfs/etc/pam.d/su | 6 + .../profile-openrc/airootfs/etc/sudoers.d/g_wheel | 1 + .../airootfs/root/.automated_script.sh | 34 ++ configs/profile-openrc/airootfs/root/.zlogin | 1 + .../airootfs/root/customize_airootfs.sh | 41 ++ configs/profile-openrc/airootfs/root/install.txt | 2 + configs/profile-openrc/aitab | 3 - configs/profile-openrc/build.sh | 144 ++++--- configs/profile-openrc/mkinitcpio.conf | 2 +- configs/profile-openrc/packages.both | 1 + .../root-image/etc/conf.d/agetty.tty1 | 11 - .../profile-openrc/root-image/etc/conf.d/hostname | 2 - configs/profile-openrc/root-image/etc/fstab | 0 .../root-image/etc/init.d/pacman-init | 31 -- configs/profile-openrc/root-image/etc/locale.conf | 1 - configs/profile-openrc/root-image/etc/motd | 14 - configs/profile-openrc/root-image/etc/pam.d/su | 6 - .../root-image/etc/sudoers.d/g_wheel | 1 - .../root-image/etc/udev/rules.d/81-dhcpcd.rules | 1 - .../root-image/root/.automated_script.sh | 34 -- configs/profile-openrc/root-image/root/.zlogin | 1 - .../root-image/root/customize_root_image.sh | 39 -- .../profile-openrc/root-image/root/network.html | 191 --------- configs/profile/airootfs/etc/fstab | 0 configs/profile/airootfs/etc/hostname | 1 + configs/profile/airootfs/etc/locale.conf | 1 + configs/profile/airootfs/etc/motd | 14 + configs/profile/airootfs/etc/pam.d/su | 6 + configs/profile/airootfs/etc/sudoers.d/g_wheel | 1 + .../airootfs/etc/systemd/scripts/choose-mirror | 26 ++ .../etc/systemd/system/choose-mirror.service | 10 + .../etc/systemd/system/etc-pacman.d-gnupg.mount | 8 + .../system/getty@tty1.service.d/autologin.conf | 3 + .../etc/systemd/system/pacman-init.service | 16 + .../airootfs/etc/udev/rules.d/81-dhcpcd.rules | 1 + configs/profile/airootfs/root/.automated_script.sh | 34 ++ configs/profile/airootfs/root/.zlogin | 1 + .../profile/airootfs/root/customize_airootfs.sh | 29 ++ configs/profile/airootfs/root/install.txt | 2 + configs/profile/aitab | 3 - configs/profile/build.sh | 149 ++++--- configs/profile/mkinitcpio.conf | 2 +- configs/profile/root-image/etc/fstab | 0 configs/profile/root-image/etc/hostname | 1 - configs/profile/root-image/etc/locale.conf | 1 - configs/profile/root-image/etc/motd | 14 - configs/profile/root-image/etc/pam.d/su | 6 - configs/profile/root-image/etc/sudoers.d/g_wheel | 1 - .../root-image/etc/systemd/scripts/choose-mirror | 26 -- .../etc/systemd/system/choose-mirror.service | 10 - .../etc/systemd/system/etc-pacman.d-gnupg.mount | 8 - .../system/getty@tty1.service.d/autologin.conf | 3 - .../etc/systemd/system/pacman-init.service | 16 - .../root-image/etc/udev/rules.d/81-dhcpcd.rules | 1 - .../profile/root-image/root/.automated_script.sh | 34 -- configs/profile/root-image/root/.zlogin | 1 - .../root-image/root/customize_root_image.sh | 22 -- configs/profile/root-image/root/network.html | 191 --------- configs/talkingparabola-X11/aitab | 3 - configs/talkingparabola-X11/build.sh | 254 ------------ .../loader/entries/parabolaiso-x86_64-cd.conf | 4 - .../loader/entries/parabolaiso-x86_64-usb.conf | 4 - .../loader/entries/uefi-shell-v1-x86_64.conf | 2 - .../loader/entries/uefi-shell-v2-x86_64.conf | 2 - .../talkingparabola-X11/efiboot/loader/loader.conf | 2 - configs/talkingparabola-X11/isolinux/isolinux.cfg | 6 - configs/talkingparabola-X11/mkinitcpio.conf | 3 - configs/talkingparabola-X11/packages.both | 97 ----- configs/talkingparabola-X11/packages.i686 | 0 configs/talkingparabola-X11/packages.x86_64 | 1 - configs/talkingparabola-X11/pacman.conf | 104 ----- configs/talkingparabola-X11/root-image/etc/fstab | 0 .../talkingparabola-X11/root-image/etc/hostname | 1 - .../talkingparabola-X11/root-image/etc/locale.conf | 1 - configs/talkingparabola-X11/root-image/etc/motd | 14 - .../talkingparabola-X11/root-image/etc/pam.d/su | 6 - .../etc/skel/.config/autostart/orca.desktop | 5 - .../root-image/etc/skel/.xinitrc | 1 - .../root-image/etc/sudoers.d/g_wheel | 1 - .../root-image/etc/systemd/scripts/choose-mirror | 26 -- .../etc/systemd/system/choose-mirror.service | 10 - .../etc/systemd/system/etc-pacman.d-gnupg.mount | 8 - .../system/getty@tty1.service.d/autologin.conf | 3 - .../etc/systemd/system/livecd-alsa-unmuter.service | 15 - .../etc/systemd/system/pacman-init.service | 16 - .../root-image/etc/udev/rules.d/81-dhcpcd.rules | 1 - .../root-image/root/customize_root_image.sh | 22 -- .../root-image/root/network.html | 191 --------- .../root-image/usr/bin/livecd-alsa-unmuter | 8 - .../root-image/usr/bin/pick-a-card | 54 --- .../root-image/usr/bin/talk-to-me | 10 - .../usr/share/livecd-sound/asound.conf.in | 12 - .../root-image/usr/share/livecd-sound/functions | 199 ---------- .../talkingparabola-X11/syslinux/parabolaiso.cfg | 11 - .../syslinux/parabolaiso_head.cfg | 25 -- .../syslinux/parabolaiso_pxe32.cfg | 32 -- .../syslinux/parabolaiso_pxe64.cfg | 32 -- .../syslinux/parabolaiso_pxe_32_inc.cfg | 3 - .../syslinux/parabolaiso_pxe_both_inc.cfg | 4 - .../syslinux/parabolaiso_pxe_choose.cfg | 11 - .../syslinux/parabolaiso_sys32.cfg | 9 - .../syslinux/parabolaiso_sys64.cfg | 9 - .../syslinux/parabolaiso_sys_32_inc.cfg | 3 - .../syslinux/parabolaiso_sys_both_inc.cfg | 4 - .../syslinux/parabolaiso_sys_choose.cfg | 11 - .../syslinux/parabolaiso_tail.cfg | 27 -- configs/talkingparabola-X11/syslinux/splash.png | Bin 31075 -> 0 bytes configs/talkingparabola-X11/syslinux/splash.svg | 258 ------------ configs/talkingparabola-X11/syslinux/syslinux.cfg | 5 - configs/talkingparabola/airootfs/etc/fstab | 0 configs/talkingparabola/airootfs/etc/hostname | 1 + configs/talkingparabola/airootfs/etc/locale.conf | 1 + configs/talkingparabola/airootfs/etc/motd | 14 + configs/talkingparabola/airootfs/etc/pam.d/su | 6 + .../talkingparabola/airootfs/etc/sudoers.d/g_wheel | 1 + .../airootfs/etc/systemd/scripts/choose-mirror | 26 ++ .../etc/systemd/system/choose-mirror.service | 10 + .../etc/systemd/system/etc-pacman.d-gnupg.mount | 8 + .../system/getty@tty1.service.d/autologin.conf | 3 + .../etc/systemd/system/livecd-alsa-unmuter.service | 15 + .../etc/systemd/system/pacman-init.service | 16 + .../airootfs/etc/udev/rules.d/81-dhcpcd.rules | 1 + .../airootfs/root/customize_airootfs.sh | 29 ++ configs/talkingparabola/airootfs/root/install.txt | 2 + .../airootfs/usr/bin/livecd-alsa-unmuter | 8 + .../talkingparabola/airootfs/usr/bin/pick-a-card | 54 +++ .../talkingparabola/airootfs/usr/bin/talk-to-me | 10 + .../airootfs/usr/share/livecd-sound/asound.conf.in | 12 + .../airootfs/usr/share/livecd-sound/functions | 199 ++++++++++ configs/talkingparabola/aitab | 3 - configs/talkingparabola/build.sh | 149 ++++--- configs/talkingparabola/mkinitcpio.conf | 3 +- configs/talkingparabola/root-image/etc/fstab | 0 configs/talkingparabola/root-image/etc/hostname | 1 - configs/talkingparabola/root-image/etc/locale.conf | 1 - configs/talkingparabola/root-image/etc/motd | 14 - configs/talkingparabola/root-image/etc/pam.d/su | 6 - .../root-image/etc/sudoers.d/g_wheel | 1 - .../root-image/etc/systemd/scripts/choose-mirror | 26 -- .../etc/systemd/system/choose-mirror.service | 10 - .../etc/systemd/system/etc-pacman.d-gnupg.mount | 8 - .../system/getty@tty1.service.d/autologin.conf | 3 - .../etc/systemd/system/livecd-alsa-unmuter.service | 15 - .../etc/systemd/system/pacman-init.service | 16 - .../root-image/etc/udev/rules.d/81-dhcpcd.rules | 1 - .../root-image/root/customize_root_image.sh | 22 -- .../talkingparabola/root-image/root/network.html | 191 --------- .../root-image/usr/bin/livecd-alsa-unmuter | 8 - .../talkingparabola/root-image/usr/bin/pick-a-card | 54 --- .../talkingparabola/root-image/usr/bin/talk-to-me | 10 - .../usr/share/livecd-sound/asound.conf.in | 12 - .../root-image/usr/share/livecd-sound/functions | 199 ---------- docs/README.altbootmethods | 6 +- docs/README.bootparams | 46 +-- docs/README.build | 58 +-- docs/README.transfer | 6 +- expand | 181 --------- parabolaiso/initcpio/hooks/parabolaiso | 121 +++--- parabolaiso/initcpio/hooks/parabolaiso_loop_mnt | 9 +- parabolaiso/initcpio/hooks/parabolaiso_pxe_common | 36 +- parabolaiso/initcpio/hooks/parabolaiso_pxe_http | 25 +- parabolaiso/initcpio/hooks/parabolaiso_pxe_nbd | 21 +- parabolaiso/initcpio/install/parabolaiso | 8 + parabolaiso/initcpio/install/parabolaiso_pxe_http | 2 + parabolaiso/mkparabolaiso | 432 +++++++-------------- 258 files changed, 3899 insertions(+), 6284 deletions(-) create mode 100644 .editorconfig create mode 100644 configs/lxde-openrc/airootfs/etc/X11/Xwrapper.config create mode 100644 configs/lxde-openrc/airootfs/etc/conf.d/agetty.tty1 create mode 100644 configs/lxde-openrc/airootfs/etc/conf.d/hostname create mode 100644 configs/lxde-openrc/airootfs/etc/fstab create mode 100755 configs/lxde-openrc/airootfs/etc/init.d/pacman-init create mode 100644 configs/lxde-openrc/airootfs/etc/locale.conf create mode 100644 configs/lxde-openrc/airootfs/etc/motd create mode 100644 configs/lxde-openrc/airootfs/etc/pam.d/su create mode 100644 configs/lxde-openrc/airootfs/etc/skel/.config/lxsession/LXDE/desktop.conf create mode 100644 configs/lxde-openrc/airootfs/etc/skel/.config/pcmanfm/LXDE/desktop-items-0.conf create mode 100644 configs/lxde-openrc/airootfs/etc/sudoers.d/g_wheel create mode 100644 configs/lxde-openrc/airootfs/etc/wallpaper.png create mode 100755 configs/lxde-openrc/airootfs/root/.automated_script.sh create mode 100644 configs/lxde-openrc/airootfs/root/.codecheck create mode 100644 configs/lxde-openrc/airootfs/root/.config/dconf/user create mode 100644 configs/lxde-openrc/airootfs/root/.config/gtk-2.0/gtkfilechooser.ini create mode 100644 configs/lxde-openrc/airootfs/root/.config/lxsession/LXDE/autostart create mode 100644 configs/lxde-openrc/airootfs/root/.config/volumeicon/volumeicon create mode 100755 configs/lxde-openrc/airootfs/root/.keymap.sh create mode 100755 configs/lxde-openrc/airootfs/root/.language.sh create mode 100755 configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/en/install.sh create mode 100755 configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/en/systemConfig.sh create mode 100755 configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/en/userAccount.sh create mode 100755 configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/es/install.sh create mode 100755 configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/es/systemConfig.sh create mode 100755 configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/es/userAccount.sh create mode 100755 configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/gl/install.sh create mode 100755 configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/gl/systemConfig.sh create mode 100755 configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/gl/userAccount.sh create mode 100755 configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/pt/install.sh create mode 100755 configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/pt/systemConfig.sh create mode 100755 configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/pt/userAccount.sh create mode 100644 configs/lxde-openrc/airootfs/root/.scriptsInstallation/parabolaicon.png create mode 100755 configs/lxde-openrc/airootfs/root/.scriptsInstallation/x11.sh create mode 100644 configs/lxde-openrc/airootfs/root/.themes/Parabola/index.theme create mode 100644 configs/lxde-openrc/airootfs/root/.xinitrc create mode 100644 configs/lxde-openrc/airootfs/root/.zlogin create mode 100755 configs/lxde-openrc/airootfs/root/Desktop/Parabola Installation CLI.desktop create mode 100755 configs/lxde-openrc/airootfs/root/customize_airootfs.sh create mode 100644 configs/lxde-openrc/airootfs/root/install.txt delete mode 100644 configs/lxde-openrc/aitab delete mode 100644 configs/lxde-openrc/root-image/etc/conf.d/agetty.tty1 delete mode 100644 configs/lxde-openrc/root-image/etc/conf.d/hostname delete mode 100644 configs/lxde-openrc/root-image/etc/fstab delete mode 100755 configs/lxde-openrc/root-image/etc/init.d/pacman-init delete mode 100644 configs/lxde-openrc/root-image/etc/locale.conf delete mode 100644 configs/lxde-openrc/root-image/etc/motd delete mode 100644 configs/lxde-openrc/root-image/etc/pam.d/su delete mode 100644 configs/lxde-openrc/root-image/etc/skel/.config/lxsession/LXDE/desktop.conf delete mode 100644 configs/lxde-openrc/root-image/etc/skel/.config/pcmanfm/LXDE/desktop-items-0.conf delete mode 100644 configs/lxde-openrc/root-image/etc/sudoers.d/g_wheel delete mode 100644 configs/lxde-openrc/root-image/etc/udev/rules.d/81-dhcpcd.rules delete mode 100644 configs/lxde-openrc/root-image/etc/wallpaper.png delete mode 100755 configs/lxde-openrc/root-image/root/.automated_script.sh delete mode 100644 configs/lxde-openrc/root-image/root/.codecheck delete mode 100644 configs/lxde-openrc/root-image/root/.config/dconf/user delete mode 100644 configs/lxde-openrc/root-image/root/.config/gtk-2.0/gtkfilechooser.ini delete mode 100644 configs/lxde-openrc/root-image/root/.config/lxsession/LXDE/autostart delete mode 100644 configs/lxde-openrc/root-image/root/.config/lxsession/LXDE/desktop.conf delete mode 100644 configs/lxde-openrc/root-image/root/.config/pcmanfm/LXDE/desktop-items-0.conf delete mode 100644 configs/lxde-openrc/root-image/root/.config/volumeicon/volumeicon delete mode 100755 configs/lxde-openrc/root-image/root/.keymap.sh delete mode 100755 configs/lxde-openrc/root-image/root/.language.sh delete mode 100755 configs/lxde-openrc/root-image/root/.scriptsInstallation/language/en/install.sh delete mode 100755 configs/lxde-openrc/root-image/root/.scriptsInstallation/language/en/systemConfig.sh delete mode 100755 configs/lxde-openrc/root-image/root/.scriptsInstallation/language/en/userAccount.sh delete mode 100755 configs/lxde-openrc/root-image/root/.scriptsInstallation/language/es/install.sh delete mode 100755 configs/lxde-openrc/root-image/root/.scriptsInstallation/language/es/systemConfig.sh delete mode 100755 configs/lxde-openrc/root-image/root/.scriptsInstallation/language/es/userAccount.sh delete mode 100755 configs/lxde-openrc/root-image/root/.scriptsInstallation/language/gl/install.sh delete mode 100755 configs/lxde-openrc/root-image/root/.scriptsInstallation/language/gl/systemConfig.sh delete mode 100755 configs/lxde-openrc/root-image/root/.scriptsInstallation/language/gl/userAccount.sh delete mode 100755 configs/lxde-openrc/root-image/root/.scriptsInstallation/language/pt/install.sh delete mode 100755 configs/lxde-openrc/root-image/root/.scriptsInstallation/language/pt/systemConfig.sh delete mode 100755 configs/lxde-openrc/root-image/root/.scriptsInstallation/language/pt/userAccount.sh delete mode 100644 configs/lxde-openrc/root-image/root/.scriptsInstallation/parabolaicon.png delete mode 100755 configs/lxde-openrc/root-image/root/.scriptsInstallation/x11.sh delete mode 100644 configs/lxde-openrc/root-image/root/.themes/Parabola/index.theme delete mode 100644 configs/lxde-openrc/root-image/root/.xinitrc delete mode 100644 configs/lxde-openrc/root-image/root/.zlogin delete mode 100755 configs/lxde-openrc/root-image/root/Desktop/Parabola Installation CLI.desktop delete mode 100755 configs/lxde-openrc/root-image/root/customize_root_image.sh create mode 100644 configs/profile-openrc/airootfs/etc/conf.d/agetty.tty1 create mode 100644 configs/profile-openrc/airootfs/etc/conf.d/hostname create mode 100644 configs/profile-openrc/airootfs/etc/fstab create mode 100755 configs/profile-openrc/airootfs/etc/init.d/pacman-init create mode 100644 configs/profile-openrc/airootfs/etc/locale.conf create mode 100644 configs/profile-openrc/airootfs/etc/motd create mode 100644 configs/profile-openrc/airootfs/etc/pam.d/su create mode 100644 configs/profile-openrc/airootfs/etc/sudoers.d/g_wheel create mode 100755 configs/profile-openrc/airootfs/root/.automated_script.sh create mode 100644 configs/profile-openrc/airootfs/root/.zlogin create mode 100755 configs/profile-openrc/airootfs/root/customize_airootfs.sh create mode 100644 configs/profile-openrc/airootfs/root/install.txt delete mode 100644 configs/profile-openrc/aitab delete mode 100644 configs/profile-openrc/root-image/etc/conf.d/agetty.tty1 delete mode 100644 configs/profile-openrc/root-image/etc/conf.d/hostname delete mode 100644 configs/profile-openrc/root-image/etc/fstab delete mode 100755 configs/profile-openrc/root-image/etc/init.d/pacman-init delete mode 100644 configs/profile-openrc/root-image/etc/locale.conf delete mode 100644 configs/profile-openrc/root-image/etc/motd delete mode 100644 configs/profile-openrc/root-image/etc/pam.d/su delete mode 100644 configs/profile-openrc/root-image/etc/sudoers.d/g_wheel delete mode 100644 configs/profile-openrc/root-image/etc/udev/rules.d/81-dhcpcd.rules delete mode 100755 configs/profile-openrc/root-image/root/.automated_script.sh delete mode 100644 configs/profile-openrc/root-image/root/.zlogin delete mode 100755 configs/profile-openrc/root-image/root/customize_root_image.sh delete mode 100644 configs/profile-openrc/root-image/root/network.html create mode 100644 configs/profile/airootfs/etc/fstab create mode 100644 configs/profile/airootfs/etc/hostname create mode 100644 configs/profile/airootfs/etc/locale.conf create mode 100644 configs/profile/airootfs/etc/motd create mode 100644 configs/profile/airootfs/etc/pam.d/su create mode 100644 configs/profile/airootfs/etc/sudoers.d/g_wheel create mode 100755 configs/profile/airootfs/etc/systemd/scripts/choose-mirror create mode 100644 configs/profile/airootfs/etc/systemd/system/choose-mirror.service create mode 100644 configs/profile/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount create mode 100644 configs/profile/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf create mode 100644 configs/profile/airootfs/etc/systemd/system/pacman-init.service create mode 100644 configs/profile/airootfs/etc/udev/rules.d/81-dhcpcd.rules create mode 100755 configs/profile/airootfs/root/.automated_script.sh create mode 100644 configs/profile/airootfs/root/.zlogin create mode 100755 configs/profile/airootfs/root/customize_airootfs.sh create mode 100644 configs/profile/airootfs/root/install.txt delete mode 100644 configs/profile/aitab delete mode 100644 configs/profile/root-image/etc/fstab delete mode 100644 configs/profile/root-image/etc/hostname delete mode 100644 configs/profile/root-image/etc/locale.conf delete mode 100644 configs/profile/root-image/etc/motd delete mode 100644 configs/profile/root-image/etc/pam.d/su delete mode 100644 configs/profile/root-image/etc/sudoers.d/g_wheel delete mode 100755 configs/profile/root-image/etc/systemd/scripts/choose-mirror delete mode 100644 configs/profile/root-image/etc/systemd/system/choose-mirror.service delete mode 100644 configs/profile/root-image/etc/systemd/system/etc-pacman.d-gnupg.mount delete mode 100644 configs/profile/root-image/etc/systemd/system/getty@tty1.service.d/autologin.conf delete mode 100644 configs/profile/root-image/etc/systemd/system/pacman-init.service delete mode 100644 configs/profile/root-image/etc/udev/rules.d/81-dhcpcd.rules delete mode 100755 configs/profile/root-image/root/.automated_script.sh delete mode 100644 configs/profile/root-image/root/.zlogin delete mode 100755 configs/profile/root-image/root/customize_root_image.sh delete mode 100644 configs/profile/root-image/root/network.html delete mode 100644 configs/talkingparabola-X11/aitab delete mode 100755 configs/talkingparabola-X11/build.sh delete mode 100644 configs/talkingparabola-X11/efiboot/loader/entries/parabolaiso-x86_64-cd.conf delete mode 100644 configs/talkingparabola-X11/efiboot/loader/entries/parabolaiso-x86_64-usb.conf delete mode 100644 configs/talkingparabola-X11/efiboot/loader/entries/uefi-shell-v1-x86_64.conf delete mode 100644 configs/talkingparabola-X11/efiboot/loader/entries/uefi-shell-v2-x86_64.conf delete mode 100644 configs/talkingparabola-X11/efiboot/loader/loader.conf delete mode 100644 configs/talkingparabola-X11/isolinux/isolinux.cfg delete mode 100644 configs/talkingparabola-X11/mkinitcpio.conf delete mode 100644 configs/talkingparabola-X11/packages.both delete mode 100644 configs/talkingparabola-X11/packages.i686 delete mode 100644 configs/talkingparabola-X11/packages.x86_64 delete mode 100644 configs/talkingparabola-X11/pacman.conf delete mode 100644 configs/talkingparabola-X11/root-image/etc/fstab delete mode 100644 configs/talkingparabola-X11/root-image/etc/hostname delete mode 100644 configs/talkingparabola-X11/root-image/etc/locale.conf delete mode 100644 configs/talkingparabola-X11/root-image/etc/motd delete mode 100644 configs/talkingparabola-X11/root-image/etc/pam.d/su delete mode 100644 configs/talkingparabola-X11/root-image/etc/skel/.config/autostart/orca.desktop delete mode 100755 configs/talkingparabola-X11/root-image/etc/skel/.xinitrc delete mode 100644 configs/talkingparabola-X11/root-image/etc/sudoers.d/g_wheel delete mode 100755 configs/talkingparabola-X11/root-image/etc/systemd/scripts/choose-mirror delete mode 100644 configs/talkingparabola-X11/root-image/etc/systemd/system/choose-mirror.service delete mode 100644 configs/talkingparabola-X11/root-image/etc/systemd/system/etc-pacman.d-gnupg.mount delete mode 100644 configs/talkingparabola-X11/root-image/etc/systemd/system/getty@tty1.service.d/autologin.conf delete mode 100644 configs/talkingparabola-X11/root-image/etc/systemd/system/livecd-alsa-unmuter.service delete mode 100644 configs/talkingparabola-X11/root-image/etc/systemd/system/pacman-init.service delete mode 100644 configs/talkingparabola-X11/root-image/etc/udev/rules.d/81-dhcpcd.rules delete mode 100755 configs/talkingparabola-X11/root-image/root/customize_root_image.sh delete mode 100644 configs/talkingparabola-X11/root-image/root/network.html delete mode 100755 configs/talkingparabola-X11/root-image/usr/bin/livecd-alsa-unmuter delete mode 100755 configs/talkingparabola-X11/root-image/usr/bin/pick-a-card delete mode 100755 configs/talkingparabola-X11/root-image/usr/bin/talk-to-me delete mode 100644 configs/talkingparabola-X11/root-image/usr/share/livecd-sound/asound.conf.in delete mode 100644 configs/talkingparabola-X11/root-image/usr/share/livecd-sound/functions delete mode 100644 configs/talkingparabola-X11/syslinux/parabolaiso.cfg delete mode 100644 configs/talkingparabola-X11/syslinux/parabolaiso_head.cfg delete mode 100644 configs/talkingparabola-X11/syslinux/parabolaiso_pxe32.cfg delete mode 100644 configs/talkingparabola-X11/syslinux/parabolaiso_pxe64.cfg delete mode 100644 configs/talkingparabola-X11/syslinux/parabolaiso_pxe_32_inc.cfg delete mode 100644 configs/talkingparabola-X11/syslinux/parabolaiso_pxe_both_inc.cfg delete mode 100644 configs/talkingparabola-X11/syslinux/parabolaiso_pxe_choose.cfg delete mode 100644 configs/talkingparabola-X11/syslinux/parabolaiso_sys32.cfg delete mode 100644 configs/talkingparabola-X11/syslinux/parabolaiso_sys64.cfg delete mode 100644 configs/talkingparabola-X11/syslinux/parabolaiso_sys_32_inc.cfg delete mode 100644 configs/talkingparabola-X11/syslinux/parabolaiso_sys_both_inc.cfg delete mode 100644 configs/talkingparabola-X11/syslinux/parabolaiso_sys_choose.cfg delete mode 100644 configs/talkingparabola-X11/syslinux/parabolaiso_tail.cfg delete mode 100644 configs/talkingparabola-X11/syslinux/splash.png delete mode 100644 configs/talkingparabola-X11/syslinux/splash.svg delete mode 100644 configs/talkingparabola-X11/syslinux/syslinux.cfg create mode 100644 configs/talkingparabola/airootfs/etc/fstab create mode 100644 configs/talkingparabola/airootfs/etc/hostname create mode 100644 configs/talkingparabola/airootfs/etc/locale.conf create mode 100644 configs/talkingparabola/airootfs/etc/motd create mode 100644 configs/talkingparabola/airootfs/etc/pam.d/su create mode 100644 configs/talkingparabola/airootfs/etc/sudoers.d/g_wheel create mode 100755 configs/talkingparabola/airootfs/etc/systemd/scripts/choose-mirror create mode 100644 configs/talkingparabola/airootfs/etc/systemd/system/choose-mirror.service create mode 100644 configs/talkingparabola/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount create mode 100644 configs/talkingparabola/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf create mode 100644 configs/talkingparabola/airootfs/etc/systemd/system/livecd-alsa-unmuter.service create mode 100644 configs/talkingparabola/airootfs/etc/systemd/system/pacman-init.service create mode 100644 configs/talkingparabola/airootfs/etc/udev/rules.d/81-dhcpcd.rules create mode 100755 configs/talkingparabola/airootfs/root/customize_airootfs.sh create mode 100644 configs/talkingparabola/airootfs/root/install.txt create mode 100755 configs/talkingparabola/airootfs/usr/bin/livecd-alsa-unmuter create mode 100755 configs/talkingparabola/airootfs/usr/bin/pick-a-card create mode 100755 configs/talkingparabola/airootfs/usr/bin/talk-to-me create mode 100644 configs/talkingparabola/airootfs/usr/share/livecd-sound/asound.conf.in create mode 100644 configs/talkingparabola/airootfs/usr/share/livecd-sound/functions delete mode 100644 configs/talkingparabola/aitab delete mode 100644 configs/talkingparabola/root-image/etc/fstab delete mode 100644 configs/talkingparabola/root-image/etc/hostname delete mode 100644 configs/talkingparabola/root-image/etc/locale.conf delete mode 100644 configs/talkingparabola/root-image/etc/motd delete mode 100644 configs/talkingparabola/root-image/etc/pam.d/su delete mode 100644 configs/talkingparabola/root-image/etc/sudoers.d/g_wheel delete mode 100755 configs/talkingparabola/root-image/etc/systemd/scripts/choose-mirror delete mode 100644 configs/talkingparabola/root-image/etc/systemd/system/choose-mirror.service delete mode 100644 configs/talkingparabola/root-image/etc/systemd/system/etc-pacman.d-gnupg.mount delete mode 100644 configs/talkingparabola/root-image/etc/systemd/system/getty@tty1.service.d/autologin.conf delete mode 100644 configs/talkingparabola/root-image/etc/systemd/system/livecd-alsa-unmuter.service delete mode 100644 configs/talkingparabola/root-image/etc/systemd/system/pacman-init.service delete mode 100644 configs/talkingparabola/root-image/etc/udev/rules.d/81-dhcpcd.rules delete mode 100755 configs/talkingparabola/root-image/root/customize_root_image.sh delete mode 100644 configs/talkingparabola/root-image/root/network.html delete mode 100755 configs/talkingparabola/root-image/usr/bin/livecd-alsa-unmuter delete mode 100755 configs/talkingparabola/root-image/usr/bin/pick-a-card delete mode 100755 configs/talkingparabola/root-image/usr/bin/talk-to-me delete mode 100644 configs/talkingparabola/root-image/usr/share/livecd-sound/asound.conf.in delete mode 100644 configs/talkingparabola/root-image/usr/share/livecd-sound/functions delete mode 100755 expand diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..4fa38d5 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,15 @@ +# EditorConfig configuration for archiso +# http://EditorConfig.org + +# Top-most EditorConfig file +root = true + +# Unix-style newlines without trailing whitespaces, but with a newline +# ending every file, utf-8 charset, set indent to spaces with width of four +[*] +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +charset = utf-8 +indent_style = space +indent_size = 4 diff --git a/.gitignore b/.gitignore index 0312209..5e88475 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,2 @@ - -# mkparabolaiso output dirs -work/ -out/ +*~ +parabolaiso-*.tar.gz* diff --git a/Makefile b/Makefile index 8a7ef4e..1b80915 100644 --- a/Makefile +++ b/Makefile @@ -1,57 +1,41 @@ -V=2013.09.01 +V=33 -INSTALL_SRC_DIR=parabolaiso/initcpio/install -HOOKS_SRC_DIR=parabolaiso/initcpio/hooks -SCRIPT_SRC_DIR=parabolaiso/initcpio/script +INSTALL_FILES=$(wildcard parabolaiso/initcpio/install/*) +HOOKS_FILES=$(wildcard parabolaiso/initcpio/hooks/*) +SCRIPT_FILES=$(wildcard parabolaiso/initcpio/script/*) INSTALL_DIR=$(DESTDIR)/usr/lib/initcpio/install HOOKS_DIR=$(DESTDIR)/usr/lib/initcpio/hooks SCRIPT_DIR=$(DESTDIR)/usr/lib/initcpio + +DOC_FILES=$(wildcard docs/*) + DOC_DIR=$(DESTDIR)/usr/share/doc/parabolaiso -all: install dist +all: install: install-program install-initcpio install-examples install-doc install-program: - install -D -m 755 parabolaiso/mkparabolaiso "$(DESTDIR)/usr/bin/mkparabolaiso" + install -D -m 755 parabolaiso/mkparabolaiso $(DESTDIR)/usr/bin/mkparabolaiso install-initcpio: - install -d "$(SCRIPT_DIR)" "$(HOOKS_DIR)" "$(INSTALL_DIR)" - install -m 755 -t "$(SCRIPT_DIR)" $(wildcard $(SCRIPT_SRC_DIR)/*) - install -m 644 -t "$(HOOKS_DIR)" $(wildcard $(HOOKS_SRC_DIR)/*) - install -m 644 -t "$(INSTALL_DIR)" $(wildcard $(INSTALL_SRC_DIR)/*) + install -d $(SCRIPT_DIR) $(HOOKS_DIR) $(INSTALL_DIR) + install -m 755 -t $(SCRIPT_DIR) $(SCRIPT_FILES) + install -m 644 -t $(HOOKS_DIR) $(HOOKS_FILES) + install -m 644 -t $(INSTALL_DIR) $(INSTALL_FILES) install-examples: - install -d -m 755 "$(DESTDIR)/usr/share/parabolaiso/" - cp -a --no-preserve=ownership configs "$(DESTDIR)/usr/share/parabolaiso/" + install -d -m 755 $(DESTDIR)/usr/share/parabolaiso/ + cp -a --no-preserve=ownership configs $(DESTDIR)/usr/share/parabolaiso/ install-doc: - install -d "$(DOC_DIR)" - install -m 644 -t "$(DOC_DIR)" $(wildcard docs/*) - -uninstall: uninstall-program uninstall-initcpio uninstall-examples uninstall-doc - -uninstall-program: - rm "$(DESTDIR)/usr/bin/mkparabolaiso" - -uninstall-initcpio: - $(foreach file,$(wildcard $(SCRIPT_SRC_DIR)/*),rm -r "$(subst $(SCRIPT_SRC_DIR),$(SCRIPT_DIR),$(file))";) - $(foreach file,$(wildcard $(HOOKS_SRC_DIR)/*),rm -r "$(subst $(HOOKS_SRC_DIR),$(HOOKS_DIR),$(file))";) - $(foreach file,$(wildcard $(INSTALL_SRC_DIR)/*),rm -r "$(subst $(INSTALL_SRC_DIR),$(INSTALL_DIR),$(file))";) - -uninstall-examples: - rm -rfd "$(DESTDIR)/usr/share/parabolaiso/configs" - rm -d "$(DESTDIR)/usr/share/parabolaiso" - -uninstall-doc: - rm -rf "$(DOC_DIR)" + install -d $(DOC_DIR) + install -m 644 -t $(DOC_DIR) $(DOC_FILES) dist: - ./expand $(V) dist - -dist-branches: - ./expand $(V) dist-branches + git archive --format=tar --prefix=parabolaiso-$(V)/ v$(V) | gzip -9 > parabolaiso-$(V).tar.gz + gpg --detach-sign --use-agent parabolaiso-$(V).tar.gz -.PHONY: install install-program install-initcpio install-examples install-doc dist dist-branches uninstall uninstall-program uninstall-initcpio uninstall-examples uninstall-doc +.PHONY: install install-program install-initcpio install-examples install-doc dist diff --git a/configs/lxde-openrc/airootfs/etc/X11/Xwrapper.config b/configs/lxde-openrc/airootfs/etc/X11/Xwrapper.config new file mode 100644 index 0000000..017105e --- /dev/null +++ b/configs/lxde-openrc/airootfs/etc/X11/Xwrapper.config @@ -0,0 +1 @@ +needs_root_rights = yes diff --git a/configs/lxde-openrc/airootfs/etc/conf.d/agetty.tty1 b/configs/lxde-openrc/airootfs/etc/conf.d/agetty.tty1 new file mode 100644 index 0000000..997909c --- /dev/null +++ b/configs/lxde-openrc/airootfs/etc/conf.d/agetty.tty1 @@ -0,0 +1,3 @@ +baud="38400" +term_type="linux" +agetty_options="--autologin root --noclear" diff --git a/configs/lxde-openrc/airootfs/etc/conf.d/hostname b/configs/lxde-openrc/airootfs/etc/conf.d/hostname new file mode 100644 index 0000000..5a912cd --- /dev/null +++ b/configs/lxde-openrc/airootfs/etc/conf.d/hostname @@ -0,0 +1 @@ +hostname="parabolaiso" diff --git a/configs/lxde-openrc/airootfs/etc/fstab b/configs/lxde-openrc/airootfs/etc/fstab new file mode 100644 index 0000000..e69de29 diff --git a/configs/lxde-openrc/airootfs/etc/init.d/pacman-init b/configs/lxde-openrc/airootfs/etc/init.d/pacman-init new file mode 100755 index 0000000..b646e52 --- /dev/null +++ b/configs/lxde-openrc/airootfs/etc/init.d/pacman-init @@ -0,0 +1,30 @@ +#!/usr/bin/openrc-run +# Copyright (C) 2018 Parabola Project +# Copyright (C) Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +description="Initializes Pacman keyring" + +depend() { + use haveged + after haveged +} + +start() { + # Check that there's no keyring, if there isn't, create one + if [ ! -d /etc/pacman.d/gnupg ]; then + ebegin "Initializing Pacman keyring" + pacman-key --init &> /dev/null && + pacman-key --populate ${KEYS} &> /dev/null + else + ebegin "Pacman keyring already started" + fi +} + +stop() { + # If there's a keyring, delete it + if [ -d /etc/pacman.d/gnupg ]; then + ebegin "Stoping Pacman keyring" + rm -rf /etc/pacman.d/gnupg + fi +} diff --git a/configs/lxde-openrc/airootfs/etc/locale.conf b/configs/lxde-openrc/airootfs/etc/locale.conf new file mode 100644 index 0000000..01ec548 --- /dev/null +++ b/configs/lxde-openrc/airootfs/etc/locale.conf @@ -0,0 +1 @@ +LANG=en_US.UTF-8 diff --git a/configs/lxde-openrc/airootfs/etc/motd b/configs/lxde-openrc/airootfs/etc/motd new file mode 100644 index 0000000..6742f6f --- /dev/null +++ b/configs/lxde-openrc/airootfs/etc/motd @@ -0,0 +1,17 @@ + +=============================================================================== + + Parabola GNU/Linux-libre live media _DATE_ + + To install Parabola, the system must be connected to the internet. + For instructions, enter this command: + less install.txt + + Press the function keys while holding Alt to switch virtual terminals. + This allows entering commands without closing less. + + For installation itself, enter this command: + ./install.sh + +=============================================================================== + diff --git a/configs/lxde-openrc/airootfs/etc/pam.d/su b/configs/lxde-openrc/airootfs/etc/pam.d/su new file mode 100644 index 0000000..a291042 --- /dev/null +++ b/configs/lxde-openrc/airootfs/etc/pam.d/su @@ -0,0 +1,6 @@ +#%PAM-1.0 +auth sufficient pam_rootok.so +auth sufficient pam_wheel.so trust use_uid +auth required pam_unix.so +account required pam_unix.so +session required pam_unix.so diff --git a/configs/lxde-openrc/airootfs/etc/skel/.config/lxsession/LXDE/desktop.conf b/configs/lxde-openrc/airootfs/etc/skel/.config/lxsession/LXDE/desktop.conf new file mode 100644 index 0000000..c50f484 --- /dev/null +++ b/configs/lxde-openrc/airootfs/etc/skel/.config/lxsession/LXDE/desktop.conf @@ -0,0 +1,48 @@ +[Session] +window_manager=openbox-lxde +disable_autostart=no +polkit/command=sleep 5s && lxpolkit +clipboard/command=lxclipboard +xsettings_manager/command=build-in +proxy_manager/command=build-in +keyring/command=ssh-agent +quit_manager/command=lxsession-logout +lock_manager/command=lxlock +terminal_manager/command=lxterminal + +[GTK] +sNet/ThemeName=Adwaita +sNet/IconThemeName=nuoveXT2 +sGtk/FontName=Sans 10 +iGtk/ToolbarStyle=3 +iGtk/ButtonImages=1 +iGtk/MenuImages=1 +iGtk/CursorThemeSize=18 +iXft/Antialias=1 +iXft/Hinting=1 +sXft/HintStyle=hintslight +sXft/RGBA=rgb +iNet/EnableEventSounds=1 +iNet/EnableInputFeedbackSounds=1 +sGtk/ColorScheme= +iGtk/ToolbarIconSize=3 +sGtk/CursorThemeName=DMZ-White + +[Mouse] +AccFactor=20 +AccThreshold=10 +LeftHanded=0 + +[Keyboard] +Delay=500 +Interval=30 +Beep=1 + +[State] +guess_default=true + +[Dbus] +lxde=true + +[Environment] +menu_prefix=lxde- diff --git a/configs/lxde-openrc/airootfs/etc/skel/.config/pcmanfm/LXDE/desktop-items-0.conf b/configs/lxde-openrc/airootfs/etc/skel/.config/pcmanfm/LXDE/desktop-items-0.conf new file mode 100644 index 0000000..6186fce --- /dev/null +++ b/configs/lxde-openrc/airootfs/etc/skel/.config/pcmanfm/LXDE/desktop-items-0.conf @@ -0,0 +1,14 @@ +[*] +wallpaper_mode=crop +wallpaper_common=1 +wallpaper=/etc/wallpaper.png +desktop_bg=#000000 +desktop_fg=#ffffff +desktop_shadow=#000000 +desktop_font=Sans 12 +show_wm_menu=0 +sort=mtime;ascending; +show_documents=0 +show_trash=1 +show_mounts=1 + diff --git a/configs/lxde-openrc/airootfs/etc/sudoers.d/g_wheel b/configs/lxde-openrc/airootfs/etc/sudoers.d/g_wheel new file mode 100644 index 0000000..8c45359 --- /dev/null +++ b/configs/lxde-openrc/airootfs/etc/sudoers.d/g_wheel @@ -0,0 +1 @@ +%wheel ALL=(ALL) NOPASSWD: ALL diff --git a/configs/lxde-openrc/airootfs/etc/wallpaper.png b/configs/lxde-openrc/airootfs/etc/wallpaper.png new file mode 100644 index 0000000..d2a3927 Binary files /dev/null and b/configs/lxde-openrc/airootfs/etc/wallpaper.png differ diff --git a/configs/lxde-openrc/airootfs/root/.automated_script.sh b/configs/lxde-openrc/airootfs/root/.automated_script.sh new file mode 100755 index 0000000..fb106da --- /dev/null +++ b/configs/lxde-openrc/airootfs/root/.automated_script.sh @@ -0,0 +1,34 @@ +#!/bin/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:// || "${script}" =~ ^ftp:// ]]; then + wget "${script}" --retry-connrefused -q -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/configs/lxde-openrc/airootfs/root/.codecheck b/configs/lxde-openrc/airootfs/root/.codecheck new file mode 100644 index 0000000..8b10d0c --- /dev/null +++ b/configs/lxde-openrc/airootfs/root/.codecheck @@ -0,0 +1,2 @@ +LANG=0 +XKBMAP=0 diff --git a/configs/lxde-openrc/airootfs/root/.config/dconf/user b/configs/lxde-openrc/airootfs/root/.config/dconf/user new file mode 100644 index 0000000..dab7f59 Binary files /dev/null and b/configs/lxde-openrc/airootfs/root/.config/dconf/user differ diff --git a/configs/lxde-openrc/airootfs/root/.config/gtk-2.0/gtkfilechooser.ini b/configs/lxde-openrc/airootfs/root/.config/gtk-2.0/gtkfilechooser.ini new file mode 100644 index 0000000..c6b458d --- /dev/null +++ b/configs/lxde-openrc/airootfs/root/.config/gtk-2.0/gtkfilechooser.ini @@ -0,0 +1,11 @@ +[Filechooser Settings] +LocationMode=path-bar +ShowHidden=true +ShowSizeColumn=true +GeometryX=52 +GeometryY=86 +GeometryWidth=920 +GeometryHeight=585 +SortColumn=name +SortOrder=ascending +StartupMode=recent diff --git a/configs/lxde-openrc/airootfs/root/.config/lxsession/LXDE/autostart b/configs/lxde-openrc/airootfs/root/.config/lxsession/LXDE/autostart new file mode 100644 index 0000000..3942b5a --- /dev/null +++ b/configs/lxde-openrc/airootfs/root/.config/lxsession/LXDE/autostart @@ -0,0 +1,4 @@ +@lxpanel --profile LXDE +@pcmanfm --desktop --profile LXDE +@xscreensaver -no-splash +@/root/.keymap.sh diff --git a/configs/lxde-openrc/airootfs/root/.config/volumeicon/volumeicon b/configs/lxde-openrc/airootfs/root/.config/volumeicon/volumeicon new file mode 100644 index 0000000..588b9dd --- /dev/null +++ b/configs/lxde-openrc/airootfs/root/.config/volumeicon/volumeicon @@ -0,0 +1,25 @@ +[Alsa] +card=default + +[Notification] +show_notification=true +notification_type=0 + +[StatusIcon] +stepsize=5 +onclick=xterm -e 'alsamixer' +theme=Default +use_panel_specific_icons=false +lmb_slider=false +mmb_mute=false +use_horizontal_slider=false +show_sound_level=false +use_transparent_background=false + +[Hotkeys] +up_enabled=false +down_enabled=false +mute_enabled=false +up=XF86AudioRaiseVolume +down=XF86AudioLowerVolume +mute=XF86AudioMute diff --git a/configs/lxde-openrc/airootfs/root/.keymap.sh b/configs/lxde-openrc/airootfs/root/.keymap.sh new file mode 100755 index 0000000..56eb1dc --- /dev/null +++ b/configs/lxde-openrc/airootfs/root/.keymap.sh @@ -0,0 +1,116 @@ +#!/bin/bash + +list_keymaps() { +cat <> ~/.codecheck +fi diff --git a/configs/lxde-openrc/airootfs/root/.language.sh b/configs/lxde-openrc/airootfs/root/.language.sh new file mode 100755 index 0000000..11e986e --- /dev/null +++ b/configs/lxde-openrc/airootfs/root/.language.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +#Comprobe if language was selected +code=$(cat ~/.codecheck | grep LANG= | tail --bytes 2) +if [ $code = "0" ]; then + lang=$(dialog --stdout --backtitle "System language selection" --menu "Choose your language:" 15 40 10 \ + "en_US.UTF-8" "English" \ + "gl_ES.UTF-8" "Galego" \ + "es_ES.UTF-8" "Spanish" \ + "pt_BR.UTF-8" "Brazilian Portuguese" \ + "pl_PL.UTF-8" "Polish" \ + "it_IT.UTF-8" "Italian" \ + "fr_FR.UTF-8" "French" \ + "eo" "Esperanto") + + #Copy locale in locale.conf + [ $lang = "" ] || echo "LANG=$lang" > /etc/locale.conf + + #Put a new line confirm that language was selected + sed -i '/LANG=./d' ~/.codecheck + echo "LANG=1" >> ~/.codecheck + + #Copy scripts to install in that language + case ${lang/_*/} in + en|gl|es|pt) cp -a ~/.scriptsInstallation/language/${lang/_*/}/* ~/.scriptsInstallation/ + cp ~/.scriptsInstallation/install.sh ~/ + ;; + *) cp -a ~/.scriptsInstallation/language/en/* ~/.scriptsInstallation/ + cp ~/.scriptsInstallation/install.sh ~/ + ;; + esac +fi diff --git a/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/en/install.sh b/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/en/install.sh new file mode 100755 index 0000000..4120079 --- /dev/null +++ b/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/en/install.sh @@ -0,0 +1,227 @@ +#!/bin/bash +#Temporal is a file that contains parameters to use when access to chroot + +if [ ! -f ~/.scriptsInstallation/.pacman ]; then + pacman -Sy parabola-keyring archlinux-keyring --noconfirm + pacman-key --populate parabola archlinux + pacman-key --refresh-keys + case $? in + 0) touch ~/.scriptsInstallation/.pacman + ;; + *) false + ;; + esac +fi + +partition(){ + + #Search and show the Hard Disks to select + aux=$(ls /dev/sd?) + index=0 + for i in $aux; do + hdds[$index]="${i} ${i#/*/} off" + index=$((index+1)) + done + + hdd=$(dialog --stdout --radiolist "Select Hard Disk" 20 70 50 ${hdds[@]}) + + #If exist the line delete + if (cat ~/.scriptsInstallation/temporal | grep "hdd=") &>/dev/null + then + sed -i -e '/hdd=*/d' ~/.scriptsInstallation/temporal + fi + + #And add the new line with new parameter + echo "hdd=$hdd" >> ~/.scriptsInstallation/temporal + + selection=$(dialog --stdout --menu "Partitioning method" 20 70 50 \ + 1 "Use all disk with swap (1GB) and /" \ + 2 "Use gparted to customize" ) + + case $selection in + 1) + umount /mnt &> /dev/null + #Create msdos partition table + parted -s $hdd -- mklabel msdos + + #Create partition swap and / + parted -s $hdd -- mkpart primary 1MiB 1000MiB mkpart primary 1000MiB -1s + + #Boot option partition / + parted -s $hdd -- set 2 boot on + + #Format and partitions and mount / + (echo t; echo 1; echo 82; echo w) | fdisk $hdd + mkswap ${hdd}1 + mkfs.ext4 ${hdd}2 + mount ${hdd}2 /mnt + ;; + 2) + gparted $hdd + + #Search and show the partitions that select before. + aux=$(ls $hdd?) + index=0; + for i in $aux; do + partitions[$index]="${i} ${i#/*/} off" + index=$((index+1)) + done + + partition=$(dialog --stdout --radiolist "Mount / Partition" 20 70 50 ${partitions[@]}) + + #Mount partition / + umount /mnt &> /dev/null + mount $partition /mnt + + #Ask if you want mount other partitions + other=0 + while [ $other != 3 ]; do + other=$(dialog --stdout --menu "Mount other partition?" 20 70 50 1 "/home" 2 "/boot" 3 "No") + + case $other in + 1) + umount /mnt/home &> /dev/null + mkdir /mnt/home &> /dev/null + mount $(dialog --stdout --radiolist "Mount /home Partition" 20 70 50 ${partitions[@]}) /mnt/home + ;; + 2) + umount /mnt/boot &> /dev/null + mkdir /mnt/boot &> /dev/null + mount $(dialog --stdout --radiolist "Mount /boot Partition" 20 70 50 ${partitions[@]}) /mnt/boot + ;; + *) + other=3 + ;; + esac + done + ;; + esac +} + + +option=0 +while [ option != 7 ]; do + option=$(dialog --stdout --menu "Parabola Installation CLI" 20 70 50 \ + 1 "Format and Mount Partitions" \ + 2 "Install Base System" \ + 3 "Install GRUB" \ + 4 "System Configure" \ + 5 "Create User Account" \ + 6 "(Optional) Install Live DVD Desktop/Applications" \ + 7 "Exit" ) + + case $option in + 1) + partition + ;; + 2) + #Install base system + pacstrap /mnt base-openrc + pacstrap /mnt dialog + ;; + 3) + #Install grub + pacstrap /mnt grub + ;; + 4) + #Generate fstab and acces to chroot to do System Config + genfstab -p /mnt >> /mnt/etc/fstab + cp ~/.scriptsInstallation/temporal /mnt + cp ~/.scriptsInstallation/systemConfig.sh /mnt + chmod +x /mnt/systemConfig.sh + arch-chroot /mnt /systemConfig.sh + rm -r /mnt/systemConfig.sh + ;; + 5) + #Create a new username and save in temporal, to use after + if (cat ~/.scriptsInstallation/temporal | grep "userName=") &>/dev/null + then + sed -i -e '/userName=*/d' ~/.scriptsInstallation/temporal + fi + + echo "userName=$(dialog --stdout --inputbox "Enter an User Name" 8 40)" >> ~/.scriptsInstallation/temporal + cp ~/.scriptsInstallation/temporal /mnt + cp ~/.scriptsInstallation/userAccount.sh /mnt + chmod +x /mnt/userAccount.sh + arch-chroot /mnt /userAccount.sh + rm -r /mnt/userAccount.sh + ;; + 6) + #Packages to the X11 live + packages=( "xorg-server" + "xf86-input-evdev" + "xf86-input-synaptics" + "xf86-video-ati" + "xf86-video-dummy" + "xf86-video-fbdev" + "xf86-video-intel" + "xf86-video-nouveau" + "xf86-video-openchrome" + "xf86-video-sisusb" + "xf86-video-vesa" + "xf86-video-vmware" + "xf86-video-voodoo" + "xf86-video-qxl" + "xorg-xinit" + "gst-plugins-good" + "gst-libav" + "lxde" + "volumeicon" + "zenity" + "octopi" + "pulseaudio-alsa" + "alsa-utils" + "networkmanager-elogind" + "network-manager-applet" + "ath9k-htc-firmware" + "iceweasel" + "icedove" + "pidgin" + "gparted" + "smplayer" + "epdfview" + "gpicview" + "abiword" + "gnumeric" + "leafpad" + "galculator-gtk2" + "xarchiver" + "openrc-desktop" + "polkit-elogind" + "gvfs-mtp" + "gvfs-gphoto2" + "xdg-user-dirs" + "gnome-screenshot" + ) + + #Install packages + pacman -Sy -r /mnt ${packages[@]} --needed --noconfirm + user=$(cat ~/.scriptsInstallation/temporal | grep "userName" ) + + #Copy skel in the new system and desktop's background + cp -a /etc/skel/ /mnt/etc/ + cp -a /etc/wallpaper.png /mnt/etc/wallpaper.png + + #Puts the XKBMAP, start X11 automatically and icewm desktop + echo "setxkbmap $(cat ~/.codecheck | grep XKBMAP= | cut -d '=' -f 2)" > /mnt/etc/skel/.xinitrc + echo "exec startlxde" >> /mnt/etc/skel/.xinitrc + echo "startx" >> /mnt/etc/skel/.bash_profile + chmod +x /mnt/etc/skel/.xinitrc + cp -a /mnt/etc/skel/.[a-z]* /mnt/home/${user#*=}/ + cp -a ~/.scriptsInstallation/x11.sh /mnt + + #Enable services with OpenRC and configure other stuff + chmod +x /mnt/x11.sh + arch-chroot /mnt /x11.sh + rm /mnt/x11.sh + ;; + *) + #Delete temporal file and umount partitions + rm -r /mnt/temporal + umount /mnt/boot &> /dev/null + umount /mnt/home &> /dev/null + umount /mnt &> /dev/null + exit + ;; + esac +done diff --git a/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/en/systemConfig.sh b/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/en/systemConfig.sh new file mode 100755 index 0000000..d5195fb --- /dev/null +++ b/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/en/systemConfig.sh @@ -0,0 +1,271 @@ +#!/bin/bash + +HOSTNAME=$(dialog --stdout --inputbox "Enter Hostname:" 8 40) +sed 's|localhost|'"${HOSTNAME}"'|' -i /etc/conf.d/hostname + +ln -s /usr/share/zoneinfo/$(dialog --stdout --inputbox "Enter your Zone Time:\nFor example: Europe/Athens" 8 40) /etc/localtime + +keymaps=( + "ANSI-dvorak ANSI-dvorak off" + "amiga-de amiga-de off" + "amiga-us amiga-us off" + "applkey applkey off" + "atari-de atari-de off" + "atari-se atari-se off" + "atari-uk-falcon atari-uk-falcon off" + "atari-us atari-us off" + "azerty azerty off" + "backspace backspace off" + "bashkir bashkir off" + "be-latin1 be-latin1 off" + "bg-cp1251 bg-cp1251 off" + "bg-cp855 bg-cp855 off" + "bg_bds-cp1251 bg_bds-cp1251 off" + "bg_bds-utf8 bg_bds-utf8 off" + "bg_pho-cp1251 bg_pho-cp1251 off" + "bg_pho-utf8 bg_pho-utf8 off" + "br-abnt br-abnt off" + "br-abnt2 br-abnt2 off" + "br-latin1-abnt2 br-latin1-abnt2 off" + "br-latin1-us br-latin1-us off" + "by by off" + "by-cp1251 by-cp1251 off" + "bywin-cp1251 bywin-cp1251 off" + "cf cf off" + "colemak colemak off" + "croat croat off" + "ctrl ctrl off" + "cz cz off" + "cz-cp1250 cz-cp1250 off" + "cz-lat2 cz-lat2 off" + "cz-lat2-prog cz-lat2-prog off" + "cz-qwertz cz-qwertz off" + "cz-us-qwertz cz-us-qwertz off" + "de de off" + "de-latin1 de-latin1 off" + "de-latin1-nodeadkeys de-latin1-nodeadkeys off" + "de-mobii de-mobii off" + "de_CH-latin1 de_CH-latin1 off" + "de_alt_UTF-8 de_alt_UTF-8 off" + "defkeymap defkeymap off" + "defkeymap_V1.0 defkeymap_V1.0 off" + "dk dk off" + "dk-latin1 dk-latin1 off" + "dvorak dvorak off" + "dvorak-ca-fr dvorak-ca-fr off" + "dvorak-es dvorak-es off" + "dvorak-fr dvorak-fr off" + "dvorak-l dvorak-l off" + "dvorak-r dvorak-r off" + "dvorak-ru dvorak-ru off" + "dvorak-sv-a1 dvorak-sv-a1 off" + "dvorak-sv-a5 dvorak-sv-a5 off" + "dvorak-uk dvorak-uk off" + "emacs emacs off" + "emacs2 emacs2 off" + "es es off" + "es-cp850 es-cp850 off" + "es-olpc es-olpc off" + "et et off" + "et-nodeadkeys et-nodeadkeys off" + "euro euro off" + "euro1 euro1 off" + "euro2 euro2 off" + "fi fi off" + "fr fr off" + "fr-bepo fr-bepo off" + "fr-bepo-latin9 fr-bepo-latin9 off" + "fr-latin1 fr-latin1 off" + "fr-latin9 fr-latin9 off" + "fr-pc fr-pc off" + "fr_CH fr_CH off" + "fr_CH-latin1 fr_CH-latin1 off" + "gr gr off" + "gr-pc gr-pc off" + "hu hu off" + "hu101 hu101 off" + "il il off" + "il-heb il-heb off" + "il-phonetic il-phonetic off" + "is-latin1 is-latin1 off" + "is-latin1-us is-latin1-us off" + "it it off" + "it-ibm it-ibm off" + "it2 it2 off" + "jp106 jp106 off" + "kazakh kazakh off" + "keypad keypad off" + "ky_alt_sh-UTF-8 ky_alt_sh-UTF-8 off" + "kyrgyz kyrgyz off" + "la-latin1 la-latin1 off" + "lt lt off" + "lt.baltic lt.baltic off" + "lt.l4 lt.l4 off" + "lv lv off" + "lv-tilde lv-tilde off" + "mac-be mac-be off" + "mac-de-latin1 mac-de-latin1 off" + "mac-de-latin1-nodeadkeys mac-de-latin1-nodeadkeys off" + "mac-de_CH mac-de_CH off" + "mac-dk-latin1 mac-dk-latin1 off" + "mac-dvorak mac-dvorak off" + "mac-es mac-es off" + "mac-euro mac-euro off" + "mac-euro2 mac-euro2 off" + "mac-fi-latin1 mac-fi-latin1 off" + "mac-fr mac-fr off" + "mac-fr_CH-latin1 mac-fr_CH-latin1 off" + "mac-it mac-it off" + "mac-pl mac-pl off" + "mac-pt-latin1 mac-pt-latin1 off" + "mac-se mac-se off" + "mac-template mac-template off" + "mac-uk mac-uk off" + "mac-us mac-us off" + "mk mk off" + "mk-cp1251 mk-cp1251 off" + "mk-utf mk-utf off" + "mk0 mk0 off" + "nl nl off" + "nl2 nl2 off" + "no no off" + "no-dvorak no-dvorak off" + "no-latin1 no-latin1 off" + "pc110 pc110 off" + "pl pl off" + "pl1 pl1 off" + "pl2 pl2 off" + "pl3 pl3 off" + "pl4 pl4 off" + "pt-latin1 pt-latin1 off" + "pt-latin9 pt-latin9 off" + "pt-olpc pt-olpc off" + "ro ro off" + "ro_std ro_std off" + "ro_win ro_win off" + "ru ru off" + "ru-cp1251 ru-cp1251 off" + "ru-ms ru-ms off" + "ru-yawerty ru-yawerty off" + "ru1 ru1 off" + "ru2 ru2 off" + "ru3 ru3 off" + "ru4 ru4 off" + "ru_win ru_win off" + "ruwin_alt-CP1251 ruwin_alt-CP1251 off" + "ruwin_alt-KOI8-R ruwin_alt-KOI8-R off" + "ruwin_alt-UTF-8 ruwin_alt-UTF-8 off" + "ruwin_alt_sh-UTF-8 ruwin_alt_sh-UTF-8 off" + "ruwin_cplk-CP1251 ruwin_cplk-CP1251 off" + "ruwin_cplk-KOI8-R ruwin_cplk-KOI8-R off" + "ruwin_cplk-UTF-8 ruwin_cplk-UTF-8 off" + "ruwin_ct_sh-CP1251 ruwin_ct_sh-CP1251 off" + "ruwin_ct_sh-KOI8-R ruwin_ct_sh-KOI8-R off" + "ruwin_ct_sh-UTF-8 ruwin_ct_sh-UTF-8 off" + "ruwin_ctrl-CP1251 ruwin_ctrl-CP1251 off" + "ruwin_ctrl-KOI8-R ruwin_ctrl-KOI8-R off" + "ruwin_ctrl-UTF-8 ruwin_ctrl-UTF-8 off" + "se-fi-ir209 se-fi-ir209 off" + "se-fi-lat6 se-fi-lat6 off" + "se-ir209 se-ir209 off" + "se-lat6 se-lat6 off" + "sg sg off" + "sg-latin1 sg-latin1 off" + "sg-latin1-lk450 sg-latin1-lk450 off" + "sk-prog-qwerty sk-prog-qwerty off" + "sk-prog-qwertz sk-prog-qwertz off" + "sk-qwerty sk-qwerty off" + "sk-qwertz sk-qwertz off" + "slovene slovene off" + "sr-cy sr-cy off" + "sun-pl sun-pl off" + "sun-pl-altgraph sun-pl-altgraph off" + "sundvorak sundvorak off" + "sunkeymap sunkeymap off" + "sunt4-es sunt4-es off" + "sunt4-fi-latin1 sunt4-fi-latin1 off" + "sunt4-no-latin1 sunt4-no-latin1 off" + "sunt5-cz-us sunt5-cz-us off" + "sunt5-de-latin1 sunt5-de-latin1 off" + "sunt5-es sunt5-es off" + "sunt5-fi-latin1 sunt5-fi-latin1 off" + "sunt5-fr-latin1 sunt5-fr-latin1 off" + "sunt5-ru sunt5-ru off" + "sunt5-uk sunt5-uk off" + "sunt5-us-cz sunt5-us-cz off" + "sunt6-uk sunt6-uk off" + "sv-latin1 sv-latin1 off" + "tj_alt-UTF8 tj_alt-UTF8 off" + "tr_f-latin5 tr_f-latin5 off" + "tr_q-latin5 tr_q-latin5 off" + "tralt tralt off" + "trf trf off" + "trf-fgGIod trf-fgGIod off" + "trq trq off" + "ttwin_alt-UTF-8 ttwin_alt-UTF-8 off" + "ttwin_cplk-UTF-8 ttwin_cplk-UTF-8 off" + "ttwin_ct_sh-UTF-8 ttwin_ct_sh-UTF-8 off" + "ttwin_ctrl-UTF-8 ttwin_ctrl-UTF-8 off" + "ua ua off" + "ua-cp1251 ua-cp1251 off" + "ua-utf ua-utf off" + "ua-utf-ws ua-utf-ws off" + "ua-ws ua-ws off" + "uk uk off" + "unicode unicode off" + "us us on" + "us-acentos us-acentos off" + "wangbe wangbe off" + "wangbe2 wangbe2 off" + "windowkeys windowkeys off" +) + +echo "KEYMAP=$(dialog --stdout --radiolist "Select Keymap" 20 70 50 ${keymaps[@]})" > /etc/vconsole.conf + +aux=$(sed -e '1,23d' -e 's/#//g' -e 's/ /#/g' -e 's/..$//' /etc/locale.gen) +index=0 +for i in $aux; do + i=$(echo $i | sed -e 's/#/ /g') + locales+=("$i" "$i" off) + if [[ $i == "en_US.UTF-8 UTF-8" || $i == "en_US ISO-8859-1" ]]; then + locales[$index]="$i" + locales[$((index+1))]="$i" + locales[$((index+2))]="on" + fi + index=$((index+3)) +done + +locale=$(dialog --stdout --checklist "Select Locales" 20 70 50 "${locales[@]}") +locale=$(echo ${locale} | sed -e 's/" "/\n/g' -e 's/ /#/g' -e 's/"//g') + +for i in ${locale[@]}; do + i=$(echo $i | sed -e 's/#/ /g') + sed -i -e "s/#$i/$i/g" /etc/locale.gen +done + +locale-gen + +aux=$(locale -a) +index=0 +for i in $aux; do + langs+=("$i" "$i" on) + index=$((index+1)) +done + +echo "LANG=$(dialog --stdout --radiolist "Select your language" 20 70 50 ${langs[@]})" > /etc/locale.conf + +mkinitcpio -p linux-libre + +hdd=$(cat /temporal | grep 'hdd=') +grub-install ${hdd#*=} +grub-mkconfig -o /boot/grub/grub.cfg + +password=$(dialog --stdout --passwordbox "Insert root password" 8 40) + +while [[ $password != $password2 ]]; do + password2=$(dialog --stdout --passwordbox "Repeat root password" 8 40) +done + +usermod -p $(openssl passwd ${password}) root + +exit diff --git a/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/en/userAccount.sh b/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/en/userAccount.sh new file mode 100755 index 0000000..a9551d8 --- /dev/null +++ b/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/en/userAccount.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +user=$(cat /temporal | grep "userName") + +password=$(dialog --stdout --passwordbox "Insert ${user#*=} password" 8 40) + +while [[ $password != $password2 ]]; do + password2=$(dialog --stdout --passwordbox "Reply password" 8 40) +done + +useradd -m -g users -G "wheel" -s /bin/bash -p $(openssl passwd $password) ${user#*=} + +exit diff --git a/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/es/install.sh b/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/es/install.sh new file mode 100755 index 0000000..195c2a2 --- /dev/null +++ b/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/es/install.sh @@ -0,0 +1,227 @@ +#!/bin/bash +#Temporal is a file that contains parameters to use when access to chroot + +if [ ! -f ~/.scriptsInstallation/.pacman ]; then + pacman -Sy parabola-keyring archlinux-keyring --noconfirm + pacman-key --populate parabola archlinux + pacman-key --refresh-keys + case $? in + 0) touch ~/.scriptsInstallation/.pacman + ;; + *) false + ;; + esac +fi + +partition(){ + + #Search and show the Hard Disks to select + aux=$(ls /dev/sd?) + index=0 + for i in $aux; do + hdds[$index]="${i} ${i#/*/} off" + index=$((index+1)) + done + + hdd=$(dialog --stdout --radiolist "Selecciona Disco Duro" 20 70 50 ${hdds[@]}) + + #If exist the line delete + if (cat ~/.scriptsInstallation/temporal | grep "hdd=") &>/dev/null + then + sed -i -e '/hdd=*/d' ~/.scriptsInstallation/temporal + fi + + #And add the new line with new parameter + echo "hdd=$hdd" >> ~/.scriptsInstallation/temporal + + selection=$(dialog --stdout --menu "Metodo de Particionado" 20 70 50 \ + 1 "Usar todo el disco con swap (1GB) y /" \ + 2 "Usar gparted para personalizar" ) + + case $selection in + 1) + umount /mnt &> /dev/null + #Create msdos partition table + parted -s $hdd -- mklabel msdos + + #Create partition swap and / + parted -s $hdd -- mkpart primary 1MiB 1000MiB mkpart primary 1000MiB -1s + + #Boot option partition / + parted -s $hdd -- set 2 boot on + + #Format and partitions and mount / + (echo t; echo 1; echo 82; echo w) | fdisk $hdd + mkswap ${hdd}1 + mkfs.ext4 ${hdd}2 + mount ${hdd}2 /mnt + ;; + 2) + gparted $hdd + + #Search and show the partitions that select before. + aux=$(ls $hdd?) + index=0; + for i in $aux; do + partitions[$index]="${i} ${i#/*/} off" + index=$((index+1)) + done + + partition=$(dialog --stdout --radiolist "Montar particion /" 20 70 50 ${partitions[@]}) + + #Mount partition / + umount /mnt &> /dev/null + mount $partition /mnt + + #Ask if you want mount other partitions + other=0 + while [ $other != 3 ]; do + other=$(dialog --stdout --menu "¿Montar otra particion?" 20 70 50 1 "/home" 2 "/boot" 3 "No") + + case $other in + 1) + umount /mnt/home &> /dev/null + mkdir /mnt/home &> /dev/null + mount $(dialog --stdout --radiolist "Montar particion /home" 20 70 50 ${partitions[@]}) /mnt/home + ;; + 2) + umount /mnt/boot &> /dev/null + mkdir /mnt/boot &> /dev/null + mount $(dialog --stdout --radiolist "Mount particion /boot" 20 70 50 ${partitions[@]}) /mnt/boot + ;; + *) + other=3 + ;; + esac + done + ;; + esac +} + + +option=0 +while [ option != 7 ]; do + option=$(dialog --stdout --menu "Instalación CLI de Parabola" 20 70 50 \ + 1 "Formatear y Montar Particiones" \ + 2 "Instalar Sistema Base" \ + 3 "Instalar GRUB" \ + 4 "Configuración del Sistema" \ + 5 "Crear Cuenta de Usuario" \ + 6 "(Opcional) Instalar Escritorio/Aplicaciones del Live DVD" \ + 7 "Salir" ) + + case $option in + 1) + partition + ;; + 2) + #Install base system + pacstrap /mnt base-openrc + pacstrap /mnt dialog + ;; + 3) + #Install grub + pacstrap /mnt grub + ;; + 4) + #Generate fstab and acces to chroot to do System Config + genfstab -p /mnt >> /mnt/etc/fstab + cp ~/.scriptsInstallation/temporal /mnt + cp ~/.scriptsInstallation/systemConfig.sh /mnt + chmod +x /mnt/systemConfig.sh + arch-chroot /mnt /systemConfig.sh + rm -r /mnt/systemConfig.sh + ;; + 5) + #Create a new username and save in temporal, to use after + if (cat ~/.scriptsInstallation/temporal | grep "userName=") &>/dev/null + then + sed -i -e '/userName=*/d' ~/.scriptsInstallation/temporal + fi + + echo "userName=$(dialog --stdout --inputbox "Introduce nombre de usuario" 8 40)" >> ~/.scriptsInstallation/temporal + cp ~/.scriptsInstallation/temporal /mnt + cp ~/.scriptsInstallation/userAccount.sh /mnt + chmod +x /mnt/userAccount.sh + arch-chroot /mnt /userAccount.sh + rm -r /mnt/userAccount.sh + ;; + 6) + #Packages to the X11 live + packages=( "xorg-server" + "xf86-input-evdev" + "xf86-input-synaptics" + "xf86-video-ati" + "xf86-video-dummy" + "xf86-video-fbdev" + "xf86-video-intel" + "xf86-video-nouveau" + "xf86-video-openchrome" + "xf86-video-sisusb" + "xf86-video-vesa" + "xf86-video-vmware" + "xf86-video-voodoo" + "xf86-video-qxl" + "xorg-xinit" + "gst-plugins-good" + "gst-libav" + "lxde" + "volumeicon" + "zenity" + "octopi" + "pulseaudio-alsa" + "alsa-utils" + "networkmanager-elogind" + "network-manager-applet" + "ath9k-htc-firmware" + "iceweasel" + "icedove" + "pidgin" + "gparted" + "smplayer" + "epdfview" + "gpicview" + "abiword" + "gnumeric" + "leafpad" + "galculator-gtk2" + "xarchiver" + "openrc-desktop" + "polkit-elogind" + "gvfs-mtp" + "gvfs-gphoto2" + "xdg-user-dirs" + "gnome-screenshot" + ) + + #Install packages + pacman -Sy -r /mnt ${packages[@]} --needed --noconfirm + user=$(cat ~/.scriptsInstallation/temporal | grep "userName" ) + + #Copy skel in the new system and desktop's background + cp -a /etc/skel/ /mnt/etc/ + cp -a /etc/wallpaper.png /mnt/etc/wallpaper.png + + #Puts the XKBMAP, start X11 automatically and icewm desktop + echo "setxkbmap $(cat ~/.codecheck | grep XKBMAP= | cut -d '=' -f 2)" > /mnt/etc/skel/.xinitrc + echo "exec startlxde" >> /mnt/etc/skel/.xinitrc + echo "startx" >> /mnt/etc/skel/.bash_profile + chmod +x /mnt/etc/skel/.xinitrc + cp -a /mnt/etc/skel/.[a-z]* /mnt/home/${user#*=}/ + cp -a ~/.scriptsInstallation/x11.sh /mnt + + #Enable services with OpenRC and configure other stuff + chmod +x /mnt/x11.sh + arch-chroot /mnt /x11.sh + rm /mnt/x11.sh + ;; + *) + #Delete temporal file and umount partitions + rm -r /mnt/temporal + umount /mnt/boot &> /dev/null + umount /mnt/home &> /dev/null + umount /mnt &> /dev/null + exit + ;; + esac +done diff --git a/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/es/systemConfig.sh b/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/es/systemConfig.sh new file mode 100755 index 0000000..773d10c --- /dev/null +++ b/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/es/systemConfig.sh @@ -0,0 +1,271 @@ +#!/bin/bash + +HOSTNAME=$(dialog --stdout --inputbox "Introduce el nombre del sistema:" 8 40) +sed 's|localhost|'"${HOSTNAME}"'|' -i /etc/conf.d/hostname + +ln -s /usr/share/zoneinfo/$(dialog --stdout --inputbox "Introduce la Zona Horaria:\nPor ejemplo: Europe/Athens" 8 40) /etc/localtime + +keymaps=( + "ANSI-dvorak ANSI-dvorak off" + "amiga-de amiga-de off" + "amiga-us amiga-us off" + "applkey applkey off" + "atari-de atari-de off" + "atari-se atari-se off" + "atari-uk-falcon atari-uk-falcon off" + "atari-us atari-us off" + "azerty azerty off" + "backspace backspace off" + "bashkir bashkir off" + "be-latin1 be-latin1 off" + "bg-cp1251 bg-cp1251 off" + "bg-cp855 bg-cp855 off" + "bg_bds-cp1251 bg_bds-cp1251 off" + "bg_bds-utf8 bg_bds-utf8 off" + "bg_pho-cp1251 bg_pho-cp1251 off" + "bg_pho-utf8 bg_pho-utf8 off" + "br-abnt br-abnt off" + "br-abnt2 br-abnt2 off" + "br-latin1-abnt2 br-latin1-abnt2 off" + "br-latin1-us br-latin1-us off" + "by by off" + "by-cp1251 by-cp1251 off" + "bywin-cp1251 bywin-cp1251 off" + "cf cf off" + "colemak colemak off" + "croat croat off" + "ctrl ctrl off" + "cz cz off" + "cz-cp1250 cz-cp1250 off" + "cz-lat2 cz-lat2 off" + "cz-lat2-prog cz-lat2-prog off" + "cz-qwertz cz-qwertz off" + "cz-us-qwertz cz-us-qwertz off" + "de de off" + "de-latin1 de-latin1 off" + "de-latin1-nodeadkeys de-latin1-nodeadkeys off" + "de-mobii de-mobii off" + "de_CH-latin1 de_CH-latin1 off" + "de_alt_UTF-8 de_alt_UTF-8 off" + "defkeymap defkeymap off" + "defkeymap_V1.0 defkeymap_V1.0 off" + "dk dk off" + "dk-latin1 dk-latin1 off" + "dvorak dvorak off" + "dvorak-ca-fr dvorak-ca-fr off" + "dvorak-es dvorak-es off" + "dvorak-fr dvorak-fr off" + "dvorak-l dvorak-l off" + "dvorak-r dvorak-r off" + "dvorak-ru dvorak-ru off" + "dvorak-sv-a1 dvorak-sv-a1 off" + "dvorak-sv-a5 dvorak-sv-a5 off" + "dvorak-uk dvorak-uk off" + "emacs emacs off" + "emacs2 emacs2 off" + "es es off" + "es-cp850 es-cp850 off" + "es-olpc es-olpc off" + "et et off" + "et-nodeadkeys et-nodeadkeys off" + "euro euro off" + "euro1 euro1 off" + "euro2 euro2 off" + "fi fi off" + "fr fr off" + "fr-bepo fr-bepo off" + "fr-bepo-latin9 fr-bepo-latin9 off" + "fr-latin1 fr-latin1 off" + "fr-latin9 fr-latin9 off" + "fr-pc fr-pc off" + "fr_CH fr_CH off" + "fr_CH-latin1 fr_CH-latin1 off" + "gr gr off" + "gr-pc gr-pc off" + "hu hu off" + "hu101 hu101 off" + "il il off" + "il-heb il-heb off" + "il-phonetic il-phonetic off" + "is-latin1 is-latin1 off" + "is-latin1-us is-latin1-us off" + "it it off" + "it-ibm it-ibm off" + "it2 it2 off" + "jp106 jp106 off" + "kazakh kazakh off" + "keypad keypad off" + "ky_alt_sh-UTF-8 ky_alt_sh-UTF-8 off" + "kyrgyz kyrgyz off" + "la-latin1 la-latin1 off" + "lt lt off" + "lt.baltic lt.baltic off" + "lt.l4 lt.l4 off" + "lv lv off" + "lv-tilde lv-tilde off" + "mac-be mac-be off" + "mac-de-latin1 mac-de-latin1 off" + "mac-de-latin1-nodeadkeys mac-de-latin1-nodeadkeys off" + "mac-de_CH mac-de_CH off" + "mac-dk-latin1 mac-dk-latin1 off" + "mac-dvorak mac-dvorak off" + "mac-es mac-es off" + "mac-euro mac-euro off" + "mac-euro2 mac-euro2 off" + "mac-fi-latin1 mac-fi-latin1 off" + "mac-fr mac-fr off" + "mac-fr_CH-latin1 mac-fr_CH-latin1 off" + "mac-it mac-it off" + "mac-pl mac-pl off" + "mac-pt-latin1 mac-pt-latin1 off" + "mac-se mac-se off" + "mac-template mac-template off" + "mac-uk mac-uk off" + "mac-us mac-us off" + "mk mk off" + "mk-cp1251 mk-cp1251 off" + "mk-utf mk-utf off" + "mk0 mk0 off" + "nl nl off" + "nl2 nl2 off" + "no no off" + "no-dvorak no-dvorak off" + "no-latin1 no-latin1 off" + "pc110 pc110 off" + "pl pl off" + "pl1 pl1 off" + "pl2 pl2 off" + "pl3 pl3 off" + "pl4 pl4 off" + "pt-latin1 pt-latin1 off" + "pt-latin9 pt-latin9 off" + "pt-olpc pt-olpc off" + "ro ro off" + "ro_std ro_std off" + "ro_win ro_win off" + "ru ru off" + "ru-cp1251 ru-cp1251 off" + "ru-ms ru-ms off" + "ru-yawerty ru-yawerty off" + "ru1 ru1 off" + "ru2 ru2 off" + "ru3 ru3 off" + "ru4 ru4 off" + "ru_win ru_win off" + "ruwin_alt-CP1251 ruwin_alt-CP1251 off" + "ruwin_alt-KOI8-R ruwin_alt-KOI8-R off" + "ruwin_alt-UTF-8 ruwin_alt-UTF-8 off" + "ruwin_alt_sh-UTF-8 ruwin_alt_sh-UTF-8 off" + "ruwin_cplk-CP1251 ruwin_cplk-CP1251 off" + "ruwin_cplk-KOI8-R ruwin_cplk-KOI8-R off" + "ruwin_cplk-UTF-8 ruwin_cplk-UTF-8 off" + "ruwin_ct_sh-CP1251 ruwin_ct_sh-CP1251 off" + "ruwin_ct_sh-KOI8-R ruwin_ct_sh-KOI8-R off" + "ruwin_ct_sh-UTF-8 ruwin_ct_sh-UTF-8 off" + "ruwin_ctrl-CP1251 ruwin_ctrl-CP1251 off" + "ruwin_ctrl-KOI8-R ruwin_ctrl-KOI8-R off" + "ruwin_ctrl-UTF-8 ruwin_ctrl-UTF-8 off" + "se-fi-ir209 se-fi-ir209 off" + "se-fi-lat6 se-fi-lat6 off" + "se-ir209 se-ir209 off" + "se-lat6 se-lat6 off" + "sg sg off" + "sg-latin1 sg-latin1 off" + "sg-latin1-lk450 sg-latin1-lk450 off" + "sk-prog-qwerty sk-prog-qwerty off" + "sk-prog-qwertz sk-prog-qwertz off" + "sk-qwerty sk-qwerty off" + "sk-qwertz sk-qwertz off" + "slovene slovene off" + "sr-cy sr-cy off" + "sun-pl sun-pl off" + "sun-pl-altgraph sun-pl-altgraph off" + "sundvorak sundvorak off" + "sunkeymap sunkeymap off" + "sunt4-es sunt4-es off" + "sunt4-fi-latin1 sunt4-fi-latin1 off" + "sunt4-no-latin1 sunt4-no-latin1 off" + "sunt5-cz-us sunt5-cz-us off" + "sunt5-de-latin1 sunt5-de-latin1 off" + "sunt5-es sunt5-es off" + "sunt5-fi-latin1 sunt5-fi-latin1 off" + "sunt5-fr-latin1 sunt5-fr-latin1 off" + "sunt5-ru sunt5-ru off" + "sunt5-uk sunt5-uk off" + "sunt5-us-cz sunt5-us-cz off" + "sunt6-uk sunt6-uk off" + "sv-latin1 sv-latin1 off" + "tj_alt-UTF8 tj_alt-UTF8 off" + "tr_f-latin5 tr_f-latin5 off" + "tr_q-latin5 tr_q-latin5 off" + "tralt tralt off" + "trf trf off" + "trf-fgGIod trf-fgGIod off" + "trq trq off" + "ttwin_alt-UTF-8 ttwin_alt-UTF-8 off" + "ttwin_cplk-UTF-8 ttwin_cplk-UTF-8 off" + "ttwin_ct_sh-UTF-8 ttwin_ct_sh-UTF-8 off" + "ttwin_ctrl-UTF-8 ttwin_ctrl-UTF-8 off" + "ua ua off" + "ua-cp1251 ua-cp1251 off" + "ua-utf ua-utf off" + "ua-utf-ws ua-utf-ws off" + "ua-ws ua-ws off" + "uk uk off" + "unicode unicode off" + "us us on" + "us-acentos us-acentos off" + "wangbe wangbe off" + "wangbe2 wangbe2 off" + "windowkeys windowkeys off" +) + +echo "KEYMAP=$(dialog --stdout --radiolist "Selecciona la distribucion del teclado" 20 70 50 ${keymaps[@]})" > /etc/vconsole.conf + +aux=$(sed -e '1,23d' -e 's/#//g' -e 's/ /#/g' -e 's/..$//' /etc/locale.gen) +index=0 +for i in $aux; do + i=$(echo $i | sed -e 's/#/ /g') + locales+=("$i" "$i" off) + if [[ $i == "en_US.UTF-8 UTF-8" || $i == "en_US ISO-8859-1" ]]; then + locales[$index]="$i" + locales[$((index+1))]="$i" + locales[$((index+2))]="on" + fi + index=$((index+3)) +done + +locale=$(dialog --stdout --checklist "Selecciona las Localizaciones" 20 70 50 "${locales[@]}") +locale=$(echo ${locale} | sed -e 's/" "/\n/g' -e 's/ /#/g' -e 's/"//g') + +for i in ${locale[@]}; do + i=$(echo $i | sed -e 's/#/ /g') + sed -i -e "s/#$i/$i/g" /etc/locale.gen +done + +locale-gen + +aux=$(locale -a) +index=0 +for i in $aux; do + langs+=("$i" "$i" on) + index=$((index+1)) +done + +echo "LANG=$(dialog --stdout --radiolist "Selecciona tu idioma" 20 70 50 ${langs[@]})" > /etc/locale.conf + +mkinitcpio -p linux-libre + +hdd=$(cat /temporal | grep 'hdd=') +grub-install ${hdd#*=} +grub-mkconfig -o /boot/grub/grub.cfg + +password=$(dialog --stdout --passwordbox "Inserta la contraseña para el administrador" 8 40) + +while [[ $password != $password2 ]]; do + password2=$(dialog --stdout --passwordbox "Repite la contraseña para el administrador" 8 40) +done + +usermod -p $(openssl passwd ${password}) root + +exit diff --git a/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/es/userAccount.sh b/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/es/userAccount.sh new file mode 100755 index 0000000..4ed7437 --- /dev/null +++ b/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/es/userAccount.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +user=$(cat /temporal | grep "userName") + +password=$(dialog --stdout --passwordbox "Introduce la contraseñara para el usuario ${user#*=}" 8 40) + +while [[ $password != $password2 ]]; do + password2=$(dialog --stdout --passwordbox "Repite la contraseña" 8 40) +done + +useradd -m -g users -G "wheel" -s /bin/bash -p $(openssl passwd $password) ${user#*=} + +exit diff --git a/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/gl/install.sh b/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/gl/install.sh new file mode 100755 index 0000000..05ec262 --- /dev/null +++ b/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/gl/install.sh @@ -0,0 +1,226 @@ +#!/bin/bash +#Temporal is a file that contains parameters to use when access to chroot + +if [ ! -f ~/.scriptsInstallation/.pacman ]; then + pacman -Sy parabola-keyring archlinux-keyring --noconfirm + pacman-key --populate parabola archlinux + pacman-key --refresh-keys + case $? in + 0) touch ~/.scriptsInstallation/.pacman + ;; + *) false + ;; + esac +fi + +partition(){ + + #Search and show the Hard Disks to select + aux=$(ls /dev/sd?) + index=0 + for i in $aux; do + hdds[$index]="${i} ${i#/*/} off" + index=$((index+1)) + done + + hdd=$(dialog --stdout --radiolist "Selecciona Disco Duro" 20 70 50 ${hdds[@]}) + + #If exist the line delete + if (cat ~/.scriptsInstallation/temporal | grep "hdd=") &>/dev/null + then + sed -i -e '/hdd=*/d' ~/.scriptsInstallation/temporal + fi + + #And add the new line with new parameter + echo "hdd=$hdd" >> ~/.scriptsInstallation/temporal + selection=$(dialog --stdout --menu "Metodo de Particionado" 20 70 50 \ + 1 "Usar todo o disco con swap (1GB) and /" \ + 2 "Usar gparted para personalizar" ) + + case $selection in + 1) + umount /mnt &> /dev/null + #Create msdos partition table + parted -s $hdd -- mklabel msdos + + #Create partition swap and / + parted -s $hdd -- mkpart primary 1MiB 1000MiB mkpart primary 1000MiB -1s + + #Boot option partition / + parted -s $hdd -- set 2 boot on + + #Format and partitions and mount / + (echo t; echo 1; echo 82; echo w) | fdisk $hdd + mkswap ${hdd}1 + mkfs.ext4 ${hdd}2 + mount ${hdd}2 /mnt + ;; + 2) + gparted $hdd + + #Search and show the partitions that select before. + aux=$(ls $hdd?) + index=0; + for i in $aux; do + partitions[$index]="${i} ${i#/*/} off" + index=$((index+1)) + done + + partition=$(dialog --stdout --radiolist "Montar particion /" 20 70 50 ${partitions[@]}) + + #Mount partition / + umount /mnt &> /dev/null + mount $partition /mnt + + #Ask if you want mount other partitions + other=0 + while [ $other != 3 ]; do + other=$(dialog --stdout --menu "¿Montar outra particion?" 20 70 50 1 "/home" 2 "/boot" 3 "No") + + case $other in + 1) + umount /mnt/home &> /dev/null + mkdir /mnt/home &> /dev/null + mount $(dialog --stdout --radiolist "Montar particion /home" 20 70 50 ${partitions[@]}) /mnt/home + ;; + 2) + umount /mnt/boot &> /dev/null + mkdir /mnt/boot &> /dev/null + mount $(dialog --stdout --radiolist "Mount particion /boot" 20 70 50 ${partitions[@]}) /mnt/boot + ;; + *) + other=3 + ;; + esac + done + ;; + esac +} + + +option=0 +while [ option != 7 ]; do + option=$(dialog --stdout --menu "Instalación CLI de Parabola" 20 70 50 \ + 1 "Formatear e Montar Particiones" \ + 2 "Instalar Sistema Base" \ + 3 "Instalar GRUB" \ + 4 "Configuración do Sistema" \ + 5 "Crear Conta de Usuario" \ + 6 "(Opcional) Instalar Escritorio/Aplicaciones de Live DVD" \ + 7 "Salir" ) + + case $option in + 1) + partition + ;; + 2) + #Install base system + pacstrap /mnt base-openrc + pacstrap /mnt dialog + ;; + 3) + #Install grub + pacstrap /mnt grub + ;; + 4) + #Generate fstab and acces to chroot to do System Config + genfstab -p /mnt >> /mnt/etc/fstab + cp ~/.scriptsInstallation/temporal /mnt + cp ~/.scriptsInstallation/systemConfig.sh /mnt + chmod +x /mnt/systemConfig.sh + arch-chroot /mnt /systemConfig.sh + rm -r /mnt/systemConfig.sh + ;; + 5) + #Create a new username and save in temporal, to use after + if (cat ~/.scriptsInstallation/temporal | grep "userName=") &>/dev/null + then + sed -i -e '/userName=*/d' ~/.scriptsInstallation/temporal + fi + + echo "userName=$(dialog --stdout --inputbox "Introduce un nome de usuario" 8 40)" >> ~/.scriptsInstallation/temporal + cp ~/.scriptsInstallation/temporal /mnt + cp ~/.scriptsInstallation/userAccount.sh /mnt + chmod +x /mnt/userAccount.sh + arch-chroot /mnt /userAccount.sh + rm -r /mnt/userAccount.sh + ;; + 6) + #Packages to the X11 live + packages=( "xorg-server" + "xf86-input-evdev" + "xf86-input-synaptics" + "xf86-video-ati" + "xf86-video-dummy" + "xf86-video-fbdev" + "xf86-video-intel" + "xf86-video-nouveau" + "xf86-video-openchrome" + "xf86-video-sisusb" + "xf86-video-vesa" + "xf86-video-vmware" + "xf86-video-voodoo" + "xf86-video-qxl" + "xorg-xinit" + "gst-plugins-good" + "gst-libav" + "lxde" + "volumeicon" + "zenity" + "octopi" + "pulseaudio-alsa" + "alsa-utils" + "networkmanager-elogind" + "network-manager-applet" + "ath9k-htc-firmware" + "iceweasel" + "icedove" + "pidgin" + "gparted" + "smplayer" + "epdfview" + "gpicview" + "abiword" + "gnumeric" + "leafpad" + "galculator-gtk2" + "xarchiver" + "openrc-desktop" + "polkit-elogind" + "gvfs-mtp" + "gvfs-gphoto2" + "xdg-user-dirs" + "gnome-screenshot" + ) + + #Install packages + pacman -Sy -r /mnt ${packages[@]} --needed --noconfirm + user=$(cat ~/.scriptsInstallation/temporal | grep "userName" ) + + #Copy skel in the new system and desktop's background + cp -a /etc/skel/ /mnt/etc/ + cp -a /etc/wallpaper.png /mnt/etc/wallpaper.png + + #Puts the XKBMAP, start X11 automatically and icewm desktop + echo "setxkbmap $(cat ~/.codecheck | grep XKBMAP= | cut -d '=' -f 2)" > /mnt/etc/skel/.xinitrc + echo "exec startlxde" >> /mnt/etc/skel/.xinitrc + echo "startx" >> /mnt/etc/skel/.bash_profile + chmod +x /mnt/etc/skel/.xinitrc + cp -a /mnt/etc/skel/.[a-z]* /mnt/home/${user#*=}/ + cp -a ~/.scriptsInstallation/x11.sh /mnt + + #Enable services with OpenRC and configure other stuff + chmod +x /mnt/x11.sh + arch-chroot /mnt /x11.sh + rm /mnt/x11.sh + ;; + *) + #Delete temporal file and umount partitions + rm -r /mnt/temporal + umount /mnt/boot &> /dev/null + umount /mnt/home &> /dev/null + umount /mnt &> /dev/null + exit + ;; + esac +done diff --git a/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/gl/systemConfig.sh b/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/gl/systemConfig.sh new file mode 100755 index 0000000..0fe3c68 --- /dev/null +++ b/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/gl/systemConfig.sh @@ -0,0 +1,271 @@ +#!/bin/bash + +HOSTNAME=$(dialog --stdout --inputbox "Introduce o nome do sistema:" 8 40) +sed 's|localhost|'"${HOSTNAME}"'|' -i /etc/conf.d/hostname + +ln -s /usr/share/zoneinfo/$(dialog --stdout --inputbox "Introduce a Zona Horaria:\nPor ejemplo: Europe/Athens" 8 40) /etc/localtime + +keymaps=( + "ANSI-dvorak ANSI-dvorak off" + "amiga-de amiga-de off" + "amiga-us amiga-us off" + "applkey applkey off" + "atari-de atari-de off" + "atari-se atari-se off" + "atari-uk-falcon atari-uk-falcon off" + "atari-us atari-us off" + "azerty azerty off" + "backspace backspace off" + "bashkir bashkir off" + "be-latin1 be-latin1 off" + "bg-cp1251 bg-cp1251 off" + "bg-cp855 bg-cp855 off" + "bg_bds-cp1251 bg_bds-cp1251 off" + "bg_bds-utf8 bg_bds-utf8 off" + "bg_pho-cp1251 bg_pho-cp1251 off" + "bg_pho-utf8 bg_pho-utf8 off" + "br-abnt br-abnt off" + "br-abnt2 br-abnt2 off" + "br-latin1-abnt2 br-latin1-abnt2 off" + "br-latin1-us br-latin1-us off" + "by by off" + "by-cp1251 by-cp1251 off" + "bywin-cp1251 bywin-cp1251 off" + "cf cf off" + "colemak colemak off" + "croat croat off" + "ctrl ctrl off" + "cz cz off" + "cz-cp1250 cz-cp1250 off" + "cz-lat2 cz-lat2 off" + "cz-lat2-prog cz-lat2-prog off" + "cz-qwertz cz-qwertz off" + "cz-us-qwertz cz-us-qwertz off" + "de de off" + "de-latin1 de-latin1 off" + "de-latin1-nodeadkeys de-latin1-nodeadkeys off" + "de-mobii de-mobii off" + "de_CH-latin1 de_CH-latin1 off" + "de_alt_UTF-8 de_alt_UTF-8 off" + "defkeymap defkeymap off" + "defkeymap_V1.0 defkeymap_V1.0 off" + "dk dk off" + "dk-latin1 dk-latin1 off" + "dvorak dvorak off" + "dvorak-ca-fr dvorak-ca-fr off" + "dvorak-es dvorak-es off" + "dvorak-fr dvorak-fr off" + "dvorak-l dvorak-l off" + "dvorak-r dvorak-r off" + "dvorak-ru dvorak-ru off" + "dvorak-sv-a1 dvorak-sv-a1 off" + "dvorak-sv-a5 dvorak-sv-a5 off" + "dvorak-uk dvorak-uk off" + "emacs emacs off" + "emacs2 emacs2 off" + "es es off" + "es-cp850 es-cp850 off" + "es-olpc es-olpc off" + "et et off" + "et-nodeadkeys et-nodeadkeys off" + "euro euro off" + "euro1 euro1 off" + "euro2 euro2 off" + "fi fi off" + "fr fr off" + "fr-bepo fr-bepo off" + "fr-bepo-latin9 fr-bepo-latin9 off" + "fr-latin1 fr-latin1 off" + "fr-latin9 fr-latin9 off" + "fr-pc fr-pc off" + "fr_CH fr_CH off" + "fr_CH-latin1 fr_CH-latin1 off" + "gr gr off" + "gr-pc gr-pc off" + "hu hu off" + "hu101 hu101 off" + "il il off" + "il-heb il-heb off" + "il-phonetic il-phonetic off" + "is-latin1 is-latin1 off" + "is-latin1-us is-latin1-us off" + "it it off" + "it-ibm it-ibm off" + "it2 it2 off" + "jp106 jp106 off" + "kazakh kazakh off" + "keypad keypad off" + "ky_alt_sh-UTF-8 ky_alt_sh-UTF-8 off" + "kyrgyz kyrgyz off" + "la-latin1 la-latin1 off" + "lt lt off" + "lt.baltic lt.baltic off" + "lt.l4 lt.l4 off" + "lv lv off" + "lv-tilde lv-tilde off" + "mac-be mac-be off" + "mac-de-latin1 mac-de-latin1 off" + "mac-de-latin1-nodeadkeys mac-de-latin1-nodeadkeys off" + "mac-de_CH mac-de_CH off" + "mac-dk-latin1 mac-dk-latin1 off" + "mac-dvorak mac-dvorak off" + "mac-es mac-es off" + "mac-euro mac-euro off" + "mac-euro2 mac-euro2 off" + "mac-fi-latin1 mac-fi-latin1 off" + "mac-fr mac-fr off" + "mac-fr_CH-latin1 mac-fr_CH-latin1 off" + "mac-it mac-it off" + "mac-pl mac-pl off" + "mac-pt-latin1 mac-pt-latin1 off" + "mac-se mac-se off" + "mac-template mac-template off" + "mac-uk mac-uk off" + "mac-us mac-us off" + "mk mk off" + "mk-cp1251 mk-cp1251 off" + "mk-utf mk-utf off" + "mk0 mk0 off" + "nl nl off" + "nl2 nl2 off" + "no no off" + "no-dvorak no-dvorak off" + "no-latin1 no-latin1 off" + "pc110 pc110 off" + "pl pl off" + "pl1 pl1 off" + "pl2 pl2 off" + "pl3 pl3 off" + "pl4 pl4 off" + "pt-latin1 pt-latin1 off" + "pt-latin9 pt-latin9 off" + "pt-olpc pt-olpc off" + "ro ro off" + "ro_std ro_std off" + "ro_win ro_win off" + "ru ru off" + "ru-cp1251 ru-cp1251 off" + "ru-ms ru-ms off" + "ru-yawerty ru-yawerty off" + "ru1 ru1 off" + "ru2 ru2 off" + "ru3 ru3 off" + "ru4 ru4 off" + "ru_win ru_win off" + "ruwin_alt-CP1251 ruwin_alt-CP1251 off" + "ruwin_alt-KOI8-R ruwin_alt-KOI8-R off" + "ruwin_alt-UTF-8 ruwin_alt-UTF-8 off" + "ruwin_alt_sh-UTF-8 ruwin_alt_sh-UTF-8 off" + "ruwin_cplk-CP1251 ruwin_cplk-CP1251 off" + "ruwin_cplk-KOI8-R ruwin_cplk-KOI8-R off" + "ruwin_cplk-UTF-8 ruwin_cplk-UTF-8 off" + "ruwin_ct_sh-CP1251 ruwin_ct_sh-CP1251 off" + "ruwin_ct_sh-KOI8-R ruwin_ct_sh-KOI8-R off" + "ruwin_ct_sh-UTF-8 ruwin_ct_sh-UTF-8 off" + "ruwin_ctrl-CP1251 ruwin_ctrl-CP1251 off" + "ruwin_ctrl-KOI8-R ruwin_ctrl-KOI8-R off" + "ruwin_ctrl-UTF-8 ruwin_ctrl-UTF-8 off" + "se-fi-ir209 se-fi-ir209 off" + "se-fi-lat6 se-fi-lat6 off" + "se-ir209 se-ir209 off" + "se-lat6 se-lat6 off" + "sg sg off" + "sg-latin1 sg-latin1 off" + "sg-latin1-lk450 sg-latin1-lk450 off" + "sk-prog-qwerty sk-prog-qwerty off" + "sk-prog-qwertz sk-prog-qwertz off" + "sk-qwerty sk-qwerty off" + "sk-qwertz sk-qwertz off" + "slovene slovene off" + "sr-cy sr-cy off" + "sun-pl sun-pl off" + "sun-pl-altgraph sun-pl-altgraph off" + "sundvorak sundvorak off" + "sunkeymap sunkeymap off" + "sunt4-es sunt4-es off" + "sunt4-fi-latin1 sunt4-fi-latin1 off" + "sunt4-no-latin1 sunt4-no-latin1 off" + "sunt5-cz-us sunt5-cz-us off" + "sunt5-de-latin1 sunt5-de-latin1 off" + "sunt5-es sunt5-es off" + "sunt5-fi-latin1 sunt5-fi-latin1 off" + "sunt5-fr-latin1 sunt5-fr-latin1 off" + "sunt5-ru sunt5-ru off" + "sunt5-uk sunt5-uk off" + "sunt5-us-cz sunt5-us-cz off" + "sunt6-uk sunt6-uk off" + "sv-latin1 sv-latin1 off" + "tj_alt-UTF8 tj_alt-UTF8 off" + "tr_f-latin5 tr_f-latin5 off" + "tr_q-latin5 tr_q-latin5 off" + "tralt tralt off" + "trf trf off" + "trf-fgGIod trf-fgGIod off" + "trq trq off" + "ttwin_alt-UTF-8 ttwin_alt-UTF-8 off" + "ttwin_cplk-UTF-8 ttwin_cplk-UTF-8 off" + "ttwin_ct_sh-UTF-8 ttwin_ct_sh-UTF-8 off" + "ttwin_ctrl-UTF-8 ttwin_ctrl-UTF-8 off" + "ua ua off" + "ua-cp1251 ua-cp1251 off" + "ua-utf ua-utf off" + "ua-utf-ws ua-utf-ws off" + "ua-ws ua-ws off" + "uk uk off" + "unicode unicode off" + "us us on" + "us-acentos us-acentos off" + "wangbe wangbe off" + "wangbe2 wangbe2 off" + "windowkeys windowkeys off" +) + +echo "KEYMAP=$(dialog --stdout --radiolist "Selecciona a distribucion do teclado" 20 70 50 ${keymaps[@]})" > /etc/vconsole.conf + +aux=$(sed -e '1,23d' -e 's/#//g' -e 's/ /#/g' -e 's/..$//' /etc/locale.gen) +index=0 +for i in $aux; do + i=$(echo $i | sed -e 's/#/ /g') + locales+=("$i" "$i" off) + if [[ $i == "en_US.UTF-8 UTF-8" || $i == "en_US ISO-8859-1" ]]; then + locales[$index]="$i" + locales[$((index+1))]="$i" + locales[$((index+2))]="on" + fi + index=$((index+3)) +done + +locale=$(dialog --stdout --checklist "Selecciona as Localizacions" 20 70 50 "${locales[@]}") +locale=$(echo ${locale} | sed -e 's/" "/\n/g' -e 's/ /#/g' -e 's/"//g') + +for i in ${locale[@]}; do + i=$(echo $i | sed -e 's/#/ /g') + sed -i -e "s/#$i/$i/g" /etc/locale.gen +done + +locale-gen + +aux=$(locale -a) +index=0 +for i in $aux; do + langs+=("$i" "$i" on) + index=$((index+1)) +done + +echo "LANG=$(dialog --stdout --radiolist "Selecciona o teu idioma" 20 70 50 ${langs[@]})" > /etc/locale.conf + +mkinitcpio -p linux-libre + +hdd=$(cat /temporal | grep 'hdd=') +grub-install ${hdd#*=} +grub-mkconfig -o /boot/grub/grub.cfg + +password=$(dialog --stdout --passwordbox "Insire o contrasinal para o administrador" 8 40) + +while [[ $password != $password2 ]]; do + password2=$(dialog --stdout --passwordbox "Repite o contrasinal para o administrador" 8 40) +done + +usermod -p $(openssl passwd ${password}) root + +exit diff --git a/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/gl/userAccount.sh b/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/gl/userAccount.sh new file mode 100755 index 0000000..aa1d33a --- /dev/null +++ b/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/gl/userAccount.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +user=$(cat /temporal | grep "userName") + +password=$(dialog --stdout --passwordbox "Introduce o contrasinal para o usuario ${user#*=}" 8 40) + +while [[ $password != $password2 ]]; do + password2=$(dialog --stdout --passwordbox "Repite o contrasinal" 8 40) +done + +useradd -m -g users -G "wheel" -s /bin/bash -p $(openssl passwd $password) ${user#*=} + +exit diff --git a/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/pt/install.sh b/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/pt/install.sh new file mode 100755 index 0000000..1de6c85 --- /dev/null +++ b/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/pt/install.sh @@ -0,0 +1,227 @@ +#!/bin/bash +#Temporal is a file that contains parameters to use when access to chroot + +if [ ! -f ~/.scriptsInstallation/.pacman ]; then + pacman -Sy parabola-keyring archlinux-keyring --noconfirm + pacman-key --populate parabola archlinux + pacman-key --refresh-keys + case $? in + 0) touch ~/.scriptsInstallation/.pacman + ;; + *) false + ;; + esac +fi + +partition(){ + + #Search and show the Hard Disks to select + aux=$(ls /dev/sd?) + index=0 + for i in $aux; do + hdds[$index]="${i} ${i#/*/} off" + index=$((index+1)) + done + + hdd=$(dialog --stdout --radiolist "Escolha o Disco" 20 70 50 ${hdds[@]}) + + #If exist the line delete + if (cat ~/.scriptsInstallation/temporal | grep "hdd=") &>/dev/null + then + sed -i -e '/hdd=*/d' ~/.scriptsInstallation/temporal + fi + + #And add the new line with new parameter + echo "hdd=$hdd" >> ~/.scriptsInstallation/temporal + + selection=$(dialog --stdout --menu "Método de Particionamento" 20 70 50 \ + 1 "Usar todo o disco com o swap (1GB) e /" \ + 2 "Usar o gparted para personalizar" ) + + case $selection in + 1) + umount /mnt &> /dev/null + #Create msdos partition table + parted -s $hdd -- mklabel msdos + + #Create partition swap and / + parted -s $hdd -- mkpart primary 1MiB 1000MiB mkpart primary 1000MiB -1s + + #Boot option partition / + parted -s $hdd -- set 2 boot on + + #Format and partitions and mount / + (echo t; echo 1; echo 82; echo w) | fdisk $hdd + mkswap ${hdd}1 + mkfs.ext4 ${hdd}2 + mount ${hdd}2 /mnt + ;; + 2) + gparted $hdd + + #Search and show the partitions that select before. + aux=$(ls $hdd?) + index=0; + for i in $aux; do + partitions[$index]="${i} ${i#/*/} off" + index=$((index+1)) + done + + partition=$(dialog --stdout --radiolist "Montar a partição /" 20 70 50 ${partitions[@]}) + + #Mount partition / + umount /mnt &> /dev/null + mount $partition /mnt + + #Ask if you want mount other partitions + other=0 + while [ $other != 3 ]; do + other=$(dialog --stdout --menu "Quer montar outra partição?" 20 70 50 1 "/home" 2 "/boot" 3 "Não") + + case $other in + 1) + umount /mnt/home &> /dev/null + mkdir /mnt/home &> /dev/null + mount $(dialog --stdout --radiolist "Montar a partição /home" 20 70 50 ${partitions[@]}) /mnt/home + ;; + 2) + umount /mnt/boot &> /dev/null + mkdir /mnt/boot &> /dev/null + mount $(dialog --stdout --radiolist "Montar a partição /boot" 20 70 50 ${partitions[@]}) /mnt/boot + ;; + *) + other=3 + ;; + esac + done + ;; + esac +} + + +option=0 +while [ option != 7 ]; do + option=$(dialog --stdout --menu "Instalação CLI da Parabola" 20 70 50 \ + 1 "Formatar e Montar as Partições" \ + 2 "Instalar o Sistema Base" \ + 3 "Instalar o GRUB" \ + 4 "Configuração do Sistema" \ + 5 "Adicionar uma Conta de Usuário" \ + 6 "(Opcional) Instalar Ambiente Gráfico/Aplicativos da Live DVD" \ + 7 "Sair" ) + + case $option in + 1) + partition + ;; + 2) + #Install base system + pacstrap /mnt base-openrc + pacstrap /mnt dialog + ;; + 3) + #Install grub + pacstrap /mnt grub + ;; + 4) + #Generate fstab and acces to chroot to do System Config + genfstab -p /mnt >> /mnt/etc/fstab + cp ~/.scriptsInstallation/temporal /mnt + cp ~/.scriptsInstallation/systemConfig.sh /mnt + chmod +x /mnt/systemConfig.sh + arch-chroot /mnt /systemConfig.sh + rm -r /mnt/systemConfig.sh + ;; + 5) + #Create a new username and save in temporal, to use after + if (cat ~/.scriptsInstallation/temporal | grep "userName=") &>/dev/null + then + sed -i -e '/userName=*/d' ~/.scriptsInstallation/temporal + fi + + echo "userName=$(dialog --stdout --inputbox "Insira o nome do usuário" 8 40)" >> ~/.scriptsInstallation/temporal + cp ~/.scriptsInstallation/temporal /mnt + cp ~/.scriptsInstallation/userAccount.sh /mnt + chmod +x /mnt/userAccount.sh + arch-chroot /mnt /userAccount.sh + rm -r /mnt/userAccount.sh + ;; + 6) + #Packages to the X11 live + packages=( "xorg-server" + "xf86-input-evdev" + "xf86-input-synaptics" + "xf86-video-ati" + "xf86-video-dummy" + "xf86-video-fbdev" + "xf86-video-intel" + "xf86-video-nouveau" + "xf86-video-openchrome" + "xf86-video-sisusb" + "xf86-video-vesa" + "xf86-video-vmware" + "xf86-video-voodoo" + "xf86-video-qxl" + "xorg-xinit" + "gst-plugins-good" + "gst-libav" + "lxde" + "volumeicon" + "zenity" + "octopi" + "pulseaudio-alsa" + "alsa-utils" + "networkmanager-elogind" + "network-manager-applet" + "ath9k-htc-firmware" + "iceweasel" + "icedove" + "pidgin" + "gparted" + "smplayer" + "epdfview" + "gpicview" + "abiword" + "gnumeric" + "leafpad" + "galculator-gtk2" + "xarchiver" + "openrc-desktop" + "polkit-elogind" + "gvfs-mtp" + "gvfs-gphoto2" + "xdg-user-dirs" + "gnome-screenshot" + ) + + #Install packages + pacman -Sy -r /mnt ${packages[@]} --needed --noconfirm + user=$(cat ~/.scriptsInstallation/temporal | grep "userName" ) + + #Copy skel in the new system and desktop's background + cp -a /etc/skel/ /mnt/etc/ + cp -a /etc/wallpaper.png /mnt/etc/wallpaper.png + + #Puts the XKBMAP, start X11 automatically and icewm desktop + echo "setxkbmap $(cat ~/.codecheck | grep XKBMAP= | cut -d '=' -f 2)" > /mnt/etc/skel/.xinitrc + echo "exec startlxde" >> /mnt/etc/skel/.xinitrc + echo "startx" >> /mnt/etc/skel/.bash_profile + chmod +x /mnt/etc/skel/.xinitrc + cp -a /mnt/etc/skel/.[a-z]* /mnt/home/${user#*=}/ + cp -a ~/.scriptsInstallation/x11.sh /mnt + + #Enable services with OpenRC and configure other stuff + chmod +x /mnt/x11.sh + arch-chroot /mnt /x11.sh + rm /mnt/x11.sh + ;; + *) + #Delete temporal file and umount partitions + rm -r /mnt/temporal + umount /mnt/boot &> /dev/null + umount /mnt/home &> /dev/null + umount /mnt &> /dev/null + exit + ;; + esac +done diff --git a/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/pt/systemConfig.sh b/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/pt/systemConfig.sh new file mode 100755 index 0000000..983d0ba --- /dev/null +++ b/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/pt/systemConfig.sh @@ -0,0 +1,271 @@ +#!/bin/bash + +HOSTNAME=$(dialog --stdout --inputbox "Adicione o nome do sistema:" 8 40) +sed 's|localhost|'"${HOSTNAME}"'|' -i /etc/conf.d/hostname + +ln -s /usr/share/zoneinfo/$(dialog --stdout --inputbox "Adicione o Fuso Horário:\nPor exemplo: America/Sao_Paulo" 8 40) /etc/localtime + +keymaps=( + "ANSI-dvorak ANSI-dvorak off" + "amiga-de amiga-de off" + "amiga-us amiga-us off" + "applkey applkey off" + "atari-de atari-de off" + "atari-se atari-se off" + "atari-uk-falcon atari-uk-falcon off" + "atari-us atari-us off" + "azerty azerty off" + "backspace backspace off" + "bashkir bashkir off" + "be-latin1 be-latin1 off" + "bg-cp1251 bg-cp1251 off" + "bg-cp855 bg-cp855 off" + "bg_bds-cp1251 bg_bds-cp1251 off" + "bg_bds-utf8 bg_bds-utf8 off" + "bg_pho-cp1251 bg_pho-cp1251 off" + "bg_pho-utf8 bg_pho-utf8 off" + "br-abnt br-abnt off" + "br-abnt2 br-abnt2 off" + "br-latin1-abnt2 br-latin1-abnt2 off" + "br-latin1-us br-latin1-us off" + "by by off" + "by-cp1251 by-cp1251 off" + "bywin-cp1251 bywin-cp1251 off" + "cf cf off" + "colemak colemak off" + "croat croat off" + "ctrl ctrl off" + "cz cz off" + "cz-cp1250 cz-cp1250 off" + "cz-lat2 cz-lat2 off" + "cz-lat2-prog cz-lat2-prog off" + "cz-qwertz cz-qwertz off" + "cz-us-qwertz cz-us-qwertz off" + "de de off" + "de-latin1 de-latin1 off" + "de-latin1-nodeadkeys de-latin1-nodeadkeys off" + "de-mobii de-mobii off" + "de_CH-latin1 de_CH-latin1 off" + "de_alt_UTF-8 de_alt_UTF-8 off" + "defkeymap defkeymap off" + "defkeymap_V1.0 defkeymap_V1.0 off" + "dk dk off" + "dk-latin1 dk-latin1 off" + "dvorak dvorak off" + "dvorak-ca-fr dvorak-ca-fr off" + "dvorak-es dvorak-es off" + "dvorak-fr dvorak-fr off" + "dvorak-l dvorak-l off" + "dvorak-r dvorak-r off" + "dvorak-ru dvorak-ru off" + "dvorak-sv-a1 dvorak-sv-a1 off" + "dvorak-sv-a5 dvorak-sv-a5 off" + "dvorak-uk dvorak-uk off" + "emacs emacs off" + "emacs2 emacs2 off" + "es es off" + "es-cp850 es-cp850 off" + "es-olpc es-olpc off" + "et et off" + "et-nodeadkeys et-nodeadkeys off" + "euro euro off" + "euro1 euro1 off" + "euro2 euro2 off" + "fi fi off" + "fr fr off" + "fr-bepo fr-bepo off" + "fr-bepo-latin9 fr-bepo-latin9 off" + "fr-latin1 fr-latin1 off" + "fr-latin9 fr-latin9 off" + "fr-pc fr-pc off" + "fr_CH fr_CH off" + "fr_CH-latin1 fr_CH-latin1 off" + "gr gr off" + "gr-pc gr-pc off" + "hu hu off" + "hu101 hu101 off" + "il il off" + "il-heb il-heb off" + "il-phonetic il-phonetic off" + "is-latin1 is-latin1 off" + "is-latin1-us is-latin1-us off" + "it it off" + "it-ibm it-ibm off" + "it2 it2 off" + "jp106 jp106 off" + "kazakh kazakh off" + "keypad keypad off" + "ky_alt_sh-UTF-8 ky_alt_sh-UTF-8 off" + "kyrgyz kyrgyz off" + "la-latin1 la-latin1 off" + "lt lt off" + "lt.baltic lt.baltic off" + "lt.l4 lt.l4 off" + "lv lv off" + "lv-tilde lv-tilde off" + "mac-be mac-be off" + "mac-de-latin1 mac-de-latin1 off" + "mac-de-latin1-nodeadkeys mac-de-latin1-nodeadkeys off" + "mac-de_CH mac-de_CH off" + "mac-dk-latin1 mac-dk-latin1 off" + "mac-dvorak mac-dvorak off" + "mac-es mac-es off" + "mac-euro mac-euro off" + "mac-euro2 mac-euro2 off" + "mac-fi-latin1 mac-fi-latin1 off" + "mac-fr mac-fr off" + "mac-fr_CH-latin1 mac-fr_CH-latin1 off" + "mac-it mac-it off" + "mac-pl mac-pl off" + "mac-pt-latin1 mac-pt-latin1 off" + "mac-se mac-se off" + "mac-template mac-template off" + "mac-uk mac-uk off" + "mac-us mac-us off" + "mk mk off" + "mk-cp1251 mk-cp1251 off" + "mk-utf mk-utf off" + "mk0 mk0 off" + "nl nl off" + "nl2 nl2 off" + "no no off" + "no-dvorak no-dvorak off" + "no-latin1 no-latin1 off" + "pc110 pc110 off" + "pl pl off" + "pl1 pl1 off" + "pl2 pl2 off" + "pl3 pl3 off" + "pl4 pl4 off" + "pt-latin1 pt-latin1 off" + "pt-latin9 pt-latin9 off" + "pt-olpc pt-olpc off" + "ro ro off" + "ro_std ro_std off" + "ro_win ro_win off" + "ru ru off" + "ru-cp1251 ru-cp1251 off" + "ru-ms ru-ms off" + "ru-yawerty ru-yawerty off" + "ru1 ru1 off" + "ru2 ru2 off" + "ru3 ru3 off" + "ru4 ru4 off" + "ru_win ru_win off" + "ruwin_alt-CP1251 ruwin_alt-CP1251 off" + "ruwin_alt-KOI8-R ruwin_alt-KOI8-R off" + "ruwin_alt-UTF-8 ruwin_alt-UTF-8 off" + "ruwin_alt_sh-UTF-8 ruwin_alt_sh-UTF-8 off" + "ruwin_cplk-CP1251 ruwin_cplk-CP1251 off" + "ruwin_cplk-KOI8-R ruwin_cplk-KOI8-R off" + "ruwin_cplk-UTF-8 ruwin_cplk-UTF-8 off" + "ruwin_ct_sh-CP1251 ruwin_ct_sh-CP1251 off" + "ruwin_ct_sh-KOI8-R ruwin_ct_sh-KOI8-R off" + "ruwin_ct_sh-UTF-8 ruwin_ct_sh-UTF-8 off" + "ruwin_ctrl-CP1251 ruwin_ctrl-CP1251 off" + "ruwin_ctrl-KOI8-R ruwin_ctrl-KOI8-R off" + "ruwin_ctrl-UTF-8 ruwin_ctrl-UTF-8 off" + "se-fi-ir209 se-fi-ir209 off" + "se-fi-lat6 se-fi-lat6 off" + "se-ir209 se-ir209 off" + "se-lat6 se-lat6 off" + "sg sg off" + "sg-latin1 sg-latin1 off" + "sg-latin1-lk450 sg-latin1-lk450 off" + "sk-prog-qwerty sk-prog-qwerty off" + "sk-prog-qwertz sk-prog-qwertz off" + "sk-qwerty sk-qwerty off" + "sk-qwertz sk-qwertz off" + "slovene slovene off" + "sr-cy sr-cy off" + "sun-pl sun-pl off" + "sun-pl-altgraph sun-pl-altgraph off" + "sundvorak sundvorak off" + "sunkeymap sunkeymap off" + "sunt4-es sunt4-es off" + "sunt4-fi-latin1 sunt4-fi-latin1 off" + "sunt4-no-latin1 sunt4-no-latin1 off" + "sunt5-cz-us sunt5-cz-us off" + "sunt5-de-latin1 sunt5-de-latin1 off" + "sunt5-es sunt5-es off" + "sunt5-fi-latin1 sunt5-fi-latin1 off" + "sunt5-fr-latin1 sunt5-fr-latin1 off" + "sunt5-ru sunt5-ru off" + "sunt5-uk sunt5-uk off" + "sunt5-us-cz sunt5-us-cz off" + "sunt6-uk sunt6-uk off" + "sv-latin1 sv-latin1 off" + "tj_alt-UTF8 tj_alt-UTF8 off" + "tr_f-latin5 tr_f-latin5 off" + "tr_q-latin5 tr_q-latin5 off" + "tralt tralt off" + "trf trf off" + "trf-fgGIod trf-fgGIod off" + "trq trq off" + "ttwin_alt-UTF-8 ttwin_alt-UTF-8 off" + "ttwin_cplk-UTF-8 ttwin_cplk-UTF-8 off" + "ttwin_ct_sh-UTF-8 ttwin_ct_sh-UTF-8 off" + "ttwin_ctrl-UTF-8 ttwin_ctrl-UTF-8 off" + "ua ua off" + "ua-cp1251 ua-cp1251 off" + "ua-utf ua-utf off" + "ua-utf-ws ua-utf-ws off" + "ua-ws ua-ws off" + "uk uk off" + "unicode unicode off" + "us us on" + "us-acentos us-acentos off" + "wangbe wangbe off" + "wangbe2 wangbe2 off" + "windowkeys windowkeys off" +) + +echo "KEYMAP=$(dialog --stdout --radiolist "Escolha a distribuição do teclado" 20 70 50 ${keymaps[@]})" > /etc/vconsole.conf + +aux=$(sed -e '1,23d' -e 's/#//g' -e 's/ /#/g' -e 's/..$//' /etc/locale.gen) +index=0 +for i in $aux; do + i=$(echo $i | sed -e 's/#/ /g') + locales+=("$i" "$i" off) + if [[ $i == "en_US.UTF-8 UTF-8" || $i == "en_US ISO-8859-1" ]]; then + locales[$index]="$i" + locales[$((index+1))]="$i" + locales[$((index+2))]="on" + fi + index=$((index+3)) +done + +locale=$(dialog --stdout --checklist "Escolha as Localizações" 20 70 50 "${locales[@]}") +locale=$(echo ${locale} | sed -e 's/" "/\n/g' -e 's/ /#/g' -e 's/"//g') + +for i in ${locale[@]}; do + i=$(echo $i | sed -e 's/#/ /g') + sed -i -e "s/#$i/$i/g" /etc/locale.gen +done + +locale-gen + +aux=$(locale -a) +index=0 +for i in $aux; do + langs+=("$i" "$i" on) + index=$((index+1)) +done + +echo "LANG=$(dialog --stdout --radiolist "Escolha a sua língua" 20 70 50 ${langs[@]})" > /etc/locale.conf + +mkinitcpio -p linux-libre + +hdd=$(cat /temporal | grep 'hdd=') +grub-install ${hdd#*=} +grub-mkconfig -o /boot/grub/grub.cfg + +password=$(dialog --stdout --passwordbox "Insira a senha para o root" 8 40) + +while [[ $password != $password2 ]]; do + password2=$(dialog --stdout --passwordbox "Repita a senha para o root" 8 40) +done + +usermod -p $(openssl passwd ${password}) root + +exit diff --git a/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/pt/userAccount.sh b/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/pt/userAccount.sh new file mode 100755 index 0000000..408beba --- /dev/null +++ b/configs/lxde-openrc/airootfs/root/.scriptsInstallation/language/pt/userAccount.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +user=$(cat /temporal | grep "userName") + +password=$(dialog --stdout --passwordbox "Insira a senha para o usuário ${user#*=}" 8 40) + +while [[ $password != $password2 ]]; do + password2=$(dialog --stdout --passwordbox "Repita a senha" 8 40) +done + +useradd -m -g users -G "wheel" -s /bin/bash -p $(openssl passwd $password) ${user#*=} + +exit diff --git a/configs/lxde-openrc/airootfs/root/.scriptsInstallation/parabolaicon.png b/configs/lxde-openrc/airootfs/root/.scriptsInstallation/parabolaicon.png new file mode 100644 index 0000000..aed32d7 Binary files /dev/null and b/configs/lxde-openrc/airootfs/root/.scriptsInstallation/parabolaicon.png differ diff --git a/configs/lxde-openrc/airootfs/root/.scriptsInstallation/x11.sh b/configs/lxde-openrc/airootfs/root/.scriptsInstallation/x11.sh new file mode 100755 index 0000000..47035c5 --- /dev/null +++ b/configs/lxde-openrc/airootfs/root/.scriptsInstallation/x11.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +check_dbus() { + grep dbus /etc/$1 +} + +# Create the dbus user if it doesn't exist +[[ $(check_dbus group) = "" ]] && groupadd -g 81 dbus +[[ $(check_dbus passwd) = "" ]] && useradd -r -s /sbin/nologin -g 81 -u 81 dbus + +# Enable services with OpenRC +rc-update add NetworkManager default +rc-update add dbus default +rc-update add alsasound default diff --git a/configs/lxde-openrc/airootfs/root/.themes/Parabola/index.theme b/configs/lxde-openrc/airootfs/root/.themes/Parabola/index.theme new file mode 100644 index 0000000..d6b2393 --- /dev/null +++ b/configs/lxde-openrc/airootfs/root/.themes/Parabola/index.theme @@ -0,0 +1,13 @@ +[Desktop Entry] +Name=Parabola +Type=X-GNOME-Metatheme +Comment= + +[X-GNOME-Metatheme] +GtkTheme=Radiance-Purple +MetacityTheme=Radiance-Purple +IconTheme=RAVE-X-Dark-Purple +GtkColorScheme=base_color:#ffffff,fg_color:#4c4c4c,tooltip_fg_color:#ffffff,selected_bg_color:#7E5BC5,selected_fg_color:#FFFFFF,text_color:#3C3C3C,bg_color:#F6F6F6,tooltip_bg_color:#000000,link_color:#9D7EDA +CursorTheme=mate +CursorSize=18 +BackgroundImage=/etc/wallpaper.png diff --git a/configs/lxde-openrc/airootfs/root/.xinitrc b/configs/lxde-openrc/airootfs/root/.xinitrc new file mode 100644 index 0000000..09e419c --- /dev/null +++ b/configs/lxde-openrc/airootfs/root/.xinitrc @@ -0,0 +1,7 @@ +code=$(cat ~/.codecheck | grep XKBMAP= | cut -d '=' -f 2) +[ "$code" = "0" ] && code='us' +setxkbmap $code +service NetworkManager start +service dbus start +service alsasound start +exec startlxde diff --git a/configs/lxde-openrc/airootfs/root/.zlogin b/configs/lxde-openrc/airootfs/root/.zlogin new file mode 100644 index 0000000..b24dba9 --- /dev/null +++ b/configs/lxde-openrc/airootfs/root/.zlogin @@ -0,0 +1,4 @@ +~/.automated_script.sh +~/.language.sh +export $(cat /etc/locale.conf) +startx diff --git a/configs/lxde-openrc/airootfs/root/Desktop/Parabola Installation CLI.desktop b/configs/lxde-openrc/airootfs/root/Desktop/Parabola Installation CLI.desktop new file mode 100755 index 0000000..9a2d871 --- /dev/null +++ b/configs/lxde-openrc/airootfs/root/Desktop/Parabola Installation CLI.desktop @@ -0,0 +1,12 @@ +#!/usr/bin/env xdg-open +[Desktop Entry] +Version=1.0 +Type=Application +Terminal=true +Name[es_ES]=Instalador CLI de Parabola +Name[gl_ES]=Instalador CLI de Parabola +Name[pt_BR]=Instalador CLI da Parabola +Exec=/root/.scriptsInstallation/install.sh +Name=Parabola Installation CLI +Comment=Parabola Installation Scripts +Icon=/root/.scriptsInstallation/parabolaicon.png diff --git a/configs/lxde-openrc/airootfs/root/customize_airootfs.sh b/configs/lxde-openrc/airootfs/root/customize_airootfs.sh new file mode 100755 index 0000000..7d1bfda --- /dev/null +++ b/configs/lxde-openrc/airootfs/root/customize_airootfs.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +set -e -u + +sed -i 's/#\(en_US\.UTF-8\)/\1/' /etc/locale.gen +sed -i 's/#\(es_ES\.UTF-8\)/\1/' /etc/locale.gen +sed -i 's/#\(gl_ES\.UTF-8\)/\1/' /etc/locale.gen +sed -i 's/#\(pt_BR\.UTF-8\)/\1/' /etc/locale.gen +sed -i 's/#\(pl_PL\.UTF-8\)/\1/' /etc/locale.gen +sed -i 's/#\(it_IT\.UTF-8\)/\1/' /etc/locale.gen +sed -i 's/#\(fr_FR\.UTF-8\)/\1/' /etc/locale.gen +sed -i 's/#\(eo\)/\1/' /etc/locale.gen +locale-gen + +ln -sf /usr/share/zoneinfo/UTC /etc/localtime + +usermod -s /usr/bin/zsh root +cp -aT /etc/skel/ /root/ +chmod 700 /root + +sed -i 's/#\(PermitRootLogin \).\+/\1yes/' /etc/ssh/sshd_config +sed -i "s/#Server/Server/g" /etc/pacman.d/mirrorlist + +sed -i 's/#\(HandleSuspendKey=\)suspend/\1ignore/' /etc/elogind/logind.conf +sed -i 's/#\(HandleHibernateKey=\)hibernate/\1ignore/' /etc/elogind/logind.conf +sed -i 's/#\(HandleLidSwitch=\)suspend/\1ignore/' /etc/elogind/logind.conf + +case $(uname -m) in + x86_64) echo 'KEYS="archlinux parabola"' > /etc/conf.d/pacman-init + ;; + i686) echo 'KEYS="archlinux archlinux32 parabola"' > /etc/conf.d/pacman-init + ;; +esac + +useradd -m -p "" -g users -G "adm,audio,floppy,log,network,scanner,storage,optical,power,wheel,disk,sys" -s /usr/bin/zsh parabola + +services=(NetworkManager + elogind + alsasound + dbus + haveged + pacman-init) + +for s in ${services[@]}; do + rc-update add $s default +done + +sed -i "s/_DATE_/$(date +%Y.%m.%d)/" /etc/motd diff --git a/configs/lxde-openrc/airootfs/root/install.txt b/configs/lxde-openrc/airootfs/root/install.txt new file mode 100644 index 0000000..a594b97 --- /dev/null +++ b/configs/lxde-openrc/airootfs/root/install.txt @@ -0,0 +1,2 @@ +View this installation guide online at +https://wiki.parabola.nu/Installation_Guide diff --git a/configs/lxde-openrc/aitab b/configs/lxde-openrc/aitab deleted file mode 100644 index b7e9a17..0000000 --- a/configs/lxde-openrc/aitab +++ /dev/null @@ -1,3 +0,0 @@ -# -root-image / i686 xz ext4 50% -root-image / x86_64 xz ext4 50% diff --git a/configs/lxde-openrc/build.sh b/configs/lxde-openrc/build.sh index 98a61eb..725605a 100755 --- a/configs/lxde-openrc/build.sh +++ b/configs/lxde-openrc/build.sh @@ -5,18 +5,23 @@ set -e -u iso_name=parabola-openrc-lxde iso_label="PARA_$(date +%Y%m)" iso_version=$(date +%Y.%m.%d) -iso_edition="LXDE" -iso_title="Parabola GNU/Linux-libre - ${iso_edition} Desktop LiveCD" +iso_title="Parabola GNU/Linux-libre - LXDE Desktop LiveCD" install_dir=parabola work_dir=work out_dir=out -data_dir=/usr/share/parabolaiso/data +gpg_key= arch=$(uname -m) verbose="" -pacman_conf=${work_dir}/pacman.conf script_path=$(readlink -f ${0%/*}) -initcpio_dir=${script_path}/../../parabolaiso/initcpio + +# Init system. Options are: +# - openrc +# - runit +# - systemd +# +# Default is systemd +init=openrc _usage () { @@ -48,56 +53,76 @@ run_once() { fi } -# Setup custom pacman.conf with current cache directories. +# Setup custom pacman.conf with current cache directories and custom mirrorlist. make_pacman_conf() { local _cache_dirs _cache_dirs=($(pacman -v 2>&1 | grep '^Cache Dirs:' | sed 's/Cache Dirs:\s*//g')) - sed -r "s|^#?\\s*CacheDir.+|CacheDir = $(echo -n ${_cache_dirs[@]})|g" ${script_path}/pacman.conf > ${pacman_conf} + sed -r "s|^#?\\s*CacheDir.+|CacheDir = $(echo -n ${_cache_dirs[@]})|g" ${script_path}/pacman.conf > ${work_dir}/pacman.conf } -# Base installation, plus needed packages (root-image) +# Base installation, plus needed packages (airootfs) make_basefs() { - setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" init - setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" -p "memtest86+ mkinitcpio-nfs-utils nbd" install + setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -i "${init}" init + setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -i "${init}" -p "haveged memtest86+ mkinitcpio-nfs-utils nbd zsh" install } -# Additional packages (root-image) +# Additional packages (airootfs) make_packages() { - setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" -p "$(grep -h -v ^# ${script_path}/packages.{both,${arch}})" install + setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -p "$(grep -h -v ^# ${script_path}/packages.{both,${arch}})" install +} + +# Needed packages for x86_64 EFI boot +make_packages_efi() { + setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -p "efitools" install } -# Copy mkinitcpio parabolaiso hooks and build initramfs (root-image) +# Copy mkinitcpio parabolaiso hooks and build initramfs (airootfs) make_setup_mkinitcpio() { local _hook + mkdir -p ${work_dir}/${arch}/airootfs/etc/initcpio/hooks + mkdir -p ${work_dir}/${arch}/airootfs/etc/initcpio/install for _hook in parabolaiso parabolaiso_shutdown parabolaiso_pxe_common parabolaiso_pxe_nbd parabolaiso_pxe_http parabolaiso_pxe_nfs parabolaiso_loop_mnt; do - cp ${initcpio_dir}/hooks/${_hook} ${work_dir}/${arch}/root-image/usr/lib/initcpio/hooks - cp ${initcpio_dir}/install/${_hook} ${work_dir}/${arch}/root-image/usr/lib/initcpio/install + cp /usr/lib/initcpio/hooks/${_hook} ${work_dir}/${arch}/airootfs/etc/initcpio/hooks + cp /usr/lib/initcpio/install/${_hook} ${work_dir}/${arch}/airootfs/etc/initcpio/install done - cp ${initcpio_dir}/install/parabolaiso_kms ${work_dir}/${arch}/root-image/usr/lib/initcpio/install - cp ${initcpio_dir}/hooks/parabolaiso_shutdown ${work_dir}/${arch}/root-image/usr/lib/initcpio - cp ${script_path}/mkinitcpio.conf ${work_dir}/${arch}/root-image/etc/mkinitcpio-parabolaiso.conf - setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" -r 'mkinitcpio -c /etc/mkinitcpio-parabolaiso.conf -k /boot/vmlinuz-linux-libre -g /boot/parabolaiso.img' run + sed -i "s|/usr/lib/initcpio/|/etc/initcpio/|g" ${work_dir}/${arch}/airootfs/etc/initcpio/install/parabolaiso_shutdown + cp /usr/lib/initcpio/install/parabolaiso_kms ${work_dir}/${arch}/airootfs/etc/initcpio/install + cp /usr/lib/initcpio/parabolaiso_shutdown ${work_dir}/${arch}/airootfs/etc/initcpio + cp ${script_path}/mkinitcpio.conf ${work_dir}/${arch}/airootfs/etc/mkinitcpio-parabolaiso.conf + gnupg_fd= + if [[ ${gpg_key} ]]; then + gpg --export ${gpg_key} >${work_dir}/gpgkey + exec 17<>${work_dir}/gpgkey + fi + PARABOLAISO_GNUPG_FD=${gpg_key:+17} setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -r 'mkinitcpio -c /etc/mkinitcpio-parabolaiso.conf -k /boot/vmlinuz-linux-libre -g /boot/parabolaiso.img' run + if [[ ${gpg_key} ]]; then + exec 17<&- + fi } -# Customize installation (root-image) -make_customize_root_image() { - cp -af ${script_path}/root-image ${work_dir}/${arch} +# Customize installation (airootfs) +make_customize_airootfs() { + cp -af ${script_path}/airootfs ${work_dir}/${arch} - iso_version="${iso_version}" setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" -r '/root/customize_root_image.sh' run - rm ${work_dir}/${arch}/root-image/root/customize_root_image.sh + curl -o ${work_dir}/${arch}/airootfs/etc/pacman.d/mirrorlist 'https://www.parabola.nu/mirrorlist/?country=all&protocol=http&use_mirror_status=on' + + lynx -dump -nolist 'https://wiki.parabola.nu/index.php/Installation_Guide?action=render' >> ${work_dir}/${arch}/airootfs/root/install.txt + + setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -r '/root/customize_airootfs.sh' run + rm ${work_dir}/${arch}/airootfs/root/customize_airootfs.sh } # Prepare kernel/initramfs ${install_dir}/boot/ make_boot() { mkdir -p ${work_dir}/iso/${install_dir}/boot/${arch} - cp ${work_dir}/${arch}/root-image/boot/parabolaiso.img ${work_dir}/iso/${install_dir}/boot/${arch}/parabolaiso.img - cp ${work_dir}/${arch}/root-image/boot/vmlinuz-linux-libre ${work_dir}/iso/${install_dir}/boot/${arch}/vmlinuz + cp ${work_dir}/${arch}/airootfs/boot/parabolaiso.img ${work_dir}/iso/${install_dir}/boot/${arch}/parabolaiso.img + cp ${work_dir}/${arch}/airootfs/boot/vmlinuz-linux-libre ${work_dir}/iso/${install_dir}/boot/${arch}/vmlinuz } # Add other aditional/extra files to ${install_dir}/boot/ make_boot_extra() { - cp ${work_dir}/${arch}/root-image/boot/memtest86+/memtest.bin ${work_dir}/iso/${install_dir}/boot/memtest - cp ${work_dir}/${arch}/root-image/usr/share/licenses/common/GPL2/license.txt ${work_dir}/iso/${install_dir}/boot/memtest.COPYING + cp ${work_dir}/${arch}/airootfs/boot/memtest86+/memtest.bin ${work_dir}/iso/${install_dir}/boot/memtest + cp ${work_dir}/${arch}/airootfs/usr/share/licenses/common/GPL2/license.txt ${work_dir}/iso/${install_dir}/boot/memtest.COPYING } # Prepare /${install_dir}/boot/syslinux @@ -108,13 +133,13 @@ make_syslinux() { s|%INSTALL_DIR%|${install_dir}|g" ${_cfg} > ${work_dir}/iso/${install_dir}/boot/syslinux/${_cfg##*/} done cp ${script_path}/syslinux/splash.png ${work_dir}/iso/${install_dir}/boot/syslinux - cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/*.c32 ${work_dir}/iso/${install_dir}/boot/syslinux - cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/lpxelinux.0 ${work_dir}/iso/${install_dir}/boot/syslinux - cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/memdisk ${work_dir}/iso/${install_dir}/boot/syslinux + cp ${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/*.c32 ${work_dir}/iso/${install_dir}/boot/syslinux + cp ${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/lpxelinux.0 ${work_dir}/iso/${install_dir}/boot/syslinux + cp ${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/memdisk ${work_dir}/iso/${install_dir}/boot/syslinux mkdir -p ${work_dir}/iso/${install_dir}/boot/syslinux/hdt - gzip -c -9 ${work_dir}/${arch}/root-image/usr/share/hwdata/pci.ids > ${work_dir}/iso/${install_dir}/boot/syslinux/hdt/pciids.gz - gzip -c -9 ${work_dir}/${arch}/root-image/usr/lib/modules/*-gnu-*/modules.alias > ${work_dir}/iso/${install_dir}/boot/syslinux/hdt/modalias.gz - + gzip -c -9 ${work_dir}/${arch}/airootfs/usr/share/hwdata/pci.ids > ${work_dir}/iso/${install_dir}/boot/syslinux/hdt/pciids.gz + gzip -c -9 ${work_dir}/${arch}/airootfs/usr/lib/modules/*-gnu-*/modules.alias > ${work_dir}/iso/${install_dir}/boot/syslinux/hdt/modalias.gz + # inject edition title sed -i "s|_EDITION_TITLE_|${iso_title}|" ${work_dir}/iso/${install_dir}/boot/syslinux/parabolaiso_head.cfg } @@ -123,14 +148,16 @@ make_syslinux() { make_isolinux() { mkdir -p ${work_dir}/iso/isolinux sed "s|%INSTALL_DIR%|${install_dir}|g" ${script_path}/isolinux/isolinux.cfg > ${work_dir}/iso/isolinux/isolinux.cfg - cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/isolinux.bin ${work_dir}/iso/isolinux/ - cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/isohdpfx.bin ${work_dir}/iso/isolinux/ - cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/ldlinux.c32 ${work_dir}/iso/isolinux/ + cp ${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/isolinux.bin ${work_dir}/iso/isolinux/ + cp ${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/isohdpfx.bin ${work_dir}/iso/isolinux/ + cp ${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/ldlinux.c32 ${work_dir}/iso/isolinux/ } # Prepare /EFI make_efi() { mkdir -p ${work_dir}/iso/EFI/boot + cp ${work_dir}/x86_64/airootfs/usr/share/efitools/efi/PreLoader.efi ${work_dir}/iso/EFI/boot/bootx64.efi + cp ${work_dir}/x86_64/airootfs/usr/share/efitools/efi/HashTool.efi ${work_dir}/iso/EFI/boot/ mkdir -p ${work_dir}/iso/loader/entries cp ${script_path}/efiboot/loader/loader.conf ${work_dir}/iso/loader/ @@ -141,17 +168,17 @@ make_efi() { s|%INSTALL_DIR%|${install_dir}|g" \ ${script_path}/efiboot/loader/entries/parabolaiso-x86_64-usb.conf > ${work_dir}/iso/loader/entries/parabolaiso-x86_64.conf - # EFI Shell 2.0 for UEFI 2.3+ ( http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=UEFI_Shell ) - cp ${data_dir}/Shell.efi ${work_dir}/iso/EFI/shellx64_v2.efi - # EFI Shell 1.0 for non UEFI 2.3+ ( http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=Efi-shell ) - cp ${data_dir}/Shell_Full.efi ${work_dir}/iso/EFI/shellx64_v1.efi + # EFI Shell 2.0 for UEFI 2.3+ + curl -o ${work_dir}/iso/EFI/shellx64_v2.efi https://raw.githubusercontent.com/tianocore/edk2/master/ShellBinPkg/UefiShell/X64/Shell.efi + # EFI Shell 1.0 for non UEFI 2.3+ + curl -o ${work_dir}/iso/EFI/shellx64_v1.efi https://raw.githubusercontent.com/tianocore/edk2/master/EdkShellBinPkg/FullShell/X64/Shell_Full.efi } # Prepare efiboot.img::/EFI for "El Torito" EFI boot mode make_efiboot() { mkdir -p ${work_dir}/iso/EFI/parabolaiso - truncate -s 38M ${work_dir}/iso/EFI/parabolaiso/efiboot.img - mkfs.vfat -n PARABOLAISO_EFI ${work_dir}/iso/EFI/parabolaiso/efiboot.img + truncate -s 64M ${work_dir}/iso/EFI/parabolaiso/efiboot.img + mkfs.fat -n PARABOLAISO_EFI ${work_dir}/iso/EFI/parabolaiso/efiboot.img mkdir -p ${work_dir}/efiboot mount ${work_dir}/iso/EFI/parabolaiso/efiboot.img ${work_dir}/efiboot @@ -161,6 +188,8 @@ make_efiboot() { cp ${work_dir}/iso/${install_dir}/boot/x86_64/parabolaiso.img ${work_dir}/efiboot/EFI/parabolaiso/parabolaiso.img mkdir -p ${work_dir}/efiboot/EFI/boot + cp ${work_dir}/x86_64/airootfs/usr/share/efitools/efi/PreLoader.efi ${work_dir}/efiboot/EFI/boot/bootx64.efi + cp ${work_dir}/x86_64/airootfs/usr/share/efitools/efi/HashTool.efi ${work_dir}/efiboot/EFI/boot/ mkdir -p ${work_dir}/efiboot/loader/entries cp ${script_path}/efiboot/loader/loader.conf ${work_dir}/efiboot/loader/ @@ -174,27 +203,20 @@ make_efiboot() { cp ${work_dir}/iso/EFI/shellx64_v2.efi ${work_dir}/efiboot/EFI/ cp ${work_dir}/iso/EFI/shellx64_v1.efi ${work_dir}/efiboot/EFI/ - umount ${work_dir}/efiboot + umount -d ${work_dir}/efiboot } -# Copy aitab -make_aitab() { - mkdir -p ${work_dir}/iso/${install_dir} - cp ${script_path}/aitab ${work_dir}/iso/${install_dir}/aitab -} - -# Build all filesystem images specified in aitab (.fs.sfs .sfs) +# Build airootfs filesystem image make_prepare() { - cp -a -l -f ${work_dir}/${arch}/root-image ${work_dir} + cp -a -l -f ${work_dir}/${arch}/airootfs ${work_dir} setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}" -D "${install_dir}" pkglist - setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}" -D "${install_dir}" prepare - rm -rf ${work_dir}/root-image - # rm -rf ${work_dir}/${arch}/root-image (if low space, this helps) + setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}" -D "${install_dir}" ${gpg_key:+-g ${gpg_key}} prepare + rm -rf ${work_dir}/airootfs + # rm -rf ${work_dir}/${arch}/airootfs (if low space, this helps) } # Build ISO make_iso() { - mkparabolaiso ${verbose} -w "${work_dir}" -D "${install_dir}" checksum mkparabolaiso ${verbose} -w "${work_dir}" -D "${install_dir}" -L "${iso_label}" -o "${out_dir}" iso "${iso_name}-${iso_version}-dual.iso" } @@ -208,7 +230,7 @@ if [[ ${arch} != x86_64 ]]; then _usage 1 fi -while getopts 'N:V:L:D:w:o:vh' arg; do +while getopts 'N:V:L:D:w:o:g:vh' arg; do case "${arg}" in N) iso_name="${OPTARG}" ;; V) iso_version="${OPTARG}" ;; @@ -216,6 +238,7 @@ while getopts 'N:V:L:D:w:o:vh' arg; do D) install_dir="${OPTARG}" ;; w) work_dir="${OPTARG}" ;; o) out_dir="${OPTARG}" ;; + g) gpg_key="${OPTARG}" ;; v) verbose="-v" ;; h) _usage 0 ;; *) @@ -229,12 +252,17 @@ mkdir -p ${work_dir} run_once make_pacman_conf -# Do all stuff for each root-image +# Do all stuff for each airootfs for arch in i686 x86_64; do run_once make_basefs run_once make_packages +done + +run_once make_packages_efi + +for arch in i686 x86_64; do run_once make_setup_mkinitcpio - run_once make_customize_root_image + run_once make_customize_airootfs done for arch in i686 x86_64; do @@ -242,17 +270,11 @@ for arch in i686 x86_64; do done # Do all stuff for "iso" - -if [[ $(lsmod|grep loop) = "" ]]; then - modprobe loop -fi - run_once make_boot_extra run_once make_syslinux run_once make_isolinux run_once make_efi run_once make_efiboot -run_once make_aitab for arch in i686 x86_64; do run_once make_prepare diff --git a/configs/lxde-openrc/mkinitcpio.conf b/configs/lxde-openrc/mkinitcpio.conf index fc2572b..9448579 100644 --- a/configs/lxde-openrc/mkinitcpio.conf +++ b/configs/lxde-openrc/mkinitcpio.conf @@ -1,3 +1,3 @@ MODULES="loop" -HOOKS="base udev memdisk parabolaiso_shutdown parabolaiso parabolaiso_loop_mnt parabolaiso_pxe_common parabolaiso_pxe_nbd parabolaiso_pxe_http parabolaiso_pxe_nfs parabolaiso_kms block pcmcia filesystems keyboard" +HOOKS=(base udev memdisk parabolaiso_shutdown parabolaiso parabolaiso_loop_mnt parabolaiso_pxe_common parabolaiso_pxe_nbd parabolaiso_pxe_http parabolaiso_pxe_nfs parabolaiso_kms block pcmcia filesystems keyboard) COMPRESSION="xz" diff --git a/configs/lxde-openrc/root-image/etc/conf.d/agetty.tty1 b/configs/lxde-openrc/root-image/etc/conf.d/agetty.tty1 deleted file mode 100644 index b7ff06d..0000000 --- a/configs/lxde-openrc/root-image/etc/conf.d/agetty.tty1 +++ /dev/null @@ -1,11 +0,0 @@ -# Set the baud rate of the terminal line -baud="38400" - -# set the terminal type -term_type="linux" - -# extra options to pass to agetty for this port -agetty_options="--autologin root --noclear" - -# make agetty quiet -#quiet="no" diff --git a/configs/lxde-openrc/root-image/etc/conf.d/hostname b/configs/lxde-openrc/root-image/etc/conf.d/hostname deleted file mode 100644 index a701f0c..0000000 --- a/configs/lxde-openrc/root-image/etc/conf.d/hostname +++ /dev/null @@ -1,2 +0,0 @@ -# Set to the hostname of this machine -hostname="parabolaiso" diff --git a/configs/lxde-openrc/root-image/etc/fstab b/configs/lxde-openrc/root-image/etc/fstab deleted file mode 100644 index e69de29..0000000 diff --git a/configs/lxde-openrc/root-image/etc/init.d/pacman-init b/configs/lxde-openrc/root-image/etc/init.d/pacman-init deleted file mode 100755 index b610683..0000000 --- a/configs/lxde-openrc/root-image/etc/init.d/pacman-init +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/openrc-run -# Copyright (C) 2017 Parabola Project -# Copyright (C) Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -description="Initializes Pacman keyring" - -depend() { - use haveged - after haveged -} - -start() { - # Check that there's no keyring, if there isn't, create one - # in the background for a faster boot - if [ ! -d /etc/pacman.d/gnupg ]; then - ebegin "Starting Pacman keyring" - pacman-key --init &> /dev/null && - pacman-key --populate archlinux parabola &> /dev/null - else - ebegin "Pacman keyring already started" - fi -} - -stop() { - # If there's a keyring, delete it - if [ -d /etc/pacman.d/gnupg ]; then - ebegin "Stoping Pacman keyring" - rm -rf /etc/pacman.d/gnupg - fi -} diff --git a/configs/lxde-openrc/root-image/etc/locale.conf b/configs/lxde-openrc/root-image/etc/locale.conf deleted file mode 100644 index 01ec548..0000000 --- a/configs/lxde-openrc/root-image/etc/locale.conf +++ /dev/null @@ -1 +0,0 @@ -LANG=en_US.UTF-8 diff --git a/configs/lxde-openrc/root-image/etc/motd b/configs/lxde-openrc/root-image/etc/motd deleted file mode 100644 index e4ff560..0000000 --- a/configs/lxde-openrc/root-image/etc/motd +++ /dev/null @@ -1,13 +0,0 @@ - -=============================================================================== - - Parabola GNU/Linux-libre Live _DATE_ - - To install Parabola, the system must be connected to the internet. - For installation itself, enter this command: - ./install.sh - - Press the function keys while holding Alt to switch virtual terminals. - -=============================================================================== - diff --git a/configs/lxde-openrc/root-image/etc/pam.d/su b/configs/lxde-openrc/root-image/etc/pam.d/su deleted file mode 100644 index a291042..0000000 --- a/configs/lxde-openrc/root-image/etc/pam.d/su +++ /dev/null @@ -1,6 +0,0 @@ -#%PAM-1.0 -auth sufficient pam_rootok.so -auth sufficient pam_wheel.so trust use_uid -auth required pam_unix.so -account required pam_unix.so -session required pam_unix.so diff --git a/configs/lxde-openrc/root-image/etc/skel/.config/lxsession/LXDE/desktop.conf b/configs/lxde-openrc/root-image/etc/skel/.config/lxsession/LXDE/desktop.conf deleted file mode 100644 index c50f484..0000000 --- a/configs/lxde-openrc/root-image/etc/skel/.config/lxsession/LXDE/desktop.conf +++ /dev/null @@ -1,48 +0,0 @@ -[Session] -window_manager=openbox-lxde -disable_autostart=no -polkit/command=sleep 5s && lxpolkit -clipboard/command=lxclipboard -xsettings_manager/command=build-in -proxy_manager/command=build-in -keyring/command=ssh-agent -quit_manager/command=lxsession-logout -lock_manager/command=lxlock -terminal_manager/command=lxterminal - -[GTK] -sNet/ThemeName=Adwaita -sNet/IconThemeName=nuoveXT2 -sGtk/FontName=Sans 10 -iGtk/ToolbarStyle=3 -iGtk/ButtonImages=1 -iGtk/MenuImages=1 -iGtk/CursorThemeSize=18 -iXft/Antialias=1 -iXft/Hinting=1 -sXft/HintStyle=hintslight -sXft/RGBA=rgb -iNet/EnableEventSounds=1 -iNet/EnableInputFeedbackSounds=1 -sGtk/ColorScheme= -iGtk/ToolbarIconSize=3 -sGtk/CursorThemeName=DMZ-White - -[Mouse] -AccFactor=20 -AccThreshold=10 -LeftHanded=0 - -[Keyboard] -Delay=500 -Interval=30 -Beep=1 - -[State] -guess_default=true - -[Dbus] -lxde=true - -[Environment] -menu_prefix=lxde- diff --git a/configs/lxde-openrc/root-image/etc/skel/.config/pcmanfm/LXDE/desktop-items-0.conf b/configs/lxde-openrc/root-image/etc/skel/.config/pcmanfm/LXDE/desktop-items-0.conf deleted file mode 100644 index 6186fce..0000000 --- a/configs/lxde-openrc/root-image/etc/skel/.config/pcmanfm/LXDE/desktop-items-0.conf +++ /dev/null @@ -1,14 +0,0 @@ -[*] -wallpaper_mode=crop -wallpaper_common=1 -wallpaper=/etc/wallpaper.png -desktop_bg=#000000 -desktop_fg=#ffffff -desktop_shadow=#000000 -desktop_font=Sans 12 -show_wm_menu=0 -sort=mtime;ascending; -show_documents=0 -show_trash=1 -show_mounts=1 - diff --git a/configs/lxde-openrc/root-image/etc/sudoers.d/g_wheel b/configs/lxde-openrc/root-image/etc/sudoers.d/g_wheel deleted file mode 100644 index 8c45359..0000000 --- a/configs/lxde-openrc/root-image/etc/sudoers.d/g_wheel +++ /dev/null @@ -1 +0,0 @@ -%wheel ALL=(ALL) NOPASSWD: ALL diff --git a/configs/lxde-openrc/root-image/etc/udev/rules.d/81-dhcpcd.rules b/configs/lxde-openrc/root-image/etc/udev/rules.d/81-dhcpcd.rules deleted file mode 100644 index 970da69..0000000 --- a/configs/lxde-openrc/root-image/etc/udev/rules.d/81-dhcpcd.rules +++ /dev/null @@ -1 +0,0 @@ -ACTION=="add", SUBSYSTEM=="net", ENV{SYSTEMD_WANTS}="dhcpcd@$name.service" diff --git a/configs/lxde-openrc/root-image/etc/wallpaper.png b/configs/lxde-openrc/root-image/etc/wallpaper.png deleted file mode 100644 index d2a3927..0000000 Binary files a/configs/lxde-openrc/root-image/etc/wallpaper.png and /dev/null differ diff --git a/configs/lxde-openrc/root-image/root/.automated_script.sh b/configs/lxde-openrc/root-image/root/.automated_script.sh deleted file mode 100755 index fb106da..0000000 --- a/configs/lxde-openrc/root-image/root/.automated_script.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/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:// || "${script}" =~ ^ftp:// ]]; then - wget "${script}" --retry-connrefused -q -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/configs/lxde-openrc/root-image/root/.codecheck b/configs/lxde-openrc/root-image/root/.codecheck deleted file mode 100644 index 8b10d0c..0000000 --- a/configs/lxde-openrc/root-image/root/.codecheck +++ /dev/null @@ -1,2 +0,0 @@ -LANG=0 -XKBMAP=0 diff --git a/configs/lxde-openrc/root-image/root/.config/dconf/user b/configs/lxde-openrc/root-image/root/.config/dconf/user deleted file mode 100644 index dab7f59..0000000 Binary files a/configs/lxde-openrc/root-image/root/.config/dconf/user and /dev/null differ diff --git a/configs/lxde-openrc/root-image/root/.config/gtk-2.0/gtkfilechooser.ini b/configs/lxde-openrc/root-image/root/.config/gtk-2.0/gtkfilechooser.ini deleted file mode 100644 index c6b458d..0000000 --- a/configs/lxde-openrc/root-image/root/.config/gtk-2.0/gtkfilechooser.ini +++ /dev/null @@ -1,11 +0,0 @@ -[Filechooser Settings] -LocationMode=path-bar -ShowHidden=true -ShowSizeColumn=true -GeometryX=52 -GeometryY=86 -GeometryWidth=920 -GeometryHeight=585 -SortColumn=name -SortOrder=ascending -StartupMode=recent diff --git a/configs/lxde-openrc/root-image/root/.config/lxsession/LXDE/autostart b/configs/lxde-openrc/root-image/root/.config/lxsession/LXDE/autostart deleted file mode 100644 index 3942b5a..0000000 --- a/configs/lxde-openrc/root-image/root/.config/lxsession/LXDE/autostart +++ /dev/null @@ -1,4 +0,0 @@ -@lxpanel --profile LXDE -@pcmanfm --desktop --profile LXDE -@xscreensaver -no-splash -@/root/.keymap.sh diff --git a/configs/lxde-openrc/root-image/root/.config/lxsession/LXDE/desktop.conf b/configs/lxde-openrc/root-image/root/.config/lxsession/LXDE/desktop.conf deleted file mode 100644 index c50f484..0000000 --- a/configs/lxde-openrc/root-image/root/.config/lxsession/LXDE/desktop.conf +++ /dev/null @@ -1,48 +0,0 @@ -[Session] -window_manager=openbox-lxde -disable_autostart=no -polkit/command=sleep 5s && lxpolkit -clipboard/command=lxclipboard -xsettings_manager/command=build-in -proxy_manager/command=build-in -keyring/command=ssh-agent -quit_manager/command=lxsession-logout -lock_manager/command=lxlock -terminal_manager/command=lxterminal - -[GTK] -sNet/ThemeName=Adwaita -sNet/IconThemeName=nuoveXT2 -sGtk/FontName=Sans 10 -iGtk/ToolbarStyle=3 -iGtk/ButtonImages=1 -iGtk/MenuImages=1 -iGtk/CursorThemeSize=18 -iXft/Antialias=1 -iXft/Hinting=1 -sXft/HintStyle=hintslight -sXft/RGBA=rgb -iNet/EnableEventSounds=1 -iNet/EnableInputFeedbackSounds=1 -sGtk/ColorScheme= -iGtk/ToolbarIconSize=3 -sGtk/CursorThemeName=DMZ-White - -[Mouse] -AccFactor=20 -AccThreshold=10 -LeftHanded=0 - -[Keyboard] -Delay=500 -Interval=30 -Beep=1 - -[State] -guess_default=true - -[Dbus] -lxde=true - -[Environment] -menu_prefix=lxde- diff --git a/configs/lxde-openrc/root-image/root/.config/pcmanfm/LXDE/desktop-items-0.conf b/configs/lxde-openrc/root-image/root/.config/pcmanfm/LXDE/desktop-items-0.conf deleted file mode 100644 index 6186fce..0000000 --- a/configs/lxde-openrc/root-image/root/.config/pcmanfm/LXDE/desktop-items-0.conf +++ /dev/null @@ -1,14 +0,0 @@ -[*] -wallpaper_mode=crop -wallpaper_common=1 -wallpaper=/etc/wallpaper.png -desktop_bg=#000000 -desktop_fg=#ffffff -desktop_shadow=#000000 -desktop_font=Sans 12 -show_wm_menu=0 -sort=mtime;ascending; -show_documents=0 -show_trash=1 -show_mounts=1 - diff --git a/configs/lxde-openrc/root-image/root/.config/volumeicon/volumeicon b/configs/lxde-openrc/root-image/root/.config/volumeicon/volumeicon deleted file mode 100644 index 588b9dd..0000000 --- a/configs/lxde-openrc/root-image/root/.config/volumeicon/volumeicon +++ /dev/null @@ -1,25 +0,0 @@ -[Alsa] -card=default - -[Notification] -show_notification=true -notification_type=0 - -[StatusIcon] -stepsize=5 -onclick=xterm -e 'alsamixer' -theme=Default -use_panel_specific_icons=false -lmb_slider=false -mmb_mute=false -use_horizontal_slider=false -show_sound_level=false -use_transparent_background=false - -[Hotkeys] -up_enabled=false -down_enabled=false -mute_enabled=false -up=XF86AudioRaiseVolume -down=XF86AudioLowerVolume -mute=XF86AudioMute diff --git a/configs/lxde-openrc/root-image/root/.keymap.sh b/configs/lxde-openrc/root-image/root/.keymap.sh deleted file mode 100755 index 56eb1dc..0000000 --- a/configs/lxde-openrc/root-image/root/.keymap.sh +++ /dev/null @@ -1,116 +0,0 @@ -#!/bin/bash - -list_keymaps() { -cat <> ~/.codecheck -fi diff --git a/configs/lxde-openrc/root-image/root/.language.sh b/configs/lxde-openrc/root-image/root/.language.sh deleted file mode 100755 index 11e986e..0000000 --- a/configs/lxde-openrc/root-image/root/.language.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash - -#Comprobe if language was selected -code=$(cat ~/.codecheck | grep LANG= | tail --bytes 2) -if [ $code = "0" ]; then - lang=$(dialog --stdout --backtitle "System language selection" --menu "Choose your language:" 15 40 10 \ - "en_US.UTF-8" "English" \ - "gl_ES.UTF-8" "Galego" \ - "es_ES.UTF-8" "Spanish" \ - "pt_BR.UTF-8" "Brazilian Portuguese" \ - "pl_PL.UTF-8" "Polish" \ - "it_IT.UTF-8" "Italian" \ - "fr_FR.UTF-8" "French" \ - "eo" "Esperanto") - - #Copy locale in locale.conf - [ $lang = "" ] || echo "LANG=$lang" > /etc/locale.conf - - #Put a new line confirm that language was selected - sed -i '/LANG=./d' ~/.codecheck - echo "LANG=1" >> ~/.codecheck - - #Copy scripts to install in that language - case ${lang/_*/} in - en|gl|es|pt) cp -a ~/.scriptsInstallation/language/${lang/_*/}/* ~/.scriptsInstallation/ - cp ~/.scriptsInstallation/install.sh ~/ - ;; - *) cp -a ~/.scriptsInstallation/language/en/* ~/.scriptsInstallation/ - cp ~/.scriptsInstallation/install.sh ~/ - ;; - esac -fi diff --git a/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/en/install.sh b/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/en/install.sh deleted file mode 100755 index 4120079..0000000 --- a/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/en/install.sh +++ /dev/null @@ -1,227 +0,0 @@ -#!/bin/bash -#Temporal is a file that contains parameters to use when access to chroot - -if [ ! -f ~/.scriptsInstallation/.pacman ]; then - pacman -Sy parabola-keyring archlinux-keyring --noconfirm - pacman-key --populate parabola archlinux - pacman-key --refresh-keys - case $? in - 0) touch ~/.scriptsInstallation/.pacman - ;; - *) false - ;; - esac -fi - -partition(){ - - #Search and show the Hard Disks to select - aux=$(ls /dev/sd?) - index=0 - for i in $aux; do - hdds[$index]="${i} ${i#/*/} off" - index=$((index+1)) - done - - hdd=$(dialog --stdout --radiolist "Select Hard Disk" 20 70 50 ${hdds[@]}) - - #If exist the line delete - if (cat ~/.scriptsInstallation/temporal | grep "hdd=") &>/dev/null - then - sed -i -e '/hdd=*/d' ~/.scriptsInstallation/temporal - fi - - #And add the new line with new parameter - echo "hdd=$hdd" >> ~/.scriptsInstallation/temporal - - selection=$(dialog --stdout --menu "Partitioning method" 20 70 50 \ - 1 "Use all disk with swap (1GB) and /" \ - 2 "Use gparted to customize" ) - - case $selection in - 1) - umount /mnt &> /dev/null - #Create msdos partition table - parted -s $hdd -- mklabel msdos - - #Create partition swap and / - parted -s $hdd -- mkpart primary 1MiB 1000MiB mkpart primary 1000MiB -1s - - #Boot option partition / - parted -s $hdd -- set 2 boot on - - #Format and partitions and mount / - (echo t; echo 1; echo 82; echo w) | fdisk $hdd - mkswap ${hdd}1 - mkfs.ext4 ${hdd}2 - mount ${hdd}2 /mnt - ;; - 2) - gparted $hdd - - #Search and show the partitions that select before. - aux=$(ls $hdd?) - index=0; - for i in $aux; do - partitions[$index]="${i} ${i#/*/} off" - index=$((index+1)) - done - - partition=$(dialog --stdout --radiolist "Mount / Partition" 20 70 50 ${partitions[@]}) - - #Mount partition / - umount /mnt &> /dev/null - mount $partition /mnt - - #Ask if you want mount other partitions - other=0 - while [ $other != 3 ]; do - other=$(dialog --stdout --menu "Mount other partition?" 20 70 50 1 "/home" 2 "/boot" 3 "No") - - case $other in - 1) - umount /mnt/home &> /dev/null - mkdir /mnt/home &> /dev/null - mount $(dialog --stdout --radiolist "Mount /home Partition" 20 70 50 ${partitions[@]}) /mnt/home - ;; - 2) - umount /mnt/boot &> /dev/null - mkdir /mnt/boot &> /dev/null - mount $(dialog --stdout --radiolist "Mount /boot Partition" 20 70 50 ${partitions[@]}) /mnt/boot - ;; - *) - other=3 - ;; - esac - done - ;; - esac -} - - -option=0 -while [ option != 7 ]; do - option=$(dialog --stdout --menu "Parabola Installation CLI" 20 70 50 \ - 1 "Format and Mount Partitions" \ - 2 "Install Base System" \ - 3 "Install GRUB" \ - 4 "System Configure" \ - 5 "Create User Account" \ - 6 "(Optional) Install Live DVD Desktop/Applications" \ - 7 "Exit" ) - - case $option in - 1) - partition - ;; - 2) - #Install base system - pacstrap /mnt base-openrc - pacstrap /mnt dialog - ;; - 3) - #Install grub - pacstrap /mnt grub - ;; - 4) - #Generate fstab and acces to chroot to do System Config - genfstab -p /mnt >> /mnt/etc/fstab - cp ~/.scriptsInstallation/temporal /mnt - cp ~/.scriptsInstallation/systemConfig.sh /mnt - chmod +x /mnt/systemConfig.sh - arch-chroot /mnt /systemConfig.sh - rm -r /mnt/systemConfig.sh - ;; - 5) - #Create a new username and save in temporal, to use after - if (cat ~/.scriptsInstallation/temporal | grep "userName=") &>/dev/null - then - sed -i -e '/userName=*/d' ~/.scriptsInstallation/temporal - fi - - echo "userName=$(dialog --stdout --inputbox "Enter an User Name" 8 40)" >> ~/.scriptsInstallation/temporal - cp ~/.scriptsInstallation/temporal /mnt - cp ~/.scriptsInstallation/userAccount.sh /mnt - chmod +x /mnt/userAccount.sh - arch-chroot /mnt /userAccount.sh - rm -r /mnt/userAccount.sh - ;; - 6) - #Packages to the X11 live - packages=( "xorg-server" - "xf86-input-evdev" - "xf86-input-synaptics" - "xf86-video-ati" - "xf86-video-dummy" - "xf86-video-fbdev" - "xf86-video-intel" - "xf86-video-nouveau" - "xf86-video-openchrome" - "xf86-video-sisusb" - "xf86-video-vesa" - "xf86-video-vmware" - "xf86-video-voodoo" - "xf86-video-qxl" - "xorg-xinit" - "gst-plugins-good" - "gst-libav" - "lxde" - "volumeicon" - "zenity" - "octopi" - "pulseaudio-alsa" - "alsa-utils" - "networkmanager-elogind" - "network-manager-applet" - "ath9k-htc-firmware" - "iceweasel" - "icedove" - "pidgin" - "gparted" - "smplayer" - "epdfview" - "gpicview" - "abiword" - "gnumeric" - "leafpad" - "galculator-gtk2" - "xarchiver" - "openrc-desktop" - "polkit-elogind" - "gvfs-mtp" - "gvfs-gphoto2" - "xdg-user-dirs" - "gnome-screenshot" - ) - - #Install packages - pacman -Sy -r /mnt ${packages[@]} --needed --noconfirm - user=$(cat ~/.scriptsInstallation/temporal | grep "userName" ) - - #Copy skel in the new system and desktop's background - cp -a /etc/skel/ /mnt/etc/ - cp -a /etc/wallpaper.png /mnt/etc/wallpaper.png - - #Puts the XKBMAP, start X11 automatically and icewm desktop - echo "setxkbmap $(cat ~/.codecheck | grep XKBMAP= | cut -d '=' -f 2)" > /mnt/etc/skel/.xinitrc - echo "exec startlxde" >> /mnt/etc/skel/.xinitrc - echo "startx" >> /mnt/etc/skel/.bash_profile - chmod +x /mnt/etc/skel/.xinitrc - cp -a /mnt/etc/skel/.[a-z]* /mnt/home/${user#*=}/ - cp -a ~/.scriptsInstallation/x11.sh /mnt - - #Enable services with OpenRC and configure other stuff - chmod +x /mnt/x11.sh - arch-chroot /mnt /x11.sh - rm /mnt/x11.sh - ;; - *) - #Delete temporal file and umount partitions - rm -r /mnt/temporal - umount /mnt/boot &> /dev/null - umount /mnt/home &> /dev/null - umount /mnt &> /dev/null - exit - ;; - esac -done diff --git a/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/en/systemConfig.sh b/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/en/systemConfig.sh deleted file mode 100755 index d5195fb..0000000 --- a/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/en/systemConfig.sh +++ /dev/null @@ -1,271 +0,0 @@ -#!/bin/bash - -HOSTNAME=$(dialog --stdout --inputbox "Enter Hostname:" 8 40) -sed 's|localhost|'"${HOSTNAME}"'|' -i /etc/conf.d/hostname - -ln -s /usr/share/zoneinfo/$(dialog --stdout --inputbox "Enter your Zone Time:\nFor example: Europe/Athens" 8 40) /etc/localtime - -keymaps=( - "ANSI-dvorak ANSI-dvorak off" - "amiga-de amiga-de off" - "amiga-us amiga-us off" - "applkey applkey off" - "atari-de atari-de off" - "atari-se atari-se off" - "atari-uk-falcon atari-uk-falcon off" - "atari-us atari-us off" - "azerty azerty off" - "backspace backspace off" - "bashkir bashkir off" - "be-latin1 be-latin1 off" - "bg-cp1251 bg-cp1251 off" - "bg-cp855 bg-cp855 off" - "bg_bds-cp1251 bg_bds-cp1251 off" - "bg_bds-utf8 bg_bds-utf8 off" - "bg_pho-cp1251 bg_pho-cp1251 off" - "bg_pho-utf8 bg_pho-utf8 off" - "br-abnt br-abnt off" - "br-abnt2 br-abnt2 off" - "br-latin1-abnt2 br-latin1-abnt2 off" - "br-latin1-us br-latin1-us off" - "by by off" - "by-cp1251 by-cp1251 off" - "bywin-cp1251 bywin-cp1251 off" - "cf cf off" - "colemak colemak off" - "croat croat off" - "ctrl ctrl off" - "cz cz off" - "cz-cp1250 cz-cp1250 off" - "cz-lat2 cz-lat2 off" - "cz-lat2-prog cz-lat2-prog off" - "cz-qwertz cz-qwertz off" - "cz-us-qwertz cz-us-qwertz off" - "de de off" - "de-latin1 de-latin1 off" - "de-latin1-nodeadkeys de-latin1-nodeadkeys off" - "de-mobii de-mobii off" - "de_CH-latin1 de_CH-latin1 off" - "de_alt_UTF-8 de_alt_UTF-8 off" - "defkeymap defkeymap off" - "defkeymap_V1.0 defkeymap_V1.0 off" - "dk dk off" - "dk-latin1 dk-latin1 off" - "dvorak dvorak off" - "dvorak-ca-fr dvorak-ca-fr off" - "dvorak-es dvorak-es off" - "dvorak-fr dvorak-fr off" - "dvorak-l dvorak-l off" - "dvorak-r dvorak-r off" - "dvorak-ru dvorak-ru off" - "dvorak-sv-a1 dvorak-sv-a1 off" - "dvorak-sv-a5 dvorak-sv-a5 off" - "dvorak-uk dvorak-uk off" - "emacs emacs off" - "emacs2 emacs2 off" - "es es off" - "es-cp850 es-cp850 off" - "es-olpc es-olpc off" - "et et off" - "et-nodeadkeys et-nodeadkeys off" - "euro euro off" - "euro1 euro1 off" - "euro2 euro2 off" - "fi fi off" - "fr fr off" - "fr-bepo fr-bepo off" - "fr-bepo-latin9 fr-bepo-latin9 off" - "fr-latin1 fr-latin1 off" - "fr-latin9 fr-latin9 off" - "fr-pc fr-pc off" - "fr_CH fr_CH off" - "fr_CH-latin1 fr_CH-latin1 off" - "gr gr off" - "gr-pc gr-pc off" - "hu hu off" - "hu101 hu101 off" - "il il off" - "il-heb il-heb off" - "il-phonetic il-phonetic off" - "is-latin1 is-latin1 off" - "is-latin1-us is-latin1-us off" - "it it off" - "it-ibm it-ibm off" - "it2 it2 off" - "jp106 jp106 off" - "kazakh kazakh off" - "keypad keypad off" - "ky_alt_sh-UTF-8 ky_alt_sh-UTF-8 off" - "kyrgyz kyrgyz off" - "la-latin1 la-latin1 off" - "lt lt off" - "lt.baltic lt.baltic off" - "lt.l4 lt.l4 off" - "lv lv off" - "lv-tilde lv-tilde off" - "mac-be mac-be off" - "mac-de-latin1 mac-de-latin1 off" - "mac-de-latin1-nodeadkeys mac-de-latin1-nodeadkeys off" - "mac-de_CH mac-de_CH off" - "mac-dk-latin1 mac-dk-latin1 off" - "mac-dvorak mac-dvorak off" - "mac-es mac-es off" - "mac-euro mac-euro off" - "mac-euro2 mac-euro2 off" - "mac-fi-latin1 mac-fi-latin1 off" - "mac-fr mac-fr off" - "mac-fr_CH-latin1 mac-fr_CH-latin1 off" - "mac-it mac-it off" - "mac-pl mac-pl off" - "mac-pt-latin1 mac-pt-latin1 off" - "mac-se mac-se off" - "mac-template mac-template off" - "mac-uk mac-uk off" - "mac-us mac-us off" - "mk mk off" - "mk-cp1251 mk-cp1251 off" - "mk-utf mk-utf off" - "mk0 mk0 off" - "nl nl off" - "nl2 nl2 off" - "no no off" - "no-dvorak no-dvorak off" - "no-latin1 no-latin1 off" - "pc110 pc110 off" - "pl pl off" - "pl1 pl1 off" - "pl2 pl2 off" - "pl3 pl3 off" - "pl4 pl4 off" - "pt-latin1 pt-latin1 off" - "pt-latin9 pt-latin9 off" - "pt-olpc pt-olpc off" - "ro ro off" - "ro_std ro_std off" - "ro_win ro_win off" - "ru ru off" - "ru-cp1251 ru-cp1251 off" - "ru-ms ru-ms off" - "ru-yawerty ru-yawerty off" - "ru1 ru1 off" - "ru2 ru2 off" - "ru3 ru3 off" - "ru4 ru4 off" - "ru_win ru_win off" - "ruwin_alt-CP1251 ruwin_alt-CP1251 off" - "ruwin_alt-KOI8-R ruwin_alt-KOI8-R off" - "ruwin_alt-UTF-8 ruwin_alt-UTF-8 off" - "ruwin_alt_sh-UTF-8 ruwin_alt_sh-UTF-8 off" - "ruwin_cplk-CP1251 ruwin_cplk-CP1251 off" - "ruwin_cplk-KOI8-R ruwin_cplk-KOI8-R off" - "ruwin_cplk-UTF-8 ruwin_cplk-UTF-8 off" - "ruwin_ct_sh-CP1251 ruwin_ct_sh-CP1251 off" - "ruwin_ct_sh-KOI8-R ruwin_ct_sh-KOI8-R off" - "ruwin_ct_sh-UTF-8 ruwin_ct_sh-UTF-8 off" - "ruwin_ctrl-CP1251 ruwin_ctrl-CP1251 off" - "ruwin_ctrl-KOI8-R ruwin_ctrl-KOI8-R off" - "ruwin_ctrl-UTF-8 ruwin_ctrl-UTF-8 off" - "se-fi-ir209 se-fi-ir209 off" - "se-fi-lat6 se-fi-lat6 off" - "se-ir209 se-ir209 off" - "se-lat6 se-lat6 off" - "sg sg off" - "sg-latin1 sg-latin1 off" - "sg-latin1-lk450 sg-latin1-lk450 off" - "sk-prog-qwerty sk-prog-qwerty off" - "sk-prog-qwertz sk-prog-qwertz off" - "sk-qwerty sk-qwerty off" - "sk-qwertz sk-qwertz off" - "slovene slovene off" - "sr-cy sr-cy off" - "sun-pl sun-pl off" - "sun-pl-altgraph sun-pl-altgraph off" - "sundvorak sundvorak off" - "sunkeymap sunkeymap off" - "sunt4-es sunt4-es off" - "sunt4-fi-latin1 sunt4-fi-latin1 off" - "sunt4-no-latin1 sunt4-no-latin1 off" - "sunt5-cz-us sunt5-cz-us off" - "sunt5-de-latin1 sunt5-de-latin1 off" - "sunt5-es sunt5-es off" - "sunt5-fi-latin1 sunt5-fi-latin1 off" - "sunt5-fr-latin1 sunt5-fr-latin1 off" - "sunt5-ru sunt5-ru off" - "sunt5-uk sunt5-uk off" - "sunt5-us-cz sunt5-us-cz off" - "sunt6-uk sunt6-uk off" - "sv-latin1 sv-latin1 off" - "tj_alt-UTF8 tj_alt-UTF8 off" - "tr_f-latin5 tr_f-latin5 off" - "tr_q-latin5 tr_q-latin5 off" - "tralt tralt off" - "trf trf off" - "trf-fgGIod trf-fgGIod off" - "trq trq off" - "ttwin_alt-UTF-8 ttwin_alt-UTF-8 off" - "ttwin_cplk-UTF-8 ttwin_cplk-UTF-8 off" - "ttwin_ct_sh-UTF-8 ttwin_ct_sh-UTF-8 off" - "ttwin_ctrl-UTF-8 ttwin_ctrl-UTF-8 off" - "ua ua off" - "ua-cp1251 ua-cp1251 off" - "ua-utf ua-utf off" - "ua-utf-ws ua-utf-ws off" - "ua-ws ua-ws off" - "uk uk off" - "unicode unicode off" - "us us on" - "us-acentos us-acentos off" - "wangbe wangbe off" - "wangbe2 wangbe2 off" - "windowkeys windowkeys off" -) - -echo "KEYMAP=$(dialog --stdout --radiolist "Select Keymap" 20 70 50 ${keymaps[@]})" > /etc/vconsole.conf - -aux=$(sed -e '1,23d' -e 's/#//g' -e 's/ /#/g' -e 's/..$//' /etc/locale.gen) -index=0 -for i in $aux; do - i=$(echo $i | sed -e 's/#/ /g') - locales+=("$i" "$i" off) - if [[ $i == "en_US.UTF-8 UTF-8" || $i == "en_US ISO-8859-1" ]]; then - locales[$index]="$i" - locales[$((index+1))]="$i" - locales[$((index+2))]="on" - fi - index=$((index+3)) -done - -locale=$(dialog --stdout --checklist "Select Locales" 20 70 50 "${locales[@]}") -locale=$(echo ${locale} | sed -e 's/" "/\n/g' -e 's/ /#/g' -e 's/"//g') - -for i in ${locale[@]}; do - i=$(echo $i | sed -e 's/#/ /g') - sed -i -e "s/#$i/$i/g" /etc/locale.gen -done - -locale-gen - -aux=$(locale -a) -index=0 -for i in $aux; do - langs+=("$i" "$i" on) - index=$((index+1)) -done - -echo "LANG=$(dialog --stdout --radiolist "Select your language" 20 70 50 ${langs[@]})" > /etc/locale.conf - -mkinitcpio -p linux-libre - -hdd=$(cat /temporal | grep 'hdd=') -grub-install ${hdd#*=} -grub-mkconfig -o /boot/grub/grub.cfg - -password=$(dialog --stdout --passwordbox "Insert root password" 8 40) - -while [[ $password != $password2 ]]; do - password2=$(dialog --stdout --passwordbox "Repeat root password" 8 40) -done - -usermod -p $(openssl passwd ${password}) root - -exit diff --git a/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/en/userAccount.sh b/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/en/userAccount.sh deleted file mode 100755 index a9551d8..0000000 --- a/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/en/userAccount.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -user=$(cat /temporal | grep "userName") - -password=$(dialog --stdout --passwordbox "Insert ${user#*=} password" 8 40) - -while [[ $password != $password2 ]]; do - password2=$(dialog --stdout --passwordbox "Reply password" 8 40) -done - -useradd -m -g users -G "wheel" -s /bin/bash -p $(openssl passwd $password) ${user#*=} - -exit diff --git a/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/es/install.sh b/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/es/install.sh deleted file mode 100755 index 195c2a2..0000000 --- a/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/es/install.sh +++ /dev/null @@ -1,227 +0,0 @@ -#!/bin/bash -#Temporal is a file that contains parameters to use when access to chroot - -if [ ! -f ~/.scriptsInstallation/.pacman ]; then - pacman -Sy parabola-keyring archlinux-keyring --noconfirm - pacman-key --populate parabola archlinux - pacman-key --refresh-keys - case $? in - 0) touch ~/.scriptsInstallation/.pacman - ;; - *) false - ;; - esac -fi - -partition(){ - - #Search and show the Hard Disks to select - aux=$(ls /dev/sd?) - index=0 - for i in $aux; do - hdds[$index]="${i} ${i#/*/} off" - index=$((index+1)) - done - - hdd=$(dialog --stdout --radiolist "Selecciona Disco Duro" 20 70 50 ${hdds[@]}) - - #If exist the line delete - if (cat ~/.scriptsInstallation/temporal | grep "hdd=") &>/dev/null - then - sed -i -e '/hdd=*/d' ~/.scriptsInstallation/temporal - fi - - #And add the new line with new parameter - echo "hdd=$hdd" >> ~/.scriptsInstallation/temporal - - selection=$(dialog --stdout --menu "Metodo de Particionado" 20 70 50 \ - 1 "Usar todo el disco con swap (1GB) y /" \ - 2 "Usar gparted para personalizar" ) - - case $selection in - 1) - umount /mnt &> /dev/null - #Create msdos partition table - parted -s $hdd -- mklabel msdos - - #Create partition swap and / - parted -s $hdd -- mkpart primary 1MiB 1000MiB mkpart primary 1000MiB -1s - - #Boot option partition / - parted -s $hdd -- set 2 boot on - - #Format and partitions and mount / - (echo t; echo 1; echo 82; echo w) | fdisk $hdd - mkswap ${hdd}1 - mkfs.ext4 ${hdd}2 - mount ${hdd}2 /mnt - ;; - 2) - gparted $hdd - - #Search and show the partitions that select before. - aux=$(ls $hdd?) - index=0; - for i in $aux; do - partitions[$index]="${i} ${i#/*/} off" - index=$((index+1)) - done - - partition=$(dialog --stdout --radiolist "Montar particion /" 20 70 50 ${partitions[@]}) - - #Mount partition / - umount /mnt &> /dev/null - mount $partition /mnt - - #Ask if you want mount other partitions - other=0 - while [ $other != 3 ]; do - other=$(dialog --stdout --menu "¿Montar otra particion?" 20 70 50 1 "/home" 2 "/boot" 3 "No") - - case $other in - 1) - umount /mnt/home &> /dev/null - mkdir /mnt/home &> /dev/null - mount $(dialog --stdout --radiolist "Montar particion /home" 20 70 50 ${partitions[@]}) /mnt/home - ;; - 2) - umount /mnt/boot &> /dev/null - mkdir /mnt/boot &> /dev/null - mount $(dialog --stdout --radiolist "Mount particion /boot" 20 70 50 ${partitions[@]}) /mnt/boot - ;; - *) - other=3 - ;; - esac - done - ;; - esac -} - - -option=0 -while [ option != 7 ]; do - option=$(dialog --stdout --menu "Instalación CLI de Parabola" 20 70 50 \ - 1 "Formatear y Montar Particiones" \ - 2 "Instalar Sistema Base" \ - 3 "Instalar GRUB" \ - 4 "Configuración del Sistema" \ - 5 "Crear Cuenta de Usuario" \ - 6 "(Opcional) Instalar Escritorio/Aplicaciones del Live DVD" \ - 7 "Salir" ) - - case $option in - 1) - partition - ;; - 2) - #Install base system - pacstrap /mnt base-openrc - pacstrap /mnt dialog - ;; - 3) - #Install grub - pacstrap /mnt grub - ;; - 4) - #Generate fstab and acces to chroot to do System Config - genfstab -p /mnt >> /mnt/etc/fstab - cp ~/.scriptsInstallation/temporal /mnt - cp ~/.scriptsInstallation/systemConfig.sh /mnt - chmod +x /mnt/systemConfig.sh - arch-chroot /mnt /systemConfig.sh - rm -r /mnt/systemConfig.sh - ;; - 5) - #Create a new username and save in temporal, to use after - if (cat ~/.scriptsInstallation/temporal | grep "userName=") &>/dev/null - then - sed -i -e '/userName=*/d' ~/.scriptsInstallation/temporal - fi - - echo "userName=$(dialog --stdout --inputbox "Introduce nombre de usuario" 8 40)" >> ~/.scriptsInstallation/temporal - cp ~/.scriptsInstallation/temporal /mnt - cp ~/.scriptsInstallation/userAccount.sh /mnt - chmod +x /mnt/userAccount.sh - arch-chroot /mnt /userAccount.sh - rm -r /mnt/userAccount.sh - ;; - 6) - #Packages to the X11 live - packages=( "xorg-server" - "xf86-input-evdev" - "xf86-input-synaptics" - "xf86-video-ati" - "xf86-video-dummy" - "xf86-video-fbdev" - "xf86-video-intel" - "xf86-video-nouveau" - "xf86-video-openchrome" - "xf86-video-sisusb" - "xf86-video-vesa" - "xf86-video-vmware" - "xf86-video-voodoo" - "xf86-video-qxl" - "xorg-xinit" - "gst-plugins-good" - "gst-libav" - "lxde" - "volumeicon" - "zenity" - "octopi" - "pulseaudio-alsa" - "alsa-utils" - "networkmanager-elogind" - "network-manager-applet" - "ath9k-htc-firmware" - "iceweasel" - "icedove" - "pidgin" - "gparted" - "smplayer" - "epdfview" - "gpicview" - "abiword" - "gnumeric" - "leafpad" - "galculator-gtk2" - "xarchiver" - "openrc-desktop" - "polkit-elogind" - "gvfs-mtp" - "gvfs-gphoto2" - "xdg-user-dirs" - "gnome-screenshot" - ) - - #Install packages - pacman -Sy -r /mnt ${packages[@]} --needed --noconfirm - user=$(cat ~/.scriptsInstallation/temporal | grep "userName" ) - - #Copy skel in the new system and desktop's background - cp -a /etc/skel/ /mnt/etc/ - cp -a /etc/wallpaper.png /mnt/etc/wallpaper.png - - #Puts the XKBMAP, start X11 automatically and icewm desktop - echo "setxkbmap $(cat ~/.codecheck | grep XKBMAP= | cut -d '=' -f 2)" > /mnt/etc/skel/.xinitrc - echo "exec startlxde" >> /mnt/etc/skel/.xinitrc - echo "startx" >> /mnt/etc/skel/.bash_profile - chmod +x /mnt/etc/skel/.xinitrc - cp -a /mnt/etc/skel/.[a-z]* /mnt/home/${user#*=}/ - cp -a ~/.scriptsInstallation/x11.sh /mnt - - #Enable services with OpenRC and configure other stuff - chmod +x /mnt/x11.sh - arch-chroot /mnt /x11.sh - rm /mnt/x11.sh - ;; - *) - #Delete temporal file and umount partitions - rm -r /mnt/temporal - umount /mnt/boot &> /dev/null - umount /mnt/home &> /dev/null - umount /mnt &> /dev/null - exit - ;; - esac -done diff --git a/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/es/systemConfig.sh b/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/es/systemConfig.sh deleted file mode 100755 index 773d10c..0000000 --- a/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/es/systemConfig.sh +++ /dev/null @@ -1,271 +0,0 @@ -#!/bin/bash - -HOSTNAME=$(dialog --stdout --inputbox "Introduce el nombre del sistema:" 8 40) -sed 's|localhost|'"${HOSTNAME}"'|' -i /etc/conf.d/hostname - -ln -s /usr/share/zoneinfo/$(dialog --stdout --inputbox "Introduce la Zona Horaria:\nPor ejemplo: Europe/Athens" 8 40) /etc/localtime - -keymaps=( - "ANSI-dvorak ANSI-dvorak off" - "amiga-de amiga-de off" - "amiga-us amiga-us off" - "applkey applkey off" - "atari-de atari-de off" - "atari-se atari-se off" - "atari-uk-falcon atari-uk-falcon off" - "atari-us atari-us off" - "azerty azerty off" - "backspace backspace off" - "bashkir bashkir off" - "be-latin1 be-latin1 off" - "bg-cp1251 bg-cp1251 off" - "bg-cp855 bg-cp855 off" - "bg_bds-cp1251 bg_bds-cp1251 off" - "bg_bds-utf8 bg_bds-utf8 off" - "bg_pho-cp1251 bg_pho-cp1251 off" - "bg_pho-utf8 bg_pho-utf8 off" - "br-abnt br-abnt off" - "br-abnt2 br-abnt2 off" - "br-latin1-abnt2 br-latin1-abnt2 off" - "br-latin1-us br-latin1-us off" - "by by off" - "by-cp1251 by-cp1251 off" - "bywin-cp1251 bywin-cp1251 off" - "cf cf off" - "colemak colemak off" - "croat croat off" - "ctrl ctrl off" - "cz cz off" - "cz-cp1250 cz-cp1250 off" - "cz-lat2 cz-lat2 off" - "cz-lat2-prog cz-lat2-prog off" - "cz-qwertz cz-qwertz off" - "cz-us-qwertz cz-us-qwertz off" - "de de off" - "de-latin1 de-latin1 off" - "de-latin1-nodeadkeys de-latin1-nodeadkeys off" - "de-mobii de-mobii off" - "de_CH-latin1 de_CH-latin1 off" - "de_alt_UTF-8 de_alt_UTF-8 off" - "defkeymap defkeymap off" - "defkeymap_V1.0 defkeymap_V1.0 off" - "dk dk off" - "dk-latin1 dk-latin1 off" - "dvorak dvorak off" - "dvorak-ca-fr dvorak-ca-fr off" - "dvorak-es dvorak-es off" - "dvorak-fr dvorak-fr off" - "dvorak-l dvorak-l off" - "dvorak-r dvorak-r off" - "dvorak-ru dvorak-ru off" - "dvorak-sv-a1 dvorak-sv-a1 off" - "dvorak-sv-a5 dvorak-sv-a5 off" - "dvorak-uk dvorak-uk off" - "emacs emacs off" - "emacs2 emacs2 off" - "es es off" - "es-cp850 es-cp850 off" - "es-olpc es-olpc off" - "et et off" - "et-nodeadkeys et-nodeadkeys off" - "euro euro off" - "euro1 euro1 off" - "euro2 euro2 off" - "fi fi off" - "fr fr off" - "fr-bepo fr-bepo off" - "fr-bepo-latin9 fr-bepo-latin9 off" - "fr-latin1 fr-latin1 off" - "fr-latin9 fr-latin9 off" - "fr-pc fr-pc off" - "fr_CH fr_CH off" - "fr_CH-latin1 fr_CH-latin1 off" - "gr gr off" - "gr-pc gr-pc off" - "hu hu off" - "hu101 hu101 off" - "il il off" - "il-heb il-heb off" - "il-phonetic il-phonetic off" - "is-latin1 is-latin1 off" - "is-latin1-us is-latin1-us off" - "it it off" - "it-ibm it-ibm off" - "it2 it2 off" - "jp106 jp106 off" - "kazakh kazakh off" - "keypad keypad off" - "ky_alt_sh-UTF-8 ky_alt_sh-UTF-8 off" - "kyrgyz kyrgyz off" - "la-latin1 la-latin1 off" - "lt lt off" - "lt.baltic lt.baltic off" - "lt.l4 lt.l4 off" - "lv lv off" - "lv-tilde lv-tilde off" - "mac-be mac-be off" - "mac-de-latin1 mac-de-latin1 off" - "mac-de-latin1-nodeadkeys mac-de-latin1-nodeadkeys off" - "mac-de_CH mac-de_CH off" - "mac-dk-latin1 mac-dk-latin1 off" - "mac-dvorak mac-dvorak off" - "mac-es mac-es off" - "mac-euro mac-euro off" - "mac-euro2 mac-euro2 off" - "mac-fi-latin1 mac-fi-latin1 off" - "mac-fr mac-fr off" - "mac-fr_CH-latin1 mac-fr_CH-latin1 off" - "mac-it mac-it off" - "mac-pl mac-pl off" - "mac-pt-latin1 mac-pt-latin1 off" - "mac-se mac-se off" - "mac-template mac-template off" - "mac-uk mac-uk off" - "mac-us mac-us off" - "mk mk off" - "mk-cp1251 mk-cp1251 off" - "mk-utf mk-utf off" - "mk0 mk0 off" - "nl nl off" - "nl2 nl2 off" - "no no off" - "no-dvorak no-dvorak off" - "no-latin1 no-latin1 off" - "pc110 pc110 off" - "pl pl off" - "pl1 pl1 off" - "pl2 pl2 off" - "pl3 pl3 off" - "pl4 pl4 off" - "pt-latin1 pt-latin1 off" - "pt-latin9 pt-latin9 off" - "pt-olpc pt-olpc off" - "ro ro off" - "ro_std ro_std off" - "ro_win ro_win off" - "ru ru off" - "ru-cp1251 ru-cp1251 off" - "ru-ms ru-ms off" - "ru-yawerty ru-yawerty off" - "ru1 ru1 off" - "ru2 ru2 off" - "ru3 ru3 off" - "ru4 ru4 off" - "ru_win ru_win off" - "ruwin_alt-CP1251 ruwin_alt-CP1251 off" - "ruwin_alt-KOI8-R ruwin_alt-KOI8-R off" - "ruwin_alt-UTF-8 ruwin_alt-UTF-8 off" - "ruwin_alt_sh-UTF-8 ruwin_alt_sh-UTF-8 off" - "ruwin_cplk-CP1251 ruwin_cplk-CP1251 off" - "ruwin_cplk-KOI8-R ruwin_cplk-KOI8-R off" - "ruwin_cplk-UTF-8 ruwin_cplk-UTF-8 off" - "ruwin_ct_sh-CP1251 ruwin_ct_sh-CP1251 off" - "ruwin_ct_sh-KOI8-R ruwin_ct_sh-KOI8-R off" - "ruwin_ct_sh-UTF-8 ruwin_ct_sh-UTF-8 off" - "ruwin_ctrl-CP1251 ruwin_ctrl-CP1251 off" - "ruwin_ctrl-KOI8-R ruwin_ctrl-KOI8-R off" - "ruwin_ctrl-UTF-8 ruwin_ctrl-UTF-8 off" - "se-fi-ir209 se-fi-ir209 off" - "se-fi-lat6 se-fi-lat6 off" - "se-ir209 se-ir209 off" - "se-lat6 se-lat6 off" - "sg sg off" - "sg-latin1 sg-latin1 off" - "sg-latin1-lk450 sg-latin1-lk450 off" - "sk-prog-qwerty sk-prog-qwerty off" - "sk-prog-qwertz sk-prog-qwertz off" - "sk-qwerty sk-qwerty off" - "sk-qwertz sk-qwertz off" - "slovene slovene off" - "sr-cy sr-cy off" - "sun-pl sun-pl off" - "sun-pl-altgraph sun-pl-altgraph off" - "sundvorak sundvorak off" - "sunkeymap sunkeymap off" - "sunt4-es sunt4-es off" - "sunt4-fi-latin1 sunt4-fi-latin1 off" - "sunt4-no-latin1 sunt4-no-latin1 off" - "sunt5-cz-us sunt5-cz-us off" - "sunt5-de-latin1 sunt5-de-latin1 off" - "sunt5-es sunt5-es off" - "sunt5-fi-latin1 sunt5-fi-latin1 off" - "sunt5-fr-latin1 sunt5-fr-latin1 off" - "sunt5-ru sunt5-ru off" - "sunt5-uk sunt5-uk off" - "sunt5-us-cz sunt5-us-cz off" - "sunt6-uk sunt6-uk off" - "sv-latin1 sv-latin1 off" - "tj_alt-UTF8 tj_alt-UTF8 off" - "tr_f-latin5 tr_f-latin5 off" - "tr_q-latin5 tr_q-latin5 off" - "tralt tralt off" - "trf trf off" - "trf-fgGIod trf-fgGIod off" - "trq trq off" - "ttwin_alt-UTF-8 ttwin_alt-UTF-8 off" - "ttwin_cplk-UTF-8 ttwin_cplk-UTF-8 off" - "ttwin_ct_sh-UTF-8 ttwin_ct_sh-UTF-8 off" - "ttwin_ctrl-UTF-8 ttwin_ctrl-UTF-8 off" - "ua ua off" - "ua-cp1251 ua-cp1251 off" - "ua-utf ua-utf off" - "ua-utf-ws ua-utf-ws off" - "ua-ws ua-ws off" - "uk uk off" - "unicode unicode off" - "us us on" - "us-acentos us-acentos off" - "wangbe wangbe off" - "wangbe2 wangbe2 off" - "windowkeys windowkeys off" -) - -echo "KEYMAP=$(dialog --stdout --radiolist "Selecciona la distribucion del teclado" 20 70 50 ${keymaps[@]})" > /etc/vconsole.conf - -aux=$(sed -e '1,23d' -e 's/#//g' -e 's/ /#/g' -e 's/..$//' /etc/locale.gen) -index=0 -for i in $aux; do - i=$(echo $i | sed -e 's/#/ /g') - locales+=("$i" "$i" off) - if [[ $i == "en_US.UTF-8 UTF-8" || $i == "en_US ISO-8859-1" ]]; then - locales[$index]="$i" - locales[$((index+1))]="$i" - locales[$((index+2))]="on" - fi - index=$((index+3)) -done - -locale=$(dialog --stdout --checklist "Selecciona las Localizaciones" 20 70 50 "${locales[@]}") -locale=$(echo ${locale} | sed -e 's/" "/\n/g' -e 's/ /#/g' -e 's/"//g') - -for i in ${locale[@]}; do - i=$(echo $i | sed -e 's/#/ /g') - sed -i -e "s/#$i/$i/g" /etc/locale.gen -done - -locale-gen - -aux=$(locale -a) -index=0 -for i in $aux; do - langs+=("$i" "$i" on) - index=$((index+1)) -done - -echo "LANG=$(dialog --stdout --radiolist "Selecciona tu idioma" 20 70 50 ${langs[@]})" > /etc/locale.conf - -mkinitcpio -p linux-libre - -hdd=$(cat /temporal | grep 'hdd=') -grub-install ${hdd#*=} -grub-mkconfig -o /boot/grub/grub.cfg - -password=$(dialog --stdout --passwordbox "Inserta la contraseña para el administrador" 8 40) - -while [[ $password != $password2 ]]; do - password2=$(dialog --stdout --passwordbox "Repite la contraseña para el administrador" 8 40) -done - -usermod -p $(openssl passwd ${password}) root - -exit diff --git a/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/es/userAccount.sh b/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/es/userAccount.sh deleted file mode 100755 index 4ed7437..0000000 --- a/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/es/userAccount.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -user=$(cat /temporal | grep "userName") - -password=$(dialog --stdout --passwordbox "Introduce la contraseñara para el usuario ${user#*=}" 8 40) - -while [[ $password != $password2 ]]; do - password2=$(dialog --stdout --passwordbox "Repite la contraseña" 8 40) -done - -useradd -m -g users -G "wheel" -s /bin/bash -p $(openssl passwd $password) ${user#*=} - -exit diff --git a/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/gl/install.sh b/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/gl/install.sh deleted file mode 100755 index 05ec262..0000000 --- a/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/gl/install.sh +++ /dev/null @@ -1,226 +0,0 @@ -#!/bin/bash -#Temporal is a file that contains parameters to use when access to chroot - -if [ ! -f ~/.scriptsInstallation/.pacman ]; then - pacman -Sy parabola-keyring archlinux-keyring --noconfirm - pacman-key --populate parabola archlinux - pacman-key --refresh-keys - case $? in - 0) touch ~/.scriptsInstallation/.pacman - ;; - *) false - ;; - esac -fi - -partition(){ - - #Search and show the Hard Disks to select - aux=$(ls /dev/sd?) - index=0 - for i in $aux; do - hdds[$index]="${i} ${i#/*/} off" - index=$((index+1)) - done - - hdd=$(dialog --stdout --radiolist "Selecciona Disco Duro" 20 70 50 ${hdds[@]}) - - #If exist the line delete - if (cat ~/.scriptsInstallation/temporal | grep "hdd=") &>/dev/null - then - sed -i -e '/hdd=*/d' ~/.scriptsInstallation/temporal - fi - - #And add the new line with new parameter - echo "hdd=$hdd" >> ~/.scriptsInstallation/temporal - selection=$(dialog --stdout --menu "Metodo de Particionado" 20 70 50 \ - 1 "Usar todo o disco con swap (1GB) and /" \ - 2 "Usar gparted para personalizar" ) - - case $selection in - 1) - umount /mnt &> /dev/null - #Create msdos partition table - parted -s $hdd -- mklabel msdos - - #Create partition swap and / - parted -s $hdd -- mkpart primary 1MiB 1000MiB mkpart primary 1000MiB -1s - - #Boot option partition / - parted -s $hdd -- set 2 boot on - - #Format and partitions and mount / - (echo t; echo 1; echo 82; echo w) | fdisk $hdd - mkswap ${hdd}1 - mkfs.ext4 ${hdd}2 - mount ${hdd}2 /mnt - ;; - 2) - gparted $hdd - - #Search and show the partitions that select before. - aux=$(ls $hdd?) - index=0; - for i in $aux; do - partitions[$index]="${i} ${i#/*/} off" - index=$((index+1)) - done - - partition=$(dialog --stdout --radiolist "Montar particion /" 20 70 50 ${partitions[@]}) - - #Mount partition / - umount /mnt &> /dev/null - mount $partition /mnt - - #Ask if you want mount other partitions - other=0 - while [ $other != 3 ]; do - other=$(dialog --stdout --menu "¿Montar outra particion?" 20 70 50 1 "/home" 2 "/boot" 3 "No") - - case $other in - 1) - umount /mnt/home &> /dev/null - mkdir /mnt/home &> /dev/null - mount $(dialog --stdout --radiolist "Montar particion /home" 20 70 50 ${partitions[@]}) /mnt/home - ;; - 2) - umount /mnt/boot &> /dev/null - mkdir /mnt/boot &> /dev/null - mount $(dialog --stdout --radiolist "Mount particion /boot" 20 70 50 ${partitions[@]}) /mnt/boot - ;; - *) - other=3 - ;; - esac - done - ;; - esac -} - - -option=0 -while [ option != 7 ]; do - option=$(dialog --stdout --menu "Instalación CLI de Parabola" 20 70 50 \ - 1 "Formatear e Montar Particiones" \ - 2 "Instalar Sistema Base" \ - 3 "Instalar GRUB" \ - 4 "Configuración do Sistema" \ - 5 "Crear Conta de Usuario" \ - 6 "(Opcional) Instalar Escritorio/Aplicaciones de Live DVD" \ - 7 "Salir" ) - - case $option in - 1) - partition - ;; - 2) - #Install base system - pacstrap /mnt base-openrc - pacstrap /mnt dialog - ;; - 3) - #Install grub - pacstrap /mnt grub - ;; - 4) - #Generate fstab and acces to chroot to do System Config - genfstab -p /mnt >> /mnt/etc/fstab - cp ~/.scriptsInstallation/temporal /mnt - cp ~/.scriptsInstallation/systemConfig.sh /mnt - chmod +x /mnt/systemConfig.sh - arch-chroot /mnt /systemConfig.sh - rm -r /mnt/systemConfig.sh - ;; - 5) - #Create a new username and save in temporal, to use after - if (cat ~/.scriptsInstallation/temporal | grep "userName=") &>/dev/null - then - sed -i -e '/userName=*/d' ~/.scriptsInstallation/temporal - fi - - echo "userName=$(dialog --stdout --inputbox "Introduce un nome de usuario" 8 40)" >> ~/.scriptsInstallation/temporal - cp ~/.scriptsInstallation/temporal /mnt - cp ~/.scriptsInstallation/userAccount.sh /mnt - chmod +x /mnt/userAccount.sh - arch-chroot /mnt /userAccount.sh - rm -r /mnt/userAccount.sh - ;; - 6) - #Packages to the X11 live - packages=( "xorg-server" - "xf86-input-evdev" - "xf86-input-synaptics" - "xf86-video-ati" - "xf86-video-dummy" - "xf86-video-fbdev" - "xf86-video-intel" - "xf86-video-nouveau" - "xf86-video-openchrome" - "xf86-video-sisusb" - "xf86-video-vesa" - "xf86-video-vmware" - "xf86-video-voodoo" - "xf86-video-qxl" - "xorg-xinit" - "gst-plugins-good" - "gst-libav" - "lxde" - "volumeicon" - "zenity" - "octopi" - "pulseaudio-alsa" - "alsa-utils" - "networkmanager-elogind" - "network-manager-applet" - "ath9k-htc-firmware" - "iceweasel" - "icedove" - "pidgin" - "gparted" - "smplayer" - "epdfview" - "gpicview" - "abiword" - "gnumeric" - "leafpad" - "galculator-gtk2" - "xarchiver" - "openrc-desktop" - "polkit-elogind" - "gvfs-mtp" - "gvfs-gphoto2" - "xdg-user-dirs" - "gnome-screenshot" - ) - - #Install packages - pacman -Sy -r /mnt ${packages[@]} --needed --noconfirm - user=$(cat ~/.scriptsInstallation/temporal | grep "userName" ) - - #Copy skel in the new system and desktop's background - cp -a /etc/skel/ /mnt/etc/ - cp -a /etc/wallpaper.png /mnt/etc/wallpaper.png - - #Puts the XKBMAP, start X11 automatically and icewm desktop - echo "setxkbmap $(cat ~/.codecheck | grep XKBMAP= | cut -d '=' -f 2)" > /mnt/etc/skel/.xinitrc - echo "exec startlxde" >> /mnt/etc/skel/.xinitrc - echo "startx" >> /mnt/etc/skel/.bash_profile - chmod +x /mnt/etc/skel/.xinitrc - cp -a /mnt/etc/skel/.[a-z]* /mnt/home/${user#*=}/ - cp -a ~/.scriptsInstallation/x11.sh /mnt - - #Enable services with OpenRC and configure other stuff - chmod +x /mnt/x11.sh - arch-chroot /mnt /x11.sh - rm /mnt/x11.sh - ;; - *) - #Delete temporal file and umount partitions - rm -r /mnt/temporal - umount /mnt/boot &> /dev/null - umount /mnt/home &> /dev/null - umount /mnt &> /dev/null - exit - ;; - esac -done diff --git a/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/gl/systemConfig.sh b/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/gl/systemConfig.sh deleted file mode 100755 index 0fe3c68..0000000 --- a/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/gl/systemConfig.sh +++ /dev/null @@ -1,271 +0,0 @@ -#!/bin/bash - -HOSTNAME=$(dialog --stdout --inputbox "Introduce o nome do sistema:" 8 40) -sed 's|localhost|'"${HOSTNAME}"'|' -i /etc/conf.d/hostname - -ln -s /usr/share/zoneinfo/$(dialog --stdout --inputbox "Introduce a Zona Horaria:\nPor ejemplo: Europe/Athens" 8 40) /etc/localtime - -keymaps=( - "ANSI-dvorak ANSI-dvorak off" - "amiga-de amiga-de off" - "amiga-us amiga-us off" - "applkey applkey off" - "atari-de atari-de off" - "atari-se atari-se off" - "atari-uk-falcon atari-uk-falcon off" - "atari-us atari-us off" - "azerty azerty off" - "backspace backspace off" - "bashkir bashkir off" - "be-latin1 be-latin1 off" - "bg-cp1251 bg-cp1251 off" - "bg-cp855 bg-cp855 off" - "bg_bds-cp1251 bg_bds-cp1251 off" - "bg_bds-utf8 bg_bds-utf8 off" - "bg_pho-cp1251 bg_pho-cp1251 off" - "bg_pho-utf8 bg_pho-utf8 off" - "br-abnt br-abnt off" - "br-abnt2 br-abnt2 off" - "br-latin1-abnt2 br-latin1-abnt2 off" - "br-latin1-us br-latin1-us off" - "by by off" - "by-cp1251 by-cp1251 off" - "bywin-cp1251 bywin-cp1251 off" - "cf cf off" - "colemak colemak off" - "croat croat off" - "ctrl ctrl off" - "cz cz off" - "cz-cp1250 cz-cp1250 off" - "cz-lat2 cz-lat2 off" - "cz-lat2-prog cz-lat2-prog off" - "cz-qwertz cz-qwertz off" - "cz-us-qwertz cz-us-qwertz off" - "de de off" - "de-latin1 de-latin1 off" - "de-latin1-nodeadkeys de-latin1-nodeadkeys off" - "de-mobii de-mobii off" - "de_CH-latin1 de_CH-latin1 off" - "de_alt_UTF-8 de_alt_UTF-8 off" - "defkeymap defkeymap off" - "defkeymap_V1.0 defkeymap_V1.0 off" - "dk dk off" - "dk-latin1 dk-latin1 off" - "dvorak dvorak off" - "dvorak-ca-fr dvorak-ca-fr off" - "dvorak-es dvorak-es off" - "dvorak-fr dvorak-fr off" - "dvorak-l dvorak-l off" - "dvorak-r dvorak-r off" - "dvorak-ru dvorak-ru off" - "dvorak-sv-a1 dvorak-sv-a1 off" - "dvorak-sv-a5 dvorak-sv-a5 off" - "dvorak-uk dvorak-uk off" - "emacs emacs off" - "emacs2 emacs2 off" - "es es off" - "es-cp850 es-cp850 off" - "es-olpc es-olpc off" - "et et off" - "et-nodeadkeys et-nodeadkeys off" - "euro euro off" - "euro1 euro1 off" - "euro2 euro2 off" - "fi fi off" - "fr fr off" - "fr-bepo fr-bepo off" - "fr-bepo-latin9 fr-bepo-latin9 off" - "fr-latin1 fr-latin1 off" - "fr-latin9 fr-latin9 off" - "fr-pc fr-pc off" - "fr_CH fr_CH off" - "fr_CH-latin1 fr_CH-latin1 off" - "gr gr off" - "gr-pc gr-pc off" - "hu hu off" - "hu101 hu101 off" - "il il off" - "il-heb il-heb off" - "il-phonetic il-phonetic off" - "is-latin1 is-latin1 off" - "is-latin1-us is-latin1-us off" - "it it off" - "it-ibm it-ibm off" - "it2 it2 off" - "jp106 jp106 off" - "kazakh kazakh off" - "keypad keypad off" - "ky_alt_sh-UTF-8 ky_alt_sh-UTF-8 off" - "kyrgyz kyrgyz off" - "la-latin1 la-latin1 off" - "lt lt off" - "lt.baltic lt.baltic off" - "lt.l4 lt.l4 off" - "lv lv off" - "lv-tilde lv-tilde off" - "mac-be mac-be off" - "mac-de-latin1 mac-de-latin1 off" - "mac-de-latin1-nodeadkeys mac-de-latin1-nodeadkeys off" - "mac-de_CH mac-de_CH off" - "mac-dk-latin1 mac-dk-latin1 off" - "mac-dvorak mac-dvorak off" - "mac-es mac-es off" - "mac-euro mac-euro off" - "mac-euro2 mac-euro2 off" - "mac-fi-latin1 mac-fi-latin1 off" - "mac-fr mac-fr off" - "mac-fr_CH-latin1 mac-fr_CH-latin1 off" - "mac-it mac-it off" - "mac-pl mac-pl off" - "mac-pt-latin1 mac-pt-latin1 off" - "mac-se mac-se off" - "mac-template mac-template off" - "mac-uk mac-uk off" - "mac-us mac-us off" - "mk mk off" - "mk-cp1251 mk-cp1251 off" - "mk-utf mk-utf off" - "mk0 mk0 off" - "nl nl off" - "nl2 nl2 off" - "no no off" - "no-dvorak no-dvorak off" - "no-latin1 no-latin1 off" - "pc110 pc110 off" - "pl pl off" - "pl1 pl1 off" - "pl2 pl2 off" - "pl3 pl3 off" - "pl4 pl4 off" - "pt-latin1 pt-latin1 off" - "pt-latin9 pt-latin9 off" - "pt-olpc pt-olpc off" - "ro ro off" - "ro_std ro_std off" - "ro_win ro_win off" - "ru ru off" - "ru-cp1251 ru-cp1251 off" - "ru-ms ru-ms off" - "ru-yawerty ru-yawerty off" - "ru1 ru1 off" - "ru2 ru2 off" - "ru3 ru3 off" - "ru4 ru4 off" - "ru_win ru_win off" - "ruwin_alt-CP1251 ruwin_alt-CP1251 off" - "ruwin_alt-KOI8-R ruwin_alt-KOI8-R off" - "ruwin_alt-UTF-8 ruwin_alt-UTF-8 off" - "ruwin_alt_sh-UTF-8 ruwin_alt_sh-UTF-8 off" - "ruwin_cplk-CP1251 ruwin_cplk-CP1251 off" - "ruwin_cplk-KOI8-R ruwin_cplk-KOI8-R off" - "ruwin_cplk-UTF-8 ruwin_cplk-UTF-8 off" - "ruwin_ct_sh-CP1251 ruwin_ct_sh-CP1251 off" - "ruwin_ct_sh-KOI8-R ruwin_ct_sh-KOI8-R off" - "ruwin_ct_sh-UTF-8 ruwin_ct_sh-UTF-8 off" - "ruwin_ctrl-CP1251 ruwin_ctrl-CP1251 off" - "ruwin_ctrl-KOI8-R ruwin_ctrl-KOI8-R off" - "ruwin_ctrl-UTF-8 ruwin_ctrl-UTF-8 off" - "se-fi-ir209 se-fi-ir209 off" - "se-fi-lat6 se-fi-lat6 off" - "se-ir209 se-ir209 off" - "se-lat6 se-lat6 off" - "sg sg off" - "sg-latin1 sg-latin1 off" - "sg-latin1-lk450 sg-latin1-lk450 off" - "sk-prog-qwerty sk-prog-qwerty off" - "sk-prog-qwertz sk-prog-qwertz off" - "sk-qwerty sk-qwerty off" - "sk-qwertz sk-qwertz off" - "slovene slovene off" - "sr-cy sr-cy off" - "sun-pl sun-pl off" - "sun-pl-altgraph sun-pl-altgraph off" - "sundvorak sundvorak off" - "sunkeymap sunkeymap off" - "sunt4-es sunt4-es off" - "sunt4-fi-latin1 sunt4-fi-latin1 off" - "sunt4-no-latin1 sunt4-no-latin1 off" - "sunt5-cz-us sunt5-cz-us off" - "sunt5-de-latin1 sunt5-de-latin1 off" - "sunt5-es sunt5-es off" - "sunt5-fi-latin1 sunt5-fi-latin1 off" - "sunt5-fr-latin1 sunt5-fr-latin1 off" - "sunt5-ru sunt5-ru off" - "sunt5-uk sunt5-uk off" - "sunt5-us-cz sunt5-us-cz off" - "sunt6-uk sunt6-uk off" - "sv-latin1 sv-latin1 off" - "tj_alt-UTF8 tj_alt-UTF8 off" - "tr_f-latin5 tr_f-latin5 off" - "tr_q-latin5 tr_q-latin5 off" - "tralt tralt off" - "trf trf off" - "trf-fgGIod trf-fgGIod off" - "trq trq off" - "ttwin_alt-UTF-8 ttwin_alt-UTF-8 off" - "ttwin_cplk-UTF-8 ttwin_cplk-UTF-8 off" - "ttwin_ct_sh-UTF-8 ttwin_ct_sh-UTF-8 off" - "ttwin_ctrl-UTF-8 ttwin_ctrl-UTF-8 off" - "ua ua off" - "ua-cp1251 ua-cp1251 off" - "ua-utf ua-utf off" - "ua-utf-ws ua-utf-ws off" - "ua-ws ua-ws off" - "uk uk off" - "unicode unicode off" - "us us on" - "us-acentos us-acentos off" - "wangbe wangbe off" - "wangbe2 wangbe2 off" - "windowkeys windowkeys off" -) - -echo "KEYMAP=$(dialog --stdout --radiolist "Selecciona a distribucion do teclado" 20 70 50 ${keymaps[@]})" > /etc/vconsole.conf - -aux=$(sed -e '1,23d' -e 's/#//g' -e 's/ /#/g' -e 's/..$//' /etc/locale.gen) -index=0 -for i in $aux; do - i=$(echo $i | sed -e 's/#/ /g') - locales+=("$i" "$i" off) - if [[ $i == "en_US.UTF-8 UTF-8" || $i == "en_US ISO-8859-1" ]]; then - locales[$index]="$i" - locales[$((index+1))]="$i" - locales[$((index+2))]="on" - fi - index=$((index+3)) -done - -locale=$(dialog --stdout --checklist "Selecciona as Localizacions" 20 70 50 "${locales[@]}") -locale=$(echo ${locale} | sed -e 's/" "/\n/g' -e 's/ /#/g' -e 's/"//g') - -for i in ${locale[@]}; do - i=$(echo $i | sed -e 's/#/ /g') - sed -i -e "s/#$i/$i/g" /etc/locale.gen -done - -locale-gen - -aux=$(locale -a) -index=0 -for i in $aux; do - langs+=("$i" "$i" on) - index=$((index+1)) -done - -echo "LANG=$(dialog --stdout --radiolist "Selecciona o teu idioma" 20 70 50 ${langs[@]})" > /etc/locale.conf - -mkinitcpio -p linux-libre - -hdd=$(cat /temporal | grep 'hdd=') -grub-install ${hdd#*=} -grub-mkconfig -o /boot/grub/grub.cfg - -password=$(dialog --stdout --passwordbox "Insire o contrasinal para o administrador" 8 40) - -while [[ $password != $password2 ]]; do - password2=$(dialog --stdout --passwordbox "Repite o contrasinal para o administrador" 8 40) -done - -usermod -p $(openssl passwd ${password}) root - -exit diff --git a/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/gl/userAccount.sh b/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/gl/userAccount.sh deleted file mode 100755 index aa1d33a..0000000 --- a/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/gl/userAccount.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -user=$(cat /temporal | grep "userName") - -password=$(dialog --stdout --passwordbox "Introduce o contrasinal para o usuario ${user#*=}" 8 40) - -while [[ $password != $password2 ]]; do - password2=$(dialog --stdout --passwordbox "Repite o contrasinal" 8 40) -done - -useradd -m -g users -G "wheel" -s /bin/bash -p $(openssl passwd $password) ${user#*=} - -exit diff --git a/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/pt/install.sh b/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/pt/install.sh deleted file mode 100755 index 1de6c85..0000000 --- a/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/pt/install.sh +++ /dev/null @@ -1,227 +0,0 @@ -#!/bin/bash -#Temporal is a file that contains parameters to use when access to chroot - -if [ ! -f ~/.scriptsInstallation/.pacman ]; then - pacman -Sy parabola-keyring archlinux-keyring --noconfirm - pacman-key --populate parabola archlinux - pacman-key --refresh-keys - case $? in - 0) touch ~/.scriptsInstallation/.pacman - ;; - *) false - ;; - esac -fi - -partition(){ - - #Search and show the Hard Disks to select - aux=$(ls /dev/sd?) - index=0 - for i in $aux; do - hdds[$index]="${i} ${i#/*/} off" - index=$((index+1)) - done - - hdd=$(dialog --stdout --radiolist "Escolha o Disco" 20 70 50 ${hdds[@]}) - - #If exist the line delete - if (cat ~/.scriptsInstallation/temporal | grep "hdd=") &>/dev/null - then - sed -i -e '/hdd=*/d' ~/.scriptsInstallation/temporal - fi - - #And add the new line with new parameter - echo "hdd=$hdd" >> ~/.scriptsInstallation/temporal - - selection=$(dialog --stdout --menu "Método de Particionamento" 20 70 50 \ - 1 "Usar todo o disco com o swap (1GB) e /" \ - 2 "Usar o gparted para personalizar" ) - - case $selection in - 1) - umount /mnt &> /dev/null - #Create msdos partition table - parted -s $hdd -- mklabel msdos - - #Create partition swap and / - parted -s $hdd -- mkpart primary 1MiB 1000MiB mkpart primary 1000MiB -1s - - #Boot option partition / - parted -s $hdd -- set 2 boot on - - #Format and partitions and mount / - (echo t; echo 1; echo 82; echo w) | fdisk $hdd - mkswap ${hdd}1 - mkfs.ext4 ${hdd}2 - mount ${hdd}2 /mnt - ;; - 2) - gparted $hdd - - #Search and show the partitions that select before. - aux=$(ls $hdd?) - index=0; - for i in $aux; do - partitions[$index]="${i} ${i#/*/} off" - index=$((index+1)) - done - - partition=$(dialog --stdout --radiolist "Montar a partição /" 20 70 50 ${partitions[@]}) - - #Mount partition / - umount /mnt &> /dev/null - mount $partition /mnt - - #Ask if you want mount other partitions - other=0 - while [ $other != 3 ]; do - other=$(dialog --stdout --menu "Quer montar outra partição?" 20 70 50 1 "/home" 2 "/boot" 3 "Não") - - case $other in - 1) - umount /mnt/home &> /dev/null - mkdir /mnt/home &> /dev/null - mount $(dialog --stdout --radiolist "Montar a partição /home" 20 70 50 ${partitions[@]}) /mnt/home - ;; - 2) - umount /mnt/boot &> /dev/null - mkdir /mnt/boot &> /dev/null - mount $(dialog --stdout --radiolist "Montar a partição /boot" 20 70 50 ${partitions[@]}) /mnt/boot - ;; - *) - other=3 - ;; - esac - done - ;; - esac -} - - -option=0 -while [ option != 7 ]; do - option=$(dialog --stdout --menu "Instalação CLI da Parabola" 20 70 50 \ - 1 "Formatar e Montar as Partições" \ - 2 "Instalar o Sistema Base" \ - 3 "Instalar o GRUB" \ - 4 "Configuração do Sistema" \ - 5 "Adicionar uma Conta de Usuário" \ - 6 "(Opcional) Instalar Ambiente Gráfico/Aplicativos da Live DVD" \ - 7 "Sair" ) - - case $option in - 1) - partition - ;; - 2) - #Install base system - pacstrap /mnt base-openrc - pacstrap /mnt dialog - ;; - 3) - #Install grub - pacstrap /mnt grub - ;; - 4) - #Generate fstab and acces to chroot to do System Config - genfstab -p /mnt >> /mnt/etc/fstab - cp ~/.scriptsInstallation/temporal /mnt - cp ~/.scriptsInstallation/systemConfig.sh /mnt - chmod +x /mnt/systemConfig.sh - arch-chroot /mnt /systemConfig.sh - rm -r /mnt/systemConfig.sh - ;; - 5) - #Create a new username and save in temporal, to use after - if (cat ~/.scriptsInstallation/temporal | grep "userName=") &>/dev/null - then - sed -i -e '/userName=*/d' ~/.scriptsInstallation/temporal - fi - - echo "userName=$(dialog --stdout --inputbox "Insira o nome do usuário" 8 40)" >> ~/.scriptsInstallation/temporal - cp ~/.scriptsInstallation/temporal /mnt - cp ~/.scriptsInstallation/userAccount.sh /mnt - chmod +x /mnt/userAccount.sh - arch-chroot /mnt /userAccount.sh - rm -r /mnt/userAccount.sh - ;; - 6) - #Packages to the X11 live - packages=( "xorg-server" - "xf86-input-evdev" - "xf86-input-synaptics" - "xf86-video-ati" - "xf86-video-dummy" - "xf86-video-fbdev" - "xf86-video-intel" - "xf86-video-nouveau" - "xf86-video-openchrome" - "xf86-video-sisusb" - "xf86-video-vesa" - "xf86-video-vmware" - "xf86-video-voodoo" - "xf86-video-qxl" - "xorg-xinit" - "gst-plugins-good" - "gst-libav" - "lxde" - "volumeicon" - "zenity" - "octopi" - "pulseaudio-alsa" - "alsa-utils" - "networkmanager-elogind" - "network-manager-applet" - "ath9k-htc-firmware" - "iceweasel" - "icedove" - "pidgin" - "gparted" - "smplayer" - "epdfview" - "gpicview" - "abiword" - "gnumeric" - "leafpad" - "galculator-gtk2" - "xarchiver" - "openrc-desktop" - "polkit-elogind" - "gvfs-mtp" - "gvfs-gphoto2" - "xdg-user-dirs" - "gnome-screenshot" - ) - - #Install packages - pacman -Sy -r /mnt ${packages[@]} --needed --noconfirm - user=$(cat ~/.scriptsInstallation/temporal | grep "userName" ) - - #Copy skel in the new system and desktop's background - cp -a /etc/skel/ /mnt/etc/ - cp -a /etc/wallpaper.png /mnt/etc/wallpaper.png - - #Puts the XKBMAP, start X11 automatically and icewm desktop - echo "setxkbmap $(cat ~/.codecheck | grep XKBMAP= | cut -d '=' -f 2)" > /mnt/etc/skel/.xinitrc - echo "exec startlxde" >> /mnt/etc/skel/.xinitrc - echo "startx" >> /mnt/etc/skel/.bash_profile - chmod +x /mnt/etc/skel/.xinitrc - cp -a /mnt/etc/skel/.[a-z]* /mnt/home/${user#*=}/ - cp -a ~/.scriptsInstallation/x11.sh /mnt - - #Enable services with OpenRC and configure other stuff - chmod +x /mnt/x11.sh - arch-chroot /mnt /x11.sh - rm /mnt/x11.sh - ;; - *) - #Delete temporal file and umount partitions - rm -r /mnt/temporal - umount /mnt/boot &> /dev/null - umount /mnt/home &> /dev/null - umount /mnt &> /dev/null - exit - ;; - esac -done diff --git a/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/pt/systemConfig.sh b/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/pt/systemConfig.sh deleted file mode 100755 index 983d0ba..0000000 --- a/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/pt/systemConfig.sh +++ /dev/null @@ -1,271 +0,0 @@ -#!/bin/bash - -HOSTNAME=$(dialog --stdout --inputbox "Adicione o nome do sistema:" 8 40) -sed 's|localhost|'"${HOSTNAME}"'|' -i /etc/conf.d/hostname - -ln -s /usr/share/zoneinfo/$(dialog --stdout --inputbox "Adicione o Fuso Horário:\nPor exemplo: America/Sao_Paulo" 8 40) /etc/localtime - -keymaps=( - "ANSI-dvorak ANSI-dvorak off" - "amiga-de amiga-de off" - "amiga-us amiga-us off" - "applkey applkey off" - "atari-de atari-de off" - "atari-se atari-se off" - "atari-uk-falcon atari-uk-falcon off" - "atari-us atari-us off" - "azerty azerty off" - "backspace backspace off" - "bashkir bashkir off" - "be-latin1 be-latin1 off" - "bg-cp1251 bg-cp1251 off" - "bg-cp855 bg-cp855 off" - "bg_bds-cp1251 bg_bds-cp1251 off" - "bg_bds-utf8 bg_bds-utf8 off" - "bg_pho-cp1251 bg_pho-cp1251 off" - "bg_pho-utf8 bg_pho-utf8 off" - "br-abnt br-abnt off" - "br-abnt2 br-abnt2 off" - "br-latin1-abnt2 br-latin1-abnt2 off" - "br-latin1-us br-latin1-us off" - "by by off" - "by-cp1251 by-cp1251 off" - "bywin-cp1251 bywin-cp1251 off" - "cf cf off" - "colemak colemak off" - "croat croat off" - "ctrl ctrl off" - "cz cz off" - "cz-cp1250 cz-cp1250 off" - "cz-lat2 cz-lat2 off" - "cz-lat2-prog cz-lat2-prog off" - "cz-qwertz cz-qwertz off" - "cz-us-qwertz cz-us-qwertz off" - "de de off" - "de-latin1 de-latin1 off" - "de-latin1-nodeadkeys de-latin1-nodeadkeys off" - "de-mobii de-mobii off" - "de_CH-latin1 de_CH-latin1 off" - "de_alt_UTF-8 de_alt_UTF-8 off" - "defkeymap defkeymap off" - "defkeymap_V1.0 defkeymap_V1.0 off" - "dk dk off" - "dk-latin1 dk-latin1 off" - "dvorak dvorak off" - "dvorak-ca-fr dvorak-ca-fr off" - "dvorak-es dvorak-es off" - "dvorak-fr dvorak-fr off" - "dvorak-l dvorak-l off" - "dvorak-r dvorak-r off" - "dvorak-ru dvorak-ru off" - "dvorak-sv-a1 dvorak-sv-a1 off" - "dvorak-sv-a5 dvorak-sv-a5 off" - "dvorak-uk dvorak-uk off" - "emacs emacs off" - "emacs2 emacs2 off" - "es es off" - "es-cp850 es-cp850 off" - "es-olpc es-olpc off" - "et et off" - "et-nodeadkeys et-nodeadkeys off" - "euro euro off" - "euro1 euro1 off" - "euro2 euro2 off" - "fi fi off" - "fr fr off" - "fr-bepo fr-bepo off" - "fr-bepo-latin9 fr-bepo-latin9 off" - "fr-latin1 fr-latin1 off" - "fr-latin9 fr-latin9 off" - "fr-pc fr-pc off" - "fr_CH fr_CH off" - "fr_CH-latin1 fr_CH-latin1 off" - "gr gr off" - "gr-pc gr-pc off" - "hu hu off" - "hu101 hu101 off" - "il il off" - "il-heb il-heb off" - "il-phonetic il-phonetic off" - "is-latin1 is-latin1 off" - "is-latin1-us is-latin1-us off" - "it it off" - "it-ibm it-ibm off" - "it2 it2 off" - "jp106 jp106 off" - "kazakh kazakh off" - "keypad keypad off" - "ky_alt_sh-UTF-8 ky_alt_sh-UTF-8 off" - "kyrgyz kyrgyz off" - "la-latin1 la-latin1 off" - "lt lt off" - "lt.baltic lt.baltic off" - "lt.l4 lt.l4 off" - "lv lv off" - "lv-tilde lv-tilde off" - "mac-be mac-be off" - "mac-de-latin1 mac-de-latin1 off" - "mac-de-latin1-nodeadkeys mac-de-latin1-nodeadkeys off" - "mac-de_CH mac-de_CH off" - "mac-dk-latin1 mac-dk-latin1 off" - "mac-dvorak mac-dvorak off" - "mac-es mac-es off" - "mac-euro mac-euro off" - "mac-euro2 mac-euro2 off" - "mac-fi-latin1 mac-fi-latin1 off" - "mac-fr mac-fr off" - "mac-fr_CH-latin1 mac-fr_CH-latin1 off" - "mac-it mac-it off" - "mac-pl mac-pl off" - "mac-pt-latin1 mac-pt-latin1 off" - "mac-se mac-se off" - "mac-template mac-template off" - "mac-uk mac-uk off" - "mac-us mac-us off" - "mk mk off" - "mk-cp1251 mk-cp1251 off" - "mk-utf mk-utf off" - "mk0 mk0 off" - "nl nl off" - "nl2 nl2 off" - "no no off" - "no-dvorak no-dvorak off" - "no-latin1 no-latin1 off" - "pc110 pc110 off" - "pl pl off" - "pl1 pl1 off" - "pl2 pl2 off" - "pl3 pl3 off" - "pl4 pl4 off" - "pt-latin1 pt-latin1 off" - "pt-latin9 pt-latin9 off" - "pt-olpc pt-olpc off" - "ro ro off" - "ro_std ro_std off" - "ro_win ro_win off" - "ru ru off" - "ru-cp1251 ru-cp1251 off" - "ru-ms ru-ms off" - "ru-yawerty ru-yawerty off" - "ru1 ru1 off" - "ru2 ru2 off" - "ru3 ru3 off" - "ru4 ru4 off" - "ru_win ru_win off" - "ruwin_alt-CP1251 ruwin_alt-CP1251 off" - "ruwin_alt-KOI8-R ruwin_alt-KOI8-R off" - "ruwin_alt-UTF-8 ruwin_alt-UTF-8 off" - "ruwin_alt_sh-UTF-8 ruwin_alt_sh-UTF-8 off" - "ruwin_cplk-CP1251 ruwin_cplk-CP1251 off" - "ruwin_cplk-KOI8-R ruwin_cplk-KOI8-R off" - "ruwin_cplk-UTF-8 ruwin_cplk-UTF-8 off" - "ruwin_ct_sh-CP1251 ruwin_ct_sh-CP1251 off" - "ruwin_ct_sh-KOI8-R ruwin_ct_sh-KOI8-R off" - "ruwin_ct_sh-UTF-8 ruwin_ct_sh-UTF-8 off" - "ruwin_ctrl-CP1251 ruwin_ctrl-CP1251 off" - "ruwin_ctrl-KOI8-R ruwin_ctrl-KOI8-R off" - "ruwin_ctrl-UTF-8 ruwin_ctrl-UTF-8 off" - "se-fi-ir209 se-fi-ir209 off" - "se-fi-lat6 se-fi-lat6 off" - "se-ir209 se-ir209 off" - "se-lat6 se-lat6 off" - "sg sg off" - "sg-latin1 sg-latin1 off" - "sg-latin1-lk450 sg-latin1-lk450 off" - "sk-prog-qwerty sk-prog-qwerty off" - "sk-prog-qwertz sk-prog-qwertz off" - "sk-qwerty sk-qwerty off" - "sk-qwertz sk-qwertz off" - "slovene slovene off" - "sr-cy sr-cy off" - "sun-pl sun-pl off" - "sun-pl-altgraph sun-pl-altgraph off" - "sundvorak sundvorak off" - "sunkeymap sunkeymap off" - "sunt4-es sunt4-es off" - "sunt4-fi-latin1 sunt4-fi-latin1 off" - "sunt4-no-latin1 sunt4-no-latin1 off" - "sunt5-cz-us sunt5-cz-us off" - "sunt5-de-latin1 sunt5-de-latin1 off" - "sunt5-es sunt5-es off" - "sunt5-fi-latin1 sunt5-fi-latin1 off" - "sunt5-fr-latin1 sunt5-fr-latin1 off" - "sunt5-ru sunt5-ru off" - "sunt5-uk sunt5-uk off" - "sunt5-us-cz sunt5-us-cz off" - "sunt6-uk sunt6-uk off" - "sv-latin1 sv-latin1 off" - "tj_alt-UTF8 tj_alt-UTF8 off" - "tr_f-latin5 tr_f-latin5 off" - "tr_q-latin5 tr_q-latin5 off" - "tralt tralt off" - "trf trf off" - "trf-fgGIod trf-fgGIod off" - "trq trq off" - "ttwin_alt-UTF-8 ttwin_alt-UTF-8 off" - "ttwin_cplk-UTF-8 ttwin_cplk-UTF-8 off" - "ttwin_ct_sh-UTF-8 ttwin_ct_sh-UTF-8 off" - "ttwin_ctrl-UTF-8 ttwin_ctrl-UTF-8 off" - "ua ua off" - "ua-cp1251 ua-cp1251 off" - "ua-utf ua-utf off" - "ua-utf-ws ua-utf-ws off" - "ua-ws ua-ws off" - "uk uk off" - "unicode unicode off" - "us us on" - "us-acentos us-acentos off" - "wangbe wangbe off" - "wangbe2 wangbe2 off" - "windowkeys windowkeys off" -) - -echo "KEYMAP=$(dialog --stdout --radiolist "Escolha a distribuição do teclado" 20 70 50 ${keymaps[@]})" > /etc/vconsole.conf - -aux=$(sed -e '1,23d' -e 's/#//g' -e 's/ /#/g' -e 's/..$//' /etc/locale.gen) -index=0 -for i in $aux; do - i=$(echo $i | sed -e 's/#/ /g') - locales+=("$i" "$i" off) - if [[ $i == "en_US.UTF-8 UTF-8" || $i == "en_US ISO-8859-1" ]]; then - locales[$index]="$i" - locales[$((index+1))]="$i" - locales[$((index+2))]="on" - fi - index=$((index+3)) -done - -locale=$(dialog --stdout --checklist "Escolha as Localizações" 20 70 50 "${locales[@]}") -locale=$(echo ${locale} | sed -e 's/" "/\n/g' -e 's/ /#/g' -e 's/"//g') - -for i in ${locale[@]}; do - i=$(echo $i | sed -e 's/#/ /g') - sed -i -e "s/#$i/$i/g" /etc/locale.gen -done - -locale-gen - -aux=$(locale -a) -index=0 -for i in $aux; do - langs+=("$i" "$i" on) - index=$((index+1)) -done - -echo "LANG=$(dialog --stdout --radiolist "Escolha a sua língua" 20 70 50 ${langs[@]})" > /etc/locale.conf - -mkinitcpio -p linux-libre - -hdd=$(cat /temporal | grep 'hdd=') -grub-install ${hdd#*=} -grub-mkconfig -o /boot/grub/grub.cfg - -password=$(dialog --stdout --passwordbox "Insira a senha para o root" 8 40) - -while [[ $password != $password2 ]]; do - password2=$(dialog --stdout --passwordbox "Repita a senha para o root" 8 40) -done - -usermod -p $(openssl passwd ${password}) root - -exit diff --git a/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/pt/userAccount.sh b/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/pt/userAccount.sh deleted file mode 100755 index 408beba..0000000 --- a/configs/lxde-openrc/root-image/root/.scriptsInstallation/language/pt/userAccount.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -user=$(cat /temporal | grep "userName") - -password=$(dialog --stdout --passwordbox "Insira a senha para o usuário ${user#*=}" 8 40) - -while [[ $password != $password2 ]]; do - password2=$(dialog --stdout --passwordbox "Repita a senha" 8 40) -done - -useradd -m -g users -G "wheel" -s /bin/bash -p $(openssl passwd $password) ${user#*=} - -exit diff --git a/configs/lxde-openrc/root-image/root/.scriptsInstallation/parabolaicon.png b/configs/lxde-openrc/root-image/root/.scriptsInstallation/parabolaicon.png deleted file mode 100644 index aed32d7..0000000 Binary files a/configs/lxde-openrc/root-image/root/.scriptsInstallation/parabolaicon.png and /dev/null differ diff --git a/configs/lxde-openrc/root-image/root/.scriptsInstallation/x11.sh b/configs/lxde-openrc/root-image/root/.scriptsInstallation/x11.sh deleted file mode 100755 index 47035c5..0000000 --- a/configs/lxde-openrc/root-image/root/.scriptsInstallation/x11.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -check_dbus() { - grep dbus /etc/$1 -} - -# Create the dbus user if it doesn't exist -[[ $(check_dbus group) = "" ]] && groupadd -g 81 dbus -[[ $(check_dbus passwd) = "" ]] && useradd -r -s /sbin/nologin -g 81 -u 81 dbus - -# Enable services with OpenRC -rc-update add NetworkManager default -rc-update add dbus default -rc-update add alsasound default diff --git a/configs/lxde-openrc/root-image/root/.themes/Parabola/index.theme b/configs/lxde-openrc/root-image/root/.themes/Parabola/index.theme deleted file mode 100644 index d6b2393..0000000 --- a/configs/lxde-openrc/root-image/root/.themes/Parabola/index.theme +++ /dev/null @@ -1,13 +0,0 @@ -[Desktop Entry] -Name=Parabola -Type=X-GNOME-Metatheme -Comment= - -[X-GNOME-Metatheme] -GtkTheme=Radiance-Purple -MetacityTheme=Radiance-Purple -IconTheme=RAVE-X-Dark-Purple -GtkColorScheme=base_color:#ffffff,fg_color:#4c4c4c,tooltip_fg_color:#ffffff,selected_bg_color:#7E5BC5,selected_fg_color:#FFFFFF,text_color:#3C3C3C,bg_color:#F6F6F6,tooltip_bg_color:#000000,link_color:#9D7EDA -CursorTheme=mate -CursorSize=18 -BackgroundImage=/etc/wallpaper.png diff --git a/configs/lxde-openrc/root-image/root/.xinitrc b/configs/lxde-openrc/root-image/root/.xinitrc deleted file mode 100644 index 09e419c..0000000 --- a/configs/lxde-openrc/root-image/root/.xinitrc +++ /dev/null @@ -1,7 +0,0 @@ -code=$(cat ~/.codecheck | grep XKBMAP= | cut -d '=' -f 2) -[ "$code" = "0" ] && code='us' -setxkbmap $code -service NetworkManager start -service dbus start -service alsasound start -exec startlxde diff --git a/configs/lxde-openrc/root-image/root/.zlogin b/configs/lxde-openrc/root-image/root/.zlogin deleted file mode 100644 index b24dba9..0000000 --- a/configs/lxde-openrc/root-image/root/.zlogin +++ /dev/null @@ -1,4 +0,0 @@ -~/.automated_script.sh -~/.language.sh -export $(cat /etc/locale.conf) -startx diff --git a/configs/lxde-openrc/root-image/root/Desktop/Parabola Installation CLI.desktop b/configs/lxde-openrc/root-image/root/Desktop/Parabola Installation CLI.desktop deleted file mode 100755 index 9a2d871..0000000 --- a/configs/lxde-openrc/root-image/root/Desktop/Parabola Installation CLI.desktop +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env xdg-open -[Desktop Entry] -Version=1.0 -Type=Application -Terminal=true -Name[es_ES]=Instalador CLI de Parabola -Name[gl_ES]=Instalador CLI de Parabola -Name[pt_BR]=Instalador CLI da Parabola -Exec=/root/.scriptsInstallation/install.sh -Name=Parabola Installation CLI -Comment=Parabola Installation Scripts -Icon=/root/.scriptsInstallation/parabolaicon.png diff --git a/configs/lxde-openrc/root-image/root/customize_root_image.sh b/configs/lxde-openrc/root-image/root/customize_root_image.sh deleted file mode 100755 index 26b7b19..0000000 --- a/configs/lxde-openrc/root-image/root/customize_root_image.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash - -set -e -u - -check_dbus() { - grep dbus /etc/$1 -} - -sed -i 's/#\(en_US\.UTF-8\)/\1/' /etc/locale.gen -sed -i 's/#\(es_ES\.UTF-8\)/\1/' /etc/locale.gen -sed -i 's/#\(gl_ES\.UTF-8\)/\1/' /etc/locale.gen -sed -i 's/#\(pt_BR\.UTF-8\)/\1/' /etc/locale.gen -sed -i 's/#\(pl_PL\.UTF-8\)/\1/' /etc/locale.gen -sed -i 's/#\(it_IT\.UTF-8\)/\1/' /etc/locale.gen -sed -i 's/#\(fr_FR\.UTF-8\)/\1/' /etc/locale.gen -sed -i 's/#\(eo\)/\1/' /etc/locale.gen -locale-gen - -ln -sf /usr/share/zoneinfo/UTC /etc/localtime - -usermod -s /usr/bin/zsh root -cp -aT /etc/skel/ /root/ - -useradd -m -p "" -g users -G "adm,audio,floppy,log,network,rfkill,scanner,storage,optical,power,wheel,disk,sys" -s /usr/bin/zsh parabola - -# Create the dbus user if it doesn't exist -[[ $(check_dbus group) = "" ]] && groupadd -g 81 dbus -[[ $(check_dbus passwd) = "" ]] && useradd -r -s /sbin/nologin -g 81 -u 81 dbus - -chmod 750 /etc/sudoers.d -chmod 440 /etc/sudoers.d/g_wheel - -sed -i "s/#Server/Server/g" /etc/pacman.d/mirrorlist - -rc-update add NetworkManager default -rc-update add elogind default -rc-update add alsasound default -rc-update add dbus default -rc-update add haveged default -rc-update add pacman-init default - -sed -i "s/_DATE_/${iso_version}/" /etc/motd diff --git a/configs/profile-openrc/airootfs/etc/conf.d/agetty.tty1 b/configs/profile-openrc/airootfs/etc/conf.d/agetty.tty1 new file mode 100644 index 0000000..997909c --- /dev/null +++ b/configs/profile-openrc/airootfs/etc/conf.d/agetty.tty1 @@ -0,0 +1,3 @@ +baud="38400" +term_type="linux" +agetty_options="--autologin root --noclear" diff --git a/configs/profile-openrc/airootfs/etc/conf.d/hostname b/configs/profile-openrc/airootfs/etc/conf.d/hostname new file mode 100644 index 0000000..5a912cd --- /dev/null +++ b/configs/profile-openrc/airootfs/etc/conf.d/hostname @@ -0,0 +1 @@ +hostname="parabolaiso" diff --git a/configs/profile-openrc/airootfs/etc/fstab b/configs/profile-openrc/airootfs/etc/fstab new file mode 100644 index 0000000..e69de29 diff --git a/configs/profile-openrc/airootfs/etc/init.d/pacman-init b/configs/profile-openrc/airootfs/etc/init.d/pacman-init new file mode 100755 index 0000000..b646e52 --- /dev/null +++ b/configs/profile-openrc/airootfs/etc/init.d/pacman-init @@ -0,0 +1,30 @@ +#!/usr/bin/openrc-run +# Copyright (C) 2018 Parabola Project +# Copyright (C) Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +description="Initializes Pacman keyring" + +depend() { + use haveged + after haveged +} + +start() { + # Check that there's no keyring, if there isn't, create one + if [ ! -d /etc/pacman.d/gnupg ]; then + ebegin "Initializing Pacman keyring" + pacman-key --init &> /dev/null && + pacman-key --populate ${KEYS} &> /dev/null + else + ebegin "Pacman keyring already started" + fi +} + +stop() { + # If there's a keyring, delete it + if [ -d /etc/pacman.d/gnupg ]; then + ebegin "Stoping Pacman keyring" + rm -rf /etc/pacman.d/gnupg + fi +} diff --git a/configs/profile-openrc/airootfs/etc/locale.conf b/configs/profile-openrc/airootfs/etc/locale.conf new file mode 100644 index 0000000..01ec548 --- /dev/null +++ b/configs/profile-openrc/airootfs/etc/locale.conf @@ -0,0 +1 @@ +LANG=en_US.UTF-8 diff --git a/configs/profile-openrc/airootfs/etc/motd b/configs/profile-openrc/airootfs/etc/motd new file mode 100644 index 0000000..6742f6f --- /dev/null +++ b/configs/profile-openrc/airootfs/etc/motd @@ -0,0 +1,17 @@ + +=============================================================================== + + Parabola GNU/Linux-libre live media _DATE_ + + To install Parabola, the system must be connected to the internet. + For instructions, enter this command: + less install.txt + + Press the function keys while holding Alt to switch virtual terminals. + This allows entering commands without closing less. + + For installation itself, enter this command: + ./install.sh + +=============================================================================== + diff --git a/configs/profile-openrc/airootfs/etc/pam.d/su b/configs/profile-openrc/airootfs/etc/pam.d/su new file mode 100644 index 0000000..a291042 --- /dev/null +++ b/configs/profile-openrc/airootfs/etc/pam.d/su @@ -0,0 +1,6 @@ +#%PAM-1.0 +auth sufficient pam_rootok.so +auth sufficient pam_wheel.so trust use_uid +auth required pam_unix.so +account required pam_unix.so +session required pam_unix.so diff --git a/configs/profile-openrc/airootfs/etc/sudoers.d/g_wheel b/configs/profile-openrc/airootfs/etc/sudoers.d/g_wheel new file mode 100644 index 0000000..8c45359 --- /dev/null +++ b/configs/profile-openrc/airootfs/etc/sudoers.d/g_wheel @@ -0,0 +1 @@ +%wheel ALL=(ALL) NOPASSWD: ALL diff --git a/configs/profile-openrc/airootfs/root/.automated_script.sh b/configs/profile-openrc/airootfs/root/.automated_script.sh new file mode 100755 index 0000000..fb106da --- /dev/null +++ b/configs/profile-openrc/airootfs/root/.automated_script.sh @@ -0,0 +1,34 @@ +#!/bin/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:// || "${script}" =~ ^ftp:// ]]; then + wget "${script}" --retry-connrefused -q -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/configs/profile-openrc/airootfs/root/.zlogin b/configs/profile-openrc/airootfs/root/.zlogin new file mode 100644 index 0000000..f598e43 --- /dev/null +++ b/configs/profile-openrc/airootfs/root/.zlogin @@ -0,0 +1 @@ +~/.automated_script.sh diff --git a/configs/profile-openrc/airootfs/root/customize_airootfs.sh b/configs/profile-openrc/airootfs/root/customize_airootfs.sh new file mode 100755 index 0000000..f52ac11 --- /dev/null +++ b/configs/profile-openrc/airootfs/root/customize_airootfs.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +set -e -u + +sed -i 's/#\(en_US\.UTF-8\)/\1/' /etc/locale.gen +locale-gen + +ln -sf /usr/share/zoneinfo/UTC /etc/localtime + +usermod -s /usr/bin/zsh root +cp -aT /etc/skel/ /root/ +chmod 700 /root + +sed -i 's/#\(PermitRootLogin \).\+/\1yes/' /etc/ssh/sshd_config +sed -i "s/#Server/Server/g" /etc/pacman.d/mirrorlist + +sed -i 's/#\(HandleSuspendKey=\)suspend/\1ignore/' /etc/elogind/logind.conf +sed -i 's/#\(HandleHibernateKey=\)hibernate/\1ignore/' /etc/elogind/logind.conf +sed -i 's/#\(HandleLidSwitch=\)suspend/\1ignore/' /etc/elogind/logind.conf + +case $(uname -m) in + x86_64) echo 'KEYS="archlinux parabola"' > /etc/conf.d/pacman-init + ;; + i686) echo 'KEYS="archlinux archlinux32 parabola"' > /etc/conf.d/pacman-init + ;; +esac + +useradd -m -p "" -g users -G "adm,audio,floppy,log,network,scanner,storage,optical,power,wheel,disk,sys" -s /usr/bin/zsh parabola + +services=(NetworkManager + elogind + alsasound + dbus + haveged + pacman-init) + +for s in ${services[@]}; do + rc-update add $s default +done + +sed -i "s/_DATE_/$(date +%Y.%m.%d)/" /etc/motd diff --git a/configs/profile-openrc/airootfs/root/install.txt b/configs/profile-openrc/airootfs/root/install.txt new file mode 100644 index 0000000..a594b97 --- /dev/null +++ b/configs/profile-openrc/airootfs/root/install.txt @@ -0,0 +1,2 @@ +View this installation guide online at +https://wiki.parabola.nu/Installation_Guide diff --git a/configs/profile-openrc/aitab b/configs/profile-openrc/aitab deleted file mode 100644 index b7e9a17..0000000 --- a/configs/profile-openrc/aitab +++ /dev/null @@ -1,3 +0,0 @@ -# -root-image / i686 xz ext4 50% -root-image / x86_64 xz ext4 50% diff --git a/configs/profile-openrc/build.sh b/configs/profile-openrc/build.sh index 97fcc35..2f5721c 100755 --- a/configs/profile-openrc/build.sh +++ b/configs/profile-openrc/build.sh @@ -8,13 +8,19 @@ iso_version=$(date +%Y.%m.%d) install_dir=parabola work_dir=work out_dir=out -data_dir=/usr/share/parabolaiso/data +gpg_key= arch=$(uname -m) verbose="" -pacman_conf=${work_dir}/pacman.conf script_path=$(readlink -f ${0%/*}) -initcpio_dir=${script_path}/../../parabolaiso/initcpio + +# Init system. Options are: +# - openrc +# - runit +# - systemd +# +# Default is systemd +init=openrc _usage () { @@ -46,56 +52,76 @@ run_once() { fi } -# Setup custom pacman.conf with current cache directories. +# Setup custom pacman.conf with current cache directories and custom mirrorlist. make_pacman_conf() { local _cache_dirs _cache_dirs=($(pacman -v 2>&1 | grep '^Cache Dirs:' | sed 's/Cache Dirs:\s*//g')) - sed -r "s|^#?\\s*CacheDir.+|CacheDir = $(echo -n ${_cache_dirs[@]})|g" ${script_path}/pacman.conf > ${pacman_conf} + sed -r "s|^#?\\s*CacheDir.+|CacheDir = $(echo -n ${_cache_dirs[@]})|g" ${script_path}/pacman.conf > ${work_dir}/pacman.conf } -# Base installation, plus needed packages (root-image) +# Base installation, plus needed packages (airootfs) make_basefs() { - setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" init - setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" -p "memtest86+ mkinitcpio-nfs-utils nbd" install + setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -i "${init}" init + setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -i "${init}" -p "haveged memtest86+ mkinitcpio-nfs-utils nbd zsh" install } -# Additional packages (root-image) +# Additional packages (airootfs) make_packages() { - setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" -p "$(grep -h -v ^# ${script_path}/packages.{both,${arch}})" install + setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -p "$(grep -h -v ^# ${script_path}/packages.{both,${arch}})" install +} + +# Needed packages for x86_64 EFI boot +make_packages_efi() { + setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -p "efitools" install } -# Copy mkinitcpio parabolaiso hooks and build initramfs (root-image) +# Copy mkinitcpio parabolaiso hooks and build initramfs (airootfs) make_setup_mkinitcpio() { local _hook + mkdir -p ${work_dir}/${arch}/airootfs/etc/initcpio/hooks + mkdir -p ${work_dir}/${arch}/airootfs/etc/initcpio/install for _hook in parabolaiso parabolaiso_shutdown parabolaiso_pxe_common parabolaiso_pxe_nbd parabolaiso_pxe_http parabolaiso_pxe_nfs parabolaiso_loop_mnt; do - cp ${initcpio_dir}/hooks/${_hook} ${work_dir}/${arch}/root-image/usr/lib/initcpio/hooks - cp ${initcpio_dir}/install/${_hook} ${work_dir}/${arch}/root-image/usr/lib/initcpio/install + cp /usr/lib/initcpio/hooks/${_hook} ${work_dir}/${arch}/airootfs/etc/initcpio/hooks + cp /usr/lib/initcpio/install/${_hook} ${work_dir}/${arch}/airootfs/etc/initcpio/install done - cp ${initcpio_dir}/install/parabolaiso_kms ${work_dir}/${arch}/root-image/usr/lib/initcpio/install - cp ${initcpio_dir}/hooks/parabolaiso_shutdown ${work_dir}/${arch}/root-image/usr/lib/initcpio - cp ${script_path}/mkinitcpio.conf ${work_dir}/${arch}/root-image/etc/mkinitcpio-parabolaiso.conf - setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" -r 'mkinitcpio -c /etc/mkinitcpio-parabolaiso.conf -k /boot/vmlinuz-linux-libre -g /boot/parabolaiso.img' run + sed -i "s|/usr/lib/initcpio/|/etc/initcpio/|g" ${work_dir}/${arch}/airootfs/etc/initcpio/install/parabolaiso_shutdown + cp /usr/lib/initcpio/install/parabolaiso_kms ${work_dir}/${arch}/airootfs/etc/initcpio/install + cp /usr/lib/initcpio/parabolaiso_shutdown ${work_dir}/${arch}/airootfs/etc/initcpio + cp ${script_path}/mkinitcpio.conf ${work_dir}/${arch}/airootfs/etc/mkinitcpio-parabolaiso.conf + gnupg_fd= + if [[ ${gpg_key} ]]; then + gpg --export ${gpg_key} >${work_dir}/gpgkey + exec 17<>${work_dir}/gpgkey + fi + PARABOLAISO_GNUPG_FD=${gpg_key:+17} setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -r 'mkinitcpio -c /etc/mkinitcpio-parabolaiso.conf -k /boot/vmlinuz-linux-libre -g /boot/parabolaiso.img' run + if [[ ${gpg_key} ]]; then + exec 17<&- + fi } -# Customize installation (root-image) -make_customize_root_image() { - cp -af ${script_path}/root-image ${work_dir}/${arch} +# Customize installation (airootfs) +make_customize_airootfs() { + cp -af ${script_path}/airootfs ${work_dir}/${arch} + + curl -o ${work_dir}/${arch}/airootfs/etc/pacman.d/mirrorlist 'https://www.parabola.nu/mirrorlist/?country=all&protocol=http&use_mirror_status=on' - iso_version="${iso_version}" setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" -r '/root/customize_root_image.sh' run - rm ${work_dir}/${arch}/root-image/root/customize_root_image.sh + lynx -dump -nolist 'https://wiki.parabola.nu/index.php/Installation_Guide?action=render' >> ${work_dir}/${arch}/airootfs/root/install.txt + + setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -r '/root/customize_airootfs.sh' run + rm ${work_dir}/${arch}/airootfs/root/customize_airootfs.sh } # Prepare kernel/initramfs ${install_dir}/boot/ make_boot() { mkdir -p ${work_dir}/iso/${install_dir}/boot/${arch} - cp ${work_dir}/${arch}/root-image/boot/parabolaiso.img ${work_dir}/iso/${install_dir}/boot/${arch}/parabolaiso.img - cp ${work_dir}/${arch}/root-image/boot/vmlinuz-linux-libre ${work_dir}/iso/${install_dir}/boot/${arch}/vmlinuz + cp ${work_dir}/${arch}/airootfs/boot/parabolaiso.img ${work_dir}/iso/${install_dir}/boot/${arch}/parabolaiso.img + cp ${work_dir}/${arch}/airootfs/boot/vmlinuz-linux-libre ${work_dir}/iso/${install_dir}/boot/${arch}/vmlinuz } # Add other aditional/extra files to ${install_dir}/boot/ make_boot_extra() { - cp ${work_dir}/${arch}/root-image/boot/memtest86+/memtest.bin ${work_dir}/iso/${install_dir}/boot/memtest - cp ${work_dir}/${arch}/root-image/usr/share/licenses/common/GPL2/license.txt ${work_dir}/iso/${install_dir}/boot/memtest.COPYING + cp ${work_dir}/${arch}/airootfs/boot/memtest86+/memtest.bin ${work_dir}/iso/${install_dir}/boot/memtest + cp ${work_dir}/${arch}/airootfs/usr/share/licenses/common/GPL2/license.txt ${work_dir}/iso/${install_dir}/boot/memtest.COPYING } # Prepare /${install_dir}/boot/syslinux @@ -106,26 +132,29 @@ make_syslinux() { s|%INSTALL_DIR%|${install_dir}|g" ${_cfg} > ${work_dir}/iso/${install_dir}/boot/syslinux/${_cfg##*/} done cp ${script_path}/syslinux/splash.png ${work_dir}/iso/${install_dir}/boot/syslinux - cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/*.c32 ${work_dir}/iso/${install_dir}/boot/syslinux - cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/lpxelinux.0 ${work_dir}/iso/${install_dir}/boot/syslinux - cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/memdisk ${work_dir}/iso/${install_dir}/boot/syslinux + cp ${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/*.c32 ${work_dir}/iso/${install_dir}/boot/syslinux + cp ${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/lpxelinux.0 ${work_dir}/iso/${install_dir}/boot/syslinux + cp ${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/memdisk ${work_dir}/iso/${install_dir}/boot/syslinux mkdir -p ${work_dir}/iso/${install_dir}/boot/syslinux/hdt - gzip -c -9 ${work_dir}/${arch}/root-image/usr/share/hwdata/pci.ids > ${work_dir}/iso/${install_dir}/boot/syslinux/hdt/pciids.gz - gzip -c -9 ${work_dir}/${arch}/root-image/usr/lib/modules/*-gnu-*/modules.alias > ${work_dir}/iso/${install_dir}/boot/syslinux/hdt/modalias.gz + gzip -c -9 ${work_dir}/${arch}/airootfs/usr/share/hwdata/pci.ids > ${work_dir}/iso/${install_dir}/boot/syslinux/hdt/pciids.gz + gzip -c -9 ${work_dir}/${arch}/airootfs/usr/lib/modules/*-gnu-*/modules.alias > ${work_dir}/iso/${install_dir}/boot/syslinux/hdt/modalias.gz } # Prepare /isolinux make_isolinux() { mkdir -p ${work_dir}/iso/isolinux sed "s|%INSTALL_DIR%|${install_dir}|g" ${script_path}/isolinux/isolinux.cfg > ${work_dir}/iso/isolinux/isolinux.cfg - cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/isolinux.bin ${work_dir}/iso/isolinux/ - cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/isohdpfx.bin ${work_dir}/iso/isolinux/ - cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/ldlinux.c32 ${work_dir}/iso/isolinux/ + cp ${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/isolinux.bin ${work_dir}/iso/isolinux/ + cp ${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/isohdpfx.bin ${work_dir}/iso/isolinux/ + cp ${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/ldlinux.c32 ${work_dir}/iso/isolinux/ } # Prepare /EFI make_efi() { mkdir -p ${work_dir}/iso/EFI/boot + cp ${work_dir}/x86_64/airootfs/usr/share/efitools/efi/PreLoader.efi ${work_dir}/iso/EFI/boot/bootx64.efi + cp ${work_dir}/x86_64/airootfs/usr/share/efitools/efi/HashTool.efi ${work_dir}/iso/EFI/boot/ + mkdir -p ${work_dir}/iso/loader/entries cp ${script_path}/efiboot/loader/loader.conf ${work_dir}/iso/loader/ cp ${script_path}/efiboot/loader/entries/uefi-shell-v2-x86_64.conf ${work_dir}/iso/loader/entries/ @@ -135,17 +164,17 @@ make_efi() { s|%INSTALL_DIR%|${install_dir}|g" \ ${script_path}/efiboot/loader/entries/parabolaiso-x86_64-usb.conf > ${work_dir}/iso/loader/entries/parabolaiso-x86_64.conf - # EFI Shell 2.0 for UEFI 2.3+ ( http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=UEFI_Shell ) - cp ${data_dir}/Shell.efi ${work_dir}/iso/EFI/shellx64_v2.efi - # EFI Shell 1.0 for non UEFI 2.3+ ( http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=Efi-shell ) - cp ${data_dir}/Shell_Full.efi ${work_dir}/iso/EFI/shellx64_v1.efi + # EFI Shell 2.0 for UEFI 2.3+ + curl -o ${work_dir}/iso/EFI/shellx64_v2.efi https://raw.githubusercontent.com/tianocore/edk2/master/ShellBinPkg/UefiShell/X64/Shell.efi + # EFI Shell 1.0 for non UEFI 2.3+ + curl -o ${work_dir}/iso/EFI/shellx64_v1.efi https://raw.githubusercontent.com/tianocore/edk2/master/EdkShellBinPkg/FullShell/X64/Shell_Full.efi } # Prepare efiboot.img::/EFI for "El Torito" EFI boot mode make_efiboot() { mkdir -p ${work_dir}/iso/EFI/parabolaiso - truncate -s 38M ${work_dir}/iso/EFI/parabolaiso/efiboot.img - mkfs.vfat -n PARABOLAISO_EFI ${work_dir}/iso/EFI/parabolaiso/efiboot.img + truncate -s 64M ${work_dir}/iso/EFI/parabolaiso/efiboot.img + mkfs.fat -n PARABOLAISO_EFI ${work_dir}/iso/EFI/parabolaiso/efiboot.img mkdir -p ${work_dir}/efiboot mount ${work_dir}/iso/EFI/parabolaiso/efiboot.img ${work_dir}/efiboot @@ -155,6 +184,8 @@ make_efiboot() { cp ${work_dir}/iso/${install_dir}/boot/x86_64/parabolaiso.img ${work_dir}/efiboot/EFI/parabolaiso/parabolaiso.img mkdir -p ${work_dir}/efiboot/EFI/boot + cp ${work_dir}/x86_64/airootfs/usr/share/efitools/efi/PreLoader.efi ${work_dir}/efiboot/EFI/boot/bootx64.efi + cp ${work_dir}/x86_64/airootfs/usr/share/efitools/efi/HashTool.efi ${work_dir}/efiboot/EFI/boot/ mkdir -p ${work_dir}/efiboot/loader/entries cp ${script_path}/efiboot/loader/loader.conf ${work_dir}/efiboot/loader/ @@ -168,27 +199,20 @@ make_efiboot() { cp ${work_dir}/iso/EFI/shellx64_v2.efi ${work_dir}/efiboot/EFI/ cp ${work_dir}/iso/EFI/shellx64_v1.efi ${work_dir}/efiboot/EFI/ - umount ${work_dir}/efiboot + umount -d ${work_dir}/efiboot } -# Copy aitab -make_aitab() { - mkdir -p ${work_dir}/iso/${install_dir} - cp ${script_path}/aitab ${work_dir}/iso/${install_dir}/aitab -} - -# Build all filesystem images specified in aitab (.fs.sfs .sfs) +# Build airootfs filesystem image make_prepare() { - cp -a -l -f ${work_dir}/${arch}/root-image ${work_dir} + cp -a -l -f ${work_dir}/${arch}/airootfs ${work_dir} setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}" -D "${install_dir}" pkglist - setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}" -D "${install_dir}" prepare - rm -rf ${work_dir}/root-image - # rm -rf ${work_dir}/${arch}/root-image (if low space, this helps) + setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}" -D "${install_dir}" ${gpg_key:+-g ${gpg_key}} prepare + rm -rf ${work_dir}/airootfs + # rm -rf ${work_dir}/${arch}/airootfs (if low space, this helps) } # Build ISO make_iso() { - mkparabolaiso ${verbose} -w "${work_dir}" -D "${install_dir}" checksum mkparabolaiso ${verbose} -w "${work_dir}" -D "${install_dir}" -L "${iso_label}" -o "${out_dir}" iso "${iso_name}-${iso_version}-dual.iso" } @@ -202,7 +226,7 @@ if [[ ${arch} != x86_64 ]]; then _usage 1 fi -while getopts 'N:V:L:D:w:o:vh' arg; do +while getopts 'N:V:L:D:w:o:g:vh' arg; do case "${arg}" in N) iso_name="${OPTARG}" ;; V) iso_version="${OPTARG}" ;; @@ -210,6 +234,7 @@ while getopts 'N:V:L:D:w:o:vh' arg; do D) install_dir="${OPTARG}" ;; w) work_dir="${OPTARG}" ;; o) out_dir="${OPTARG}" ;; + g) gpg_key="${OPTARG}" ;; v) verbose="-v" ;; h) _usage 0 ;; *) @@ -223,12 +248,17 @@ mkdir -p ${work_dir} run_once make_pacman_conf -# Do all stuff for each root-image +# Do all stuff for each airootfs for arch in i686 x86_64; do run_once make_basefs run_once make_packages +done + +run_once make_packages_efi + +for arch in i686 x86_64; do run_once make_setup_mkinitcpio - run_once make_customize_root_image + run_once make_customize_airootfs done for arch in i686 x86_64; do @@ -242,8 +272,6 @@ run_once make_isolinux run_once make_efi run_once make_efiboot -run_once make_aitab - for arch in i686 x86_64; do run_once make_prepare done diff --git a/configs/profile-openrc/mkinitcpio.conf b/configs/profile-openrc/mkinitcpio.conf index fc2572b..9448579 100644 --- a/configs/profile-openrc/mkinitcpio.conf +++ b/configs/profile-openrc/mkinitcpio.conf @@ -1,3 +1,3 @@ MODULES="loop" -HOOKS="base udev memdisk parabolaiso_shutdown parabolaiso parabolaiso_loop_mnt parabolaiso_pxe_common parabolaiso_pxe_nbd parabolaiso_pxe_http parabolaiso_pxe_nfs parabolaiso_kms block pcmcia filesystems keyboard" +HOOKS=(base udev memdisk parabolaiso_shutdown parabolaiso parabolaiso_loop_mnt parabolaiso_pxe_common parabolaiso_pxe_nbd parabolaiso_pxe_http parabolaiso_pxe_nfs parabolaiso_kms block pcmcia filesystems keyboard) COMPRESSION="xz" diff --git a/configs/profile-openrc/packages.both b/configs/profile-openrc/packages.both index 162cc14..b4686f6 100644 --- a/configs/profile-openrc/packages.both +++ b/configs/profile-openrc/packages.both @@ -56,3 +56,4 @@ wvdial xl2tpd zsh networkmanager-openrc +networkmanager-elogind diff --git a/configs/profile-openrc/root-image/etc/conf.d/agetty.tty1 b/configs/profile-openrc/root-image/etc/conf.d/agetty.tty1 deleted file mode 100644 index b7ff06d..0000000 --- a/configs/profile-openrc/root-image/etc/conf.d/agetty.tty1 +++ /dev/null @@ -1,11 +0,0 @@ -# Set the baud rate of the terminal line -baud="38400" - -# set the terminal type -term_type="linux" - -# extra options to pass to agetty for this port -agetty_options="--autologin root --noclear" - -# make agetty quiet -#quiet="no" diff --git a/configs/profile-openrc/root-image/etc/conf.d/hostname b/configs/profile-openrc/root-image/etc/conf.d/hostname deleted file mode 100644 index a701f0c..0000000 --- a/configs/profile-openrc/root-image/etc/conf.d/hostname +++ /dev/null @@ -1,2 +0,0 @@ -# Set to the hostname of this machine -hostname="parabolaiso" diff --git a/configs/profile-openrc/root-image/etc/fstab b/configs/profile-openrc/root-image/etc/fstab deleted file mode 100644 index e69de29..0000000 diff --git a/configs/profile-openrc/root-image/etc/init.d/pacman-init b/configs/profile-openrc/root-image/etc/init.d/pacman-init deleted file mode 100755 index b610683..0000000 --- a/configs/profile-openrc/root-image/etc/init.d/pacman-init +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/openrc-run -# Copyright (C) 2017 Parabola Project -# Copyright (C) Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -description="Initializes Pacman keyring" - -depend() { - use haveged - after haveged -} - -start() { - # Check that there's no keyring, if there isn't, create one - # in the background for a faster boot - if [ ! -d /etc/pacman.d/gnupg ]; then - ebegin "Starting Pacman keyring" - pacman-key --init &> /dev/null && - pacman-key --populate archlinux parabola &> /dev/null - else - ebegin "Pacman keyring already started" - fi -} - -stop() { - # If there's a keyring, delete it - if [ -d /etc/pacman.d/gnupg ]; then - ebegin "Stoping Pacman keyring" - rm -rf /etc/pacman.d/gnupg - fi -} diff --git a/configs/profile-openrc/root-image/etc/locale.conf b/configs/profile-openrc/root-image/etc/locale.conf deleted file mode 100644 index 01ec548..0000000 --- a/configs/profile-openrc/root-image/etc/locale.conf +++ /dev/null @@ -1 +0,0 @@ -LANG=en_US.UTF-8 diff --git a/configs/profile-openrc/root-image/etc/motd b/configs/profile-openrc/root-image/etc/motd deleted file mode 100644 index a126999..0000000 --- a/configs/profile-openrc/root-image/etc/motd +++ /dev/null @@ -1,14 +0,0 @@ - -=============================================================================== - - Parabola live media _DATE_ - - To install Parabola, the system must be connected to the internet. - For instructions, enter this command: - lynx network.html - - Press the function keys while holding Alt to switch virtual terminals. - This allows entering commands without closing lynx. - -=============================================================================== - diff --git a/configs/profile-openrc/root-image/etc/pam.d/su b/configs/profile-openrc/root-image/etc/pam.d/su deleted file mode 100644 index a291042..0000000 --- a/configs/profile-openrc/root-image/etc/pam.d/su +++ /dev/null @@ -1,6 +0,0 @@ -#%PAM-1.0 -auth sufficient pam_rootok.so -auth sufficient pam_wheel.so trust use_uid -auth required pam_unix.so -account required pam_unix.so -session required pam_unix.so diff --git a/configs/profile-openrc/root-image/etc/sudoers.d/g_wheel b/configs/profile-openrc/root-image/etc/sudoers.d/g_wheel deleted file mode 100644 index 8c45359..0000000 --- a/configs/profile-openrc/root-image/etc/sudoers.d/g_wheel +++ /dev/null @@ -1 +0,0 @@ -%wheel ALL=(ALL) NOPASSWD: ALL diff --git a/configs/profile-openrc/root-image/etc/udev/rules.d/81-dhcpcd.rules b/configs/profile-openrc/root-image/etc/udev/rules.d/81-dhcpcd.rules deleted file mode 100644 index 970da69..0000000 --- a/configs/profile-openrc/root-image/etc/udev/rules.d/81-dhcpcd.rules +++ /dev/null @@ -1 +0,0 @@ -ACTION=="add", SUBSYSTEM=="net", ENV{SYSTEMD_WANTS}="dhcpcd@$name.service" diff --git a/configs/profile-openrc/root-image/root/.automated_script.sh b/configs/profile-openrc/root-image/root/.automated_script.sh deleted file mode 100755 index fb106da..0000000 --- a/configs/profile-openrc/root-image/root/.automated_script.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/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:// || "${script}" =~ ^ftp:// ]]; then - wget "${script}" --retry-connrefused -q -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/configs/profile-openrc/root-image/root/.zlogin b/configs/profile-openrc/root-image/root/.zlogin deleted file mode 100644 index f598e43..0000000 --- a/configs/profile-openrc/root-image/root/.zlogin +++ /dev/null @@ -1 +0,0 @@ -~/.automated_script.sh diff --git a/configs/profile-openrc/root-image/root/customize_root_image.sh b/configs/profile-openrc/root-image/root/customize_root_image.sh deleted file mode 100755 index f0d3af7..0000000 --- a/configs/profile-openrc/root-image/root/customize_root_image.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash - -set -e -u - -check_dbus() { - cat /etc/$1|grep dbus -} - -sed -i 's/#\(en_US\.UTF-8\)/\1/' /etc/locale.gen -locale-gen - -ln -sf /usr/share/zoneinfo/UTC /etc/localtime - -usermod -s /usr/bin/zsh root -cp -aT /etc/skel/ /root/ - -useradd -m -p "" -g users -G "adm,audio,floppy,log,network,rfkill,scanner,storage,optical,power,wheel" -s /usr/bin/zsh parabola - -# Create the dbus user if it doesn't exist -if [[ $(check_dbus group) = "" ]]; then - echo "Creating dbus group" - groupadd -g 81 dbus -fi -if [[ $(check_dbus passwd) = "" ]]; then - echo "Creating dbus user" - useradd -r -s /sbin/nologin -g 81 -u 81 dbus -fi - -chmod 750 /etc/sudoers.d -chmod 440 /etc/sudoers.d/g_wheel - -sed -i "s/#Server/Server/g" /etc/pacman.d/mirrorlist - -rc-update add NetworkManager default -rc-update add dbus default -rc-update add haveged default -rc-update add pacman-init default - -sed -i "s/_DATE_/${iso_version}/" /etc/motd diff --git a/configs/profile-openrc/root-image/root/network.html b/configs/profile-openrc/root-image/root/network.html deleted file mode 100644 index 057e680..0000000 --- a/configs/profile-openrc/root-image/root/network.html +++ /dev/null @@ -1,191 +0,0 @@ -Online version: https://wiki.parabolagnulinux.org/Start_installing -

Contents

- -
-

Start installing

-

You are now presented with a shell prompt, automatically logged in as root. -

-

Change the language

-
Tip: These are optional for the majority of users. Useful only if you plan on writing in your own language in any of the configuration files, if you use diacritical marks in the Wi-Fi password, or if you would like to receive system messages (e.g. possible errors) in your own language.
-

By default, the keyboard layout is set to us. If you have a non-US keyboard layout, run: -

-
# loadkeys layout
-
-

...where layout can be fr, uk, dvorak, be-latin1, etc. See here for a comprehensive list. -

The font should also be changed, because most languages use more glyphs than the 26 letter English alphabet. Otherwise some foreign characters may show up as white squares or as other symbols. Note that the name is case-sensitive, so please type it exactly as you see it: -

-
# setfont Lat2-Terminus16
-
-

By default, the language is set to English (US). If you would like to change the language for the install process (German, in this example), remove the # in front of the locale you want from /etc/locale.gen, along with English (US). Please choose the UTF-8 entry. -

Use Ctrl+X to exit, and when prompted to save changes, press Y and Enter to use the same filename. -

-
# nano /etc/locale.gen
-
-en_US.UTF-8 UTF-8
-de_DE.UTF-8 UTF-8
-
# locale-gen
-# export LANG=de_DE.UTF-8
-
-

Remember, LAlt+LShift activates and deactivates the keymap. -

-

Establish an internet connection

-
Warning: As of v197, udev no longer assigns network interface names according to the wlanX and ethX naming scheme. If you are coming from a different distribution or are reinstalling Parabola and not aware of the new interface naming style, please do not assume that your wireless interface is named wlan0, or that your wired interface is named eth0. You can use the command ip link to discover the names of your interfaces.
-

The dhcpcd network daemon starts automatically during boot and it will attempt to start a wired connection. Try to ping a server to see if a connection was established. For example, gnu.org: -

-
# ping -c 3 gnu.org
-
PING gnu.org (208.118.235.148) 56(84) bytes of data.
-64 bytes from wildebeest.gnu.org (208.118.235.148): icmp_seq=1 ttl=47 time=183 ms
-64 bytes from wildebeest.gnu.org (208.118.235.148): icmp_seq=2 ttl=47 time=168 ms
-64 bytes from wildebeest.gnu.org (208.118.235.148): icmp_seq=3 ttl=47 time=183 ms
-
---- gnu.org ping statistics ---
-3 packets transmitted, 3 received, 0% packet loss, time 2002ms
-rtt min/avg/max/mdev = 168.131/178.357/183.914/7.248 ms
-

If you get a ping: unknown host error, first check if there is an issue with your cable or wireless signal strength. If not, you will need to set up the network manually, as explained below. Once a connection is established move on to Installation Guide. -

-

Wired

-

Follow this procedure if you need to set up a wired connection via a static IP address. -

First, disable the dhcpcd service which was started automatically at boot: -

-
# systemctl stop dhcpcd.service
-
-

Identify the name of your Ethernet interface. -

-
# ip link
-
-1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
-    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
-2: enp2s0f0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
-    link/ether 00:11:25:31:69:20 brd ff:ff:ff:ff:ff:ff
-3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT qlen 1000
-    link/ether 01:02:03:04:05:06 brd ff:ff:ff:ff:ff:ff
-

In this example, the Ethernet interface is enp2s0f0. If you are unsure, your Ethernet interface is likely to start with the letter "e", and unlikely to be "lo" or start with the letter "w". You can also use iwconfig and see which interfaces are not wireless: -

-
# iwconfig
-
enp2s0f0  no wireless extensions.
-wlp3s0    IEEE 802.11bgn  ESSID:"NETGEAR97"
-          Mode:Managed  Frequency:2.427 GHz  Access Point: 2C:B0:5D:9C:72:BF
-          Bit Rate=65 Mb/s   Tx-Power=16 dBm
-          Retry  long limit:7   RTS thr:off   Fragment thr:off
-          Power Management:on
-          Link Quality=61/70  Signal level=-49 dBm
-          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
-          Tx excessive retries:0  Invalid misc:430   Missed beacon:0
-lo        no wireless extensions.
-

In this example, neither enp2s0f0 nor the loopback device have wireless extensions, meaning enp2s0f0 is our Ethernet interface. -

You also need to know these settings: -

-
  • Static IP address. -
  • Subnet mask. -
  • Gateway's IP address. -
  • Name servers' (DNS) IP addresses. -
  • Domain name (unless you are on a local LAN, in which case you can make it up). -
-

Activate the connected Ethernet interface (e.g. enp2s0f0): -

-
# ip link set enp2s0f0 up
-
-

Add the address: -

-
# ip addr add ip_address/subnetmask dev interface_name
-
-

For example: -

-
# ip addr add 192.168.1.2/24 dev enp2s0f0
-
-

For more options, run man ip. -

Add your gateway like this, substituting your own gateway's IP address: -

-
# ip route add default via ip_address
-
-

For example: -

-
# ip route add default via 192.168.1.1
-
-

Edit resolv.conf, substituting your name servers' IP addresses and your local domain name: -

-
# nano /etc/resolv.conf
-
-nameserver 61.23.173.5
-nameserver 61.95.849.8
-search example.com
-
Note: Currently, you may include a maximum of three nameserver lines. In order to overcome this limitation, you can use a locally caching nameserver like Dnsmasq.
-

You should now have a working network connection. If you do not, check the detailed Network Configuration page. -

-

Wireless

-

Follow this procedure if you need wireless connectivity (Wi-Fi) during the installation process. -

First, identify the name of your wireless interface. -

-
# iw dev
-
phy#0
-        Interface wlp3s0
-                ifindex 3
-                wdev 0x1
-                addr 00:21:6a:5e:52:bc
-                type managed
-

In this example, wlp3s0 is the available wireless interface. If you are unsure, your wireless interface is likely to start with the letter "w", and unlikely to be "lo" or start with the letter "e". -

-
Note: If you do not see output similar to this, then your wireless driver has not been loaded. Please see Wireless Setup for more detailed information.
-

Bring the interface up with: -

-
# ip link set wlp3s0 up
-
-

If you get this error message: SIOCSIFFLAGS: No such file or directory, your wireless chipset could need a non-free firmware to function. This is not supported on Parabola. Please see Wireless Setup if you are unsure if this is the true for your particular chipset. -

Next, use netctl's wifi-menu to connect to a network: -

-
# wifi-menu wlp3s0
-
-

You should now have a working network connection. If you do not, check the detailed Wireless Setup page. -

Alternatively, use iw dev wlp3s0 scan | grep SSID to scan for available networks, then connect to a network with: -

-
# wpa_supplicant -B -i wlp3s0 -c <(wpa_passphrase "ssid" "psk")
-
-

You need to replace ssid with the name of your network (e.g. "Linksys etc...") and psk with your wireless password, leaving the quotes around the network name and password. -

Finally, you have to give your interface an IP address. This can be set manually or using the dhcp: -

-
# dhcpcd wlp3s0
-
-

If that does not work, issue the following commands: -

-
# echo 'ctrl_interface=DIR=/run/wpa_supplicant' > /etc/wpa_supplicant.conf
-# wpa_passphrase <ssid> <passphrase> >> /etc/wpa_supplicant.conf
-# ip link set <interface> up # May not be needed as dhcpcd should bring it up but may be needed for wpa_supplicant.
-# wpa_supplicant -B -D nl80211 -c /foobar.conf -i <interface name>
-# dhcpcd -A <interface name>
-
-

Analog modem, ISDN or PPPoE DSL

-

For xDSL, dial-up and ISDN connections, see Direct Modem Connection. -

-

Behind a proxy server

-

If you are behind a proxy server, you will need to export the http_proxy and ftp_proxy environment variables. See Proxy settings for more information. -

-
-

This page was retrieved from: https://wiki.parabolagnulinux.org/index.php?title=Start_installing&oldid=5138 -

-

Content is available under GNU Free Documentation License 1.3 (or at your option, any later version). -

- - - diff --git a/configs/profile/airootfs/etc/fstab b/configs/profile/airootfs/etc/fstab new file mode 100644 index 0000000..e69de29 diff --git a/configs/profile/airootfs/etc/hostname b/configs/profile/airootfs/etc/hostname new file mode 100644 index 0000000..8aaf41b --- /dev/null +++ b/configs/profile/airootfs/etc/hostname @@ -0,0 +1 @@ +parabolaiso diff --git a/configs/profile/airootfs/etc/locale.conf b/configs/profile/airootfs/etc/locale.conf new file mode 100644 index 0000000..01ec548 --- /dev/null +++ b/configs/profile/airootfs/etc/locale.conf @@ -0,0 +1 @@ +LANG=en_US.UTF-8 diff --git a/configs/profile/airootfs/etc/motd b/configs/profile/airootfs/etc/motd new file mode 100644 index 0000000..e4c893c --- /dev/null +++ b/configs/profile/airootfs/etc/motd @@ -0,0 +1,14 @@ + +=============================================================================== + + Parabola GNU/Linux-libre live media _DATE_ + + To install Parabola, the system must be connected to the internet. + For instructions, enter this command: + less install.txt + + Press the function keys while holding Alt to switch virtual terminals. + This allows entering commands without closing less. + +=============================================================================== + diff --git a/configs/profile/airootfs/etc/pam.d/su b/configs/profile/airootfs/etc/pam.d/su new file mode 100644 index 0000000..a291042 --- /dev/null +++ b/configs/profile/airootfs/etc/pam.d/su @@ -0,0 +1,6 @@ +#%PAM-1.0 +auth sufficient pam_rootok.so +auth sufficient pam_wheel.so trust use_uid +auth required pam_unix.so +account required pam_unix.so +session required pam_unix.so diff --git a/configs/profile/airootfs/etc/sudoers.d/g_wheel b/configs/profile/airootfs/etc/sudoers.d/g_wheel new file mode 100644 index 0000000..8c45359 --- /dev/null +++ b/configs/profile/airootfs/etc/sudoers.d/g_wheel @@ -0,0 +1 @@ +%wheel ALL=(ALL) NOPASSWD: ALL diff --git a/configs/profile/airootfs/etc/systemd/scripts/choose-mirror b/configs/profile/airootfs/etc/systemd/scripts/choose-mirror new file mode 100755 index 0000000..13c9f69 --- /dev/null +++ b/configs/profile/airootfs/etc/systemd/scripts/choose-mirror @@ -0,0 +1,26 @@ +#!/bin/bash + +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 parabolaiso_http_srv) +[[ $mirror ]] || exit 0 + +mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.orig +cat >/etc/pacman.d/mirrorlist << EOF +# +# Parabola GNU/Linux-libre repository mirrorlist +# Generated by parabolaiso +# + +Server = ${mirror%%/}/\$repo/os/\$arch +EOF diff --git a/configs/profile/airootfs/etc/systemd/system/choose-mirror.service b/configs/profile/airootfs/etc/systemd/system/choose-mirror.service new file mode 100644 index 0000000..1e4d771 --- /dev/null +++ b/configs/profile/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=/etc/systemd/scripts/choose-mirror + +[Install] +WantedBy=multi-user.target diff --git a/configs/profile/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount b/configs/profile/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount new file mode 100644 index 0000000..4eab551 --- /dev/null +++ b/configs/profile/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount @@ -0,0 +1,8 @@ +[Unit] +Description=Temporary /etc/pacman.d/gnupg directory + +[Mount] +What=tmpfs +Where=/etc/pacman.d/gnupg +Type=tmpfs +Options=mode=0755 diff --git a/configs/profile/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf b/configs/profile/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf new file mode 100644 index 0000000..d1d8474 --- /dev/null +++ b/configs/profile/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf @@ -0,0 +1,3 @@ +[Service] +ExecStart= +ExecStart=-/sbin/agetty --autologin root --noclear %I 38400 linux diff --git a/configs/profile/airootfs/etc/systemd/system/pacman-init.service b/configs/profile/airootfs/etc/systemd/system/pacman-init.service new file mode 100644 index 0000000..3414ebc --- /dev/null +++ b/configs/profile/airootfs/etc/systemd/system/pacman-init.service @@ -0,0 +1,16 @@ +[Unit] +Description=Initializes Pacman keyring +Wants=haveged.service +After=haveged.service +Requires=etc-pacman.d-gnupg.mount +After=etc-pacman.d-gnupg.mount + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/usr/bin/pacman-key --init +ExecStart=/usr/bin/pacman-key --populate archlinux +ExecStart=/usr/bin/pacman-key --populate parabola + +[Install] +WantedBy=multi-user.target diff --git a/configs/profile/airootfs/etc/udev/rules.d/81-dhcpcd.rules b/configs/profile/airootfs/etc/udev/rules.d/81-dhcpcd.rules new file mode 100644 index 0000000..970da69 --- /dev/null +++ b/configs/profile/airootfs/etc/udev/rules.d/81-dhcpcd.rules @@ -0,0 +1 @@ +ACTION=="add", SUBSYSTEM=="net", ENV{SYSTEMD_WANTS}="dhcpcd@$name.service" diff --git a/configs/profile/airootfs/root/.automated_script.sh b/configs/profile/airootfs/root/.automated_script.sh new file mode 100755 index 0000000..fb106da --- /dev/null +++ b/configs/profile/airootfs/root/.automated_script.sh @@ -0,0 +1,34 @@ +#!/bin/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:// || "${script}" =~ ^ftp:// ]]; then + wget "${script}" --retry-connrefused -q -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/configs/profile/airootfs/root/.zlogin b/configs/profile/airootfs/root/.zlogin new file mode 100644 index 0000000..f598e43 --- /dev/null +++ b/configs/profile/airootfs/root/.zlogin @@ -0,0 +1 @@ +~/.automated_script.sh diff --git a/configs/profile/airootfs/root/customize_airootfs.sh b/configs/profile/airootfs/root/customize_airootfs.sh new file mode 100755 index 0000000..84084a9 --- /dev/null +++ b/configs/profile/airootfs/root/customize_airootfs.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +set -e -u + +sed -i 's/#\(en_US\.UTF-8\)/\1/' /etc/locale.gen +locale-gen + +ln -sf /usr/share/zoneinfo/UTC /etc/localtime + +usermod -s /usr/bin/zsh root +cp -aT /etc/skel/ /root/ + +useradd -m -p "" -g users -G "adm,audio,floppy,log,network,rfkill,scanner,storage,optical,power,wheel" -s /usr/bin/zsh parabola + +chmod 750 /etc/sudoers.d +chmod 440 /etc/sudoers.d/g_wheel + +sed -i 's/#\(PermitRootLogin \).\+/\1yes/' /etc/ssh/sshd_config +sed -i "s/#Server/Server/g" /etc/pacman.d/mirrorlist +sed -i 's/#\(Storage=\)auto/\1volatile/' /etc/systemd/journald.conf + +sed -i 's/#\(HandleSuspendKey=\)suspend/\1ignore/' /etc/systemd/logind.conf +sed -i 's/#\(HandleHibernateKey=\)hibernate/\1ignore/' /etc/systemd/logind.conf +sed -i 's/#\(HandleLidSwitch=\)suspend/\1ignore/' /etc/systemd/logind.conf + +systemctl enable multi-user.target pacman-init.service choose-mirror.service +systemctl set-default multi-user.target + +sed -i "s/_DATE_/$(date +%Y.%m.%d)/" /etc/motd diff --git a/configs/profile/airootfs/root/install.txt b/configs/profile/airootfs/root/install.txt new file mode 100644 index 0000000..a594b97 --- /dev/null +++ b/configs/profile/airootfs/root/install.txt @@ -0,0 +1,2 @@ +View this installation guide online at +https://wiki.parabola.nu/Installation_Guide diff --git a/configs/profile/aitab b/configs/profile/aitab deleted file mode 100644 index b7e9a17..0000000 --- a/configs/profile/aitab +++ /dev/null @@ -1,3 +0,0 @@ -# -root-image / i686 xz ext4 50% -root-image / x86_64 xz ext4 50% diff --git a/configs/profile/build.sh b/configs/profile/build.sh index 89203a8..89ac09a 100755 --- a/configs/profile/build.sh +++ b/configs/profile/build.sh @@ -8,13 +8,19 @@ iso_version=$(date +%Y.%m.%d) install_dir=parabola work_dir=work out_dir=out -data_dir=/usr/share/parabolaiso/data +gpg_key= arch=$(uname -m) verbose="" -pacman_conf=${work_dir}/pacman.conf script_path=$(readlink -f ${0%/*}) -initcpio_dir=${script_path}/../../parabolaiso/initcpio + +# Init system. Options are: +# - openrc +# - runit +# - systemd +# +# Default is systemd +init=systemd _usage () { @@ -46,56 +52,76 @@ run_once() { fi } -# Setup custom pacman.conf with current cache directories. +# Setup custom pacman.conf with current cache directories and custom mirrorlist. make_pacman_conf() { local _cache_dirs _cache_dirs=($(pacman -v 2>&1 | grep '^Cache Dirs:' | sed 's/Cache Dirs:\s*//g')) - sed -r "s|^#?\\s*CacheDir.+|CacheDir = $(echo -n ${_cache_dirs[@]})|g" ${script_path}/pacman.conf > ${pacman_conf} + sed -r "s|^#?\\s*CacheDir.+|CacheDir = $(echo -n ${_cache_dirs[@]})|g" ${script_path}/pacman.conf > ${work_dir}/pacman.conf } -# Base installation, plus needed packages (root-image) +# Base installation, plus needed packages (airootfs) make_basefs() { - setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" init - setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" -p "memtest86+ mkinitcpio-nfs-utils nbd" install + setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -i "${init}" init + setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -i "${init}" -p "haveged memtest86+ mkinitcpio-nfs-utils nbd zsh" install } -# Additional packages (root-image) +# Additional packages (airootfs) make_packages() { - setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" -p "$(grep -h -v ^# ${script_path}/packages.{both,${arch}})" install + setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -p "$(grep -h -v ^# ${script_path}/packages.{both,${arch}})" install +} + +# Needed packages for x86_64 EFI boot +make_packages_efi() { + setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -p "efitools" install } -# Copy mkinitcpio parabolaiso hooks and build initramfs (root-image) +# Copy mkinitcpio parabolaiso hooks and build initramfs (airootfs) make_setup_mkinitcpio() { local _hook + mkdir -p ${work_dir}/${arch}/airootfs/etc/initcpio/hooks + mkdir -p ${work_dir}/${arch}/airootfs/etc/initcpio/install for _hook in parabolaiso parabolaiso_shutdown parabolaiso_pxe_common parabolaiso_pxe_nbd parabolaiso_pxe_http parabolaiso_pxe_nfs parabolaiso_loop_mnt; do - cp ${initcpio_dir}/hooks/${_hook} ${work_dir}/${arch}/root-image/usr/lib/initcpio/hooks - cp ${initcpio_dir}/install/${_hook} ${work_dir}/${arch}/root-image/usr/lib/initcpio/install + cp /usr/lib/initcpio/hooks/${_hook} ${work_dir}/${arch}/airootfs/etc/initcpio/hooks + cp /usr/lib/initcpio/install/${_hook} ${work_dir}/${arch}/airootfs/etc/initcpio/install done - cp ${initcpio_dir}/install/parabolaiso_kms ${work_dir}/${arch}/root-image/usr/lib/initcpio/install - cp ${initcpio_dir}/hooks/parabolaiso_shutdown ${work_dir}/${arch}/root-image/usr/lib/initcpio - cp ${script_path}/mkinitcpio.conf ${work_dir}/${arch}/root-image/etc/mkinitcpio-parabolaiso.conf - setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" -r 'mkinitcpio -c /etc/mkinitcpio-parabolaiso.conf -k /boot/vmlinuz-linux-libre -g /boot/parabolaiso.img' run + sed -i "s|/usr/lib/initcpio/|/etc/initcpio/|g" ${work_dir}/${arch}/airootfs/etc/initcpio/install/parabolaiso_shutdown + cp /usr/lib/initcpio/install/parabolaiso_kms ${work_dir}/${arch}/airootfs/etc/initcpio/install + cp /usr/lib/initcpio/parabolaiso_shutdown ${work_dir}/${arch}/airootfs/etc/initcpio + cp ${script_path}/mkinitcpio.conf ${work_dir}/${arch}/airootfs/etc/mkinitcpio-parabolaiso.conf + gnupg_fd= + if [[ ${gpg_key} ]]; then + gpg --export ${gpg_key} >${work_dir}/gpgkey + exec 17<>${work_dir}/gpgkey + fi + PARABOLAISO_GNUPG_FD=${gpg_key:+17} setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -r 'mkinitcpio -c /etc/mkinitcpio-parabolaiso.conf -k /boot/vmlinuz-linux-libre -g /boot/parabolaiso.img' run + if [[ ${gpg_key} ]]; then + exec 17<&- + fi } -# Customize installation (root-image) -make_customize_root_image() { - cp -af ${script_path}/root-image ${work_dir}/${arch} +# Customize installation (airootfs) +make_customize_airootfs() { + cp -af ${script_path}/airootfs ${work_dir}/${arch} + + curl -o ${work_dir}/${arch}/airootfs/etc/pacman.d/mirrorlist 'https://www.parabola.nu/mirrorlist/?country=all&protocol=http&use_mirror_status=on' - iso_version="${iso_version}" setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" -r '/root/customize_root_image.sh' run - rm ${work_dir}/${arch}/root-image/root/customize_root_image.sh + lynx -dump -nolist 'https://wiki.parabola.nu/index.php/Installation_Guide?action=render' >> ${work_dir}/${arch}/airootfs/root/install.txt + + setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -r '/root/customize_airootfs.sh' run + rm ${work_dir}/${arch}/airootfs/root/customize_airootfs.sh } # Prepare kernel/initramfs ${install_dir}/boot/ make_boot() { mkdir -p ${work_dir}/iso/${install_dir}/boot/${arch} - cp ${work_dir}/${arch}/root-image/boot/parabolaiso.img ${work_dir}/iso/${install_dir}/boot/${arch}/parabolaiso.img - cp ${work_dir}/${arch}/root-image/boot/vmlinuz-linux-libre ${work_dir}/iso/${install_dir}/boot/${arch}/vmlinuz + cp ${work_dir}/${arch}/airootfs/boot/parabolaiso.img ${work_dir}/iso/${install_dir}/boot/${arch}/parabolaiso.img + cp ${work_dir}/${arch}/airootfs/boot/vmlinuz-linux-libre ${work_dir}/iso/${install_dir}/boot/${arch}/vmlinuz } # Add other aditional/extra files to ${install_dir}/boot/ make_boot_extra() { - cp ${work_dir}/${arch}/root-image/boot/memtest86+/memtest.bin ${work_dir}/iso/${install_dir}/boot/memtest - cp ${work_dir}/${arch}/root-image/usr/share/licenses/common/GPL2/license.txt ${work_dir}/iso/${install_dir}/boot/memtest.COPYING + cp ${work_dir}/${arch}/airootfs/boot/memtest86+/memtest.bin ${work_dir}/iso/${install_dir}/boot/memtest + cp ${work_dir}/${arch}/airootfs/usr/share/licenses/common/GPL2/license.txt ${work_dir}/iso/${install_dir}/boot/memtest.COPYING } # Prepare /${install_dir}/boot/syslinux @@ -106,27 +132,30 @@ make_syslinux() { s|%INSTALL_DIR%|${install_dir}|g" ${_cfg} > ${work_dir}/iso/${install_dir}/boot/syslinux/${_cfg##*/} done cp ${script_path}/syslinux/splash.png ${work_dir}/iso/${install_dir}/boot/syslinux - cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/*.c32 ${work_dir}/iso/${install_dir}/boot/syslinux - cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/lpxelinux.0 ${work_dir}/iso/${install_dir}/boot/syslinux - cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/memdisk ${work_dir}/iso/${install_dir}/boot/syslinux + cp ${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/*.c32 ${work_dir}/iso/${install_dir}/boot/syslinux + cp ${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/lpxelinux.0 ${work_dir}/iso/${install_dir}/boot/syslinux + cp ${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/memdisk ${work_dir}/iso/${install_dir}/boot/syslinux mkdir -p ${work_dir}/iso/${install_dir}/boot/syslinux/hdt - gzip -c -9 ${work_dir}/${arch}/root-image/usr/share/hwdata/pci.ids > ${work_dir}/iso/${install_dir}/boot/syslinux/hdt/pciids.gz - gzip -c -9 ${work_dir}/${arch}/root-image/usr/lib/modules/*-gnu-*/modules.alias > ${work_dir}/iso/${install_dir}/boot/syslinux/hdt/modalias.gz + gzip -c -9 ${work_dir}/${arch}/airootfs/usr/share/hwdata/pci.ids > ${work_dir}/iso/${install_dir}/boot/syslinux/hdt/pciids.gz + gzip -c -9 ${work_dir}/${arch}/airootfs/usr/lib/modules/*-gnu-*/modules.alias > ${work_dir}/iso/${install_dir}/boot/syslinux/hdt/modalias.gz } # Prepare /isolinux make_isolinux() { mkdir -p ${work_dir}/iso/isolinux sed "s|%INSTALL_DIR%|${install_dir}|g" ${script_path}/isolinux/isolinux.cfg > ${work_dir}/iso/isolinux/isolinux.cfg - cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/isolinux.bin ${work_dir}/iso/isolinux/ - cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/isohdpfx.bin ${work_dir}/iso/isolinux/ - cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/ldlinux.c32 ${work_dir}/iso/isolinux/ + cp ${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/isolinux.bin ${work_dir}/iso/isolinux/ + cp ${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/isohdpfx.bin ${work_dir}/iso/isolinux/ + cp ${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/ldlinux.c32 ${work_dir}/iso/isolinux/ } # Prepare /EFI make_efi() { mkdir -p ${work_dir}/iso/EFI/boot - cp ${work_dir}/x86_64/root-image/usr/lib/systemd/boot/efi/systemd-bootx64.efi ${work_dir}/iso/EFI/boot/bootx64.efi + cp ${work_dir}/x86_64/airootfs/usr/share/efitools/efi/PreLoader.efi ${work_dir}/iso/EFI/boot/bootx64.efi + cp ${work_dir}/x86_64/airootfs/usr/share/efitools/efi/HashTool.efi ${work_dir}/iso/EFI/boot/ + + cp ${work_dir}/x86_64/airootfs/usr/lib/systemd/boot/efi/systemd-bootx64.efi ${work_dir}/iso/EFI/boot/loader.efi mkdir -p ${work_dir}/iso/loader/entries cp ${script_path}/efiboot/loader/loader.conf ${work_dir}/iso/loader/ @@ -137,17 +166,17 @@ make_efi() { s|%INSTALL_DIR%|${install_dir}|g" \ ${script_path}/efiboot/loader/entries/parabolaiso-x86_64-usb.conf > ${work_dir}/iso/loader/entries/parabolaiso-x86_64.conf - # EFI Shell 2.0 for UEFI 2.3+ ( http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=UEFI_Shell ) - cp ${data_dir}/Shell.efi ${work_dir}/iso/EFI/shellx64_v2.efi - # EFI Shell 1.0 for non UEFI 2.3+ ( http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=Efi-shell ) - cp ${data_dir}/Shell_Full.efi ${work_dir}/iso/EFI/shellx64_v1.efi + # EFI Shell 2.0 for UEFI 2.3+ + curl -o ${work_dir}/iso/EFI/shellx64_v2.efi https://raw.githubusercontent.com/tianocore/edk2/master/ShellBinPkg/UefiShell/X64/Shell.efi + # EFI Shell 1.0 for non UEFI 2.3+ + curl -o ${work_dir}/iso/EFI/shellx64_v1.efi https://raw.githubusercontent.com/tianocore/edk2/master/EdkShellBinPkg/FullShell/X64/Shell_Full.efi } # Prepare efiboot.img::/EFI for "El Torito" EFI boot mode make_efiboot() { mkdir -p ${work_dir}/iso/EFI/parabolaiso - truncate -s 38M ${work_dir}/iso/EFI/parabolaiso/efiboot.img - mkfs.vfat -n PARABOLAISO_EFI ${work_dir}/iso/EFI/parabolaiso/efiboot.img + truncate -s 64M ${work_dir}/iso/EFI/parabolaiso/efiboot.img + mkfs.fat -n PARABOLAISO_EFI ${work_dir}/iso/EFI/parabolaiso/efiboot.img mkdir -p ${work_dir}/efiboot mount ${work_dir}/iso/EFI/parabolaiso/efiboot.img ${work_dir}/efiboot @@ -157,7 +186,10 @@ make_efiboot() { cp ${work_dir}/iso/${install_dir}/boot/x86_64/parabolaiso.img ${work_dir}/efiboot/EFI/parabolaiso/parabolaiso.img mkdir -p ${work_dir}/efiboot/EFI/boot - cp ${work_dir}/x86_64/root-image/usr/lib/systemd/boot/efi/systemd-bootx64.efi ${work_dir}/efiboot/EFI/boot/bootx64.efi + cp ${work_dir}/x86_64/airootfs/usr/share/efitools/efi/PreLoader.efi ${work_dir}/efiboot/EFI/boot/bootx64.efi + cp ${work_dir}/x86_64/airootfs/usr/share/efitools/efi/HashTool.efi ${work_dir}/efiboot/EFI/boot/ + + cp ${work_dir}/x86_64/airootfs/usr/lib/systemd/boot/efi/systemd-bootx64.efi ${work_dir}/efiboot/EFI/boot/loader.efi mkdir -p ${work_dir}/efiboot/loader/entries cp ${script_path}/efiboot/loader/loader.conf ${work_dir}/efiboot/loader/ @@ -171,27 +203,20 @@ make_efiboot() { cp ${work_dir}/iso/EFI/shellx64_v2.efi ${work_dir}/efiboot/EFI/ cp ${work_dir}/iso/EFI/shellx64_v1.efi ${work_dir}/efiboot/EFI/ - umount ${work_dir}/efiboot -} - -# Copy aitab -make_aitab() { - mkdir -p ${work_dir}/iso/${install_dir} - cp ${script_path}/aitab ${work_dir}/iso/${install_dir}/aitab + umount -d ${work_dir}/efiboot } -# Build all filesystem images specified in aitab (.fs.sfs .sfs) +# Build airootfs filesystem image make_prepare() { - cp -a -l -f ${work_dir}/${arch}/root-image ${work_dir} + cp -a -l -f ${work_dir}/${arch}/airootfs ${work_dir} setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}" -D "${install_dir}" pkglist - setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}" -D "${install_dir}" prepare - rm -rf ${work_dir}/root-image - # rm -rf ${work_dir}/${arch}/root-image (if low space, this helps) + setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}" -D "${install_dir}" ${gpg_key:+-g ${gpg_key}} prepare + rm -rf ${work_dir}/airootfs + # rm -rf ${work_dir}/${arch}/airootfs (if low space, this helps) } # Build ISO make_iso() { - mkparabolaiso ${verbose} -w "${work_dir}" -D "${install_dir}" checksum mkparabolaiso ${verbose} -w "${work_dir}" -D "${install_dir}" -L "${iso_label}" -o "${out_dir}" iso "${iso_name}-${iso_version}-dual.iso" } @@ -205,7 +230,7 @@ if [[ ${arch} != x86_64 ]]; then _usage 1 fi -while getopts 'N:V:L:D:w:o:vh' arg; do +while getopts 'N:V:L:D:w:o:g:vh' arg; do case "${arg}" in N) iso_name="${OPTARG}" ;; V) iso_version="${OPTARG}" ;; @@ -213,6 +238,7 @@ while getopts 'N:V:L:D:w:o:vh' arg; do D) install_dir="${OPTARG}" ;; w) work_dir="${OPTARG}" ;; o) out_dir="${OPTARG}" ;; + g) gpg_key="${OPTARG}" ;; v) verbose="-v" ;; h) _usage 0 ;; *) @@ -226,12 +252,17 @@ mkdir -p ${work_dir} run_once make_pacman_conf -# Do all stuff for each root-image +# Do all stuff for each airootfs for arch in i686 x86_64; do run_once make_basefs run_once make_packages +done + +run_once make_packages_efi + +for arch in i686 x86_64; do run_once make_setup_mkinitcpio - run_once make_customize_root_image + run_once make_customize_airootfs done for arch in i686 x86_64; do @@ -245,8 +276,6 @@ run_once make_isolinux run_once make_efi run_once make_efiboot -run_once make_aitab - for arch in i686 x86_64; do run_once make_prepare done diff --git a/configs/profile/mkinitcpio.conf b/configs/profile/mkinitcpio.conf index 1006d1d..f7a52b8 100644 --- a/configs/profile/mkinitcpio.conf +++ b/configs/profile/mkinitcpio.conf @@ -1,2 +1,2 @@ -HOOKS="base udev memdisk parabolaiso_shutdown parabolaiso parabolaiso_loop_mnt parabolaiso_pxe_common parabolaiso_pxe_nbd parabolaiso_pxe_http parabolaiso_pxe_nfs parabolaiso_kms block pcmcia filesystems keyboard" +HOOKS=(base udev memdisk parabolaiso_shutdown parabolaiso parabolaiso_loop_mnt parabolaiso_pxe_common parabolaiso_pxe_nbd parabolaiso_pxe_http parabolaiso_pxe_nfs parabolaiso_kms block pcmcia filesystems keyboard) COMPRESSION="xz" diff --git a/configs/profile/root-image/etc/fstab b/configs/profile/root-image/etc/fstab deleted file mode 100644 index e69de29..0000000 diff --git a/configs/profile/root-image/etc/hostname b/configs/profile/root-image/etc/hostname deleted file mode 100644 index 8aaf41b..0000000 --- a/configs/profile/root-image/etc/hostname +++ /dev/null @@ -1 +0,0 @@ -parabolaiso diff --git a/configs/profile/root-image/etc/locale.conf b/configs/profile/root-image/etc/locale.conf deleted file mode 100644 index 01ec548..0000000 --- a/configs/profile/root-image/etc/locale.conf +++ /dev/null @@ -1 +0,0 @@ -LANG=en_US.UTF-8 diff --git a/configs/profile/root-image/etc/motd b/configs/profile/root-image/etc/motd deleted file mode 100644 index a126999..0000000 --- a/configs/profile/root-image/etc/motd +++ /dev/null @@ -1,14 +0,0 @@ - -=============================================================================== - - Parabola live media _DATE_ - - To install Parabola, the system must be connected to the internet. - For instructions, enter this command: - lynx network.html - - Press the function keys while holding Alt to switch virtual terminals. - This allows entering commands without closing lynx. - -=============================================================================== - diff --git a/configs/profile/root-image/etc/pam.d/su b/configs/profile/root-image/etc/pam.d/su deleted file mode 100644 index a291042..0000000 --- a/configs/profile/root-image/etc/pam.d/su +++ /dev/null @@ -1,6 +0,0 @@ -#%PAM-1.0 -auth sufficient pam_rootok.so -auth sufficient pam_wheel.so trust use_uid -auth required pam_unix.so -account required pam_unix.so -session required pam_unix.so diff --git a/configs/profile/root-image/etc/sudoers.d/g_wheel b/configs/profile/root-image/etc/sudoers.d/g_wheel deleted file mode 100644 index 8c45359..0000000 --- a/configs/profile/root-image/etc/sudoers.d/g_wheel +++ /dev/null @@ -1 +0,0 @@ -%wheel ALL=(ALL) NOPASSWD: ALL diff --git a/configs/profile/root-image/etc/systemd/scripts/choose-mirror b/configs/profile/root-image/etc/systemd/scripts/choose-mirror deleted file mode 100755 index 13c9f69..0000000 --- a/configs/profile/root-image/etc/systemd/scripts/choose-mirror +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash - -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 parabolaiso_http_srv) -[[ $mirror ]] || exit 0 - -mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.orig -cat >/etc/pacman.d/mirrorlist << EOF -# -# Parabola GNU/Linux-libre repository mirrorlist -# Generated by parabolaiso -# - -Server = ${mirror%%/}/\$repo/os/\$arch -EOF diff --git a/configs/profile/root-image/etc/systemd/system/choose-mirror.service b/configs/profile/root-image/etc/systemd/system/choose-mirror.service deleted file mode 100644 index 1e4d771..0000000 --- a/configs/profile/root-image/etc/systemd/system/choose-mirror.service +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=Choose mirror from the kernel command line -ConditionKernelCommandLine=mirror - -[Service] -Type=oneshot -ExecStart=/etc/systemd/scripts/choose-mirror - -[Install] -WantedBy=multi-user.target diff --git a/configs/profile/root-image/etc/systemd/system/etc-pacman.d-gnupg.mount b/configs/profile/root-image/etc/systemd/system/etc-pacman.d-gnupg.mount deleted file mode 100644 index 4eab551..0000000 --- a/configs/profile/root-image/etc/systemd/system/etc-pacman.d-gnupg.mount +++ /dev/null @@ -1,8 +0,0 @@ -[Unit] -Description=Temporary /etc/pacman.d/gnupg directory - -[Mount] -What=tmpfs -Where=/etc/pacman.d/gnupg -Type=tmpfs -Options=mode=0755 diff --git a/configs/profile/root-image/etc/systemd/system/getty@tty1.service.d/autologin.conf b/configs/profile/root-image/etc/systemd/system/getty@tty1.service.d/autologin.conf deleted file mode 100644 index d1d8474..0000000 --- a/configs/profile/root-image/etc/systemd/system/getty@tty1.service.d/autologin.conf +++ /dev/null @@ -1,3 +0,0 @@ -[Service] -ExecStart= -ExecStart=-/sbin/agetty --autologin root --noclear %I 38400 linux diff --git a/configs/profile/root-image/etc/systemd/system/pacman-init.service b/configs/profile/root-image/etc/systemd/system/pacman-init.service deleted file mode 100644 index 3414ebc..0000000 --- a/configs/profile/root-image/etc/systemd/system/pacman-init.service +++ /dev/null @@ -1,16 +0,0 @@ -[Unit] -Description=Initializes Pacman keyring -Wants=haveged.service -After=haveged.service -Requires=etc-pacman.d-gnupg.mount -After=etc-pacman.d-gnupg.mount - -[Service] -Type=oneshot -RemainAfterExit=yes -ExecStart=/usr/bin/pacman-key --init -ExecStart=/usr/bin/pacman-key --populate archlinux -ExecStart=/usr/bin/pacman-key --populate parabola - -[Install] -WantedBy=multi-user.target diff --git a/configs/profile/root-image/etc/udev/rules.d/81-dhcpcd.rules b/configs/profile/root-image/etc/udev/rules.d/81-dhcpcd.rules deleted file mode 100644 index 970da69..0000000 --- a/configs/profile/root-image/etc/udev/rules.d/81-dhcpcd.rules +++ /dev/null @@ -1 +0,0 @@ -ACTION=="add", SUBSYSTEM=="net", ENV{SYSTEMD_WANTS}="dhcpcd@$name.service" diff --git a/configs/profile/root-image/root/.automated_script.sh b/configs/profile/root-image/root/.automated_script.sh deleted file mode 100755 index fb106da..0000000 --- a/configs/profile/root-image/root/.automated_script.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/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:// || "${script}" =~ ^ftp:// ]]; then - wget "${script}" --retry-connrefused -q -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/configs/profile/root-image/root/.zlogin b/configs/profile/root-image/root/.zlogin deleted file mode 100644 index f598e43..0000000 --- a/configs/profile/root-image/root/.zlogin +++ /dev/null @@ -1 +0,0 @@ -~/.automated_script.sh diff --git a/configs/profile/root-image/root/customize_root_image.sh b/configs/profile/root-image/root/customize_root_image.sh deleted file mode 100755 index 9c980f1..0000000 --- a/configs/profile/root-image/root/customize_root_image.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -set -e -u - -sed -i 's/#\(en_US\.UTF-8\)/\1/' /etc/locale.gen -locale-gen - -ln -sf /usr/share/zoneinfo/UTC /etc/localtime - -usermod -s /usr/bin/zsh root -cp -aT /etc/skel/ /root/ - -useradd -m -p "" -g users -G "adm,audio,floppy,log,network,rfkill,scanner,storage,optical,power,wheel" -s /usr/bin/zsh parabola - -chmod 750 /etc/sudoers.d -chmod 440 /etc/sudoers.d/g_wheel - -sed -i "s/#Server/Server/g" /etc/pacman.d/mirrorlist - -systemctl enable multi-user.target pacman-init.service choose-mirror.service - -sed -i "s/_DATE_/${iso_version}/" /etc/motd diff --git a/configs/profile/root-image/root/network.html b/configs/profile/root-image/root/network.html deleted file mode 100644 index 057e680..0000000 --- a/configs/profile/root-image/root/network.html +++ /dev/null @@ -1,191 +0,0 @@ -Online version: https://wiki.parabolagnulinux.org/Start_installing -

Contents

- -
-

Start installing

-

You are now presented with a shell prompt, automatically logged in as root. -

-

Change the language

-
Tip: These are optional for the majority of users. Useful only if you plan on writing in your own language in any of the configuration files, if you use diacritical marks in the Wi-Fi password, or if you would like to receive system messages (e.g. possible errors) in your own language.
-

By default, the keyboard layout is set to us. If you have a non-US keyboard layout, run: -

-
# loadkeys layout
-
-

...where layout can be fr, uk, dvorak, be-latin1, etc. See here for a comprehensive list. -

The font should also be changed, because most languages use more glyphs than the 26 letter English alphabet. Otherwise some foreign characters may show up as white squares or as other symbols. Note that the name is case-sensitive, so please type it exactly as you see it: -

-
# setfont Lat2-Terminus16
-
-

By default, the language is set to English (US). If you would like to change the language for the install process (German, in this example), remove the # in front of the locale you want from /etc/locale.gen, along with English (US). Please choose the UTF-8 entry. -

Use Ctrl+X to exit, and when prompted to save changes, press Y and Enter to use the same filename. -

-
# nano /etc/locale.gen
-
-en_US.UTF-8 UTF-8
-de_DE.UTF-8 UTF-8
-
# locale-gen
-# export LANG=de_DE.UTF-8
-
-

Remember, LAlt+LShift activates and deactivates the keymap. -

-

Establish an internet connection

-
Warning: As of v197, udev no longer assigns network interface names according to the wlanX and ethX naming scheme. If you are coming from a different distribution or are reinstalling Parabola and not aware of the new interface naming style, please do not assume that your wireless interface is named wlan0, or that your wired interface is named eth0. You can use the command ip link to discover the names of your interfaces.
-

The dhcpcd network daemon starts automatically during boot and it will attempt to start a wired connection. Try to ping a server to see if a connection was established. For example, gnu.org: -

-
# ping -c 3 gnu.org
-
PING gnu.org (208.118.235.148) 56(84) bytes of data.
-64 bytes from wildebeest.gnu.org (208.118.235.148): icmp_seq=1 ttl=47 time=183 ms
-64 bytes from wildebeest.gnu.org (208.118.235.148): icmp_seq=2 ttl=47 time=168 ms
-64 bytes from wildebeest.gnu.org (208.118.235.148): icmp_seq=3 ttl=47 time=183 ms
-
---- gnu.org ping statistics ---
-3 packets transmitted, 3 received, 0% packet loss, time 2002ms
-rtt min/avg/max/mdev = 168.131/178.357/183.914/7.248 ms
-

If you get a ping: unknown host error, first check if there is an issue with your cable or wireless signal strength. If not, you will need to set up the network manually, as explained below. Once a connection is established move on to Installation Guide. -

-

Wired

-

Follow this procedure if you need to set up a wired connection via a static IP address. -

First, disable the dhcpcd service which was started automatically at boot: -

-
# systemctl stop dhcpcd.service
-
-

Identify the name of your Ethernet interface. -

-
# ip link
-
-1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
-    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
-2: enp2s0f0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
-    link/ether 00:11:25:31:69:20 brd ff:ff:ff:ff:ff:ff
-3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT qlen 1000
-    link/ether 01:02:03:04:05:06 brd ff:ff:ff:ff:ff:ff
-

In this example, the Ethernet interface is enp2s0f0. If you are unsure, your Ethernet interface is likely to start with the letter "e", and unlikely to be "lo" or start with the letter "w". You can also use iwconfig and see which interfaces are not wireless: -

-
# iwconfig
-
enp2s0f0  no wireless extensions.
-wlp3s0    IEEE 802.11bgn  ESSID:"NETGEAR97"
-          Mode:Managed  Frequency:2.427 GHz  Access Point: 2C:B0:5D:9C:72:BF
-          Bit Rate=65 Mb/s   Tx-Power=16 dBm
-          Retry  long limit:7   RTS thr:off   Fragment thr:off
-          Power Management:on
-          Link Quality=61/70  Signal level=-49 dBm
-          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
-          Tx excessive retries:0  Invalid misc:430   Missed beacon:0
-lo        no wireless extensions.
-

In this example, neither enp2s0f0 nor the loopback device have wireless extensions, meaning enp2s0f0 is our Ethernet interface. -

You also need to know these settings: -

-
  • Static IP address. -
  • Subnet mask. -
  • Gateway's IP address. -
  • Name servers' (DNS) IP addresses. -
  • Domain name (unless you are on a local LAN, in which case you can make it up). -
-

Activate the connected Ethernet interface (e.g. enp2s0f0): -

-
# ip link set enp2s0f0 up
-
-

Add the address: -

-
# ip addr add ip_address/subnetmask dev interface_name
-
-

For example: -

-
# ip addr add 192.168.1.2/24 dev enp2s0f0
-
-

For more options, run man ip. -

Add your gateway like this, substituting your own gateway's IP address: -

-
# ip route add default via ip_address
-
-

For example: -

-
# ip route add default via 192.168.1.1
-
-

Edit resolv.conf, substituting your name servers' IP addresses and your local domain name: -

-
# nano /etc/resolv.conf
-
-nameserver 61.23.173.5
-nameserver 61.95.849.8
-search example.com
-
Note: Currently, you may include a maximum of three nameserver lines. In order to overcome this limitation, you can use a locally caching nameserver like Dnsmasq.
-

You should now have a working network connection. If you do not, check the detailed Network Configuration page. -

-

Wireless

-

Follow this procedure if you need wireless connectivity (Wi-Fi) during the installation process. -

First, identify the name of your wireless interface. -

-
# iw dev
-
phy#0
-        Interface wlp3s0
-                ifindex 3
-                wdev 0x1
-                addr 00:21:6a:5e:52:bc
-                type managed
-

In this example, wlp3s0 is the available wireless interface. If you are unsure, your wireless interface is likely to start with the letter "w", and unlikely to be "lo" or start with the letter "e". -

-
Note: If you do not see output similar to this, then your wireless driver has not been loaded. Please see Wireless Setup for more detailed information.
-

Bring the interface up with: -

-
# ip link set wlp3s0 up
-
-

If you get this error message: SIOCSIFFLAGS: No such file or directory, your wireless chipset could need a non-free firmware to function. This is not supported on Parabola. Please see Wireless Setup if you are unsure if this is the true for your particular chipset. -

Next, use netctl's wifi-menu to connect to a network: -

-
# wifi-menu wlp3s0
-
-

You should now have a working network connection. If you do not, check the detailed Wireless Setup page. -

Alternatively, use iw dev wlp3s0 scan | grep SSID to scan for available networks, then connect to a network with: -

-
# wpa_supplicant -B -i wlp3s0 -c <(wpa_passphrase "ssid" "psk")
-
-

You need to replace ssid with the name of your network (e.g. "Linksys etc...") and psk with your wireless password, leaving the quotes around the network name and password. -

Finally, you have to give your interface an IP address. This can be set manually or using the dhcp: -

-
# dhcpcd wlp3s0
-
-

If that does not work, issue the following commands: -

-
# echo 'ctrl_interface=DIR=/run/wpa_supplicant' > /etc/wpa_supplicant.conf
-# wpa_passphrase <ssid> <passphrase> >> /etc/wpa_supplicant.conf
-# ip link set <interface> up # May not be needed as dhcpcd should bring it up but may be needed for wpa_supplicant.
-# wpa_supplicant -B -D nl80211 -c /foobar.conf -i <interface name>
-# dhcpcd -A <interface name>
-
-

Analog modem, ISDN or PPPoE DSL

-

For xDSL, dial-up and ISDN connections, see Direct Modem Connection. -

-

Behind a proxy server

-

If you are behind a proxy server, you will need to export the http_proxy and ftp_proxy environment variables. See Proxy settings for more information. -

-
-

This page was retrieved from: https://wiki.parabolagnulinux.org/index.php?title=Start_installing&oldid=5138 -

-

Content is available under GNU Free Documentation License 1.3 (or at your option, any later version). -

- - - diff --git a/configs/talkingparabola-X11/aitab b/configs/talkingparabola-X11/aitab deleted file mode 100644 index b7e9a17..0000000 --- a/configs/talkingparabola-X11/aitab +++ /dev/null @@ -1,3 +0,0 @@ -# -root-image / i686 xz ext4 50% -root-image / x86_64 xz ext4 50% diff --git a/configs/talkingparabola-X11/build.sh b/configs/talkingparabola-X11/build.sh deleted file mode 100755 index b7242a7..0000000 --- a/configs/talkingparabola-X11/build.sh +++ /dev/null @@ -1,254 +0,0 @@ -#!/bin/bash - -set -e -u - -iso_name=talkingparabola -iso_label="PARA_$(date +%Y%m)" -iso_version=$(date +%Y.%m.%d) -install_dir=parabola -work_dir=work -out_dir=out -data_dir=/usr/share/parabolaiso/data - -arch=$(uname -m) -verbose="" -pacman_conf=${work_dir}/pacman.conf -script_path=$(readlink -f ${0%/*}) -initcpio_dir=${script_path}/../../parabolaiso/initcpio - -_usage () -{ - echo "usage ${0} [options]" - echo - echo " General options:" - echo " -N Set an iso filename (prefix)" - echo " Default: ${iso_name}" - echo " -V Set an iso version (in filename)" - echo " Default: ${iso_version}" - echo " -L Set an iso label (disk label)" - echo " Default: ${iso_label}" - echo " -D Set an install_dir (directory inside iso)" - echo " Default: ${install_dir}" - echo " -w Set the working directory" - echo " Default: ${work_dir}" - echo " -o Set the output directory" - echo " Default: ${out_dir}" - echo " -v Enable verbose output" - echo " -h This help message" - exit ${1} -} - -# Helper function to run make_*() only one time per architecture. -run_once() { - if [[ ! -e ${work_dir}/build.${1}_${arch} ]]; then - $1 - touch ${work_dir}/build.${1}_${arch} - fi -} - -# Setup custom pacman.conf with current cache directories. -make_pacman_conf() { - local _cache_dirs - _cache_dirs=($(pacman -v 2>&1 | grep '^Cache Dirs:' | sed 's/Cache Dirs:\s*//g')) - sed -r "s|^#?\\s*CacheDir.+|CacheDir = $(echo -n ${_cache_dirs[@]})|g" ${script_path}/pacman.conf > ${pacman_conf} -} - -# Base installation, plus needed packages (root-image) -make_basefs() { - setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" init - setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" -p "memtest86+ mkinitcpio-nfs-utils nbd" install -} - -# Additional packages (root-image) -make_packages() { - setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" -p "$(grep -h -v ^# ${script_path}/packages.{both,${arch}})" install -} - -# Copy mkinitcpio parabolaiso hooks and build initramfs (root-image) -make_setup_mkinitcpio() { - local _hook - for _hook in parabolaiso parabolaiso_shutdown parabolaiso_pxe_common parabolaiso_pxe_nbd parabolaiso_pxe_http parabolaiso_pxe_nfs parabolaiso_loop_mnt; do - cp ${initcpio_dir}/hooks/${_hook} ${work_dir}/${arch}/root-image/usr/lib/initcpio/hooks - cp ${initcpio_dir}/install/${_hook} ${work_dir}/${arch}/root-image/usr/lib/initcpio/install - done - cp ${initcpio_dir}/install/parabolaiso_kms ${work_dir}/${arch}/root-image/usr/lib/initcpio/install - cp ${initcpio_dir}/hooks/parabolaiso_shutdown ${work_dir}/${arch}/root-image/usr/lib/initcpio - cp ${script_path}/mkinitcpio.conf ${work_dir}/${arch}/root-image/etc/mkinitcpio-parabolaiso.conf - setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" -r 'mkinitcpio -c /etc/mkinitcpio-parabolaiso.conf -k /boot/vmlinuz-linux-libre -g /boot/parabolaiso.img' run -} - -# Customize installation (root-image) -make_customize_root_image() { - cp -af ${script_path}/root-image ${work_dir}/${arch} - - iso_version="${iso_version}" setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" -r '/root/customize_root_image.sh' run - rm ${work_dir}/${arch}/root-image/root/customize_root_image.sh -} - -# Prepare kernel/initramfs ${install_dir}/boot/ -make_boot() { - mkdir -p ${work_dir}/iso/${install_dir}/boot/${arch} - cp ${work_dir}/${arch}/root-image/boot/parabolaiso.img ${work_dir}/iso/${install_dir}/boot/${arch}/parabolaiso.img - cp ${work_dir}/${arch}/root-image/boot/vmlinuz-linux-libre ${work_dir}/iso/${install_dir}/boot/${arch}/vmlinuz -} - -# Add other aditional/extra files to ${install_dir}/boot/ -make_boot_extra() { - cp ${work_dir}/${arch}/root-image/boot/memtest86+/memtest.bin ${work_dir}/iso/${install_dir}/boot/memtest - cp ${work_dir}/${arch}/root-image/usr/share/licenses/common/GPL2/license.txt ${work_dir}/iso/${install_dir}/boot/memtest.COPYING -} - -# Prepare /${install_dir}/boot/syslinux -make_syslinux() { - mkdir -p ${work_dir}/iso/${install_dir}/boot/syslinux - for _cfg in ${script_path}/syslinux/*.cfg; do - sed "s|%PARABOLAISO_LABEL%|${iso_label}|g; - s|%INSTALL_DIR%|${install_dir}|g" ${_cfg} > ${work_dir}/iso/${install_dir}/boot/syslinux/${_cfg##*/} - done - cp ${script_path}/syslinux/splash.png ${work_dir}/iso/${install_dir}/boot/syslinux - cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/*.c32 ${work_dir}/iso/${install_dir}/boot/syslinux - cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/lpxelinux.0 ${work_dir}/iso/${install_dir}/boot/syslinux - cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/memdisk ${work_dir}/iso/${install_dir}/boot/syslinux - mkdir -p ${work_dir}/iso/${install_dir}/boot/syslinux/hdt - gzip -c -9 ${work_dir}/${arch}/root-image/usr/share/hwdata/pci.ids > ${work_dir}/iso/${install_dir}/boot/syslinux/hdt/pciids.gz - gzip -c -9 ${work_dir}/${arch}/root-image/usr/lib/modules/*-gnu-*/modules.alias > ${work_dir}/iso/${install_dir}/boot/syslinux/hdt/modalias.gz -} - -# Prepare /isolinux -make_isolinux() { - mkdir -p ${work_dir}/iso/isolinux - sed "s|%INSTALL_DIR%|${install_dir}|g" ${script_path}/isolinux/isolinux.cfg > ${work_dir}/iso/isolinux/isolinux.cfg - cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/isolinux.bin ${work_dir}/iso/isolinux/ - cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/isohdpfx.bin ${work_dir}/iso/isolinux/ - cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/ldlinux.c32 ${work_dir}/iso/isolinux/ -} - -# Prepare /EFI -make_efi() { - mkdir -p ${work_dir}/iso/EFI/boot - cp ${work_dir}/x86_64/root-image/usr/lib/systemd/boot/efi/systemd-bootx64.efi ${work_dir}/iso/EFI/boot/bootx64.efi - - mkdir -p ${work_dir}/iso/loader/entries - cp ${script_path}/efiboot/loader/loader.conf ${work_dir}/iso/loader/ - cp ${script_path}/efiboot/loader/entries/uefi-shell-v2-x86_64.conf ${work_dir}/iso/loader/entries/ - cp ${script_path}/efiboot/loader/entries/uefi-shell-v1-x86_64.conf ${work_dir}/iso/loader/entries/ - - sed "s|%PARABOLAISO_LABEL%|${iso_label}|g; - s|%INSTALL_DIR%|${install_dir}|g" \ - ${script_path}/efiboot/loader/entries/parabolaiso-x86_64-usb.conf > ${work_dir}/iso/loader/entries/parabolaiso-x86_64.conf - - # EFI Shell 2.0 for UEFI 2.3+ ( http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=UEFI_Shell ) - cp ${data_dir}/Shell.efi ${work_dir}/iso/EFI/shellx64_v2.efi - # EFI Shell 1.0 for non UEFI 2.3+ ( http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=Efi-shell ) - cp ${data_dir}/Shell_Full.efi ${work_dir}/iso/EFI/shellx64_v1.efi -} - -# Prepare efiboot.img::/EFI for "El Torito" EFI boot mode -make_efiboot() { - mkdir -p ${work_dir}/iso/EFI/parabolaiso - truncate -s 64M ${work_dir}/iso/EFI/parabolaiso/efiboot.img - mkfs.vfat -n PARABOLAISO_EFI ${work_dir}/iso/EFI/parabolaiso/efiboot.img - - mkdir -p ${work_dir}/efiboot - mount ${work_dir}/iso/EFI/parabolaiso/efiboot.img ${work_dir}/efiboot - - mkdir -p ${work_dir}/efiboot/EFI/parabolaiso - cp ${work_dir}/iso/${install_dir}/boot/x86_64/vmlinuz ${work_dir}/efiboot/EFI/parabolaiso/vmlinuz.efi - cp ${work_dir}/iso/${install_dir}/boot/x86_64/parabolaiso.img ${work_dir}/efiboot/EFI/parabolaiso/parabolaiso.img - - mkdir -p ${work_dir}/efiboot/EFI/boot - cp ${work_dir}/x86_64/root-image/usr/lib/systemd/boot/efi/systemd-bootx64.efi ${work_dir}/efiboot/EFI/boot/bootx64.efi - - mkdir -p ${work_dir}/efiboot/loader/entries - cp ${script_path}/efiboot/loader/loader.conf ${work_dir}/efiboot/loader/ - cp ${script_path}/efiboot/loader/entries/uefi-shell-v2-x86_64.conf ${work_dir}/efiboot/loader/entries/ - cp ${script_path}/efiboot/loader/entries/uefi-shell-v1-x86_64.conf ${work_dir}/efiboot/loader/entries/ - - sed "s|%PARABOLAISO_LABEL%|${iso_label}|g; - s|%INSTALL_DIR%|${install_dir}|g" \ - ${script_path}/efiboot/loader/entries/parabolaiso-x86_64-cd.conf > ${work_dir}/efiboot/loader/entries/parabolaiso-x86_64.conf - - cp ${work_dir}/iso/EFI/shellx64_v2.efi ${work_dir}/efiboot/EFI/ - cp ${work_dir}/iso/EFI/shellx64_v1.efi ${work_dir}/efiboot/EFI/ - - umount ${work_dir}/efiboot -} - -# Copy aitab -make_aitab() { - mkdir -p ${work_dir}/iso/${install_dir} - cp ${script_path}/aitab ${work_dir}/iso/${install_dir}/aitab -} - -# Build all filesystem images specified in aitab (.fs.sfs .sfs) -make_prepare() { - cp -a -l -f ${work_dir}/${arch}/root-image ${work_dir} - setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}" -D "${install_dir}" pkglist - setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}" -D "${install_dir}" prepare - rm -rf ${work_dir}/root-image - # rm -rf ${work_dir}/${arch}/root-image (if low space, this helps) -} - -# Build ISO -make_iso() { - mkparabolaiso ${verbose} -w "${work_dir}" -D "${install_dir}" checksum - mkparabolaiso ${verbose} -w "${work_dir}" -D "${install_dir}" -L "${iso_label}" -o "${out_dir}" iso "${iso_name}-${iso_version}-dual.iso" -} - -if [[ ${EUID} -ne 0 ]]; then - echo "This script must be run as root." - _usage 1 -fi - -if [[ ${arch} != x86_64 ]]; then - echo "This script needs to be run on x86_64" - _usage 1 -fi - -while getopts 'N:V:L:D:w:o:vh' arg; do - case "${arg}" in - N) iso_name="${OPTARG}" ;; - V) iso_version="${OPTARG}" ;; - L) iso_label="${OPTARG}" ;; - D) install_dir="${OPTARG}" ;; - w) work_dir="${OPTARG}" ;; - o) out_dir="${OPTARG}" ;; - v) verbose="-v" ;; - h) _usage 0 ;; - *) - echo "Invalid argument '${arg}'" - _usage 1 - ;; - esac -done - -mkdir -p ${work_dir} - -run_once make_pacman_conf - -# Do all stuff for each root-image -for arch in i686 x86_64; do - run_once make_basefs - run_once make_packages - run_once make_setup_mkinitcpio - run_once make_customize_root_image -done - -for arch in i686 x86_64; do - run_once make_boot -done - -# Do all stuff for "iso" -run_once make_boot_extra -run_once make_syslinux -run_once make_isolinux -run_once make_efi -run_once make_efiboot - -run_once make_aitab - -for arch in i686 x86_64; do - run_once make_prepare -done - -run_once make_iso diff --git a/configs/talkingparabola-X11/efiboot/loader/entries/parabolaiso-x86_64-cd.conf b/configs/talkingparabola-X11/efiboot/loader/entries/parabolaiso-x86_64-cd.conf deleted file mode 100644 index 057e14f..0000000 --- a/configs/talkingparabola-X11/efiboot/loader/entries/parabolaiso-x86_64-cd.conf +++ /dev/null @@ -1,4 +0,0 @@ -title Parabola GNU/Linux-libre parabolaiso x86_64 UEFI CD -linux /EFI/parabolaiso/vmlinuz.efi -initrd /EFI/parabolaiso/parabolaiso.img -options parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% diff --git a/configs/talkingparabola-X11/efiboot/loader/entries/parabolaiso-x86_64-usb.conf b/configs/talkingparabola-X11/efiboot/loader/entries/parabolaiso-x86_64-usb.conf deleted file mode 100644 index 3863799..0000000 --- a/configs/talkingparabola-X11/efiboot/loader/entries/parabolaiso-x86_64-usb.conf +++ /dev/null @@ -1,4 +0,0 @@ -title Parabola GNU/Linux-libre parabolaiso x86_64 UEFI USB -linux /%INSTALL_DIR%/boot/x86_64/vmlinuz -initrd /%INSTALL_DIR%/boot/x86_64/parabolaiso.img -options parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% diff --git a/configs/talkingparabola-X11/efiboot/loader/entries/uefi-shell-v1-x86_64.conf b/configs/talkingparabola-X11/efiboot/loader/entries/uefi-shell-v1-x86_64.conf deleted file mode 100644 index 9597ff2..0000000 --- a/configs/talkingparabola-X11/efiboot/loader/entries/uefi-shell-v1-x86_64.conf +++ /dev/null @@ -1,2 +0,0 @@ -title UEFI Shell x86_64 v1 -efi /EFI/shellx64_v1.efi diff --git a/configs/talkingparabola-X11/efiboot/loader/entries/uefi-shell-v2-x86_64.conf b/configs/talkingparabola-X11/efiboot/loader/entries/uefi-shell-v2-x86_64.conf deleted file mode 100644 index 0dde77a..0000000 --- a/configs/talkingparabola-X11/efiboot/loader/entries/uefi-shell-v2-x86_64.conf +++ /dev/null @@ -1,2 +0,0 @@ -title UEFI Shell x86_64 v2 -efi /EFI/shellx64_v2.efi diff --git a/configs/talkingparabola-X11/efiboot/loader/loader.conf b/configs/talkingparabola-X11/efiboot/loader/loader.conf deleted file mode 100644 index ba02c50..0000000 --- a/configs/talkingparabola-X11/efiboot/loader/loader.conf +++ /dev/null @@ -1,2 +0,0 @@ -timeout 3 -default parabolaiso-x86_64 diff --git a/configs/talkingparabola-X11/isolinux/isolinux.cfg b/configs/talkingparabola-X11/isolinux/isolinux.cfg deleted file mode 100644 index 10472fb..0000000 --- a/configs/talkingparabola-X11/isolinux/isolinux.cfg +++ /dev/null @@ -1,6 +0,0 @@ -PATH /%INSTALL_DIR%/boot/syslinux/ -DEFAULT loadconfig - -LABEL loadconfig - CONFIG /%INSTALL_DIR%/boot/syslinux/parabolaiso.cfg - APPEND /%INSTALL_DIR%/ diff --git a/configs/talkingparabola-X11/mkinitcpio.conf b/configs/talkingparabola-X11/mkinitcpio.conf deleted file mode 100644 index fc2572b..0000000 --- a/configs/talkingparabola-X11/mkinitcpio.conf +++ /dev/null @@ -1,3 +0,0 @@ -MODULES="loop" -HOOKS="base udev memdisk parabolaiso_shutdown parabolaiso parabolaiso_loop_mnt parabolaiso_pxe_common parabolaiso_pxe_nbd parabolaiso_pxe_http parabolaiso_pxe_nfs parabolaiso_kms block pcmcia filesystems keyboard" -COMPRESSION="xz" diff --git a/configs/talkingparabola-X11/packages.both b/configs/talkingparabola-X11/packages.both deleted file mode 100644 index c1f46d2..0000000 --- a/configs/talkingparabola-X11/packages.both +++ /dev/null @@ -1,97 +0,0 @@ -alsa-utils -arch-install-scripts -bluez -bluez-libs -brltty -btrfs-progs -crda -darkhttpd -ddrescue -dhclient -dialog -dmraid -dnsmasq -dnsutils -dosfstools -elinks -espeakup -ethtool -f2fs-tools -fsarchiver -gnu-netcat -gpm -gptfdisk -grml-zsh-config -grub -haveged -hdparm -irssi -lftp -linux-atm -lynx -mc -mtools -nfs-utils -nilfs-utils -nmap -ntfs-3g -ntp -openconnect -openssh -openvpn -partclone -parted -partimage -pptpclient -ppp -rfkill -rp-pppoe -rsync -smartmontools -sudo -tcpdump -testdisk -usb_modeswitch -vpnc -wget -wireless_tools -wpa_actiond -wpa_supplicant -zile -wvdial -xl2tpd -zsh - -#X11 -xorg-server -xf86-video-amdgpu -xf86-video-ati -xf86-video-dummy -xf86-video-fbdev -xf86-video-intel -xf86-video-nouveau -xf86-video-openchrome -xf86-video-sisusb -xf86-video-vesa -xf86-video-vmware -xf86-video-voodoo -xf86-video-qxl -xorg-xinit - -#Plugins -gst-plugins-good -gst-libav - -#Window Manager -gnome -zenity - -#Programs -iceweasel -icedove -pidgin -gparted -supertux -smplayer -abiword -gnumeric diff --git a/configs/talkingparabola-X11/packages.i686 b/configs/talkingparabola-X11/packages.i686 deleted file mode 100644 index e69de29..0000000 diff --git a/configs/talkingparabola-X11/packages.x86_64 b/configs/talkingparabola-X11/packages.x86_64 deleted file mode 100644 index 804cc93..0000000 --- a/configs/talkingparabola-X11/packages.x86_64 +++ /dev/null @@ -1 +0,0 @@ -refind-efi diff --git a/configs/talkingparabola-X11/pacman.conf b/configs/talkingparabola-X11/pacman.conf deleted file mode 100644 index 03f449f..0000000 --- a/configs/talkingparabola-X11/pacman.conf +++ /dev/null @@ -1,104 +0,0 @@ -# -# /etc/pacman.conf -# -# See the pacman.conf(5) manpage for option and repository directives - -# -# GENERAL OPTIONS -# -[options] -# The following paths are commented out with their default values listed. -# If you wish to use different paths, uncomment and update the paths. -#RootDir = / -#DBPath = /var/lib/pacman/ -#CacheDir = /var/cache/pacman/pkg/ -#LogFile = /var/log/pacman.log -#GPGDir = /etc/pacman.d/gnupg/ -#HookDir = /etc/pacman.d/hooks/ -HoldPkg = pacman glibc -#XferCommand = /usr/bin/curl -C - -f %u > %o -#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u -#CleanMethod = KeepInstalled -#UseDelta = 0.7 -Architecture = auto - -# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup -#IgnorePkg = -#IgnoreGroup = - -#NoUpgrade = -#NoExtract = - -# Misc options -#UseSyslog -#Color -#TotalDownload -# We cannot check disk space from within a chroot environment -#CheckSpace -#VerbosePkgLists - -# By default, pacman accepts packages signed by keys that its local keyring -# trusts (see pacman-key and its man page), as well as unsigned packages. -SigLevel = Required DatabaseOptional -LocalFileSigLevel = Optional -#RemoteFileSigLevel = Required - -# NOTE: You must run `pacman-key --init` before first using pacman; the local -# keyring can then be populated with the keys of all Arch/Parabola packagers -# with `pacman-key --populate archlinux` and `pacman-key --populate parabola`. - -# -# REPOSITORIES -# - can be defined here or included from another file -# - pacman will search repositories in the order defined here -# - local/custom mirrors can be added here or in separate files -# - repositories listed first will take precedence when packages -# have identical names, regardless of version number -# - URLs will have $repo replaced by the name of the current repo -# - URLs will have $arch replaced by the name of the architecture -# -# Repository entries are of the format: -# [repo-name] -# Server = ServerName -# Include = IncludePath -# -# The header [repo-name] is crucial - it must be present and -# uncommented to enable the repo. -# - -# The testing repositories are disabled by default. To enable, uncomment the -# repo name header and Include lines. You can add preferred servers immediately -# after the header, and they will be used before the default mirrors. - -#[libre-testing] -#Include = /etc/pacman.d/mirrorlist - -[libre] -Include = /etc/pacman.d/mirrorlist - -#[testing] -#Include = /etc/pacman.d/mirrorlist - -[core] -Include = /etc/pacman.d/mirrorlist - -[extra] -Include = /etc/pacman.d/mirrorlist - -#[community-testing] -#Include = /etc/pacman.d/mirrorlist - -[community] -Include = /etc/pacman.d/mirrorlist - -#[pcr-testing] -#Include = /etc/pacman.d/mirrorlist - -[pcr] -Include = /etc/pacman.d/mirrorlist - -# An example of a custom package repository. See the pacman manpage for -# tips on creating your own repositories. -#[custom] -#SigLevel = Optional TrustAll -#Server = file:///home/custompkgs diff --git a/configs/talkingparabola-X11/root-image/etc/fstab b/configs/talkingparabola-X11/root-image/etc/fstab deleted file mode 100644 index e69de29..0000000 diff --git a/configs/talkingparabola-X11/root-image/etc/hostname b/configs/talkingparabola-X11/root-image/etc/hostname deleted file mode 100644 index 8aaf41b..0000000 --- a/configs/talkingparabola-X11/root-image/etc/hostname +++ /dev/null @@ -1 +0,0 @@ -parabolaiso diff --git a/configs/talkingparabola-X11/root-image/etc/locale.conf b/configs/talkingparabola-X11/root-image/etc/locale.conf deleted file mode 100644 index 01ec548..0000000 --- a/configs/talkingparabola-X11/root-image/etc/locale.conf +++ /dev/null @@ -1 +0,0 @@ -LANG=en_US.UTF-8 diff --git a/configs/talkingparabola-X11/root-image/etc/motd b/configs/talkingparabola-X11/root-image/etc/motd deleted file mode 100644 index a126999..0000000 --- a/configs/talkingparabola-X11/root-image/etc/motd +++ /dev/null @@ -1,14 +0,0 @@ - -=============================================================================== - - Parabola live media _DATE_ - - To install Parabola, the system must be connected to the internet. - For instructions, enter this command: - lynx network.html - - Press the function keys while holding Alt to switch virtual terminals. - This allows entering commands without closing lynx. - -=============================================================================== - diff --git a/configs/talkingparabola-X11/root-image/etc/pam.d/su b/configs/talkingparabola-X11/root-image/etc/pam.d/su deleted file mode 100644 index a291042..0000000 --- a/configs/talkingparabola-X11/root-image/etc/pam.d/su +++ /dev/null @@ -1,6 +0,0 @@ -#%PAM-1.0 -auth sufficient pam_rootok.so -auth sufficient pam_wheel.so trust use_uid -auth required pam_unix.so -account required pam_unix.so -session required pam_unix.so diff --git a/configs/talkingparabola-X11/root-image/etc/skel/.config/autostart/orca.desktop b/configs/talkingparabola-X11/root-image/etc/skel/.config/autostart/orca.desktop deleted file mode 100644 index da6c6ee..0000000 --- a/configs/talkingparabola-X11/root-image/etc/skel/.config/autostart/orca.desktop +++ /dev/null @@ -1,5 +0,0 @@ -[Desktop Entry] -Type=Application -Name=Orca Screen Reader -Exec=orca -X-GNOME-Autostart-enabled=true diff --git a/configs/talkingparabola-X11/root-image/etc/skel/.xinitrc b/configs/talkingparabola-X11/root-image/etc/skel/.xinitrc deleted file mode 100755 index 8861ecd..0000000 --- a/configs/talkingparabola-X11/root-image/etc/skel/.xinitrc +++ /dev/null @@ -1 +0,0 @@ -exec gnome-session diff --git a/configs/talkingparabola-X11/root-image/etc/sudoers.d/g_wheel b/configs/talkingparabola-X11/root-image/etc/sudoers.d/g_wheel deleted file mode 100644 index 8c45359..0000000 --- a/configs/talkingparabola-X11/root-image/etc/sudoers.d/g_wheel +++ /dev/null @@ -1 +0,0 @@ -%wheel ALL=(ALL) NOPASSWD: ALL diff --git a/configs/talkingparabola-X11/root-image/etc/systemd/scripts/choose-mirror b/configs/talkingparabola-X11/root-image/etc/systemd/scripts/choose-mirror deleted file mode 100755 index 13c9f69..0000000 --- a/configs/talkingparabola-X11/root-image/etc/systemd/scripts/choose-mirror +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash - -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 parabolaiso_http_srv) -[[ $mirror ]] || exit 0 - -mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.orig -cat >/etc/pacman.d/mirrorlist << EOF -# -# Parabola GNU/Linux-libre repository mirrorlist -# Generated by parabolaiso -# - -Server = ${mirror%%/}/\$repo/os/\$arch -EOF diff --git a/configs/talkingparabola-X11/root-image/etc/systemd/system/choose-mirror.service b/configs/talkingparabola-X11/root-image/etc/systemd/system/choose-mirror.service deleted file mode 100644 index 1e4d771..0000000 --- a/configs/talkingparabola-X11/root-image/etc/systemd/system/choose-mirror.service +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=Choose mirror from the kernel command line -ConditionKernelCommandLine=mirror - -[Service] -Type=oneshot -ExecStart=/etc/systemd/scripts/choose-mirror - -[Install] -WantedBy=multi-user.target diff --git a/configs/talkingparabola-X11/root-image/etc/systemd/system/etc-pacman.d-gnupg.mount b/configs/talkingparabola-X11/root-image/etc/systemd/system/etc-pacman.d-gnupg.mount deleted file mode 100644 index 4eab551..0000000 --- a/configs/talkingparabola-X11/root-image/etc/systemd/system/etc-pacman.d-gnupg.mount +++ /dev/null @@ -1,8 +0,0 @@ -[Unit] -Description=Temporary /etc/pacman.d/gnupg directory - -[Mount] -What=tmpfs -Where=/etc/pacman.d/gnupg -Type=tmpfs -Options=mode=0755 diff --git a/configs/talkingparabola-X11/root-image/etc/systemd/system/getty@tty1.service.d/autologin.conf b/configs/talkingparabola-X11/root-image/etc/systemd/system/getty@tty1.service.d/autologin.conf deleted file mode 100644 index d1d8474..0000000 --- a/configs/talkingparabola-X11/root-image/etc/systemd/system/getty@tty1.service.d/autologin.conf +++ /dev/null @@ -1,3 +0,0 @@ -[Service] -ExecStart= -ExecStart=-/sbin/agetty --autologin root --noclear %I 38400 linux diff --git a/configs/talkingparabola-X11/root-image/etc/systemd/system/livecd-alsa-unmuter.service b/configs/talkingparabola-X11/root-image/etc/systemd/system/livecd-alsa-unmuter.service deleted file mode 100644 index e3b9073..0000000 --- a/configs/talkingparabola-X11/root-image/etc/systemd/system/livecd-alsa-unmuter.service +++ /dev/null @@ -1,15 +0,0 @@ -[Unit] -Description=Unmute All Sound Card Controls For Use With The Live TalkingParabola Environment -# This needs to run after the audio device becomes available. -Wants=systemd-udev-settle.service -After=systemd-udev-settle.service sound.target -DefaultDependencies=no -Before=shutdown.target - -[Service] -Type=oneshot -ExecStart=/usr/bin/livecd-alsa-unmuter -StandardOutput=syslog - -[Install] -WantedBy=sound.target diff --git a/configs/talkingparabola-X11/root-image/etc/systemd/system/pacman-init.service b/configs/talkingparabola-X11/root-image/etc/systemd/system/pacman-init.service deleted file mode 100644 index 3414ebc..0000000 --- a/configs/talkingparabola-X11/root-image/etc/systemd/system/pacman-init.service +++ /dev/null @@ -1,16 +0,0 @@ -[Unit] -Description=Initializes Pacman keyring -Wants=haveged.service -After=haveged.service -Requires=etc-pacman.d-gnupg.mount -After=etc-pacman.d-gnupg.mount - -[Service] -Type=oneshot -RemainAfterExit=yes -ExecStart=/usr/bin/pacman-key --init -ExecStart=/usr/bin/pacman-key --populate archlinux -ExecStart=/usr/bin/pacman-key --populate parabola - -[Install] -WantedBy=multi-user.target diff --git a/configs/talkingparabola-X11/root-image/etc/udev/rules.d/81-dhcpcd.rules b/configs/talkingparabola-X11/root-image/etc/udev/rules.d/81-dhcpcd.rules deleted file mode 100644 index 970da69..0000000 --- a/configs/talkingparabola-X11/root-image/etc/udev/rules.d/81-dhcpcd.rules +++ /dev/null @@ -1 +0,0 @@ -ACTION=="add", SUBSYSTEM=="net", ENV{SYSTEMD_WANTS}="dhcpcd@$name.service" diff --git a/configs/talkingparabola-X11/root-image/root/customize_root_image.sh b/configs/talkingparabola-X11/root-image/root/customize_root_image.sh deleted file mode 100755 index 4ff8528..0000000 --- a/configs/talkingparabola-X11/root-image/root/customize_root_image.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -set -e -u - -sed -i 's/#\(en_US\.UTF-8\)/\1/' /etc/locale.gen -locale-gen - -ln -sf /usr/share/zoneinfo/UTC /etc/localtime - -usermod -s /usr/bin/zsh root -cp -aT /etc/skel/ /root/ - -useradd -m -p "" -g users -G "adm,audio,floppy,log,network,rfkill,scanner,storage,optical,power,wheel" -s /usr/bin/zsh parabola - -chmod 750 /etc/sudoers.d -chmod 440 /etc/sudoers.d/g_wheel - -sed -i "s/#Server/Server/g" /etc/pacman.d/mirrorlist - -systemctl enable multi-user.target pacman-init.service choose-mirror.service livecd-alsa-unmuter.service brltty.service - -sed -i "s/_DATE_/${iso_version}/" /etc/motd diff --git a/configs/talkingparabola-X11/root-image/root/network.html b/configs/talkingparabola-X11/root-image/root/network.html deleted file mode 100644 index 057e680..0000000 --- a/configs/talkingparabola-X11/root-image/root/network.html +++ /dev/null @@ -1,191 +0,0 @@ -Online version: https://wiki.parabolagnulinux.org/Start_installing -

Contents

- -
-

Start installing

-

You are now presented with a shell prompt, automatically logged in as root. -

-

Change the language

-
Tip: These are optional for the majority of users. Useful only if you plan on writing in your own language in any of the configuration files, if you use diacritical marks in the Wi-Fi password, or if you would like to receive system messages (e.g. possible errors) in your own language.
-

By default, the keyboard layout is set to us. If you have a non-US keyboard layout, run: -

-
# loadkeys layout
-
-

...where layout can be fr, uk, dvorak, be-latin1, etc. See here for a comprehensive list. -

The font should also be changed, because most languages use more glyphs than the 26 letter English alphabet. Otherwise some foreign characters may show up as white squares or as other symbols. Note that the name is case-sensitive, so please type it exactly as you see it: -

-
# setfont Lat2-Terminus16
-
-

By default, the language is set to English (US). If you would like to change the language for the install process (German, in this example), remove the # in front of the locale you want from /etc/locale.gen, along with English (US). Please choose the UTF-8 entry. -

Use Ctrl+X to exit, and when prompted to save changes, press Y and Enter to use the same filename. -

-
# nano /etc/locale.gen
-
-en_US.UTF-8 UTF-8
-de_DE.UTF-8 UTF-8
-
# locale-gen
-# export LANG=de_DE.UTF-8
-
-

Remember, LAlt+LShift activates and deactivates the keymap. -

-

Establish an internet connection

-
Warning: As of v197, udev no longer assigns network interface names according to the wlanX and ethX naming scheme. If you are coming from a different distribution or are reinstalling Parabola and not aware of the new interface naming style, please do not assume that your wireless interface is named wlan0, or that your wired interface is named eth0. You can use the command ip link to discover the names of your interfaces.
-

The dhcpcd network daemon starts automatically during boot and it will attempt to start a wired connection. Try to ping a server to see if a connection was established. For example, gnu.org: -

-
# ping -c 3 gnu.org
-
PING gnu.org (208.118.235.148) 56(84) bytes of data.
-64 bytes from wildebeest.gnu.org (208.118.235.148): icmp_seq=1 ttl=47 time=183 ms
-64 bytes from wildebeest.gnu.org (208.118.235.148): icmp_seq=2 ttl=47 time=168 ms
-64 bytes from wildebeest.gnu.org (208.118.235.148): icmp_seq=3 ttl=47 time=183 ms
-
---- gnu.org ping statistics ---
-3 packets transmitted, 3 received, 0% packet loss, time 2002ms
-rtt min/avg/max/mdev = 168.131/178.357/183.914/7.248 ms
-

If you get a ping: unknown host error, first check if there is an issue with your cable or wireless signal strength. If not, you will need to set up the network manually, as explained below. Once a connection is established move on to Installation Guide. -

-

Wired

-

Follow this procedure if you need to set up a wired connection via a static IP address. -

First, disable the dhcpcd service which was started automatically at boot: -

-
# systemctl stop dhcpcd.service
-
-

Identify the name of your Ethernet interface. -

-
# ip link
-
-1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
-    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
-2: enp2s0f0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
-    link/ether 00:11:25:31:69:20 brd ff:ff:ff:ff:ff:ff
-3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT qlen 1000
-    link/ether 01:02:03:04:05:06 brd ff:ff:ff:ff:ff:ff
-

In this example, the Ethernet interface is enp2s0f0. If you are unsure, your Ethernet interface is likely to start with the letter "e", and unlikely to be "lo" or start with the letter "w". You can also use iwconfig and see which interfaces are not wireless: -

-
# iwconfig
-
enp2s0f0  no wireless extensions.
-wlp3s0    IEEE 802.11bgn  ESSID:"NETGEAR97"
-          Mode:Managed  Frequency:2.427 GHz  Access Point: 2C:B0:5D:9C:72:BF
-          Bit Rate=65 Mb/s   Tx-Power=16 dBm
-          Retry  long limit:7   RTS thr:off   Fragment thr:off
-          Power Management:on
-          Link Quality=61/70  Signal level=-49 dBm
-          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
-          Tx excessive retries:0  Invalid misc:430   Missed beacon:0
-lo        no wireless extensions.
-

In this example, neither enp2s0f0 nor the loopback device have wireless extensions, meaning enp2s0f0 is our Ethernet interface. -

You also need to know these settings: -

-
  • Static IP address. -
  • Subnet mask. -
  • Gateway's IP address. -
  • Name servers' (DNS) IP addresses. -
  • Domain name (unless you are on a local LAN, in which case you can make it up). -
-

Activate the connected Ethernet interface (e.g. enp2s0f0): -

-
# ip link set enp2s0f0 up
-
-

Add the address: -

-
# ip addr add ip_address/subnetmask dev interface_name
-
-

For example: -

-
# ip addr add 192.168.1.2/24 dev enp2s0f0
-
-

For more options, run man ip. -

Add your gateway like this, substituting your own gateway's IP address: -

-
# ip route add default via ip_address
-
-

For example: -

-
# ip route add default via 192.168.1.1
-
-

Edit resolv.conf, substituting your name servers' IP addresses and your local domain name: -

-
# nano /etc/resolv.conf
-
-nameserver 61.23.173.5
-nameserver 61.95.849.8
-search example.com
-
Note: Currently, you may include a maximum of three nameserver lines. In order to overcome this limitation, you can use a locally caching nameserver like Dnsmasq.
-

You should now have a working network connection. If you do not, check the detailed Network Configuration page. -

-

Wireless

-

Follow this procedure if you need wireless connectivity (Wi-Fi) during the installation process. -

First, identify the name of your wireless interface. -

-
# iw dev
-
phy#0
-        Interface wlp3s0
-                ifindex 3
-                wdev 0x1
-                addr 00:21:6a:5e:52:bc
-                type managed
-

In this example, wlp3s0 is the available wireless interface. If you are unsure, your wireless interface is likely to start with the letter "w", and unlikely to be "lo" or start with the letter "e". -

-
Note: If you do not see output similar to this, then your wireless driver has not been loaded. Please see Wireless Setup for more detailed information.
-

Bring the interface up with: -

-
# ip link set wlp3s0 up
-
-

If you get this error message: SIOCSIFFLAGS: No such file or directory, your wireless chipset could need a non-free firmware to function. This is not supported on Parabola. Please see Wireless Setup if you are unsure if this is the true for your particular chipset. -

Next, use netctl's wifi-menu to connect to a network: -

-
# wifi-menu wlp3s0
-
-

You should now have a working network connection. If you do not, check the detailed Wireless Setup page. -

Alternatively, use iw dev wlp3s0 scan | grep SSID to scan for available networks, then connect to a network with: -

-
# wpa_supplicant -B -i wlp3s0 -c <(wpa_passphrase "ssid" "psk")
-
-

You need to replace ssid with the name of your network (e.g. "Linksys etc...") and psk with your wireless password, leaving the quotes around the network name and password. -

Finally, you have to give your interface an IP address. This can be set manually or using the dhcp: -

-
# dhcpcd wlp3s0
-
-

If that does not work, issue the following commands: -

-
# echo 'ctrl_interface=DIR=/run/wpa_supplicant' > /etc/wpa_supplicant.conf
-# wpa_passphrase <ssid> <passphrase> >> /etc/wpa_supplicant.conf
-# ip link set <interface> up # May not be needed as dhcpcd should bring it up but may be needed for wpa_supplicant.
-# wpa_supplicant -B -D nl80211 -c /foobar.conf -i <interface name>
-# dhcpcd -A <interface name>
-
-

Analog modem, ISDN or PPPoE DSL

-

For xDSL, dial-up and ISDN connections, see Direct Modem Connection. -

-

Behind a proxy server

-

If you are behind a proxy server, you will need to export the http_proxy and ftp_proxy environment variables. See Proxy settings for more information. -

-
-

This page was retrieved from: https://wiki.parabolagnulinux.org/index.php?title=Start_installing&oldid=5138 -

-

Content is available under GNU Free Documentation License 1.3 (or at your option, any later version). -

- - - diff --git a/configs/talkingparabola-X11/root-image/usr/bin/livecd-alsa-unmuter b/configs/talkingparabola-X11/root-image/usr/bin/livecd-alsa-unmuter deleted file mode 100755 index 6de05a0..0000000 --- a/configs/talkingparabola-X11/root-image/usr/bin/livecd-alsa-unmuter +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -# Properly initialize the sound card so that we have audio at boot. -# This script is released under the GNU General Public License. -source /usr/share/livecd-sound/functions - -preinit_levels all -sanify_levels all diff --git a/configs/talkingparabola-X11/root-image/usr/bin/pick-a-card b/configs/talkingparabola-X11/root-image/usr/bin/pick-a-card deleted file mode 100755 index 7f469e8..0000000 --- a/configs/talkingparabola-X11/root-image/usr/bin/pick-a-card +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash - -# If there are multiple usable sound cards, prompt the user to choose one, -# using auditory feedback. -# This script is released under the GNU General Public License. - -source /usr/share/livecd-sound/functions - -nwords() { - echo $# -} - -is_numeric() { - local str=$1 - expr match "$str" '[[:digit:]]\+$' > /dev/null 2>&1 -} - -set_default_card() { - local card=$1 - sed -e "s/%card%/$card/g" < /usr/share/livecd-sound/asound.conf.in \ - > /etc/asound.conf -} - -play_on_card() { - local card=$1 file=$2 - aplay "-Dplughw:$card,0" "$file" -} - -set -f -usable_cards="$(list_non_pcsp_cards)" -num_usable_cards=$(nwords $usable_cards) - -if [ "$num_usable_cards" -eq 1 ]; then - exit 0 -fi - -for card in $usable_cards; do - if ! is_numeric "$card"; then - continue - fi - play_on_card "$card" /usr/share/livecd-sound/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-sound/sounds/beep.wav - if read -t 10; then - set_default_card "$card" - break - fi -done diff --git a/configs/talkingparabola-X11/root-image/usr/bin/talk-to-me b/configs/talkingparabola-X11/root-image/usr/bin/talk-to-me deleted file mode 100755 index 73998d8..0000000 --- a/configs/talkingparabola-X11/root-image/usr/bin/talk-to-me +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -started_flag=/run/speech-is-running -if [ -f $started_flag ]; then - exit 0 -fi -systemctl stop espeakup -sleep 5 -pick-a-card -systemctl start espeakup -touch $started_flag diff --git a/configs/talkingparabola-X11/root-image/usr/share/livecd-sound/asound.conf.in b/configs/talkingparabola-X11/root-image/usr/share/livecd-sound/asound.conf.in deleted file mode 100644 index 851f829..0000000 --- a/configs/talkingparabola-X11/root-image/usr/share/livecd-sound/asound.conf.in +++ /dev/null @@ -1,12 +0,0 @@ -pcm.!default { - type plug - slave.pcm { - type hw - card %card% - } -} - -ctl.!default { - type hw - card %card% -} diff --git a/configs/talkingparabola-X11/root-image/usr/share/livecd-sound/functions b/configs/talkingparabola-X11/root-image/usr/share/livecd-sound/functions deleted file mode 100644 index e517795..0000000 --- a/configs/talkingparabola-X11/root-image/usr/share/livecd-sound/functions +++ /dev/null @@ -1,199 +0,0 @@ -# Functions for setting up sound on the live CD. -# This library is released under the GNU General Public License, -# and it incorporates code from the /etc/init.d/alsa-utils included with -# Ubuntu 8.04. Proper credit also goes to Debian. - -# Start code copied from Debian / Ubuntu: - -bugout () { - printf "/etc/rc.d/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 -} - -filter_amixer_output() -{ - sed \ - -e '/Unable to find simple control/d' \ - -e '/Unknown playback setup/d' \ - -e '/^$/d' -} - -# 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 -# $CARDOPT -unmute_and_set_level() -{ - { [ "$2" ] && [ "$CARDOPT" ] ; } || bugout - amixer $CARDOPT -q set "$1" "$2" unmute 2>&1 | filter_amixer_output || : - return 0 -} - -# $1 -# $CARDOPT -mute_and_zero_level() -{ - { [ "$1" ] && [ "$CARDOPT" ] ; } || bugout - amixer $CARDOPT -q set "$1" "0%" mute 2>&1 | filter_amixer_output || : - return 0 -} - -# $1 -# $2 "on" | "off" -# $CARDOPT -switch_control() -{ - { [ "$2" ] && [ "$CARDOPT" ] ; } || bugout - amixer $CARDOPT -q set "$1" "$2" 2>&1 | filter_amixer_output || : - return 0 -} - -# $1 -sanify_levels_on_card() -{ - CARDOPT="-c $1" - - unmute_and_set_level "Front" "80%" - unmute_and_set_level "Master" "80%" - unmute_and_set_level "Master Mono" "80%" - unmute_and_set_level "Master Digital" "80%" # E.g., cs4237B - unmute_and_set_level "Playback" "80%" - unmute_and_set_level "Headphone" "100%" - unmute_and_set_level "PCM" "80%" - unmute_and_set_level "PCM,1" "80%" # E.g., ess1969 - unmute_and_set_level "DAC" "80%" # E.g., envy24, cs46xx - unmute_and_set_level "DAC,0" "80%" # E.g., envy24 - unmute_and_set_level "DAC,1" "80%" # E.g., envy24 - unmute_and_set_level "Synth" "80%" - unmute_and_set_level "CD" "80%" - unmute_and_set_level "PC Speaker" "100%" - - mute_and_zero_level "Mic" - mute_and_zero_level "IEC958" # Ubuntu #19648 - - # Intel P4P800-MX - switch_control "Master Playback Switch" on - switch_control "Master Surround" on - - # Trident/YMFPCI/emu10k1: - unmute_and_set_level "Wave" "80%" - unmute_and_set_level "Music" "80%" - unmute_and_set_level "AC97" "80%" - - # DRC: - unmute_and_set_level "Dynamic Range Compression" "80%" - - # Required for HDA Intel (hda-intel): - unmute_and_set_level "Front" "80%" - - # Required for SB Live 7.1/24-bit (ca0106): - unmute_and_set_level "Analog Front" "80%" - - # Required at least for Via 823x hardware on DFI K8M800-MLVF Motherboard - switch_control "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 "IEC958 Playback AC97-SPSA" "0" - - # Required for newer Via hardware - unmute_and_set_level "VIA DXS,0" "80%" - unmute_and_set_level "VIA DXS,1" "80%" - unmute_and_set_level "VIA DXS,2" "80%" - unmute_and_set_level "VIA DXS,3" "80%" - - # Required on some notebooks with ICH4: - switch_control "Headphone Jack Sense" off - switch_control "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 "External Amplifier" on - switch_control "Audigy Analog/Digital Output Jack" on - switch_control "SB Live Analog/Digital Output Jack" on - - # D1984 -- Thinkpad T61/X61 - switch_control "Speaker" on - switch_control "Headphone" on - - # HDA-Intel w/ "Digital" capture mixer (See Ubuntu #193823) - unmute_and_set_level "Digital" "80%" - - return 0 -} - -# $1 | "all" -sanify_levels() -{ - TTSDML_RETURNSTATUS=0 - 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 -} - -# $1 -preinit_levels_on_card() -{ - CARDOPT="-c $1" - - # Silly dance to activate internal speakers by default on PowerMac - # Snapper and Tumbler - id=`cat /proc/asound/card$1/id 2>/dev/null` - if [ "$id" = "Snapper" -o "$id" = "Tumbler" ]; then - switch_control "Auto Mute" off - switch_control "PC Speaker" off - switch_control "Auto Mute" on - fi -} - -# $1 | "all" -preinit_levels() -{ - TTSDML_RETURNSTATUS=0 - case "$1" in - all) - for CARD in $(echo_card_indices) ; do - preinit_levels_on_card "$CARD" || TTSDML_RETURNSTATUS=1 - done - ;; - *) - preinit_levels_on_card "$1" || TTSDML_RETURNSTATUS=1 - ;; - esac - return $TTSDML_RETURNSTATUS -} - -# End copied code. - -# 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" -a -f "$cardfile" ] && \ - [ "$(cat "$cardfile")" != pcsp ]; then - echo "$card" - fi - done -} diff --git a/configs/talkingparabola-X11/syslinux/parabolaiso.cfg b/configs/talkingparabola-X11/syslinux/parabolaiso.cfg deleted file mode 100644 index 473e245..0000000 --- a/configs/talkingparabola-X11/syslinux/parabolaiso.cfg +++ /dev/null @@ -1,11 +0,0 @@ -DEFAULT select - -LABEL select -COM32 boot/syslinux/whichsys.c32 -APPEND -pxe- pxe -sys- sys -iso- sys - -LABEL pxe -CONFIG boot/syslinux/parabolaiso_pxe_choose.cfg - -LABEL sys -CONFIG boot/syslinux/parabolaiso_sys_choose.cfg diff --git a/configs/talkingparabola-X11/syslinux/parabolaiso_head.cfg b/configs/talkingparabola-X11/syslinux/parabolaiso_head.cfg deleted file mode 100644 index a245309..0000000 --- a/configs/talkingparabola-X11/syslinux/parabolaiso_head.cfg +++ /dev/null @@ -1,25 +0,0 @@ -SERIAL 0 38400 -UI boot/syslinux/vesamenu.c32 -MENU TITLE Parabola GNU/Linux-libre -MENU BACKGROUND boot/syslinux/splash.png - -MENU WIDTH 78 -MENU MARGIN 4 -MENU ROWS 7 -MENU VSHIFT 10 -MENU TABMSGROW 14 -MENU CMDLINEROW 14 -MENU HELPMSGROW 16 -MENU HELPMSGENDROW 29 - -# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu - -MENU COLOR border 35;40 #ff777caa #a0000000 std -MENU COLOR title 1;35;40 #ff777caa #a0000000 std -MENU COLOR sel 7;35;47 #e0ffffff #20777caa all -MENU COLOR unsel 35;40 #ff777caa #a0000000 std -MENU COLOR help 35;40 #c0b2b2b2 #a0000000 std -MENU COLOR timeout_msg 35;40 #ff777caa #00000000 std -MENU COLOR timeout 1;35;40 #ff777caa #00000000 std -MENU COLOR msg07 35;40 #ff777caa #a0000000 std -MENU COLOR tabmsg 35;40 #ff777caa #00000000 std diff --git a/configs/talkingparabola-X11/syslinux/parabolaiso_pxe32.cfg b/configs/talkingparabola-X11/syslinux/parabolaiso_pxe32.cfg deleted file mode 100644 index 9df86b7..0000000 --- a/configs/talkingparabola-X11/syslinux/parabolaiso_pxe32.cfg +++ /dev/null @@ -1,32 +0,0 @@ -LABEL parabola32_nbd -TEXT HELP -Boot the Parabola GNU/Linux-libre (i686) live medium (Using NBD). -It allows you to install Parabola GNU/Linux-libre or perform system maintenance. -ENDTEXT -MENU LABEL Boot Parabola GNU/Linux-libre (i686) (NBD) -LINUX boot/i686/vmlinuz -INITRD boot/i686/parabolaiso.img -APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% parabolaiso_nbd_srv=${pxeserver} -SYSAPPEND 3 - -LABEL parabola32_nfs -TEXT HELP -Boot the Parabola GNU/Linux-libre (i686) live medium (Using NFS). -It allows you to install Parabola GNU/Linux-libre or perform system maintenance. -ENDTEXT -MENU LABEL Boot Parabola GNU/Linux-libre (i686) (NFS) -LINUX boot/i686/vmlinuz -INITRD boot/i686/parabolaiso.img -APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_nfs_srv=${pxeserver}:/run/parabolaiso/bootmnt -SYSAPPEND 3 - -LABEL parabola32_http -TEXT HELP -Boot the Parabola GNU/Linux-libre (i686) live medium (Using HTTP). -It allows you to install Parabola GNU/Linux-libre or perform system maintenance. -ENDTEXT -MENU LABEL Boot Parabola GNU/Linux-libre (i686) (HTTP) -LINUX boot/i686/vmlinuz -INITRD boot/i686/parabolaiso.img -APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_http_srv=http://${pxeserver}/ -SYSAPPEND 3 diff --git a/configs/talkingparabola-X11/syslinux/parabolaiso_pxe64.cfg b/configs/talkingparabola-X11/syslinux/parabolaiso_pxe64.cfg deleted file mode 100644 index be3e3de..0000000 --- a/configs/talkingparabola-X11/syslinux/parabolaiso_pxe64.cfg +++ /dev/null @@ -1,32 +0,0 @@ -LABEL parabola64_nbd -TEXT HELP -Boot the Parabola GNU/Linux-libre (x86_64) live medium (Using NBD). -It allows you to install Parabola GNU/Linux-libre or perform system maintenance. -ENDTEXT -MENU LABEL Boot Parabola GNU/Linux-libre (x86_64) (NBD) -LINUX boot/x86_64/vmlinuz -INITRD boot/x86_64/parabolaiso.img -APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% parabolaiso_nbd_srv=${pxeserver} -SYSAPPEND 3 - -LABEL parabola64_nfs -TEXT HELP -Boot the Parabola GNU/Linux-libre (x86_64) live medium (Using NFS). -It allows you to install Parabola GNU/Linux-libre or perform system maintenance. -ENDTEXT -MENU LABEL Boot Parabola GNU/Linux-libre (x86_64) (NFS) -LINUX boot/x86_64/vmlinuz -INITRD boot/x86_64/parabolaiso.img -APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_nfs_srv=${pxeserver}:/run/parabolaiso/bootmnt -SYSAPPEND 3 - -LABEL parabola64_http -TEXT HELP -Boot the Parabola GNU/Linux-libre (x86_64) live medium (Using HTTP). -It allows you to install Parabola GNU/Linux-libre or perform system maintenance. -ENDTEXT -MENU LABEL Boot Parabola GNU/Linux-libre (x86_64) (HTTP) -LINUX boot/x86_64/vmlinuz -INITRD boot/x86_64/parabolaiso.img -APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_http_srv=http://${pxeserver}/ -SYSAPPEND 3 diff --git a/configs/talkingparabola-X11/syslinux/parabolaiso_pxe_32_inc.cfg b/configs/talkingparabola-X11/syslinux/parabolaiso_pxe_32_inc.cfg deleted file mode 100644 index ba514cb..0000000 --- a/configs/talkingparabola-X11/syslinux/parabolaiso_pxe_32_inc.cfg +++ /dev/null @@ -1,3 +0,0 @@ -INCLUDE boot/syslinux/parabolaiso_head.cfg -INCLUDE boot/syslinux/parabolaiso_pxe32.cfg -INCLUDE boot/syslinux/parabolaiso_tail.cfg diff --git a/configs/talkingparabola-X11/syslinux/parabolaiso_pxe_both_inc.cfg b/configs/talkingparabola-X11/syslinux/parabolaiso_pxe_both_inc.cfg deleted file mode 100644 index 9396d9b..0000000 --- a/configs/talkingparabola-X11/syslinux/parabolaiso_pxe_both_inc.cfg +++ /dev/null @@ -1,4 +0,0 @@ -INCLUDE boot/syslinux/parabolaiso_head.cfg -INCLUDE boot/syslinux/parabolaiso_pxe64.cfg -INCLUDE boot/syslinux/parabolaiso_pxe32.cfg -INCLUDE boot/syslinux/parabolaiso_tail.cfg diff --git a/configs/talkingparabola-X11/syslinux/parabolaiso_pxe_choose.cfg b/configs/talkingparabola-X11/syslinux/parabolaiso_pxe_choose.cfg deleted file mode 100644 index a3a768f..0000000 --- a/configs/talkingparabola-X11/syslinux/parabolaiso_pxe_choose.cfg +++ /dev/null @@ -1,11 +0,0 @@ -DEFAULT choose - -LABEL choose -COM32 boot/syslinux/ifcpu64.c32 -APPEND have64 -- nohave64 - -LABEL have64 -CONFIG boot/syslinux/parabolaiso_pxe_both_inc.cfg - -LABEL nohave64 -CONFIG boot/syslinux/parabolaiso_pxe_32_inc.cfg diff --git a/configs/talkingparabola-X11/syslinux/parabolaiso_sys32.cfg b/configs/talkingparabola-X11/syslinux/parabolaiso_sys32.cfg deleted file mode 100644 index 4abdf7a..0000000 --- a/configs/talkingparabola-X11/syslinux/parabolaiso_sys32.cfg +++ /dev/null @@ -1,9 +0,0 @@ -LABEL parabola32 -TEXT HELP -Boot the Parabola GNU/Linux-libre (i686) live medium. -It allows you to install Parabola GNU/Linux-libre or perform system maintenance. -ENDTEXT -MENU LABEL Boot Parabola GNU/Linux-libre (i686) -LINUX boot/i686/vmlinuz -INITRD boot/i686/parabolaiso.img -APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% diff --git a/configs/talkingparabola-X11/syslinux/parabolaiso_sys64.cfg b/configs/talkingparabola-X11/syslinux/parabolaiso_sys64.cfg deleted file mode 100644 index b154459..0000000 --- a/configs/talkingparabola-X11/syslinux/parabolaiso_sys64.cfg +++ /dev/null @@ -1,9 +0,0 @@ -LABEL parabola64 -TEXT HELP -Boot the Parabola GNU/Linux-libre (x86_64) live medium. -It allows you to install Parabola GNU/Linux-libre or perform system maintenance. -ENDTEXT -MENU LABEL Boot Parabola GNU/Linux-libre (x86_64) -LINUX boot/x86_64/vmlinuz -INITRD boot/x86_64/parabolaiso.img -APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% diff --git a/configs/talkingparabola-X11/syslinux/parabolaiso_sys_32_inc.cfg b/configs/talkingparabola-X11/syslinux/parabolaiso_sys_32_inc.cfg deleted file mode 100644 index c641201..0000000 --- a/configs/talkingparabola-X11/syslinux/parabolaiso_sys_32_inc.cfg +++ /dev/null @@ -1,3 +0,0 @@ -INCLUDE boot/syslinux/parabolaiso_head.cfg -INCLUDE boot/syslinux/parabolaiso_sys32.cfg -INCLUDE boot/syslinux/parabolaiso_tail.cfg diff --git a/configs/talkingparabola-X11/syslinux/parabolaiso_sys_both_inc.cfg b/configs/talkingparabola-X11/syslinux/parabolaiso_sys_both_inc.cfg deleted file mode 100644 index 9dfb87f..0000000 --- a/configs/talkingparabola-X11/syslinux/parabolaiso_sys_both_inc.cfg +++ /dev/null @@ -1,4 +0,0 @@ -INCLUDE boot/syslinux/parabolaiso_head.cfg -INCLUDE boot/syslinux/parabolaiso_sys64.cfg -INCLUDE boot/syslinux/parabolaiso_sys32.cfg -INCLUDE boot/syslinux/parabolaiso_tail.cfg diff --git a/configs/talkingparabola-X11/syslinux/parabolaiso_sys_choose.cfg b/configs/talkingparabola-X11/syslinux/parabolaiso_sys_choose.cfg deleted file mode 100644 index d436062..0000000 --- a/configs/talkingparabola-X11/syslinux/parabolaiso_sys_choose.cfg +++ /dev/null @@ -1,11 +0,0 @@ -DEFAULT choose - -LABEL choose -COM32 boot/syslinux/ifcpu64.c32 -APPEND have64 -- nohave64 - -LABEL have64 -CONFIG boot/syslinux/parabolaiso_sys_both_inc.cfg - -LABEL nohave64 -CONFIG boot/syslinux/parabolaiso_sys_32_inc.cfg diff --git a/configs/talkingparabola-X11/syslinux/parabolaiso_tail.cfg b/configs/talkingparabola-X11/syslinux/parabolaiso_tail.cfg deleted file mode 100644 index e85d8e1..0000000 --- a/configs/talkingparabola-X11/syslinux/parabolaiso_tail.cfg +++ /dev/null @@ -1,27 +0,0 @@ -LABEL existing -TEXT HELP -Boot an existing operating system. -Press TAB to edit the disk and partition number to boot. -ENDTEXT -MENU LABEL Boot existing OS -COM32 boot/syslinux/chain.c32 -APPEND hd0 0 - -# http://www.memtest.org/ -LABEL memtest -MENU LABEL Run Memtest86+ (RAM test) -LINUX boot/memtest - -# http://hdt-project.org/ -LABEL hdt -MENU LABEL Hardware Information (HDT) -COM32 boot/syslinux/hdt.c32 -APPEND modules_alias=boot/syslinux/hdt/modalias.gz pciids=boot/syslinux/hdt/pciids.gz - -LABEL reboot -MENU LABEL Reboot -COM32 boot/syslinux/reboot.c32 - -LABEL poweroff -MENU LABEL Power Off -COM32 boot/syslinux/poweroff.c32 diff --git a/configs/talkingparabola-X11/syslinux/splash.png b/configs/talkingparabola-X11/syslinux/splash.png deleted file mode 100644 index eb20a51..0000000 Binary files a/configs/talkingparabola-X11/syslinux/splash.png and /dev/null differ diff --git a/configs/talkingparabola-X11/syslinux/splash.svg b/configs/talkingparabola-X11/syslinux/splash.svg deleted file mode 100644 index e44cace..0000000 --- a/configs/talkingparabola-X11/syslinux/splash.svg +++ /dev/null @@ -1,258 +0,0 @@ - - - TalkingParabola GNU/Linux-libre - - - - image/svg+xml - - TalkingParabola GNU/Linux-libre - - 2015/02/28 - - - Jorge Araya Navarro + José Miguel Silva Lara - - - - - Márcio Alexandre Silva Delgado - - - - - CC BY-SA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/configs/talkingparabola-X11/syslinux/syslinux.cfg b/configs/talkingparabola-X11/syslinux/syslinux.cfg deleted file mode 100644 index 0869ed2..0000000 --- a/configs/talkingparabola-X11/syslinux/syslinux.cfg +++ /dev/null @@ -1,5 +0,0 @@ -DEFAULT loadconfig - -LABEL loadconfig - CONFIG parabolaiso.cfg - APPEND ../../ diff --git a/configs/talkingparabola/airootfs/etc/fstab b/configs/talkingparabola/airootfs/etc/fstab new file mode 100644 index 0000000..e69de29 diff --git a/configs/talkingparabola/airootfs/etc/hostname b/configs/talkingparabola/airootfs/etc/hostname new file mode 100644 index 0000000..8aaf41b --- /dev/null +++ b/configs/talkingparabola/airootfs/etc/hostname @@ -0,0 +1 @@ +parabolaiso diff --git a/configs/talkingparabola/airootfs/etc/locale.conf b/configs/talkingparabola/airootfs/etc/locale.conf new file mode 100644 index 0000000..01ec548 --- /dev/null +++ b/configs/talkingparabola/airootfs/etc/locale.conf @@ -0,0 +1 @@ +LANG=en_US.UTF-8 diff --git a/configs/talkingparabola/airootfs/etc/motd b/configs/talkingparabola/airootfs/etc/motd new file mode 100644 index 0000000..e4c893c --- /dev/null +++ b/configs/talkingparabola/airootfs/etc/motd @@ -0,0 +1,14 @@ + +=============================================================================== + + Parabola GNU/Linux-libre live media _DATE_ + + To install Parabola, the system must be connected to the internet. + For instructions, enter this command: + less install.txt + + Press the function keys while holding Alt to switch virtual terminals. + This allows entering commands without closing less. + +=============================================================================== + diff --git a/configs/talkingparabola/airootfs/etc/pam.d/su b/configs/talkingparabola/airootfs/etc/pam.d/su new file mode 100644 index 0000000..a291042 --- /dev/null +++ b/configs/talkingparabola/airootfs/etc/pam.d/su @@ -0,0 +1,6 @@ +#%PAM-1.0 +auth sufficient pam_rootok.so +auth sufficient pam_wheel.so trust use_uid +auth required pam_unix.so +account required pam_unix.so +session required pam_unix.so diff --git a/configs/talkingparabola/airootfs/etc/sudoers.d/g_wheel b/configs/talkingparabola/airootfs/etc/sudoers.d/g_wheel new file mode 100644 index 0000000..8c45359 --- /dev/null +++ b/configs/talkingparabola/airootfs/etc/sudoers.d/g_wheel @@ -0,0 +1 @@ +%wheel ALL=(ALL) NOPASSWD: ALL diff --git a/configs/talkingparabola/airootfs/etc/systemd/scripts/choose-mirror b/configs/talkingparabola/airootfs/etc/systemd/scripts/choose-mirror new file mode 100755 index 0000000..13c9f69 --- /dev/null +++ b/configs/talkingparabola/airootfs/etc/systemd/scripts/choose-mirror @@ -0,0 +1,26 @@ +#!/bin/bash + +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 parabolaiso_http_srv) +[[ $mirror ]] || exit 0 + +mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.orig +cat >/etc/pacman.d/mirrorlist << EOF +# +# Parabola GNU/Linux-libre repository mirrorlist +# Generated by parabolaiso +# + +Server = ${mirror%%/}/\$repo/os/\$arch +EOF diff --git a/configs/talkingparabola/airootfs/etc/systemd/system/choose-mirror.service b/configs/talkingparabola/airootfs/etc/systemd/system/choose-mirror.service new file mode 100644 index 0000000..1e4d771 --- /dev/null +++ b/configs/talkingparabola/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=/etc/systemd/scripts/choose-mirror + +[Install] +WantedBy=multi-user.target diff --git a/configs/talkingparabola/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount b/configs/talkingparabola/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount new file mode 100644 index 0000000..4eab551 --- /dev/null +++ b/configs/talkingparabola/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount @@ -0,0 +1,8 @@ +[Unit] +Description=Temporary /etc/pacman.d/gnupg directory + +[Mount] +What=tmpfs +Where=/etc/pacman.d/gnupg +Type=tmpfs +Options=mode=0755 diff --git a/configs/talkingparabola/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf b/configs/talkingparabola/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf new file mode 100644 index 0000000..d1d8474 --- /dev/null +++ b/configs/talkingparabola/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf @@ -0,0 +1,3 @@ +[Service] +ExecStart= +ExecStart=-/sbin/agetty --autologin root --noclear %I 38400 linux diff --git a/configs/talkingparabola/airootfs/etc/systemd/system/livecd-alsa-unmuter.service b/configs/talkingparabola/airootfs/etc/systemd/system/livecd-alsa-unmuter.service new file mode 100644 index 0000000..e3b9073 --- /dev/null +++ b/configs/talkingparabola/airootfs/etc/systemd/system/livecd-alsa-unmuter.service @@ -0,0 +1,15 @@ +[Unit] +Description=Unmute All Sound Card Controls For Use With The Live TalkingParabola Environment +# This needs to run after the audio device becomes available. +Wants=systemd-udev-settle.service +After=systemd-udev-settle.service sound.target +DefaultDependencies=no +Before=shutdown.target + +[Service] +Type=oneshot +ExecStart=/usr/bin/livecd-alsa-unmuter +StandardOutput=syslog + +[Install] +WantedBy=sound.target diff --git a/configs/talkingparabola/airootfs/etc/systemd/system/pacman-init.service b/configs/talkingparabola/airootfs/etc/systemd/system/pacman-init.service new file mode 100644 index 0000000..3414ebc --- /dev/null +++ b/configs/talkingparabola/airootfs/etc/systemd/system/pacman-init.service @@ -0,0 +1,16 @@ +[Unit] +Description=Initializes Pacman keyring +Wants=haveged.service +After=haveged.service +Requires=etc-pacman.d-gnupg.mount +After=etc-pacman.d-gnupg.mount + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/usr/bin/pacman-key --init +ExecStart=/usr/bin/pacman-key --populate archlinux +ExecStart=/usr/bin/pacman-key --populate parabola + +[Install] +WantedBy=multi-user.target diff --git a/configs/talkingparabola/airootfs/etc/udev/rules.d/81-dhcpcd.rules b/configs/talkingparabola/airootfs/etc/udev/rules.d/81-dhcpcd.rules new file mode 100644 index 0000000..970da69 --- /dev/null +++ b/configs/talkingparabola/airootfs/etc/udev/rules.d/81-dhcpcd.rules @@ -0,0 +1 @@ +ACTION=="add", SUBSYSTEM=="net", ENV{SYSTEMD_WANTS}="dhcpcd@$name.service" diff --git a/configs/talkingparabola/airootfs/root/customize_airootfs.sh b/configs/talkingparabola/airootfs/root/customize_airootfs.sh new file mode 100755 index 0000000..8767d11 --- /dev/null +++ b/configs/talkingparabola/airootfs/root/customize_airootfs.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +set -e -u + +sed -i 's/#\(en_US\.UTF-8\)/\1/' /etc/locale.gen +locale-gen + +ln -sf /usr/share/zoneinfo/UTC /etc/localtime + +usermod -s /usr/bin/zsh root +cp -aT /etc/skel/ /root/ + +useradd -m -p "" -g users -G "adm,audio,floppy,log,network,rfkill,scanner,storage,optical,power,wheel" -s /usr/bin/zsh parabola + +chmod 750 /etc/sudoers.d +chmod 440 /etc/sudoers.d/g_wheel + +sed -i 's/#\(PermitRootLogin \).\+/\1yes/' /etc/ssh/sshd_config +sed -i "s/#Server/Server/g" /etc/pacman.d/mirrorlist +sed -i 's/#\(Storage=\)auto/\1volatile/' /etc/systemd/journald.conf + +sed -i 's/#\(HandleSuspendKey=\)suspend/\1ignore/' /etc/systemd/logind.conf +sed -i 's/#\(HandleHibernateKey=\)hibernate/\1ignore/' /etc/systemd/logind.conf +sed -i 's/#\(HandleLidSwitch=\)suspend/\1ignore/' /etc/systemd/logind.conf + +systemctl enable multi-user.target pacman-init.service choose-mirror.service livecd-alsa-unmuter.service brltty.service +systemctl set-default multi-user.target + +sed -i "s/_DATE_/$(date +%Y.%m.%d)/" /etc/motd diff --git a/configs/talkingparabola/airootfs/root/install.txt b/configs/talkingparabola/airootfs/root/install.txt new file mode 100644 index 0000000..a594b97 --- /dev/null +++ b/configs/talkingparabola/airootfs/root/install.txt @@ -0,0 +1,2 @@ +View this installation guide online at +https://wiki.parabola.nu/Installation_Guide diff --git a/configs/talkingparabola/airootfs/usr/bin/livecd-alsa-unmuter b/configs/talkingparabola/airootfs/usr/bin/livecd-alsa-unmuter new file mode 100755 index 0000000..6de05a0 --- /dev/null +++ b/configs/talkingparabola/airootfs/usr/bin/livecd-alsa-unmuter @@ -0,0 +1,8 @@ +#!/bin/bash + +# Properly initialize the sound card so that we have audio at boot. +# This script is released under the GNU General Public License. +source /usr/share/livecd-sound/functions + +preinit_levels all +sanify_levels all diff --git a/configs/talkingparabola/airootfs/usr/bin/pick-a-card b/configs/talkingparabola/airootfs/usr/bin/pick-a-card new file mode 100755 index 0000000..7f469e8 --- /dev/null +++ b/configs/talkingparabola/airootfs/usr/bin/pick-a-card @@ -0,0 +1,54 @@ +#!/bin/bash + +# If there are multiple usable sound cards, prompt the user to choose one, +# using auditory feedback. +# This script is released under the GNU General Public License. + +source /usr/share/livecd-sound/functions + +nwords() { + echo $# +} + +is_numeric() { + local str=$1 + expr match "$str" '[[:digit:]]\+$' > /dev/null 2>&1 +} + +set_default_card() { + local card=$1 + sed -e "s/%card%/$card/g" < /usr/share/livecd-sound/asound.conf.in \ + > /etc/asound.conf +} + +play_on_card() { + local card=$1 file=$2 + aplay "-Dplughw:$card,0" "$file" +} + +set -f +usable_cards="$(list_non_pcsp_cards)" +num_usable_cards=$(nwords $usable_cards) + +if [ "$num_usable_cards" -eq 1 ]; then + exit 0 +fi + +for card in $usable_cards; do + if ! is_numeric "$card"; then + continue + fi + play_on_card "$card" /usr/share/livecd-sound/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-sound/sounds/beep.wav + if read -t 10; then + set_default_card "$card" + break + fi +done diff --git a/configs/talkingparabola/airootfs/usr/bin/talk-to-me b/configs/talkingparabola/airootfs/usr/bin/talk-to-me new file mode 100755 index 0000000..73998d8 --- /dev/null +++ b/configs/talkingparabola/airootfs/usr/bin/talk-to-me @@ -0,0 +1,10 @@ +#!/bin/sh +started_flag=/run/speech-is-running +if [ -f $started_flag ]; then + exit 0 +fi +systemctl stop espeakup +sleep 5 +pick-a-card +systemctl start espeakup +touch $started_flag diff --git a/configs/talkingparabola/airootfs/usr/share/livecd-sound/asound.conf.in b/configs/talkingparabola/airootfs/usr/share/livecd-sound/asound.conf.in new file mode 100644 index 0000000..851f829 --- /dev/null +++ b/configs/talkingparabola/airootfs/usr/share/livecd-sound/asound.conf.in @@ -0,0 +1,12 @@ +pcm.!default { + type plug + slave.pcm { + type hw + card %card% + } +} + +ctl.!default { + type hw + card %card% +} diff --git a/configs/talkingparabola/airootfs/usr/share/livecd-sound/functions b/configs/talkingparabola/airootfs/usr/share/livecd-sound/functions new file mode 100644 index 0000000..e517795 --- /dev/null +++ b/configs/talkingparabola/airootfs/usr/share/livecd-sound/functions @@ -0,0 +1,199 @@ +# Functions for setting up sound on the live CD. +# This library is released under the GNU General Public License, +# and it incorporates code from the /etc/init.d/alsa-utils included with +# Ubuntu 8.04. Proper credit also goes to Debian. + +# Start code copied from Debian / Ubuntu: + +bugout () { + printf "/etc/rc.d/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 +} + +filter_amixer_output() +{ + sed \ + -e '/Unable to find simple control/d' \ + -e '/Unknown playback setup/d' \ + -e '/^$/d' +} + +# 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 +# $CARDOPT +unmute_and_set_level() +{ + { [ "$2" ] && [ "$CARDOPT" ] ; } || bugout + amixer $CARDOPT -q set "$1" "$2" unmute 2>&1 | filter_amixer_output || : + return 0 +} + +# $1 +# $CARDOPT +mute_and_zero_level() +{ + { [ "$1" ] && [ "$CARDOPT" ] ; } || bugout + amixer $CARDOPT -q set "$1" "0%" mute 2>&1 | filter_amixer_output || : + return 0 +} + +# $1 +# $2 "on" | "off" +# $CARDOPT +switch_control() +{ + { [ "$2" ] && [ "$CARDOPT" ] ; } || bugout + amixer $CARDOPT -q set "$1" "$2" 2>&1 | filter_amixer_output || : + return 0 +} + +# $1 +sanify_levels_on_card() +{ + CARDOPT="-c $1" + + unmute_and_set_level "Front" "80%" + unmute_and_set_level "Master" "80%" + unmute_and_set_level "Master Mono" "80%" + unmute_and_set_level "Master Digital" "80%" # E.g., cs4237B + unmute_and_set_level "Playback" "80%" + unmute_and_set_level "Headphone" "100%" + unmute_and_set_level "PCM" "80%" + unmute_and_set_level "PCM,1" "80%" # E.g., ess1969 + unmute_and_set_level "DAC" "80%" # E.g., envy24, cs46xx + unmute_and_set_level "DAC,0" "80%" # E.g., envy24 + unmute_and_set_level "DAC,1" "80%" # E.g., envy24 + unmute_and_set_level "Synth" "80%" + unmute_and_set_level "CD" "80%" + unmute_and_set_level "PC Speaker" "100%" + + mute_and_zero_level "Mic" + mute_and_zero_level "IEC958" # Ubuntu #19648 + + # Intel P4P800-MX + switch_control "Master Playback Switch" on + switch_control "Master Surround" on + + # Trident/YMFPCI/emu10k1: + unmute_and_set_level "Wave" "80%" + unmute_and_set_level "Music" "80%" + unmute_and_set_level "AC97" "80%" + + # DRC: + unmute_and_set_level "Dynamic Range Compression" "80%" + + # Required for HDA Intel (hda-intel): + unmute_and_set_level "Front" "80%" + + # Required for SB Live 7.1/24-bit (ca0106): + unmute_and_set_level "Analog Front" "80%" + + # Required at least for Via 823x hardware on DFI K8M800-MLVF Motherboard + switch_control "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 "IEC958 Playback AC97-SPSA" "0" + + # Required for newer Via hardware + unmute_and_set_level "VIA DXS,0" "80%" + unmute_and_set_level "VIA DXS,1" "80%" + unmute_and_set_level "VIA DXS,2" "80%" + unmute_and_set_level "VIA DXS,3" "80%" + + # Required on some notebooks with ICH4: + switch_control "Headphone Jack Sense" off + switch_control "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 "External Amplifier" on + switch_control "Audigy Analog/Digital Output Jack" on + switch_control "SB Live Analog/Digital Output Jack" on + + # D1984 -- Thinkpad T61/X61 + switch_control "Speaker" on + switch_control "Headphone" on + + # HDA-Intel w/ "Digital" capture mixer (See Ubuntu #193823) + unmute_and_set_level "Digital" "80%" + + return 0 +} + +# $1 | "all" +sanify_levels() +{ + TTSDML_RETURNSTATUS=0 + 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 +} + +# $1 +preinit_levels_on_card() +{ + CARDOPT="-c $1" + + # Silly dance to activate internal speakers by default on PowerMac + # Snapper and Tumbler + id=`cat /proc/asound/card$1/id 2>/dev/null` + if [ "$id" = "Snapper" -o "$id" = "Tumbler" ]; then + switch_control "Auto Mute" off + switch_control "PC Speaker" off + switch_control "Auto Mute" on + fi +} + +# $1 | "all" +preinit_levels() +{ + TTSDML_RETURNSTATUS=0 + case "$1" in + all) + for CARD in $(echo_card_indices) ; do + preinit_levels_on_card "$CARD" || TTSDML_RETURNSTATUS=1 + done + ;; + *) + preinit_levels_on_card "$1" || TTSDML_RETURNSTATUS=1 + ;; + esac + return $TTSDML_RETURNSTATUS +} + +# End copied code. + +# 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" -a -f "$cardfile" ] && \ + [ "$(cat "$cardfile")" != pcsp ]; then + echo "$card" + fi + done +} diff --git a/configs/talkingparabola/aitab b/configs/talkingparabola/aitab deleted file mode 100644 index b7e9a17..0000000 --- a/configs/talkingparabola/aitab +++ /dev/null @@ -1,3 +0,0 @@ -# -root-image / i686 xz ext4 50% -root-image / x86_64 xz ext4 50% diff --git a/configs/talkingparabola/build.sh b/configs/talkingparabola/build.sh index 80caa2c..7432e6e 100755 --- a/configs/talkingparabola/build.sh +++ b/configs/talkingparabola/build.sh @@ -8,13 +8,19 @@ iso_version=$(date +%Y.%m.%d) install_dir=parabola work_dir=work out_dir=out -data_dir=/usr/share/parabolaiso/data +gpg_key= arch=$(uname -m) verbose="" -pacman_conf=${work_dir}/pacman.conf script_path=$(readlink -f ${0%/*}) -initcpio_dir=${script_path}/../../parabolaiso/initcpio + +# Init system. Options are: +# - openrc +# - runit +# - systemd +# +# Default is systemd +init=systemd _usage () { @@ -46,56 +52,76 @@ run_once() { fi } -# Setup custom pacman.conf with current cache directories. +# Setup custom pacman.conf with current cache directories and custom mirrorlist. make_pacman_conf() { local _cache_dirs _cache_dirs=($(pacman -v 2>&1 | grep '^Cache Dirs:' | sed 's/Cache Dirs:\s*//g')) - sed -r "s|^#?\\s*CacheDir.+|CacheDir = $(echo -n ${_cache_dirs[@]})|g" ${script_path}/pacman.conf > ${pacman_conf} + sed -r "s|^#?\\s*CacheDir.+|CacheDir = $(echo -n ${_cache_dirs[@]})|g" ${script_path}/pacman.conf > ${work_dir}/pacman.conf } -# Base installation, plus needed packages (root-image) +# Base installation, plus needed packages (airootfs) make_basefs() { - setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" init - setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" -p "memtest86+ mkinitcpio-nfs-utils nbd" install + setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -i "${init}" init + setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -i "${init}" -p "haveged memtest86+ mkinitcpio-nfs-utils nbd zsh" install } -# Additional packages (root-image) +# Additional packages (airootfs) make_packages() { - setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" -p "$(grep -h -v ^# ${script_path}/packages.{both,${arch}})" install + setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -p "$(grep -h -v ^# ${script_path}/packages.{both,${arch}})" install +} + +# Needed packages for x86_64 EFI boot +make_packages_efi() { + setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -p "efitools" install } -# Copy mkinitcpio parabolaiso hooks and build initramfs (root-image) +# Copy mkinitcpio parabolaiso hooks and build initramfs (airootfs) make_setup_mkinitcpio() { local _hook + mkdir -p ${work_dir}/${arch}/airootfs/etc/initcpio/hooks + mkdir -p ${work_dir}/${arch}/airootfs/etc/initcpio/install for _hook in parabolaiso parabolaiso_shutdown parabolaiso_pxe_common parabolaiso_pxe_nbd parabolaiso_pxe_http parabolaiso_pxe_nfs parabolaiso_loop_mnt; do - cp ${initcpio_dir}/hooks/${_hook} ${work_dir}/${arch}/root-image/usr/lib/initcpio/hooks - cp ${initcpio_dir}/install/${_hook} ${work_dir}/${arch}/root-image/usr/lib/initcpio/install + cp /usr/lib/initcpio/hooks/${_hook} ${work_dir}/${arch}/airootfs/etc/initcpio/hooks + cp /usr/lib/initcpio/install/${_hook} ${work_dir}/${arch}/airootfs/etc/initcpio/install done - cp ${initcpio_dir}/install/parabolaiso_kms ${work_dir}/${arch}/root-image/usr/lib/initcpio/install - cp ${initcpio_dir}/hooks/parabolaiso_shutdown ${work_dir}/${arch}/root-image/usr/lib/initcpio - cp ${script_path}/mkinitcpio.conf ${work_dir}/${arch}/root-image/etc/mkinitcpio-parabolaiso.conf - setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" -r 'mkinitcpio -c /etc/mkinitcpio-parabolaiso.conf -k /boot/vmlinuz-linux-libre -g /boot/parabolaiso.img' run + sed -i "s|/usr/lib/initcpio/|/etc/initcpio/|g" ${work_dir}/${arch}/airootfs/etc/initcpio/install/parabolaiso_shutdown + cp /usr/lib/initcpio/install/parabolaiso_kms ${work_dir}/${arch}/airootfs/etc/initcpio/install + cp /usr/lib/initcpio/parabolaiso_shutdown ${work_dir}/${arch}/airootfs/etc/initcpio + cp ${script_path}/mkinitcpio.conf ${work_dir}/${arch}/airootfs/etc/mkinitcpio-parabolaiso.conf + gnupg_fd= + if [[ ${gpg_key} ]]; then + gpg --export ${gpg_key} >${work_dir}/gpgkey + exec 17<>${work_dir}/gpgkey + fi + PARABOLAISO_GNUPG_FD=${gpg_key:+17} setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -r 'mkinitcpio -c /etc/mkinitcpio-parabolaiso.conf -k /boot/vmlinuz-linux-libre -g /boot/parabolaiso.img' run + if [[ ${gpg_key} ]]; then + exec 17<&- + fi } -# Customize installation (root-image) -make_customize_root_image() { - cp -af ${script_path}/root-image ${work_dir}/${arch} +# Customize installation (airootfs) +make_customize_airootfs() { + cp -af ${script_path}/airootfs ${work_dir}/${arch} + + curl -o ${work_dir}/${arch}/airootfs/etc/pacman.d/mirrorlist 'https://www.parabola.nu/mirrorlist/?country=all&protocol=http&use_mirror_status=on' - iso_version="${iso_version}" setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${pacman_conf}" -D "${install_dir}" -r '/root/customize_root_image.sh' run - rm ${work_dir}/${arch}/root-image/root/customize_root_image.sh + lynx -dump -nolist 'https://wiki.parabola.nu/index.php/Installation_Guide?action=render' >> ${work_dir}/${arch}/airootfs/root/install.txt + + setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -r '/root/customize_airootfs.sh' run + rm ${work_dir}/${arch}/airootfs/root/customize_airootfs.sh } # Prepare kernel/initramfs ${install_dir}/boot/ make_boot() { mkdir -p ${work_dir}/iso/${install_dir}/boot/${arch} - cp ${work_dir}/${arch}/root-image/boot/parabolaiso.img ${work_dir}/iso/${install_dir}/boot/${arch}/parabolaiso.img - cp ${work_dir}/${arch}/root-image/boot/vmlinuz-linux-libre ${work_dir}/iso/${install_dir}/boot/${arch}/vmlinuz + cp ${work_dir}/${arch}/airootfs/boot/parabolaiso.img ${work_dir}/iso/${install_dir}/boot/${arch}/parabolaiso.img + cp ${work_dir}/${arch}/airootfs/boot/vmlinuz-linux-libre ${work_dir}/iso/${install_dir}/boot/${arch}/vmlinuz } # Add other aditional/extra files to ${install_dir}/boot/ make_boot_extra() { - cp ${work_dir}/${arch}/root-image/boot/memtest86+/memtest.bin ${work_dir}/iso/${install_dir}/boot/memtest - cp ${work_dir}/${arch}/root-image/usr/share/licenses/common/GPL2/license.txt ${work_dir}/iso/${install_dir}/boot/memtest.COPYING + cp ${work_dir}/${arch}/airootfs/boot/memtest86+/memtest.bin ${work_dir}/iso/${install_dir}/boot/memtest + cp ${work_dir}/${arch}/airootfs/usr/share/licenses/common/GPL2/license.txt ${work_dir}/iso/${install_dir}/boot/memtest.COPYING } # Prepare /${install_dir}/boot/syslinux @@ -106,27 +132,30 @@ make_syslinux() { s|%INSTALL_DIR%|${install_dir}|g" ${_cfg} > ${work_dir}/iso/${install_dir}/boot/syslinux/${_cfg##*/} done cp ${script_path}/syslinux/splash.png ${work_dir}/iso/${install_dir}/boot/syslinux - cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/*.c32 ${work_dir}/iso/${install_dir}/boot/syslinux - cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/lpxelinux.0 ${work_dir}/iso/${install_dir}/boot/syslinux - cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/memdisk ${work_dir}/iso/${install_dir}/boot/syslinux + cp ${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/*.c32 ${work_dir}/iso/${install_dir}/boot/syslinux + cp ${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/lpxelinux.0 ${work_dir}/iso/${install_dir}/boot/syslinux + cp ${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/memdisk ${work_dir}/iso/${install_dir}/boot/syslinux mkdir -p ${work_dir}/iso/${install_dir}/boot/syslinux/hdt - gzip -c -9 ${work_dir}/${arch}/root-image/usr/share/hwdata/pci.ids > ${work_dir}/iso/${install_dir}/boot/syslinux/hdt/pciids.gz - gzip -c -9 ${work_dir}/${arch}/root-image/usr/lib/modules/*-gnu-*/modules.alias > ${work_dir}/iso/${install_dir}/boot/syslinux/hdt/modalias.gz + gzip -c -9 ${work_dir}/${arch}/airootfs/usr/share/hwdata/pci.ids > ${work_dir}/iso/${install_dir}/boot/syslinux/hdt/pciids.gz + gzip -c -9 ${work_dir}/${arch}/airootfs/usr/lib/modules/*-gnu-*/modules.alias > ${work_dir}/iso/${install_dir}/boot/syslinux/hdt/modalias.gz } # Prepare /isolinux make_isolinux() { mkdir -p ${work_dir}/iso/isolinux sed "s|%INSTALL_DIR%|${install_dir}|g" ${script_path}/isolinux/isolinux.cfg > ${work_dir}/iso/isolinux/isolinux.cfg - cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/isolinux.bin ${work_dir}/iso/isolinux/ - cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/isohdpfx.bin ${work_dir}/iso/isolinux/ - cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/ldlinux.c32 ${work_dir}/iso/isolinux/ + cp ${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/isolinux.bin ${work_dir}/iso/isolinux/ + cp ${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/isohdpfx.bin ${work_dir}/iso/isolinux/ + cp ${work_dir}/${arch}/airootfs/usr/lib/syslinux/bios/ldlinux.c32 ${work_dir}/iso/isolinux/ } # Prepare /EFI make_efi() { mkdir -p ${work_dir}/iso/EFI/boot - cp ${work_dir}/x86_64/root-image/usr/lib/systemd/boot/efi/systemd-bootx64.efi ${work_dir}/iso/EFI/boot/bootx64.efi + cp ${work_dir}/x86_64/airootfs/usr/share/efitools/efi/PreLoader.efi ${work_dir}/iso/EFI/boot/bootx64.efi + cp ${work_dir}/x86_64/airootfs/usr/share/efitools/efi/HashTool.efi ${work_dir}/iso/EFI/boot/ + + cp ${work_dir}/x86_64/airootfs/usr/lib/systemd/boot/efi/systemd-bootx64.efi ${work_dir}/iso/EFI/boot/loader.efi mkdir -p ${work_dir}/iso/loader/entries cp ${script_path}/efiboot/loader/loader.conf ${work_dir}/iso/loader/ @@ -137,17 +166,17 @@ make_efi() { s|%INSTALL_DIR%|${install_dir}|g" \ ${script_path}/efiboot/loader/entries/parabolaiso-x86_64-usb.conf > ${work_dir}/iso/loader/entries/parabolaiso-x86_64.conf - # EFI Shell 2.0 for UEFI 2.3+ ( http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=UEFI_Shell ) - cp ${data_dir}/Shell.efi ${work_dir}/iso/EFI/shellx64_v2.efi - # EFI Shell 1.0 for non UEFI 2.3+ ( http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=Efi-shell ) - cp ${data_dir}/Shell_Full.efi ${work_dir}/iso/EFI/shellx64_v1.efi + # EFI Shell 2.0 for UEFI 2.3+ + curl -o ${work_dir}/iso/EFI/shellx64_v2.efi https://raw.githubusercontent.com/tianocore/edk2/master/ShellBinPkg/UefiShell/X64/Shell.efi + # EFI Shell 1.0 for non UEFI 2.3+ + curl -o ${work_dir}/iso/EFI/shellx64_v1.efi https://raw.githubusercontent.com/tianocore/edk2/master/EdkShellBinPkg/FullShell/X64/Shell_Full.efi } # Prepare efiboot.img::/EFI for "El Torito" EFI boot mode make_efiboot() { mkdir -p ${work_dir}/iso/EFI/parabolaiso - truncate -s 38M ${work_dir}/iso/EFI/parabolaiso/efiboot.img - mkfs.vfat -n PARABOLAISO_EFI ${work_dir}/iso/EFI/parabolaiso/efiboot.img + truncate -s 64M ${work_dir}/iso/EFI/parabolaiso/efiboot.img + mkfs.fat -n PARABOLAISO_EFI ${work_dir}/iso/EFI/parabolaiso/efiboot.img mkdir -p ${work_dir}/efiboot mount ${work_dir}/iso/EFI/parabolaiso/efiboot.img ${work_dir}/efiboot @@ -157,7 +186,10 @@ make_efiboot() { cp ${work_dir}/iso/${install_dir}/boot/x86_64/parabolaiso.img ${work_dir}/efiboot/EFI/parabolaiso/parabolaiso.img mkdir -p ${work_dir}/efiboot/EFI/boot - cp ${work_dir}/x86_64/root-image/usr/lib/systemd/boot/efi/systemd-bootx64.efi ${work_dir}/efiboot/EFI/boot/bootx64.efi + cp ${work_dir}/x86_64/airootfs/usr/share/efitools/efi/PreLoader.efi ${work_dir}/efiboot/EFI/boot/bootx64.efi + cp ${work_dir}/x86_64/airootfs/usr/share/efitools/efi/HashTool.efi ${work_dir}/efiboot/EFI/boot/ + + cp ${work_dir}/x86_64/airootfs/usr/lib/systemd/boot/efi/systemd-bootx64.efi ${work_dir}/efiboot/EFI/boot/loader.efi mkdir -p ${work_dir}/efiboot/loader/entries cp ${script_path}/efiboot/loader/loader.conf ${work_dir}/efiboot/loader/ @@ -171,27 +203,20 @@ make_efiboot() { cp ${work_dir}/iso/EFI/shellx64_v2.efi ${work_dir}/efiboot/EFI/ cp ${work_dir}/iso/EFI/shellx64_v1.efi ${work_dir}/efiboot/EFI/ - umount ${work_dir}/efiboot -} - -# Copy aitab -make_aitab() { - mkdir -p ${work_dir}/iso/${install_dir} - cp ${script_path}/aitab ${work_dir}/iso/${install_dir}/aitab + umount -d ${work_dir}/efiboot } -# Build all filesystem images specified in aitab (.fs.sfs .sfs) +# Build airootfs filesystem image make_prepare() { - cp -a -l -f ${work_dir}/${arch}/root-image ${work_dir} + cp -a -l -f ${work_dir}/${arch}/airootfs ${work_dir} setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}" -D "${install_dir}" pkglist - setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}" -D "${install_dir}" prepare - rm -rf ${work_dir}/root-image - # rm -rf ${work_dir}/${arch}/root-image (if low space, this helps) + setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}" -D "${install_dir}" ${gpg_key:+-g ${gpg_key}} prepare + rm -rf ${work_dir}/airootfs + # rm -rf ${work_dir}/${arch}/airootfs (if low space, this helps) } # Build ISO make_iso() { - mkparabolaiso ${verbose} -w "${work_dir}" -D "${install_dir}" checksum mkparabolaiso ${verbose} -w "${work_dir}" -D "${install_dir}" -L "${iso_label}" -o "${out_dir}" iso "${iso_name}-${iso_version}-dual.iso" } @@ -205,7 +230,7 @@ if [[ ${arch} != x86_64 ]]; then _usage 1 fi -while getopts 'N:V:L:D:w:o:vh' arg; do +while getopts 'N:V:L:D:w:o:g:vh' arg; do case "${arg}" in N) iso_name="${OPTARG}" ;; V) iso_version="${OPTARG}" ;; @@ -213,6 +238,7 @@ while getopts 'N:V:L:D:w:o:vh' arg; do D) install_dir="${OPTARG}" ;; w) work_dir="${OPTARG}" ;; o) out_dir="${OPTARG}" ;; + g) gpg_key="${OPTARG}" ;; v) verbose="-v" ;; h) _usage 0 ;; *) @@ -226,12 +252,17 @@ mkdir -p ${work_dir} run_once make_pacman_conf -# Do all stuff for each root-image +# Do all stuff for each airootfs for arch in i686 x86_64; do run_once make_basefs run_once make_packages +done + +run_once make_packages_efi + +for arch in i686 x86_64; do run_once make_setup_mkinitcpio - run_once make_customize_root_image + run_once make_customize_airootfs done for arch in i686 x86_64; do @@ -245,8 +276,6 @@ run_once make_isolinux run_once make_efi run_once make_efiboot -run_once make_aitab - for arch in i686 x86_64; do run_once make_prepare done diff --git a/configs/talkingparabola/mkinitcpio.conf b/configs/talkingparabola/mkinitcpio.conf index 1006d1d..9448579 100644 --- a/configs/talkingparabola/mkinitcpio.conf +++ b/configs/talkingparabola/mkinitcpio.conf @@ -1,2 +1,3 @@ -HOOKS="base udev memdisk parabolaiso_shutdown parabolaiso parabolaiso_loop_mnt parabolaiso_pxe_common parabolaiso_pxe_nbd parabolaiso_pxe_http parabolaiso_pxe_nfs parabolaiso_kms block pcmcia filesystems keyboard" +MODULES="loop" +HOOKS=(base udev memdisk parabolaiso_shutdown parabolaiso parabolaiso_loop_mnt parabolaiso_pxe_common parabolaiso_pxe_nbd parabolaiso_pxe_http parabolaiso_pxe_nfs parabolaiso_kms block pcmcia filesystems keyboard) COMPRESSION="xz" diff --git a/configs/talkingparabola/root-image/etc/fstab b/configs/talkingparabola/root-image/etc/fstab deleted file mode 100644 index e69de29..0000000 diff --git a/configs/talkingparabola/root-image/etc/hostname b/configs/talkingparabola/root-image/etc/hostname deleted file mode 100644 index 8aaf41b..0000000 --- a/configs/talkingparabola/root-image/etc/hostname +++ /dev/null @@ -1 +0,0 @@ -parabolaiso diff --git a/configs/talkingparabola/root-image/etc/locale.conf b/configs/talkingparabola/root-image/etc/locale.conf deleted file mode 100644 index 01ec548..0000000 --- a/configs/talkingparabola/root-image/etc/locale.conf +++ /dev/null @@ -1 +0,0 @@ -LANG=en_US.UTF-8 diff --git a/configs/talkingparabola/root-image/etc/motd b/configs/talkingparabola/root-image/etc/motd deleted file mode 100644 index a126999..0000000 --- a/configs/talkingparabola/root-image/etc/motd +++ /dev/null @@ -1,14 +0,0 @@ - -=============================================================================== - - Parabola live media _DATE_ - - To install Parabola, the system must be connected to the internet. - For instructions, enter this command: - lynx network.html - - Press the function keys while holding Alt to switch virtual terminals. - This allows entering commands without closing lynx. - -=============================================================================== - diff --git a/configs/talkingparabola/root-image/etc/pam.d/su b/configs/talkingparabola/root-image/etc/pam.d/su deleted file mode 100644 index a291042..0000000 --- a/configs/talkingparabola/root-image/etc/pam.d/su +++ /dev/null @@ -1,6 +0,0 @@ -#%PAM-1.0 -auth sufficient pam_rootok.so -auth sufficient pam_wheel.so trust use_uid -auth required pam_unix.so -account required pam_unix.so -session required pam_unix.so diff --git a/configs/talkingparabola/root-image/etc/sudoers.d/g_wheel b/configs/talkingparabola/root-image/etc/sudoers.d/g_wheel deleted file mode 100644 index 8c45359..0000000 --- a/configs/talkingparabola/root-image/etc/sudoers.d/g_wheel +++ /dev/null @@ -1 +0,0 @@ -%wheel ALL=(ALL) NOPASSWD: ALL diff --git a/configs/talkingparabola/root-image/etc/systemd/scripts/choose-mirror b/configs/talkingparabola/root-image/etc/systemd/scripts/choose-mirror deleted file mode 100755 index 13c9f69..0000000 --- a/configs/talkingparabola/root-image/etc/systemd/scripts/choose-mirror +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash - -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 parabolaiso_http_srv) -[[ $mirror ]] || exit 0 - -mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.orig -cat >/etc/pacman.d/mirrorlist << EOF -# -# Parabola GNU/Linux-libre repository mirrorlist -# Generated by parabolaiso -# - -Server = ${mirror%%/}/\$repo/os/\$arch -EOF diff --git a/configs/talkingparabola/root-image/etc/systemd/system/choose-mirror.service b/configs/talkingparabola/root-image/etc/systemd/system/choose-mirror.service deleted file mode 100644 index 1e4d771..0000000 --- a/configs/talkingparabola/root-image/etc/systemd/system/choose-mirror.service +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=Choose mirror from the kernel command line -ConditionKernelCommandLine=mirror - -[Service] -Type=oneshot -ExecStart=/etc/systemd/scripts/choose-mirror - -[Install] -WantedBy=multi-user.target diff --git a/configs/talkingparabola/root-image/etc/systemd/system/etc-pacman.d-gnupg.mount b/configs/talkingparabola/root-image/etc/systemd/system/etc-pacman.d-gnupg.mount deleted file mode 100644 index 4eab551..0000000 --- a/configs/talkingparabola/root-image/etc/systemd/system/etc-pacman.d-gnupg.mount +++ /dev/null @@ -1,8 +0,0 @@ -[Unit] -Description=Temporary /etc/pacman.d/gnupg directory - -[Mount] -What=tmpfs -Where=/etc/pacman.d/gnupg -Type=tmpfs -Options=mode=0755 diff --git a/configs/talkingparabola/root-image/etc/systemd/system/getty@tty1.service.d/autologin.conf b/configs/talkingparabola/root-image/etc/systemd/system/getty@tty1.service.d/autologin.conf deleted file mode 100644 index d1d8474..0000000 --- a/configs/talkingparabola/root-image/etc/systemd/system/getty@tty1.service.d/autologin.conf +++ /dev/null @@ -1,3 +0,0 @@ -[Service] -ExecStart= -ExecStart=-/sbin/agetty --autologin root --noclear %I 38400 linux diff --git a/configs/talkingparabola/root-image/etc/systemd/system/livecd-alsa-unmuter.service b/configs/talkingparabola/root-image/etc/systemd/system/livecd-alsa-unmuter.service deleted file mode 100644 index e3b9073..0000000 --- a/configs/talkingparabola/root-image/etc/systemd/system/livecd-alsa-unmuter.service +++ /dev/null @@ -1,15 +0,0 @@ -[Unit] -Description=Unmute All Sound Card Controls For Use With The Live TalkingParabola Environment -# This needs to run after the audio device becomes available. -Wants=systemd-udev-settle.service -After=systemd-udev-settle.service sound.target -DefaultDependencies=no -Before=shutdown.target - -[Service] -Type=oneshot -ExecStart=/usr/bin/livecd-alsa-unmuter -StandardOutput=syslog - -[Install] -WantedBy=sound.target diff --git a/configs/talkingparabola/root-image/etc/systemd/system/pacman-init.service b/configs/talkingparabola/root-image/etc/systemd/system/pacman-init.service deleted file mode 100644 index 3414ebc..0000000 --- a/configs/talkingparabola/root-image/etc/systemd/system/pacman-init.service +++ /dev/null @@ -1,16 +0,0 @@ -[Unit] -Description=Initializes Pacman keyring -Wants=haveged.service -After=haveged.service -Requires=etc-pacman.d-gnupg.mount -After=etc-pacman.d-gnupg.mount - -[Service] -Type=oneshot -RemainAfterExit=yes -ExecStart=/usr/bin/pacman-key --init -ExecStart=/usr/bin/pacman-key --populate archlinux -ExecStart=/usr/bin/pacman-key --populate parabola - -[Install] -WantedBy=multi-user.target diff --git a/configs/talkingparabola/root-image/etc/udev/rules.d/81-dhcpcd.rules b/configs/talkingparabola/root-image/etc/udev/rules.d/81-dhcpcd.rules deleted file mode 100644 index 970da69..0000000 --- a/configs/talkingparabola/root-image/etc/udev/rules.d/81-dhcpcd.rules +++ /dev/null @@ -1 +0,0 @@ -ACTION=="add", SUBSYSTEM=="net", ENV{SYSTEMD_WANTS}="dhcpcd@$name.service" diff --git a/configs/talkingparabola/root-image/root/customize_root_image.sh b/configs/talkingparabola/root-image/root/customize_root_image.sh deleted file mode 100755 index 4ff8528..0000000 --- a/configs/talkingparabola/root-image/root/customize_root_image.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -set -e -u - -sed -i 's/#\(en_US\.UTF-8\)/\1/' /etc/locale.gen -locale-gen - -ln -sf /usr/share/zoneinfo/UTC /etc/localtime - -usermod -s /usr/bin/zsh root -cp -aT /etc/skel/ /root/ - -useradd -m -p "" -g users -G "adm,audio,floppy,log,network,rfkill,scanner,storage,optical,power,wheel" -s /usr/bin/zsh parabola - -chmod 750 /etc/sudoers.d -chmod 440 /etc/sudoers.d/g_wheel - -sed -i "s/#Server/Server/g" /etc/pacman.d/mirrorlist - -systemctl enable multi-user.target pacman-init.service choose-mirror.service livecd-alsa-unmuter.service brltty.service - -sed -i "s/_DATE_/${iso_version}/" /etc/motd diff --git a/configs/talkingparabola/root-image/root/network.html b/configs/talkingparabola/root-image/root/network.html deleted file mode 100644 index 057e680..0000000 --- a/configs/talkingparabola/root-image/root/network.html +++ /dev/null @@ -1,191 +0,0 @@ -Online version: https://wiki.parabolagnulinux.org/Start_installing -

Contents

- -
-

Start installing

-

You are now presented with a shell prompt, automatically logged in as root. -

-

Change the language

-
Tip: These are optional for the majority of users. Useful only if you plan on writing in your own language in any of the configuration files, if you use diacritical marks in the Wi-Fi password, or if you would like to receive system messages (e.g. possible errors) in your own language.
-

By default, the keyboard layout is set to us. If you have a non-US keyboard layout, run: -

-
# loadkeys layout
-
-

...where layout can be fr, uk, dvorak, be-latin1, etc. See here for a comprehensive list. -

The font should also be changed, because most languages use more glyphs than the 26 letter English alphabet. Otherwise some foreign characters may show up as white squares or as other symbols. Note that the name is case-sensitive, so please type it exactly as you see it: -

-
# setfont Lat2-Terminus16
-
-

By default, the language is set to English (US). If you would like to change the language for the install process (German, in this example), remove the # in front of the locale you want from /etc/locale.gen, along with English (US). Please choose the UTF-8 entry. -

Use Ctrl+X to exit, and when prompted to save changes, press Y and Enter to use the same filename. -

-
# nano /etc/locale.gen
-
-en_US.UTF-8 UTF-8
-de_DE.UTF-8 UTF-8
-
# locale-gen
-# export LANG=de_DE.UTF-8
-
-

Remember, LAlt+LShift activates and deactivates the keymap. -

-

Establish an internet connection

-
Warning: As of v197, udev no longer assigns network interface names according to the wlanX and ethX naming scheme. If you are coming from a different distribution or are reinstalling Parabola and not aware of the new interface naming style, please do not assume that your wireless interface is named wlan0, or that your wired interface is named eth0. You can use the command ip link to discover the names of your interfaces.
-

The dhcpcd network daemon starts automatically during boot and it will attempt to start a wired connection. Try to ping a server to see if a connection was established. For example, gnu.org: -

-
# ping -c 3 gnu.org
-
PING gnu.org (208.118.235.148) 56(84) bytes of data.
-64 bytes from wildebeest.gnu.org (208.118.235.148): icmp_seq=1 ttl=47 time=183 ms
-64 bytes from wildebeest.gnu.org (208.118.235.148): icmp_seq=2 ttl=47 time=168 ms
-64 bytes from wildebeest.gnu.org (208.118.235.148): icmp_seq=3 ttl=47 time=183 ms
-
---- gnu.org ping statistics ---
-3 packets transmitted, 3 received, 0% packet loss, time 2002ms
-rtt min/avg/max/mdev = 168.131/178.357/183.914/7.248 ms
-

If you get a ping: unknown host error, first check if there is an issue with your cable or wireless signal strength. If not, you will need to set up the network manually, as explained below. Once a connection is established move on to Installation Guide. -

-

Wired

-

Follow this procedure if you need to set up a wired connection via a static IP address. -

First, disable the dhcpcd service which was started automatically at boot: -

-
# systemctl stop dhcpcd.service
-
-

Identify the name of your Ethernet interface. -

-
# ip link
-
-1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
-    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
-2: enp2s0f0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
-    link/ether 00:11:25:31:69:20 brd ff:ff:ff:ff:ff:ff
-3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT qlen 1000
-    link/ether 01:02:03:04:05:06 brd ff:ff:ff:ff:ff:ff
-

In this example, the Ethernet interface is enp2s0f0. If you are unsure, your Ethernet interface is likely to start with the letter "e", and unlikely to be "lo" or start with the letter "w". You can also use iwconfig and see which interfaces are not wireless: -

-
# iwconfig
-
enp2s0f0  no wireless extensions.
-wlp3s0    IEEE 802.11bgn  ESSID:"NETGEAR97"
-          Mode:Managed  Frequency:2.427 GHz  Access Point: 2C:B0:5D:9C:72:BF
-          Bit Rate=65 Mb/s   Tx-Power=16 dBm
-          Retry  long limit:7   RTS thr:off   Fragment thr:off
-          Power Management:on
-          Link Quality=61/70  Signal level=-49 dBm
-          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
-          Tx excessive retries:0  Invalid misc:430   Missed beacon:0
-lo        no wireless extensions.
-

In this example, neither enp2s0f0 nor the loopback device have wireless extensions, meaning enp2s0f0 is our Ethernet interface. -

You also need to know these settings: -

-
  • Static IP address. -
  • Subnet mask. -
  • Gateway's IP address. -
  • Name servers' (DNS) IP addresses. -
  • Domain name (unless you are on a local LAN, in which case you can make it up). -
-

Activate the connected Ethernet interface (e.g. enp2s0f0): -

-
# ip link set enp2s0f0 up
-
-

Add the address: -

-
# ip addr add ip_address/subnetmask dev interface_name
-
-

For example: -

-
# ip addr add 192.168.1.2/24 dev enp2s0f0
-
-

For more options, run man ip. -

Add your gateway like this, substituting your own gateway's IP address: -

-
# ip route add default via ip_address
-
-

For example: -

-
# ip route add default via 192.168.1.1
-
-

Edit resolv.conf, substituting your name servers' IP addresses and your local domain name: -

-
# nano /etc/resolv.conf
-
-nameserver 61.23.173.5
-nameserver 61.95.849.8
-search example.com
-
Note: Currently, you may include a maximum of three nameserver lines. In order to overcome this limitation, you can use a locally caching nameserver like Dnsmasq.
-

You should now have a working network connection. If you do not, check the detailed Network Configuration page. -

-

Wireless

-

Follow this procedure if you need wireless connectivity (Wi-Fi) during the installation process. -

First, identify the name of your wireless interface. -

-
# iw dev
-
phy#0
-        Interface wlp3s0
-                ifindex 3
-                wdev 0x1
-                addr 00:21:6a:5e:52:bc
-                type managed
-

In this example, wlp3s0 is the available wireless interface. If you are unsure, your wireless interface is likely to start with the letter "w", and unlikely to be "lo" or start with the letter "e". -

-
Note: If you do not see output similar to this, then your wireless driver has not been loaded. Please see Wireless Setup for more detailed information.
-

Bring the interface up with: -

-
# ip link set wlp3s0 up
-
-

If you get this error message: SIOCSIFFLAGS: No such file or directory, your wireless chipset could need a non-free firmware to function. This is not supported on Parabola. Please see Wireless Setup if you are unsure if this is the true for your particular chipset. -

Next, use netctl's wifi-menu to connect to a network: -

-
# wifi-menu wlp3s0
-
-

You should now have a working network connection. If you do not, check the detailed Wireless Setup page. -

Alternatively, use iw dev wlp3s0 scan | grep SSID to scan for available networks, then connect to a network with: -

-
# wpa_supplicant -B -i wlp3s0 -c <(wpa_passphrase "ssid" "psk")
-
-

You need to replace ssid with the name of your network (e.g. "Linksys etc...") and psk with your wireless password, leaving the quotes around the network name and password. -

Finally, you have to give your interface an IP address. This can be set manually or using the dhcp: -

-
# dhcpcd wlp3s0
-
-

If that does not work, issue the following commands: -

-
# echo 'ctrl_interface=DIR=/run/wpa_supplicant' > /etc/wpa_supplicant.conf
-# wpa_passphrase <ssid> <passphrase> >> /etc/wpa_supplicant.conf
-# ip link set <interface> up # May not be needed as dhcpcd should bring it up but may be needed for wpa_supplicant.
-# wpa_supplicant -B -D nl80211 -c /foobar.conf -i <interface name>
-# dhcpcd -A <interface name>
-
-

Analog modem, ISDN or PPPoE DSL

-

For xDSL, dial-up and ISDN connections, see Direct Modem Connection. -

-

Behind a proxy server

-

If you are behind a proxy server, you will need to export the http_proxy and ftp_proxy environment variables. See Proxy settings for more information. -

-
-

This page was retrieved from: https://wiki.parabolagnulinux.org/index.php?title=Start_installing&oldid=5138 -

-

Content is available under GNU Free Documentation License 1.3 (or at your option, any later version). -

- - - diff --git a/configs/talkingparabola/root-image/usr/bin/livecd-alsa-unmuter b/configs/talkingparabola/root-image/usr/bin/livecd-alsa-unmuter deleted file mode 100755 index 6de05a0..0000000 --- a/configs/talkingparabola/root-image/usr/bin/livecd-alsa-unmuter +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -# Properly initialize the sound card so that we have audio at boot. -# This script is released under the GNU General Public License. -source /usr/share/livecd-sound/functions - -preinit_levels all -sanify_levels all diff --git a/configs/talkingparabola/root-image/usr/bin/pick-a-card b/configs/talkingparabola/root-image/usr/bin/pick-a-card deleted file mode 100755 index 7f469e8..0000000 --- a/configs/talkingparabola/root-image/usr/bin/pick-a-card +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash - -# If there are multiple usable sound cards, prompt the user to choose one, -# using auditory feedback. -# This script is released under the GNU General Public License. - -source /usr/share/livecd-sound/functions - -nwords() { - echo $# -} - -is_numeric() { - local str=$1 - expr match "$str" '[[:digit:]]\+$' > /dev/null 2>&1 -} - -set_default_card() { - local card=$1 - sed -e "s/%card%/$card/g" < /usr/share/livecd-sound/asound.conf.in \ - > /etc/asound.conf -} - -play_on_card() { - local card=$1 file=$2 - aplay "-Dplughw:$card,0" "$file" -} - -set -f -usable_cards="$(list_non_pcsp_cards)" -num_usable_cards=$(nwords $usable_cards) - -if [ "$num_usable_cards" -eq 1 ]; then - exit 0 -fi - -for card in $usable_cards; do - if ! is_numeric "$card"; then - continue - fi - play_on_card "$card" /usr/share/livecd-sound/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-sound/sounds/beep.wav - if read -t 10; then - set_default_card "$card" - break - fi -done diff --git a/configs/talkingparabola/root-image/usr/bin/talk-to-me b/configs/talkingparabola/root-image/usr/bin/talk-to-me deleted file mode 100755 index 73998d8..0000000 --- a/configs/talkingparabola/root-image/usr/bin/talk-to-me +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -started_flag=/run/speech-is-running -if [ -f $started_flag ]; then - exit 0 -fi -systemctl stop espeakup -sleep 5 -pick-a-card -systemctl start espeakup -touch $started_flag diff --git a/configs/talkingparabola/root-image/usr/share/livecd-sound/asound.conf.in b/configs/talkingparabola/root-image/usr/share/livecd-sound/asound.conf.in deleted file mode 100644 index 851f829..0000000 --- a/configs/talkingparabola/root-image/usr/share/livecd-sound/asound.conf.in +++ /dev/null @@ -1,12 +0,0 @@ -pcm.!default { - type plug - slave.pcm { - type hw - card %card% - } -} - -ctl.!default { - type hw - card %card% -} diff --git a/configs/talkingparabola/root-image/usr/share/livecd-sound/functions b/configs/talkingparabola/root-image/usr/share/livecd-sound/functions deleted file mode 100644 index e517795..0000000 --- a/configs/talkingparabola/root-image/usr/share/livecd-sound/functions +++ /dev/null @@ -1,199 +0,0 @@ -# Functions for setting up sound on the live CD. -# This library is released under the GNU General Public License, -# and it incorporates code from the /etc/init.d/alsa-utils included with -# Ubuntu 8.04. Proper credit also goes to Debian. - -# Start code copied from Debian / Ubuntu: - -bugout () { - printf "/etc/rc.d/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 -} - -filter_amixer_output() -{ - sed \ - -e '/Unable to find simple control/d' \ - -e '/Unknown playback setup/d' \ - -e '/^$/d' -} - -# 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 -# $CARDOPT -unmute_and_set_level() -{ - { [ "$2" ] && [ "$CARDOPT" ] ; } || bugout - amixer $CARDOPT -q set "$1" "$2" unmute 2>&1 | filter_amixer_output || : - return 0 -} - -# $1 -# $CARDOPT -mute_and_zero_level() -{ - { [ "$1" ] && [ "$CARDOPT" ] ; } || bugout - amixer $CARDOPT -q set "$1" "0%" mute 2>&1 | filter_amixer_output || : - return 0 -} - -# $1 -# $2 "on" | "off" -# $CARDOPT -switch_control() -{ - { [ "$2" ] && [ "$CARDOPT" ] ; } || bugout - amixer $CARDOPT -q set "$1" "$2" 2>&1 | filter_amixer_output || : - return 0 -} - -# $1 -sanify_levels_on_card() -{ - CARDOPT="-c $1" - - unmute_and_set_level "Front" "80%" - unmute_and_set_level "Master" "80%" - unmute_and_set_level "Master Mono" "80%" - unmute_and_set_level "Master Digital" "80%" # E.g., cs4237B - unmute_and_set_level "Playback" "80%" - unmute_and_set_level "Headphone" "100%" - unmute_and_set_level "PCM" "80%" - unmute_and_set_level "PCM,1" "80%" # E.g., ess1969 - unmute_and_set_level "DAC" "80%" # E.g., envy24, cs46xx - unmute_and_set_level "DAC,0" "80%" # E.g., envy24 - unmute_and_set_level "DAC,1" "80%" # E.g., envy24 - unmute_and_set_level "Synth" "80%" - unmute_and_set_level "CD" "80%" - unmute_and_set_level "PC Speaker" "100%" - - mute_and_zero_level "Mic" - mute_and_zero_level "IEC958" # Ubuntu #19648 - - # Intel P4P800-MX - switch_control "Master Playback Switch" on - switch_control "Master Surround" on - - # Trident/YMFPCI/emu10k1: - unmute_and_set_level "Wave" "80%" - unmute_and_set_level "Music" "80%" - unmute_and_set_level "AC97" "80%" - - # DRC: - unmute_and_set_level "Dynamic Range Compression" "80%" - - # Required for HDA Intel (hda-intel): - unmute_and_set_level "Front" "80%" - - # Required for SB Live 7.1/24-bit (ca0106): - unmute_and_set_level "Analog Front" "80%" - - # Required at least for Via 823x hardware on DFI K8M800-MLVF Motherboard - switch_control "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 "IEC958 Playback AC97-SPSA" "0" - - # Required for newer Via hardware - unmute_and_set_level "VIA DXS,0" "80%" - unmute_and_set_level "VIA DXS,1" "80%" - unmute_and_set_level "VIA DXS,2" "80%" - unmute_and_set_level "VIA DXS,3" "80%" - - # Required on some notebooks with ICH4: - switch_control "Headphone Jack Sense" off - switch_control "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 "External Amplifier" on - switch_control "Audigy Analog/Digital Output Jack" on - switch_control "SB Live Analog/Digital Output Jack" on - - # D1984 -- Thinkpad T61/X61 - switch_control "Speaker" on - switch_control "Headphone" on - - # HDA-Intel w/ "Digital" capture mixer (See Ubuntu #193823) - unmute_and_set_level "Digital" "80%" - - return 0 -} - -# $1 | "all" -sanify_levels() -{ - TTSDML_RETURNSTATUS=0 - 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 -} - -# $1 -preinit_levels_on_card() -{ - CARDOPT="-c $1" - - # Silly dance to activate internal speakers by default on PowerMac - # Snapper and Tumbler - id=`cat /proc/asound/card$1/id 2>/dev/null` - if [ "$id" = "Snapper" -o "$id" = "Tumbler" ]; then - switch_control "Auto Mute" off - switch_control "PC Speaker" off - switch_control "Auto Mute" on - fi -} - -# $1 | "all" -preinit_levels() -{ - TTSDML_RETURNSTATUS=0 - case "$1" in - all) - for CARD in $(echo_card_indices) ; do - preinit_levels_on_card "$CARD" || TTSDML_RETURNSTATUS=1 - done - ;; - *) - preinit_levels_on_card "$1" || TTSDML_RETURNSTATUS=1 - ;; - esac - return $TTSDML_RETURNSTATUS -} - -# End copied code. - -# 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" -a -f "$cardfile" ] && \ - [ "$(cat "$cardfile")" != pcsp ]; then - echo "$card" - fi - done -} diff --git a/docs/README.altbootmethods b/docs/README.altbootmethods index d9acc89..e246540 100644 --- a/docs/README.altbootmethods +++ b/docs/README.altbootmethods @@ -81,7 +81,7 @@ Note: All NIC firmwares should support this. --enable-tftp \ --tftp-root=/run/parabolaiso/bootmnt \ --dhcp-range=192.168.0.2,192.168.0.254,86400 \ - --dhcp-boot=/parabola/boot/syslinux/gpxelinux.0 \ + --dhcp-boot=/parabola/boot/syslinux/lpxelinux.0 \ --dhcp-option-force=209,boot/syslinux/parabolaiso.cfg \ --dhcp-option-force=210,/parabola/ @@ -92,7 +92,7 @@ Note: Not all NIC firmware supports HTTP and DNS (if domain name is used). # dnsmasq --port=0 \ --dhcp-range=192.168.0.2,192.168.0.254,86400 \ - --dhcp-boot=http://192.168.0.7/parabola/boot/syslinux/gpxelinux.0 \ + --dhcp-boot=http://192.168.0.7/parabola/boot/syslinux/lpxelinux.0 \ --dhcp-option-force=209,boot/syslinux/parabolaiso.cfg \ --dhcp-option-force=210,http://192.168.0.7/parabola/ @@ -109,7 +109,7 @@ methods can be used to serve the rest of live-medium. * NFS # echo "/run/parabolaiso/bootmnt 192.168.0.*(ro,no_subtree_check,no_root_squash)" >> /etc/exports -# systemctl start rpc-mountd.service +# systemctl start nfs-server.service * NBD diff --git a/docs/README.bootparams b/docs/README.bootparams index 7139976..b9eadb4 100644 --- a/docs/README.bootparams +++ b/docs/README.bootparams @@ -23,8 +23,6 @@ INDEX Default: "/dev/disk/by-label/${parabolaisolabel}" * parabolaisobasedir= Set the base directory where all files reside. Default: "parabola" -* aitab= Set the path for "aitab" file. - Default: ${parabolaisobasedir}/aitab * copytoram= If set to "y" or just "copytoram" without arguments, all SquashFS are copied to "RAM". Default: (unset) @@ -32,47 +30,47 @@ INDEX performs a self-test of all files inside ${install_dir}, and continue booting if ok. Default: (unset) -* cow_label= Set the filesystem label where COW (dm-snapshot) - files must be stored. +* cow_label= Set the filesystem label where COW file (for dm-snapshot) + or upperdir/workdir files (for overlayfs) must be stored. Default: (unset) -* cow_device= Set the device node where COW (dm-snapshot) files - must be stored. +* cow_device= Like cow_label= but using device node. Default: (unset) or "/dev/disk/by-label/${cow_label}" +* cow_flags= Set extra mount options, e.g. for btrfs subvolumes. + Default: defaults * cow_directory= Set a directory inside ${cow_device}. Default: "/persistent_${parabolaisolabel}/${arch}" -* cow_persistent= Set if snapshots are persistent "P" or non-persistent "N". +* cow_persistent= Set if snapshot is persistent "P" or non-persistent "N". + Only used for dm-snapshot mode, ignored for overlayfs. Default: "N" (if no ${cow_device} is used) otherwise "P". -* cowspace_size= Set the size of tmpfs /cowspace. This space is used for - Copy-On-Write files of dm-snapshot. - Size is in bytes (suffix with "k", "m" and "g") or - in percentage of available RAM. - Default: "75%" -* cowfile_size= Set the size for all files to be used as COW (dm-snapshot), - in percentage of the ro-device.fs file. This is mostly useful - when cow_device= is used and filesystem does not support - sparse files (ie VFAT). - Default: "100%" +* cow_spacesize= Set the size for COW space (tmpfs). Valid for both + dm-snapshot and overlayfs mode. + The argument is an integer and optional unit. + Units are M,G (powers of 1024). + Default: "256M" +* cow_chunksize= Set chunksize used for dm-snapshot. This is number + of 512 byte blocks to write at once. + Default: "8" * copytoram_size= Set the size of tmpfs. This space is used for - copy of all SquashFS images used, if copytoram=y. + airootfs.sfs image if copytoram=y. Size is in bytes (suffix with "k", "m" and "g") or in percentage of available RAM. Default: "75%" -* dm_snap_prefix= Set a prefix for device-mapper snapshot node names. +* dm_snap_prefix= Set a prefix for dm-snapshot node names. + Only used for dm-snapshot mode, ignored for overlayfs. Default: "parabola" * arch= Force an architecture type (i686 | x86_64). Do not set it for normal operations. - Useful for running a 64 bit kernel / 32 bit userspace. Default: (architecture of running kernel) ** hooks/parabolaiso_pxe_common * ip= This parameter is setup automatically by PXELINUX - when option "IPAPPEND" is set to 1 or 2 in config. + when option "SYSAPPEND" is set to 1 or 2 in config. ip=::: Default: (set via PXE server) * BOOTIF= This parameter is setup automatically by PXELINUX - when option "IPAPPEND" is set to 2 or 3 in config. + when option "SYSAPPEND" is set to 2 or 3 in config. BOOTIF= Default: (set via PXELINUX) * copy_resolvconf= Copy /etc/resolv.conf from initramfs to live-enviroment. @@ -125,6 +123,8 @@ INDEX Default: (unset) * img_dev= Device where parabolaiso-image.iso reside. Default: (unset) or "/dev/disk/by-label/${img_label}" +* img_flags= Set extra mount options, e.g. for btrfs subvolumes. + Default: defaults * img_loop= Full path where parabolaiso-image.iso is located on ${img_dev} Default: (unset) @@ -136,6 +136,6 @@ INDEX * mirror= Takes a mirror URL and creates a new mirrorlist. When setting mirror=auto, the mirror is taken from - archiso_http_srv= in order to keep using the mirror + parabolaiso_http_srv= in order to keep using the mirror selected in the netboot menu. Default: (unset) diff --git a/docs/README.build b/docs/README.build index f2fb594..a85dbde 100644 --- a/docs/README.build +++ b/docs/README.build @@ -2,9 +2,6 @@ INDEX ----- * Build requirements -* Image types generated by mkparabolaiso. -* File format for aitab. -* Why the /isolinux and /parabola/boot/syslinux directories? * Building the most basic Parabola GNU/Linux-libre live media. (configs/baseline) * Building official Parabola GNU/Linux-libre live media. (configs/releng) @@ -13,15 +10,16 @@ INDEX *** Build requirements ** For mkparabolaiso script needs these packages (build host): + + arch-install-scripts for pacstrap/arch-chroot + squashfs-tools for mksquashfs + libisoburn for xorriso + btrfs-progs for mkfs.btrfs (optional) ** For configs/releng build.sh needs theses packages (build host): - + dosfstools for mkfs.vfat + + dosfstools for mkfs.fat + lynx for fetching the latest installation guide -** For these hooks needs these packages (on target root-image) +** For these hooks needs these packages (on target airootfs) * parabolaiso + (none) * parabolaiso_loop_mnt @@ -38,55 +36,13 @@ INDEX + (none) -*** Image types generated by mkparabolaiso. - -* image-name.sfs SquashFS image with all files directly on it. - [read-only, no dm-snapshot is used] -* image-name.fs.sfs SquashFS with only one file inside (image-name.fs), - which is an image of some type of filesystem - (ext4, ext3, ext2, xfs, btrfs), all files reside on it. - [read-write, via COW image with dm-snapshot] - - -*** File format for aitab. - -The aitab file holds information about the filesystems images that must be -created by mkparabolaiso and mounted at initramfs stage from the parabolaiso hook. -It consists of some fields which define the behaviour of images. - -# - - Image name without extension (.fs .fs.sfs .sfs). - Mount point. - Architecture { i686 | x86_64 | any }. - SquashFS compression type { gzip | lzo | xz }. - Set the filesystem type of the image - { ext4 | ext3 | ext2 | xfs | btrfs }. - A special value of "none" denotes no usage of a filesystem. - In that case all files are pushed directly to SquashFS filesystem. - An absolute value of file system image size in MiB. - (example: 100, 1000, 4096, etc) - A relative value of file system free space [in percent]. - {1%..99%} (example 50%, 10%, 7%). - This is an estimation, and calculated in a simple way. - Space used + 10% (estimated for metadata overhead) + desired % - - -*** Why the /isolinux and /parabola/boot/syslinux directories? - -The /isolinux directory holds files needed for the ISOLINUX boot loader -module of SYSLINUX. ISOLINUX can not find config files on -/parabola/boot/syslinux, like other boot loaders modules (SYSLINUX, PXELINUX). - - - *** Building the most basic Parabola GNU/Linux-libre live media. (configs/baseline) * Install needed packages. - # pacman -S git make squashfs-tools libisoburn rsync --needed + # pacman -S git make arch-install-scripts squashfs-tools libisoburn --needed * Install parabolaiso. - # git clone git://projects.parabolagnulinux.org/parabolaiso.git + # git clone git://git.parabola.nu/packages/parabolaiso.git # make -C parabolaiso install * Build a basic iso. @@ -99,10 +55,10 @@ used to build official images with much more things. *** Building official Parabola GNU/Linux-libre live media. (configs/releng) * Install needed packages. - # pacman -S git make squashfs-tools libisoburn dosfstools lynx --needed + # pacman -S git make arch-install-scripts squashfs-tools libisoburn dosfstools lynx --needed * Install parabolaiso. - # git clone git://projects.parabolagnulinux.org/parabolaiso.git + # git clone git://git.parabola.nu/packages/parabolaiso.git # make -C parabolaiso install * Build them! diff --git a/docs/README.transfer b/docs/README.transfer index f6879e0..2cf28e3 100644 --- a/docs/README.transfer +++ b/docs/README.transfer @@ -72,7 +72,7 @@ Note: Type "b" for FAT32, "83" for EXTFS or "7" for NTFS. 2) Create a FAT32, EXTFS or NTFS filesystem on such partition and setup a label. Note: COW is not supported on NTFS. -# mkfs.vfat -F 32 -n +# mkfs.fat -F 32 -n # mkfs.ext4 -L # mkfs.ntfs -L @@ -89,7 +89,7 @@ Note: COW is not supported on NTFS. # umount 7) Install syslinux MBR boot code on target drive. -# dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/mbr.bin of= +# dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/bios/mbr.bin of= * PC-BIOS (ISOHYBRID-MBR): @@ -111,7 +111,7 @@ Note: Using here a GPT partition mode as example, but MBR should also works # gdisk 2) Create a FAT32 filesystem on such partition and setup a label. -# mkfs.vfat -F 32 -n +# mkfs.fat -F 32 -n 3) Mount target filesystem. # mount diff --git a/expand b/expand deleted file mode 100755 index 5234379..0000000 --- a/expand +++ /dev/null @@ -1,181 +0,0 @@ -#!/bin/bash - -set -e - -version="$1" - -type="$2" - -### CONFIGURATION OPTIONS - -# Profiles to package in addition to the profile releng for the make target "dist-branches" -branches_dist_branches=(baseline gnome toolkit) - -# Profiles to package in addition to the profile releng for the make target "dist" -branches_dist=(baseline) - -### END OF CONFIGURATION OPTIONS - -error() { - echo "${@}. Stop." >&2 - exit 1 -} - -dist_branches() { - branches="${branches_dist_branches}" - # Refs to package (the branches) - refs="${branches[@]}" - # Ref of the releng profile to package - releng="master" - # Release branch. This branch only has commits to prepare the package. - release_branch="release-branches" - # Release ref. It is a branch for dist_branches. The package is created from this ref. - release="${release_branch}" - # Refs that should exist for the make target dist-branches. This branches will be packaged. - allrefs=( ${releng} ${branches[@]} ) -} - -dist() { - branches="${branches_dist}" - # Refs to package (branch names appending the date, like "baseline/2013.08.12") - refs="${branches_dist[@]/%//${version}}" - # Ref of the releng profile to package - releng="master/${version}" - # Release branch. This branch only has commits to prepare the package. - release_branch="release" - # Release ref. Tag of commit in release_branch. The package is created from this ref. - release="release/${version}" - # These refs should exist to package for the make target dist. - allrefs=( ${releng} ${refs[@]} ) -} - -expand() { - ref="$1" - dir="$2" - - GIT_INDEX_FILE="${index}" git read-tree --empty - GIT_INDEX_FILE="${index}".release git read-tree --empty - - # Find the current head of ${ref} - head="$(git show-ref --hash "refs/${ref_type}/${ref}")" - # Find the current head of the release branch. - head_release="$(git show-ref --hash refs/heads/"${release_branch}")" - if [[ $dir == releng ]] ; then - # Read the tree of "$ref" with profile path rename into an index file. - git ls-tree -z -r "${head}" | sed -z "s|configs/profile|configs/${dir}|" | GIT_INDEX_FILE="${index}" git update-index -z --index-info - # Remove the master branch from the release index, that is, leave everything from configs/ excluding configs/releng - git ls-tree -z -r "${head_release}" | grep -zZP 'configs/(?!releng)' | GIT_INDEX_FILE="${index}".release git update-index -z --index-info - # This combines the two indexes (obtained in the last two commands). - GIT_INDEX_FILE="${index}".release git ls-files -z -s | GIT_INDEX_FILE="${index}" git update-index -z --add --index-info - else - # Read only paths configs/profile of "$ref" with profile path rename into an index file. - git ls-tree -z -r "${head}" -- configs/profile | sed -z "s|configs/profile|configs/${dir}|" | GIT_INDEX_FILE="${index}" git update-index -z --index-info - # Remove configs/${dir} from the release index. - git ls-tree -z -r "${head_release}" | grep -zZv configs/"${dir}" | GIT_INDEX_FILE="${index}".release git update-index -z --index-info - # This combines the two indexes (obtained in the last two commands). - GIT_INDEX_FILE="${index}".release git ls-files -z -s | GIT_INDEX_FILE="${index}" git update-index -z --add --index-info - fi - # Write the index file into the repo as a tree. - tree="$(GIT_INDEX_FILE="${index}" git write-tree)" - # Write a commit to the repo. - commit="$(echo "Update profile ${dir}" | git commit-tree "$tree" -p "${head_release}")" - # Update the head of the repository to be the new commit. - git update-ref refs/heads/"${release_branch}" "$commit" "${head_release}" -} - -expand_empty() { - ref="${releng}" - dir="releng" - - GIT_INDEX_FILE="${index}" git read-tree --empty - - # Find the current head of ${ref} - head="$(git show-ref --hash "refs/${ref_type}/${ref}")" - # Read the tree of "$ref" with profile path rename into an index file. - git ls-tree -z -r "${head}" | sed -z "s|configs/profile|configs/${dir}|" | GIT_INDEX_FILE="${index}" git update-index -z --index-info - # Write the index file into the repo as a tree. - tree="$(GIT_INDEX_FILE="${index}" git write-tree)" - # Write a commit to the repo. - commit="$(echo "Update profile ${dir}" | git commit-tree "$tree")" - # Update the head of the repository to be the new commit. - git update-ref refs/heads/"${release_branch}" "$commit" 0000000000000000000000000000000000000000 -} - -ref_test() { - es=0 - git show-ref --quiet "$1" || es=$? - - if [[ $es == 1 ]] ; then - error "$2" - elif [[ $es > 1 ]] ; then - error "$3" - fi -} - -ref_test_negative() { - es=0 - git show-ref --quiet "$1" || es=$? - - if [[ $es == 0 ]] ; then - error "$2" - elif [[ $es > 1 ]] ; then - error "$3" - fi -} - -release_prepare() { - ref_test_negative "refs/tags/${release}" "Release tag ${release} can not be created because it already exists" "Error testing the release tag" -} - -show_ref() { - for ref in ${allrefs[@]} ; do - ref_test "refs/${ref_type}/${ref}" "Git reference refs/${ref_type}/${ref} should exist" "Error testing git reference refs/${ref_type}/${ref}" - done -} - -archive_ref() { - git archive --format=tar.gz --prefix=parabolaiso-"${version}"/ "refs/${ref_type}/${release}" > parabolaiso-"${version}".tar.gz -} - -archive() { - git tag -s -m "tag ${release}" "${release}" "${release_branch}" - archive_ref - gpg --detach-sign --use-agent parabolaiso-"${version}".tar.gz -} - -dist_expand() { - index="$(mktemp)" - - es=0 - git show-ref --quiet "refs/heads/${release_branch}" || es=$? - - if [[ $es == 0 ]] ; then - expand "${releng}" releng - elif [[ $es == 1 ]] ; then - expand_empty - echo "Release branch created." - elif [[$es > 1 ]] ; then - error "Error testing the release branch" - fi - - for i in ${!branches[@]} ; do - expand ${refs[$i]} ${branches[$i]} - done -} - -if [[ ${type} == dist ]] ; then - ref_type="tags" - dist - release_prepare - show_ref - dist_expand - archive -elif [[ ${type} == dist-branches ]] ; then - ref_type="heads" - dist_branches - show_ref - dist_expand - archive_ref -else - error "Second argument is not correct" -fi diff --git a/parabolaiso/initcpio/hooks/parabolaiso b/parabolaiso/initcpio/hooks/parabolaiso index c23fd3d..ef79b2b 100644 --- a/parabolaiso/initcpio/hooks/parabolaiso +++ b/parabolaiso/initcpio/hooks/parabolaiso @@ -1,5 +1,5 @@ # args: source, newroot, mountpoint -_mnt_fs() { +_mnt_dmsnapshot() { local img="${1}" local newroot="${2}" local mnt="${3}" @@ -11,19 +11,13 @@ _mnt_fs() { ro_dev=$(losetup --find --show --read-only "${img}") echo ${ro_dev} >> /run/parabolaiso/used_block_devices ro_dev_size=$(blockdev --getsz ${ro_dev}) - if [[ "${cowfile_size}" == "100" ]]; then - rw_dev_size=${ro_dev_size} - else - # size calculation done in this way to avoid integer overflow when ro_dev_size is > 10.2G - rw_dev_size=$((ro_dev_size/100*cowfile_size)) - fi if [[ "${cow_persistent}" == "P" ]]; then if [[ -f "/run/parabolaiso/cowspace/${cow_directory}/${img_name}.cow" ]]; then msg ":: Found '/run/parabolaiso/cowspace/${cow_directory}/${img_name}.cow', using as persistent." else msg ":: Creating '/run/parabolaiso/cowspace/${cow_directory}/${img_name}.cow' as persistent." - dd of="/run/parabolaiso/cowspace/${cow_directory}/${img_name}.cow" count=0 seek=${rw_dev_size} &> /dev/null + truncate -s "${cow_spacesize}" "/run/parabolaiso/cowspace/${cow_directory}/${img_name}.cow" fi else if [[ -f "/run/parabolaiso/cowspace/${cow_directory}/${img_name}.cow" ]]; then @@ -31,18 +25,28 @@ _mnt_fs() { rm -f "/run/parabolaiso/cowspace/${cow_directory}/${img_name}.cow" fi msg ":: Creating '/run/parabolaiso/cowspace/${cow_directory}/${img_name}.cow' as non-persistent." - dd of="/run/parabolaiso/cowspace/${cow_directory}/${img_name}.cow" count=0 seek=${rw_dev_size} &> /dev/null + truncate -s "${cow_spacesize}" "/run/parabolaiso/cowspace/${cow_directory}/${img_name}.cow" fi rw_dev=$(losetup --find --show "/run/parabolaiso/cowspace/${cow_directory}/${img_name}.cow") echo ${rw_dev} >> /run/parabolaiso/used_block_devices - echo "0 ${ro_dev_size} snapshot ${ro_dev} ${rw_dev} ${cow_persistent} 8" | dmsetup create ${dm_snap_name} + dmsetup create ${dm_snap_name} --table "0 ${ro_dev_size} snapshot ${ro_dev} ${rw_dev} ${cow_persistent} ${cow_chunksize}" - _mnt_dev "/dev/mapper/${dm_snap_name}" "${newroot}${mnt}" "-w" + _mnt_dev "/dev/mapper/${dm_snap_name}" "${newroot}${mnt}" "-w" "defaults" echo $(readlink -f /dev/mapper/${dm_snap_name}) >> /run/parabolaiso/used_block_devices } +# args: source, newroot, mountpoint +_mnt_overlayfs() { + local src="${1}" + local newroot="${2}" + local mnt="${3}" + mkdir -p /run/parabolaiso/cowspace/${cow_directory}/upperdir /run/parabolaiso/cowspace/${cow_directory}/workdir + mount -t overlay -o lowerdir=${src},upperdir=/run/parabolaiso/cowspace/${cow_directory}/upperdir,workdir=/run/parabolaiso/cowspace/${cow_directory}/workdir airootfs "${newroot}${mnt}" +} + + # args: /path/to/image_file, mountpoint _mnt_sfs() { local img="${1}" @@ -61,14 +65,15 @@ _mnt_sfs() { fi sfs_dev=$(losetup --find --show --read-only "${img}") echo ${sfs_dev} >> /run/parabolaiso/used_block_devices - _mnt_dev "${sfs_dev}" "${mnt}" "-r" + _mnt_dev "${sfs_dev}" "${mnt}" "-r" "defaults" } -# args: device, mountpoint, flags +# args: device, mountpoint, flags, opts _mnt_dev() { local dev="${1}" local mnt="${2}" local flg="${3}" + local opts="${4}" mkdir -p "${mnt}" @@ -81,7 +86,7 @@ _mnt_dev() { launch_interactive_shell done - if mount "${flg}" "${dev}" "${mnt}"; then + if mount -o "${opts}" "${flg}" "${dev}" "${mnt}"; then msg ":: Device '${dev}' mounted successfully." else echo "ERROR; Failed to mount '${dev}'" @@ -93,8 +98,17 @@ _mnt_dev() { _verify_checksum() { local _status - cd "/run/parabolaiso/bootmnt/${parabolaisobasedir}" - md5sum -c checksum.${arch}.md5 > /tmp/checksum.${arch}.log 2>&1 + cd "/run/parabolaiso/bootmnt/${parabolaisobasedir}/${arch}" + sha512sum -c airootfs.sha512 > /tmp/checksum.log 2>&1 + _status=$? + cd "${OLDPWD}" + return ${_status} +} + +_verify_signature() { + local _status + cd "/run/parabolaiso/bootmnt/${parabolaisobasedir}/${arch}" + gpg --homedir /gpg --status-fd 1 --verify airootfs.sfs.sig 2>/dev/null | grep -qE '^\[GNUPG:\] GOODSIG' _status=$? cd "${OLDPWD}" return ${_status} @@ -102,22 +116,11 @@ _verify_checksum() { run_hook() { [[ -z "${arch}" ]] && arch="$(uname -m)" - [[ -z "${cowspace_size}" ]] && cowspace_size="75%" [[ -z "${copytoram_size}" ]] && copytoram_size="75%" [[ -z "${parabolaisobasedir}" ]] && parabolaisobasedir="parabola" [[ -z "${dm_snap_prefix}" ]] && dm_snap_prefix="parabola" [[ -z "${parabolaisodevice}" ]] && parabolaisodevice="/dev/disk/by-label/${parabolaisolabel}" - if [[ -z "${cowfile_size}" ]]; then - cowfile_size="100" - else - cowfile_size=${cowfile_size/%} - fi - - if [[ -z "${aitab}" ]]; then - aitab="/run/parabolaiso/bootmnt/${parabolaisobasedir}/aitab" - else - aitab="/run/parabolaiso/bootmnt/${parabolaisobasedir}/${aitab}" - fi + [[ -z "${cow_spacesize}" ]] && cow_spacesize="256M" if [[ -n "${cow_label}" ]]; then cow_device="/dev/disk/by-label/${cow_label}" @@ -128,7 +131,9 @@ run_hook() { cow_persistent="N" fi + [[ -z "${cow_flags}" ]] && cow_flags="defaults" [[ -z "${cow_directory}" ]] && cow_directory="persistent_${parabolaisolabel}/${arch}" + [[ -z "${cow_chunksize}" ]] && cow_chunksize="8" # set mount handler for parabolaiso mount_handler="parabolaiso_mount_handler" @@ -141,32 +146,39 @@ parabolaiso_mount_handler() { local newroot="${1}" if ! mountpoint -q "/run/parabolaiso/bootmnt"; then - _mnt_dev "${parabolaisodevice}" "/run/parabolaiso/bootmnt" "-r" + _mnt_dev "${parabolaisodevice}" "/run/parabolaiso/bootmnt" "-r" "defaults" if [[ "${copytoram}" != "y" ]]; then echo $(readlink -f ${parabolaisodevice}) >> /run/parabolaiso/used_block_devices fi fi - - if [[ ! -f "${aitab}" ]]; then - echo "ERROR: '${aitab}' file does not exist." - echo " Falling back to interactive prompt" - echo " You can try to fix the problem manually, log out when you are finished" - launch_interactive_shell - fi - if [[ "${checksum}" == "y" ]]; then - if [[ -f "/run/parabolaiso/bootmnt/${parabolaisobasedir}/checksum.${arch}.md5" ]]; then + if [[ -f "/run/parabolaiso/bootmnt/${parabolaisobasedir}/${arch}/airootfs.sha512" ]]; then msg -n ":: Self-test requested, please wait..." if _verify_checksum; then msg "done. Checksum is OK, continue booting." else echo "ERROR: one or more files are corrupted" - echo "see /tmp/checksum.${arch}.log for details" + echo "see /tmp/checksum.log for details" launch_interactive_shell fi else - echo "ERROR: checksum=y option specified but checksum.${arch}.md5 not found" + echo "ERROR: checksum=y option specified but ${parabolaisobasedir}/${arch}/airootfs.sha512 not found" + launch_interactive_shell + fi + fi + + if [[ "${verify}" == "y" ]]; then + if [[ -f "/run/parabolaiso/bootmnt/${parabolaisobasedir}/${arch}/airootfs.sfs.sig" ]]; then + msg -n ":: Signature verification requested, please wait..." + if _verify_signature; then + msg "done. Signature is OK, continue booting." + else + echo "ERROR: one or more files are corrupted" + launch_interactive_shell + fi + else + echo "ERROR: verify=y option specified but ${parabolaisobasedir}/${arch}/airootfs.sfs.sig not found" launch_interactive_shell fi fi @@ -178,30 +190,25 @@ parabolaiso_mount_handler() { fi if [[ -n "${cow_device}" ]]; then - _mnt_dev "${cow_device}" "/run/parabolaiso/cowspace" "-r" + _mnt_dev "${cow_device}" "/run/parabolaiso/cowspace" "-r" "${cow_flags}" echo $(readlink -f ${cow_device}) >> /run/parabolaiso/used_block_devices mount -o remount,rw "/run/parabolaiso/cowspace" else - msg ":: Mounting /run/parabolaiso/cowspace (tmpfs) filesystem, size=${cowspace_size}..." + msg ":: Mounting /run/parabolaiso/cowspace (tmpfs) filesystem, size=${cow_spacesize}..." mkdir -p /run/parabolaiso/cowspace - mount -t tmpfs -o "size=${cowspace_size}",mode=0755 cowspace /run/parabolaiso/cowspace + mount -t tmpfs -o "size=${cow_spacesize}",mode=0755 cowspace /run/parabolaiso/cowspace + fi + mkdir -p -m 0700 "/run/parabolaiso/cowspace/${cow_directory}" + + _mnt_sfs "/run/parabolaiso/bootmnt/${parabolaisobasedir}/${arch}/airootfs.sfs" "/run/parabolaiso/sfs/airootfs" + if [[ -f "/run/parabolaiso/sfs/airootfs/airootfs.img" ]]; then + _mnt_dmsnapshot "/run/parabolaiso/sfs/airootfs/airootfs.img" "${newroot}" "/" + else + _mnt_overlayfs "/run/parabolaiso/sfs/airootfs" "${newroot}" "/" fi - mkdir -p "/run/parabolaiso/cowspace/${cow_directory}" - - local aitab_img aitab_mnt aitab_arch aitab_sfs_comp aitab_fs_type aitab_fs_size - while read aitab_img aitab_mnt aitab_arch aitab_sfs_comp aitab_fs_type aitab_fs_size; do - [[ "${aitab_img#\#}" != "${aitab_img}" ]] && continue - [[ "${aitab_arch}" != "any" && "${aitab_arch}" != "${arch}" ]] && continue - if [[ "${aitab_fs_type}" != "none" ]]; then - _mnt_sfs "/run/parabolaiso/bootmnt/${parabolaisobasedir}/${aitab_arch}/${aitab_img}.fs.sfs" "/run/parabolaiso/sfs/${aitab_img}" - _mnt_fs "/run/parabolaiso/sfs/${aitab_img}/${aitab_img}.fs" "${newroot}" "${aitab_mnt}" - else - _mnt_sfs "/run/parabolaiso/bootmnt/${parabolaisobasedir}/${aitab_arch}/${aitab_img}.sfs" "${newroot}${aitab_mnt}" - fi - done < "${aitab}" if [[ "${copytoram}" == "y" ]]; then - umount /run/parabolaiso/bootmnt + umount -d /run/parabolaiso/bootmnt fi } diff --git a/parabolaiso/initcpio/hooks/parabolaiso_loop_mnt b/parabolaiso/initcpio/hooks/parabolaiso_loop_mnt index 772c3b6..1a8783d 100644 --- a/parabolaiso/initcpio/hooks/parabolaiso_loop_mnt +++ b/parabolaiso/initcpio/hooks/parabolaiso_loop_mnt @@ -2,6 +2,7 @@ run_hook () { [[ -n "${img_label}" ]] && img_dev="/dev/disk/by-label/${img_label}" + [[ -z "${img_flags}" ]] && img_flags="defaults" if [[ -n "${img_dev}" && -n "${img_loop}" ]]; then mount_handler="parabolaiso_loop_mount_handler" fi @@ -13,12 +14,14 @@ parabolaiso_loop_mount_handler () { local _dev_loop msg ":: Setup a loop device from ${img_loop} located at device ${img_dev}" - _mnt_dev "${img_dev}" "/run/parabolaiso/img_dev" "-r" + _mnt_dev "${img_dev}" "/run/parabolaiso/img_dev" "-r" "${img_flags}" if [[ "${copytoram}" != "y" ]]; then echo $(readlink -f ${img_dev}) >> /run/parabolaiso/used_block_devices fi - if ! _dev_loop=$(losetup --find --show --read-only "/run/parabolaiso/img_dev/${img_loop}"); then + if _dev_loop=$(losetup --find --show --read-only "/run/parabolaiso/img_dev/${img_loop}"); then + parabolaisodevice="${_dev_loop}" + else echo "ERROR: Setting loopback device for file '/run/parabolaiso/img_dev/${img_loop}'" launch_interactive_shell fi @@ -26,7 +29,7 @@ parabolaiso_loop_mount_handler () { parabolaiso_mount_handler ${newroot} if [[ "${copytoram}" == "y" ]]; then - losetup -d ${_dev_loop} + losetup -d ${_dev_loop} 2>/dev/null umount /run/parabolaiso/img_dev fi } diff --git a/parabolaiso/initcpio/hooks/parabolaiso_pxe_common b/parabolaiso/initcpio/hooks/parabolaiso_pxe_common index d8ac709..7c3b1b5 100644 --- a/parabolaiso/initcpio/hooks/parabolaiso_pxe_common +++ b/parabolaiso/initcpio/hooks/parabolaiso_pxe_common @@ -1,7 +1,8 @@ # vim: set ft=sh: run_hook () { - local i net_mac bootif_mac bootif_dev + # Do *not* declare 'bootif_dev' local! We need it in run_latehook(). + local i net_mac bootif_mac # These variables will be parsed from /tmp/net-*.conf generated by ipconfig local DEVICE local IPV4ADDR IPV4BROADCAST IPV4NETMASK IPV4GATEWAY IPV4DNS0 IPV4DNS1 @@ -21,11 +22,20 @@ run_hook () { break fi done - ip="${ip}::${bootif_dev}" + if [[ "${ip}" == "dhcp" ]]; then + ip=":::::${bootif_dev}:dhcp" + else + ip="${ip}::${bootif_dev}" + fi fi # setup network and save some values - ipconfig "ip=${ip}" + if ! ipconfig -t 20 "ip=${ip}"; then + echo "ERROR; Failed to configure network" + echo " Falling back to interactive prompt" + echo " You can try to fix the problem manually, log out when you are finished" + launch_interactive_shell + fi . /tmp/net-*.conf @@ -33,18 +43,30 @@ run_hook () { # setup DNS resolver if [[ "${IPV4DNS0}" != "0.0.0.0" ]]; then - echo "nameserver ${IPV4DNS0}" > /etc/resolv.conf + echo "# added by parabolaiso_pxe_common hook" > /etc/resolv.conf + echo "nameserver ${IPV4DNS0}" >> /etc/resolv.conf fi if [[ "${IPV4DNS1}" != "0.0.0.0" ]]; then echo "nameserver ${IPV4DNS1}" >> /etc/resolv.conf fi + if [[ -n "${DNSDOMAIN}" ]]; then + echo "search ${DNSDOMAIN}" >> /etc/resolv.conf + echo "domain ${DNSDOMAIN}" >> /etc/resolv.conf + fi fi } run_latehook () { - [[ -z "${copy_resolvconf}" ]] && copy_resolvconf="y" + if [[ -n "${ip}" ]]; then + [[ -z "${copy_resolvconf}" ]] && copy_resolvconf="y" - if [[ "${copy_resolvconf}" != "n" && -f /etc/resolv.conf ]]; then - cp /etc/resolv.conf /new_root/etc/resolv.conf + if [[ "${copytoram}" == "y" ]]; then + if [[ -n "${bootif_dev}" ]]; then + ip addr flush dev "${bootif_dev}" + ip link set "${bootif_dev}" down + fi + elif [[ "${copy_resolvconf}" != "n" && -f /etc/resolv.conf ]]; then + cp /etc/resolv.conf /new_root/etc/resolv.conf + fi fi } diff --git a/parabolaiso/initcpio/hooks/parabolaiso_pxe_http b/parabolaiso/initcpio/hooks/parabolaiso_pxe_http index 97de91f..b3440ed 100644 --- a/parabolaiso/initcpio/hooks/parabolaiso_pxe_http +++ b/parabolaiso/initcpio/hooks/parabolaiso_pxe_http @@ -3,6 +3,10 @@ run_hook() { if [[ -n "${ip}" && -n "${parabolaiso_http_srv}" ]]; then + # booting with http is always copy-to-ram, so set here to make sure + # addresses are flushed and interface is set down + copytoram="y" + parabolaiso_http_srv=$(eval echo ${parabolaiso_http_srv}) [[ -z "${parabolaiso_http_spc}" ]] && parabolaiso_http_spc="75%" @@ -34,24 +38,13 @@ parabolaiso_pxe_http_mount_handler () { mkdir -p "/run/parabolaiso/httpspace" mount -t tmpfs -o size="${parabolaiso_http_spc}",mode=0755 httpspace "/run/parabolaiso/httpspace" - local _aitab_url="${parabolaiso_http_srv}${aitab#/run/parabolaiso/bootmnt/}" - local _aitab_file="/run/parabolaiso/httpspace/${aitab#/run/parabolaiso/bootmnt/}" - - _curl_get "${_aitab_url}" "/" - - local aitab_img aitab_mnt aitab_arch aitab_sfs_comp aitab_fs_type aitab_fs_size - while read aitab_img aitab_mnt aitab_arch aitab_sfs_comp aitab_fs_type aitab_fs_size; do - [[ "${aitab_img#\#}" != "${aitab_img}" ]] && continue - [[ "${aitab_arch}" != "any" && "${aitab_arch}" != "${arch}" ]] && continue - if [[ "${aitab_fs_type}" != "none" ]]; then - _curl_get "${parabolaiso_http_srv}${parabolaisobasedir}/${aitab_arch}/${aitab_img}.fs.sfs" "/${aitab_arch}" - else - _curl_get "${parabolaiso_http_srv}${parabolaisobasedir}/${aitab_arch}/${aitab_img}.sfs" "/${aitab_arch}" - fi - done < "${_aitab_file}" + _curl_get "${parabolaiso_http_srv}${parabolaisobasedir}/${arch}/airootfs.sfs" "/${arch}" if [[ "${checksum}" == "y" ]]; then - _curl_get "${parabolaiso_http_srv}${parabolaisobasedir}/checksum.${arch}.md5" "/" + _curl_get "${parabolaiso_http_srv}${parabolaisobasedir}/${arch}/airootfs.sha512" "/${arch}" + fi + if [[ "${verify}" == "y" ]]; then + _curl_get "${parabolaiso_http_srv}${parabolaisobasedir}/${arch}/airootfs.sfs.sig" "/${arch}" fi mkdir -p "/run/parabolaiso/bootmnt" diff --git a/parabolaiso/initcpio/hooks/parabolaiso_pxe_nbd b/parabolaiso/initcpio/hooks/parabolaiso_pxe_nbd index 1bb8cbb..1991f80 100644 --- a/parabolaiso/initcpio/hooks/parabolaiso_pxe_nbd +++ b/parabolaiso/initcpio/hooks/parabolaiso_pxe_nbd @@ -1,5 +1,12 @@ # vim: set ft=sh: +run_earlyhook() { + if [[ -n "${ip}" && -n "${parabolaiso_nbd_srv}" ]]; then + # Module autoloading like with loop devices does not work, doing manually... + modprobe nbd 2> /dev/null + fi +} + run_hook() { if [[ -n "${ip}" && -n "${parabolaiso_nbd_srv}" ]]; then @@ -13,9 +20,6 @@ run_hook() { parabolaiso_pxe_nbd_mount_handler () { newroot="${1}" - # Module autoloading like with loop devices does not work, doing manually... - modprobe nbd 2> /dev/null - msg ":: Waiting for boot device..." while ! poll_device /dev/nbd0 30; do echo "ERROR: boot device didn't show up after 30 seconds..." @@ -25,16 +29,19 @@ parabolaiso_pxe_nbd_mount_handler () { done msg ":: Setup NBD from ${parabolaiso_nbd_srv} at /dev/nbd0" - nbd-client ${parabolaiso_nbd_srv} -N ${parabolaiso_nbd_name} /dev/nbd0 - if [[ "${copytoram}" != "n" ]]; then + nbd-client ${parabolaiso_nbd_srv} -N ${parabolaiso_nbd_name} /dev/nbd0 copytoram="y" + else + nbd-client ${parabolaiso_nbd_srv} -N ${parabolaiso_nbd_name} -systemd-mark -persist /dev/nbd0 fi parabolaisodevice=/dev/nbd0 parabolaiso_mount_handler ${newroot} - msg ":: Disconnect NBD from ${parabolaiso_nbd_srv} at /dev/nbd0" - nbd-client -d /dev/nbd0 + if [[ "${copytoram}" == "y" ]]; then + msg ":: Disconnect NBD from ${parabolaiso_nbd_srv} at /dev/nbd0" + nbd-client -d /dev/nbd0 + fi } diff --git a/parabolaiso/initcpio/install/parabolaiso b/parabolaiso/initcpio/install/parabolaiso index 8893667..30728ef 100644 --- a/parabolaiso/initcpio/install/parabolaiso +++ b/parabolaiso/initcpio/install/parabolaiso @@ -4,6 +4,7 @@ build() { add_module "cdrom" add_module "loop" add_module "dm-snapshot" + add_module "overlay" add_runscript @@ -12,11 +13,18 @@ build() { add_binary dmsetup add_binary losetup add_binary mountpoint + add_binary truncate + add_binary gpg + add_binary grep add_file /usr/lib/udev/rules.d/60-cdrom_id.rules add_file /usr/lib/udev/rules.d/10-dm.rules add_file /usr/lib/udev/rules.d/95-dm-notify.rules add_file /usr/lib/initcpio/udev/11-dm-initramfs.rules /usr/lib/udev/rules.d/11-dm-initramfs.rules + if [[ $ARCHISO_GNUPG_FD ]]; then + mkdir -p "$BUILDROOT$dest"/gpg + gpg --homedir "$BUILDROOT$dest"/gpg --import <&$ARCHISO_GNUPG_FD + fi } # vim: set ft=sh ts=4 sw=4 et: diff --git a/parabolaiso/initcpio/install/parabolaiso_pxe_http b/parabolaiso/initcpio/install/parabolaiso_pxe_http index 4e02f98..9ce9726 100644 --- a/parabolaiso/initcpio/install/parabolaiso_pxe_http +++ b/parabolaiso/initcpio/install/parabolaiso_pxe_http @@ -4,6 +4,8 @@ build() { add_runscript add_binary curl + + add_file $(readlink -f /etc/ssl/certs/ca-certificates.crt) /etc/ssl/certs/ca-certificates.crt } help() { diff --git a/parabolaiso/mkparabolaiso b/parabolaiso/mkparabolaiso index 93e6995..d55668d 100755 --- a/parabolaiso/mkparabolaiso +++ b/parabolaiso/mkparabolaiso @@ -11,11 +11,15 @@ run_cmd="" quiet="y" pacman_conf="/etc/pacman.conf" export iso_label="PARA_$(date +%Y%m)" -iso_publisher="Parabola GNU/Linux-libre " +iso_publisher="Parabola GNU/Linux-libre " iso_application="Parabola GNU/Linux-libre Live/Rescue CD" install_dir="parabola" work_dir="work" out_dir="out" +sfs_mode="sfs" +sfs_comp="xz" +gpg_key= +init=systemd # Show an INFO message # $1: message string @@ -38,101 +42,35 @@ _msg_error() { fi } -# Show space usage similar to df, but better formatted. -# $1: mount-point or mounted device. -_show_space_usage () { - local _where="${1}" - local _fs _total _used _avail _pct_u=0 _mnt - read _fs _total _used _avail _pct_u _mnt < <(df -m "${_where}" | tail -1) &> /dev/null - _msg_info "Total: ${_total} MiB (100%) | Used: ${_used} MiB (${_pct_u}) | Avail: ${_avail} MiB ($((100 - ${_pct_u%\%}))%)" -} - -_chroot_mount () { - mount -t devtmpfs dev "${work_dir}/root-image/dev" - mount -t devpts devpts "${work_dir}/root-image/dev/pts" - mount -t tmpfs devshm "${work_dir}/root-image/dev/shm" - mount -t proc proc "${work_dir}/root-image/proc" - mount -t tmpfs run "${work_dir}/root-image/run" - mount -t sysfs sys "${work_dir}/root-image/sys" - mount -t tmpfs tmp "${work_dir}/root-image/tmp" - - trap '_chroot_umount' EXIT HUP INT TERM -} - -_chroot_umount () { - umount "${work_dir}/root-image/tmp" - umount "${work_dir}/root-image/sys" - umount "${work_dir}/root-image/run" - umount "${work_dir}/root-image/proc" - umount "${work_dir}/root-image/dev/shm" - umount "${work_dir}/root-image/dev/pts" - umount "${work_dir}/root-image/dev" - - trap - EXIT HUP INT TERM -} - _chroot_init() { - if [[ ! -d ${work_dir}/root-image/var/cache/pacman ]]; then - mkdir -p ${work_dir}/root-image/{dev,proc,run,sys,tmp,var/lib/pacman} - _pacman "base" - _pacman "syslinux" - fi + mkdir -p ${work_dir}/airootfs + case $init in + openrc) _pacman "base-openrc openrc-init syslinux" ;; + runit) _pacman "base-openrc runit syslinux" ;; + systemd) _pacman "base syslinux" ;; + esac } _chroot_run() { - _chroot_mount - eval chroot ${work_dir}/root-image "${run_cmd}" - _chroot_umount + eval arch-chroot ${work_dir}/airootfs "${run_cmd}" } -# Mount a filesystem (trap signals in case of error for unmounting it -# $1: source image -# $2: mount-point -_mount_fs() { - local _src="${1}" - local _dst="${2}" - trap "_umount_fs ${_src}" EXIT HUP INT TERM - mkdir -p "${_dst}" - _msg_info "Mounting '${_src}' on '${_dst}'" - mount "${_src}" "${_dst}" - _show_space_usage "${_dst}" +_mount_airootfs() { + trap "_umount_airootfs" EXIT HUP INT TERM + mkdir -p "${work_dir}/mnt/airootfs" + _msg_info "Mounting '${work_dir}/airootfs.img' on '${work_dir}/mnt/airootfs'" + mount "${work_dir}/airootfs.img" "${work_dir}/mnt/airootfs" + _msg_info "Done!" } -# Unmount a filesystem (and untrap signals) -# $1: mount-point or device/image -_umount_fs() { - local _dst="${1}" - _show_space_usage "${_dst}" - _msg_info "Unmounting '${_dst}'" - umount "${_dst}" - rmdir "${_dst}" +_umount_airootfs() { + _msg_info "Unmounting '${work_dir}/mnt/airootfs'" + umount -d "${work_dir}/mnt/airootfs" + _msg_info "Done!" + rmdir "${work_dir}/mnt/airootfs" trap - EXIT HUP INT TERM } -# Compare if a file/directory (source) is newer than other file (target) -# $1: source file/directory -# $2: target file -# return: 0 if target does not exists or if target is older than source. -# 1 if target is newer than source -_is_directory_changed() { - local _src="${1}" - local _dst="${2}" - - if [ -e "${_dst}" ]; then - if [[ $(find ${_src} -newer ${_dst} | wc -l) -gt 0 ]]; then - _msg_info "Target '${_dst}' is older than '${_src}', updating." - rm -f "${_dst}" - return 0 - else - _msg_info "Target '${_dst}' is up to date with '${_src}', skipping." - return 1 - fi - else - _msg_info "Target '${_dst}' does not exist, making it from '${_src}'" - return 0 - fi -} - # Show help usage, with an exit status. # $1: exit status number. _usage () @@ -140,7 +78,7 @@ _usage () echo "usage ${app_name} [options] command " echo " general options:" echo " -p PACKAGE(S) Package(s) to install, can be used multiple times" - echo " -r Run inside root-image" + echo " -r Run inside airootfs" echo " -C Config file for pacman." echo " Default: '${pacman_conf}'" echo " -L