Changes

no edit summary
Line 29: Line 29:  
     <li>An SDK intended for your router, which can be downloaded here: <b>[[Software Development Kit]]</b></li>
 
     <li>An SDK intended for your router, which can be downloaded here: <b>[[Software Development Kit]]</b></li>
 
</ul>
 
</ul>
 +
 +
==Ubuntu Installation and Pre-requisite==
 +
 +
Compiling the firmware should be achievable on any Linux-based machine. Alternatively, options like Oracle's VirtualBox or Windows' WSL can be used, though the setup process may vary slightly. For this example, I will be using VMWare.
 +
 +
You can download the '''VMWare''' here: [https://www.vmware.com/mena/products/workstation-pro/workstation-pro-evaluation.html VMWare]
 +
 +
1. You must download latest '''Ubuntu''' version can be found here: [https://ubuntu.com/download/desktop Ubuntu]
 +
[[File:Ubunto.png|border|class=tlt-border]]
 +
 +
2. After initiating VMware, click Create a New Virtual Machine
 +
[[File:Ubuntu2.jpg|border|class=tlt-border]]
 +
 +
3. Choose Typical -> choose the downloaded Ubuntu .iso file
 +
 +
[[File:Ubuntu3.jpg|border|class=tlt-border]]
 +
 +
then click Next.
 +
 +
4. Input Name, username, and password. Then input the Virtual Machine Name and the save path.
 +
 +
'''Note:''' allocate at least 30-50GB GB for disk size and click Store virtual disk as a single file.
 +
 +
[[File:Ubuntu4.jpg|border|class=tlt-border]]
 +
 +
Then click Next.
 +
 +
5. Select Customize Hardware. Allow for 4GB or more of memory and 2 or more processors *more is preferable* depending on your machine.
 +
[[File:Ubuntu5.jpg|border|class=tlt-border]]
 +
 +
Finally, click Finish.
 +
 +
Ubuntu will initialize. Choose your language. The example will be in English.
 +
 +
6. Choose Minimal installation and check Install third-party software for graphics and Wi-Fi hardware and additional media formats.
 +
[[File:Ubuntu6.jpg|border|class=tlt-border]]
 +
 +
Click Continue
 +
 +
7. Once installion is done, click on Restart Now.
 +
 +
8. Once Ubuntu is now running. Open a browser and download the SDK file from Teltonika Networks wiki. You can find it out here: [https://wiki.teltonika-networks.com/view/Software_Development_Kit Software Development Kit]
 +
    
==Compiling a standard firmware==
 
==Compiling a standard firmware==
Line 35: Line 78:     
  sudo apt update
 
  sudo apt update
 +
 +
sudo apt install nodejs
 +
 +
sudo apt install npm
    
  sudo apt install build-essential ccache ecj fastjar file flex g++ gawk \ gettext git java-propose-classpath java-wrappers jq libelf-dev \ libffi-dev libncurses5-dev libncursesw5-dev libssl-dev libtool \ python python2.7-dev python3 python3-dev python3-distutils \ python3-setuptools rsync subversion swig time u-boot-tools \ unzip wget xsltproc zlib1g-dev bison
 
  sudo apt install build-essential ccache ecj fastjar file flex g++ gawk \ gettext git java-propose-classpath java-wrappers jq libelf-dev \ libffi-dev libncurses5-dev libncursesw5-dev libssl-dev libtool \ python python2.7-dev python3 python3-dev python3-distutils \ python3-setuptools rsync subversion swig time u-boot-tools \ unzip wget xsltproc zlib1g-dev bison
   −
Create a new folder (for this example I'll be using a directory called <i>RUTX_R</i> found at my <b>home</b> directory) and extract the SDK archive inside it. You can achieve this with drag and drop or by executing this command via Terminal:
+
Create a new folder (for this example I'll be using a directory called <i>RUTX_R</i> found at my <b>home</b> directory) and extract the SDK archive inside it.
 +
[[File:SDK_EXTRACT.jpg|border|class=tlt-border]]
 +
 
 +
You can achieve this with drag and drop or by executing this command via Terminal:
 +
 
 +
Navigate to the "Downloads" folder:
 +
cd ~/Downloads
 +
Extract the tar.gz file:
 +
tar -xzvf RUTX_R_GPL_00.07.05.X.tar.gz
   −
tar -xf ~/Downloads/RUTX_R_GPL_00.XX.YY.Y.tar.gz -C ~/RUTX_R
+
This command will extract the contents of the RUTX_R_GPL_00.07.05.X.tar.gz file into the current directory, After running this command, you should find the extracted files in the same directory where you ran the command.
    
<b>Note</b>: don't forget to replace the file name and path in accordance with your own circumstances
 
<b>Note</b>: don't forget to replace the file name and path in accordance with your own circumstances
   −
Open a Terminal inside the SDK directory. You can change the directory in your current terminal (<i>cd ~/RUTX_R/openwrt-gpl-ipq40xx.Linux-x86_64</i>).
+
Open a Terminal inside the SDK directory. You can change the directory in your current terminal (<i>cd ~/RUTX_R/openwrt-gpl-ipq40xx.Linux-x86_64</i>)
    
Once you open the Terminal, update the feeds:
 
Once you open the Terminal, update the feeds:
Line 57: Line 112:  
[[File:Make_without_jobs_v1.gif]]
 
[[File:Make_without_jobs_v1.gif]]
   −
<b>Note</b>: the first time you compile a firmware file it may take up to <b>two hours</b> before it is complete. Don't close the Terminal window up until then. Once it is finished, you will find the firmware in the <i>./bin/targets/ipq40xx/generic</i> directory. It should contain a file openwrt-ipq40xx-qcom-ipq4018-rutx-squashfs-apps.bin, it can be used to upgrade your router's firmware via its web interface.
+
<b>Note</b>: the first time you compile a firmware file it may take up to <b>30 minutes</b> before it is complete. Don't close the Terminal window up until then. Once it is finished, you will find the firmware in the <i>./bin/targets/ipq40xx/generic</i> directory. It should contain a file openwrt-ipq40xx-qcom-ipq4018-rutx-squashfs-apps.bin, it can be used to upgrade your router's firmware via its web interface.
 
----
 
----
 
You can speed up this process by passing an extra argument <b>-j</b>. This argument then compiles the necessary packages in parallel.  
 
You can speed up this process by passing an extra argument <b>-j</b>. This argument then compiles the necessary packages in parallel.  
Line 69: Line 124:     
[[File:make_with_jobs_v1.gif]]
 
[[File:make_with_jobs_v1.gif]]
 +
 +
'''Troubleshooting tips:'''
 +
 +
1. If you get error on first ‘make’, do ./scripts/feeds update -a once more.
 +
 +
2. Once you extract the SDK files, Rename rutos-ipq40xx-rutx-gpl to a different file name and move it to home directory.
 +
 +
3. Try running `make distclean` if you believe that your SDK installation is corrupt. This will recompile the firmware from scratch.
 +
 +
4. Allowing us to run command. “make -j<nproc_output> V=sc” for verbose output. This way you will see more logs that may help to troubleshoot compilation issues.
    
==Changing default settings==
 
==Changing default settings==

Navigation menu