dinstall-rpi.sh: add a script for preparing a SD card for Raspberry PI with openmamba-rootfs-light
This commit is contained in:
parent
a4ef3dc7b0
commit
006df4c5be
123
src/sdinstall-rpi.sh
Executable file
123
src/sdinstall-rpi.sh
Executable file
@ -0,0 +1,123 @@
|
|||||||
|
### SD-Card: create partitions and fileysytems
|
||||||
|
#
|
||||||
|
# Created by: Davide Madrisan
|
||||||
|
# Modified by: Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||||
|
#
|
||||||
|
DRIVE=$1
|
||||||
|
ROOTFSARCHIVE=$2
|
||||||
|
|
||||||
|
[ "$DRIVE" -a "$ROOTFSARCHIVE" ] || {
|
||||||
|
echo "Usage: $0 device rootfs-archive"
|
||||||
|
echo
|
||||||
|
echo "Example: $0 /dev/sdb /tmp/openmamba-rootfs-light.arm.tar.xz"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
[ $UID -eq 0 ] || {
|
||||||
|
echo "ERROR: this script must be called as root; aborting."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ "${DRIVE:0:11}" = "/dev/mmcblk" ]; then
|
||||||
|
PARTITION1=${DRIVE}p1
|
||||||
|
PARTITION2=${DRIVE}p2
|
||||||
|
else
|
||||||
|
PARTITION1=${DRIVE}1
|
||||||
|
PARTITION2=${DRIVE}2
|
||||||
|
fi
|
||||||
|
|
||||||
|
dd if=/dev/zero of=$DRIVE bs=1024 count=1024
|
||||||
|
|
||||||
|
set -- $(LC_ALL=C fdisk -l "$DRIVE" | grep "^Disk.*bytes$")
|
||||||
|
SIZE="$5"
|
||||||
|
echo Disk Size: $SIZE bytes
|
||||||
|
|
||||||
|
CYLINDERS=`echo $SIZE/255/63/512 | bc`
|
||||||
|
echo Cylinders: $CYLINDERS
|
||||||
|
|
||||||
|
{
|
||||||
|
echo ,9,0x0C,*
|
||||||
|
echo ,,,-
|
||||||
|
} | sfdisk -D -H 255 -S 63 -C $CYLINDERS $DRIVE
|
||||||
|
|
||||||
|
mkfs.vfat -F 32 -n "boot" $PARTITION1
|
||||||
|
mke2fs -t ext4 -j -L "openmamba" $PARTITION2
|
||||||
|
|
||||||
|
### SD-Card: install software
|
||||||
|
|
||||||
|
SWHOME=`mktemp -d`
|
||||||
|
|
||||||
|
cd $SWHOME
|
||||||
|
git clone git://github.com/raspberrypi/firmware.git --depth=1
|
||||||
|
|
||||||
|
BOOTMP=/media/boot
|
||||||
|
ROOTMP=/media/openmamba
|
||||||
|
|
||||||
|
[ -e /media/boot -o -e /media/openmamba ] && {
|
||||||
|
echo "ERROR: /media/boot or /media/openmamba already exist."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
udisks --mount $PARTITION1
|
||||||
|
udisks --mount $PARTITION2
|
||||||
|
|
||||||
|
# bootcode.bin: 2nd stage bootloader, starts with SDRAM disabled
|
||||||
|
# loader.bin : 3rd stage bootloader, starts with SDRAM enabled
|
||||||
|
# start.elf : The GPU binary firmware image, provided by the foundation
|
||||||
|
# kernel.img : The OS kernel to load on the ARM processor.
|
||||||
|
for f in bootcode.bin loader.bin arm*_start.elf kernel*.img; do
|
||||||
|
cp $SWHOME/firmware/boot/$f $BOOTMP/
|
||||||
|
done
|
||||||
|
|
||||||
|
# use arm224_start.elf (224M system, 32MB GPU split) firmware by default
|
||||||
|
cp $BOOTMP/arm224_start.elf $BOOTMP/start.elf
|
||||||
|
|
||||||
|
# cmdline.txt : parameters passed to the kernel on boot
|
||||||
|
echo "\
|
||||||
|
dwc_otg.lpm_enable=0 \
|
||||||
|
console=ttyAMA0,115200 \
|
||||||
|
kgdboc=ttyAMA0,115200 \
|
||||||
|
console=tty1 \
|
||||||
|
root=/dev/mmcblk0p2 \
|
||||||
|
rootfstype=ext4 \
|
||||||
|
elevator=deadline \
|
||||||
|
rootwait" > $BOOTMP/cmdline.txt
|
||||||
|
#debug=1 \
|
||||||
|
|
||||||
|
# optional files:
|
||||||
|
# config.txt : A configuration file read by the GPU.
|
||||||
|
# Use this to override set the video mode, alter system clock
|
||||||
|
# speeds, voltages, etc.
|
||||||
|
# vlls directory: Additional GPU code, e.g. extra codecs.
|
||||||
|
# Not present in the initial release.
|
||||||
|
|
||||||
|
pushd $ROOTMP >/dev/null
|
||||||
|
tar xvf $ROOTFSARCHIVE
|
||||||
|
popd >/dev/null
|
||||||
|
|
||||||
|
# copy kernel modules
|
||||||
|
mkdir -p $ROOTMP/lib/modules
|
||||||
|
cp -a $SWHOME/firmware/modules/* $ROOTMP/lib/modules/
|
||||||
|
|
||||||
|
## swhitch to runlevel 1
|
||||||
|
#sed -i "s@^id:[0-9]:\(.*\)@id:1:\1@" \
|
||||||
|
# $ROOTMP/etc/inittab
|
||||||
|
## remove root password
|
||||||
|
## default: root:$1$7QJBkeh1$Dd.G4kEYQT2c6x4kLMrAS.:15418:0:99999:7:::0
|
||||||
|
#sed -i "s@^root:[^:]*\(.*\)@root:\1@" \
|
||||||
|
# $ROOTMP/etc/shadow
|
||||||
|
#
|
||||||
|
## /proc/bus/usb/ does not exist
|
||||||
|
#sed -i "s@^usbfs.*@#&@" $ROOTMP/etc/fstab
|
||||||
|
#
|
||||||
|
#sed -i "\
|
||||||
|
#s@^multithread=1@multithread=0@
|
||||||
|
#s@#no_auto_depmod.*@no_auto_depmod=1@" \
|
||||||
|
# $ROOTMP/etc/sysconfig/rc
|
||||||
|
|
||||||
|
udisks --unmount $PARTITION1
|
||||||
|
udisks --unmount $PARTITION2
|
||||||
|
|
||||||
|
[ "$SWHOME" -a "${SWHOME:0:4}" = "/tmp" ] && rm -rf $SWHOME
|
||||||
|
|
||||||
|
exit 0
|
Loading…
Reference in New Issue
Block a user