Linux嵌入式,是否可以将原始ramdisk文件下载到计算机上,以获得源代码?通过 SFTP 访问。
U-boot 1.2.0
Kernel command line: root=/dev/mtdblock3 mtdparts=spansion:0x20000(U-Boot)ro,0x10000(env1),0x10000(env2),0x2d0000@0xf0000(fware-FS),0x50000@0x7B0000(nvram),0x3B0000@0x40000(UBFI1),0x3B0000@0x3F0000(UBFI2)
7 cmdlinepart partitions found on MTD device spansion
partitions[0] = {.name = U-Boot, .offset = 0x00000000,.size = 0x00020000 (128K) }
partitions[1] = {.name = env1, .offset = 0x00020000,.size = 0x00010000 (64K) }
partitions[2] = {.name = env2, .offset = 0x00030000,.size = 0x00010000 (64K) }
partitions[3] = {.name = fware-FS, .offset = 0x000f0000,.size = 0x002d0000 (2880K) }
partitions[4] = {.name = nvram, .offset = 0x007b0000,.size = 0x00050000 (320K) }
partitions[5] = {.name = UBFI1, .offset = 0x00040000,.size = 0x003b0000 (3776K) }
partitions[6] = {.name = UBFI2, .offset = 0x003f0000,.size = 0x003b0000 (3776K) }
Creating 7 MTD partitions on "spansion":
0x00000000-0x00020000 : "U-Boot"
0x00020000-0x00030000 : "env1"
0x00030000-0x00040000 : "env2"
0x000f0000-0x003c0000 : "fware-FS"
0x007b0000-0x00800000 : "nvram"
0x00040000-0x003f0000 : "UBFI1"
0x003f0000-0x007a0000 : "UBFI2"
答案1
可能是,也可能不是。
是的,您可能可以下载图像(或系统上运行的任何内容) - 只需下载“原始”数据即可/dev/mtdblock*
。在大多数情况下,你会得到类似的东西壁球FS您将能够在本地安装和探索该图像。
不,除了任何(通常是 shell)脚本之外,您不会以这种方式获得源代码。您将像这样获得的数据的很大一部分将被编译(并且几乎可以肯定剥离的) 二进制文件。
也就是说,如果您想了解引导程序如何在在里面水平,你就会得到你想要的。如果您想要系统正在运行的软件的源代码,那么您就不走运了(当然,除非它附带硬件 - 它实际上应该有)。如果您确实想要源代码,请询问系统供应商 - 他们必须给你源代码,否则它们就违反了 GPL(这是目前在 Linux boxen 上运行的大多数软件所使用的) - 请参阅GPL 违规页面了解更多详细信息和诉讼清单。当然,这仅适用于 GPL(或类似)许可的软件 - 如果您想要他们的专有软件,您很可能会运气不好,尽管有时可能会说服他们给您一些访问权限。