mirror of
https://github.com/Quill-OS/quill.git
synced 2024-12-26 07:37:21 -08:00
KT: Make USBMS work
This commit is contained in:
parent
04ef2d132c
commit
5a716d2561
4 changed files with 53 additions and 20 deletions
44
functions.h
44
functions.h
|
@ -353,18 +353,32 @@ namespace {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
void get_battery_level() {
|
void get_battery_level() {
|
||||||
QFile batt_level_file("/sys/devices/platform/pmic_battery.1/power_supply/mc13892_bat/capacity");
|
QString batteryLevelFileQstr;
|
||||||
if(batt_level_file.exists()) {
|
if(global::deviceID == "kt\n") {
|
||||||
batt_level_file.open(QIODevice::ReadOnly);
|
QFile batt_level_file("/sys/devices/system/yoshi_battery/yoshi_battery0/battery_capacity");
|
||||||
batt_level = batt_level_file.readAll();
|
if(batt_level_file.exists()) {
|
||||||
batt_level = batt_level.trimmed();
|
batt_level_file.open(QIODevice::ReadOnly);
|
||||||
batt_level_int = batt_level.toInt();
|
batt_level = batt_level_file.readAll();
|
||||||
batt_level = batt_level.append("%");
|
batt_level = batt_level.trimmed();
|
||||||
batt_level_file.close();
|
batt_level_int = batt_level.toInt();
|
||||||
|
batt_level = batt_level.append("%");
|
||||||
|
batt_level_file.close();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
batt_level_int = 100;
|
QFile batt_level_file("/sys/devices/platform/pmic_battery.1/power_supply/mc13892_bat/capacity");
|
||||||
batt_level = "100%";
|
if(batt_level_file.exists()) {
|
||||||
|
batt_level_file.open(QIODevice::ReadOnly);
|
||||||
|
batt_level = batt_level_file.readAll();
|
||||||
|
batt_level = batt_level.trimmed();
|
||||||
|
batt_level_int = batt_level.toInt();
|
||||||
|
batt_level = batt_level.append("%");
|
||||||
|
batt_level_file.close();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
batt_level_int = 100;
|
||||||
|
batt_level = "100%";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void writeconfig(std::string file, std::string config) {
|
void writeconfig(std::string file, std::string config) {
|
||||||
|
@ -767,7 +781,15 @@ namespace {
|
||||||
return checkconfig("/external_root/run/encfs_mounted");
|
return checkconfig("/external_root/run/encfs_mounted");
|
||||||
}
|
}
|
||||||
bool isUsbPluggedIn() {
|
bool isUsbPluggedIn() {
|
||||||
if(global::deviceID != "kt\n") {
|
if(global::deviceID == "kt\n") {
|
||||||
|
if(readFile("/sys/devices/system/yoshi_battery/yoshi_battery0/battery_status") == "1\n") {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
// Thanks to https://github.com/koreader/KoboUSBMS/blob/2efdf9d920c68752b2933f21c664dc1afb28fc2e/usbms.c#L148-L158
|
// Thanks to https://github.com/koreader/KoboUSBMS/blob/2efdf9d920c68752b2933f21c664dc1afb28fc2e/usbms.c#L148-L158
|
||||||
int ntxfd;
|
int ntxfd;
|
||||||
if((ntxfd = open("/dev/ntx_io", O_RDWR)) == -1) {
|
if((ntxfd = open("/dev/ntx_io", O_RDWR)) == -1) {
|
||||||
|
|
|
@ -119,7 +119,7 @@ void koboxSettings::on_spinBox_valueChanged(int arg1)
|
||||||
|
|
||||||
void koboxSettings::on_pushButton_clicked()
|
void koboxSettings::on_pushButton_clicked()
|
||||||
{
|
{
|
||||||
// Export Extensions disk image over USB with g_mass_storage
|
// Export Extensions disk image over USB with g_mass_storage/g_file_storage
|
||||||
global::usbms::usbmsDialog = false;
|
global::usbms::usbmsDialog = false;
|
||||||
global::usbms::launchUsbms = true;
|
global::usbms::launchUsbms = true;
|
||||||
global::usbms::koboxExportExtensions = true;
|
global::usbms::koboxExportExtensions = true;
|
||||||
|
|
|
@ -86,19 +86,29 @@ void usbms_splash::usbms_launch()
|
||||||
QThread::msleep(1000);
|
QThread::msleep(1000);
|
||||||
|
|
||||||
if(global::deviceID == "n306\n" or global::deviceID == "n873\n") {
|
if(global::deviceID == "n306\n" or global::deviceID == "n873\n") {
|
||||||
QProcess::execute("insmod", QStringList() << "/external_root/modules/fs/configfs/configfs.ko");
|
QProcess::execute("insmod", QStringList() << "/external_root/lib/modules/fs/configfs/configfs.ko");
|
||||||
QProcess::execute("insmod", QStringList() << "/external_root/modules/drivers/usb/gadget/libcomposite.ko");
|
QProcess::execute("insmod", QStringList() << "/external_root/lib/modules/drivers/usb/gadget/libcomposite.ko");
|
||||||
QProcess::execute("insmod", QStringList() << "/external_root/modules/drivers/usb/gadget/function/usb_f_mass_storage.ko");
|
QProcess::execute("insmod", QStringList() << "/external_root/lib/modules/drivers/usb/gadget/function/usb_f_mass_storage.ko");
|
||||||
|
}
|
||||||
|
else if(global::deviceID == "kt\n") {
|
||||||
|
QProcess::execute("insmod", QStringList() << "/external_root/lib/modules/2.6.35-inkbox/kernel/drivers/usb/gadget/arcotg_udc.ko");
|
||||||
}
|
}
|
||||||
|
|
||||||
QString prog_1 ("insmod");
|
QString prog_1 ("insmod");
|
||||||
QStringList args_1;
|
QStringList args_1;
|
||||||
|
|
||||||
if(global::usbms::koboxExportExtensions == true) {
|
if(global::deviceID == "kt\n") {
|
||||||
args_1 << "/external_root/modules/g_mass_storage.ko" << "file=/external_root/opt/storage/X11/extensions-user.img" << "removable=y" << "stall=0";
|
massStorageModule = "/external_root/lib/modules/2.6.35-inkbox/kernel/drivers/usb/gadget/g_file_storage.ko";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
args_1 << "/external_root/modules/g_mass_storage.ko" << "file=/external_root/opt/storage/onboard" << "removable=y" << "stall=0";
|
massStorageModule = "/external_root/lib/modules/g_mass_storage.ko";
|
||||||
|
}
|
||||||
|
|
||||||
|
if(global::usbms::koboxExportExtensions == true) {
|
||||||
|
args_1 << massStorageModule << "file=/external_root/opt/storage/X11/extensions-user.img" << "removable=y" << "stall=0";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
args_1 << massStorageModule << "file=/external_root/opt/storage/onboard" << "removable=y" << "stall=0";
|
||||||
}
|
}
|
||||||
|
|
||||||
QProcess *proc_1 = new QProcess();
|
QProcess *proc_1 = new QProcess();
|
||||||
|
@ -111,7 +121,7 @@ void usbms_splash::usbms_launch()
|
||||||
usbms_t->setInterval(1000);
|
usbms_t->setInterval(1000);
|
||||||
connect(usbms_t, &QTimer::timeout, [&]() {
|
connect(usbms_t, &QTimer::timeout, [&]() {
|
||||||
if(exitUsbMsDone == false) {
|
if(exitUsbMsDone == false) {
|
||||||
if(isUsbPluggedIn() == false) {
|
if(isUsbPluggedIn() == 0) {
|
||||||
if(global::usbms::koboxExportExtensions == true) {
|
if(global::usbms::koboxExportExtensions == true) {
|
||||||
reboot(false);
|
reboot(false);
|
||||||
qApp->quit();
|
qApp->quit();
|
||||||
|
@ -138,7 +148,7 @@ void usbms_splash::usbms_launch()
|
||||||
|
|
||||||
QString prog("rmmod");
|
QString prog("rmmod");
|
||||||
QStringList args;
|
QStringList args;
|
||||||
args << "g_mass_storage";
|
args << massStorageModule;
|
||||||
QProcess * proc = new QProcess();
|
QProcess * proc = new QProcess();
|
||||||
proc->start(prog, args);
|
proc->start(prog, args);
|
||||||
proc->waitForFinished();
|
proc->waitForFinished();
|
||||||
|
|
|
@ -17,6 +17,7 @@ public:
|
||||||
~usbms_splash();
|
~usbms_splash();
|
||||||
float sW;
|
float sW;
|
||||||
float sH;
|
float sH;
|
||||||
|
QString massStorageModule;
|
||||||
|
|
||||||
void usbms_launch();
|
void usbms_launch();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue