手機 - Motorola XT897 - Sailfish OS 4.4.0.68 - 如何修改Kernel讓User Program控制USB Mode



arch/arm/mach-msm/board-mmi.c

881 static __init void mot_init_emu_detection(
882             struct msm_otg_platform_data *ctrl_data)
883 {
884     if (ctrl_data) {
885         ctrl_data->otg_control = OTG_USER_CONTROL; //OTG_ACCY_CONTROL;

zImage透過Recovery更新,Kernel Modules則是更新到/lib/modules/3.0.101目錄,更新zImage後就可以透過/sys/kernel/debug/msm_otg/mode控制USB模式(host、peripheral、none),USB網卡模式必須在peripheral模式下且必須開啟android_usb

myusb

#!/bin/bash
M="/sys/kernel/debug/msm_otg/mode"
E="/sys/class/android_usb/android0/enable"
F="/sys/class/android_usb/android0/functions"

sudo chmod 0777 "$M"
sudo chmod 0777 "$E"
sudo chmod 0777 "$F"

if [ "$1" == "host" ]; then
    echo "host" > $M
    echo "0" > "$E"

    echo "Host Mode"
    exit 0
fi

if [ "$1" == "slave" ]; then
    echo "peripheral" > $M
    #echo "rndis" > "$F"
    echo "1" > "$E"
    ifconfig rndis0 192.168.2.15 up
    iptables -I INPUT -i rndis0 -p tcp --dport 22 -j ACCEPT

    echo "Peripheral Mode"
    exit 0
fi

echo "none" > $M
echo "0" > "$E"
echo "None Mode"