├── Config.ini
├── README.md
├── all-runme.sh
├── angstrom_rootfs
├── angstrom_rootfs.tgz
├── make-angstrom-rootfs-all
├── s9-firmware-xilinx
│ └── upgrade-marker.bin
└── ubi.cfg
├── app-bin
├── bmminer
└── single-board-test
├── auto-mem
├── devicetree.dtb
├── fpga_mem_driver.ko
└── xilinx-BOOT.bin
├── autofreq-sys
├── automem-xilinx-bmminer.sh
├── bmminer.sh
├── minerConfiguration.cgi
├── monitorcg
└── set_miner_conf.cgi
├── c5-runme.sh
├── fixedfreq-sys
├── automem-xilinx-bmminer.sh
├── bmminer.sh
├── minerConfiguration.cgi
├── monitorcg
└── set_miner_conf.cgi
├── makepackage
├── merge
├── all-runme.sh
├── c5-runme.sh
├── ubi_info
├── upgrade-rootfs-ubi
│ ├── .do.sh
│ ├── make-upgrade-rootfs
│ ├── ubi.cfg
│ └── upgrade-rootfs.tgz
├── xilinx-runme.sh
└── xilinx
│ ├── uImage
│ └── upgrade-marker.bin
├── rootfs-C5
├── angstram_rootfs.tgz
├── cp_rootfs_ko_to_make_angstrom-rootfs.jffs2
├── s9-firmware
│ └── upgrade-marker.bin
└── ubi.cfg
├── soc_system.rbf
├── ubi.cfg
└── xilinx-runme.sh
/Config.ini:
--------------------------------------------------------------------------------
1 | [Config]
2 | Name=S9 HASH board
3 | TestDir=/etc/config/minertest64/minertest64_
4 | DataCount=912
5 | PassCount1=912
6 | PassCount2=912
7 | PassCount3=912
8 | Freq=600
9 | Timeout=0
10 | OpenCoreGap=50000
11 | # about temperature
12 | CheckTemp=0
13 | # GetTempFrom 0: get from LM75A through IIC, 1: get from ASIC
14 | GetTempFrom=1
15 | TempSel=0
16 | TempSensor1=62
17 | TempSensor2=0
18 | TempSensor3=0
19 | TempSensor4=0
20 |
21 | DefaultTempOffset=-70
22 | StartSensor=62
23 | StartTemp=0
24 | #AsicInterval can only changed by developer
25 | CoreNum=114
26 | AsicNum=63
27 | TestMode=0
28 | CheckChain=1
29 | Open_Core_Num1=4294967295
30 | Open_Core_Num2=4294967295
31 | Open_Core_Num3=4294967295
32 | Open_Core_Num4=262143
33 | #CommandMode 0:vil 1:fil
34 | CommandMode=0
35 | AsicType=1387
36 | ValidNonce1=57456
37 | ValidNonce2=57456
38 | ValidNonce3=57456
39 | #Pic
40 | Pic_VOLTAGE=1
41 | #Pic_VOLTAGE=0
42 | IICPic=1
43 | DAC=1
44 | UseConfigVol=0
45 | Voltage1=840
46 | Voltage2=840
47 | Voltage3=840
48 | Voltage4=0
49 |
50 | Voltage_e=10
51 | final_voltage1=910
52 | final_voltage2=910
53 | final_voltage3=910
54 | #Time
55 | year=2016
56 | month=5
57 | date=18
58 | hour=10
59 | minute=36
60 | second=12
61 |
62 | freq_gap=0
63 | UseFreqPIC=1
64 | freq_e=0
65 | freq_m=5
66 | freq_a=0
67 | freq_t=1000
68 | force_freq=0
69 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # S9_makepackage
2 | This is tool to create fw package for S9/T9/R4 and other miner with 1387chip
3 | before use this tool, must set an environment :
4 | $XILINX_PACKAGE_BASE_PATH
5 |
6 | for example:
7 | XILINX_PACKAGE_BASE_PATH=/home/XILINX/UBI/make-packages
8 | export XILINX_PACKAGE_BASE_PATH
9 |
10 | This project need mtd utility, which support JFFS2 and UBI.
11 |
12 | To create S9 package:
13 | ./makepackage 550 S9 user all merge
14 | The command line's output will show the position of fw package created.
15 |
16 | 1. 550: is the default freq value, But it is not used in auto freq mode miner.
17 | 2. S9: is the miner type, support: S9 T9 R4 T9+
18 | 3. user: is the package open to consumers. (only can set "user" for fw package.)
19 | 4. all: is the control board type. all means support xilinx board and altera board.
20 | 5. merge: is used to combine the file system for upgrading usage with the normal miner's fw file system together, to fix some miner's failure on upgrade.
21 |
22 |
23 | There are only two application from bitmain: single-board-test and bmminer, which must be copied to app-bin subdir before make package.
24 |
25 | The filesystem of linux and kernel can be complied from : https://github.com/bitmaintech/S9_firmware
26 |
--------------------------------------------------------------------------------
/all-runme.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh -e
2 |
3 | path=$(pwd)
4 |
5 | if [ ! -d /mnt/upgrade ];
6 | then
7 | mkdir /mnt/upgrade
8 | fi
9 |
10 | if [ -e /usr/bin/ctrl_bd ]; then
11 | ret=`cat /usr/bin/ctrl_bd | grep "XILINX" | wc -l`
12 | else
13 | ret=0
14 | fi
15 |
16 | if [ $ret -eq 1 ];then
17 | cd ./xilinx
18 |
19 | if [ ! -e /dev/ubi_ctrl ];then
20 | echo "File system isn't UBI, Please update ubi package first!"
21 | cd $path
22 | rm -rf *.tar.gz
23 | exit 1
24 | fi
25 |
26 | if [ -e BOOT.bin ]; then
27 | flash_erase /dev/mtd0 0x0 0x80 >/dev/null 2>&1
28 | nandwrite -p -s 0x0 /dev/mtd0 ./BOOT.bin >/dev/null 2>&1
29 | rm -rf BOOT.bin
30 | fi
31 |
32 | if [ -e devicetree.dtb ]; then
33 | flash_erase /dev/mtd0 0x1020000 0x1 >/dev/null 2>&1
34 | nandwrite -p -s 0x1020000 /dev/mtd0 ./devicetree.dtb >/dev/null 2>&1
35 | rm devicetree.dtb
36 | fi
37 |
38 | if [ -e uImage ]; then
39 | flash_erase /dev/mtd0 0x1100000 0x40 >/dev/null 2>&1
40 | nandwrite -p -s 0x1100000 /dev/mtd0 ./uImage >/dev/null 2>&1
41 | rm uImage
42 | fi
43 |
44 | if [ -e rootfs.jffs2 ]; then
45 | if [ -f /dev/mtd3 ];then
46 | flash_erase /dev/mtd2 0x0 0x1E0 >/dev/null 2>&1
47 | else
48 | flash_erase /dev/mtd2 0x0 0x280 >/dev/null 2>&1
49 | fi
50 | nandwrite -p -s 0x0 /dev/mtd2 ./rootfs.jffs2 >/dev/null 2>&1
51 | rm rootfs.jffs2
52 | fi
53 |
54 | ubiattach /dev/ubi_ctrl -m 2
55 | mount -t ubifs ubi1:rootfs /mnt/upgrade
56 |
57 | cd /mnt/upgrade/upgrade
58 | rm -rf /mnt/upgrade/upgrade/*
59 | cd $path
60 |
61 | if [ -e ./xilinx/angstrom_rootfs.jffs2 ];then
62 | md5=`md5sum ./xilinx/angstrom_rootfs.jffs2 | awk {'print $1'}`
63 | md5_r=`cat ubi_info`
64 | if [ $md5 == $md5_r ];then
65 | cp -rf ./xilinx/angstrom_rootfs.jffs2 /mnt/upgrade/upgrade
66 | if [ -f /dev/mtd3 ];then
67 | flash_erase /dev/mtd3 0 0xa0 >/dev/null 2>&1
68 | fi
69 | fi
70 | fi
71 | flash_erase /dev/mtd0 0x1040000 0x1 >/dev/null 2>&1
72 | nandwrite -p -s 0x1040000 /dev/mtd0 ./xilinx/upgrade-marker.bin >/dev/null 2>&1
73 |
74 | sync
75 |
76 | umount /mnt/upgrade
77 | ubidetach -d 1 /dev/ubi_ctrl
78 |
79 | else
80 | mount -t jffs2 /dev/mtdblock4 /mnt/upgrade/
81 | cd /mnt/upgrade/upgrade
82 | rm -rf ./c5/*
83 | cd $path
84 |
85 | cp -rf ./c5/* /mnt/upgrade/upgrade
86 |
87 | flash_erase /dev/mtd2 0x0 0x1 >/dev/null 2>&1
88 | nandwrite -p -s 0x0 /dev/mtd2 /mnt/upgrade/upgrade/upgrade-marker.bin >/dev/null 2>&1
89 |
90 | sync
91 | umount /dev/mtdblock4
92 | fi
93 |
94 | rm -rf *.tar.gz
95 |
96 |
97 | #/sbin/reboot -f &
98 |
--------------------------------------------------------------------------------
/angstrom_rootfs/angstrom_rootfs.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bitmaintech/S9_makepackage/a13be9616dd805f0c6ae0fe9b06bba26487cf0b8/angstrom_rootfs/angstrom_rootfs.tgz
--------------------------------------------------------------------------------
/angstrom_rootfs/make-angstrom-rootfs-all:
--------------------------------------------------------------------------------
1 | #!/bin/bash -e
2 | freq=$1
3 | miner_type=$2
4 |
5 | last_path=(`pwd`)
6 | path=$XILINX_PACKAGE_BASE_PATH/angstrom_rootfs
7 | fs_path=$XILINX_PACKAGE_BASE_PATH/angstrom_rootfs/angstrom_rootfs
8 |
9 | chmod 666 $fs_path/etc/bmminer.conf.factory
10 | sed -i -r "s/\"bitmain-freq\" : \".*\"/\"bitmain-freq\" : \"$freq\"/g" $fs_path/etc/bmminer.conf.factory
11 | chmod 400 $fs_path/etc/bmminer.conf.factory
12 |
13 | echo `date` > $fs_path/usr/bin/compile_time
14 | echo "Antminer $miner_type" >> $fs_path/usr/bin/compile_time
15 |
16 | cd $path
17 | mkfs.ubifs -r $fs_path -o angstrom_rootfs.jffs2.ubi -e 126976 -m 2KiB -c 1024
18 | ubinize -v -o angstrom_rootfs.jffs2 -m 2048 -p 128KiB -s 2048 ubi.cfg
19 | ls -l
20 | rm -rf s9-firmware-xilinx/*.tar.gz
21 | cp angstrom_rootfs.jffs2 s9-firmware-xilinx/
22 | c_time=`date "+%Y%m%d%H%M"`
23 | file_name="Antminer-$miner_type-${c_time}-autoFreq.tar.gz"
24 | cd s9-firmware-xilinx
25 | tar -zcvf "$file_name" *
26 |
27 | cd $last_path
28 |
--------------------------------------------------------------------------------
/angstrom_rootfs/s9-firmware-xilinx/upgrade-marker.bin:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/angstrom_rootfs/ubi.cfg:
--------------------------------------------------------------------------------
1 | [ubifs]
2 | mode=ubi
3 | image=angstrom_rootfs.jffs2.ubi
4 | vol_id=0
5 | vol_type=dynamic
6 | vol_name=rootfs
7 | vol_flags=autoresize
8 | vol_alignment=1
9 |
--------------------------------------------------------------------------------
/app-bin/bmminer:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bitmaintech/S9_makepackage/a13be9616dd805f0c6ae0fe9b06bba26487cf0b8/app-bin/bmminer
--------------------------------------------------------------------------------
/app-bin/single-board-test:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bitmaintech/S9_makepackage/a13be9616dd805f0c6ae0fe9b06bba26487cf0b8/app-bin/single-board-test
--------------------------------------------------------------------------------
/auto-mem/devicetree.dtb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bitmaintech/S9_makepackage/a13be9616dd805f0c6ae0fe9b06bba26487cf0b8/auto-mem/devicetree.dtb
--------------------------------------------------------------------------------
/auto-mem/fpga_mem_driver.ko:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bitmaintech/S9_makepackage/a13be9616dd805f0c6ae0fe9b06bba26487cf0b8/auto-mem/fpga_mem_driver.ko
--------------------------------------------------------------------------------
/auto-mem/xilinx-BOOT.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bitmaintech/S9_makepackage/a13be9616dd805f0c6ae0fe9b06bba26487cf0b8/auto-mem/xilinx-BOOT.bin
--------------------------------------------------------------------------------
/autofreq-sys/automem-xilinx-bmminer.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
4 | DAEMON=/usr/bin/bmminer
5 | NAME=bmminer
6 | DESC="bmminer daemon"
7 | CONFIG_NAME="/config/asic-freq.config"
8 | set -e
9 | #set -x
10 | test -x "$DAEMON" || exit 0
11 |
12 | do_start() {
13 | gateway=$(route -n | grep 'UG[ \t]' | awk '{print $2}')
14 | if [ x"" == x"$gateway" ]; then
15 | gateway="192.168.1.1"
16 | fi
17 | if [ "`ping -w 1 -c 1 $gateway | grep "100%" >/dev/null`" ]; then
18 | prs=1
19 | echo "$gateway is Not reachable"
20 | else
21 | prs=0
22 | echo "$gateway is reachable"
23 | fi
24 | sleep 5s
25 | if [ -z "`lsmod | grep bitmain_axi`" ]; then
26 | echo "No bitmain_axi.ko"
27 | #insmod /lib/modules/`uname -r`/kernel/drivers/bitmain/bitmain-axi.ko
28 | insmod /lib/modules/bitmain_axi.ko
29 | memory_size=`awk '/MemTotal/{total=$2}END{print total}' /proc/meminfo`
30 | echo memory_size = $memory_size
31 | if [ $memory_size -gt 1000000 ]; then
32 | echo "fpga_mem_offset_addr=0x3F000000"
33 | insmod /lib/modules/fpga_mem_driver.ko fpga_mem_offset_addr=0x3F000000
34 | elif [ $memory_size -lt 1000000 -a $memory_size -gt 400000 ]; then
35 | echo "fpga_mem_offset_addr=0x1F000000"
36 | insmod /lib/modules/fpga_mem_driver.ko fpga_mem_offset_addr=0x1F000000
37 | else
38 | echo "fpga_mem_offset_addr=0x0F000000"
39 | insmod /lib/modules/fpga_mem_driver.ko fpga_mem_offset_addr=0x0F000000
40 | fi
41 | else
42 | echo "Have bitmain-axi"
43 | fi
44 | killall -9 bmminer || true
45 | killall -9 single-board-test || true
46 | single-board-test&
47 | }
48 |
49 | do_stop() {
50 | killall -9 bmminer || true
51 | killall -9 single-board-test || true
52 | }
53 | case "$1" in
54 | start)
55 | echo -n "Starting $DESC: "
56 | do_start
57 | echo "$NAME."
58 | ;;
59 | stop)
60 | echo -n "Stopping $DESC: "
61 | do_stop
62 | echo "$NAME."
63 | ;;
64 | restart|force-reload)
65 | echo -n "Restarting $DESC: "
66 | do_stop
67 | do_start
68 | echo "$NAME."
69 | ;;
70 | *)
71 | N=/etc/init.d/$NAME
72 | echo "Usage: $N {start|stop|restart|force-reload}" >&2
73 | exit 1
74 | ;;
75 | esac
76 |
77 | exit 0
78 |
--------------------------------------------------------------------------------
/autofreq-sys/bmminer.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
4 | DAEMON=/usr/bin/bmminer
5 | NAME=bmminer
6 | DESC="bmminer daemon"
7 | CONFIG_NAME="/config/asic-freq.config"
8 | set -e
9 | #set -x
10 | test -x "$DAEMON" || exit 0
11 |
12 | do_start() {
13 | gateway=$(route -n | grep 'UG[ \t]' | awk '{print $2}')
14 | if [ x"" == x"$gateway" ]; then
15 | gateway="192.168.1.1"
16 | fi
17 | if [ "`ping -w 1 -c 1 $gateway | grep "100%" >/dev/null`" ]; then
18 | prs=1
19 | echo "$gateway is Not reachable"
20 | else
21 | prs=0
22 | echo "$gateway is reachable"
23 | fi
24 | sleep 5s
25 | if [ -z "`lsmod | grep bitmain_axi`" ]; then
26 | echo "No bitmain_axi.ko"
27 | #insmod /lib/modules/`uname -r`/kernel/drivers/bitmain/bitmain-axi.ko
28 | insmod /lib/modules/bitmain_axi.ko
29 | insmod /lib/modules/fpga_mem_driver.ko
30 | else
31 | echo "Have bitmain-axi"
32 | fi
33 | killall -9 bmminer || true
34 | killall -9 single-board-test || true
35 | single-board-test&
36 | }
37 |
38 | do_stop() {
39 | killall -9 bmminer || true
40 | killall -9 single-board-test || true
41 | }
42 | case "$1" in
43 | start)
44 | echo -n "Starting $DESC: "
45 | do_start
46 | echo "$NAME."
47 | ;;
48 | stop)
49 | echo -n "Stopping $DESC: "
50 | do_stop
51 | echo "$NAME."
52 | ;;
53 | restart|force-reload)
54 | echo -n "Restarting $DESC: "
55 | do_stop
56 | do_start
57 | echo "$NAME."
58 | ;;
59 | *)
60 | N=/etc/init.d/$NAME
61 | echo "Usage: $N {start|stop|restart|force-reload}" >&2
62 | exit 1
63 | ;;
64 | esac
65 |
66 | exit 0
67 |
--------------------------------------------------------------------------------
/autofreq-sys/minerConfiguration.cgi:
--------------------------------------------------------------------------------
1 | et -x
2 |
3 | create_default_conf_file()
4 | {
5 | (
6 | cat <<'EOF'
7 | {
8 | "pools" : [
9 | {
10 | "url" : "192.168.110.30:3333",
11 | "user" : "antminer_1",
12 | "pass" : "123"
13 | },
14 | {
15 | "url" : "http://stratum.antpool.com:3333",
16 | "user" : "antminer_1",
17 | "pass" : "123"
18 | },
19 | {
20 | "url" : "50.31.149.57:3333",
21 | "user" : "antminer_1",
22 | "pass" : "123"
23 | }
24 | ]
25 | ,
26 | "api-listen" : "true",
27 | "api-network" : "true",
28 | "api-allow" : "W:0/0",
29 | "bitmain-freq": "18:218.75:1106",
30 | "bitmain-voltage": "0725"
31 | }
32 |
33 | EOF
34 | ) > /config/bmminer.conf
35 | }
36 |
37 | if [ ! -f /config/bmminer.conf ] ; then
38 | if [ -f /config/bmminer.conf.factory ] ; then
39 | cp /config/bmminer.conf.factory /config/bmminer.conf
40 | else
41 | create_default_conf_file
42 | fi
43 | fi
44 |
45 | ant_result=`cat /config/bmminer.conf`
46 |
47 | # CGI output must start with at least empty line (or headers)
48 | printf "Content-type: text/html\r\n\r\n"
49 |
50 | cat <<-EOH
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
188 | Ant Miner
189 |
190 |
191 |
192 | Skip to navigation
193 | Skip to content
194 |
195 |
199 |
205 |
206 |
223 |
224 |
229 |
230 |
231 |
234 |
238 |
339 |
340 |
341 |
342 |
343 |
344 |
345 |
346 |
347 |
348 |
349 |
350 | Copyright © 2013-2014, Bitmain Technologies
351 |
352 |
353 |
354 | EOT
355 |
356 |
--------------------------------------------------------------------------------
/autofreq-sys/monitorcg:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | #set -x
3 | check_inter="20s"
4 | while true; do
5 | sleep $check_inter
6 | #date
7 | a="$(ps | grep bmminer | grep -v 'grep bmminer')"
8 |
9 | if [ -z "$a" ] ; then
10 | b="$(ps | grep single-board-test | grep -v 'grep single-board-test')"
11 | if [ -z "$b" ];then
12 | /etc/init.d/bmminer.sh restart
13 | fi
14 | else
15 | if [ "$check_inter" == "20s" ]; then
16 | check_inter="20m"
17 | continue
18 | fi
19 | A=`cat /tmp/cm.log`
20 | B=`bmminer-api devs | grep "^ \[Last Valid Work\]"`
21 | echo "$B" > /tmp/cm.log
22 | if [ "$B" != "" -a "$A" == "$B" ]; then
23 | echo "Case B"
24 | #killall -s 9 bmminer
25 | sleep 1
26 | #/etc/init.d/bmminer.sh restart
27 | fi
28 |
29 | D=`bmminer-api stats | grep "^ \[miner_count\]"`
30 | if [ "$D" == "" ]; then
31 | echo "Case D"
32 | killall -s 9 bmminer
33 | sleep 1
34 | /etc/init.d/bmminer.sh restart
35 | fi
36 | fi
37 | done
38 |
--------------------------------------------------------------------------------
/autofreq-sys/set_miner_conf.cgi:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | #set -x
3 |
4 | ant_pool1url=
5 | ant_pool1user=
6 | ant_pool1pw=
7 | ant_pool2url=
8 | ant_pool2user=
9 | ant_pool2pw=
10 | ant_pool3url=
11 | ant_pool3user=
12 | ant_pool3pw=
13 | ant_nobeeper=
14 | ant_notempoverctrl=
15 | ant_fan_customize_value=
16 | ant_fan_customize_switch=
17 | ant_freq=
18 | ant_voltage=0706
19 |
20 |
21 | ant_input=`cat /dev/stdin`
22 | ant_tmp=${ant_input//&/ }
23 | i=0
24 | for ant_var in ${ant_tmp}
25 | do
26 | ant_var=${ant_var//+/ }
27 | ant_var=${ant_var//%23/#}
28 | ant_var=${ant_var//%24/$}
29 | ant_var=${ant_var//%25/%}
30 | ant_var=${ant_var//%26/&}
31 | ant_var=${ant_var//%2C/,}
32 | ant_var=${ant_var//%2B/+}
33 | ant_var=${ant_var//%3A/:}
34 | ant_var=${ant_var//%3B/;}
35 | ant_var=${ant_var//%3C/<}
36 | ant_var=${ant_var//%3D/=}
37 | ant_var=${ant_var//%3E/>}
38 | ant_var=${ant_var//%3F/?}
39 | ant_var=${ant_var//%40/@}
40 | ant_var=${ant_var//%5B/[}
41 | ant_var=${ant_var//%5D/]}
42 | ant_var=${ant_var//%5E/^}
43 | ant_var=${ant_var//%7B/\{}
44 | ant_var=${ant_var//%7C/|}
45 | ant_var=${ant_var//%7D/\}}
46 | ant_var=${ant_var//%2F/\/}
47 | #ant_var=${ant_var//%22/\"}
48 | #ant_var=${ant_var//%5C/\\}
49 | case ${i} in
50 | 0 )
51 | ant_pool1url=${ant_var/_ant_pool1url=/}
52 | ;;
53 | 1 )
54 | ant_pool1user=${ant_var/_ant_pool1user=/}
55 | ;;
56 | 2 )
57 | ant_pool1pw=${ant_var/_ant_pool1pw=/}
58 | ;;
59 | 3 )
60 | ant_pool2url=${ant_var/_ant_pool2url=/}
61 | ;;
62 | 4 )
63 | ant_pool2user=${ant_var/_ant_pool2user=/}
64 | ;;
65 | 5 )
66 | ant_pool2pw=${ant_var/_ant_pool2pw=/}
67 | ;;
68 | 6 )
69 | ant_pool3url=${ant_var/_ant_pool3url=/}
70 | ;;
71 | 7 )
72 | ant_pool3user=${ant_var/_ant_pool3user=/}
73 | ;;
74 | 8 )
75 | ant_pool3pw=${ant_var/_ant_pool3pw=/}
76 | ;;
77 | 9 )
78 | ant_nobeeper=${ant_var/_ant_nobeeper=/}
79 | ;;
80 | 10 )
81 | ant_notempoverctrl=${ant_var/_ant_notempoverctrl=/}
82 | ;;
83 | 11 )
84 | ant_fan_customize_switch=${ant_var/_ant_fan_customize_switch=/}
85 | ;;
86 | 12 )
87 | ant_fan_customize_value=${ant_var/_ant_fan_customize_value=/}
88 | ;;
89 | 13 )
90 | ant_freq=${ant_var/_ant_freq=/}
91 | ;;
92 | esac
93 | i=`expr $i + 1`
94 | done
95 |
96 | echo "{" > /config/bmminer.conf
97 | echo "\"pools\" : [" >> /config/bmminer.conf
98 | echo "{" >> /config/bmminer.conf
99 | echo "\"url\" : \"${ant_pool1url}\"," >> /config/bmminer.conf
100 | echo "\"user\" : \"${ant_pool1user}\"," >> /config/bmminer.conf
101 | echo "\"pass\" : \"${ant_pool1pw}\"" >> /config/bmminer.conf
102 | echo "}," >> /config/bmminer.conf
103 | echo "{" >> /config/bmminer.conf
104 | echo "\"url\" : \"${ant_pool2url}\"," >> /config/bmminer.conf
105 | echo "\"user\" : \"${ant_pool2user}\"," >> /config/bmminer.conf
106 | echo "\"pass\" : \"${ant_pool2pw}\"" >> /config/bmminer.conf
107 | echo "}," >> /config/bmminer.conf
108 | echo "{" >> /config/bmminer.conf
109 | echo "\"url\" : \"${ant_pool3url}\"," >> /config/bmminer.conf
110 | echo "\"user\" : \"${ant_pool3user}\"," >> /config/bmminer.conf
111 | echo "\"pass\" : \"${ant_pool3pw}\"" >> /config/bmminer.conf
112 | echo "}" >> /config/bmminer.conf
113 | echo "]" >> /config/bmminer.conf
114 | echo "," >> /config/bmminer.conf
115 | echo "\"api-listen\" : "true"," >> /config/bmminer.conf
116 | echo "\"api-network\" : "true"," >> /config/bmminer.conf
117 | echo "\"api-groups\" : \"A:stats:pools:devs:summary:version\"," >> /config/bmminer.conf
118 | echo "\"api-allow\" : \"A:0/0,W:*\"," >> /config/bmminer.conf
119 | if [ "${ant_nobeeper}" = "true" ]; then
120 | echo "\"bitmain-nobeeper\" : "true"," >> /config/bmminer.conf
121 | fi
122 | if [ "${ant_notempoverctrl}" = "true" ]; then
123 | echo "\"bitmain-notempoverctrl\" : "true"," >> /config/bmminer.conf
124 | fi
125 |
126 | if [ "${ant_fan_customize_switch}" = "true" ]; then
127 | echo "\"bitmain-fan-ctrl\" : "true"," >> /config/bmminer.conf
128 | echo "\"bitmain-fan-pwm\" : \"${ant_fan_customize_value}\"," >> /config/bmminer.conf
129 |
130 | fi
131 | echo "\"bitmain-use-vil\" : "true"," >> /config/bmminer.conf
132 | echo "\"bitmain-freq\" : \"${ant_freq}\"," >> /config/bmminer.conf
133 | echo "\"bitmain-voltage\" : \"${ant_voltage}\"," >> /config/bmminer.conf
134 | echo "\"multi-version\" : \"1\"" >> /config/bmminer.conf
135 | echo "}" >> /config/bmminer.conf
136 | sync &
137 | sleep 1s
138 |
139 | cp /www/pages/cgi-bin/minerConfiguration2.cgi /www/pages/cgi-bin/minerConfiguration.cgi -f
140 | sync
141 |
142 | /etc/init.d/bmminer.sh restart >/dev/null 2>&1
143 |
144 | sleep 5s
145 |
146 | echo "ok"
147 |
--------------------------------------------------------------------------------
/c5-runme.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh -e
2 |
3 | path=$(pwd)
4 |
5 | if [ ! -d /mnt/upgrade ];
6 | then
7 | mkdir /mnt/upgrade
8 | fi
9 |
10 | if [ -e /usr/bin/ctrl_bd ]; then
11 | ret=`cat /usr/bin/ctrl_bd | grep "XILINX" | wc -l`
12 | else
13 | ret=0
14 | fi
15 |
16 | if [ $ret -eq 1 ];then
17 | echo "this is not for xilinx"
18 | else
19 | mount -t jffs2 /dev/mtdblock4 /mnt/upgrade/
20 | cd /mnt/upgrade/upgrade
21 | rm -rf ./c5/*
22 | cd $path
23 |
24 | cp -rf ./c5/* /mnt/upgrade/upgrade
25 |
26 | flash_erase /dev/mtd2 0x0 0x1 >/dev/null 2>&1
27 | nandwrite -p -s 0x0 /dev/mtd2 /mnt/upgrade/upgrade/upgrade-marker.bin >/dev/null 2>&1
28 |
29 | sync
30 | umount /dev/mtdblock4
31 | fi
32 |
33 | rm -rf *.tar.gz
34 |
35 |
36 | #/sbin/reboot -f &
37 |
--------------------------------------------------------------------------------
/fixedfreq-sys/automem-xilinx-bmminer.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
4 | DAEMON=/usr/bin/bmminer
5 | NAME=bmminer
6 | DESC="bmminer daemon"
7 | CONFIG_NAME="/config/asic-freq.config"
8 | set -e
9 | #set -x
10 | test -x "$DAEMON" || exit 0
11 |
12 | do_start() {
13 | gateway=$(route -n | grep 'UG[ \t]' | awk '{print $2}')
14 | if [ x"" == x"$gateway" ]; then
15 | gateway="192.168.1.1"
16 | fi
17 | if [ "`ping -w 1 -c 1 $gateway | grep "100%" >/dev/null`" ]; then
18 | prs=1
19 | echo "$gateway is Not reachable"
20 | else
21 | prs=0
22 | echo "$gateway is reachable"
23 | fi
24 | sleep 5s
25 | if [ -z "`lsmod | grep bitmain_axi`" ]; then
26 | echo "No bitmain_axi.ko"
27 | #insmod /lib/modules/`uname -r`/kernel/drivers/bitmain/bitmain-axi.ko
28 | insmod /lib/modules/bitmain_axi.ko
29 | memory_size=`awk '/MemTotal/{total=$2}END{print total}' /proc/meminfo`
30 | echo memory_size = $memory_size
31 | if [ $memory_size -gt 1000000 ]; then
32 | echo "fpga_mem_offset_addr=0x3F000000"
33 | insmod /lib/modules/fpga_mem_driver.ko fpga_mem_offset_addr=0x3F000000
34 | elif [ $memory_size -lt 1000000 -a $memory_size -gt 400000 ]; then
35 | echo "fpga_mem_offset_addr=0x1F000000"
36 | insmod /lib/modules/fpga_mem_driver.ko fpga_mem_offset_addr=0x1F000000
37 | else
38 | echo "fpga_mem_offset_addr=0x0F000000"
39 | insmod /lib/modules/fpga_mem_driver.ko fpga_mem_offset_addr=0x0F000000
40 | fi
41 | else
42 | echo "Have bitmain-axi"
43 | fi
44 | killall -9 bmminer || true
45 | /usr/bin/bmminer --fixed-freq --no-pre-heat --version-file /usr/bin/compile_time --api-listen --default-config /config/bmminer.conf &
46 | }
47 |
48 | do_stop() {
49 | killall -9 bmminer || true
50 | }
51 | case "$1" in
52 | start)
53 | echo -n "Starting $DESC: "
54 | do_start
55 | echo "$NAME."
56 | ;;
57 | stop)
58 | echo -n "Stopping $DESC: "
59 | do_stop
60 | echo "$NAME."
61 | ;;
62 | restart|force-reload)
63 | echo -n "Restarting $DESC: "
64 | do_stop
65 | do_start
66 | echo "$NAME."
67 | ;;
68 | *)
69 | N=/etc/init.d/$NAME
70 | echo "Usage: $N {start|stop|restart|force-reload}" >&2
71 | exit 1
72 | ;;
73 | esac
74 |
75 | exit 0
76 |
--------------------------------------------------------------------------------
/fixedfreq-sys/bmminer.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
4 | DAEMON=/usr/bin/bmminer
5 | NAME=bmminer
6 | DESC="bmminer daemon"
7 | CONFIG_NAME="/config/asic-freq.config"
8 | set -e
9 | #set -x
10 | test -x "$DAEMON" || exit 0
11 |
12 | do_start() {
13 | gateway=$(route -n | grep 'UG[ \t]' | awk '{print $2}')
14 | if [ x"" == x"$gateway" ]; then
15 | gateway="192.168.1.1"
16 | fi
17 | if [ "`ping -w 1 -c 1 $gateway | grep "100%" >/dev/null`" ]; then
18 | prs=1
19 | echo "$gateway is Not reachable"
20 | else
21 | prs=0
22 | echo "$gateway is reachable"
23 | fi
24 | sleep 5s
25 | if [ -z "`lsmod | grep bitmain_axi`" ]; then
26 | echo "No bitmain_axi.ko"
27 | #insmod /lib/modules/`uname -r`/kernel/drivers/bitmain/bitmain-axi.ko
28 | insmod /lib/modules/bitmain_axi.ko
29 | insmod /lib/modules/fpga_mem_driver.ko
30 | else
31 | echo "Have bitmain-axi"
32 | fi
33 | killall -9 bmminer || true
34 | /usr/bin/bmminer --fixed-freq --no-pre-heat --version-file /usr/bin/compile_time --api-listen --default-config /config/bmminer.conf &
35 | }
36 |
37 | do_stop() {
38 | killall -9 bmminer || true
39 | }
40 | case "$1" in
41 | start)
42 | echo -n "Starting $DESC: "
43 | do_start
44 | echo "$NAME."
45 | ;;
46 | stop)
47 | echo -n "Stopping $DESC: "
48 | do_stop
49 | echo "$NAME."
50 | ;;
51 | restart|force-reload)
52 | echo -n "Restarting $DESC: "
53 | do_stop
54 | do_start
55 | echo "$NAME."
56 | ;;
57 | *)
58 | N=/etc/init.d/$NAME
59 | echo "Usage: $N {start|stop|restart|force-reload}" >&2
60 | exit 1
61 | ;;
62 | esac
63 |
64 | exit 0
65 |
--------------------------------------------------------------------------------
/fixedfreq-sys/minerConfiguration.cgi:
--------------------------------------------------------------------------------
1 | et -x
2 |
3 | create_default_conf_file()
4 | {
5 | (
6 | cat <<'EOF'
7 | {
8 | "pools" : [
9 | {
10 | "url" : "192.168.110.30:3333",
11 | "user" : "antminer_1",
12 | "pass" : "123"
13 | },
14 | {
15 | "url" : "http://stratum.antpool.com:3333",
16 | "user" : "antminer_1",
17 | "pass" : "123"
18 | },
19 | {
20 | "url" : "50.31.149.57:3333",
21 | "user" : "antminer_1",
22 | "pass" : "123"
23 | }
24 | ]
25 | ,
26 | "api-listen" : "true",
27 | "api-network" : "true",
28 | "api-allow" : "W:0/0",
29 | "bitmain-freq": "18:218.75:1106",
30 | "bitmain-voltage": "0725"
31 | }
32 |
33 | EOF
34 | ) > /config/bmminer.conf
35 | }
36 |
37 | if [ ! -f /config/bmminer.conf ] ; then
38 | if [ -f /config/bmminer.conf.factory ] ; then
39 | cp /config/bmminer.conf.factory /config/bmminer.conf
40 | else
41 | create_default_conf_file
42 | fi
43 | fi
44 |
45 | ant_result=`cat /config/bmminer.conf`
46 |
47 | # CGI output must start with at least empty line (or headers)
48 | printf "Content-type: text/html\r\n\r\n"
49 |
50 | cat <<-EOH
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
188 | Ant Miner
189 |
190 |
191 |
192 | Skip to navigation
193 | Skip to content
194 |
195 |
199 |
205 |
206 |
223 |
224 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 | Waiting for changes to be applied...
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 |
245 |
246 |
247 |
248 |
249 |
250 |
251 |
252 |
253 |
254 |
255 |
256 |
257 |
258 |
259 |
260 |
261 |
262 |
263 |
264 |
265 |
266 |
267 |
268 |
269 |
270 |
271 |
272 |
273 |
274 |
275 |
276 |
277 |
278 |
279 |
280 |
281 |
282 |
283 |
284 |
285 |
286 |
287 |
288 |
289 |
290 |
291 |
292 |
293 |
294 |
295 |
296 |
298 |
299 |
300 |
301 |
302 |
303 |
304 |
305 |
306 |
307 |
308 |
309 |
310 |
311 |
312 |
313 |
314 |
315 |
316 |
317 |
318 |
325 |
326 |
327 |
328 |
333 |
334 |
335 |
336 |
337 |
338 |
339 |
340 |
341 |
342 |
343 |
344 |
345 |
346 |
347 |
348 |
349 |
350 | Copyright © 2013-2014, Bitmain Technologies
351 |
352 |
353 |
354 | EOT
355 |
356 |
--------------------------------------------------------------------------------
/fixedfreq-sys/monitorcg:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | #set -x
3 | check_inter="20s"
4 | while true; do
5 | sleep $check_inter
6 | #date
7 | a="$(ps | grep bmminer | grep -v 'grep bmminer')"
8 |
9 | if [ -z "$a" ] ; then
10 | /etc/init.d/bmminer.sh restart
11 | else
12 | if [ "$check_inter" == "20s" ]; then
13 | check_inter="20m"
14 | continue
15 | fi
16 | A=`cat /tmp/cm.log`
17 | B=`bmminer-api devs | grep "^ \[Last Valid Work\]"`
18 | echo "$B" > /tmp/cm.log
19 | if [ "$B" != "" -a "$A" == "$B" ]; then
20 | echo "Case B"
21 | #killall -s 9 bmminer
22 | sleep 1
23 | #/etc/init.d/bmminer.sh restart
24 | fi
25 |
26 | D=`bmminer-api stats | grep "^ \[miner_count\]"`
27 | if [ "$D" == "" ]; then
28 | echo "Case D"
29 | killall -s 9 bmminer
30 | sleep 1
31 | /etc/init.d/bmminer.sh restart
32 | fi
33 | fi
34 | done
35 |
--------------------------------------------------------------------------------
/fixedfreq-sys/set_miner_conf.cgi:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | #set -x
3 |
4 | ant_pool1url=
5 | ant_pool1user=
6 | ant_pool1pw=
7 | ant_pool2url=
8 | ant_pool2user=
9 | ant_pool2pw=
10 | ant_pool3url=
11 | ant_pool3user=
12 | ant_pool3pw=
13 | ant_nobeeper=
14 | ant_notempoverctrl=
15 | ant_fan_customize_value=
16 | ant_fan_customize_switch=
17 | ant_freq=
18 | ant_voltage=0706
19 |
20 |
21 | ant_input=`cat /dev/stdin`
22 | ant_tmp=${ant_input//&/ }
23 | i=0
24 | for ant_var in ${ant_tmp}
25 | do
26 | ant_var=${ant_var//+/ }
27 | ant_var=${ant_var//%23/#}
28 | ant_var=${ant_var//%24/$}
29 | ant_var=${ant_var//%25/%}
30 | ant_var=${ant_var//%26/&}
31 | ant_var=${ant_var//%2C/,}
32 | ant_var=${ant_var//%2B/+}
33 | ant_var=${ant_var//%3A/:}
34 | ant_var=${ant_var//%3B/;}
35 | ant_var=${ant_var//%3C/<}
36 | ant_var=${ant_var//%3D/=}
37 | ant_var=${ant_var//%3E/>}
38 | ant_var=${ant_var//%3F/?}
39 | ant_var=${ant_var//%40/@}
40 | ant_var=${ant_var//%5B/[}
41 | ant_var=${ant_var//%5D/]}
42 | ant_var=${ant_var//%5E/^}
43 | ant_var=${ant_var//%7B/\{}
44 | ant_var=${ant_var//%7C/|}
45 | ant_var=${ant_var//%7D/\}}
46 | ant_var=${ant_var//%2F/\/}
47 | #ant_var=${ant_var//%22/\"}
48 | #ant_var=${ant_var//%5C/\\}
49 | case ${i} in
50 | 0 )
51 | ant_pool1url=${ant_var/_ant_pool1url=/}
52 | ;;
53 | 1 )
54 | ant_pool1user=${ant_var/_ant_pool1user=/}
55 | ;;
56 | 2 )
57 | ant_pool1pw=${ant_var/_ant_pool1pw=/}
58 | ;;
59 | 3 )
60 | ant_pool2url=${ant_var/_ant_pool2url=/}
61 | ;;
62 | 4 )
63 | ant_pool2user=${ant_var/_ant_pool2user=/}
64 | ;;
65 | 5 )
66 | ant_pool2pw=${ant_var/_ant_pool2pw=/}
67 | ;;
68 | 6 )
69 | ant_pool3url=${ant_var/_ant_pool3url=/}
70 | ;;
71 | 7 )
72 | ant_pool3user=${ant_var/_ant_pool3user=/}
73 | ;;
74 | 8 )
75 | ant_pool3pw=${ant_var/_ant_pool3pw=/}
76 | ;;
77 | 9 )
78 | ant_nobeeper=${ant_var/_ant_nobeeper=/}
79 | ;;
80 | 10 )
81 | ant_notempoverctrl=${ant_var/_ant_notempoverctrl=/}
82 | ;;
83 | 11 )
84 | ant_fan_customize_switch=${ant_var/_ant_fan_customize_switch=/}
85 | ;;
86 | 12 )
87 | ant_fan_customize_value=${ant_var/_ant_fan_customize_value=/}
88 | ;;
89 | 13 )
90 | ant_freq=${ant_var/_ant_freq=/}
91 | ;;
92 | esac
93 | i=`expr $i + 1`
94 | done
95 |
96 | echo "{" > /config/bmminer.conf
97 | echo "\"pools\" : [" >> /config/bmminer.conf
98 | echo "{" >> /config/bmminer.conf
99 | echo "\"url\" : \"${ant_pool1url}\"," >> /config/bmminer.conf
100 | echo "\"user\" : \"${ant_pool1user}\"," >> /config/bmminer.conf
101 | echo "\"pass\" : \"${ant_pool1pw}\"" >> /config/bmminer.conf
102 | echo "}," >> /config/bmminer.conf
103 | echo "{" >> /config/bmminer.conf
104 | echo "\"url\" : \"${ant_pool2url}\"," >> /config/bmminer.conf
105 | echo "\"user\" : \"${ant_pool2user}\"," >> /config/bmminer.conf
106 | echo "\"pass\" : \"${ant_pool2pw}\"" >> /config/bmminer.conf
107 | echo "}," >> /config/bmminer.conf
108 | echo "{" >> /config/bmminer.conf
109 | echo "\"url\" : \"${ant_pool3url}\"," >> /config/bmminer.conf
110 | echo "\"user\" : \"${ant_pool3user}\"," >> /config/bmminer.conf
111 | echo "\"pass\" : \"${ant_pool3pw}\"" >> /config/bmminer.conf
112 | echo "}" >> /config/bmminer.conf
113 | echo "]" >> /config/bmminer.conf
114 | echo "," >> /config/bmminer.conf
115 | echo "\"api-listen\" : "true"," >> /config/bmminer.conf
116 | echo "\"api-network\" : "true"," >> /config/bmminer.conf
117 | echo "\"api-groups\" : \"A:stats:pools:devs:summary:version\"," >> /config/bmminer.conf
118 | echo "\"api-allow\" : \"A:0/0,W:*\"," >> /config/bmminer.conf
119 | if [ "${ant_nobeeper}" = "true" ]; then
120 | echo "\"bitmain-nobeeper\" : "true"," >> /config/bmminer.conf
121 | fi
122 | if [ "${ant_notempoverctrl}" = "true" ]; then
123 | echo "\"bitmain-notempoverctrl\" : "true"," >> /config/bmminer.conf
124 | fi
125 |
126 | if [ "${ant_fan_customize_switch}" = "true" ]; then
127 | echo "\"bitmain-fan-ctrl\" : "true"," >> /config/bmminer.conf
128 | echo "\"bitmain-fan-pwm\" : \"${ant_fan_customize_value}\"," >> /config/bmminer.conf
129 |
130 | fi
131 | echo "\"bitmain-use-vil\" : "true"," >> /config/bmminer.conf
132 | echo "\"bitmain-freq\" : \"${ant_freq}\"," >> /config/bmminer.conf
133 | echo "\"bitmain-voltage\" : \"${ant_voltage}\"," >> /config/bmminer.conf
134 | echo "\"multi-version\" : \"1\"" >> /config/bmminer.conf
135 | echo "}" >> /config/bmminer.conf
136 | sync &
137 | sleep 1s
138 |
139 | /etc/init.d/bmminer.sh restart >/dev/null 2>&1
140 |
141 | sleep 5s
142 |
143 | echo "ok"
144 |
--------------------------------------------------------------------------------
/makepackage:
--------------------------------------------------------------------------------
1 | #!/bin/bash -e
2 | freq=$1
3 | miner_type=$2
4 | release=$3
5 | ctrlbd=$4
6 | merged=$5
7 | freqtype=$6
8 |
9 | basepath=$XILINX_PACKAGE_BASE_PATH
10 |
11 | if [ "$freq"x = "clean"x ]; then
12 | rm $basepath/release -rf
13 | rm $basepath/merge/release -rf
14 | rm $basepath/rootfs-C5/angstrom_rootfs.jffs2 -f
15 | rm $basepath/rootfs-C5/s9-firmware/angstrom_rootfs.jffs2 -f
16 | rm $basepath/angstrom_rootfs/angstrom_rootfs.jffs2.ubi -f
17 | rm $basepath/angstrom_rootfs/angstrom_rootfs.jffs2 -f
18 | rm $basepath/angstrom_rootfs/s9-firmware-xilinx/angstrom_rootfs.jffs2 -f
19 | rm $basepath/merge/upgrade-rootfs-ubi/rootfs.jffs2 -f
20 | rm $basepath/merge/upgrade-rootfs-ubi/rootfs.jffs2.ubi -f
21 | rm $basepath/merge/upgrade-rootfs-ubi/upgrade-rootfs/backup/angstrom_rootfs.jffs2 -f
22 | rm $basepath/angstrom_rootfs/angstrom_rootfs -rf
23 | rm $basepath/rootfs-C5/angstram_rootfs -rf
24 | rm $basepath/merge/upgrade-rootfs-ubi/upgrade-rootfs -rf
25 |
26 | echo "Cleaned all the files which is created by makepackage!"
27 | exit 0
28 | fi
29 |
30 | rm $basepath/angstrom_rootfs/angstrom_rootfs -rf
31 | cd $basepath/angstrom_rootfs
32 | tar -zxvf angstrom_rootfs.tgz
33 |
34 | rm $basepath/rootfs-C5/angstram_rootfs -rf
35 | cd $basepath/rootfs-C5
36 | tar -zxvf angstram_rootfs.tgz
37 |
38 | cd $basepath
39 |
40 | rm $basepath/release -rf
41 | mkdir $basepath/release
42 | mkdir $basepath/release/c5
43 | mkdir $basepath/release/xilinx
44 |
45 | cp $basepath/app-bin/* $basepath/angstrom_rootfs/angstrom_rootfs/usr/bin/ -rf
46 | cp $basepath/app-bin/* $basepath/rootfs-C5/angstram_rootfs/usr/bin/ -rf
47 |
48 | #if [ "$miner_type"x = "T9+"x ]; then
49 | #cp $basepath/T9+-app-bin/* $basepath/angstrom_rootfs/angstrom_rootfs/usr/bin/ -rf
50 | #cp $basepath/T9+-app-bin/* $basepath/rootfs-C5/angstram_rootfs/usr/bin/ -rf
51 | #elif [ "$miner_type"x = "T9"x ]; then
52 | #cp $basepath/T9-app-bin/* $basepath/angstrom_rootfs/angstrom_rootfs/usr/bin/ -rf
53 | #cp $basepath/T9-app-bin/* $basepath/rootfs-C5/angstram_rootfs/usr/bin/ -rf
54 | #elif [ "$miner_type"x = "S9"x ]; then
55 | #cp $basepath/S9-app-bin/* $basepath/angstrom_rootfs/angstrom_rootfs/usr/bin/ -rf
56 | #cp $basepath/S9-app-bin/* $basepath/rootfs-C5/angstram_rootfs/usr/bin/ -rf
57 | #elif [ "$miner_type"x = "R4"x ]; then
58 | #cp $basepath/R4-app-bin/* $basepath/angstrom_rootfs/angstrom_rootfs/usr/bin/ -rf
59 | #cp $basepath/R4-app-bin/* $basepath/rootfs-C5/angstram_rootfs/usr/bin/ -rf
60 | #else
61 | #echo "error miner type, must be S9 T9 T9+ R4"
62 | #exit 0
63 | #fi
64 |
65 | cp $basepath/auto-mem/fpga_mem_driver.ko $basepath/angstrom_rootfs/angstrom_rootfs/lib/modules/fpga_mem_driver.ko -f
66 |
67 | if [ "$freqtype"x = "fixed"x ]; then
68 | cp $basepath/fixedfreq-sys/monitorcg $basepath/angstrom_rootfs/angstrom_rootfs/sbin/ -f
69 | cp $basepath/fixedfreq-sys/monitorcg $basepath/rootfs-C5/angstram_rootfs/sbin/ -f
70 | cp $basepath/fixedfreq-sys/automem-xilinx-bmminer.sh $basepath/angstrom_rootfs/angstrom_rootfs/etc/init.d/bmminer.sh -f
71 | cp $basepath/fixedfreq-sys/bmminer.sh $basepath/rootfs-C5/angstram_rootfs/etc/init.d/bmminer.sh -f
72 | cp $basepath/fixedfreq-sys/set_miner_conf.cgi $basepath/angstrom_rootfs/angstrom_rootfs/www/pages/cgi-bin/ -f
73 | cp $basepath/fixedfreq-sys/set_miner_conf.cgi $basepath/rootfs-C5/angstram_rootfs/www/pages/cgi-bin/ -f
74 | cp $basepath/fixedfreq-sys/minerConfiguration.cgi $basepath/angstrom_rootfs/angstrom_rootfs/www/pages/cgi-bin/ -f
75 | cp $basepath/fixedfreq-sys/minerConfiguration.cgi $basepath/rootfs-C5/angstram_rootfs/www/pages/cgi-bin/ -f
76 | #echo "1" > $basepath/angstrom_rootfs/angstrom_rootfs/etc/config/fixedfreq
77 | #echo "1" > $basepath/rootfs-C5/angstram_rootfs/etc/config/fixedfreq
78 | else
79 | cp $basepath/autofreq-sys/monitorcg $basepath/angstrom_rootfs/angstrom_rootfs/sbin/ -f
80 | cp $basepath/autofreq-sys/monitorcg $basepath/rootfs-C5/angstram_rootfs/sbin/ -f
81 |
82 | cp $basepath/autofreq-sys/automem-xilinx-bmminer.sh $basepath/angstrom_rootfs/angstrom_rootfs/etc/init.d/bmminer.sh -f
83 | cp $basepath/autofreq-sys/bmminer.sh $basepath/rootfs-C5/angstram_rootfs/etc/init.d/bmminer.sh -f
84 | cp $basepath/autofreq-sys/set_miner_conf.cgi $basepath/angstrom_rootfs/angstrom_rootfs/www/pages/cgi-bin/ -f
85 | cp $basepath/autofreq-sys/set_miner_conf.cgi $basepath/rootfs-C5/angstram_rootfs/www/pages/cgi-bin/ -f
86 | cp $basepath/autofreq-sys/minerConfiguration.cgi $basepath/angstrom_rootfs/angstrom_rootfs/www/pages/cgi-bin/ -f
87 | cp $basepath/autofreq-sys/minerConfiguration.cgi $basepath/rootfs-C5/angstram_rootfs/www/pages/cgi-bin/ -f
88 | #rm $basepath/angstrom_rootfs/angstrom_rootfs/etc/config/fixedfreq -f
89 | #rm $basepath/rootfs-C5/angstram_rootfs/etc/config/fixedfreq -f
90 | fi
91 |
92 | if [ "$ctrlbd"x != "c5"x ] && [ "$ctrlbd"x != "xilinx"x ] && [ "$ctrlbd"x != "all"x ]; then
93 | echo "error ctrlbd type, must be c5 or xilinx or all"
94 | exit 0
95 | fi
96 |
97 | if [ "$release"x = "user"x ]; then
98 | rm $basepath/angstrom_rootfs/angstrom_rootfs/etc/config/forcefreq.txt -f
99 | rm $basepath/angstrom_rootfs/angstrom_rootfs/etc/config/rebootTest -f
100 | rm $basepath/rootfs-C5/angstram_rootfs/etc/config/forcefreq.txt -f
101 | rm $basepath/rootfs-C5/angstram_rootfs/etc/config/rebootTest -f
102 | echo "2" > $basepath/angstrom_rootfs/angstrom_rootfs/etc/config/restartTest
103 | echo "2" > $basepath/rootfs-C5/angstram_rootfs/etc/config/restartTest
104 | #rm $basepath/release/xilinx/BOOT.bin -f
105 | cp -f $basepath/auto-mem/xilinx-BOOT.bin $basepath/release/xilinx/BOOT.bin
106 | cp -f $basepath/auto-mem/devicetree.dtb $basepath/release/xilinx/devicetree.dtb
107 | #rm $basepath/release/c5/soc_system.rbf -f
108 | cp -f $basepath/soc_system.rbf $basepath/release/c5/soc_system.rbf
109 | fi
110 |
111 | if [ "$release"x = "test"x ]; then
112 | rm $basepath/angstrom_rootfs/angstrom_rootfs/etc/config/forcefreq.txt -f
113 | rm $basepath/angstrom_rootfs/angstrom_rootfs/etc/config/rebootTest -f
114 | rm $basepath/rootfs-C5/angstram_rootfs/etc/config/forcefreq.txt -f
115 | rm $basepath/rootfs-C5/angstram_rootfs/etc/config/rebootTest -f
116 | rm $basepath/angstrom_rootfs/angstrom_rootfs/etc/config/restartTest -f
117 | rm $basepath/rootfs-C5/angstram_rootfs/etc/config/restartTest -f
118 | rm $basepath/release/xilinx/BOOT.bin -f
119 | rm $basepath/release/c5/soc_system.rbf -f
120 | fi
121 |
122 | cp $basepath/Config.ini $basepath/rootfs-C5/angstram_rootfs/etc/config/Config.ini -f
123 | cp $basepath/Config.ini $basepath/angstrom_rootfs/angstrom_rootfs/etc/config/Config.ini -f
124 |
125 | $basepath/rootfs-C5/cp_rootfs_ko_to_make_angstrom-rootfs.jffs2 $freq $miner_type
126 | $basepath/angstrom_rootfs/make-angstrom-rootfs-all $freq $miner_type
127 |
128 | c5_path="$basepath/rootfs-C5/s9-firmware"
129 | xilinx_path="$basepath/angstrom_rootfs/s9-firmware-xilinx"
130 | rm -rf $c5_path/*.tar.gz
131 | rm -rf $xilinx_path/*.tar.gz
132 | rm -rf $basepath/release/*.tar.gz
133 |
134 | if [ "$ctrlbd"x = "c5"x ]; then
135 | cp $c5_path/* $basepath/release/c5/
136 |
137 | #if [ "$release"x = "user"x ]; then
138 | #cp -f $basepath/user-c5-runme.sh $basepath/release/runme.sh
139 | #else
140 | cp -f $basepath/c5-runme.sh $basepath/release/runme.sh
141 | #fi
142 | rm -rf $basepath/release/ubi_info
143 | rm -rf $basepath/release/xilinx/*
144 | fi
145 |
146 | if [ "$ctrlbd"x = "xilinx"x ]; then
147 | cp $xilinx_path/* $basepath/release/xilinx/
148 |
149 | #if [ "$release"x = "user"x ]; then
150 | #cp -f $basepath/user-xilinx-runme.sh $basepath/release/runme.sh
151 | #else
152 | cp -f $basepath/xilinx-runme.sh $basepath/release/runme.sh
153 | #fi
154 | md5sum $basepath/release/xilinx/angstrom_rootfs.jffs2 | awk {'print $1'} > $basepath/release/ubi_info
155 | rm -rf $basepath/release/c5/*
156 | fi
157 |
158 | if [ "$ctrlbd"x = "all"x ]; then
159 | cp $c5_path/* $basepath/release/c5/
160 | cp $xilinx_path/* $basepath/release/xilinx/
161 |
162 | #if [ "$release"x = "user"x ]; then
163 | #cp -f $basepath/user-all-runme.sh $basepath/release/runme.sh
164 | #else
165 | cp -f $basepath/all-runme.sh $basepath/release/runme.sh
166 | #fi
167 | md5sum $basepath/release/xilinx/angstrom_rootfs.jffs2 | awk {'print $1'} > $basepath/release/ubi_info
168 | fi
169 |
170 | cd $basepath/release
171 | c_time=`date "+%Y%m%d%H%M"`
172 | if [ "$freqtype"x = "fixed"x ]; then
173 | file_name="Antminer-${miner_type}-${ctrlbd}-${c_time}-${freq}M-${release}-UBI-NF.tar.gz"
174 | else
175 | file_name="Antminer-${miner_type}-${ctrlbd}-${c_time}-autofreq-${release}-UBI-NF.tar.gz"
176 | fi
177 | tar -zcvf "$file_name" *
178 |
179 | if [ "$merged"x != "merge"x ]; then
180 | echo "Final Package is in ${basepath}/release"
181 | exit 0
182 | fi
183 |
184 | rm $basepath/merge/upgrade-rootfs-ubi/upgrade-rootfs -rf
185 | cd $basepath/merge/upgrade-rootfs-ubi
186 | tar -zxvf upgrade-rootfs.tgz
187 |
188 | cd $basepath
189 |
190 | rm -rf $basepath/merge/release
191 | mkdir $basepath/merge/release
192 | mkdir $basepath/merge/release/c5
193 | mkdir $basepath/merge/release/xilinx
194 |
195 | if [ "$ctrlbd"x = "c5"x ]; then
196 | cp $basepath/release/c5/* $basepath/merge/release/c5/ -rf
197 | cp -f $basepath/merge/c5-runme.sh $basepath/merge/release/runme.sh
198 | rm -rf $basepath/merge/release/ubi_info
199 | rm -rf $basepath/merge/release/xilinx/*
200 | fi
201 |
202 | if [ "$ctrlbd"x = "xilinx"x ]; then
203 | cp $basepath/release/xilinx/angstrom_rootfs.jffs2 $basepath/merge/upgrade-rootfs-ubi/upgrade-rootfs/backup/ -f
204 |
205 | cd $basepath/merge/upgrade-rootfs-ubi
206 | $basepath/merge/upgrade-rootfs-ubi/make-upgrade-rootfs
207 | cp $basepath/merge/upgrade-rootfs-ubi/rootfs.jffs2 $basepath/merge/release/xilinx/ -f
208 | cp $basepath/release/xilinx/devicetree.dtb $basepath/merge/release/xilinx/ -f
209 | cp $basepath/merge/xilinx/uImage $basepath/merge/release/xilinx/ -f
210 | cp $basepath/merge/xilinx/upgrade-marker.bin $basepath/merge/release/xilinx/ -f
211 |
212 | cp $basepath/release/xilinx/BOOT.bin $basepath/merge/release/xilinx/BOOT.bin -f
213 | cp $basepath/merge/ubi_info $basepath/merge/release/ -f
214 | cp -f $basepath/merge/xilinx-runme.sh $basepath/merge/release/runme.sh
215 | rm -rf $basepath/merge/release/c5/*
216 | fi
217 |
218 | if [ "$ctrlbd"x = "all"x ]; then
219 | cp $basepath/release/c5/* $basepath/merge/release/c5/ -rf
220 |
221 | cp $basepath/release/xilinx/angstrom_rootfs.jffs2 $basepath/merge/upgrade-rootfs-ubi/upgrade-rootfs/backup/ -f
222 | cd $basepath/merge/upgrade-rootfs-ubi
223 | $basepath/merge/upgrade-rootfs-ubi/make-upgrade-rootfs
224 | cp $basepath/merge/upgrade-rootfs-ubi/rootfs.jffs2 $basepath/merge/release/xilinx/ -f
225 | cp $basepath/release/xilinx/devicetree.dtb $basepath/merge/release/xilinx/ -f
226 | cp $basepath/merge/xilinx/uImage $basepath/merge/release/xilinx/ -f
227 | cp $basepath/merge/xilinx/upgrade-marker.bin $basepath/merge/release/xilinx/ -f
228 | cp $basepath/release/xilinx/BOOT.bin $basepath/merge/release/xilinx/BOOT.bin -f
229 | cp $basepath/merge/ubi_info $basepath/merge/release/ -f
230 | cp -f $basepath/merge/all-runme.sh $basepath/merge/release/runme.sh
231 | fi
232 |
233 | cd $basepath/merge/release
234 | rm $basepath/merge/release/*.tar.gz -f
235 | if [ "$freqtype"x = "fixed"x ]; then
236 | file_name="Antminer-${miner_type}-${ctrlbd}-${c_time}-${freq}M-${release}-Update2UBI-NF.tar.gz"
237 | else
238 | file_name="Antminer-${miner_type}-${ctrlbd}-${c_time}-autofreq-${release}-Update2UBI-NF.tar.gz"
239 | fi
240 | tar -zcvf "$file_name" *
241 |
242 | echo "Final Package is in ${basepath}/merge/release"
243 |
244 |
--------------------------------------------------------------------------------
/merge/all-runme.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh -e
2 |
3 | path=$(pwd)
4 | cp_config="all"
5 | if [ ! -d /mnt/upgrade ];
6 | then
7 | mkdir /mnt/upgrade
8 | fi
9 |
10 | if [ -e /usr/bin/ctrl_bd ]; then
11 | ret=`cat /usr/bin/ctrl_bd | grep "XILINX" | wc -l`
12 | else
13 | ret=0
14 | fi
15 |
16 | if [ $ret -eq 1 ];then
17 | cd ./xilinx
18 |
19 | if [ -e /dev/ubi_ctrl ];then
20 |
21 | if [ ! -d /mnt/config ];then
22 | mkdir /mnt/config
23 | fi
24 | ubiattach /dev/ubi_ctrl -m 2
25 | mount -t ubifs ubi1:rootfs /mnt/config
26 | if [ ! -d /mnt/config/home/usr_config ];then
27 | mkdir /mnt/config/home/usr_config
28 | fi
29 |
30 | if [ `ls /mnt/config/home/usr_config | wc -l` -gt 1 ];then
31 | cp_config="all" #cp -r /config/* /mnt/config/home/usr_config/
32 | else
33 | cp_config="mac" #cp -r /config/mac /mnt/config/home/usr_config/
34 | fi
35 |
36 | umount /mnt/config
37 | ubidetach -d 1 /dev/ubi_ctrl
38 | fi
39 |
40 | if [ -e BOOT.bin ]; then
41 | flash_erase /dev/mtd0 0x0 0x80 >/dev/null 2>&1
42 | nandwrite -p -s 0x0 /dev/mtd0 ./BOOT.bin >/dev/null 2>&1
43 | rm -rf BOOT.bin
44 | fi
45 |
46 | if [ -e devicetree.dtb ]; then
47 | flash_erase /dev/mtd0 0x1020000 0x1 >/dev/null 2>&1
48 | nandwrite -p -s 0x1020000 /dev/mtd0 ./devicetree.dtb >/dev/null 2>&1
49 | rm devicetree.dtb
50 | fi
51 |
52 | if [ -e uImage ]; then
53 | flash_erase /dev/mtd0 0x1100000 0x40 >/dev/null 2>&1
54 | nandwrite -p -s 0x1100000 /dev/mtd0 ./uImage >/dev/null 2>&1
55 | rm uImage
56 | fi
57 |
58 | if [ -e rootfs.jffs2 ]; then
59 | if [ -f /dev/mtd3 ];then
60 | flash_erase /dev/mtd2 0x0 0x1E0 >/dev/null 2>&1
61 | else
62 | flash_erase /dev/mtd2 0x0 0x280 >/dev/null 2>&1
63 | fi
64 | nandwrite -p -s 0x0 /dev/mtd2 ./rootfs.jffs2 >/dev/null 2>&1
65 | rm rootfs.jffs2
66 | fi
67 |
68 | if [ -e /dev/ubi_ctrl ];then
69 | if [ ! -d /mnt/config ];then
70 | mkdir /mnt/config
71 | fi
72 | ubiattach /dev/ubi_ctrl -m 2
73 | mount -t ubifs ubi1:rootfs /mnt/config
74 | if [ ! -d /mnt/config/home/usr_config ];then
75 | mkdir /mnt/config/home/usr_config
76 | fi
77 |
78 | if [ $cp_config == "all" ];then
79 | cp -r /config/* /mnt/config/home/usr_config/
80 | else
81 | cp -r /config/mac /mnt/config/home/usr_config/
82 | fi
83 | sync
84 | umount /mnt/config
85 | ubidetach -d 1 /dev/ubi_ctrl
86 | fi
87 | # ubiattach /dev/ubi_ctrl -m 2
88 | # mount -t ubifs ubi1:rootfs /mnt/upgrade
89 |
90 | # cd /mnt/upgrade/upgrade
91 | # rm -rf /mnt/upgrade/upgrade/*
92 | cd $path
93 |
94 | # cp -rf ./xilinx/angstrom_rootfs.jffs2 /mnt/upgrade/upgrade
95 | if [ -f /dev/mtd3 ];then
96 | flash_erase /dev/mtd3 0 0xa0 >/dev/null 2>&1
97 | fi
98 |
99 | flash_erase /dev/mtd0 0x1040000 0x1 >/dev/null 2>&1
100 | nandwrite -p -s 0x1040000 /dev/mtd0 ./xilinx/upgrade-marker.bin >/dev/null 2>&1
101 | sync
102 | # umount /mnt/upgrade
103 | # ubidetach -d 1 /dev/ubi_ctrl
104 |
105 | else
106 | mount -t jffs2 /dev/mtdblock4 /mnt/upgrade/
107 | cd /mnt/upgrade/upgrade
108 | rm -rf ./c5/*
109 | cd $path
110 |
111 | cp -rf ./c5/* /mnt/upgrade/upgrade
112 |
113 | flash_erase /dev/mtd2 0x0 0x1 >/dev/null 2>&1
114 | nandwrite -p -s 0x0 /dev/mtd2 /mnt/upgrade/upgrade/upgrade-marker.bin >/dev/null 2>&1
115 |
116 | sync
117 | umount /dev/mtdblock4
118 | fi
119 |
120 | rm -rf *.tar.gz
121 |
122 |
123 | #/sbin/reboot -f &
124 |
--------------------------------------------------------------------------------
/merge/c5-runme.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh -e
2 |
3 | path=$(pwd)
4 |
5 | if [ ! -d /mnt/upgrade ];
6 | then
7 | mkdir /mnt/upgrade
8 | fi
9 |
10 | if [ -e /usr/bin/ctrl_bd ]; then
11 | ret=`cat /usr/bin/ctrl_bd | grep "XILINX" | wc -l`
12 | else
13 | ret=0
14 | fi
15 |
16 | if [ $ret -eq 1 ];then
17 | echo "this is not for xilinx"
18 | else
19 | mount -t jffs2 /dev/mtdblock4 /mnt/upgrade/
20 | cd /mnt/upgrade/upgrade
21 | rm -rf ./c5/*
22 | cd $path
23 |
24 | cp -rf ./c5/* /mnt/upgrade/upgrade
25 |
26 | flash_erase /dev/mtd2 0x0 0x1 >/dev/null 2>&1
27 | nandwrite -p -s 0x0 /dev/mtd2 /mnt/upgrade/upgrade/upgrade-marker.bin >/dev/null 2>&1
28 |
29 | sync
30 | umount /dev/mtdblock4
31 | fi
32 |
33 | rm -rf *.tar.gz
34 |
35 |
36 | #/sbin/reboot -f &
37 |
--------------------------------------------------------------------------------
/merge/ubi_info:
--------------------------------------------------------------------------------
1 | only for this update 2 ubi package
2 |
--------------------------------------------------------------------------------
/merge/upgrade-rootfs-ubi/.do.sh:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bitmaintech/S9_makepackage/a13be9616dd805f0c6ae0fe9b06bba26487cf0b8/merge/upgrade-rootfs-ubi/.do.sh
--------------------------------------------------------------------------------
/merge/upgrade-rootfs-ubi/make-upgrade-rootfs:
--------------------------------------------------------------------------------
1 | mkfs.ubifs -r ./upgrade-rootfs -o rootfs.jffs2.ubi -e 126976 -m 2KiB -c 625
2 | ubinize -v -o rootfs.jffs2 -m 2048 -p 128KiB -s 2048 ubi.cfg
3 |
--------------------------------------------------------------------------------
/merge/upgrade-rootfs-ubi/ubi.cfg:
--------------------------------------------------------------------------------
1 | [ubifs]
2 | mode=ubi
3 | image=rootfs.jffs2.ubi
4 | vol_id=0
5 | vol_type=dynamic
6 | vol_name=rootfs
7 | vol_flags=autoresize
8 | vol_alignment=1
9 |
--------------------------------------------------------------------------------
/merge/upgrade-rootfs-ubi/upgrade-rootfs.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bitmaintech/S9_makepackage/a13be9616dd805f0c6ae0fe9b06bba26487cf0b8/merge/upgrade-rootfs-ubi/upgrade-rootfs.tgz
--------------------------------------------------------------------------------
/merge/xilinx-runme.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh -e
2 |
3 | path=$(pwd)
4 | cp_config="all"
5 | if [ ! -d /mnt/upgrade ];
6 | then
7 | mkdir /mnt/upgrade
8 | fi
9 |
10 | if [ -e /usr/bin/ctrl_bd ]; then
11 | ret=`cat /usr/bin/ctrl_bd | grep "XILINX" | wc -l`
12 | else
13 | ret=0
14 | fi
15 |
16 | if [ $ret -eq 1 ];then
17 | cd ./xilinx
18 |
19 | if [ -e /dev/ubi_ctrl ];then
20 |
21 | if [ ! -d /mnt/config ];then
22 | mkdir /mnt/config
23 | fi
24 | ubiattach /dev/ubi_ctrl -m 2
25 | mount -t ubifs ubi1:rootfs /mnt/config
26 | if [ ! -d /mnt/config/home/usr_config ];then
27 | mkdir /mnt/config/home/usr_config
28 | fi
29 |
30 | if [ `ls /mnt/config/home/usr_config | wc -l` -gt 1 ];then
31 | cp_config="all" #cp -r /config/* /mnt/config/home/usr_config/
32 | else
33 | cp_config="mac" #cp -r /config/mac /mnt/config/home/usr_config/
34 | fi
35 |
36 | umount /mnt/config
37 | ubidetach -d 1 /dev/ubi_ctrl
38 | fi
39 |
40 | if [ -e BOOT.bin ]; then
41 | flash_erase /dev/mtd0 0x0 0x80 >/dev/null 2>&1
42 | nandwrite -p -s 0x0 /dev/mtd0 ./BOOT.bin >/dev/null 2>&1
43 | rm -rf BOOT.bin
44 | fi
45 |
46 | if [ -e devicetree.dtb ]; then
47 | flash_erase /dev/mtd0 0x1020000 0x1 >/dev/null 2>&1
48 | nandwrite -p -s 0x1020000 /dev/mtd0 ./devicetree.dtb >/dev/null 2>&1
49 | rm devicetree.dtb
50 | fi
51 |
52 | if [ -e uImage ]; then
53 | flash_erase /dev/mtd0 0x1100000 0x40 >/dev/null 2>&1
54 | nandwrite -p -s 0x1100000 /dev/mtd0 ./uImage >/dev/null 2>&1
55 | rm uImage
56 | fi
57 |
58 | if [ -e rootfs.jffs2 ]; then
59 | if [ -f /dev/mtd3 ];then
60 | flash_erase /dev/mtd2 0x0 0x1E0 >/dev/null 2>&1
61 | else
62 | flash_erase /dev/mtd2 0x0 0x280 >/dev/null 2>&1
63 | fi
64 | nandwrite -p -s 0x0 /dev/mtd2 ./rootfs.jffs2 >/dev/null 2>&1
65 | rm rootfs.jffs2
66 | fi
67 |
68 | if [ -e /dev/ubi_ctrl ];then
69 | if [ ! -d /mnt/config ];then
70 | mkdir /mnt/config
71 | fi
72 | ubiattach /dev/ubi_ctrl -m 2
73 | mount -t ubifs ubi1:rootfs /mnt/config
74 | if [ ! -d /mnt/config/home/usr_config ];then
75 | mkdir /mnt/config/home/usr_config
76 | fi
77 |
78 | if [ $cp_config == "all" ];then
79 | cp -r /config/* /mnt/config/home/usr_config/
80 | else
81 | cp -r /config/mac /mnt/config/home/usr_config/
82 | fi
83 | sync
84 | umount /mnt/config
85 | ubidetach -d 1 /dev/ubi_ctrl
86 | fi
87 | # ubiattach /dev/ubi_ctrl -m 2
88 | # mount -t ubifs ubi1:rootfs /mnt/upgrade
89 |
90 | # cd /mnt/upgrade/upgrade
91 | # rm -rf /mnt/upgrade/upgrade/*
92 | cd $path
93 |
94 | # cp -rf ./xilinx/angstrom_rootfs.jffs2 /mnt/upgrade/upgrade
95 | if [ -f /dev/mtd3 ];then
96 | flash_erase /dev/mtd3 0 0xa0 >/dev/null 2>&1
97 | fi
98 |
99 | flash_erase /dev/mtd0 0x1040000 0x1 >/dev/null 2>&1
100 | nandwrite -p -s 0x1040000 /dev/mtd0 ./xilinx/upgrade-marker.bin >/dev/null 2>&1
101 | sync
102 | # umount /mnt/upgrade
103 | # ubidetach -d 1 /dev/ubi_ctrl
104 |
105 | else
106 | echo "this is not for c5"
107 | fi
108 |
109 | rm -rf *.tar.gz
110 |
111 |
112 | #/sbin/reboot -f &
113 |
--------------------------------------------------------------------------------
/merge/xilinx/uImage:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bitmaintech/S9_makepackage/a13be9616dd805f0c6ae0fe9b06bba26487cf0b8/merge/xilinx/uImage
--------------------------------------------------------------------------------
/merge/xilinx/upgrade-marker.bin:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/rootfs-C5/angstram_rootfs.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bitmaintech/S9_makepackage/a13be9616dd805f0c6ae0fe9b06bba26487cf0b8/rootfs-C5/angstram_rootfs.tgz
--------------------------------------------------------------------------------
/rootfs-C5/cp_rootfs_ko_to_make_angstrom-rootfs.jffs2:
--------------------------------------------------------------------------------
1 | #!/bin/bash -e
2 | freq=$1
3 | miner_type=$2
4 |
5 | last_path=(`pwd`)
6 | path=$XILINX_PACKAGE_BASE_PATH/rootfs-C5
7 | fs_path=$XILINX_PACKAGE_BASE_PATH/rootfs-C5/angstram_rootfs
8 |
9 | chmod 666 $path/angstram_rootfs/etc/bmminer.conf.factory
10 | sed -i -r "s/\"bitmain-freq\" : \".*\"/\"bitmain-freq\" : \"$freq\"/g" $path/angstram_rootfs/etc/bmminer.conf.factory
11 | chmod 400 $path/angstram_rootfs/etc/bmminer.conf.factory
12 |
13 | echo `date` > $fs_path/usr/bin/compile_time
14 | echo "Antminer $miner_type" >> $fs_path/usr/bin/compile_time
15 |
16 | cd $path
17 | mkfs.jffs2 -r ./angstram_rootfs -o angstrom_rootfs.jffs2 -e 0x20000 --pad=0x800000 -n
18 | rm -rf s9-firmware/*.tar.gz
19 | cp angstrom_rootfs.jffs2 s9-firmware/
20 | c_time=`date "+%Y%m%d%H%M"`
21 | file_name="Antminer-${miner_type}-${c_time}-autoFreq.tar.gz"
22 | cd s9-firmware
23 | tar -zcvf "$file_name" *
24 |
25 | cd $last_path
26 |
--------------------------------------------------------------------------------
/rootfs-C5/s9-firmware/upgrade-marker.bin:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/rootfs-C5/ubi.cfg:
--------------------------------------------------------------------------------
1 | [ubifs]
2 | mode=ubi
3 | image=angstrom_rootfs.jffs2.ubi
4 | vol_id=0
5 | vol_type=dynamic
6 | vol_name=rootfs
7 | vol_flags=autoresize
8 | vol_alignment=1
9 |
--------------------------------------------------------------------------------
/soc_system.rbf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bitmaintech/S9_makepackage/a13be9616dd805f0c6ae0fe9b06bba26487cf0b8/soc_system.rbf
--------------------------------------------------------------------------------
/ubi.cfg:
--------------------------------------------------------------------------------
1 | [ubifs]
2 | mode=ubi
3 | image=angstrom_rootfs.jffs2.ubi
4 | vol_id=0
5 | vol_type=dynamic
6 | vol_name=rootfs
7 | vol_flags=autoresize
8 | vol_alignment=1
9 |
--------------------------------------------------------------------------------
/xilinx-runme.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh -e
2 |
3 | path=$(pwd)
4 |
5 | if [ ! -d /mnt/upgrade ];
6 | then
7 | mkdir /mnt/upgrade
8 | fi
9 |
10 | if [ -e /usr/bin/ctrl_bd ]; then
11 | ret=`cat /usr/bin/ctrl_bd | grep "XILINX" | wc -l`
12 | else
13 | ret=0
14 | fi
15 |
16 | if [ $ret -eq 1 ];then
17 | cd ./xilinx
18 |
19 | if [ ! -e /dev/ubi_ctrl ];then
20 | echo "File system isn't UBI, Please update ubi package first!"
21 | cd $path
22 | rm -rf *.tar.gz
23 | exit 1
24 | fi
25 |
26 | if [ -e BOOT.bin ]; then
27 | flash_erase /dev/mtd0 0x0 0x80 >/dev/null 2>&1
28 | nandwrite -p -s 0x0 /dev/mtd0 ./BOOT.bin >/dev/null 2>&1
29 | rm -rf BOOT.bin
30 | fi
31 |
32 | if [ -e devicetree.dtb ]; then
33 | flash_erase /dev/mtd0 0x1020000 0x1 >/dev/null 2>&1
34 | nandwrite -p -s 0x1020000 /dev/mtd0 ./devicetree.dtb >/dev/null 2>&1
35 | rm devicetree.dtb
36 | fi
37 |
38 | if [ -e uImage ]; then
39 | flash_erase /dev/mtd0 0x1100000 0x40 >/dev/null 2>&1
40 | nandwrite -p -s 0x1100000 /dev/mtd0 ./uImage >/dev/null 2>&1
41 | rm uImage
42 | fi
43 |
44 | if [ -e rootfs.jffs2 ]; then
45 | if [ -f /dev/mtd3 ];then
46 | flash_erase /dev/mtd2 0x0 0x1E0 >/dev/null 2>&1
47 | else
48 | flash_erase /dev/mtd2 0x0 0x280 >/dev/null 2>&1
49 | fi
50 | nandwrite -p -s 0x0 /dev/mtd2 ./rootfs.jffs2 >/dev/null 2>&1
51 | rm rootfs.jffs2
52 | fi
53 |
54 | ubiattach /dev/ubi_ctrl -m 2
55 | mount -t ubifs ubi1:rootfs /mnt/upgrade
56 |
57 | cd /mnt/upgrade/upgrade
58 | rm -rf /mnt/upgrade/upgrade/*
59 | cd $path
60 |
61 | if [ -e ./xilinx/angstrom_rootfs.jffs2 ];then
62 | md5=`md5sum ./xilinx/angstrom_rootfs.jffs2 | awk {'print $1'}`
63 | md5_r=`cat ubi_info`
64 | if [ $md5 == $md5_r ];then
65 | cp -rf ./xilinx/angstrom_rootfs.jffs2 /mnt/upgrade/upgrade
66 | if [ -f /dev/mtd3 ];then
67 | flash_erase /dev/mtd3 0 0xa0 >/dev/null 2>&1
68 | fi
69 | fi
70 | fi
71 | flash_erase /dev/mtd0 0x1040000 0x1 >/dev/null 2>&1
72 | nandwrite -p -s 0x1040000 /dev/mtd0 ./xilinx/upgrade-marker.bin >/dev/null 2>&1
73 |
74 | sync
75 |
76 | umount /mnt/upgrade
77 | ubidetach -d 1 /dev/ubi_ctrl
78 |
79 | else
80 | echo "this is not for c5"
81 | fi
82 |
83 | rm -rf *.tar.gz
84 |
85 |
86 | #/sbin/reboot -f &
87 |
--------------------------------------------------------------------------------