在Vmware中编译Openwrt

这里不仅仅介绍了如何在VMware下的Ubuntu上如何安装openwrt,更进一步的,讲解了,如何在编译后,直接把编译文件跑在VMware上,把电脑做成一个嵌入式路由器,方便开发调试。

步骤一:拉取源码

  1. 1

    在电脑上安装VMware,在VMware上安装Ubuntu14.04。

  2. 2

    在Ubuntu上安装svn,用于从官网上拉去openwrt源码,拉取源码时,会用到git工具,所以同时要安装git。用以下命令:

    sudo  apt-get  install  subversion  git-core

  3. 3

    在拉取源码之前,要先安装依赖,用以下命令:

    sudo  apt-get install  gcc g++ binutils patch bzip2 flex bison make autoconf gettext textinfo unzip sharutils gawk ncurses-term zliblg-dev libncurses5-dev

    安装过程中如果有包安装不上,可以去下载源码自己编译安装。或者下载deb包,用dpkg安装。

  4. 4

    通过svn拉取源码过程如下:

    1:在家目录下新建文件夹:mkdir wrt

    2:cd wrt

    3:svn co svn://svn.openwrt.org/openwrt/trunk

    4:有如图提示表明拉取完成:

    如何在VMware中直接跑openwrt
  5. 5

    下载完成后为了使openwrt支持更多的软件,需要更新和安装其它源上的软件:

    1:cd trunk

    2:./scripts/feeds  update  -a

    3:./scripts/feeds  install  -a

    END

步骤2:配置、编译

  1. 1

    在编译之前,我们还需要配置内核,就像我们一直Linux一样:

    Make menuconfig 配置内核,这时会出现一个熟悉的界面。如图:

    如何在VMware中直接跑openwrt
  2. 2

    配置过程中,我们还需要配置几个选项。

    Target  System:选择X86。如图:

    如何在VMware中直接跑openwrt
  3. 3

    Target  Image:选择ext4和Build VMware image files(VMDK)。如图:

    如何在VMware中直接跑openwrt
  4. 4

    Kernel Modules-->Network Devices:选择VMware网卡。官网上写着必须选择e1000,当我们选择X86时,这个网卡就已经被选择了。但是仅仅这个还是不够的,我们在ubuntu下,使用lspci命令,如下图,看看自己的VMware网卡是什么,在配置选项中对应选上。

    如何在VMware中直接跑openwrt
  5. 5

    可以看出我的VMware网卡是PCnet32,在网络设备的配置界面中选择上,如图:

    如何在VMware中直接跑openwrt
  6. 6

    luci界面部分,这个很重要,他是用户交互的。配置项有以下几个,如图:

    如何在VMware中直接跑openwrt
  7. 7

    collections中,选择luci。如图:

    如何在VMware中直接跑openwrt
  8. 8

    Application中,选择luci-app-ddns,luci-app-firewall,luci-app-ntpc,luci-app-samba。如图,也可以根据你自己的需要选择。

    如何在VMware中直接跑openwrt
  9. 9

    Themes选项中全部选择,如图:

    如何在VMware中直接跑openwrt
  10. 10

    若有Translations 选项等,也可以把luci-i18n-chinese选择上,这样可以使用中文显示了。

    配置完成,保存之后,开始编译,编译的时候注意,openwrt默认是使用非root用户的。如果你是root用户,要切换到普通用户。在以后开发中写完自己的package之后记得也是用非root用户编译。另外编译时会从网络上拉取依赖包和软件,所以要保证虚拟机上的系统能上网。然后执行make V=99,开始漫长的第一次编译,编译时间由电脑配置和网速决定。V=99的意思是显示所有信息。

    END

步骤3:VMware下安装openwrt

  1. 1

    编译完成之后,进入到bin目录下,可以发现很多文件,如图,找到我们要的openwrt-x86-generic-combined-ext4.vmdk,拖至宿主机上。

    如何在VMware中直接跑openwrt
  2. 2

    我们在D盘建立目录openwrt-vmware,把刚刚的vmdk文件放进去。然后VMware下建立新的虚拟机,选择自定义模式,下一步,到安装客户操作系统时,选择稍后安装操作系统,下一步,选择linux,下拉框中选择ubuntu就可以,下一步,点击位置输入框的浏览,选择刚刚建立的目录。下一步配置cpu个数,内存,网络,IO控制器。根据需要自行选择,下一步,选择磁盘类型的时候,一定要选择IDE类型。如图:

    如何在VMware中直接跑openwrt
  3. 3

    下一步选择磁盘,选择“使用现有虚拟磁盘”,如图:

    如何在VMware中直接跑openwrt
  4. 4

    下一步选择现有的虚拟磁盘,如图,浏览并选择openwrt-vmware中的Openwrt-x86-generic-combined-ext4.vmdk。然后下一步,完成。接下来启动虚拟机开始配置网络,让我们可以本地浏览器访问我们的openwrt虚拟机上的luci。

    如何在VMware中直接跑openwrt
    END

步骤4:开启openwrt之旅

  1. 创建好了虚拟机,启动之后。等待一会儿,当openwrt虚拟机完全启动后,先修改密码为root,然后执行如下的命令:

    cd  /etc/config

    cat network

    在lan->ipaddr中可以看到自己openwrt的IP。openwrt初始的IP是192.168.1.1,如果你的电脑是通过连接路由器上网,路由的默认IP,也就是我们的网关一般也是192.168.1.1,这样就会冲突,你会连到路由上但是连不到openwrt上。所以我们修改自己的openwrt的IP,修改为192.168.1.3,这里一定要保证在同一个网段。执行如下的命令:

    /etc/init.d/network restart

    重启整个网络。在本地ping这个IP,如果能通,表明你可以通过本地的浏览器访问openwrt的网页。如果不通,可能是网络不再同一网段或者VMware的联网方式不是桥接。如果还是不通,那要分析具体的原因了。

  2. 此时在本地浏览器上输入192.168.1.3,会出现如下的界面:

    如何在VMware中直接跑openwrt
  3. 输入密码root,登录,出现如下的界面,ok,到此,目的达成。

    END

注意事项

  • Openwrt启动后有可能会看到如下图的一大堆的打印。可能会不好操作,我们用PUTTY连接到openwrt,作为命令行输入。用winscp连接作为文件访问工具。以便于我们更改LUCI的文件。
阅读更多

扫码向博主提问

晨至曦

非学,无以致疑;非问,无以广识
  • 擅长领域:
  • 嵌入式
  • 硬件
  • Web编程
  • 物联网
  • 智能家居
去开通我的Chat快问
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页