1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
|
#!/bin/bash
#
# add new bin,need test reboot or poweroff
# see /etc/init.d/launcher.sh
#
export LD_LIBRARY_PATH=/usr/lib32:/usr/lib:/mnt/vendor/lib
#export LC_ALL=zh_CN.utf8
#export LANG=zh_CN.UTF-8
#export LANGUAGE="zh_CN:zh:en_US:en"
DEBUG="/mnt/data/xudebug.ini"
CHRGBIN="/mnt/vendor/bin/charg.dge"
RunBin="/mnt/vendor/ctrl/dmenu_ln"
check_swap_device()
{
# /etc/fstab add auto enable swap
SWAP_ST=`cat /proc/swaps | grep -e "mmcblk0p"`
VALUE=$?
if [ $VALUE -ne 0 ]; then
SWAP_DEVICE="/dev/mmcblk0p7"
echo "-- need remount swapfs ---"
mkswap $SWAP_DEVICE
swapon $SWAP_DEVICE
fi
}
check_retroarch_cfg()
{
#HOME is different:~ -> /root or /
#RA_HEAD_DIR=~/.config/retroarch
RA_HEAD_DIR=/.config/retroarch
RA_ORI_CFG=/mnt/vendor/deep/retro/retroarch.cfg
if [ ! -d $RA_HEAD_DIR ];then
mkdir -p $RA_HEAD_DIR
fi
if [ ! -e "$RA_HEAD_DIR/retroarch.cfg" ];then
cp $RA_ORI_CFG $RA_HEAD_DIR/retroarch.cfg
fi
}
RESIZE_ROOT_CMD()
{
# resize2fs 针对文件系统ext2 ext3 ext4
#
ROOT_DEVICE="/dev/mmcblk0p5"
RESIZE_FLG_FILE="/etc/allen_resize.cfg"
if [ ! -f "$RESIZE_FLG_FILE" ]
then
echo "need resize $ROOT_DEVICE"
touch $RESIZE_FLG_FILE
resize2fs $ROOT_DEVICE
fi
}
FORMAT_DATA_CMD()
{
DATA_DEVICE="/dev/mmcblk0p7"
DATA_DIR="/mnt/data"
if [ -e "$DATA_DEVICE" ]
then
if [ ! -d "$DATA_DIR" ]; then
echo "create $DATA_DIR"
/bin/mkdir "$DATA_DIR"
fi
FORMAT=`/sbin/blkid $DATA_DEVICE | grep -e "TYPE"`
VALUE=$?
if [ $VALUE -ne 0 ]; then
echo "Start format $DATA_DEVICE ...."
mkfs.ext4 $DATA_DEVICE
sleep 0.5
mount -t ext4 -o rw,noatime,nodiratime $DATA_DEVICE $DATA_DIR
else
mount -t ext4 -o rw,noatime,nodiratime $DATA_DEVICE $DATA_DIR
INFO=`cat /proc/mounts | grep -e "$DATA_DEVICE"`
VALUE=$?
if [ $VALUE -ne 0 ]; then
echo "$DATA_DEVICE don't mount!!,need format"
mkfs.ext4 $DATA_DEVICE
sleep 0.5
mount -t ext4 -o rw,noatime,nodiratime $DATA_DEVICE $DATA_DIR
fi
fi
fi
}
FORMAT_ROMS_CMD()
{
#
# os + game in one TF
#
#mount_options_vfat="rw,utf8,uid=1000,gid=1000,dmask=000,fmask=000,noatime,nodiratime"
mount_options_vfat="rw,utf8,dmask=000,fmask=000,noatime,nodiratime"
ROMS_DEVICE="/dev/mmcblk0p1"
if [ -e "/dev/mmcblk0p8" ]; then
ROMS_DEVICE="/dev/mmcblk0p8"
fi
ROMS_DIR="/mnt/mmc"
if [ -e "$ROMS_DEVICE" ]
then
if [ ! -d "$ROMS_DIR" ]; then
echo "create $ROMS_DIR"
/bin/mkdir "$ROMS_DIR"
fi
FORMAT=`/sbin/blkid $ROMS_DEVICE | grep -e "TYPE"`
VALUE=$?
if [ $VALUE -ne 0 ]; then
echo "Start format $ROMS_DEVICE ...."
mkfs.vfat $ROMS_DEVICE
sleep 0.5
#/sbin/parted /dev/mmcblk0 set 7 hidden off
#mount -t vfat -o rw,utf8,noatime,nodiratime $ROMS_DEVICE $ROMS_DIR
mount -t vfat -o $mount_options_vfat $ROMS_DEVICE $ROMS_DIR
else
#mount -t vfat -o rw,utf8,noatime,nodiratime $ROMS_DEVICE $ROMS_DIR
mount -t vfat -o $mount_options_vfat $ROMS_DEVICE $ROMS_DIR
INFO=`cat /proc/mounts | grep -e "$ROMS_DEVICE"`
VALUE=$?
if [ $VALUE -ne 0 ]; then
echo "$ROMS_DEVICE don't mount!!,need format"
mkfs.vfat $ROMS_DEVICE
sleep 0.5
#mount -t vfat -o rw,utf8,noatime,nodiratime $ROMS_DEVICE $ROMS_DIR
mount -t vfat -o $mount_options_vfat $ROMS_DEVICE $ROMS_DIR
fi
fi
fi
}
export LD_LIBRARY_PATH=/mnt/vendor/lib:$LD_LIBRARY_PATH
RESIZE_ROOT_CMD
FORMAT_DATA_CMD
FORMAT_ROMS_CMD
if [ -f /mnt/mmc/appfs.img ]; then
# umount /mnt/vendor
mount /mnt/mmc/appfs.img /mnt/vendor
fi
check_retroarch_cfg
#check_swap_device
BOOT_MODE=`cat /sys/class/power_supply/axp2202-battery/boot_mode`
if [ $BOOT_MODE == 1 ];then
rfkill block bluetooth
systemctl stop bluetooth.service
systemctl mask bluetooth.service
rfkill block wifi
systemctl stop NetworkManager.service
systemctl mask NetworkManager.service
if [ -f $CHRGBIN ]; then
$CHRGBIN
#run as follow cmd, if charg.dge run err
sleep 5
poweroff
fi
else
systemctl unmask NetworkManager.service
systemctl restart NetworkManager.service
rfkill unblock wifi
systemctl unmask bluetooth.service
systemctl restart bluetooth.service
rfkill unblock bluetooth
fi
#----- sync local wall time to rtc time ------
#new rtc device need set once
RTC_DATE=`cat /sys/class/rtc/rtc0/date`
if [ x"$RTC_DATE" == x ]; then
SYS_DATE=`date "+%Y-%m-%d"`
echo "must set rtc-device once"
date -s $SYS_DATE
hwclock -w
fi
if [ -f /mnt/mmc/gpio_keys_polled.ko ]; then
insmod /mnt/mmc/gpio_keys_gpadc.ko
insmod /mnt/mmc/gpio_keys_polled.ko
fi
#---- third mod need this to mount sdcard ---
/mnt/vendor/ctrl/mmc_new.sh add
if [ -f "/mnt/mod/ctrl/autostart" ]; then
/mnt/mod/ctrl/autostart
fi
while [ -f $DEBUG ]
do
sleep 30
done
while [ -f $RunBin ]
do
# sleep 2
$RunBin
done
|