slitaz-arm annotate sat-rpi @ rev 62
Move RPi rootfs to rpi/ (used by many flavor), add PTYS_LEGACY support to kernel (we want to open and xterm)
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Sat Mar 15 18:09:54 2014 +0100 (2014-03-15) |
parents | 2d1f132ea8bf |
children | c6d3db386d89 |
rev | line source |
---|---|
pankso@49 | 1 #!/bin/sh |
pankso@49 | 2 # |
pankso@49 | 3 # Sat RPi - SliTaz Raspberry Pi Build Tool |
pankso@49 | 4 # |
pankso@49 | 5 # Copyright (C) 2012-2014 SliTaz ARM - BSD License |
pankso@49 | 6 # Author: Christophe Lincoln <pankso@slitaz.org> |
pankso@49 | 7 # |
pankso@49 | 8 . /lib/libtaz.sh |
pankso@49 | 9 |
pankso@49 | 10 #: ${arch=armv6hf} |
pankso@49 | 11 : ${arch=arm} |
pankso@49 | 12 |
pankso@49 | 13 # Paths |
pankso@49 | 14 [ "$work" ] || work="$(pwd)" |
pankso@49 | 15 distro="$work/distro" |
pankso@49 | 16 rpi="$work/rpi" |
pankso@49 | 17 data="$rpi/data" |
pankso@49 | 18 boot="$distro/boot" |
pankso@49 | 19 rootfs="$distro/rootfs" |
pankso@49 | 20 rpi_git="$rpi/git" |
pankso@49 | 21 kernel="$rpi_git/linux" |
pankso@49 | 22 firmware="$rpi_git/firmware" |
pankso@49 | 23 tools="$rpi_git/tools" |
pankso@49 | 24 |
pankso@49 | 25 # URLs |
pankso@49 | 26 rpi_mirror="http://mirror.slitaz.org/arm/rpi/" |
pankso@49 | 27 fw_url="https://github.com/raspberrypi/firmware/raw/master/boot/" |
pankso@49 | 28 tools_url="https://raw.github.com/raspberrypi/tools/master/mkimage/" |
pankso@49 | 29 rpi_git_url="git://github.com/raspberrypi/" |
pankso@49 | 30 |
pankso@49 | 31 # Lists |
pankso@49 | 32 fwlist="bootcode.bin fixup.dat start.elf" |
pankso@49 | 33 toolslist="imagetool-uncompressed.py args-uncompressed.txt \ |
pankso@49 | 34 boot-uncompressed.txt" |
pankso@49 | 35 |
pankso@49 | 36 # |
pankso@49 | 37 # Functions |
pankso@49 | 38 # |
pankso@49 | 39 |
pankso@49 | 40 usage() { |
pankso@49 | 41 cat << EOT |
pankso@49 | 42 |
pankso@49 | 43 $(boldify "Usage:") $(basename $0) [command] [--option] |
pankso@49 | 44 |
pankso@49 | 45 SliTaz Raspberry Pi Tool |
pankso@49 | 46 |
pankso@49 | 47 $(boldify "Commands:") |
pankso@49 | 48 info Display paths and distro info |
pankso@49 | 49 install Install SliTaz RPi to sdcard |
pankso@49 | 50 gen Generate a new SliTaz RPi distro |
pankso@49 | 51 cook-linux Build the Raspberry Pi Linux kernel |
pankso@49 | 52 get-linux Get the SliTaz RPi linux package |
pankso@49 | 53 get-fw Download or update minimal RPi firmware |
pankso@49 | 54 clone-fw Clone the RPi firmware repository |
pankso@49 | 55 get-prebuilt Get a prebuilt SliTaz ARM toolchain |
pankso@49 | 56 clean Clean the current work directory |
pankso@49 | 57 |
pankso@49 | 58 $(boldify "Options:") |
pankso@49 | 59 --up Update for commands: firmware, tools, kernel |
pankso@49 | 60 --turbo Force the RPi to run at the highest arm_freq |
pankso@49 | 61 --oclock= Set the RPi overclocking mode in config.txt |
pankso@49 | 62 --vc Install the RPi VC libraries in /opt/vc |
pankso@49 | 63 --nosat Don't regenerate the distro with sat |
pankso@49 | 64 --git Remove RPi git files on clean up |
pankso@49 | 65 |
pankso@49 | 66 EOT |
pankso@49 | 67 } |
pankso@49 | 68 |
pankso@49 | 69 error() { |
pankso@49 | 70 echo "[ $(colorize 31 'ERROR') ] $@" |
pankso@49 | 71 } |
pankso@49 | 72 |
pankso@49 | 73 header() { |
pankso@55 | 74 newline && boldify "$@" && separator |
pankso@49 | 75 } |
pankso@49 | 76 |
pankso@49 | 77 # Get minimal RPi firmware |
pankso@49 | 78 get_fw() { |
pankso@49 | 79 mkdir -p $firmware/boot |
pankso@49 | 80 for fw in $fwlist |
pankso@49 | 81 do |
pankso@49 | 82 [ "$up" ] && rm -f $firmware/boot/$fw |
pankso@49 | 83 if [ ! -f "$firmware/boot/$fw" ]; then |
pankso@49 | 84 echo -n "Fetching: $fw" |
pankso@49 | 85 wget -q --no-check-certificate ${fw_url}${fw} \ |
pankso@49 | 86 -O $firmware/boot/${fw}; status |
pankso@49 | 87 fi |
pankso@49 | 88 done |
pankso@49 | 89 } |
pankso@49 | 90 |
pankso@49 | 91 # Get all RPi firmware |
pankso@49 | 92 clone_fw() { |
pankso@49 | 93 [ -d "${rpi_git}/firmware" ] && return 0 |
pankso@49 | 94 mkdir -p ${rpi_git} && cd ${rpi_git} |
pankso@49 | 95 git clone --depth 1 ${rpi_git_url}firmware.git |
pankso@49 | 96 } |
pankso@49 | 97 |
pankso@49 | 98 # --> will move to tazberry |
pankso@49 | 99 set_oclock() { |
pankso@49 | 100 case "$oclock" in |
pankso@49 | 101 none) |
pankso@49 | 102 arm_freq=700 |
pankso@49 | 103 core_freq=250 |
pankso@49 | 104 sdram_freq=400 |
pankso@49 | 105 over_voltage=0 ;; |
pankso@49 | 106 modest) |
pankso@49 | 107 arm_freq=800 |
pankso@49 | 108 core_freq=300 |
pankso@49 | 109 sdram_freq=400 |
pankso@49 | 110 over_voltage=0 ;; |
pankso@49 | 111 medium) |
pankso@49 | 112 arm_freq=900 |
pankso@49 | 113 core_freq=333 |
pankso@49 | 114 sdram_freq=450 |
pankso@49 | 115 over_voltage=2 ;; |
pankso@49 | 116 hight) |
pankso@49 | 117 arm_freq=950 |
pankso@49 | 118 core_freq=450 |
pankso@49 | 119 sdram_freq=450 |
pankso@49 | 120 over_voltage=6 ;; |
pankso@49 | 121 turbo) |
pankso@49 | 122 arm_freq=1000 |
pankso@49 | 123 core_freq=500 |
pankso@49 | 124 sdram_freq=500 |
pankso@49 | 125 over_voltage=6 ;; |
pankso@49 | 126 esac |
pankso@49 | 127 cat >> ${boot}/config.txt << EOT |
pankso@49 | 128 arm_freq=$arm_freq |
pankso@49 | 129 core_freq=$core_freq |
pankso@49 | 130 sdram_freq=$sdram_freq |
pankso@49 | 131 over_voltage=$over_voltage |
pankso@49 | 132 EOT |
pankso@49 | 133 } |
pankso@49 | 134 |
pankso@49 | 135 # |
pankso@49 | 136 # Commands |
pankso@49 | 137 # |
pankso@49 | 138 |
pankso@49 | 139 case "$1" in |
pankso@49 | 140 info) |
pankso@49 | 141 header "SliTaz Raspberry Pi info" |
pankso@49 | 142 echo "Firmware : $fwlist" |
pankso@49 | 143 echo "RPi path : $rpi" |
pankso@49 | 144 colorize 36 "/boot/cmdline.txt:" |
pankso@49 | 145 cat ${boot}/cmdline.txt |
pankso@49 | 146 colorize 36 "/boot/config.txt:" |
pankso@49 | 147 cat ${boot}/config.txt |
pankso@49 | 148 separator && newline ;; |
pankso@49 | 149 |
pankso@49 | 150 install) |
pankso@49 | 151 rpiboot="/media/rpi/boot" |
pankso@49 | 152 rpiroot="/media/rpi/rootfs" |
pankso@49 | 153 header "SliTaz Raspberry Pi install" |
pankso@49 | 154 if [ ! "$dev" ]; then |
pankso@49 | 155 echo "Missing: --dev= cmdline option" |
pankso@49 | 156 newline && exit 1 |
pankso@49 | 157 fi |
pankso@49 | 158 |
pankso@49 | 159 # Store sdcard partition(s) list |
pankso@49 | 160 fdisk -l /dev/${dev} | grep "^/dev/$dev" | awk '{print $1}' \ |
pankso@49 | 161 > ${data}/sdcard.part |
pankso@49 | 162 partnb=$(cat ${data}/sdcard.part | wc -l) |
pankso@49 | 163 if [ "$partnb" != 3 ]; then |
pankso@49 | 164 error "SliTaz RPi needs 3 partitions on the sdcard" |
pankso@49 | 165 newline && exit 1 |
pankso@49 | 166 fi |
pankso@49 | 167 |
pankso@49 | 168 # Mount sdcard |
pankso@49 | 169 if mount | grep -q "^/dev/$dev[1-3]"; then |
pankso@49 | 170 debug "Unmounting: /dev/$dev" |
pankso@49 | 171 umount /dev/${dev}1 2>/dev/null || exit 1 |
pankso@49 | 172 umount /dev/${dev}3 2>/dev/null || exit 1 |
pankso@49 | 173 fi |
pankso@49 | 174 echo -n "Mounting: /dev/$dev partitions" |
pankso@49 | 175 mkdir -p ${rpiboot} ${rpiroot} |
pankso@58 | 176 mount /dev/${dev}1 ${rpiboot} || exit 1 |
pankso@58 | 177 mount /dev/${dev}3 ${rpiroot} || exit 1 |
pankso@58 | 178 status |
pankso@49 | 179 echo -n "Cleaning: filesystem directories" |
pankso@49 | 180 for dir in bin dev etc lib media mnt proc sbin sys tmp usr var run |
pankso@49 | 181 do |
pankso@49 | 182 rm -rf ${rpiroot}/${dir} |
pankso@49 | 183 done; status |
pankso@49 | 184 echo -n "Installing: boot files" |
pankso@49 | 185 cp -rf ${boot}/* ${rpiboot}; status |
pankso@49 | 186 echo -n "Installing: rootfs files" |
pankso@49 | 187 cp -a ${rootfs}/* ${rpiroot}; status |
pankso@49 | 188 |
pankso@49 | 189 # Unmount |
pankso@49 | 190 echo -n "Unmounting: RPi sdcard" |
pankso@58 | 191 umount ${rpiboot} |
pankso@58 | 192 umount ${rpiroot} |
pankso@49 | 193 status |
pankso@49 | 194 |
pankso@49 | 195 rm -f ${data}/sdcard.part |
pankso@49 | 196 separator && newline ;; |
pankso@49 | 197 |
pankso@49 | 198 ls-dev) |
pankso@49 | 199 newline |
pankso@49 | 200 fdisk -l | grep "^Disk /dev/sd*" |
pankso@49 | 201 newline ;; |
pankso@49 | 202 |
pankso@49 | 203 gen) |
pankso@49 | 204 # Separate boot files since the Raspberry Pi boots off a FAT32 /boot |
pankso@49 | 205 # partition on the sdcard. |
pankso@54 | 206 : ${flavor=rpi-base} |
pankso@49 | 207 : ${oclock=none} |
pankso@49 | 208 |
pankso@49 | 209 # Use the rootfs generated by sat |
pankso@49 | 210 if [ ! -x "/usr/bin/sat" ]; then |
pankso@49 | 211 error "Sat is not installed" && exit 1 |
pankso@49 | 212 fi |
pankso@55 | 213 check_root |
pankso@49 | 214 |
pankso@49 | 215 # We may want to simply regenerate the RPi distro |
pankso@49 | 216 if [ ! "$nosat" ]; then |
pankso@57 | 217 sat gen --work="$work" --flavor="$flavor" --noinit --nolinux |
pankso@58 | 218 else |
pankso@58 | 219 newline |
pankso@49 | 220 fi |
pankso@49 | 221 |
pankso@58 | 222 boldify "SliTaz Raspberry Pi distro" |
pankso@58 | 223 separator |
pankso@49 | 224 |
pankso@62 | 225 # Custom RPi rootfs: make sure all files belong to root |
pankso@62 | 226 if [ -d "$rpi/rootfs" ]; then |
pankso@62 | 227 size=$(du -sh $rpi/rootfs | awk '{print $1}') |
pankso@62 | 228 echo -n "Copying custom RPi rootfs: $size" |
pankso@62 | 229 tmp=$distro/tmp-$$ |
pankso@62 | 230 mkdir -p $tmp |
pankso@62 | 231 cp -r $rpi/rootfs/* $tmp |
pankso@62 | 232 chown -R root.root $tmp |
pankso@62 | 233 cp -a $tmp/* ${rootfs} && rm -rf $tmp |
pankso@62 | 234 status |
pankso@62 | 235 fi |
pankso@62 | 236 |
pankso@49 | 237 # Boot firmware |
pankso@49 | 238 echo -n "Copying: firmware files..." |
pankso@49 | 239 mkdir -p ${boot} && get_fw |
pankso@49 | 240 for fw in $fwlist |
pankso@49 | 241 do |
pankso@49 | 242 cp ${firmware}/boot/${fw} ${boot} |
pankso@49 | 243 done |
pankso@49 | 244 status |
pankso@49 | 245 |
pankso@58 | 246 # TazBerry ncurses and CGI data/plugins |
pankso@58 | 247 echo -n "Copying: TazBerry..." |
pankso@55 | 248 cp -f ${rpi}/tazberry ${rootfs}/usr/bin |
pankso@58 | 249 cp -a ${rpi}/cgi-adm/* ${rootfs}/var/www/adm |
pankso@49 | 250 status |
pankso@49 | 251 |
pankso@49 | 252 # Overclocking |
pankso@49 | 253 echo -n "Setting: Overclocking..." |
pankso@49 | 254 set_oclock; status |
pankso@49 | 255 |
pankso@49 | 256 # Force turbo |
pankso@49 | 257 if [ "$turbo" ]; then |
pankso@49 | 258 if ! fgrep 'force_turbo=1' ${boot}/config.txt; then |
pankso@49 | 259 echo -n "Config: force_turbo=1" |
pankso@49 | 260 echo "force_turbo=1" >> ${boot}/config.txt; status |
pankso@49 | 261 fi |
pankso@49 | 262 fi |
pankso@49 | 263 |
pankso@49 | 264 # RPi VC libraries |
pankso@49 | 265 if [ "$vc" ]; then |
pankso@49 | 266 vc="${rootfs}/opt/vc" |
pankso@49 | 267 if [ ! -d "$firmware/opt/vc" ]; then |
pankso@49 | 268 error "Missing firmware git repository" && exit 1 |
pankso@49 | 269 fi |
pankso@49 | 270 echo -n "Copying: standard VC libraries" |
pankso@49 | 271 cp -a ${firmware}/opt ${rootfs} |
pankso@49 | 272 # --> armv6hf |
pankso@49 | 273 #cp -a ${firmware}/hardfp/opt ${rootfs} |
pankso@49 | 274 chown -R root.root ${rootfs}/opt |
pankso@49 | 275 status |
pankso@49 | 276 echo -n "Cleaning: VC libraries devel files" |
pankso@49 | 277 cross_tools="/cross/${arch}/tools/bin" |
pankso@49 | 278 rm -rf ${vc}/include ${vc}/src ${vc}/lib/*.a |
pankso@49 | 279 ${cross_tools}/${arch}-slitaz-linux-gnueabi-strip -s ${vc}/lib/*.so |
pankso@49 | 280 status |
pankso@49 | 281 fi |
pankso@49 | 282 |
pankso@49 | 283 # Kernel at last |
pankso@49 | 284 . $data/linux-*/receipt |
pankso@49 | 285 kvers="$VERSION" |
pankso@49 | 286 kpkg="$rootfs/var/lib/tazpkg/installed/linux" |
pankso@49 | 287 fs="$data/linux-$kvers/fs" |
pankso@49 | 288 ksize=$(du -sh $fs | awk '{print $1}') |
pankso@49 | 289 if [ -d "$fs" ]; then |
pankso@49 | 290 echo -n "Copying: kernel $kvers ($ksize)" |
pankso@49 | 291 rm -rf ${rootfs}/lib/modules |
pankso@49 | 292 cp -rf ${fs}/lib/* ${rootfs}/lib |
pankso@49 | 293 cp -f ${fs}/boot/* ${boot} |
pankso@49 | 294 mkdir -p ${kpkg} |
pankso@49 | 295 cd ${data}/linux-${kvers} |
pankso@49 | 296 cp -f files.list md5sum receipt ${kpkg} |
pankso@49 | 297 status |
pankso@49 | 298 else |
pankso@50 | 299 echo "SliTaz RPi Kernel: not used" |
pankso@49 | 300 fi |
pankso@49 | 301 |
pankso@49 | 302 separator |
pankso@49 | 303 echo -n "Boot: $(du -sh $boot | awk '{print $1}') " |
pankso@49 | 304 echo "- Rootfs: $(du -sh $rootfs | awk '{print $1}')" |
pankso@49 | 305 newline ;; |
pankso@49 | 306 |
pankso@49 | 307 cook-linux) |
pankso@49 | 308 # Native SliTaz Toolchain and cross toolchain must be installed |
pankso@49 | 309 check_root |
pankso@49 | 310 install="$data/linux-install" |
pankso@49 | 311 if [ ! -d "/cross/$arch" ]; then |
pankso@49 | 312 error "Missing cross toolchain in: /cross/$arch" |
pankso@49 | 313 exit 1 |
pankso@49 | 314 fi |
pankso@49 | 315 |
pankso@49 | 316 # Kernel source |
pankso@49 | 317 cd ${rpi_git} |
pankso@49 | 318 [ -d "$kernel" ] || git clone --depth 1 ${rpi_git_url}linux.git |
pankso@49 | 319 |
pankso@49 | 320 # Compile |
pankso@52 | 321 [ "$clean" ] && rm -rf ${install} |
pankso@49 | 322 if [ ! -d "$install" ]; then |
pankso@49 | 323 cd ${kernel} |
pankso@49 | 324 export PATH=$PATH:/cross/${arch}/tools/bin |
pankso@49 | 325 export HOST_SYSTEM=${arch}-slitaz-linux-gnueabi |
pankso@49 | 326 make mrproper && |
pankso@49 | 327 make ARCH=arm bcmrpi_defconfig |
pankso@49 | 328 echo "Patching SliTaz RPi Linux .config" |
pankso@62 | 329 patch -p0 -i ${rpi}/linux-rpi.patch || exit 1 |
pankso@49 | 330 make ARCH=arm CROSS_COMPILE=${HOST_SYSTEM}- zImage && |
pankso@49 | 331 make ARCH=arm CROSS_COMPILE=${HOST_SYSTEM}- modules && |
pankso@49 | 332 make ARCH=arm CROSS_COMPILE=${HOST_SYSTEM}- \ |
pankso@49 | 333 INSTALL_MOD_PATH=${install} modules_install || exit 1 |
pankso@49 | 334 mkdir -p ${install}/boot |
pankso@50 | 335 cp -a arch/arm/boot/zImage ${install}/boot/kernel.img |
pankso@49 | 336 fi |
pankso@49 | 337 |
pankso@49 | 338 # Kernel version |
pankso@49 | 339 kvers=$(ls ${install}/lib/modules) |
pankso@49 | 340 kvers=${kvers%-slitaz-rpi+}+ |
pankso@49 | 341 |
pankso@49 | 342 # Compress modules |
pankso@49 | 343 cd ${install}/lib/modules/${kvers%+}-slitaz-rpi+/ || exit 1 |
pankso@49 | 344 mods=$(find . -name "*.ko$" | wc -l) |
pankso@49 | 345 newline |
pankso@49 | 346 echo "Compressing kernel modules: $mods" |
pankso@49 | 347 find . -name "*.ko$" -exec gzip '{}' \; #2> /dev/null |
pankso@50 | 348 |
pankso@49 | 349 # Rebuild modules.dep |
pankso@49 | 350 cd ${install} |
pankso@49 | 351 depmod -b . ${kvers%+}-slitaz-rpi+ |
pankso@49 | 352 |
pankso@50 | 353 # Kernel |
pankso@49 | 354 fs="$data/linux-$kvers/fs" |
pankso@49 | 355 echo "Kernel version: $kvers" |
pankso@49 | 356 if [ -d "$install" ]; then |
pankso@49 | 357 rm -rf ${data}/linux-${kvers} |
pankso@49 | 358 mkdir -p ${data}/linux-${kvers} |
pankso@49 | 359 cp -a ${install} ${fs} |
pankso@50 | 360 rm -f ${fs}/lib/modules/*/build \ |
pankso@50 | 361 ${fs}/lib/modules/*/source |
pankso@49 | 362 fi |
pankso@50 | 363 |
pankso@50 | 364 # Pack .tazpkg |
pankso@49 | 365 cd ${data} |
pankso@49 | 366 echo "Creating package: receipt" |
pankso@49 | 367 cat > linux-$kvers/receipt << EOT |
pankso@49 | 368 # SliTaz package receipt |
pankso@49 | 369 |
pankso@49 | 370 PACKAGE="linux" |
pankso@49 | 371 VERSION="$kvers" |
pankso@49 | 372 SHORT_DESC="SliTaz Linux Kernel for the Raspberry Pi." |
pankso@49 | 373 WEB_SITE="http://www.kernel.org" |
pankso@49 | 374 |
pankso@49 | 375 EOT |
pankso@49 | 376 tazpkg pack linux-$kvers ;; |
pankso@49 | 377 |
pankso@49 | 378 get-fw) |
pankso@49 | 379 get_fw ;; |
pankso@49 | 380 |
pankso@49 | 381 get-tools) |
pankso@49 | 382 get_tools ;; |
pankso@49 | 383 |
pankso@49 | 384 get-linux) |
pankso@49 | 385 # Precook RPi kernel |
pankso@55 | 386 check_root |
pankso@49 | 387 mkdir -p ${data} |
pankso@49 | 388 |
pankso@49 | 389 # Last version |
pankso@49 | 390 rm -f ${data}/linux-version.txt |
pankso@49 | 391 if busybox wget -q -s ${rpi_mirror}/last-linux.txt; then |
pankso@49 | 392 echo -n "Fetching latest Kernel string..." |
pankso@49 | 393 wget -q ${rpi_mirror}/last-linux.txt \ |
pankso@49 | 394 -O ${data}/linux-version.txt || exit 1 |
pankso@49 | 395 status |
pankso@49 | 396 else |
pankso@49 | 397 echo "Mirror is unreachable" && exit 1 |
pankso@49 | 398 fi |
pankso@49 | 399 kvers=$(cat $data/linux-version.txt) |
pankso@49 | 400 [ "$up" ] && rm -rf ${data}/linux-${kvers}* |
pankso@49 | 401 echo "Kernel version: $kvers" |
pankso@49 | 402 |
pankso@49 | 403 # Download |
pankso@49 | 404 if [ ! -f "$data/linux-$kvers.tazpkg" ]; then |
pankso@49 | 405 echo -n "Fetching latest Linux package..." |
pankso@49 | 406 wget -q ${rpi_mirror}/linux-${kvers}.tazpkg \ |
pankso@49 | 407 -O ${data}/linux-${kvers}.tazpkg; status |
pankso@49 | 408 fi |
pankso@49 | 409 |
pankso@49 | 410 # Extract |
pankso@49 | 411 if [ ! -d "$data/linux-$kvers" ]; then |
pankso@49 | 412 cd ${data} && tazpkg extract linux-${kvers}.tazpkg |
pankso@49 | 413 fi |
pankso@49 | 414 rm -f ${data}/linux-version.txt ;; |
pankso@49 | 415 |
pankso@49 | 416 get-prebuilt) |
pankso@49 | 417 # --> in cross ?? |
pankso@49 | 418 : ${arch=arm} |
pankso@49 | 419 name="slitaz-$arch-toolchain" |
pankso@49 | 420 vers="20140304" |
pankso@49 | 421 tarball="$name-$vers.tar.bz2" |
pankso@49 | 422 url="http://mirror.slitaz.org/packages/cross/" |
pankso@49 | 423 mkdir -p /cross |
pankso@49 | 424 cd /cross |
pankso@49 | 425 if [ ! -f "$tarball" ]; then |
pankso@49 | 426 if busybox wget -qs ${url%/}/${tarball}; then |
pankso@49 | 427 busybox wget ${url%/}/${tarball} |
pankso@49 | 428 else |
pankso@49 | 429 echo "Toolchain URL is unreachable" && exit 1 |
pankso@49 | 430 fi |
pankso@49 | 431 fi |
pankso@49 | 432 if [ ! -d "${name}-${vers}" ]; then |
pankso@49 | 433 echo "Extracting: $tarball" |
pankso@49 | 434 tar xjf ${tarball} |
pankso@49 | 435 fi |
pankso@49 | 436 echo "Copying: ${name}-${vers}/${arch}" |
pankso@49 | 437 mkdir -p ${arch} |
pankso@49 | 438 cp -a ${name}-${vers}/${arch}/* ${arch} |
pankso@49 | 439 echo "Tools path: /cross/${arch}/tools/bin" ;; |
pankso@49 | 440 |
pankso@49 | 441 clone-fw) |
pankso@49 | 442 clone_fw ;; |
pankso@49 | 443 |
pankso@49 | 444 release) |
pankso@49 | 445 # Used to release official SliTaz RPi images |
pankso@49 | 446 cd ${distro} || exit 1 |
pankso@49 | 447 if [ ! "$flavor" ]; then |
pankso@49 | 448 . $distro/rootfs/etc/slitaz/flavor.conf || exit 1 |
pankso@49 | 449 flavor="$FLAVOR" |
pankso@49 | 450 fi |
pankso@54 | 451 dname="slitaz-$flavor-$(date +%Y%m%d)" |
pankso@49 | 452 dsize=$(du -sh $distro | awk '{print $1}' | cut -d "." -f 1) |
pankso@54 | 453 rm -rf ${dname} && mkdir ${dname} |
pankso@54 | 454 cp -a boot rootfs ${dname} |
pankso@54 | 455 cat > ${dname}/README << EOT |
pankso@55 | 456 SliTaz Raspberry Pi - $flavor-$(date +%Y%m%d) - http://arm.slitaz.org/rpi |
pankso@54 | 457 -------------------------------------------------------------------------------- |
pankso@54 | 458 |
pankso@55 | 459 boot/ : Must be copied to a FAT32 partition |
pankso@55 | 460 rootfs/ : Must be copied to a ext4 or btrfs partition |
pankso@55 | 461 |
paul@56 | 462 Manual Installation. Assuming the sdcard is /dev/sdc and has got 3 |
pankso@54 | 463 partitions (boot,swap,root). Mount the sdcard, copy files, unmount: |
pankso@54 | 464 |
pankso@54 | 465 # mkdir -p /media/rpi/boot /media/rpi/root |
pankso@55 | 466 |
pankso@54 | 467 # mount /dev/sdc1 /media/rpi/boot |
pankso@54 | 468 # mount /dev/sdc3 /media/rpi/root |
pankso@55 | 469 |
pankso@54 | 470 # cp -a boot/* /media/rpi/boot |
pankso@54 | 471 # cp -a rootfs/* /media/rpi/root |
pankso@55 | 472 |
pankso@54 | 473 # umount /media/rpi/boot |
pankso@54 | 474 # umount /media/rpi/root |
pankso@55 | 475 |
pankso@55 | 476 -------------------------------------------------------------------------------- |
pankso@55 | 477 |
pankso@54 | 478 EOT |
pankso@55 | 479 echo "Creating: ${dname}.tar.xz" |
pankso@55 | 480 tar -cJf ${dname}.tar.xz ${dname} |
pankso@55 | 481 echo "Creating: ${dname}.md5" |
pankso@55 | 482 md5sum ${dname}.tar.xz > ${dname}.md5 |
pankso@55 | 483 rm -rf ${dname} ;; |
pankso@49 | 484 |
pankso@49 | 485 clean) |
pankso@49 | 486 echo "Cleaning: $rpi" |
pankso@49 | 487 rm -rf ${data} |
pankso@49 | 488 [ "$git" ] && rm -rf ${rpi_git} ;; |
pankso@49 | 489 *) usage ;; |
pankso@49 | 490 esac |
pankso@49 | 491 exit 0 |