What's new
  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

Compiling Merlin for Unsupported Asus Router

David B

Regular Contributor
I would like to compile Merlin for the RT-ACRH13 that is not officially supported by Merlin. I found the Merlin GitHub page, but I do not understand how to build, and even if I did, I cannot find where Asus posts the hardware drivers for their routers. (Are the hardware drivers even available for the ACRH13?) I've done a good bit of research on this but have been unable to find anything that someone who has no experience with custom firmware development can understand.

The only thing that I understood was that I need a Linux environment to build in. I have an Ubuntu VM as well as a Fedora VM and I also use Bash for Windows 10. Once I do understand how this works, which of the three would be recommended, or should I use Debian?
 
Last edited:
You can't. You need all the binary components for that specific model, and they ain't included in my code repository.
 
That is the less of the problems here, being a Qualcomm...
 
You can't. You need all the binary components for that specific model, and they ain't included in my code repository.
I know that, but shouldn't it be possible to implement the binary components? As far as I understood, the binary components are freely available from Asus, but I cannot find them anywhere. And even if I do find them, is it as simple as compiling Merlin with them or would I have to make changes to the core firmware code in order to get things working?

That is the less of the problems here, being a Qualcomm...
The hardware may be from the same manufacturer, but I am pretty sure that it is still an issue.
 
Last edited:
I know that, but shouldn't it be possible to implement the binary components? As far as I understood, the binary components are freely available from Asus, but I cannot find them anywhere. And even if I do find them, is it as simple as compiling Merlin with them or would I have to make changes to the core firmware code in order to get things working?

You will need to download the GPL from Asus's website. That GPL will need to be based on the same GPL version used by my firmware, or very close to it, or those binary components will not be compatible. Then, you will need to update the main Makefile to handle those binary blobs.

You will have to take into account portions of the code that I only developped for Broadcom, and will need to rewrite the code to work for Qualcomm. I'm especially thinking here about the Sysinfo and Wireless info page - the whole API for retrieving the hardware/wireless information is completely different. A lot of that code was written by me, so you won't be able to just reuse existing code from the router's GPL.

In summary: expect about 2 months of work on your end to get most of it working.

Now you see why I don't go ahead and support every single model available out there, and I chose those that I support :) Implementing a new architecture is a LOT of work. Just going from Broadcom MIPS to Broadcom ARM when the RT-AC56U was about to be released took me 3 weeks of work. And that was before large chunks of the firmware started be moved into closed source components, and also because I had Asus's support with pre-release GPL code...
 
You will need to download the GPL from Asus's website. That GPL will need to be based on the same GPL version used by my firmware, or very close to it, or those binary components will not be compatible. Then, you will need to update the main Makefile to handle those binary blobs.

You will have to take into account portions of the code that I only developped for Broadcom, and will need to rewrite the code to work for Qualcomm. I'm especially thinking here about the Sysinfo and Wireless info page - the whole API for retrieving the hardware/wireless information is completely different. A lot of that code was written by me, so you won't be able to just reuse existing code from the router's GPL.

In summary: expect about 2 months of work on your end to get most of it working.

Now you see why I don't go ahead and support every single model available out there, and I chose those that I support :) Implementing a new architecture is a LOT of work. Just going from Broadcom MIPS to Broadcom ARM when the RT-AC56U was about to be released took me 3 weeks of work. And that was before large chunks of the firmware started be moved into closed source components, and also because I had Asus's support with pre-release GPL code...
I always assumed that the reason you do not support every single model is because you cannot afford to buy every single router nor do you have the time to test every single model. If I have the time, I would like to learn how to do exactly what you said here. I have knowledge of programming, but my concern is that I may be biting off more than I can chew in terms of what I know how to do at the moment as well as the amount of time I have on my hands. Obviously I do not expect you to do the work for me, but if I have the time and I decide that I want to try tackling this, could I ask you for assistance along the way? Also, what programming language is the firmware written in? Looking through the code, I cannot identify it.
 
C/JS/ASP/Others
 
I have a feeling you will have an even harder time, since this model is based on Qualcomm. Asus doesn't tend to update GPL across different hardware manufacturers at the same time, which means that quite often, you will not be able to use the RT-ACRH13 binary blobs with my code. You might have to start your own project, based on Asus's GPL, and then manually migrate code/features from my project on top of yours, relying on Asus's GPL specific to that model.

Not a good place to start however, as I see the GPL available for download on their website for this model is incomplete.
 
I have a feeling you will have an even harder time, since this model is based on Qualcomm. Asus doesn't tend to update GPL across different hardware manufacturers at the same time, which means that quite often, you will not be able to use the RT-ACRH13 binary blobs with my code. You might have to start your own project, based on Asus's GPL, and then manually migrate code/features from my project on top of yours, relying on Asus's GPL specific to that model.

Not a good place to start however, as I see the GPL available for download on their website for this model is incomplete.
I'm sorry, but I am a little bit confused about what exactly you mean here. I thought that the firmware was identical across routers except for differences in hardware. And what is the matter with the GPL available on the site? I have not looked at it, but even if I had, I probably would not have been able to tell that it was incomplete.
 
I'm sorry, but I am a little bit confused about what exactly you mean here. I thought that the firmware was identical across routers except for differences in hardware. And what is the matter with the GPL available on the site? I have not looked at it, but even if I had, I probably would not have been able to tell that it was incomplete.

The core source code is the same, but a lot of the components are model-specific, such as the wireless or the network switch drivers.

GPL releases are available for each model on Asus's support site, under the "Others" OS category.

I know the current GPL for that model is incomplete because it's about 1/10th of the size it should be. Most likely the upload from Asus to their web server failed.
 
The core source code is the same, but a lot of the components are model-specific, such as the wireless or the network switch drivers.

GPL releases are available for each model on Asus's support site, under the "Others" OS category.

I know the current GPL for that model is incomplete because it's about 1/10th of the size it should be. Most likely the upload from Asus to their web server failed.
Okay, thanks for the information. I am going to contact Asus customer service about the bad GPL download on the website. I don't know if I am going to get any results, but it's worth a try.

Update: As expected, the Customer Service chat did not go so well. See the spoiler if you want to have a good laugh.

Code:
Apollonia S. - Hello David, thank you for contacting ASUS support. Please give me a few moments to review your information. I will be with you shortly. Hi David. How are you today?   

David - I am great! I want to write a modified version of the Asus firmware for the RT-ACRH13 router, but the source code download that is available on the download page is incomplete.
https://www.asus.com/us/Networking/RT-ACRH13/HelpDesk_Download/
To see the listing you'll need to choose "Others" from the "Please select OS" box.
It's under the "Source Code" section.   

Apollonia S. - Thank you for that information.     
Can you let me know what operating system you are using?   
 
David - Windows 10     
 
Apollonia S. - Thank you for that information.     
 
David - You're welcome, although the issue is with the download link so I don't know how that information is helpful.     
 
Apollonia S. - If you are on the ASUS support site for the router there is an option to choose "Windows 10" to download the firmware of the router.     
 
David - I don't want to download the firmware for the router. I want to download the router firmware's source code so that I can modify it.     
 
Apollonia S. - Thank you for that information.     
Can you please give me a moment while I gather more information for you?   
 
David - Yes, I can wait.     
 
Apollonia S. - Please refer to this link to see if you can see the source code. http://dlcdnet.asus.com/pub/ASUS/mb/LGA1156/Maximus_III_Gene/E4946_Maximus_III_GENE_manual.zip     
 
David - Um, I'm not sure what the link is that you gave me, but it doesn't even have anything to do with the ACRH13, let alone the firmware.     
It's a manual about the Maximus III GENE motherboard.
 
Apollonia S. - Thank you for that information.     
 
David - You're welcome. Could you just contact whoever is responsible for maintaining the router resource page and tell them that the link needs fixed?     

Apollonia S. - Please refer to this link to see if you can see the source code. http://dlcdnet.asus.com/pub/ASUS/wireless/RT-ACRH13/GPL_RT_ACRH13_30043806516.zip     
 
David - The link you just gave me is the same corrupted upload that is on the download page.     
Proof: http://i.imgur.com/w2l5BB2.png   
 
Apollonia S. - Thank you for that information.     
Based on what you stated that the link you were provided with is corrupted then I will have to escalate your case so they can send you the link directly.
 
David - That's fine.     
 
Apollonia S. - Thank you!     
In case you need help in the future, here is your Case Number to reference: XXXXXXXXXX.   
Is there anything further I can assist you with today?   
 
David - No, thank you.     
 
Apollonia S. - You will receive a short survey after this chat to rate the level of support you’ve received from us today. We would appreciate your valuable feedback.     
Thank you for your chat. Feel free to contact us again.
 
Last edited:
A motherboard manual? ROFL :)

Yeah, use that email address hggomes posted. It will reach people beyond tech support's 1st level. Just provide them with the link to the GPL, and mention what happens when you unzip it (test it first, just in case they might have fixed it since last time we checked).
 
C/JS/ASP/Others

It's not really ASP, it's just Broadcom's custom interpreted language.

Lots of C, and strong JS knowledge is also required.
 
A motherboard manual? ROFL :)

Yeah, use that email address hggomes posted. It will reach people beyond tech support's 1st level. Just provide them with the link to the GPL, and mention what happens when you unzip it (test it first, just in case they might have fixed it since last time we checked).
Yeah, I had a hard time maintaining my patience throughout that conversation. I've checked the GPL and it's still the same file. I will get in touch with Asus though the e-mail that was posted.
It's not really ASP, it's just Broadcom's custom interpreted language.

Lots of C, and strong JS knowledge is also required.
My knowledge of JS and C is meh so I guess I will have to brush up on those.
 

Latest threads

Support SNBForums w/ Amazon

If you'd like to support SNBForums, just use this link and buy anything on Amazon. Thanks!

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Back
Top