do not use the module-load-hell from STLinux
This commit is contained in:
parent
00bea9eeaa
commit
e2155eb2e0
7
Makefile
7
Makefile
@ -1,4 +1,4 @@
|
||||
BUILD=6
|
||||
BUILD=7
|
||||
VERSION=$(shell date +%Y%m%d%H%M)-$(BUILD)
|
||||
CPUS=4
|
||||
STLINUX=/opt/STM/STLinux-2.4
|
||||
@ -9,10 +9,9 @@ HOST_ARCH=$(shell uname -m)
|
||||
|
||||
EXTRA_AXE_MODULES_DIR=firmware/initramfs/root/modules_idl4k_7108_ST40HOST_LINUX_32BITS
|
||||
EXTRA_AXE_MODULES=axe_dmx.ko axe_dmxts.ko axe_fe.ko axe_fp.ko axe_i2c.ko \
|
||||
stapi_core_stripped.ko stapi_ioctl_stripped.ko stsys_ioctl.ko \
|
||||
load_modules_list_32BITS.txt load_modules_list_axe_32BITS.txt
|
||||
stapi_core_stripped.ko stapi_ioctl_stripped.ko stsys_ioctl.ko
|
||||
|
||||
ORIG_FILES=main_axe.out mknodes.out
|
||||
ORIG_FILES=main_axe.out
|
||||
|
||||
KMODULES = drivers/usb/serial/cp210x.ko \
|
||||
drivers/usb/serial/pl2303.ko \
|
||||
|
@ -55,7 +55,51 @@ ifconfig lo 127.0.0.1 netmask 255.255.255.0
|
||||
|
||||
# AXE modules and AXE hw initialization
|
||||
sync
|
||||
/lib/modules/axe/load_modules.sh
|
||||
d=/lib/modules/axe
|
||||
insmod $d/stapi_core_stripped.ko
|
||||
insmod $d/stapi_ioctl_stripped.ko
|
||||
insmod $d/axe_i2c.ko
|
||||
insmod $d/axe_fe.ko
|
||||
insmod $d/axe_fp.ko
|
||||
insmod $d/axe_dmx.ko
|
||||
insmod $d/axe_dmxts.ko
|
||||
mkdir -p /dev/axe /dev/stapi
|
||||
maj=
|
||||
for i in $(cat /proc/devices); do
|
||||
if test -z "$maj"; then
|
||||
if test "$i" = "Block"; then
|
||||
break
|
||||
fi
|
||||
maj=$i
|
||||
continue
|
||||
fi
|
||||
if test -z "$i"; then
|
||||
maj=
|
||||
continue
|
||||
elif test "${i::2}" = "st" -a "${i:$(expr ${#i} - 6)}" = "_ioctl"; then
|
||||
mknod /dev/stapi/$i c $maj 0
|
||||
elif test "$i" = "i2c_drv"; then
|
||||
mknod /dev/axe/i2c_drv-0 c $maj 0
|
||||
elif test "$i" = "fp"; then
|
||||
mknod /dev/axe/fp-0 c $maj 0
|
||||
elif test "$i" = "frontend"; then
|
||||
mknod /dev/axe/frontend-0 c $maj 0
|
||||
mknod /dev/axe/frontend-1 c $maj 1
|
||||
mknod /dev/axe/frontend-2 c $maj 2
|
||||
mknod /dev/axe/frontend-3 c $maj 3
|
||||
elif test "$i" = "demux"; then
|
||||
mknod /dev/axe/demux-0 c $maj 0
|
||||
mknod /dev/axe/demux-1 c $maj 1
|
||||
mknod /dev/axe/demux-2 c $maj 2
|
||||
mknod /dev/axe/demux-3 c $maj 3
|
||||
elif test "$i" = "demuxts"; then
|
||||
mknod /dev/axe/demuxts-0 c $maj 0
|
||||
mknod /dev/axe/demuxts-1 c $maj 1
|
||||
mknod /dev/axe/demuxts-2 c $maj 2
|
||||
mknod /dev/axe/demuxts-3 c $maj 3
|
||||
fi
|
||||
maj=
|
||||
done
|
||||
/etc/init.d/axe &
|
||||
axehelper wait 5000 -10 /tmp/axe-done
|
||||
#nc -l 127.0.0.1:1001 -e /bin/true
|
||||
|
@ -1,332 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
###############################################################################
|
||||
## SETUP STAPI DEVICE NAME ENVIRONMENT VARIABLES ##
|
||||
###############################################################################
|
||||
|
||||
# Check if we are on virtual platform (running on x86) or not
|
||||
# -----------------------------------------------------------
|
||||
runonvirtualplatform="no"
|
||||
if [ -f /proc/hce/cwd ]; then
|
||||
runonvirtualplatform="yes"
|
||||
fi
|
||||
|
||||
# Verify if root module is specified
|
||||
# ----------------------------------
|
||||
export PATH=$PATH:/sbin
|
||||
if [ -z "$MODULES_INSTALL_DIR" ] ; then
|
||||
if [ "$runonvirtualplatform" = "no" ] ; then
|
||||
export MODULES_INSTALL_DIR=/lib/modules/axe
|
||||
else
|
||||
export MODULES_INSTALL_DIR=.
|
||||
fi
|
||||
fi
|
||||
if [ "$runonvirtualplatform" = "no" ] ; then
|
||||
source $MODULES_INSTALL_DIR/load_env.sh
|
||||
else
|
||||
. $MODULES_INSTALL_DIR/load_env.sh
|
||||
fi
|
||||
|
||||
# Check if we are in 32 or 29bits
|
||||
# -------------------------------
|
||||
if [ -f $MODULES_INSTALL_DIR/load_modules_list_29BITS.txt ]; then
|
||||
LOAD_MODULES_LIST=$MODULES_INSTALL_DIR/load_modules_list_29BITS.txt
|
||||
AXE_LOAD_MODULES_LIST=$MODULES_INSTALL_DIR/load_modules_list_axe_29BITS.txt
|
||||
MODE="29BITS"
|
||||
else
|
||||
MODE="32BITS"
|
||||
if [ -f $MODULES_INSTALL_DIR/load_modules_list_32BITS.txt ]; then
|
||||
LOAD_MODULES_LIST=$MODULES_INSTALL_DIR/load_modules_list_32BITS.txt
|
||||
AXE_LOAD_MODULES_LIST=$MODULES_INSTALL_DIR/load_modules_list_axe_32BITS.txt
|
||||
else
|
||||
LOAD_MODULES_LIST=$MODULES_INSTALL_DIR/load_modules_list.txt
|
||||
AXE_LOAD_MODULES_LIST=$MODULES_INSTALL_DIR/load_modules_list_axe.txt
|
||||
fi
|
||||
fi
|
||||
|
||||
###############################################################################
|
||||
## SETUP DIRECTORY ACCESS ##
|
||||
###############################################################################
|
||||
|
||||
# Verify if modules list exist
|
||||
# ----------------------------
|
||||
if [ ! -f $LOAD_MODULES_LIST ] ; then
|
||||
echo "$LOAD_MODULES_LIST does not exist"
|
||||
exit
|
||||
fi
|
||||
|
||||
# Create /dev/stapi directory if not exist
|
||||
# ----------------------------------------
|
||||
if [ ! -e /dev/stapi ]; then mkdir -p /dev/stapi ;fi
|
||||
chmod 755 /dev/stapi
|
||||
if [ ! -e /dev/axe ]; then mkdir -p /dev/axe ;fi
|
||||
chmod 755 /dev/axe
|
||||
|
||||
###############################################################################
|
||||
## MODULE INSERT PROCEDURE ##
|
||||
###############################################################################
|
||||
|
||||
# Return chip version
|
||||
# -------------------
|
||||
define_chip_info()
|
||||
{
|
||||
export chipset=`cat /proc/stsys_ioctl/chipset | cut -b1-7`
|
||||
export chipver=`cat /proc/stsys_ioctl/chipset | cut -b9-9`
|
||||
}
|
||||
|
||||
# Create a node in /dev/ (Arg 1=node_name)
|
||||
# ----------------------------------------
|
||||
create_node()
|
||||
{
|
||||
node_name="$1"
|
||||
major=`cat /proc/devices | grep "\b$node_name\b" | cut -b1-3`
|
||||
if [ ! -z "$major" ]; then
|
||||
dev="/dev/stapi/$node_name"
|
||||
if [ -c ${dev} ]; then
|
||||
if [ "$runonvirtualplatform" = "no" ] ; then
|
||||
cur_major=$((0x`stat -c %t $dev 2>/dev/null`))
|
||||
else
|
||||
cur_major=`cat /proc/devices | grep $node_name|cut -d " " -f 1`
|
||||
fi
|
||||
if [ $major -ne $cur_major ]; then
|
||||
rm -f ${dev} 2> /dev/null
|
||||
mknod $dev c $major 0 || return 1
|
||||
chmod 0660 $dev || return 1
|
||||
fi
|
||||
fi
|
||||
if [ ! -c ${dev} ] ; then
|
||||
rm -f ${dev} 2> /dev/null
|
||||
mknod $dev c $major 0 || return 1
|
||||
chmod 0660 $dev || return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Load firmware (Arg 1=video1 or audio1)
|
||||
# --------------------------------------
|
||||
load_firmware()
|
||||
{
|
||||
if [ "$1" = "rt1" ] ; then
|
||||
if [ "$chipset" = "STx7108" ] ; then
|
||||
cat $MODULES_INSTALL_DIR/rt_7108_firmware.bin >/dev/stapi/lxload
|
||||
fi
|
||||
fi
|
||||
if [ "$1" = "video1" ] ; then
|
||||
if [ "$chipset" = "STx5206" ] ; then
|
||||
cat $MODULES_INSTALL_DIR/companion_5206_video_Ax.bin >/dev/stapi/lxload
|
||||
fi
|
||||
if [ "$chipset" = "STx7105" ] ; then
|
||||
cat $MODULES_INSTALL_DIR/companion_7105_video_Ax.bin >/dev/stapi/lxload
|
||||
fi
|
||||
if [ "$chipset" = "STx7106" ] ; then
|
||||
cat $MODULES_INSTALL_DIR/companion_7106_video_Ax.bin >/dev/stapi/lxload
|
||||
fi
|
||||
if [ "$chipset" = "STx7108" ] ; then
|
||||
if [ "$chipver" = "A" ] ; then
|
||||
cat $MODULES_INSTALL_DIR/companion_7108_video_Ax.bin >/dev/stapi/lxload
|
||||
else
|
||||
cat $MODULES_INSTALL_DIR/companion_7108_video_Bx.bin >/dev/stapi/lxload
|
||||
fi
|
||||
fi
|
||||
if [ "$chipset" = "STx7109" ] ; then
|
||||
cat $MODULES_INSTALL_DIR/companion_7109_video_Cx.bin >/dev/stapi/lxload
|
||||
fi
|
||||
if [ "$chipset" = "STx7111" ] ; then
|
||||
cat $MODULES_INSTALL_DIR/companion_7111_video_Ax.bin >/dev/stapi/lxload
|
||||
fi
|
||||
if [ "$chipset" = "STx7141" ] ; then
|
||||
cat $MODULES_INSTALL_DIR/companion_7141_video_Ax.bin >/dev/stapi/lxload
|
||||
fi
|
||||
if [ "$chipset" = "STxH205" ] ; then
|
||||
cat $MODULES_INSTALL_DIR/companion_h205_video_Ax.bin >/dev/stapi/lxload
|
||||
fi
|
||||
fi
|
||||
if [ "$1" = "audio1" ] ; then
|
||||
if [ "$chipset" = "STx5206" ] ; then
|
||||
cat $MODULES_INSTALL_DIR/companion_5206_audio.bin >/dev/stapi/lxload
|
||||
fi
|
||||
if [ "$chipset" = "STx7105" ] ; then
|
||||
cat $MODULES_INSTALL_DIR/companion_7105_audio.bin >/dev/stapi/lxload
|
||||
fi
|
||||
if [ "$chipset" = "STx7106" ] ; then
|
||||
cat $MODULES_INSTALL_DIR/companion_7106_audio.bin >/dev/stapi/lxload
|
||||
fi
|
||||
if [ "$chipset" = "STx7108" ] ; then
|
||||
cat $MODULES_INSTALL_DIR/companion_7108_audio.bin >/dev/stapi/lxload
|
||||
fi
|
||||
if [ "$chipset" = "STx7109" ] ; then
|
||||
cat $MODULES_INSTALL_DIR/companion_7109_audio.bin >/dev/stapi/lxload
|
||||
fi
|
||||
if [ "$chipset" = "STx7111" ] ; then
|
||||
cat $MODULES_INSTALL_DIR/companion_7111_audio.bin >/dev/stapi/lxload
|
||||
fi
|
||||
if [ "$chipset" = "STx7141" ] ; then
|
||||
cat $MODULES_INSTALL_DIR/companion_7141_audio.bin >/dev/stapi/lxload
|
||||
fi
|
||||
if [ "$chipset" = "STxH205" ] ; then
|
||||
cat $MODULES_INSTALL_DIR/companion_h205_audio.bin >/dev/stapi/lxload
|
||||
fi
|
||||
fi
|
||||
rmmod lxload
|
||||
}
|
||||
|
||||
# Insert separate STAPI modules
|
||||
# -----------------------------
|
||||
insert_separated_modules()
|
||||
{
|
||||
cat $LOAD_MODULES_LIST | grep -v "^#" | (while read mode mod_file node_name param; do
|
||||
if [ "$mode" != "-" ] ; then
|
||||
if [ "$mode" != "$MODE" ] ; then
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
if [ "$param" = "-" ] ; then
|
||||
param=""
|
||||
fi
|
||||
if [ ! -f $MODULES_INSTALL_DIR/$mod_file ] ; then
|
||||
continue
|
||||
fi
|
||||
if [ "$node_name" = "lxload" ] ; then
|
||||
if [ "$param" = "type=rt1" ] ; then
|
||||
if [ ! -f "$MODULES_INSTALL_DIR/rt_7108_firmware.bin" ] ; then
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if [ "$mod_file" = "embxmailbox.ko" ] ; then
|
||||
if [ ! -f $MODULES_INSTALL_DIR/ics.ko ] ; then
|
||||
output=$(insmod $MODULES_INSTALL_DIR/$mod_file $param 2>&1 | cat)
|
||||
else
|
||||
output=$(insmod $MODULES_INSTALL_DIR/$mod_file 2>&1 | cat)
|
||||
fi
|
||||
else
|
||||
output=$(insmod $MODULES_INSTALL_DIR/$mod_file $param 2>&1 | cat)
|
||||
fi
|
||||
[ "$output" != "" ] && { echo "$output" | grep "File exists" >/dev/null && echo "Warning : $mod_file already inserted, skipping" || { echo "$output" ; exit 1 ; } ; }
|
||||
if [ ! "$node_name" = "-" ] ; then
|
||||
create_node "$node_name"
|
||||
fi
|
||||
if [ "$node_name" = "lxload" ] ; then
|
||||
define_chip_info
|
||||
if [ "$param" = "type=rt1" ] ; then
|
||||
load_firmware "rt1"
|
||||
fi
|
||||
if [ "$param" = "type=video1" ] ; then
|
||||
load_firmware "video1"
|
||||
fi
|
||||
if [ "$param" = "type=video2" ] ; then
|
||||
load_firmware "video2"
|
||||
fi
|
||||
if [ "$param" = "type=audio1" ] ; then
|
||||
load_firmware "audio1"
|
||||
fi
|
||||
if [ "$param" = "type=audio2" ] ; then
|
||||
load_firmware "audio2"
|
||||
fi
|
||||
fi
|
||||
done)
|
||||
}
|
||||
|
||||
# Insert unique STAPI module
|
||||
# --------------------------
|
||||
insert_unified_module()
|
||||
{
|
||||
# Now we load STAPI and create nodes
|
||||
echo "* Inserting STAPI Module"
|
||||
insmod $MODULES_INSTALL_DIR/stapi_core_stripped.ko || return 1
|
||||
if [ "$1" != "no_stapi_ioctl" ] ; then
|
||||
insmod $MODULES_INSTALL_DIR/stapi_ioctl_stripped.ko || return 1
|
||||
else
|
||||
if [ -f $MODULES_INSTALL_DIR/stpti4_ioctl.ko ]; then
|
||||
insmod $MODULES_INSTALL_DIR/stpti4_ioctl.ko || return 1
|
||||
fi
|
||||
if [ -f $MODULES_INSTALL_DIR/stpti5_ioctl.ko ]; then
|
||||
insmod $MODULES_INSTALL_DIR/stpti5_ioctl.ko || return 1
|
||||
fi
|
||||
fi
|
||||
if [ -f $MODULES_INSTALL_DIR/staudlx_alsa.ko ]; then
|
||||
insmod $MODULES_INSTALL_DIR/staudlx_alsa.ko || return 1
|
||||
fi
|
||||
if [ "$1" != "no_stapi_ioctl" ] ; then
|
||||
echo "* Creating device nodes in /dev/stapi"
|
||||
cat $LOAD_MODULES_LIST | grep -v "^#" | grep -v lxload | (while read mode mod_file node_name param; do
|
||||
if [ ! "$node_name" = "-" ] ; then
|
||||
create_node $node_name
|
||||
fi
|
||||
done)
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
# Inserting AXE modules
|
||||
# ---------------------
|
||||
insert_axe_modules ()
|
||||
{
|
||||
local HW=$(awk 'match($0, /hw=[^ ]*/) {print substr($0,RSTART,RLENGTH)}' /proc/cmdline)
|
||||
local HWID=${HW:3:40}
|
||||
|
||||
#echo "$HW"
|
||||
#echo "$HWID"
|
||||
|
||||
if [ ${#HWID} -ne 32 ] ; then
|
||||
echo "HWID has wrong length"
|
||||
fi
|
||||
|
||||
grep -v "^#" $AXE_LOAD_MODULES_LIST | (while read mode mod_file node_name param minor_cnt; do
|
||||
if [ "$mode" != "-" ] ; then
|
||||
if [ "$mode" != "$MODE" ] ; then
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
if [ ! -f $MODULES_INSTALL_DIR/$mod_file ] ; then
|
||||
continue
|
||||
fi
|
||||
if [ "$param" = "-" ] ; then
|
||||
param=""
|
||||
fi
|
||||
|
||||
if [ "$node_name" = "frontend" -a "${HWID:0:3}" = "161" ] ; then
|
||||
mod_file="axe_fe_ml.ko"
|
||||
fi
|
||||
|
||||
param="$(echo $param | sed -e 's/,/ /g')"
|
||||
insmod $MODULES_INSTALL_DIR/$mod_file $param
|
||||
done)
|
||||
|
||||
/lib/modules/axe/mknodes.out i
|
||||
|
||||
## WORKAROUND: if no HWID defined reverse the demux's routing
|
||||
if [ ${#HWID} -eq 0 ] ; then
|
||||
echo "SWAPPING TS ROUTE LIKE FOR OLD BOARD"
|
||||
mv /dev/axe/demux-0 /dev/axe/demux-00
|
||||
mv /dev/axe/demux-1 /dev/axe/demux-0
|
||||
mv /dev/axe/demux-00 /dev/axe/demux-1
|
||||
|
||||
mv /dev/axe/demuxts-0 /dev/axe/demuxts-00
|
||||
mv /dev/axe/demuxts-1 /dev/axe/demuxts-0
|
||||
mv /dev/axe/demuxts-00 /dev/axe/demuxts-1
|
||||
|
||||
mv /dev/axe/demux-2 /dev/axe/demux-20
|
||||
mv /dev/axe/demux-3 /dev/axe/demux-2
|
||||
mv /dev/axe/demux-20 /dev/axe/demux-3
|
||||
|
||||
mv /dev/axe/demuxts-2 /dev/axe/demuxts-20
|
||||
mv /dev/axe/demuxts-3 /dev/axe/demuxts-2
|
||||
mv /dev/axe/demuxts-20 /dev/axe/demuxts-3
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
# Choose between inserting severall or unified module
|
||||
# ---------------------------------------------------
|
||||
if [ $# -eq 0 ] || [ "$1" != "not_unified" ]; then
|
||||
if [ -f "$MODULES_INSTALL_DIR/stapi_core_stripped.ko" ] && [ -f "$MODULES_INSTALL_DIR/stapi_ioctl_stripped.ko" ]; then
|
||||
insert_unified_module $1
|
||||
else
|
||||
insert_separated_modules
|
||||
fi
|
||||
else
|
||||
insert_separated_modules
|
||||
fi
|
||||
insert_axe_modules
|
||||
|
Loading…
Reference in New Issue
Block a user