Openwrt 实战

Openwrt 实战

简介

本篇不会废话,直接教如何把 Openwrt 跑在 qemu 上,教学到的内容如下

  • Ubuntu
  • OpenWrt
  • Qemu
  • Luci
  • X-wrt (webif)

Ubuntu

  • 需要先配置好安装环境,先安装如下
sudo apt-get update
sudo apt-get install git-core build-essential libssl-dev libncurses5-dev unzip gawk zlib1g-dev subversion mercurial gcc-multilib flex git-core gettext libssl-dev unzip

OpenWrt

  • 如下是 OpenWrt 的 Git Server
https://git.openwrt.org
  • 下载 OpenWrt 15.05版本,目前最新 Stable 版
git clone http://git.openwrt.org/15.05/openwrt.git
  • 编译前先下载预选定的 package
cd openwrt
./scripts/feeds update -a
./scripts/feeds install -a

- 如下工作,就是为了下载此 package,如有想要下载的,可以自行开启

# cat feeds.conf.default 
src-git packages https://github.com/openwrt/packages.git;for-15.05
src-git luci https://github.com/openwrt/luci.git;for-15.05
src-git routing https://github.com/openwrt-routing/packages.git;for-15.05
src-git telephony https://github.com/openwrt/telephony.git;for-15.05
src-git management https://github.com/openwrt-management/packages.git;for-15.05
#src-git targets https://github.com/openwrt/targets.git
#src-git oldpackages http://git.openwrt.org/packages.git
#src-svn xwrt http://x-wrt.googlecode.com/svn/trunk/package
#src-svn phone svn://svn.openwrt.org/openwrt/feeds/phone
#src-svn efl svn://svn.openwrt.org/openwrt/feeds/efl
#src-svn xorg svn://svn.openwrt.org/openwrt/feeds/xorg
#src-svn desktop svn://svn.openwrt.org/openwrt/feeds/desktop
#src-svn xfce svn://svn.openwrt.org/openwrt/feeds/xfce
#src-svn lxde svn://svn.openwrt.org/openwrt/feeds/lxde
#src-link custom /usr/src/openwrt/custom-feed
  • 设定编译选项
make menuconfig
  Target System -> x86
  Subtarget -> x86_64
  Target Images -> 取消 GZip images
  • 测试是否符合编译条件,如少装东西,依照提示安装
make defconfig
make prereq
  • 我们先把网卡设成 dhcp
# vim target/linux/x86/base-files/etc/config/network
config interface lan
    option ifname   eth0
    option type     bridge
    option proto    dhcp
    #option proto   static
    #option ipaddr  192.168.1.1
    #option netmask 255.255.255.0
    #option ip6assign 60
  • 开始编译系统,如果要显示详细编译过程,加上 V=s
make (or make V=s)
  • 编译好的 image 都会放在如下路径
# cd bin/x86/
# ls
md5sums                               openwrt-x86-64-rootfs.tar.gz
openwrt-x86-64-combined-ext4.img      openwrt-x86-64-vmlinuz
openwrt-x86-64-combined-squashfs.img  packages
openwrt-x86-64-rootfs-ext4.img        sha256sums
openwrt-x86-64-rootfs-squashfs.img
pcjustin@ubuntu:~/openwrt/bin/x86$ 

Qemu

如果你手上没有开发板,本章教你如何跑在Qemu上,可以先玩系统。

  • 安装 qemu
sudo apt-get install qemu
  • 执行如下指令,把刚才的系统跑起来吧
qemu-system-x86_64 -M q35 -drive file=openwrt-x86-64-combined-ext4.img,id=d0,if=none,bus=0,unit=0 -device ide-hd,drive=d0,bus=ide.0 -redir tcp:10023::23 -redir tcp:10080::80
  • 开完机应该就可以同时使用 telnet 和 web 登入,如果要启用 web 登入,需要编译时开启 Luci,下个章节会教到
telnet localhost 10023

Luci

Luci 用于提供 OpenWrt 的 Web 介面

  • 回到编译选项
make menuconfig
  LuCI -> Collections -> luci
  LuCI -> Collections -> luci-ssl (https)

- 登入 Web 介面

http://localhost:10080
  account: root
  没有密码直接按登入(login)

X-wrt

Google 已被去除的项目

  • 下载 x-wrt,由于 Google 已经清除网上 Source code,改到其他人 fork 的点下载
# git clone https://github.com/yixuaning/x-wrt.git
  • 复制webif 到 OpenWrt
# cp -rf ~/x-wrt/package/webif/ ~/openwrt/package/
  • 重新编译 OpenWrt
# make menuconfig
   Administration -> webif -> 开启 webif

# make V=s
  • 重新跑在 qemu
# qemu-system-x86_64 -M q35 -drive file=openwrt-x86-64-combined-ext4.img,id=d0,if=none,bus=0,unit=0 -device ide-hd,drive=d0,bus=ide.0 -redir tcp:10023::23 -redir tcp:10080::80
  • 在 luci 上安装 webif
http://localhost:10080
  • 启动 webif

你可能感兴趣的:(技术)