我正在运行 dd-wrt 或 OpenWRT 的 Linksys WRT54G-V4 上运行 Hello World 程序。
现在这个路由器正在运行 dd-wrt,原因我将在下面解释。我想将此路由器切换到 OpenWRT,因为我无法构建 dd-wrt 或其工具链。我“假设”OpenWRT 工具链应该生成可以在 dd-wrt 上运行的可执行二进制文件。
OpenWRT 构建起来非常简单,因为它有一个很好的菜单驱动的制作系统。使用这个方便的工具,我构建了一个工具链,可以从我的 x86 Ubuntu 机器交叉编译到 MIPS 目标。
按照说明,我已经能够构建 OpenWRT 并为 brcm47xx 和 brcm63xx 生成图像。
例如,这是我的 Hello World 小程序的成功编译:
jim@ubuntu:~/Desktop/tests$ cat helloC.c
#include <stdio.h>
int main (int argc, char **argv)
{
printf("Hello World\n");
return 0;
}
jim@ubuntu:~/Desktop/tests$
jim@ubuntu:~/Desktop/tests$ mipsel-openwrt-linux-gcc -o HelloWorld helloC.c
jim@ubuntu:~/Desktop/tests$
jim@ubuntu:~/Desktop/tests$ file HelloWorld
HelloWorld: ELF 32-bit LSB executable, MIPS, MIPS32 version 1, dynamically linked (uses shared libs), with unknown capability 0xf41 = 0x756e6700, with unknown capability 0x70100 = 0x3040000, not stripped
jim@ubuntu:~/Desktop/tests$
可悲的是,当我尝试在运行 dd-wrt 的 WRT54G-V4 上运行 HelloWorld 时,我遇到了段错误。
查看维基百科,我看到这个路由器使用的是 Broadcom BCM5352。
当我在 OpenWRT/trunk 目录中运行 make menuconfig 时,我看不到 BCM5352 的选项,这就是为什么我不愿意用我在 brcm47xx 或 brcm63xx 目录中创建的图像之一来刷新我的路由器。我不想猜错和砖路由器。
问题 1 - 我应该使用 make menuconfig 选择哪种 Broadcom 配置来针对我的 WRT54G-V4 及其 BCM5352 芯片组?
问题 2 - 我上面生成的“HelloWorld”可执行文件应该直接从 54G 上的命令行运行,还是必须按照http://www.gargoyle-router.com/wiki/doku.php?id将其作为一个包=openwrt_coding?
TIA