aboutsummaryrefslogtreecommitdiffstats
path: root/platforms/rpi1
diff options
context:
space:
mode:
Diffstat (limited to 'platforms/rpi1')
-rw-r--r--platforms/rpi1/mageia4arm.cfg~57
-rwxr-xr-xplatforms/rpi1/specialFunctions.sh130
2 files changed, 130 insertions, 57 deletions
diff --git a/platforms/rpi1/mageia4arm.cfg~ b/platforms/rpi1/mageia4arm.cfg~
deleted file mode 100644
index e093329..0000000
--- a/platforms/rpi1/mageia4arm.cfg~
+++ /dev/null
@@ -1,57 +0,0 @@
-
-# Copyright (C) 2017-2018 Daniel Tartavel-jeannot <contact@librepc.com>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-
-MAGEIA_VERSION="7"
-ARM_VERSION="armv7hl"
-
-#target plateform (xu3-4 or rpi)
-TARGET="rpi"
-TARGET_VERSION="3"
-
-# URL of the Mageia mirror used to install ( see mirrors.mageia.org )
-MIRROR="http://ftp.free.fr/mirrors/mageia.org/distrib/$MAGEIA_VERSION/$ARM_VERSION"
-#MIRROR="/mnt/STOCK/mageia/distrib/$MAGEIA_VERSION/$ARM_VERSION"
-# image will be created here
-
-INSTALL_PATH="/mnt/perso/raspi-test"
-
-# Build directory will be created here
-BUILD_PATH="$INSTALL_PATH/build"
-
-#name of the image
-IMAGE="Mageia-${MAGEIA_VERSION}-$TARGET.img"
-
-#Mount point of image's partitions
-BOOT="/mnt/boot"
-ROOT="/mnt/root"
-
-#Default user
-ID_USER="pi"
-PASSWORD="raspberry"
-
-#root password
-ROOT_PWD="piroot"
-
-#Hostname
-HOSTNAME="$TARGET.$ID_USER"
-
-#Filesystem of boot partitions (default ext4 raspberry pi need vfat)
-BOOTFS="vfat"
-
-#Path where the raspberry pi firmware is/will be installed
-FIRMWARE_PATH="$INSTALL_PATH"
-FIRMWARE_DIR="firmware-stable"
diff --git a/platforms/rpi1/specialFunctions.sh b/platforms/rpi1/specialFunctions.sh
new file mode 100755
index 0000000..71d75b0
--- /dev/null
+++ b/platforms/rpi1/specialFunctions.sh
@@ -0,0 +1,130 @@
+#!/bin/bash
+
+#RPI partitionning :
+DEFAULT=""
+NEW_PART=n
+PRIMARY=p
+CHANGE_TYPE=t
+CHANGE_BOOTFLAG=a
+APPLY=w
+
+PART_BOOT=1
+PART_BOOT_FIRST_SECTOR=${DEFAULT}
+PART_BOOT_SIZE="+128M"
+
+PART_ROOT=2
+PART_ROOT_FIRST_SECTOR=${DEFAULT}
+PART_ROOT_SIZE=${DEFAULT}
+
+TYPE_FAT32LBA=c
+
+FDISK_SCRIPT="${NEW_PART}\n${PRIMARY}\n${PART_BOOT}\n${PART_BOOT_FIRST_SECTOR}\n${PART_BOOT_SIZE}\n${CHANGE_TYPE}\n${TYPE_FAT32LBA}\n${NEW_PART}\n${PRIMARY}\n${PART_ROOT}\n${PART_ROOT_FIRST_SECTOR}\n${PART_ROOT_SIZE}\n${CHANGE_BOOTFLAG}\n${PART_BOOT}\n${CHANGE_BOOTFLAG}\n${PART_ROOT}\n${APPLY}\n"
+
+
+function preImgCreation()
+{
+ 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}
+ 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
+}
+
+
+function postPrepareChroot()
+{
+ #Nothing to do. (Except replacing default function.)
+ return 0
+}
+
+function bunrningBootloader()
+{
+ #Nothing to do. (Except replacing default function.)
+ return 0
+}
+
+
+function copyingCustomSystem()
+{
+ info "copying 10-vchiq-permissions.rules"
+ cp --preserve=mode "${CONFIG_PATH}/10-vchiq-permissions.rules" "${BUILD_PATH}/etc/udev/rules.d/"
+ info "Making /etc/modules"
+ echo -e "vchiq\nsnd_bcm2835\nvc4\nbrcmfmac" >> "${BUILD_PATH}"/etc/modules
+
+ ARM_BOOT="${BUILD_PATH}/mnt/arm_boot"
+ if ! [ -d "${ARM_BOOT}" ]; then
+ mkdir -p "${ARM_BOOT}"
+ fi
+ info "copying modprobe.conf"
+ /usr/bin/cp -v --preserve=mode "${CONFIG_PATH}/modprobe.conf" "${BUILD_PATH}/etc/"
+ chown root:root "${BUILD_PATH}/etc/modprobe.conf"
+
+ info "copying firmware, overlays in rpi boot partition"
+# cp -v --preserve=mode "${BUILD_PATH}/usr/lib/linux-"* "${BOOT}/dtb"
+ cp -v --preserve=mode "${FIRMWARE_PATH}/${FIRMWARE_DIR}/boot/start"* "${ARM_BOOT}/"
+ cp -v --preserve=mode "${FIRMWARE_PATH}/${FIRMWARE_DIR}/boot/fixup"* "${ARM_BOOT}/"
+ cp -v --preserve=mode "${FIRMWARE_PATH}/${FIRMWARE_DIR}/boot/bootcode.bin"* "${ARM_BOOT}/"
+ cp -vR --preserve=mode "${FIRMWARE_PATH}/${FIRMWARE_DIR}/boot/overlays" "${ARM_BOOT}/"
+
+ info "copying u-boot binary to ${ARM_BOOT}"
+ case ${TARGET_VERSION} in
+ "0")
+ info "copying u-boot for ${TARGET} 0"
+ cp --preserve=mode "${BUILD_PATH}/usr/lib/u-boot/rpi_0_w/u-boot.bin" "${ARM_BOOT}/kernel.img"
+ ;;
+ "1")
+ info "copying u-boot for ${TARGET} 1"
+ cp --preserve=mode "${BUILD_PATH}/usr/lib/u-boot/rpi/u-boot.bin" "${ARM_BOOT}/kernel.img"
+ ;;
+ "2")
+ info "copying u-boot for ${TARGET} 2"
+ cp --preserve=mode "${BUILD_PATH}/usr/lib/u-boot/rpi_2/u-boot.bin" "${ARM_BOOT}/kernel.img"
+ ;;
+ "3_32")
+ info "copying u-boot for ${TARGET} 3 32 bits"
+ cp --preserve=mode "${BUILD_PATH}/usr/lib/u-boot/rpi_3_32b/u-boot.bin" "${ARM_BOOT}/kernel.img"
+ ;;
+ "3+")
+ info "copying u-boot for ${TARGET} 3b+ 32 bits"
+ cp --preserve=mode "${BUILD_PATH}/usr/lib/u-boot/rpi_3_32b/u-boot.bin" "${ARM_BOOT}/kernel.img"
+ ;;
+ esac
+
+# info "copying raspberry optionals files in opt"
+# /bin/rsync -rlptDH "${FIRMWARE_PATH}/${FIRMWARE_DIR}/opt/" "${BUILD_PATH}/opt/"
+
+ info "copying wifi firmware file missing in kernel-firmware-nonfree"
+ if ! [ -d "${ROOT}/usr/lib/firmware/brcm/" ]; then
+ /bin/mkdir -p "${ROOT}/usr/lib/firmware/brcm/"
+ fi
+ if ! [ -f "${ROOT}/usr/lib/firmware/brcm/brcmfmac434"* ]; then
+ /bin/cp --preserve=mode "${CONFIG_PATH}/brcmfmac434"* "${ROOT}/usr/lib/firmware/brcm/"
+ if [ ${?} -ne 0 ]; then
+ error "line ${LINENO} error copying wifi firmware in ${ROOTP}/usr/lib/firmware/brcm/ : exiting"
+ exit ${ERR_1}
+ fi
+ fi
+
+ info "copying Mageia image to root partition"
+ /bin/rsync -rlptogDH --exclude "${ARM_BOOT}/" --exclude "qemu-arm-static*" "${BUILD_PATH}/" "${ROOT}/"
+ /bin/rsync -rlptogDH "${ARM_BOOT}/" "${BOOT}/"
+ return 0
+}