Skip to content

Commit

Permalink
Merge pull request #902 from pavel-demin/develop
Browse files Browse the repository at this point in the history
add scanner/app and alpine-scanner.sh
  • Loading branch information
pavel-demin authored Nov 20, 2019
2 parents 9320697 + d3e0f25 commit 4c13ccb
Show file tree
Hide file tree
Showing 4 changed files with 226 additions and 0 deletions.
26 changes: 26 additions & 0 deletions projects/scanner/app/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Scanning system</title>
<link rel="stylesheet" href="/css/main.css">
<link rel="stylesheet" href="/css/pygments.css">
</head>
<body>
<div id="header">
<div id="logo">
<a href="/">Back to all apps</a>
</div>
<div id="menu">
<a href="https://github.com/pavel-demin/red-pitaya-notes" target="_blank">Source</a>
<a href="https://github.com/pavel-demin/red-pitaya-notes/issues" target="_blank">Issues</a>
</div>
</div>
<div id="content">
<h1>Scanning system</h1>
<p>The Red Pitaya Scanning system is ready.</p>
<p>Now you can run the control program.</p>
<p>More details about this application can be found at <a href="http://pavel-demin.github.io/red-pitaya-notes/scanner/" target="_blank">this link</a>.</p>
</div>
</body>
</html>
9 changes: 9 additions & 0 deletions projects/scanner/app/start.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#! /bin/sh

apps_dir=/media/mmcblk0p1/apps

source $apps_dir/stop.sh

cat $apps_dir/scanner/scanner.bit > /dev/xdevcfg

$apps_dir/scanner/scanner &
3 changes: 3 additions & 0 deletions projects/scanner/app/stop.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#! /bin/sh

killall -q scanner
188 changes: 188 additions & 0 deletions scripts/alpine-scanner.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,188 @@
alpine_url=http://dl-cdn.alpinelinux.org/alpine/v3.9

uboot_tar=alpine-uboot-3.9.0-armv7.tar.gz
uboot_url=$alpine_url/releases/armv7/$uboot_tar

tools_tar=apk-tools-static-2.10.3-r1.apk
tools_url=$alpine_url/main/armv7/$tools_tar

firmware_tar=linux-firmware-other-20190322-r0.apk
firmware_url=$alpine_url/main/armv7/$firmware_tar

linux_dir=tmp/linux-4.19
linux_ver=4.19.84-xilinx

modules_dir=alpine-modloop/lib/modules/$linux_ver

passwd=changeme

test -f $uboot_tar || curl -L $uboot_url -o $uboot_tar
test -f $tools_tar || curl -L $tools_url -o $tools_tar

test -f $firmware_tar || curl -L $firmware_url -o $firmware_tar

for tar in linux-firmware-ath9k_htc-20190322-r0.apk linux-firmware-brcm-20190322-r0.apk linux-firmware-rtlwifi-20190322-r0.apk
do
url=$alpine_url/main/armv7/$tar
test -f $tar || curl -L $url -o $tar
done

mkdir alpine-uboot
tar -zxf $uboot_tar --directory=alpine-uboot

mkdir alpine-apk
tar -zxf $tools_tar --directory=alpine-apk --warning=no-unknown-keyword

mkdir alpine-initramfs
cd alpine-initramfs

gzip -dc ../alpine-uboot/boot/initramfs-vanilla | cpio -id
rm -rf etc/modprobe.d
rm -rf lib/firmware
rm -rf lib/modules
rm -rf var
find . | sort | cpio --quiet -o -H newc | gzip -9 > ../initrd.gz

cd ..

mkimage -A arm -T ramdisk -C gzip -d initrd.gz uInitrd

mkdir -p $modules_dir/kernel

find $linux_dir -name \*.ko -printf '%P\0' | tar --directory=$linux_dir --owner=0 --group=0 --null --files-from=- -zcf - | tar -zxf - --directory=$modules_dir/kernel

cp $linux_dir/modules.order $linux_dir/modules.builtin $modules_dir/

depmod -a -b alpine-modloop $linux_ver

tar -zxf $firmware_tar --directory=alpine-modloop/lib/modules --warning=no-unknown-keyword --strip-components=1 --wildcards lib/firmware/ar* lib/firmware/rt*

for tar in linux-firmware-ath9k_htc-20190322-r0.apk linux-firmware-brcm-20190322-r0.apk linux-firmware-rtlwifi-20190322-r0.apk
do
tar -zxf $tar --directory=alpine-modloop/lib/modules --warning=no-unknown-keyword --strip-components=1
done

mksquashfs alpine-modloop/lib modloop -b 1048576 -comp xz -Xdict-size 100%

rm -rf alpine-uboot alpine-initramfs initrd.gz alpine-modloop

root_dir=alpine-root

mkdir -p $root_dir/usr/bin
cp /usr/bin/qemu-arm-static $root_dir/usr/bin/

mkdir -p $root_dir/etc
cp /etc/resolv.conf $root_dir/etc/

mkdir -p $root_dir/etc/apk
mkdir -p $root_dir/media/mmcblk0p1/cache
ln -s /media/mmcblk0p1/cache $root_dir/etc/apk/cache

cp -r alpine/etc $root_dir/
sed -i '1,1d' $root_dir/etc/local.d/apps.start
mkdir $root_dir/media/mmcblk0p1/apps

for project in scanner
do
mkdir -p $root_dir/media/mmcblk0p1/apps/$project
cp -r projects/$project/server/* $root_dir/media/mmcblk0p1/apps/$project/
cp -r projects/$project/app/* $root_dir/media/mmcblk0p1/apps/$project/
cp tmp/$project.bit $root_dir/media/mmcblk0p1/apps/$project/
done

cp -r alpine-apk/sbin $root_dir/

chroot $root_dir /sbin/apk.static --repository $alpine_url/main --update-cache --allow-untrusted --initdb add alpine-base

echo $alpine_url/main > $root_dir/etc/apk/repositories
echo $alpine_url/community >> $root_dir/etc/apk/repositories

chroot $root_dir /bin/sh <<- EOF_CHROOT
apk update
apk add haveged openssh iw wpa_supplicant dhcpcd dnsmasq hostapd iptables avahi dbus dcron chrony musl-dev curl wget less nano bc
ln -s /etc/init.d/bootmisc etc/runlevels/boot/bootmisc
ln -s /etc/init.d/hostname etc/runlevels/boot/hostname
ln -s /etc/init.d/hwdrivers etc/runlevels/boot/hwdrivers
ln -s /etc/init.d/modloop etc/runlevels/boot/modloop
ln -s /etc/init.d/swclock etc/runlevels/boot/swclock
ln -s /etc/init.d/sysctl etc/runlevels/boot/sysctl
ln -s /etc/init.d/syslog etc/runlevels/boot/syslog
ln -s /etc/init.d/urandom etc/runlevels/boot/urandom
ln -s /etc/init.d/killprocs etc/runlevels/shutdown/killprocs
ln -s /etc/init.d/mount-ro etc/runlevels/shutdown/mount-ro
ln -s /etc/init.d/savecache etc/runlevels/shutdown/savecache
ln -s /etc/init.d/devfs etc/runlevels/sysinit/devfs
ln -s /etc/init.d/dmesg etc/runlevels/sysinit/dmesg
ln -s /etc/init.d/mdev etc/runlevels/sysinit/mdev
rc-update add avahi-daemon default
rc-update add chronyd default
rc-update add dhcpcd default
rc-update add local default
rc-update add dcron default
rc-update add haveged default
rc-update add sshd default
mkdir -p etc/runlevels/wifi
rc-update -s add default wifi
rc-update add iptables wifi
rc-update add dnsmasq wifi
rc-update add hostapd wifi
sed -i 's/^SAVE_ON_STOP=.*/SAVE_ON_STOP="no"/;s/^IPFORWARD=.*/IPFORWARD="yes"/' etc/conf.d/iptables
sed -i 's/^#PermitRootLogin.*/PermitRootLogin yes/' etc/ssh/sshd_config
echo root:$passwd | chpasswd
setup-hostname red-pitaya
hostname red-pitaya
sed -i 's/^# LBU_MEDIA=.*/LBU_MEDIA=mmcblk0p1/' etc/lbu/lbu.conf
cat <<- EOF_CAT > root/.profile
alias rw='mount -o rw,remount /media/mmcblk0p1'
alias ro='mount -o ro,remount /media/mmcblk0p1'
EOF_CAT
ln -s /media/mmcblk0p1/apps root/apps
ln -s /media/mmcblk0p1/wifi root/wifi
lbu add root
lbu delete etc/resolv.conf
lbu delete root/.ash_history
lbu commit -d
apk add make gcc
for project in scanner
do
make -C /media/mmcblk0p1/apps/\$project clean
make -C /media/mmcblk0p1/apps/\$project
done
EOF_CHROOT

cp -r $root_dir/media/mmcblk0p1/apps .
cp -r $root_dir/media/mmcblk0p1/cache .
cp $root_dir/media/mmcblk0p1/red-pitaya.apkovl.tar.gz .

sed -i '5,6d' apps/scanner/start.sh
rm -f apps/scanner/index.html
cp apps/scanner/start.sh .

cp -r alpine/wifi .

hostname -F /etc/hostname

rm -rf $root_dir alpine-apk

zip -r red-pitaya-alpine-3.9-armv7-`date +%Y%m%d`-scanner.zip apps boot.bin cache devicetree.dtb modloop red-pitaya.apkovl.tar.gz start.sh uEnv.txt uImage uInitrd wifi

rm -rf apps cache modloop red-pitaya.apkovl.tar.gz start.sh uInitrd wifi

0 comments on commit 4c13ccb

Please sign in to comment.