Makefile: versioning, add minisatip icons, uboot script generator
This commit is contained in:
parent
bbeda3d499
commit
3aa2d34426
40
Makefile
40
Makefile
@ -1,3 +1,5 @@
|
|||||||
|
BUILD=1
|
||||||
|
VERSION=$(shell date +%Y%m%d%H%M)-$(BUILD)
|
||||||
CPUS=4
|
CPUS=4
|
||||||
STLINUX=/opt/STM/STLinux-2.4
|
STLINUX=/opt/STM/STLinux-2.4
|
||||||
TOOLPATH=$(STLINUX)/host/bin
|
TOOLPATH=$(STLINUX)/host/bin
|
||||||
@ -33,22 +35,50 @@ endef
|
|||||||
.PHONY: all
|
.PHONY: all
|
||||||
all: kernel-axe-modules kernel
|
all: kernel-axe-modules kernel
|
||||||
|
|
||||||
|
.PHONY: release
|
||||||
|
release: kernel-axe-modules out/idl4k.scr
|
||||||
|
-ls -la out
|
||||||
|
|
||||||
#
|
#
|
||||||
# create CPIO
|
# create CPIO
|
||||||
#
|
#
|
||||||
|
|
||||||
fs.cpio: minisatip
|
fs.cpio: minisatip
|
||||||
fakeroot tools/do_min_fs.py \
|
fakeroot tools/do_min_fs.py \
|
||||||
-b "bash strace ldd" \
|
-r "$(VERSION)" \
|
||||||
|
-b "bash strace" \
|
||||||
$(foreach m,$(EXTRA_AXE_MODULES), -e "$(EXTRA_AXE_MODULES_DIR)/$(m):lib/modules/$(m)") \
|
$(foreach m,$(EXTRA_AXE_MODULES), -e "$(EXTRA_AXE_MODULES_DIR)/$(m):lib/modules/$(m)") \
|
||||||
$(foreach m,$(ORIG_FILES), -e "$(EXTRA_AXE_MODULES_DIR)/../$(m):root") \
|
$(foreach m,$(ORIG_FILES), -e "$(EXTRA_AXE_MODULES_DIR)/../$(m):root") \
|
||||||
$(foreach f,$(DROPBEAR_SBIN_FILES), -e "apps/$(DROPBEAR)/$(f):sbin/$(f)") \
|
$(foreach f,$(DROPBEAR_SBIN_FILES), -e "apps/$(DROPBEAR)/$(f):sbin/$(f)") \
|
||||||
$(foreach f,$(DROPBEAR_BIN_FILES), -e "apps/$(DROPBEAR)/$(f):usr/bin/$(f)") \
|
$(foreach f,$(DROPBEAR_BIN_FILES), -e "apps/$(DROPBEAR)/$(f):usr/bin/$(f)") \
|
||||||
-e "apps/minisatip/minisatip:sbin/minisatip"
|
-e "apps/minisatip/minisatip:sbin/minisatip" \
|
||||||
|
-e "apps/minisatip/icons/lr.jpg:usr/share/minisatip/icons/lr.jpg" \
|
||||||
|
-e "apps/minisatip/icons/lr.png:usr/share/minisatip/icons/lr.png" \
|
||||||
|
-e "apps/minisatip/icons/sm.jpg:usr/share/minisatip/icons/sm.jpg" \
|
||||||
|
-e "apps/minisatip/icons/sm.png:usr/share/minisatip/icons/sm.png"
|
||||||
|
|
||||||
.PHONY: fs-list
|
.PHONY: fs-list
|
||||||
fs-list:
|
fs-list:
|
||||||
cpio -itv < kernel/rootfs-idl4k.cpio
|
cpio -itv < kernel/rootfs-idl4k.cpio
|
||||||
|
|
||||||
|
#
|
||||||
|
# uboot
|
||||||
|
#
|
||||||
|
|
||||||
|
out/idl4k.scr: patches/uboot.script out/satip-axe-$(VERSION).fw
|
||||||
|
rm -f out/*.scr
|
||||||
|
sed -e 's/@VERSION@/$(VERSION)/g' \
|
||||||
|
< patches/uboot.script > out/uboot.script
|
||||||
|
$(TOOLPATH)/mkimage -T script -C none \
|
||||||
|
-n 'SAT>IP AXE fw v$(VERSION)' \
|
||||||
|
-d out/uboot.script out/idl4k.scr
|
||||||
|
-rm out/uboot.script
|
||||||
|
|
||||||
|
out/satip-axe-$(VERSION).fw: kernel/arch/sh/boot/uImage.gz
|
||||||
|
mkdir -p out
|
||||||
|
rm -f out/*.fw
|
||||||
|
cp -av kernel/arch/sh/boot/uImage.gz out/satip-axe-$(VERSION).fw
|
||||||
|
|
||||||
#
|
#
|
||||||
# kernel
|
# kernel
|
||||||
#
|
#
|
||||||
@ -56,13 +86,15 @@ fs-list:
|
|||||||
kernel/.config: toolchain/4.5.3-99/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux-gcc-4.5.3
|
kernel/.config: toolchain/4.5.3-99/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux-gcc-4.5.3
|
||||||
make -C kernel -j $(CPUS) ARCH=sh CROSS_COMPILE=$(TOOLCHAIN_KERNEL)/bin/sh4-linux- idl4k_defconfig
|
make -C kernel -j $(CPUS) ARCH=sh CROSS_COMPILE=$(TOOLCHAIN_KERNEL)/bin/sh4-linux- idl4k_defconfig
|
||||||
|
|
||||||
.PHONY: kernel
|
kernel/arch/sh/boot/uImage.gz: toolchain/4.5.3-99/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux-gcc-4.5.3 kernel/.config fs.cpio
|
||||||
kernel: toolchain/4.5.3-99/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux-gcc-4.5.3 kernel/.config fs.cpio
|
|
||||||
mv fs.cpio kernel/rootfs-idl4k.cpio
|
mv fs.cpio kernel/rootfs-idl4k.cpio
|
||||||
make -C kernel -j $(CPUS) ARCH=sh CROSS_COMPILE=$(TOOLCHAIN_KERNEL)/bin/sh4-linux- modules
|
make -C kernel -j $(CPUS) ARCH=sh CROSS_COMPILE=$(TOOLCHAIN_KERNEL)/bin/sh4-linux- modules
|
||||||
make -C kernel -j ${CPUS} PATH="$(PATH):$(TOOLPATH)" \
|
make -C kernel -j ${CPUS} PATH="$(PATH):$(TOOLPATH)" \
|
||||||
ARCH=sh CROSS_COMPILE=$(TOOLCHAIN_KERNEL)/bin/sh4-linux- uImage.gz
|
ARCH=sh CROSS_COMPILE=$(TOOLCHAIN_KERNEL)/bin/sh4-linux- uImage.gz
|
||||||
|
|
||||||
|
.PHONY: kernel
|
||||||
|
kernel: kernel/arch/sh/boot/uImage.gz
|
||||||
|
|
||||||
.PHONY: kernel-mrproper
|
.PHONY: kernel-mrproper
|
||||||
kernel-mrproper:
|
kernel-mrproper:
|
||||||
make -C kernel ARCH=sh CROSS_COMPILE=$(TOOLCHAIN_KERNEL)/bin/sh4-linux- mrproper
|
make -C kernel ARCH=sh CROSS_COMPILE=$(TOOLCHAIN_KERNEL)/bin/sh4-linux- mrproper
|
||||||
|
12
README.md
12
README.md
@ -1,5 +1,12 @@
|
|||||||
# satip-axe
|
# satip-axe
|
||||||
|
|
||||||
|
A firmware with minisatip for Inverto IDL-400s/Grundig GSS.BOX/Telestar Digibit R1
|
||||||
|
**********************************************************************************
|
||||||
|
|
||||||
|
Releases:
|
||||||
|
|
||||||
|
- see to dist directory
|
||||||
|
|
||||||
Requirements:
|
Requirements:
|
||||||
|
|
||||||
- git, python
|
- git, python
|
||||||
@ -11,12 +18,13 @@ Compilation:
|
|||||||
- just type 'make'
|
- just type 'make'
|
||||||
- kernel with rootfs is in kernel/arch/sh/boot/uImage.gz
|
- kernel with rootfs is in kernel/arch/sh/boot/uImage.gz
|
||||||
|
|
||||||
Booting uImage.gz on Inverto IDL-400s/Grundig GSS.BOX/Inverto IDL-400S from USB:
|
Booting uImage.gz on Inverto IDL-400S/Grundig GSS.BOX/Telestar Digibit R1 from USB:
|
||||||
|
|
||||||
- connect TTL USB serial adapter to J3 connector (4 pins at the power supply)
|
- connect TTL USB serial adapter to J3 connector (4 pins at the power supply)
|
||||||
- pin 1 = 3.6V (do not use), pin 2 = GND, pin 3 = RXD (STM CPU), pin 4 = TXD (STM CPU)
|
- pin 1 = 3.6V (do not use), pin 2 = GND, pin 3 = RXD (STM CPU), pin 4 = TXD (STM CPU)
|
||||||
- parameters: 115200,8N1
|
- parameters: 115200,8N1
|
||||||
- press 'Enter' when you turn on the box (you have only one second) to get 'idl4k> ' prompt
|
- press 'Enter' when you turn on the box (you have only one second) to get 'idl4k> ' prompt
|
||||||
|
(it seems that 'Enter' is required also to enable the serial console)
|
||||||
- modify bootargs (optional - for original firmware)
|
- modify bootargs (optional - for original firmware)
|
||||||
|
|
||||||
set bootargs=console=ttyAS0,115200
|
set bootargs=console=ttyAS0,115200
|
||||||
@ -31,5 +39,5 @@ Booting uImage.gz on Inverto IDL-400s/Grundig GSS.BOX/Inverto IDL-400S from USB:
|
|||||||
|
|
||||||
Configuration
|
Configuration
|
||||||
|
|
||||||
- dhcp client, telnetd and dropbear (ssh daemon) are active by default
|
- dhcp client, telnetd, dropbear (ssh daemon) and minisatip are active by default
|
||||||
- configuration is stored in /etc/sysconfig/config
|
- configuration is stored in /etc/sysconfig/config
|
||||||
|
@ -17,3 +17,9 @@ TELNETD="yes"
|
|||||||
# dropbear
|
# dropbear
|
||||||
#
|
#
|
||||||
DROPBEAR="yes"
|
DROPBEAR="yes"
|
||||||
|
|
||||||
|
#
|
||||||
|
# minisatip
|
||||||
|
#
|
||||||
|
MINISATIP="yes"
|
||||||
|
MINISATIP_OPTS=""
|
||||||
|
@ -6,6 +6,8 @@ if test "$DROPBEAR" != "yes"; then
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
sleep 5
|
||||||
|
|
||||||
if ! test -r /etc/dropbear/dropbear_dss_host_key; then
|
if ! test -r /etc/dropbear/dropbear_dss_host_key; then
|
||||||
mkdir -p /etc/dropbear
|
mkdir -p /etc/dropbear
|
||||||
if test -r /etc/sysconfig/dropbear_dss_host_key; then
|
if test -r /etc/sysconfig/dropbear_dss_host_key; then
|
||||||
|
@ -33,9 +33,17 @@ ln -s /mnt/data/satip-axe/sysconfig /etc/sysconfig
|
|||||||
if ! test -r /etc/sysconfig/config ; then
|
if ! test -r /etc/sysconfig/config ; then
|
||||||
cp /etc/config.default /etc/sysconfig/config
|
cp /etc/config.default /etc/sysconfig/config
|
||||||
fi
|
fi
|
||||||
|
if test -r /etc/sysconfig/passwd ; then
|
||||||
|
cp /etc/sysconfig/passwd /etc/passwd
|
||||||
|
fi
|
||||||
|
|
||||||
# basic network
|
# basic network
|
||||||
hostname satip-axe
|
hostname satip-axe
|
||||||
ifconfig lo 127.0.0.1 netmask 255.255.255.0
|
ifconfig lo 127.0.0.1 netmask 255.255.255.0
|
||||||
ifconfig eth0 up
|
ifconfig eth0 up
|
||||||
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
|
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
|
||||||
|
|
||||||
|
# local boot
|
||||||
|
if test -x /etc/sysconfig/localboot ; then
|
||||||
|
/etc/sysconfig/localboot
|
||||||
|
fi
|
||||||
|
13
fs-add/etc/init.d/satip
Executable file
13
fs-add/etc/init.d/satip
Executable file
@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
test -r /etc/sysconfig/config && . /etc/sysconfig/config
|
||||||
|
|
||||||
|
if test "$MINISATIP" != "yes"; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd /tmp
|
||||||
|
while test 1 -eq 1; do
|
||||||
|
minisatip -f -g $MINISATIP_OPTS
|
||||||
|
logger "minisatip exited $?, restarting"
|
||||||
|
done
|
@ -2,8 +2,10 @@
|
|||||||
|
|
||||||
test -r /etc/sysconfig/config && . /etc/sysconfig/config
|
test -r /etc/sysconfig/config && . /etc/sysconfig/config
|
||||||
|
|
||||||
if test "$DROPBEAR" != "yes"; then
|
if test "$TELNETD" != "yes"; then
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
sleep 5
|
||||||
|
|
||||||
exec /usr/sbin/telnetd -F -l /bin/login
|
exec /usr/sbin/telnetd -F -l /bin/login
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
|
|
||||||
Welcome to SATIP-AXE server
|
Welcome to SATIP-AXE server @VERSION@
|
5
fs-add/init
Executable file
5
fs-add/init
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/busybox sh
|
||||||
|
|
||||||
|
export TZ=":/etc/localtime"
|
||||||
|
|
||||||
|
exec /bin/busybox init
|
3
patches/uboot.script
Normal file
3
patches/uboot.script
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
fatload usb 0 0x84000000 satip-axe-@VERSION@.fw
|
||||||
|
set bootargs console=ttyAS0,115200 bigphysarea=20000
|
||||||
|
bootm 0x84000000
|
@ -171,7 +171,6 @@ def setup_busybox():
|
|||||||
run_cmd('cp ' + target_prefix + '/bin/busybox fs/bin')
|
run_cmd('cp ' + target_prefix + '/bin/busybox fs/bin')
|
||||||
|
|
||||||
run_cmd(' ln -s /bin/busybox fs/sbin/init')
|
run_cmd(' ln -s /bin/busybox fs/sbin/init')
|
||||||
run_cmd(' ln -s /bin/busybox fs/init')
|
|
||||||
run_cmd(' ln -s /bin/busybox fs/bin/sh')
|
run_cmd(' ln -s /bin/busybox fs/bin/sh')
|
||||||
|
|
||||||
#-----------------------------------------------
|
#-----------------------------------------------
|
||||||
@ -297,13 +296,11 @@ def gen_fs(lib_list, init_type):
|
|||||||
run_cmd('cp -d ' + target_prefix + '/lib/libnss_nis*' + ' fs/lib/')
|
run_cmd('cp -d ' + target_prefix + '/lib/libnss_nis*' + ' fs/lib/')
|
||||||
run_cmd('cp -d ' + target_prefix + '/lib/libnss_nisplus*' + ' fs/lib/')
|
run_cmd('cp -d ' + target_prefix + '/lib/libnss_nisplus*' + ' fs/lib/')
|
||||||
|
|
||||||
# libgcc_s.so.1 is reqired from libpthread but it's not possible get it by ldd cmd
|
|
||||||
for i in lib_list:
|
|
||||||
if i.find('libpthread') >= 0:
|
|
||||||
run_cmd('cp -a ' + target_prefix + '/lib/libgcc_*' + ' fs/lib/')
|
|
||||||
print '\t======================================='
|
|
||||||
|
|
||||||
# other libs
|
# other libs
|
||||||
|
run_cmd('cp -d ' + target_prefix + '/lib/libutil*' + ' fs/lib/')
|
||||||
|
run_cmd('cp -d ' + target_prefix + '/lib/librt*' + ' fs/lib/')
|
||||||
|
run_cmd('cp -d ' + target_prefix + '/lib/libpthread*' + ' fs/lib/')
|
||||||
|
run_cmd('cp -a ' + target_prefix + '/lib/libgcc_*' + ' fs/lib/')
|
||||||
run_cmd('cp -d ' + target_prefix + '/usr/lib/libz.so*' + ' fs/usr/lib/')
|
run_cmd('cp -d ' + target_prefix + '/usr/lib/libz.so*' + ' fs/usr/lib/')
|
||||||
run_cmd('cp -d ' + target_prefix + '/usr/lib/libstdc++.so*' + ' fs/usr/lib/')
|
run_cmd('cp -d ' + target_prefix + '/usr/lib/libstdc++.so*' + ' fs/usr/lib/')
|
||||||
run_cmd('cp -d ' + target_prefix + '/usr/lib/libglib-2.0.so*' + ' fs/usr/lib/')
|
run_cmd('cp -d ' + target_prefix + '/usr/lib/libglib-2.0.so*' + ' fs/usr/lib/')
|
||||||
@ -335,6 +332,7 @@ def usage():
|
|||||||
print '\n -t, --target_prefix <path> the target path location '
|
print '\n -t, --target_prefix <path> the target path location '
|
||||||
print ' (default: /opt/STM/STLinux-2.4/devkit/sh4/target/)'
|
print ' (default: /opt/STM/STLinux-2.4/devkit/sh4/target/)'
|
||||||
print '\n -e, --extra <file>:<dst> to be added to the filesystem'
|
print '\n -e, --extra <file>:<dst> to be added to the filesystem'
|
||||||
|
print '\n -r, --version <ver>'
|
||||||
print '\n -i --init_type : '
|
print '\n -i --init_type : '
|
||||||
print '\t\t\t busybox '
|
print '\t\t\t busybox '
|
||||||
print '\t\t\t sysv '
|
print '\t\t\t sysv '
|
||||||
@ -351,13 +349,15 @@ def get_menu_opt(argv):
|
|||||||
try:
|
try:
|
||||||
# opts = ''
|
# opts = ''
|
||||||
# args = ''
|
# args = ''
|
||||||
opts , args = getopt.gnu_getopt(argv, 'hb:e:t:i:', ['--init_type', '--binary=', '--extra', '--target_prefix=', '--help'])
|
opts , args = getopt.gnu_getopt(argv, 'hb:e:t:i:r:',
|
||||||
|
['--init_type', '--binary=', '--extra', '--target_prefix=', '--version', '--help'])
|
||||||
except getopt.GetoptError:
|
except getopt.GetoptError:
|
||||||
usage()
|
usage()
|
||||||
target_prefix = ''
|
target_prefix = ''
|
||||||
console = ''
|
console = ''
|
||||||
binary_list=[]
|
binary_list=[]
|
||||||
extra_list=[]
|
extra_list=[]
|
||||||
|
version = ''
|
||||||
for o, v in opts:
|
for o, v in opts:
|
||||||
if o == '-b' or o == '--binary':
|
if o == '-b' or o == '--binary':
|
||||||
v = v.split(' ') # take out all blank spaces and replace the v string with binary_list
|
v = v.split(' ') # take out all blank spaces and replace the v string with binary_list
|
||||||
@ -373,6 +373,8 @@ def get_menu_opt(argv):
|
|||||||
target_prefix = v
|
target_prefix = v
|
||||||
elif o == '-i' or o == '--init_type':
|
elif o == '-i' or o == '--init_type':
|
||||||
console = v
|
console = v
|
||||||
|
elif o == '-r' or o == '--version':
|
||||||
|
version = v
|
||||||
elif o == '-h' or o == '--help':
|
elif o == '-h' or o == '--help':
|
||||||
usage()
|
usage()
|
||||||
params = []
|
params = []
|
||||||
@ -380,6 +382,7 @@ def get_menu_opt(argv):
|
|||||||
params.append(console)
|
params.append(console)
|
||||||
params.append(target_prefix)
|
params.append(target_prefix)
|
||||||
params.append(extra_list)
|
params.append(extra_list)
|
||||||
|
params.append(version)
|
||||||
return params
|
return params
|
||||||
|
|
||||||
#-----------------------------------------
|
#-----------------------------------------
|
||||||
@ -497,6 +500,7 @@ user_param = ['', '', '']
|
|||||||
user_param = get_menu_opt(sys.argv[1:])
|
user_param = get_menu_opt(sys.argv[1:])
|
||||||
bin_list = user_param[0] # command list to find
|
bin_list = user_param[0] # command list to find
|
||||||
extra_list = user_param[3]
|
extra_list = user_param[3]
|
||||||
|
version = user_param[4]
|
||||||
|
|
||||||
if user_param[1] != '':
|
if user_param[1] != '':
|
||||||
boot_type = user_param[1] # default busybox
|
boot_type = user_param[1] # default busybox
|
||||||
@ -561,6 +565,12 @@ print ' ' + 30*'=' + '\n'
|
|||||||
|
|
||||||
gen_fs(library_list, boot_type)
|
gen_fs(library_list, boot_type)
|
||||||
run_cmd('cp -av fs-add/* fs')
|
run_cmd('cp -av fs-add/* fs')
|
||||||
|
f = open("fs/etc/motd")
|
||||||
|
b = f.read(1024*1024)
|
||||||
|
f.close()
|
||||||
|
f = open("fs/etc/motd", "w+")
|
||||||
|
f.write(b.replace('@VERSION@', version))
|
||||||
|
f.close()
|
||||||
files = run_cmd('find fs -name "*~"')
|
files = run_cmd('find fs -name "*~"')
|
||||||
for f in files:
|
for f in files:
|
||||||
run_cmd('rm ' + f.strip())
|
run_cmd('rm ' + f.strip())
|
||||||
@ -569,5 +579,8 @@ for r in ['usr/bin/bashbug']:
|
|||||||
run_cmd('rm fs/' + r)
|
run_cmd('rm fs/' + r)
|
||||||
for e in extra_list:
|
for e in extra_list:
|
||||||
src, dst = e.split(':')
|
src, dst = e.split(':')
|
||||||
|
dir = os.path.dirname(dst)
|
||||||
|
if not os.path.exists('fs/' + dir):
|
||||||
|
run_cmd('mkdir -p fs/' + dir)
|
||||||
run_cmd('cp ' + src + ' fs/' + dst)
|
run_cmd('cp ' + src + ' fs/' + dst)
|
||||||
do_cpio('fs')
|
do_cpio('fs')
|
||||||
|
Loading…
Reference in New Issue
Block a user