aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xcreate_arm_image.sh12
-rw-r--r--platforms/rpi3+64/firmware-stable.zipbin21999616 -> 0 bytes
-rw-r--r--platforms/rpi3+64/mageia4arm.cfg46
-rw-r--r--platforms/rpi3+64/second_stage_install.sh24
-rwxr-xr-xplatforms/rpi3+64/specialFunctions.sh50
-rw-r--r--platforms/rpi3+64/stable.zipbin2945024 -> 0 bytes
6 files changed, 93 insertions, 39 deletions
diff --git a/create_arm_image.sh b/create_arm_image.sh
index 5dfbcfb..7fdf25b 100755
--- a/create_arm_image.sh
+++ b/create_arm_image.sh
@@ -274,27 +274,27 @@ function preparechroot()
info "Preparation for setting root and user account"
if [ -n "${ROOT_PWD}" ]; then #If root password defined, it will be setted at the end of the chroot of the second_stage_install.sh script
- echo -e " /bin/passwd << EOF\n${ROOT_PWD}\n${ROOT_PWD}\nEOF\n" >>"${BUILD_PATH}/second_stage_install.sh"
+ echo -e "/bin/passwd << EOF\n${ROOT_PWD}\n${ROOT_PWD}\nEOF\n" >>"${BUILD_PATH}/second_stage_install.sh"
else
info "No root password... One password will be set at the first login."
- echo -e " /bin/passwd -d root\n /bin/passwd -e root\n" >>"${BUILD_PATH}/second_stage_install.sh"
+ echo -e "/bin/passwd -d root\n/bin/passwd -e root\n" >>"${BUILD_PATH}/second_stage_install.sh"
fi
if [ -n "${ID_USER}" ]; then #If user ID defined, it will be setted at the end of the chroot of the second_stage_install.sh script
echo -e " /sbin/useradd ${ID_USER}\n" >>"${BUILD_PATH}/second_stage_install.sh"
if [ -n "${PASSWORD}" ]; then
- echo -e " /bin/passwd ${ID_USER} << EOF\n${PASSWORD}\n${PASSWORD}\nEOF" >>"${BUILD_PATH}/second_stage_install.sh"
+ echo -e "/bin/passwd ${ID_USER} << EOF\n${PASSWORD}\n${PASSWORD}\nEOF" >>"${BUILD_PATH}/second_stage_install.sh"
else
- echo -e " /bin/passwd -d ${ID_USER}\n" >>"${BUILD_PATH}/second_stage_install.sh"
+ echo -e "/bin/passwd -d ${ID_USER}\n" >>"${BUILD_PATH}/second_stage_install.sh"
fi
else
info "No user defined, no user account created."
fi
+# BUG: This line break the default .bashrc file from the package "rootfiles" and the values as PATH (and /usr/sbin programs).
# info "Copying skel in root directory"
# /bin/rsync -rlptH "${BUILD_PATH}/etc/skel/" "${BUILD_PATH}/root/"
-#This line break the default .bashrc file from the package "rootfiles" and the values as PATH (and /usr/sbin programs).
postPrepareChroot
if [ ${?} -ne 0 ]; then
@@ -907,7 +907,7 @@ IMAGE="Mageia-${MAGEIA_VERSION}-${TARGET}${TARGET_VERSION}.img"
BOOT="/mnt/boot"
ROOT="/mnt/root"
BUILD_PATH="${INSTALL_PATH}/build-${TARGET}${TARGET_VERSION}"
-ARM_VERSION="armv7hl"
+# ARM_VERSION="armv7hl"
# Assigne a script for creating a particular target image (rpi, odroid, ...)
if [ -e "${CONFIG_PATH}/specialFunctions.sh" ]; then
diff --git a/platforms/rpi3+64/firmware-stable.zip b/platforms/rpi3+64/firmware-stable.zip
deleted file mode 100644
index b8e29c3..0000000
--- a/platforms/rpi3+64/firmware-stable.zip
+++ /dev/null
Binary files differ
diff --git a/platforms/rpi3+64/mageia4arm.cfg b/platforms/rpi3+64/mageia4arm.cfg
index f852972..7efe3b8 100644
--- a/platforms/rpi3+64/mageia4arm.cfg
+++ b/platforms/rpi3+64/mageia4arm.cfg
@@ -17,6 +17,7 @@
MAGEIA_VERSION="7"
ARM_VERSION="aarch64"
+# ARM_VERSION="armv7hl"
#target plateform (xu3-4 or rpi)
TARGET="rpi"
@@ -38,11 +39,11 @@ BUILD_PATH="${INSTALL_PATH}/build"
IMAGE="Mageia-${MAGEIA_VERSION}-${TARGET}.img"
#Default user
-ID_USER="pi"
-PASSWORD="raspberry"
+# ID_USER="pi"
+# PASSWORD="raspberry"
#root password
-ROOT_PWD="piroot"
+# ROOT_PWD="piroot"
#Hostname
HOSTNAME="${TARGET}"
@@ -61,5 +62,40 @@ BOOT_ARGS='dwc_otg.lpm_enable=0 console=ttyS0,115200 kgdboc=ttyS0,115200 console
#Path where the raspberry pi firmware is/will be installed
FIRMWARE_PATH="$INSTALL_PATH"
FIRMWARE_DIR="firmware-stable"
-FIRMWARE_DOWNLOAD_URL="https://github.com/raspberrypi/firmware/archive/stable.zip"
-
+INFORMATION="
+https://elinux.org/RPi_Software
+https://www.raspberrypi.org/documentation/configuration/config-txt/boot.md
+
+https://github.com/raspberrypi/firmware/blob/master/boot/bootcode.bin
+https://github.com/raspberrypi/firmware/blob/master/boot/bcm2710-rpi-3-b-plus.dtb
+
+https://github.com/raspberrypi/firmware/blob/master/boot/fixup.dat
+https://github.com/raspberrypi/firmware/blob/master/boot/start.elf
+https://github.com/raspberrypi/firmware/blob/master/boot/fixup4.dat #Rpi4
+https://github.com/raspberrypi/firmware/blob/master/boot/start4.elf #Rpi4
+
+#Debug (implicitly used with start_debug=1)
+https://github.com/raspberrypi/firmware/blob/master/boot/fixup_db.dat
+https://github.com/raspberrypi/firmware/blob/master/boot/start_db.elf
+https://github.com/raspberrypi/firmware/blob/master/boot/start4db.elf #Rpi4
+https://github.com/raspberrypi/firmware/blob/master/boot/fixup4db.dat #Rpi4
+
+#Low GPU Memory (=16MB)
+https://github.com/raspberrypi/firmware/blob/master/boot/fixup_cd.dat
+https://github.com/raspberrypi/firmware/blob/master/boot/start_cd.elf
+https://github.com/raspberrypi/firmware/blob/master/boot/start4cd.elf #Rpi4
+https://github.com/raspberrypi/firmware/blob/master/boot/fixup4cd.dat #Rpi4
+
+#Testing versions (eXtra features) (like camera module) (implicitly used with start_x=1 ) :
+https://github.com/raspberrypi/firmware/blob/master/boot/fixup_x.dat
+https://github.com/raspberrypi/firmware/blob/master/boot/start_x.elf
+https://github.com/raspberrypi/firmware/blob/master/boot/start4x.elf #Rpi4
+https://github.com/raspberrypi/firmware/blob/master/boot/fixup4x.dat #Rpi4
+"
+FIRMWARE_DOWNLOAD_URL="https://github.com/raspberrypi/firmware/raw/master/boot/bootcode.bin
+https://github.com/raspberrypi/firmware/raw/master/boot/bcm2710-rpi-3-b-plus.dtb
+https://github.com/raspberrypi/firmware/raw/master/boot/fixup.dat
+https://github.com/raspberrypi/firmware/raw/master/boot/start.elf
+https://github.com/raspberrypi/firmware/raw/master/boot/fixup_x.dat
+https://github.com/raspberrypi/firmware/raw/master/boot/start_x.elf
+"
diff --git a/platforms/rpi3+64/second_stage_install.sh b/platforms/rpi3+64/second_stage_install.sh
index 0eea945..aee1d53 100644
--- a/platforms/rpi3+64/second_stage_install.sh
+++ b/platforms/rpi3+64/second_stage_install.sh
@@ -1,6 +1,7 @@
#!/bin/bash
# Copyright (C) 2017-2018 Daniel Tartavel-jeannot <contact@librepc.com>
+# Copyright (C) 2019-2020 Jean-Baptiste Biernacki <j.biernacki@free.fr>
#
# This program is free software; you can redistribute it and/or modify
@@ -16,6 +17,8 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+export ARCH=arm
+
/usr/bin/chown :shadow /etc/shadow /etc/gshadow /etc/login.defs /etc/pam.d/chage-chfn-chsh /etc/pam.d/chpasswd-newusers /etc/pam.d/system-auth /etc/pam.d/user-group-mod /bin/passwd /bin/chage
/usr/bin/chown :systemd-journal -R /var/log/journal
@@ -33,11 +36,20 @@
/usr/bin/chown :bin /sbin/traceroute
/usr/bin/chown polkitd /etc/polkit-1/rules.d
-KV=`basename /boot/vmlinuz-*`
-KV=${KV#vmlinuz-}
-dracut --kver $KV
-rm -f $0
-cp /boot/vmlinuz-* /boot/vmlinuz
-cp /boot/initrd-* /boot/initrd
+# KV=$(basename /boot/vmlinuz-*)
+# KV=${KV#vmlinuz-}
+# dracut --kver $KV
+
+VMLINUZ=$(ls --sort=time -1 /boot/vmlinuz-[[:digit:]]* | head -n 1)
+# Normally, /boot/vmlinuz is generated with the /sbin/installkernel script, but it is not generated with chroot.
+rm -f /boot/vmlinuz
+ln -r -s "${VMLINUZ}" /boot/vmlinuz #For extlinux.conf
+
+rm -f ${0}
+
+K_INST_VERSION=$(rpm -q kernel-desktop-latest | sed -e 's/kernel-\([[:alnum:]]*\)-latest-\([\.[:digit:]]*\)-\([\.[:alnum:]]*\).*$/\2-\1-\3/')
+dracut --no-compress --force --no-hostonly --local --no-early-microcode --confdir "/etc/dracut.conf.d" --kmoddir="/lib/modules/${K_INST_VERSION}" --xz --printsize --kernel-image /boot/vmlinuz --fstab /boot/initrd-${K_INST_VERSION}.img ${K_INST_VERSION}
+ln -r -s /boot/initrd-${K_INST_VERSION}.img /boot/initrd.img
+echo "Dracut done."
alternatives --set soundprofile /etc/sound/profiles/alsa
diff --git a/platforms/rpi3+64/specialFunctions.sh b/platforms/rpi3+64/specialFunctions.sh
index c239b89..a62c794 100755
--- a/platforms/rpi3+64/specialFunctions.sh
+++ b/platforms/rpi3+64/specialFunctions.sh
@@ -40,29 +40,35 @@ FDISK_SCRIPT="${NEW_PART}\n${PRIMARY}\n${PART_BOOT}\n${PART_BOOT_FIRST_SECTOR}\n
function preImgCreation()
{
+
+ title "Download binary blob for Rpi"
+ for i in ${FIRMWARE_DOWNLOAD_URL}; do
+ info "Download ${i}"
+ curl -L -O -J ${i} -s
+ done
+
+# if ! [ -d "${FIRMWARE_PATH}/${FIRMWARE_DIR}" ]; then # the firmware directory does not exists
+# echo "$(ls *.zip| wc -l)"
+# if [ "$(ls *.zip| wc -l)" -eq 0 ]; then # the firmware archive does not exists
+# warning "The raspberry pi firmware need to be downloaded"
+# info "Downloading FIRMWARE_FILENAME"
+# wget ${FIRMWARE_DOWNLOAD_URL}
+# # curl -L -O -J ${FIRMWARE_DOWNLOAD_URL}
+# # curl -L ${FIRMWARE_DOWNLOAD_URL} -o firmware-stable.zip
+# if [ ${?} -ne 0 ]; then
+# error "line ${LINENO} error downloading raspberry firmware at ${FIRMWARE_DOWNLOAD_URL}: exiting"
+# exit 1
+# fi
+# fi
+# info "extracting firmware"
+# unzip -d "${FIRMWARE_PATH}" *.zip
+# if [ ${?} -ne 0 ]; then
+# error "line ${LINENO} error unzipping ${FIRMWARE_PATH} : exiting"
+# exit 1
+# fi
+# fi
+
title "Creating Pi image"
-
- if ! [ -d "${FIRMWARE_PATH}/${FIRMWARE_DIR}" ]; then # the firmware directory does not exists
- echo "$(ls *.zip| wc -l)"
- if [ "$(ls *.zip| wc -l)" -eq 0 ]; then # the firmware archive does not exists
- warning "The raspberry pi firmware need to be downloaded"
- info "Downloading FIRMWARE_FILENAME"
- wget ${FIRMWARE_DOWNLOAD_URL}
-# curl -L -O -J ${FIRMWARE_DOWNLOAD_URL}
-# curl -L ${FIRMWARE_DOWNLOAD_URL} -o firmware-stable.zip
- if [ ${?} -ne 0 ]; then
- error "line ${LINENO} error downloading raspberry firmware at ${FIRMWARE_DOWNLOAD_URL}: exiting"
- exit 1
- fi
- fi
- info "extracting firmware"
- unzip -d "${FIRMWARE_PATH}" *.zip
- if [ ${?} -ne 0 ]; then
- error "line ${LINENO} error unzipping ${FIRMWARE_PATH} : exiting"
- exit 1
- fi
- fi
-
title "Making raspberry pi image"
return 0
}
diff --git a/platforms/rpi3+64/stable.zip b/platforms/rpi3+64/stable.zip
deleted file mode 100644
index fd6dc63..0000000
--- a/platforms/rpi3+64/stable.zip
+++ /dev/null
Binary files differ