mirror of
https://github.com/eliboa/TegraRcmGUI.git
synced 2024-12-28 19:16:02 +00:00
Bug fixes
Added script to download compiled Linux kernel from SoulCypher repo
This commit is contained in:
parent
dfbd89b6a2
commit
942af16489
5 changed files with 125 additions and 6 deletions
BIN
TegraRcmGUI.rc
BIN
TegraRcmGUI.rc
Binary file not shown.
|
@ -55,7 +55,8 @@ void CTegraRcmGUIDlg::DoDataExchange(CDataExchange* pDX)
|
|||
DDX_Control(pDX, RCM_PIC_1, RCM_BITMAP1);
|
||||
DDX_Control(pDX, RCM_PIC_2, RCM_BITMAP2);
|
||||
DDX_Control(pDX, RCM_PIC_3, RCM_BITMAP3);
|
||||
DDX_Control(pDX, RCM_PIC_4, RCM_BITMAP0);
|
||||
DDX_Control(pDX, RCM_PIC_4, RCM_BITMAP0);
|
||||
DDX_Control(pDX, PAYLOAD_PATH, m_EditBrowse);
|
||||
}
|
||||
|
||||
BEGIN_MESSAGE_MAP(CTegraRcmGUIDlg, CDialog)
|
||||
|
@ -79,6 +80,7 @@ BOOL CTegraRcmGUIDlg::OnInitDialog()
|
|||
RCM_BITMAP1.SetBitmap(RCM_NOT_DETECTED);
|
||||
RCM_BITMAP2.SetBitmap(DRIVER_KO);
|
||||
RCM_BITMAP3.SetBitmap(RCM_DETECTED);
|
||||
SendMessage(PAYLOAD_PATH, BM_CLICK, 0);
|
||||
|
||||
// Add "About..." menu item to system menu.
|
||||
|
||||
|
@ -249,11 +251,21 @@ void CTegraRcmGUIDlg::OnBnClickedButton()
|
|||
TCHAR* args[2];
|
||||
args[0] = TEXT("");
|
||||
args[1] = PAYLOAD_FILE;
|
||||
string s;
|
||||
|
||||
if (PAYLOAD_FILE == nullptr) {
|
||||
s = "No file selected !";
|
||||
CA2T wt(s.c_str());
|
||||
CTegraRcmGUIDlg::SetDlgItemText(INFO_LABEL, wt);
|
||||
LOOP_WAIT = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
TegraRcmSmash device;
|
||||
int rc = device.SmashMain(2, args);
|
||||
|
||||
string s;
|
||||
|
||||
if (rc >= 0)
|
||||
{
|
||||
s = "Payload injected !";
|
||||
|
@ -282,11 +294,39 @@ void CTegraRcmGUIDlg::OnBnClickedShofel2()
|
|||
csPath.Empty();
|
||||
}
|
||||
|
||||
CString COREBOOT = _T("CBFS+") + csPath + _T("\\shofel2\\coreboot\\coreboot.rom");
|
||||
string s;
|
||||
CString COREBOOT_FILE = csPath + _T("\\shofel2\\coreboot\\coreboot.rom");
|
||||
CString COREBOOT = _T("CBFS+") + COREBOOT_FILE;
|
||||
CString PAYLOAD = csPath + _T("\\shofel2\\coreboot\\cbfs.bin");
|
||||
std::ifstream infile(COREBOOT_FILE);
|
||||
BOOL coreboot_exists = infile.good();
|
||||
std::ifstream infile2(PAYLOAD);
|
||||
BOOL payload_exists = infile2.good();
|
||||
|
||||
if (!coreboot_exists || !payload_exists) {
|
||||
s = "Linux kernel found not found in \\shofel2 dir";
|
||||
CA2T wt(s.c_str());
|
||||
CTegraRcmGUIDlg::SetDlgItemText(INFO_LABEL, wt);
|
||||
|
||||
|
||||
CString message = _T("Kernel not found in shofel2 directory. Do you want to automatically download arch linux kernel from SoulCipher repo ?");
|
||||
const int result = MessageBox(message, _T("Kernel not found"), MB_YESNOCANCEL | MB_ICONQUESTION);
|
||||
if (result == IDYES)
|
||||
{
|
||||
PROCESS_INFORMATION pif;
|
||||
STARTUPINFO si;
|
||||
ZeroMemory(&si, sizeof(si));
|
||||
si.cb = sizeof(si);
|
||||
CString download_script = csPath + _T("\\shofel2\\download.bat");
|
||||
BOOL bRet = CreateProcess(download_script, NULL, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pif);
|
||||
}
|
||||
|
||||
LOOP_WAIT = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
TCHAR* payload_f = _tcsdup(PAYLOAD);
|
||||
TCHAR* coreboot_f = _tcsdup(COREBOOT);
|
||||
string s;
|
||||
TCHAR* args[5];
|
||||
args[0] = TEXT("");
|
||||
args[1] = TEXT("-w");
|
||||
|
|
|
@ -14,7 +14,7 @@ public:
|
|||
CBitmapPicture RCM_BITMAP1;
|
||||
CBitmapPicture RCM_BITMAP2;
|
||||
CBitmapPicture RCM_BITMAP3;
|
||||
|
||||
CMFCEditBrowseCtrl m_EditBrowse;
|
||||
|
||||
// Dialog Data
|
||||
#ifdef AFX_DESIGN_TIME
|
||||
|
@ -29,7 +29,7 @@ public:
|
|||
protected:
|
||||
HICON m_hIcon;
|
||||
// Generated message map functions
|
||||
virtual BOOL OnInitDialog();
|
||||
virtual BOOL OnInitDialog();
|
||||
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
|
||||
afx_msg void OnIdle();
|
||||
afx_msg void OnShowWindow();
|
||||
|
@ -44,4 +44,5 @@ public:
|
|||
afx_msg void OnEnChangePath();
|
||||
afx_msg void OnBnClickedButton();
|
||||
afx_msg void OnBnClickedShofel2();
|
||||
|
||||
};
|
||||
|
|
BIN
resource.h
BIN
resource.h
Binary file not shown.
78
shofel2/download.bat
Normal file
78
shofel2/download.bat
Normal file
|
@ -0,0 +1,78 @@
|
|||
@Echo OFF
|
||||
if exist shofel2 (
|
||||
cd shofel2
|
||||
)
|
||||
::
|
||||
:: CONTROLS
|
||||
::
|
||||
set USE_GIT=0
|
||||
git --help > NUL 2> NUL
|
||||
if errorlevel 1 (
|
||||
if not exist C:\windows\System32\WindowsPowerShell\v1.0\powershell.exe (
|
||||
echo Neither Powershell nor Git are installed on this computer.
|
||||
echo Please download https://github.com/SoulCipher/shofel2_linux/archive/master.zip manually
|
||||
echo Waiting 10s before closing...
|
||||
ping 127.0.0.1 -n 11 > nul
|
||||
exit
|
||||
)
|
||||
) else (
|
||||
set USE_GIT=1
|
||||
)
|
||||
if not exist conf\imx_usb.conf set MISSING=1
|
||||
if not exist conf\switch.conf set MISSING=1
|
||||
if not exist coreboot\cbfs.bin set MISSING=1
|
||||
if not exist coreboot\coreboot.rom set MISSING=1
|
||||
if not exist dtb\tegra210-nintendo-switch.dtb set MISSING=1
|
||||
if not exist image\switch.scr.img set MISSING=1
|
||||
if not exist kernel\Image.gz set MISSING=1
|
||||
if not defined MISSING (
|
||||
echo All needed files already at the right place !
|
||||
echo You should be able to boot Linux from TegraRcmGUI
|
||||
echo If not, verify read access permission. file already open in another program ?
|
||||
echo Waiting 10s before closing...
|
||||
ping 127.0.0.1 -n 11 > nul
|
||||
exit
|
||||
)
|
||||
if exist conf\ RMDIR /S /Q conf
|
||||
if exist coreboot\ RMDIR /S /Q coreboot
|
||||
if exist dtb\ RMDIR /S /Q dtb
|
||||
if exist image\ RMDIR /S /Q image
|
||||
if exist kernel\ RMDIR /S /Q kernel
|
||||
|
||||
::
|
||||
:: PROCEDURE
|
||||
::
|
||||
if %USE_GIT% equ 1 (
|
||||
echo Downloading linux kernel from SoulCipher repo
|
||||
git clone https://github.com/SoulCipher/shofel2_linux
|
||||
echo Moving needed files
|
||||
move shofel2_linux\conf .\
|
||||
move shofel2_linux\coreboot .\
|
||||
move shofel2_linux\dtb .\
|
||||
move shofel2_linux\image .\
|
||||
move shofel2_linux\kernel .\
|
||||
echo Removing unnecessary files
|
||||
RMDIR /S /Q shofel2_linux
|
||||
echo Completed. You should be able to boot Linux from TegraRcmGUI.
|
||||
) else (
|
||||
SetLocal EnableDelayedExpansion
|
||||
if exist shofel2.zip del shofel2.zip
|
||||
echo Downloading linux kernel from SoulCipher repo
|
||||
echo https://github.com/SoulCipher/shofel2_linux/archive/master.zip
|
||||
powershell -Command "[Net.ServicePointManager]::SecurityProtocol = 'tls12, tls11, tls'; Invoke-WebRequest -Uri https://github.com/SoulCipher/shofel2_linux/archive/master.zip -OutFile shofel2.zip"
|
||||
echo Unzipping package
|
||||
powershell -Command "Expand-Archive -Path shofel2.zip"
|
||||
echo Moving needed files
|
||||
move shofel2\shofel2_linux-master\conf .\
|
||||
move shofel2\shofel2_linux-master\coreboot .\
|
||||
move shofel2\shofel2_linux-master\dtb .\
|
||||
move shofel2\shofel2_linux-master\image .\
|
||||
move shofel2\shofel2_linux-master\kernel .\
|
||||
echo Removing unnecessary files
|
||||
del shofel2.zip
|
||||
RMDIR /S /Q shofel2
|
||||
echo Completed. You should be able to boot Linux from TegraRcmGUI.
|
||||
)
|
||||
echo Waiting 5s before closing...
|
||||
ping 127.0.0.1 -n 6 > nul
|
||||
exit
|
Loading…
Reference in a new issue