Template:Networking rutos software development kit software development kit instructions: Difference between revisions
Template:Networking rutos software development kit software development kit instructions (view source)
Revision as of 10:47, 14 November 2023
, 14 November 2023no edit summary
No edit summary |
|||
(4 intermediate revisions by the same user not shown) | |||
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 | |||
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> | <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== |