Is it possible to upload a OpenWrt firmware from board to PC and then modify it?
If it is, so how could I do it?
What does "from board to PC" mean? You want to extract an image from a running OpenWRT device and edit it on your PC (Linux? Windows? OSX?) ...?
Yeah, exactly that!
I do not think that is possible. You can do the reverse, build an image to upload to a supported OpenWRT device by compiling it. Does that meet your use case?
You could probably download the binary code from the memory but it will be in binary form and I don’t think you read binary.
But then it is this logical problem if you only have the binary code…
and so on…
In binary you will only see the answer but you can never decompile a binary code and get the actual source code that made the binary code because it has a trillion billion combination alternatives to get the result you actually see.
But why do it the hard way? We do provide you with open source firmware so the source code is free and openly available to begin with.
I haven't found a firmware for my board, but it works on OpenWrt. So binary code is OK, because I want to download it lke for backup.
But could you tell me please how can I make it?
Log in through SSH, and backup the MTD contents:
root@OpenWrt:~# cat /proc/mtd dev: size erasesize name mtd0: 00030000 00010000 "u-boot" mtd1: 00010000 00010000 "config" mtd2: 00010000 00010000 "factory" mtd3: 00fb0000 00010000 "firmware" mtd4: 002300cf 00010000 "kernel" mtd5: 00d7ff31 00010000 "rootfs" mtd6: 006e0000 00010000 "rootfs_data"
You can cat or dd the conten of each MTD device:
# for i in 0 1 2 3 4 5 6; do dd if=/dev/mtd$i of=/tmp/mtd$i.bin; done
scp all of them over to your system (ideally you create a checksum to go along with your backup for integrity checking).
Not sure about 4-6 here though since those are subpartitions of mtd3 (OpenWrt handles this).
This is kind of a catch 22!? How can you have working OpenWRT on the router if OpenWRT doesn’t support the router?
What device do you have?
What OpenWRT version do you have?
I've Wallys DR6018-S, there is no real firmware for it in ToH, but it works on installed OpenWrt which was made via QSDK.
I can't check now version of OpenWrt on my board.
That's not OpenWrt. Vendor SDK != OpenWrt.
Well, I didn't know, thx.
But there's wroted "OpenWrt" when you log by SSH or 192.168.1.1, also it based on OpenWrt.
It's a heavily modified codebase, built on outdated OpenWrt source code, with lots of closed source and binary bits. It's far from trivial to port the changes the manufacturer made to mainstream OpenWrt. Just compare the kernel version your hardware is running with what's current now on OpenWrt (5.4). You'll see they're years apart.
Yeah, I know there is old kernel. Is it possible to make a firmware on newer kernel?
Because I need to make firmware for this with newer kernel?
Is it possible at all?
It all depends on how many binary blobs you need for drivers etc. Those are often tied to a specific kernel. If you can get a GPL dump from the manufacturer, you can dig through that to find what they added etc.
It's a lot of work if you have to start from scratch and have no prior porting/programming experience.
Okay, thakns a lot.