mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-08 22:45:43 +00:00
Removed uboot source, native PKGBUILDs
This commit is contained in:
parent
58360ce0b6
commit
35e1818ae8
6 changed files with 10 additions and 417 deletions
8
README
8
README
|
@ -1,13 +1,11 @@
|
|||
This git repository hosts PKGBUILDs and information
|
||||
on porting Arch Linux (http://archlinux.org) to the
|
||||
ARM platform, with an emphasis on the Marvell Kirkwood
|
||||
and Sheeva platforms (armv5te or higher).
|
||||
and Sheeva platforms (armv5te or higher). However, it runs
|
||||
on anything armv5tel or higher.
|
||||
|
||||
The packages are meant to be built on Plugbox Linux, found at
|
||||
http://plugapps.com/
|
||||
|
||||
Also included is the Pogoplug/Dockstar "Advanced" u-Boot
|
||||
bootloader with USB drive boot support.
|
||||
http://plugboxlinux.org
|
||||
|
||||
It's not called Arch-[something] due to copyright, but it's
|
||||
basically Arch Linux for ARM.
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Plugbox Linux Distribution Image Builder
|
||||
# Version 0.5
|
||||
#
|
||||
# Licensed under the GPLv2.
|
||||
#
|
||||
|
@ -20,7 +19,7 @@
|
|||
# ==== Variables to set ====
|
||||
PLUGSCRIPTDIR=/media/Plugbox/builder/plugapps/scripts/plugscripts
|
||||
INSTALLEDPKGS="base kernel26-withlinux file openssh openssl heimdal"
|
||||
RELEASEVER=1.1
|
||||
RELEASEVER=2010.11
|
||||
MAKETARGZ=1
|
||||
MAKEUBIIMG=1
|
||||
# ==== The Process ====
|
||||
|
@ -29,7 +28,7 @@ echo -e "\033[1mInstalling packages...\033[0m"
|
|||
mkdir -p $1/var/lib/pacman
|
||||
pacman -Syy --noconfirm --noprogressbar -r $1 $INSTALLEDPKGS
|
||||
|
||||
echo -e "\033[1mSetting the password to 'root' and cleaning up:\033[0m"
|
||||
echo -e "\033[1mSetting the password to 'root' and cleaning up:\033[0m"
|
||||
echo -e "root\nroot\n" | chroot $1/ /usr/bin/passwd root
|
||||
rm $1/dev/{console,null,zero}
|
||||
chroot $1/ mknod -m 600 /dev/console c 5 1
|
||||
|
|
|
@ -7,26 +7,27 @@
|
|||
ABSDIR=/build/abs
|
||||
REPODIR=/build/packages
|
||||
|
||||
cd $ABSDIR/$1
|
||||
|
||||
if [[ ! $* ]]; then
|
||||
echo "usage: $0 <repository>"
|
||||
exit 1
|
||||
fi
|
||||
echo "$1"
|
||||
echo ""
|
||||
|
||||
echo "$1"
|
||||
cd $REPODIR/$1
|
||||
|
||||
for i in `find . -maxdepth 1 -mindepth 1 -type d|sort`; do
|
||||
PKGNAME=`grep ^pkgname= $i/PKGBUILD | sed -e 's/pkgname=//'`
|
||||
PKGVER=`grep ^pkgver= $i/PKGBUILD | sed -e 's/pkgver=//'`
|
||||
PKGREL=`grep ^pkgrel= $i/PKGBUILD | sed -e 's/pkgrel=/-/'`
|
||||
|
||||
if [[ -e $ABSDIR/$1/$i ]]; then
|
||||
ABSVER=`grep ^pkgver= $ABSDIR/$1/$i/PKGBUILD | sed -e 's/pkgver=//'`
|
||||
ABSREL=`grep ^pkgrel= $ABSDIR/$1/$i/PKGBUILD | sed -e 's/pkgrel=/-/'`
|
||||
|
||||
if [[ "$ABSVER$ABSREL" != "$PKGVER$PKGREL" ]]; then
|
||||
echo "$PKGNAME $PKGVER$PKGREL -> $ABSVER$ABSREL"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
done
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
Subproject commit 86cf2ae492db316e73512a1786d57ece9b3a7624
|
|
@ -1 +0,0 @@
|
|||
This is JeffD's new uBoot and installation scripts.
|
|
@ -1,403 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
#
|
||||
# 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/>.
|
||||
#
|
||||
# Dockstar/Pogoplug u-Boot Installer v0.3
|
||||
# by Jeff Doozan
|
||||
#
|
||||
# Based on Pogoplug u-Booter Installer v0.2
|
||||
# by IanJB, original method and inspiration from aholler:
|
||||
# http://ahsoftware.de/dockstar/
|
||||
#
|
||||
# This is a script to write a newer u-boot to Pogoplug/DockStar mtd3
|
||||
# and configure the u-boot on mtd0 to pass control to our new u-boot
|
||||
|
||||
|
||||
UBOOT_URL=http://jeff.doozan.com/debian/uboot/uboot.mtd3.bin
|
||||
UBOOT_ENV_URL=http://jeff.doozan.com/debian/uboot/uboot.environment
|
||||
BLPARAM_URL=http://jeff.doozan.com/debian/uboot/blparam
|
||||
NANDDUMP_URL=http://jeff.doozan.com/debian/uboot/nanddump
|
||||
FLASH_ERASE_URL=http://jeff.doozan.com/debian/uboot/flash_erase
|
||||
FW_PRINTENV_URL=http://jeff.doozan.com/debian/uboot/fw_printenv
|
||||
FW_CONFIG_URL=http://jeff.doozan.com/debian/uboot/fw_env.config
|
||||
|
||||
UBOOT=/tmp/uboot.mtd3.bin
|
||||
UBOOT_ENV=/tmp/uboot.environment
|
||||
BLPARAM=/usr/local/cloudengines/bin/blparam
|
||||
NANDDUMP=/usr/bin/nanddump
|
||||
FLASH_ERASE=/usr/bin/flash_erase
|
||||
FW_PRINTENV=/usr/bin/fw_printenv
|
||||
FW_SETENV=/usr/bin/fw_setenv
|
||||
FW_CONFIG=/etc/fw_env.config
|
||||
|
||||
|
||||
function verify_md5 {
|
||||
local file=$1
|
||||
local md5=$2
|
||||
|
||||
if [[ $(cat "$md5" | cut -d' ' -f1) == $(md5sum "$file" | cut -d' ' -f1) ]]; then
|
||||
echo 1;
|
||||
else
|
||||
echo 0;
|
||||
fi
|
||||
}
|
||||
|
||||
function download_and_verify
|
||||
{
|
||||
local file_dest=$1
|
||||
local file_url=$2
|
||||
|
||||
local md5_dest="$file_dest.md5"
|
||||
local md5_url="$file_url.md5"
|
||||
|
||||
# Always download a fresh MD5, in clase a newer version is available
|
||||
if [ -e "$md5_dest" ]; then rm -f "$md5_dest"; fi
|
||||
wget -O "$md5_dest" "$md5_url"
|
||||
# retry the download if it failed
|
||||
if [ ! -e "$md5_dest" ]; then
|
||||
wget -O "$md5_dest" "$md5_url"
|
||||
if [ ! -e "$md5_dest" ]; then
|
||||
echo 0 # Could not get md5
|
||||
return
|
||||
fi
|
||||
fi
|
||||
|
||||
# If the file already exists, check the MD5
|
||||
if [ -e "$file_dest" ]; then
|
||||
if [[ $( verify_md5 "$file_dest" "$md5_dest" ) == 1 ]]; then
|
||||
rm -f "$md5_dest"
|
||||
echo 1
|
||||
return
|
||||
else
|
||||
rm -f "$file_dest"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Download the file
|
||||
wget -O "$file_dest" "$file_url"
|
||||
# retry the download if it failed
|
||||
if [[ $( verify_md5 "$file_dest" "$md5_dest" ) == 0 ]]; then
|
||||
|
||||
# Download failed or MD5 did not match, try again
|
||||
if [ -e "$file_dest" ]; then rm -f "$file_dest"; fi
|
||||
wget -O "$file_dest" "$file_url"
|
||||
if [[ $( verify_md5 "$file_dest" "$md5_dest" ) == 0 ]]; then
|
||||
rm -f "$md5_dest"
|
||||
echo 0
|
||||
return
|
||||
fi
|
||||
fi
|
||||
|
||||
rm -f "$md5_dest"
|
||||
echo 1
|
||||
}
|
||||
|
||||
|
||||
if [[ "$1" != "--noprompt" ]]; then
|
||||
|
||||
echo ""
|
||||
echo ""
|
||||
echo ""
|
||||
echo ""
|
||||
echo "This script will install an alternate uBoot on /dev/mtd3."
|
||||
echo "It will also modify the boot parameters of the original uBoot"
|
||||
echo "to pass control to the alternate uBoot."
|
||||
echo ""
|
||||
echo "Your new uBoot will attempt to boot from the first USB device"
|
||||
echo "and, failing that, will pass control back to the original"
|
||||
echo "uBoot to start the default Pogoplug installation"
|
||||
echo ""
|
||||
echo "This script will DESTROY ALL EXISTING DATA on /dev/mtd3"
|
||||
echo "(which is fine -- it's an empty partition, unless you've"
|
||||
echo "knowingly put something there)"
|
||||
echo ""
|
||||
echo -n "If this is ok, type 'ok' and press ENTER to continue: "
|
||||
|
||||
read IS_OK
|
||||
if [ "$IS_OK" != "OK" -a "$IS_OK" != "Ok" -a "$IS_OK" != "ok" ];
|
||||
then
|
||||
echo "Exiting..."
|
||||
exit
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# Install blparam if it doesn't already exist
|
||||
if [ ! -e "$BLPARAM" ]; then
|
||||
echo "# Installing blparam..."
|
||||
mount -o rw,remount /
|
||||
|
||||
if [[ $( download_and_verify "$BLPARAM" "$BLPARAM_URL" ) == 0 ]]; then
|
||||
mount -o ro,remount /
|
||||
echo "## Could not install blparam, exiting."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
chmod +x "$BLPARAM"
|
||||
mount -o ro,remount /
|
||||
|
||||
echo "# Successfully installed blparam."
|
||||
fi
|
||||
|
||||
# Install nanddump if it doesn't already exist
|
||||
if [ ! -e "$NANDDUMP" ]; then
|
||||
echo ""
|
||||
echo "# Installing nanddump..."
|
||||
mount -o rw,remount /
|
||||
|
||||
if [[ $( download_and_verify "$NANDDUMP" "$NANDDUMP_URL" ) == 0 ]]; then
|
||||
mount -o ro,remount /
|
||||
echo "## Could not install nanddump, exiting."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
chmod +x "$NANDDUMP"
|
||||
mount -o ro,remount /
|
||||
|
||||
echo "# Successfully installed nanddump."
|
||||
fi
|
||||
|
||||
# Install flash_erase if it doesn't already exist
|
||||
if [ ! -e "$FLASH_ERASE" ]; then
|
||||
echo ""
|
||||
echo "# Installing flash_erase..."
|
||||
mount -o rw,remount /
|
||||
|
||||
if [[ $( download_and_verify "$FLASH_ERASE" "$FLASH_ERASE_URL" ) == 0 ]]; then
|
||||
mount -o ro,remount /
|
||||
echo "## Could not install flash_erase, exiting."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
chmod +x "$FLASH_ERASE"
|
||||
mount -o ro,remount /
|
||||
|
||||
echo "# Successfully installed flash_erase."
|
||||
fi
|
||||
|
||||
# Install fw_env tools if they doesn't already exist
|
||||
if [ ! -e "$FW_PRINTENV" ]; then
|
||||
echo ""
|
||||
echo "# Installing fw_printenv and fw_setenv utils..."
|
||||
mount -o rw,remount /
|
||||
|
||||
if [[ $( download_and_verify "$FW_PRINTENV" "$FW_PRINTENV_URL" ) == 0 ]]; then
|
||||
mount -o ro,remount /
|
||||
echo "## Could not install fw_printenv and fw_setenv, exiting."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
chmod +x "$FW_PRINTENV"
|
||||
ln -s "$FW_PRINTENV" "$FW_SETENV"
|
||||
mount -o ro,remount /
|
||||
|
||||
echo "## Successfully installed fw_printenv and fw_setenv."
|
||||
fi
|
||||
|
||||
# Install fw_env.config if it doesn't already exist
|
||||
if [ ! -e "$FW_CONFIG" ]; then
|
||||
echo ""
|
||||
echo "# Installing fw_env.config..."
|
||||
mount -o rw,remount /
|
||||
|
||||
if [[ $( download_and_verify "$FW_CONFIG" "$FW_CONFIG_URL" ) == 0 ]]; then
|
||||
mount -o ro,remount /
|
||||
echo "## Could not install fw_env.config, exiting."
|
||||
exit 1
|
||||
fi
|
||||
mount -o ro,remount /
|
||||
|
||||
echo "## Successfully installed fw_env.config"
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
# Attempt to auto-detect the device by looking at the existing bootcmd parameters
|
||||
#
|
||||
# If the bootcmd parameters matches a known default string, we assume the device is clean
|
||||
#
|
||||
# If the bootcmd paramater does not match a known string, but instead has a bootcmd_original
|
||||
# string that matches a known default, then we assume the device is modified and check
|
||||
# for the existance of our bootloader
|
||||
#
|
||||
# If neither the bootcmd nor the bootcmd_original strings match a known default, we ask the user
|
||||
# to select his device
|
||||
|
||||
echo ""
|
||||
echo -n "# Attempting to auto-detect your device..."
|
||||
|
||||
dockstar='nand read.e 0x800000 0x100000 0x300000; setenv bootargs $(console) $(bootargs_root); bootm 0x800000'
|
||||
pogoplug1='nand read 0x2000000 0x100000 0x200000; setenv bootargs $(console) $(bootargs_root); bootm 0x2000000'
|
||||
pogoplug2='nand read.e 0x800000 0x100000 0x200000; setenv bootargs $(console) $(bootargs_root); bootm 0x800000'
|
||||
|
||||
bootcmd=`$BLPARAM | grep "^bootcmd=" | cut -d'=' -f 2-`
|
||||
bootcmd_original=`$BLPARAM | grep "^bootcmd_original=" | cut -d'=' -f 2-`
|
||||
|
||||
if [ "$bootcmd" = "$dockstar" ]; then
|
||||
echo "Dockstar detected"
|
||||
bootcmd_original=$bootcmd
|
||||
elif [ "$bootcmd" = "$plugbox1" ]; then
|
||||
echo "Pogoplug v1 detected"
|
||||
bootcmd_original=$bootcmd
|
||||
elif [ "$bootcmd" = "$plugbox2" ]; then
|
||||
echo "Pogoplug v2 detected"
|
||||
bootcmd_original=$bootcmd
|
||||
|
||||
elif [ "$bootcmd_original" = "$dockstar" ]; then
|
||||
echo "Dockstar with modified bootcmd detected"
|
||||
elif [ "$bootcmd_original" = "$plugbox1" ]; then
|
||||
echo "Pogoplug v1 with modified bootcmd detected"
|
||||
elif [ "$bootcmd_original" = "$plugbox2" ]; then
|
||||
echo "Pogoplug v2 with modified bootcmd detected"
|
||||
|
||||
|
||||
# Auto detect failed, ask the user what device he has
|
||||
else
|
||||
echo "failed!"
|
||||
|
||||
bootcmd_original=
|
||||
|
||||
while [ "$bootcmd_original" == "" ]; do
|
||||
echo ""
|
||||
echo "############################################"
|
||||
echo "Your device could not be auto-detected."
|
||||
echo ""
|
||||
echo "What device are you using? Type the number of your device and press ENTER."
|
||||
echo "1 - Pogoplug v1 - Brick"
|
||||
echo "2 - Pogoplug v2 - Pink"
|
||||
echo "3 - DockStar"
|
||||
read device
|
||||
|
||||
if [ "$device" == "1" ]; then
|
||||
echo "Selected Pogoplug v1"
|
||||
bootcmd_original=$pogoplug1
|
||||
elif [ "$device" == "2" ]; then
|
||||
echo "Selected Pogoplug v2"
|
||||
bootcmd_original=$pogoplug2
|
||||
elif [ "$device" == "3" ]; then
|
||||
echo "Selected Dockstar"
|
||||
bootcmd_original=$dockstar
|
||||
else
|
||||
echo "Invalid Input"
|
||||
fi
|
||||
done
|
||||
|
||||
fi
|
||||
|
||||
|
||||
UPDATE_UBOOT=1
|
||||
|
||||
# If this is not a clean device, check to see if our bootloader is already installed
|
||||
|
||||
if [ "$bootcmd" != "$bootcmd_original" ]; then
|
||||
echo ""
|
||||
echo "# Checking for existing installation of uBoot on mtd3..."
|
||||
wget -O "$UBOOT.md5" "$UBOOT_URL.md5"
|
||||
|
||||
# dump the area of mtd3 where an existing uboot would be to /tmp/mtd3.uboot
|
||||
$NANDDUMP -no -l 0x80000 -f /tmp/mtd3.uboot /dev/mtd3
|
||||
|
||||
if [[ $( verify_md5 "/tmp/mtd3.uboot" "$UBOOT.md5" ) == 1 ]]; then
|
||||
echo "## The newest uBoot is already installed on mtd3."
|
||||
UPDATE_UBOOT=0
|
||||
else
|
||||
echo "## Latest uBoot not found on mtd3."
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
|
||||
# uBoot is not yet installed to mtd3,
|
||||
# download the new uBoot and install it
|
||||
|
||||
if [[ $UPDATE_UBOOT == 1 ]]; then
|
||||
|
||||
echo ""
|
||||
echo "# Installing uBoot"
|
||||
|
||||
if [[ $( download_and_verify "$UBOOT" "$UBOOT_URL" ) == 0 ]]; then
|
||||
echo "## uBoot could not be downloaded, or the MD5 does not match."
|
||||
echo "## Exiting. No changes were made to mtd3."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Write new uBoot to mtd3
|
||||
flash_eraseall /dev/mtd3
|
||||
nandwrite /dev/mtd3 $UBOOT
|
||||
|
||||
# dump mtd3 and compare the checksum, to make sure it installed properly
|
||||
$NANDDUMP -no -l 0x80000 -f /tmp/mtd3.uboot /dev/mtd3
|
||||
echo "## Verifying new uBoot..."
|
||||
wget -O "$UBOOT.md5" "$UBOOT_URL.md5"
|
||||
|
||||
if [[ $( verify_md5 "/tmp/mtd3.uboot" "$UBOOT.md5" ) == 0 ]]; then
|
||||
rm -f "$UBOOT.md5"
|
||||
echo "## VERIFICATION FAILED!"
|
||||
echo "## uBoot was not properly installed to mtd3. Please re-run this installer."
|
||||
exit 1
|
||||
else
|
||||
echo "# Verified successfully!"
|
||||
fi
|
||||
rm -f "$UBOOT.md5"
|
||||
|
||||
fi
|
||||
|
||||
|
||||
echo ""
|
||||
echo "# Installing uBoot environment"
|
||||
|
||||
# Install the uBoot environment
|
||||
if [[ $( download_and_verify "$UBOOT_ENV" "$UBOOT_ENV_URL" ) == 0 ]]; then
|
||||
echo "## Could not install uBoot environment, exiting"
|
||||
exit 1
|
||||
fi
|
||||
$FLASH_ERASE /dev/mtd0 0xc0000 1
|
||||
nandwrite -s 786432 /dev/mtd0 "$UBOOT_ENV"
|
||||
|
||||
echo ""
|
||||
echo "# Verifying uBoot environment"
|
||||
|
||||
# Verify the uBoot environment
|
||||
$NANDDUMP -of "/tmp/uboot.environment" -s 0xc0000 -l 0x20000 /dev/mtd0
|
||||
wget -O "$UBOOT_ENV.md5" "$UBOOT_ENV_URL.md5"
|
||||
if [[ $( verify_md5 "/tmp/uboot.environment" "$UBOOT_ENV.md5" ) == 0 ]]; then
|
||||
rm -f "$UBOOT_ENV.md5"
|
||||
echo "## VERIFICATION FAILED!"
|
||||
echo "## uBoot environment was not properly written to mtd0. Please re-run this installer."
|
||||
exit 1
|
||||
fi
|
||||
rm -f "$UBOOT_ENV.md5"
|
||||
|
||||
|
||||
# Preserve the MAC address
|
||||
ETHADDR=`$BLPARAM | grep "^ethaddr=" | cut -d'=' -f 2-`
|
||||
|
||||
$FW_SETENV ethaddr $ETHADDR
|
||||
$FW_SETENV bootargs_root root=/dev/mtdblock2 ro
|
||||
$FW_SETENV bootcmd_original $bootcmd_original
|
||||
|
||||
# Configure the mtd0 uBoot parameters
|
||||
|
||||
$BLPARAM 'bootcmd_usb=nand read.e 0xc00000 0x2500000 0x80000; go 0xc00000' > /dev/null 2>&1
|
||||
$BLPARAM 'bootcmd1=setenv bootcmd run bootcmd2; saveenv; run bootcmd_usb' > /dev/null 2>&1
|
||||
$BLPARAM 'bootcmd2=setenv bootcmd run bootcmd1; saveenv; run bootcmd_original' > /dev/null 2>&1
|
||||
$BLPARAM "bootcmd_original=$bootcmd_original" > /dev/null 2>&1
|
||||
$BLPARAM 'bootcmd=run bootcmd1' > /dev/null 2>&1
|
||||
|
||||
|
||||
echo ""
|
||||
echo "# uBoot installation has completed successfully."
|
||||
|
Loading…
Reference in a new issue