Difference between revisions of "RUTOS Software Development Kit (SDK) Instruction"

From Teltonika Networks Wiki
(70 intermediate revisions by 4 users not shown)
Line 1: Line 1:
A <b>Software Development Kit</b> (<b>SDK</b>) is a set of software development tools that provides the possibility to create applications for a certain software package, software framework, computer system or similar development platform.
+
A <b>software development kit</b> (<b>SDK</b>) is a set of software development tools that provides the possibility to create applications for a certain software package, software framework, computer system or similar development platform.
  
<b>Note:</b> The information in this page is in accordance to using SDK version <b>R_00.07.06</b>. The included Readme file in SDK archive file contains information for each separate SDK version and might differ from the older version or information provided in this wiki page. Please always follow the instruction provided in Readme file.
+
<b>Note:</b> The information in this page is in accordance to using SDK version <b>R_00.07.05</b>. The included Readme file in SDK archive file contains information for each separate SDK version and might differ from the older version or information provided in this wiki page. Please always follow the provided Readme file.
  
 
__TOC__
 
__TOC__
Line 11: Line 11:
 
     <li>Teltonika Router running RutOS</li>
 
     <li>Teltonika Router running RutOS</li>
 
     <li>[https://ubuntu.com/download/desktop/ Ubuntu 22.04.3 LTS OS]</li>
 
     <li>[https://ubuntu.com/download/desktop/ Ubuntu 22.04.3 LTS OS]</li>
     <li>SDK version <b>R_00.07.06.x</b></li>
+
     <li>SDK version <b>R_00.07.05.x</b></li>
 
</ul>
 
</ul>
  
The examples apply to various RUTOS routers, SDK versions and operating systems. The key concepts should apply regardless of the device, version, or system. The availability of SDK Firmware branding begins from version 7.06, although some of these modifications may be accessible on earlier firmware versions.
+
The examples apply to various RUTOS routers, SDK versions and operating systems. In most cases the difference will only be that of a visual nature, The availability of SDK Firmware branding begins from version 7.05, although some of these modifications may be accessible on earlier firmware versions.
  
 
Most examples provided in this page are independent from each other. But it is highly recommended to acquaint yourself with the basics by reading the "[[#Prerequisites|Prerequisites]]" and "[[#Compiling_a_standard_firmware|Compiling a standard firmware]]" sections first as they contain information that will be necessary in order to understand some aspects of the other examples.
 
Most examples provided in this page are independent from each other. But it is highly recommended to acquaint yourself with the basics by reading the "[[#Prerequisites|Prerequisites]]" and "[[#Compiling_a_standard_firmware|Compiling a standard firmware]]" sections first as they contain information that will be necessary in order to understand some aspects of the other examples.
Line 30: Line 30:
 
</ul>
 
</ul>
  
==Ubuntu Installation==
+
==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.
 
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-player/workstation-player-evaluation.html VMWare]
+
You can download the '''VMWare''' here: [https://www.vmware.com/mena/products/workstation-pro/workstation-pro-evaluation.html VMWare]
  
For commercial use, consider downloading the '''VMware Pro Version''': [https://www.vmware.com/mena/products/workstation-pro/workstation-pro-evaluation.html VMWare Pro]
+
1. You must download latest '''Ubuntu''' version can be found here: [https://ubuntu.com/download/desktop Ubuntu]
 +
[[File:Ubunto.png|border|class=tlt-border]]
  
If you prefer a personal and free alternative, you can use '''Oracle VirtualBox'''. Download it from their official website: [https://www.virtualbox.org/wiki/Downloads Oracle VirtualBox]
+
2. After initiating VMware, click Create a New Virtual Machine
 +
[[File:Ubuntu2.jpg|border|class=tlt-border]]
  
1. You can download latest '''Ubuntu''' version can be found here: [https://ubuntu.com/download/desktop Ubuntu]
+
3. Choose Typical -> choose the downloaded Ubuntu .iso file
[[File:Ubunto.png|1100px|border|class=tlt-border]]
 
  
2. After initiating VMware, click '''Create a New Virtual Machine'''
+
[[File:Ubuntu3.jpg|border|class=tlt-border]]
[[File:Ubuntu2.jpg|1100px|border|class=tlt-border]]
 
  
3. Choose '''Typical''' -> choose the downloaded '''Ubuntu .iso file'''. Then click '''Next'''.
+
then click Next.
  
[[File:Ubuntu3.jpg|border|class=tlt-border]]
+
4. Input Name, username, and password. Then input the Virtual Machine Name and the save path.
 
 
4. Input Name, username, and password. Then input the Virtual Machine Name and the save path. Then click '''Next'''.
 
  
 
'''Note:''' allocate at least 30-50GB GB for disk size and click Store virtual disk as a single file.
 
'''Note:''' allocate at least 30-50GB GB for disk size and click Store virtual disk as a single file.
Line 56: Line 54:
 
[[File:Ubuntu4.jpg|border|class=tlt-border]]
 
[[File:Ubuntu4.jpg|border|class=tlt-border]]
  
5. Select '''Customize Hardware'''. Allow for 4GB or more of memory and 2 or more processors, depending on your machine. Finally, click '''Finish'''.
+
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]]
 
[[File:Ubuntu5.jpg|border|class=tlt-border]]
 +
 +
Finally, click Finish.
  
 
Ubuntu will initialize. Choose your language. The example will be in English.
 
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.
+
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]]
 
[[File:Ubuntu6.jpg|border|class=tlt-border]]
  
Click '''Continue'''
+
Click Continue
  
7. Once installation is done, click on '''Restart Now'''.  
+
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]
 
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==
  
First, you can '''install the packages''' required for the SDK to work. Open the Terminal application (<b>Ctrl + ALT + T</b>) and execute the following commands:
+
First, you must install the packages required for the SDK to work. Open the Terminal application (<b>Ctrl + ALT + T</b>) and execute the following commands:
  
 
  sudo apt update
 
  sudo apt update
Line 80: Line 83:
 
  sudo apt install npm
 
  sudo apt install npm
  
  sudo apt install binutils binutils-gold bison build-essential bzip2 \ ca-certificates curl default-jdk device-tree-compiler devscripts \ ecj file flex fuse g++ gawk gcc gcc-multilib gengetopt gettext \ git gnupg groff help2man java-wrappers java-propose-classpath jq \ libc6-dev libffi-dev libncurses5-dev libpcre3-dev libsqlite3-dev \ libssl-dev libxml-parser-perl lz4 make ocaml ocaml-findlib \ ocaml-nox patch pkg-config python3 python3-dev python3-distutils \ python3-yaml rsync ruby sharutils subversion swig u-boot-tools \ unzip uuid-dev vim-common wget zip zlib1g-dev
+
  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
 
 
'''Note''': It is suggested to install '''NodeJS v12 (or newer)''' and '''NPM v6.9 (or newer)'''. You can check NodeJS and NPM version by running these commands respectively:
 
 
 
node -v
 
npm -v
 
  
 
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.
 
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:DL.png|border|class=tlt-border]]
+
[[File:SDK_EXTRACT.jpg|border|class=tlt-border]]
  
You can achieve this with drag and drop or by executing this command via '''Terminal''':
+
You can achieve this with drag and drop or by executing this command via Terminal:
  
Navigate to the '''"Downloads"''' folder:
+
Navigate to the "Downloads" folder:
 
  cd ~/Downloads
 
  cd ~/Downloads
Extract the '''tar.gz''' file:
+
Extract the tar.gz file:
  tar -xzvf RUTX_R_GPL_00.07.06.X.tar.gz
+
  tar -xzvf RUTX_R_GPL_00.07.05.X.tar.gz
  
This command will extract the contents of the RUTX_R_GPL_00.07.06.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.
+
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
Line 103: Line 101:
 
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:
  
 
  ./scripts/feeds update -a
 
  ./scripts/feeds update -a
Line 112: Line 110:
  
 
If all is in order, the output should look something like this:
 
If all is in order, the output should look something like this:
[[File:Make_SDK.gif|1100px|border|class=tlt-border]]
+
[[File:Make_without_jobs_v1.gif]]
  
 
<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.
 
<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.  
To know how many jobs you can pass to the compiling process execute this command in the terminal:  
+
To know how much jobs you can pass to the compiling process execute this command in the terminal:  
  
 
   nproc
 
   nproc
Line 125: Line 123:
 
   make -j<nproc_output>
 
   make -j<nproc_output>
  
[[File:Make_nproc.gif|1100px|border|class=tlt-border]]
+
[[File:make_with_jobs_v1.gif]]
  
 
'''Troubleshooting tips:'''
 
'''Troubleshooting tips:'''
Line 135: Line 133:
 
3. Try running `make distclean` if you believe that your SDK installation is corrupt. This will recompile the firmware from scratch.
 
3. Try running `make distclean` if you believe that your SDK installation is corrupt. This will recompile the firmware from scratch.
  
4. Start compilation by running '''make -j<nproc_output> V=sc''' for verbose output. This way you will see more logs that may help to troubleshoot compilation issues.
+
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 Password==
 
==Changing Default Password==
  
To create a firmware with different default settings, you can change the default in the config files, which are contained in <b>/openwrt-gpl-ipq40xx.Linux-x86_64/package/</b>. However, there is no unifying system regarding where one should look for config files related to specific services. Therefore, it is very important to acquaint yourself with the <b>UCI system</b> (RutOS configuration file system) in order to successfully navigate through the files:
+
To create a firmware with different default settings, you must change the default in the config files, which are contained in <b>/openwrt-gpl-ipq40xx.Linux-x86_64/package/</b>. However, there is no unifying system regarding where one should look for config files related to specific services. Therefore, it is very important to acquaint yourself with the <b>UCI system</b> (RutOS configuration file system) in order to successfully navigate through the files:
  
 
<ul>
 
<ul>
Line 148: Line 146:
  
 
To change the default device password, changes need to be made inside:
 
To change the default device password, changes need to be made inside:
  "RUTX_R_GPL_00.07.06/package/base-files/files/lib/preinit/84_set_password"
+
  "RUTX_R_GPL_00.07.05/package/base-files/files/lib/preinit/84_set_password"
 
 
Change "'''admin01'''" to your password on line '''[ -z "$passwd" ] && passwd="$(mkpasswd
 
admin01)"'''
 
 
 
Additionally, devices on newer batch are having unique passwords from MNF info. The new password should also be added under '''passwd''' in '''push_password''' list
 
 
 
 
 
[[File:Mkpswd.png|border|class=tlt-border]]
 
 
 
To disable the option to change the '''default password for the first time''', kindly follow the professional instructions outlined below.
 
 
 
go to the path:
 
 
 
/package/feeds/vuci/api-core/files/etc/config/vuci
 
  
change  option firstlogin ''''1'''' to ''''0'''', so it would not ask to change the password on the first login.
+
[[File:PASSWORD.png|border|class=tlt-border]]
  
[[File:Firstlogin.jpg|border|class=tlt-border]]
+
Change "admin01" to your password on line [ -z "$passwd" ] && passwd="$(mkpasswd
 +
admin01)"
  
After making changes and saving them to the directory, we may '''build compile''' using the following commands:
+
After making changes and saving them to the directory, we may build compile using the following commands:
  
./scripts/feeds update -a
+
1- ./scripts/feeds update -a
  
make clean
+
2- make clean
  
Following that, when compiling firmware using '''make''' command, specifying the number of processors to be used is possible, thus speeding it up. To determine the number of available processors, you can use '''nproc''' command. Then, pass this number to the '''-j''' option in '''make''' command.
+
3- Following that, we must execute the "nproc" command to determine the number of processors, and it will return a number, such as 1, allowing us to run command. “make -j1 V=sc” for verbose output. This way you will see more logs that may help to troubleshoot compilation issues.
make -j1 V=sc
 
  
The exact path to the firmware depends on the target. In this example, the firmware can be found in the following directory:
+
The firmware can then be found in the directory listed below *Depends on the target*:
  rutos-ath79-rut9-gpl>bin>targets>ath79>generic>tltFws>RUTX_R_GPL_00.07.06.1_WEBUI
+
  rutos-ath79-rut9-gpl>bin>targets>ath79>generic>tltFws>RUTX_R_GPL_00.07.05.3_WEBUI
'''file name''': RUTX_R_GPL_00.07.06.X_WEBUI
+
'''file name''': RUTX_R_GPL_00.07.05.X_WEBUI
  
 
==Changing Default IP Address==
 
==Changing Default IP Address==
To modify the '''default IP address''', you can make use of a dedicated menu in the firmware configuration, which is accessed through the '''"menuconfig"''' interface. To access this configuration menu, follow these steps from the root directory of your project:
+
To modify the default IP address, you can make use of a dedicated menu in the firmware configuration, which is accessed through the "menuconfig" interface. To access this configuration menu, follow these steps from the root directory of your project:
 
Open a terminal and execute the following command:
 
Open a terminal and execute the following command:
  
 
  make menuconfig
 
  make menuconfig
  
After entering the '''"make menuconfig"''' command, it will launch a new interface known as the "OpenWrt Configuration." In this interface, navigate to the "Target Firmware options" section.   
+
After entering the "make menuconfig" command, it will launch a new interface known as the "OpenWrt Configuration." In this interface, navigate to the "Target Firmware options" section.   
  
 
[[File:IP1.png|border|class=tlt-border]]
 
[[File:IP1.png|border|class=tlt-border]]
  
You will then be presented with the option to modify the '''Default IP address''', allowing you to input your desired value. By default, it is set to '''(192.168.1.1)'''.
+
You will then be presented with the option to modify the Default IP address, allowing you to input your desired value. By default, it is set to (192.168.1.1).
  
 
[[File:IP2.png|border|class=tlt-border]]
 
[[File:IP2.png|border|class=tlt-border]]
  
You will then be presented with the option to modify the '''Default IP address''', allowing you to input your desired value.
+
You will then be presented with the option to modify the Default IP address, allowing you to input your desired value.
 
[[File:IP3.png|border|class=tlt-border]]
 
[[File:IP3.png|border|class=tlt-border]]
  
After making the desired changes to the '''Default IP address''', you can then save those modifications.
+
After making the desired changes to the Default IP address, you can then save those modifications.
 
[[File:IP4.png|border|class=tlt-border]]
 
[[File:IP4.png|border|class=tlt-border]]
  
After making changes and saving them to the directory, we may '''build compile''' using the following commands:
+
After making changes and saving them to the directory, we may build compile using the following commands:
  
./scripts/feeds update -a
+
1- ./scripts/feeds update -a
  
make clean
+
2- make clean
  
Following that, when compiling firmware using '''make''' command, specifying the number of processors to be used is possible, thus speeding it up. To determine the number of available processors, you can use '''nproc''' command. Then, pass this number to the '''-j''' option in '''make''' command.
+
3- Following that, we must execute the "nproc" command to determine the number of processors, and it will return a number, such as 1, allowing us to run command. “make -j1 V=sc” for verbose output. This way you will see more logs that may help to troubleshoot compilation issues.
make -j1 V=sc
 
  
The exact path to the firmware depends on the target. In this example, the firmware can be found in the following directory:
+
The firmware can then be found in the directory listed below *Depends on the target*:
  rutos-ath79-rut9-gpl>bin>targets>ath79>generic>tltFws>RUTX_R_GPL_00.07.06.1_WEBUI
+
  rutos-ath79-rut9-gpl>bin>targets>ath79>generic>tltFws>RUTX_R_GPL_00.07.05.3_WEBUI
'''file name''': RUTX_R_GPL_00.07.06.X_WEBUI
+
'''file name''': RUTX_R_GPL_00.07.05.X_WEBUI
  
 
==Changing SSH Banner==
 
==Changing SSH Banner==
To modify the '''SSH banner''', you can make use of the file search tool in the extracted GPL. To access this, follow these steps from the root directory of your project, '''you can find the file from route below''':
+
To modify the SSH banner, you can make use of the file search tool in the extracted GPL. To access this, follow these steps from the root directory of your project, you can find the file from route below:
  
  ~/Downloads/RUTX_R_GPL_00.07.06/rutos-ipq40xx-rutx-gpl/package/base-files/files/etc
+
  ~/Downloads/RUTX_R_GPL_00.07.05.3/rutos-ipq40xx-rutx-gpl/package/base-files/files
  
[[File:Blogo.png|border|class=tlt-border]]
+
[[File:SSH1.jpg|border|class=tlt-border]]
  
 
Make sure that the file that we want to edit is in the similar file path as above.
 
Make sure that the file that we want to edit is in the similar file path as above.
  
[[File:Bannernew.png|border|class=tlt-border]]
+
[[File:Ssh2.jpg|border|class=tlt-border]]
 
 
The contents of the file should look similar to the image above. after making the desired changes to the banner, you can then save those modifications.
 
 
 
 
 
Another way of producing a personalised banner is by using a free open source application such as '''figlet''', which you can install in your linux system by using the command:
 
 
 
sudo apt-get install figlet
 
 
 
[[File:Figlet install.png|border|class=tlt-border]]
 
 
 
Then you can insert the generated ASCII art text to the '''banner.logo''' file by executing following command:
 
 
 
figlet [YOUR TEXT] > "banner.logo"
 
 
 
Make sure that your are in the same directory which contains the banner.logo file.
 
 
 
[[File:Figlet.png|1100px|border|class=tlt-border]]
 
 
 
After making changes and saving them to the directory, we may '''build compile''' using the following commands:
 
 
 
./scripts/feeds update -a
 
 
 
make clean
 
 
 
Following that, when compiling firmware using '''make''' command, specifying the number of processors to be used is possible, thus speeding it up. To determine the number of available processors, you can use '''nproc''' command. Then, pass this number to the '''-j''' option in '''make''' command.
 
make -j1 V=sc
 
 
 
The exact path to the firmware depends on the target. In this example, the firmware can be found in the following directory:
 
rutos-ath79-rut9-gpl>bin>targets>ath79>generic>tltFws>RUTX_R_GPL_00.07.06.1_WEBUI
 
'''file name''': RUTX_R_GPL_00.07.06.X_WEBUI
 
 
 
'''RESULTS:'''
 
 
 
[[File:Sshnew.png|border|class=tlt-border]]
 
 
 
==Changing Firmware Version==
 
To modify the firmware version like Prefix, go to the directory where '''gpl_version''' file is located (''/Downloads/RUTX_R_GPL_00.07.06.1/rutos-ipq40xx-rutx-gpl''). Then run this command to edit file content.
 
  
  nano gpl_version
+
It shall open up as above , after making the desired changes to the banner, you can then save those modifications.
  
Replace the content to the desired firmware version. To save, type '''Ctrl + X'''. Then, click '''Y'''.  
+
[[File:SSH3.jpg|border|class=tlt-border]]
  
[[File:FWV.png|border|class=tlt-border]]
+
After making changes and saving them to the directory, we may build compile using the following commands:
  
After making changes and saving them to the directory, we may '''build compile''' using the following commands:
+
1- ./scripts/feeds update -a
  
./scripts/feeds update -a
+
2- make clean
  
make clean
+
3- Following that, we must execute the "nproc" command to determine the number of processors, and it will return a number, such as 1, allowing us to run command. “make -j1 V=sc” for verbose output. This way you will see more logs that may help to troubleshoot compilation issues.
  
Following that, when compiling firmware using '''make''' command, specifying the number of processors to be used is possible, thus speeding it up. To determine the number of available processors, you can use '''nproc''' command. Then, pass this number to the '''-j''' option in '''make''' command.
+
The firmware can then be found in the directory listed below *Depends on the target*:
make -j1 V=sc
+
  rutos-ath79-rut9-gpl>bin>targets>ath79>generic>tltFws>RUTX_R_GPL_00.07.05.3_WEBUI
 
+
'''file name''': RUTX_R_GPL_00.07.05.X_WEBUI
The exact path to the firmware depends on the target. In this example, the firmware can be found in the following directory:
 
  rutos-ath79-rut9-gpl>bin>targets>ath79>generic>tltFws>Company_Ex_99.99.99_WEBUI
 
'''file name''': Company_Ex_99.99.99_WEBUI
 
 
 
'''RESULTS:'''
 
 
 
[[File:Version1.png|border|class=tlt-border]]
 
 
 
[[File:Version2.png|border|class=tlt-border]]
 
  
 
==Changing Company Links==
 
==Changing Company Links==
To modify the '''Company Links''', you can make use of the file search tool in the extracted GPL. To access this, follow these steps from the root directory of your project, '''you can find the file from route below:'''
+
To modify the Company Links, you can make use of the file search tool in the extracted GPL. To access this, follow these steps from the root directory of your project, you can find the file from route below:
  
  ~/Downloads/RUTX_R_GPL_00.07.06.1/rutos-ipq40xx-rutx-gpl/package/feeds/vuci/vuci-ui-core/bin/dist/brand
+
  ~/Downloads/RUTX_R_GPL_00.07.05.3/rutos-ipq40xx-rutx-gpl/package/feeds/vuci/vuci-ui-core/bin/dist/brand
  
[[File:Brandjson.png|1100px|border|class=tlt-border]]
+
[[File:COMP1.jpg|border|class=tlt-border]]
  
 
Make sure that the file that we want to edit is in the similar file path as above.
 
Make sure that the file that we want to edit is in the similar file path as above.
  
[[File:Brandnew.png|border|class=tlt-border]]
+
[[File:COMP2.jpg|border|class=tlt-border]]
  
The contents of the file should look similar to the image above. After making the desired changes to the banner, you can then save those modifications.
+
It shall open up as  above , after making the desired changes to the banner, you can then save those modifications.
  
After making changes and saving them to the directory, we may '''build compile''' using the following commands:
+
[[File:COMP3.jpg|border|class=tlt-border]]
  
./scripts/feeds update -a
+
After making changes and saving them to the directory, we may build compile using the following commands:
 +
 
 +
1- ./scripts/feeds update -a
  
make clean
+
2- make clean
  
Following that, when compiling firmware using '''make''' command, specifying the number of processors to be used is possible, thus speeding it up. To determine the number of available processors, you can use '''nproc''' command. Then, pass this number to the '''-j''' option in '''make''' command.
+
3- Following that, we must execute the "nproc" command to determine the number of processors, and it will return a number, such as 1, allowing us to run command. “make -j1 V=sc” for verbose output. This way you will see more logs that may help to troubleshoot compilation issues.
make -j1 V=sc
 
  
The exact path to the firmware depends on the target. In this example, the firmware can be found in the following directory:
+
The firmware can then be found in the directory listed below *Depends on the target*:
  rutos-ath79-rut9-gpl>bin>targets>ath79>generic>tltFws>RUTX_R_GPL_00.07.06.1_WEBUI
+
  rutos-ath79-rut9-gpl>bin>targets>ath79>generic>tltFws>RUTX_R_GPL_00.07.05.3_WEBUI
'''file name''': RUTX_R_GPL_00.07.06.X_WEBUI
+
'''file name''': RUTX_R_GPL_00.07.05.X_WEBUI
  
  
 
'''RESULTS:'''
 
'''RESULTS:'''
  
[[File:Companylink.png|1100px|border|class=tlt-border]]
+
[[File:RESULTS COMP.jpg|border|class=tlt-border]]
  
 
==Changing Device brand==
 
==Changing Device brand==
To modify the '''Device brand''', you can make use search tool in the extracted GPL. To access this, follow these steps from the root directory of your project, '''you can find the TWO files from route below''':
+
To modify the Device brand, you can make use search tool in the extracted GPL. To access this, follow these steps from the root directory of your project, you can find the TWO files from route below:
  
 
'''First File:'''
 
'''First File:'''
  
  ~/Downloads/RUTX_R_GPL_00.07.06/rutos-ipq40xx-rutx-gpl/package/feeds/vuci/vuci-ui-core/bin/dist
+
  ~/Downloads/RUTX_R_GPL_00.07.05.3/rutos-ipq40xx-rutx-gpl/package/feeds/vuci/vuci-ui-core/bin
  
[[File:BRANDTELT.png|1100px|border|class=tlt-border]]
+
[[File:SVG1.jpg|border|class=tlt-border]]
  
 
'''Second File:'''
 
'''Second File:'''
  
  ~/Downloads/RUTX_R_GPL_00.07.06/rutos-ipq40xx-rutx-gpl/package/feeds/vuci/vuci-ui-core/bin/dist/ tlt-icons
+
  ~/Downloads/RUTX_R_GPL_00.07.05.3/rutos-ipq40xx-rutx-gpl/package/feeds/vuci/vuci-ui-core/bin/dist/ tlt-icons
 +
 
 +
[[File:Brand2.jpg|border|class=tlt-border]]
 +
 
 +
For example, I will use this brand in order to perform the changes here.
  
[[File:BRANDTELT2.png|1100px|border|class=tlt-border]]
+
[[File:DubaiNetworks.png|border|class=tlt-border]]
  
 
'''Note:''' If you have a brand in a different format, you can convert it to SVG using any online converter, please keep in mind that online converters can cause scalability issues.
 
'''Note:''' If you have a brand in a different format, you can convert it to SVG using any online converter, please keep in mind that online converters can cause scalability issues.
  
 
+
and then compress it to .gz file as per screenshot below:
Afterwards, compress the file to .gz file as per screenshot below:
 
  
 
[[File:SVG2.jpg|border|class=tlt-border]]
 
[[File:SVG2.jpg|border|class=tlt-border]]
  
To compress a logo into'''.gz format''', use the terminal command below:
+
After making changes and saving them to the directory, we may build compile using the following commands:
 
 
gzip [file]
 
 
 
If your logo is compressed to'''.gz format''', you can extract it, if needed, via terminal by following command:
 
 
 
gzip -d [file]
 
 
 
'''Note''': It is worth that the logo has been changed to tlt-icons/tlt_networks_logo_white.The svg on the log in page is displayed on a blue background, however the tlt_networks_logo.svg displayed following the logging in line at the top is displayed on a white backdrop. The usual size of both logos is '''266px x 31px'''.
 
  
After making changes and saving them to the directory, we may '''build compile''' using the following commands:
+
1- ./scripts/feeds update -a
  
./scripts/feeds update -a
+
2- make clean
  
make clean
+
3- Following that, we must execute the "nproc" command to determine the number of processors, and it will return a number, such as 1, allowing us to run command. “make -j1 V=sc” for verbose output. This way you will see more logs that may help to troubleshoot compilation issues.
  
Following that, when compiling firmware using '''make''' command, specifying the number of processors to be used is possible, thus speeding it up. To determine the number of available processors, you can use '''nproc''' command. Then, pass this number to the '''-j''' option in '''make''' command.
+
The firmware can then be found in the directory listed below *Depends on the target*:
make -j1 V=sc
+
  rutos-ath79-rut9-gpl>bin>targets>ath79>generic>tltFws>RUTX_R_GPL_00.07.05.3_WEBUI
 
+
'''file name''': RUTX_R_GPL_00.07.05.X_WEBUI
The exact path to the firmware depends on the target. In this example, the firmware can be found in the following directory:
 
  rutos-ath79-rut9-gpl>bin>targets>ath79>generic>tltFws>RUTX_R_GPL_00.07.06.1_WEBUI
 
'''file name''': RUTX_R_GPL_00.07.06.X_WEBUI
 
  
  
 
'''RESULTS:'''
 
'''RESULTS:'''
  
[[File:brand_transparent.png|border|1100px|class=tlt-border]]
+
[[File:RESULTSBRAND.jpg|border|class=tlt-border]]
  
[[File:Companybrand.png|1100px|border|class=tlt-border]]
+
==Changing Device Logo==
 
+
To modify the Device logo, you can make use search tool in the extracted GPL. To access this, follow these steps from the root directory of your project, you can find the TWO files from route below:
==Changing Favicon==
 
To modify the '''Favicon''', you can make use search tool in the extracted GPL. To access this, follow these steps from the root directory of your project, '''you can find the TWO files from route below''':
 
  
 
'''First File:'''
 
'''First File:'''
  
  ~/Downloads/RUTX_R_GPL_00.07.06.1/rutos-ipq40xx-rutx-gpl/package/feeds/vuci/vuci-ui-core/bin
+
  ~/Downloads/RUTX_R_GPL_00.07.05.3/rutos-ipq40xx-rutx-gpl/package/feeds/vuci/vuci-ui-core/bin
  
[[File:Favicon.png|1100px|border|class=tlt-border]]
+
[[File:LOGO1.jpg|border|class=tlt-border]]
  
 
'''Second File:'''
 
'''Second File:'''
  
  ~/Downloads/RUTX_R_GPL_00.07.06.1/rutos-ipq40xx-rutx-gpl/package/feeds/vuci/vuci-ui-core/bin/dist/assests
+
  ~/Downloads/RUTX_R_GPL_00.07.05.3/rutos-ipq40xx-rutx-gpl/package/feeds/vuci/vuci-ui-core/bin/dist/assests
 +
 
 +
[[File:LOGO2.jpg|border|class=tlt-border]]
  
[[File:Logo2.png|border|class=tlt-border]]
+
For example, I will use Burj Khalifa logo in order to perform the changes here.
  
 
'''Note:''' If you have a brand in a different format, you can convert it to ico using any online converter, please keep in mind that online converters can cause scalability issues.
 
'''Note:''' If you have a brand in a different format, you can convert it to ico using any online converter, please keep in mind that online converters can cause scalability issues.
  
To compress a logo into'''.gz format''', use the terminal command below:
+
After making changes and saving them to the directory, we may build compile using the following commands:
 
 
gzip [file]
 
  
If your logo is compressed to'''.gz format''', you can extract it, if needed, via terminal by following command:
+
1- ./scripts/feeds update -a
  
gzip -d [file]
+
2- make clean
  
'''Note''': It is worth that the logo has been changed to tlt-icons/tlt_networks_logo_white.The svg on the log in page is displayed on a blue background, however the tlt_networks_logo.svg displayed following the logging in line at the top is displayed on a white backdrop. The usual size of both logos is '''266px x 31px'''.
+
3- Following that, we must execute the "nproc" command to determine the number of processors, and it will return a number, such as 1, allowing us to run command. “make -j1 V=sc” for verbose output. This way you will see more logs that may help to troubleshoot compilation issues.
  
After making changes and saving them to the directory, we may '''build compile''' using the following commands:
+
The firmware can then be found in the directory listed below *Depends on the target*:
 
+
  rutos-ath79-rut9-gpl>bin>targets>ath79>generic>tltFws>RUTX_R_GPL_00.07.05.3_WEBUI
./scripts/feeds update -a
+
'''file name''': RUTX_R_GPL_00.07.05.X_WEBUI
 
 
make clean
 
 
 
Following that, when compiling firmware using '''make''' command, specifying the number of processors to be used is possible, thus speeding it up. To determine the number of available processors, you can use '''nproc''' command. Then, pass this number to the '''-j''' option in '''make''' command.
 
make -j1 V=sc
 
 
 
The exact path to the firmware depends on the target. In this example, the firmware can be found in the following directory:
 
  rutos-ath79-rut9-gpl>bin>targets>ath79>generic>tltFws>RUTX_R_GPL_00.07.06.1_WEBUI
 
'''file name''': RUTX_R_GPL_00.07.06.X_WEBUI
 
  
  
 
'''RESULTS:'''
 
'''RESULTS:'''
  
[[File:LOGORESULTS1.png|border|class=tlt-border]]
+
[[File:LOGORESULT.jpg|border|class=tlt-border]]
 
 
==Changing WebUI Color==
 
To modify color designs for the WebUI, locate '''brand.css''' file. In this configuration, it is in ''/RUTX_R_GPL_00.07.06/rutos-ipq40xx-rutx-gpl/package/feeds/vuci/vuci-ui-core/bin/dist/brand'' directory. Run '''ls''' command to see the contents of the directory. It should have a zip file entitled '''brand.css.gz'''. To extract brand.css.gz, run:
 
 
 
gzip -d brand.css.gzip
 
 
 
[[File:Brand1.png|border|class=tlt-border]]
 
 
 
Run '''nano brand.css''' on the same directory to edit color values. Color schemes are using HTML color codes in HEX. You can generate '''HEX color codes''' with the help of this link: https://htmlcolorcodes.com/
 
 
 
[[File:Color5.png|border|1100px|class=tlt-border]]
 
  
For demo purposes, let us change the '''border color '''and''' font-color''' to '''#03ECFC''' and '''#06C46F''' respectively.
+
==Disclamer==
 
 
[[File:Color2.png|border|class=tlt-border]]
 
 
 
To save, type '''Ctrl + X'''. Then, click '''Y'''.
 
 
 
After making changes and saving them to the directory, we may '''build compile''' using the following commands:
 
 
 
./scripts/feeds update -a
 
 
 
make clean
 
 
 
Following that, when compiling firmware using '''make''' command, specifying the number of processors to be used is possible, thus speeding it up. To determine the number of available processors, you can use '''nproc''' command. Then, pass this number to the '''-j''' option in '''make''' command.
 
make -j1 V=sc
 
 
 
The exact path to the firmware depends on the target. In this example, the firmware can be found in the following directory:
 
rutos-ath79-rut9-gpl>bin>targets>ath79>generic>tltFws>RUTX_R_GPL_00.07.06.1_WEBUI
 
'''file name''': RUTX_R_GPL_00.07.06.X_WEBUI
 
 
 
'''RESULTS:'''
 
 
 
[[File:Color4.png|border|1100px|class=tlt-border]]
 
 
 
==Disclaimer==
 
 
It may not be necessary to update scripts and make clean after making firmware changes; this will depend on the changes undertaken. In these cases, the commands were used to assure clean compilation and the removal of any potential artifacts from previous environments.
 
It may not be necessary to update scripts and make clean after making firmware changes; this will depend on the changes undertaken. In these cases, the commands were used to assure clean compilation and the removal of any potential artifacts from previous environments.
 
[[Category:Other Topics]]
 

Revision as of 13:33, 15 November 2023

Main Page > FAQ > Other Topics > RUTOS Software Development Kit (SDK) Instruction

A software development kit (SDK) is a set of software development tools that provides the possibility to create applications for a certain software package, software framework, computer system or similar development platform.

Note: The information in this page is in accordance to using SDK version R_00.07.05. The included Readme file in SDK archive file contains information for each separate SDK version and might differ from the older version or information provided in this wiki page. Please always follow the provided Readme file.

Introduction

This article contains instructions on how to utilize Teltonika SDK packages for RUTx series routers. The resources used in the provided examples are:

The examples apply to various RUTOS routers, SDK versions and operating systems. In most cases the difference will only be that of a visual nature, The availability of SDK Firmware branding begins from version 7.05, although some of these modifications may be accessible on earlier firmware versions.

Most examples provided in this page are independent from each other. But it is highly recommended to acquaint yourself with the basics by reading the "Prerequisites" and "Compiling a standard firmware" sections first as they contain information that will be necessary in order to understand some aspects of the other examples.

It should also be noted early that the first time you compile a firmware it may take up to a few hours to complete. Once the initial compilation is complete, packages will not be re-compiled next time, therefore the duration will decrease significantly. Please be aware that this also depends on your machine.

Prerequisites

You will need:

  • A PC, laptop or virtual machine running Linux OS (We recommend using Ubuntu 22.04.3 LTS)
  • A RUTOS supported router (version R_00.07.00 and up)
  • An SDK intended for your router, which can be downloaded here: Software Development Kit

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: VMWare

1. You must download latest Ubuntu version can be found here: Ubuntu Ubunto.png

2. After initiating VMware, click Create a New Virtual Machine Ubuntu2.jpg

3. Choose Typical -> choose the downloaded Ubuntu .iso file

Ubuntu3.jpg

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.

Ubuntu4.jpg

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. Ubuntu5.jpg

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. Ubuntu6.jpg

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: Software Development Kit


Compiling a standard firmware

First, you must install the packages required for the SDK to work. Open the Terminal application (Ctrl + ALT + T) and execute the following commands:

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

Create a new folder (for this example I'll be using a directory called RUTX_R found at my home directory) and extract the SDK archive inside it. SDK EXTRACT.jpg

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.

Note: 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 (cd ~/RUTX_R/openwrt-gpl-ipq40xx.Linux-x86_64)

Once you open the Terminal, update the feeds:

./scripts/feeds update -a

Now you can compile a standard firmware by executing this command in the terminal:

make

If all is in order, the output should look something like this: Make without jobs v1.gif

Note: the first time you compile a firmware file it may take up to 30 minutes before it is complete. Don't close the Terminal window up until then. Once it is finished, you will find the firmware in the ./bin/targets/ipq40xx/generic 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 -j. This argument then compiles the necessary packages in parallel. To know how much jobs you can pass to the compiling process execute this command in the terminal:

 nproc

This commands output should be a number. This number tells how much processing units are available to the current process. Now execute this command in the terminal:

 make -j<nproc_output>

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 Password

To create a firmware with different default settings, you must change the default in the config files, which are contained in /openwrt-gpl-ipq40xx.Linux-x86_64/package/. However, there is no unifying system regarding where one should look for config files related to specific services. Therefore, it is very important to acquaint yourself with the UCI system (RutOS configuration file system) in order to successfully navigate through the files:

  • Click here for information on the configuration hierarchy
  • Click here to find what configs are related to which services

To change the default device password, changes need to be made inside:

"RUTX_R_GPL_00.07.05/package/base-files/files/lib/preinit/84_set_password"

PASSWORD.png

Change "admin01" to your password on line [ -z "$passwd" ] && passwd="$(mkpasswd admin01)"

After making changes and saving them to the directory, we may build compile using the following commands:

1- ./scripts/feeds update -a

2- make clean

3- Following that, we must execute the "nproc" command to determine the number of processors, and it will return a number, such as 1, allowing us to run command. “make -j1 V=sc” for verbose output. This way you will see more logs that may help to troubleshoot compilation issues.

The firmware can then be found in the directory listed below *Depends on the target*:

rutos-ath79-rut9-gpl>bin>targets>ath79>generic>tltFws>RUTX_R_GPL_00.07.05.3_WEBUI

file name: RUTX_R_GPL_00.07.05.X_WEBUI

Changing Default IP Address

To modify the default IP address, you can make use of a dedicated menu in the firmware configuration, which is accessed through the "menuconfig" interface. To access this configuration menu, follow these steps from the root directory of your project: Open a terminal and execute the following command:

make menuconfig

After entering the "make menuconfig" command, it will launch a new interface known as the "OpenWrt Configuration." In this interface, navigate to the "Target Firmware options" section.

IP1.png

You will then be presented with the option to modify the Default IP address, allowing you to input your desired value. By default, it is set to (192.168.1.1).

IP2.png

You will then be presented with the option to modify the Default IP address, allowing you to input your desired value. IP3.png

After making the desired changes to the Default IP address, you can then save those modifications. IP4.png

After making changes and saving them to the directory, we may build compile using the following commands:

1- ./scripts/feeds update -a

2- make clean

3- Following that, we must execute the "nproc" command to determine the number of processors, and it will return a number, such as 1, allowing us to run command. “make -j1 V=sc” for verbose output. This way you will see more logs that may help to troubleshoot compilation issues.

The firmware can then be found in the directory listed below *Depends on the target*:

rutos-ath79-rut9-gpl>bin>targets>ath79>generic>tltFws>RUTX_R_GPL_00.07.05.3_WEBUI

file name: RUTX_R_GPL_00.07.05.X_WEBUI

Changing SSH Banner

To modify the SSH banner, you can make use of the file search tool in the extracted GPL. To access this, follow these steps from the root directory of your project, you can find the file from route below:

~/Downloads/RUTX_R_GPL_00.07.05.3/rutos-ipq40xx-rutx-gpl/package/base-files/files

SSH1.jpg

Make sure that the file that we want to edit is in the similar file path as above.

Ssh2.jpg

It shall open up as above , after making the desired changes to the banner, you can then save those modifications.

SSH3.jpg

After making changes and saving them to the directory, we may build compile using the following commands:

1- ./scripts/feeds update -a

2- make clean

3- Following that, we must execute the "nproc" command to determine the number of processors, and it will return a number, such as 1, allowing us to run command. “make -j1 V=sc” for verbose output. This way you will see more logs that may help to troubleshoot compilation issues.

The firmware can then be found in the directory listed below *Depends on the target*:

rutos-ath79-rut9-gpl>bin>targets>ath79>generic>tltFws>RUTX_R_GPL_00.07.05.3_WEBUI

file name: RUTX_R_GPL_00.07.05.X_WEBUI

Changing Company Links

To modify the Company Links, you can make use of the file search tool in the extracted GPL. To access this, follow these steps from the root directory of your project, you can find the file from route below:

~/Downloads/RUTX_R_GPL_00.07.05.3/rutos-ipq40xx-rutx-gpl/package/feeds/vuci/vuci-ui-core/bin/dist/brand

COMP1.jpg

Make sure that the file that we want to edit is in the similar file path as above.

COMP2.jpg

It shall open up as above , after making the desired changes to the banner, you can then save those modifications.

COMP3.jpg

After making changes and saving them to the directory, we may build compile using the following commands:

1- ./scripts/feeds update -a

2- make clean

3- Following that, we must execute the "nproc" command to determine the number of processors, and it will return a number, such as 1, allowing us to run command. “make -j1 V=sc” for verbose output. This way you will see more logs that may help to troubleshoot compilation issues.

The firmware can then be found in the directory listed below *Depends on the target*:

rutos-ath79-rut9-gpl>bin>targets>ath79>generic>tltFws>RUTX_R_GPL_00.07.05.3_WEBUI

file name: RUTX_R_GPL_00.07.05.X_WEBUI


RESULTS:

RESULTS COMP.jpg

Changing Device brand

To modify the Device brand, you can make use search tool in the extracted GPL. To access this, follow these steps from the root directory of your project, you can find the TWO files from route below:

First File:

~/Downloads/RUTX_R_GPL_00.07.05.3/rutos-ipq40xx-rutx-gpl/package/feeds/vuci/vuci-ui-core/bin

SVG1.jpg

Second File:

~/Downloads/RUTX_R_GPL_00.07.05.3/rutos-ipq40xx-rutx-gpl/package/feeds/vuci/vuci-ui-core/bin/dist/ tlt-icons

Brand2.jpg

For example, I will use this brand in order to perform the changes here.

DubaiNetworks.png

Note: If you have a brand in a different format, you can convert it to SVG using any online converter, please keep in mind that online converters can cause scalability issues.

and then compress it to .gz file as per screenshot below:

SVG2.jpg

After making changes and saving them to the directory, we may build compile using the following commands:

1- ./scripts/feeds update -a

2- make clean

3- Following that, we must execute the "nproc" command to determine the number of processors, and it will return a number, such as 1, allowing us to run command. “make -j1 V=sc” for verbose output. This way you will see more logs that may help to troubleshoot compilation issues.

The firmware can then be found in the directory listed below *Depends on the target*:

rutos-ath79-rut9-gpl>bin>targets>ath79>generic>tltFws>RUTX_R_GPL_00.07.05.3_WEBUI

file name: RUTX_R_GPL_00.07.05.X_WEBUI


RESULTS:

RESULTSBRAND.jpg

To modify the Device logo, you can make use search tool in the extracted GPL. To access this, follow these steps from the root directory of your project, you can find the TWO files from route below:

First File:

~/Downloads/RUTX_R_GPL_00.07.05.3/rutos-ipq40xx-rutx-gpl/package/feeds/vuci/vuci-ui-core/bin

LOGO1.jpg

Second File:

~/Downloads/RUTX_R_GPL_00.07.05.3/rutos-ipq40xx-rutx-gpl/package/feeds/vuci/vuci-ui-core/bin/dist/assests

LOGO2.jpg

For example, I will use Burj Khalifa logo in order to perform the changes here.

Note: If you have a brand in a different format, you can convert it to ico using any online converter, please keep in mind that online converters can cause scalability issues.

After making changes and saving them to the directory, we may build compile using the following commands:

1- ./scripts/feeds update -a

2- make clean

3- Following that, we must execute the "nproc" command to determine the number of processors, and it will return a number, such as 1, allowing us to run command. “make -j1 V=sc” for verbose output. This way you will see more logs that may help to troubleshoot compilation issues.

The firmware can then be found in the directory listed below *Depends on the target*:

rutos-ath79-rut9-gpl>bin>targets>ath79>generic>tltFws>RUTX_R_GPL_00.07.05.3_WEBUI

file name: RUTX_R_GPL_00.07.05.X_WEBUI


RESULTS:

LOGORESULT.jpg

Disclamer

It may not be necessary to update scripts and make clean after making firmware changes; this will depend on the changes undertaken. In these cases, the commands were used to assure clean compilation and the removal of any potential artifacts from previous environments.