[后板]优化启动脚本和驱动加载,加快启动速度

This commit is contained in:
张兆鹏 2025-01-02 16:24:10 +08:00
parent 453c61ae2d
commit 3bbc68b7ad
11 changed files with 90 additions and 213 deletions

View File

@ -1903,7 +1903,6 @@ CONFIG_SUNXI_GPU_TYPE="None"
#
CONFIG_FB=y
# CONFIG_FIRMWARE_EDID is not set
CONFIG_FB_CMDLINE=y
CONFIG_FB_NOTIFY=y
# CONFIG_FB_DDC is not set
# CONFIG_FB_BOOT_VESA_SUPPORT is not set
@ -1941,7 +1940,7 @@ CONFIG_FB_NOTIFY=y
#
# CONFIG_DISP2_SUNXI_SATA_TEST is not set
# CONFIG_FB_CONSOLE_SUNXI is not set
CONFIG_DISP2_SUNXI=m
CONFIG_DISP2_SUNXI=y
# CONFIG_SUNXI_DISP2_PQ is not set
CONFIG_SUNXI_DISP2_FB_DISABLE_ROTATE=y
# CONFIG_SUNXI_DISP2_FB_ROTATION_SUPPORT is not set

View File

@ -47,7 +47,7 @@ size = 16
[partition]
name = boot
size = 4608
size = 4864
downloadfile = "boot.fex"
user_type = 0x8000

View File

@ -8,7 +8,7 @@ MODULES_DIR="/lib/modules/`uname -r`"
start() {
printf "load modules\n"
echo "load sample_virvi2vo ---- "
# echo "load sample_virvi2vo ---- "
#/usr/bin/sample_virvi2vo -path /usr/bin/sample_virvi2vo_v851s_sc1721v.conf &
#echo "------ insmod scsi modules start --------"
@ -16,12 +16,12 @@ start() {
#insmod $MODULES_DIR/sd_mod.ko
#wifi
echo "------ insmod xr806 modules start --------"
insmod $MODULES_DIR/xr806.ko
# echo "------ insmod xr806 modules start --------"
# insmod $MODULES_DIR/xr806.ko
#insmod $MODULES_DIR/vipcore.ko
#input
#insmod $MODULES_DIR/input-core.ko
insmod $MODULES_DIR/evdev.ko
# insmod $MODULES_DIR/evdev.ko
echo "------insmod audio modules start-----"
#audio
@ -42,18 +42,18 @@ start() {
#insmod $MODULES_DIR/rt-media.ko
echo "------ insmod gpio_keys modules start --------"
# echo "------ insmod gpio_keys modules start --------"
#gpio key
insmod $MODULES_DIR/gpio_keys.ko
# insmod $MODULES_DIR/gpio_keys.ko
echo "------ insmod sunxi_gpadc modules start --------"
# echo "------ insmod sunxi_gpadc modules start --------"
#l-sen
insmod $MODULES_DIR/sunxi_gpadc.ko
# insmod $MODULES_DIR/sunxi_gpadc.ko
echo "------ insmod cst9220 modules start --------"
# echo "------ insmod cst9220 modules start --------"
#ctp
#insmod $MODULES_DIR/gslX680new.ko
insmod $MODULES_DIR/cst9220.ko
# insmod $MODULES_DIR/cst9220.ko
}
stop() {

View File

@ -1,36 +0,0 @@
#!/bin/sh
#
# Load fat modules....
#
MODULES_DIR="/lib/modules/`uname -r`"
start() {
printf "Load fat modules\n"
insmod $MODULES_DIR/fat.ko
insmod $MODULES_DIR/vfat.ko
}
stop() {
printf "Unload fat modules\n"
rmmod $MODULES_DIR/fat.ko
rmmod $MODULES_DIR/vfat.ko
}
#case "$1" in
# start)
# start
# ;;
# stop)
# stop
# ;;
# restart|reload)
# stop
# start
# ;;
# *)
# echo "Usage: $0 {start|stop|restart}"
# exit 1
#esac
exit $?

View File

@ -1,38 +0,0 @@
#!/bin/sh
#
# Load mmc modules....
#
MODULES_DIR="/lib/modules/`uname -r`"
start() {
printf "Load mmc modules\n"
insmod $MODULES_DIR/mmc_core.ko
insmod $MODULES_DIR/mmc_block.ko
insmod $MODULES_DIR/sunxi_mmc_host.ko
}
stop() {
printf "Unload mmc modules\n"
rmmod $MODULES_DIR/mmc_core.ko
rmmod $MODULES_DIR/block.ko
rmmod $MODULES_DIR/sunxi_mmc_host.ko
}
#case "$1" in
# start)
# start
# ;;
# stop)
# stop
# ;;
# restart|reload)
# stop
# start
# ;;
# *)
# echo "Usage: $0 {start|stop|restart}"
# exit 1
#esac
exit $?

View File

@ -1,71 +0,0 @@
#!/bin/sh
#
# pcba test
#
start() {
printf "load pcba test\n"
LOOP_CNT=0
SD_DEV=
while [ 1 ];do
if [ $LOOP_CNT -eq 3 ];then
echo wait SD Card ready timeout
break;
fi
if [ -b /dev/mmcblk1p1 ];then
SD_DEV=/dev/mmcblk1p1
break;
elif [ -b /dev/mmcblk1 ];then
SD_DEV=/dev/mmcblk1
break;
elif [ -b /dev/mmcblk0p1 ];then
SD_DEV=/dev/mmcblk0p1
break;
elif [ -b /dev/mmcblk0 ];then
SD_DEV=/dev/mmcblk0
break;
else
echo SD Card not ready, wait
fi
LOOP_CNT=$(($LOOP_CNT+1))
sleep 1
done
if [ -n "$(grep '/mnt/SDCARD' /proc/mounts)" ]; then
echo "start mv stream..."
ls /tmp/
rm -rf /mnt/extsd/stream*.h264
rm -rf /mnt/extsd/data*.jpg
mv /tmp/stream*.h264 /mnt/SDCARD/
mv /tmp/data*.jpg /mnt/SDCARD/
echo "---/mnt/SDCARD/---"
ls /mnt/SDCARD/
fi
if [ -d /mnt/SDCARD/pcba_test ]; then
/usr/bin/pcba_test.sh
fi
}
stop() {
printf "nnload pcba test\n"
}
#case "$1" in
# start)
# start
# ;;
# stop)
# stop
# ;;
# restart|reload)
# stop
# start
# ;;
# *)
# echo "Usage: $0 {start|stop|restart}"
# exit 1
#esac
exit $?

View File

@ -20,6 +20,12 @@ for i in /etc/init.d/S??* ;do
if [ "$i" = "/etc/init.d/S99swupdate_autorun" ]; then
continue
fi
if [ "$i" = "/etc/init.d/S50wifidaemon" ]; then
continue
fi
if [ "$i" = "/etc/init.d/S00mpp" ]; then
continue
fi
case "$i" in
*.sh)
@ -93,4 +99,4 @@ done
echo "show ls value"
# cat /sys/class/gpadc/data
/APP/SL100BACKPANEL &
# /APP/SL100BACKPANEL &

View File

@ -1,12 +0,0 @@
#!/bin/sh
echo "------run rc.modules file-----"
MODULES_DIR="/lib/modules/`uname -r`"
#disp
echo "------ insmod display modules start --------"
#insmod $MODULES_DIR/fb.ko
insmod $MODULES_DIR/disp.ko

View File

@ -142,6 +142,64 @@ mount_usr(){
}
rc_mount_filesystem()
{
local fs_src="$1"
local fs_mntpt="$2"
# mount filesystem
if [ -e "$fs_src" -a -d "$fs_mntpt" ]; then
[ -L "$fs_src" ] && fs_src=$(readlink "$fs_src")
case "$fs_src" in
/dev/mtdblock*)
mount -t jffs2 "$fs_src" "$fs_mntpt" 2>/dev/null
if [ "$?" -ne "0" ]; then
mkfs_jffs2 "$fs_src"
mount -t jffs2 "$fs_src" "$fs_mntpt" 2>/dev/null
fi
;;
/dev/ubi*)
mount -t ubifs "$fs_src" "$fs_mntpt" 2>/dev/null
if [ "$?" -ne "0" ]; then
mkfs_ubifs "$fs_src"
mount -t ubifs "$fs_src" "$fs_mntpt" 2>/dev/null
fi
;;
*)
/usr/sbin/fsck.ext4 -y "$fs_src" &>/dev/null
mount -t ext4 "$fs_src" "$fs_mntpt" 2>/dev/null
if [ "$?" -ne "0" ]; then
# linux < 3.18 not support metadata_csum, e2fsprogs version:1.46.4
grep "Linux version 3.*" /proc/version >> /dev/null
if [ $? -eq 0 ]; then
echo "linux < 3.18, mkfs.ext4 do not use metadata and journal checksum features."
mkfs.ext4 -m 0 -O ^metadata_csum "$fs_src" >/dev/null
else
mkfs.ext4 -m 0 "$fs_src" >/dev/null
fi
mount -t ext4 "$fs_src" "$fs_mntpt" 2>/dev/null
fi
;;
esac
# restore /mnt file contexts
if [ -f /sbin/restorecon ]; then
/sbin/restorecon -R /mnt
fi
fi
}
rc_mount()
{
rc_mount_filesystem "/dev/by-name/UDISK" "/mnt/UDISK"
# rc_mount_filesystem "/dev/by-name/user-res" "/mnt/user"
# enable hotplug
[ -x /sbin/mdev ] && {
[ -f /proc/sys/kernel/hotplug ] && echo /sbin/mdev > /proc/sys/kernel/hotplug
/sbin/mdev -s
}
}
mount_sec_storage(){
[ -e /dev/by-name/sec_storage ] || return
@ -517,6 +575,17 @@ mount_usr
[ x"$MOUNT_OVERLAY" = x"1" ] && mount_overlay rootfs_data #choose rootfs_data or UDISK
mount_app
MODULES_DIR="/lib/modules/`uname -r`"
rc_mount
insmod $MODULES_DIR/xr806.ko
insmod $MODULES_DIR/gpio_keys.ko
/etc/init.d/S50wifidaemon start &
# insmod $MODULES_DIR/disp.ko # loaded by kernel
insmod $MODULES_DIR/sunxi_gpadc.ko
/etc/init.d/S00mpp start # snd should be loaded before app
/APP/SL100BACKPANEL &
insmod $MODULES_DIR/evdev.ko
insmod $MODULES_DIR/cst9220.ko
#hardcode but fast
#mount_etc_hardcode
#set_parts_by_name_hardcode

View File

@ -1,40 +0,0 @@
#!/bin/sh
#
# pcba test
#
echo "start PCBA Test\n"
echo "============ pcba test ================"
export SCREEN_INFO='1280x800-32bpp'
export TSLIB_TSEVENTTYPE=H3600
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event2
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/lib/ts
/usr/bin/sample_ao -path /usr/bin/sample_ao_startup.conf
#/usr/bin/sample_ai -path /usr/bin/sample_ai_v851s_sc1721v.conf
#/usr/bin/sample_ao -path /usr/bin/sample_ao_v851s_sc1721v.conf
ifconfig wlan0 up
ifconfig wlan0 192.168.51.1
udhcpd /etc/udhcpd.conf &
wifi -o ap
/usr/bin/sample_rtsp -path /usr/bin/sample_rtsp_v851s_sc1721v.conf &
ts_test &

View File

@ -190,8 +190,8 @@ define KernelPackage/fb-disp
TITLE:=lcd support (staging)
DEPENDS:=
FILES:=$(LINUX_DIR)/drivers/video/fbdev/core/fb.ko
FILES+=$(LINUX_DIR)/drivers/video/fbdev/sunxi/disp2/disp/disp.ko
AUTOLOAD:=$(call AutoProbe, fb.ko disp.ko)
# FILES+=$(LINUX_DIR)/drivers/video/fbdev/sunxi/disp2/disp/disp.ko
AUTOLOAD:=$(call AutoProbe, fb.ko)
endef
define KernelPackage/fb-disp/description