* fix cvi_base deadlock

This commit is contained in:
lxowalle
2025-01-04 13:57:18 +08:00
parent 80cd8fe0cf
commit d3b91ff1fd
3 changed files with 37 additions and 10 deletions

View File

@@ -39,7 +39,11 @@ start() {
then
new_rndismac=$(cat /boot/usb.rndis.mac)
else
new_rndismac=$(hex2mac 48da356f$(sha512sum /sys/class/cvi-base/base_uid | head -c 4))
if [ -e /boot/cvi_base_uid ]; then
new_rndismac=$(hex2mac 48da356f$(sha512sum /boot/cvi_base_uid | head -c 4))
else
new_rndismac=$(hex2mac 48da356f$(sha512sum /sys/class/cvi-base/base_uid | head -c 4))
fi
fi
ip link set $rndis_ifname address ${new_rndismac}
ifconfig $rndis_ifname up
@@ -52,8 +56,13 @@ start() {
then
ipv4_prefix=`cat /boot/rndis.ipv4_prefix`
else
id2=$(printf "%d" 0x$(sha512sum /sys/class/cvi-base/base_uid | head -c 2))
id3=$(printf "%d" 0x$(sha512sum /sys/class/cvi-base/base_uid | head -c 4 | tail -c 2))
if [ -e /boot/cvi_base_uid ]; then
id2=$(printf "%d" 0x$(sha512sum /boot/cvi_base_uid | head -c 2))
id3=$(printf "%d" 0x$(sha512sum /boot/cvi_base_uid | head -c 4 | tail -c 2))
else
id2=$(printf "%d" 0x$(sha512sum /sys/class/cvi-base/base_uid | head -c 2))
id3=$(printf "%d" 0x$(sha512sum /sys/class/cvi-base/base_uid | head -c 4 | tail -c 2))
fi
id3=$((id3 + 1))
if [ "$id2" = "$id3" ]
then
@@ -85,7 +94,11 @@ start() {
then
new_mac=$(cat /boot/usb.ncm.mac)
else
new_mac=$(hex2mac 48da356e$(sha512sum /sys/class/cvi-base/base_uid | head -c 4))
if [ -e /boot/cvi_base_uid ]; then
new_mac=$(hex2mac 48da356e$(sha512sum /boot/cvi_base_uid | head -c 4))
else
new_mac=$(hex2mac 48da356e$(sha512sum /sys/class/cvi-base/base_uid | head -c 4))
fi
fi
ip link set $rndis_ifname address ${new_mac}
ifconfig $rndis_ifname up
@@ -98,8 +111,13 @@ start() {
then
ipv4_prefix=`cat /boot/ncm.ipv4_prefix`
else
id2=$(printf "%d" 0x$(sha512sum /sys/class/cvi-base/base_uid | head -c 2))
id3=$(printf "%d" 0x$(sha512sum /sys/class/cvi-base/base_uid | head -c 4 | tail -c 2))
if [ -e /boot/cvi_base_uid ]; then
id2=$(printf "%d" 0x$(sha512sum /boot/cvi_base_uid | head -c 2))
id3=$(printf "%d" 0x$(sha512sum /boot/cvi_base_uid | head -c 4 | tail -c 2))
else
id2=$(printf "%d" 0x$(sha512sum /sys/class/cvi-base/base_uid | head -c 2))
id3=$(printf "%d" 0x$(sha512sum /sys/class/cvi-base/base_uid | head -c 4 | tail -c 2))
fi
if [ "$id2" = "$id3" ]
then
id2=$((id2 + 1))

View File

@@ -76,8 +76,13 @@ start() {
then
cp /boot/hostapd.conf /etc/hostapd.conf
else
id2=$(printf "%d" 0x$(sha512sum /sys/class/cvi-base/base_uid | head -c 2))
id3=$(printf "%d" 0x$(sha512sum /sys/class/cvi-base/base_uid | head -c 4 | tail -c 2))
if [ -e /boot/cvi_base_uid ]; then
id2=$(printf "%d" 0x$(sha512sum /boot/cvi_base_uid | head -c 2))
id3=$(printf "%d" 0x$(sha512sum /boot/cvi_base_uid | head -c 4 | tail -c 2))
else
id2=$(printf "%d" 0x$(sha512sum /sys/class/cvi-base/base_uid | head -c 2))
id3=$(printf "%d" 0x$(sha512sum /sys/class/cvi-base/base_uid | head -c 4 | tail -c 2))
fi
if [ "$id2" = "$id3" ]
then
id2=$((id2 + 1))

View File

@@ -27,8 +27,12 @@ case "$1" in
fi
echo "soc temp: $soc_temp" | fbbar 32 $colorfg $colorbg
colorfg=0xFFFFFFFF
echo "soc id: $(cat /sys/class/cvi-base/base_uid)" | fbbar 48 $colorfg $colorbg
sleep 1
if [ -e /boot/cvi_base_uid ]; then
echo "soc id: $(cat /boot/cvi_base_uid)" | fbbar 48 $colorfg $colorbg
else
echo "soc id: $(cat /sys/class/cvi-base/base_uid)" | fbbar 48 $colorfg $colorbg
fi
sleep 1
done
) &
[ $? = 0 ] && echo "OK" || echo "FAIL"