openwrt x86 版安装纪实

来源:互联网 发布:深入浅出数据分析阅读 编辑:程序博客网 时间:2024/04/30 11:28

1. 下载源码

已有编译环境,直接在ubuntu 中 git openwrt 源码

https://dev.openwrt.org/wiki/GetSourcegit clone -b chaos_calmer git://github.com/openwrt/openwrt.gitgit clone git://github.com/openwrt/openwrt.git# 下载较慢

附编译环境的搭建

sudo apt-get updatesudo apt-get install gcc sudo apt-get install g++ sudo apt-get install subversionsudo apt-get install binutils sudo apt-get install patch sudo apt-get install bzip2 sudo apt-get install flex sudo apt-get install bison sudo apt-get install make sudo apt-get install autoconf sudo apt-get install gettext sudo apt-get install texinfo sudo apt-get install unzip sudo apt-get install sharutils sudo apt-get install libncurses5-dev sudo apt-get install ncurses-term sudo apt-get install zlib1g-dev sudo apt-get install gawksudo apt-get install asciidocsudo apt-get install libz-devsudo apt-get install libssl-dev  sudo apt-get upgradesudo apt-get install gcc g++ subversion binutils patch bzip2 flex bisonsudo apt-get install gcc make autoconf gettext texinfo unzip sudo apt-get install sharutils libncurses5-dev ncurses-termsudo apt-get install zlib1g-dev gawk asciidoc libz-dev libssl-dev

2. 更新源码

进入源码目录

    #cp feeds.conf.default feeds.conf    ./scripts/feeds clean -a     #清除软件包    ./scripts/feeds update -a    #更新软件包    ./scripts/feeds install -a   #安装软件包    ./scripts/feeds install xx   #安装特定包    //make defconfig               #生成通用编译设置,检查编译环境

3. 配置 make menuconfig 编译选项

Target System (x86) #目标平台选择Target Images  --->    [*] ext4    #生成.EXT4.IMG文件    [*] Build VMware image files (VMDK)  #生成VMDK虚拟机磁盘文件Base system  --->     <*> block-mount    <*> busybox  ---> #用于今后`initramfs`支持,可以将所有lib编译到busybox        #[*]   Customize busybox options         Busybox Settings  --->             General Configuration  --->                 [*] Support --install [-s] to install applet links at runtime                [*] Don't use /usr        Linux Module Utilities  --->                 [*] modinfo                [*] Simplified modutils                [*]   Accept module options on modprobe command line                [*]   Skip loading of already loaded modules                (/lib/modules) Default directory containing modules         Linux System Utilities  --->                 [*] mdev                [*]   Support /etc/mdev.conf                [*]     Support subdirs/symlinks                [*]       Support regular expressions substitutions when renaming                [*]     Support command execution at device addition/removal                [*]   Support loading of firmwares                 [*] mount                 [*]   Support specifying devices by label or UUID                [*] blkid                [*]   Print filesystem type                 [*] findfs                [*] losetup                [*] lspci                [*] lsusb                Filesystem/Volume identification  --->                    [*] Ext filesystem                     [*] fat filesystem          Networking Utilities  --->             [*] wget                 [*] ftpd                [*]   Enable upload commands                [*]   Enable workaround for RFC-violating clients                [*] inetd                [*] tcpsvd                [*] telnetd                [*]   Support standalone telnetd (not inetd only)                [*] udpsvdkernel modules  --->    Block Devices  --->         <*> kmod-ata-core        <*>   kmod-ata-ahci        <*> kmod-loop        -*- kmod-scsi-core        <*> kmod-scsi-generic    Filesystems  --->        <*> kmod-fs-ext4        <*> kmod-fs-ntfs        <*> kmod-fs-vfat    Input modules  --->#键盘         -*- kmod-hid         <*> kmod-hid-generic         -*- kmod-input-core         -*- kmod-input-evdev    Native Language Support  --->         <*> kmod-nls-cp437 #vfat需要这个        <*> kmod-nls-iso8859-1    Netfilter Extensions  --->         <*> kmod-nf-nathelper-extra    Network Devices  ---> #网卡驱动        <*> kmod-macvlan    Network Support  --->         -*- kmod-gre        <*> kmod-gre6        -*- kmod-ppp         <*>   kmod-mppe        -*-   kmod-pppoe        <*>   kmod-pppol2tp        -*-   kmod-pppox        <*>   kmod-pptp    USB Support  --->        -*- kmod-usb-core        <*> kmod-usb-hid #usb键盘        <*> kmod-usb-ohci        <*> kmod-usb-storage        <*> kmod-usb2        <*> kmod-usb3    Wireless Drivers  --->#wifi卡驱动Network  --->     Captive Portals -->         #<*> wifidog     Instant Messaging  --->         <*> umurmur-openssl    VPN  --->        #<*> pptpd         #<*> strongswan-mod-eap-mschapv2    Web Servers/Proxies -->         #<*> nginx            #<*> spawn-fcgi     <*> hostapd #wifi ap模式    <*> hostapd-common    <*> hostapd-utils    <*> ppp    <*>   ppp-mod-pppoe    <*>   ppp-mod-pppol2tp     <*>   ppp-mod-pptp    <*>   ppp-mod-radius    <*> wpa-supplicantUtilities  --->#自选  fdisk等    Editors  --->          <*> nano        <*> vim-full    database -->         #<*> mysql server    disc  --->         <*> fdisk    zoneinfo -->          <*> zoneinfo-asia        <*> zoneinfo-core      <*> shadow-utils Languages -->     #PHP -->        <*> PHP5         <*> php5-cgi          <*> php5-fastcgi         <*> php5-mod-ctype          <*> php5-mod-curl          <*> php5-mod-exif          <*> php5-mod-ftp          <*> php5-mod-gd          <*> php5-mod-iconv          <*> php5-mod-json         <*> php5-mod-mbstring          <*> php5-mod-mcrypt          <*> php5-mod-mysql          <*> php5-mod-pdo          <*> php5-mod-pdo-mysql          <*> php5-mod-session          <*> php5-mod-sockets          <*> php5-mod-sqlite3          <*> php5-mod-tokenizer          <*> php5-mod-xml          <*> php5-mod-zipLuCI  --->    Collections  --->        <*> luci    Modules  --->        <*> luci-base        Translations  --->             <*> Chinese (zh-cn)     Protocols  --->         -*- luci-proto-ppp  

4. 配置 kernel_menuconfig

Processor type and features  --->    [*] Symmetric multi-processing support    Processor family (Core 2/newer Xeon)  --->        #选择处理器平台     [*] Supported processor vendors  --->         [*]   Support Intel processors    (2) Maximum number of CPUs         #支持CPU核心数    [*] SMT (Hyperthreading) scheduler support #超线程支持    [*] Multi-core scheduler support   #多核心支持      High Memory Support (4GB)  --->        #选择支持最大内存Device Drivers      #根据硬件情况选择    <*>ATA/ATAPI/MFM/RLL support(DEPRECATED)--->      SCSI device support--->          <*>SCSI generic support     <*>Serial ATA and Parallel ATA drivers--->        <*>AHCI SATA support         <*>Intel ESB,ICH,PIIX3,PIIX4 PATA/SATA support (默认选中)           <*>VIA SATA support           <*>VIA PATA support     [*] Multiple devices driver support (RAID and LVM)  --->    [*] Network device support  --->  #网卡驱动支持,根据硬件情况选择        [*] Ethernet driver support  --->            [*] Intel devices                <*> Intel(R) PRO/100+ support                52545em

5. 编译

make -j 100 download #下载包,openwrt是基于源码+patch形式,下载过程比较慢,最好在墙外make clean make -j 5 V=99

6.固件

ls bin/x86    # 会看到有以下一些文件,与官方编译的固件名称完全相同,这里大概解释下:openwrt-x86-generic-combined-ext4.img.gz    # 包含vmlinuz、rootfs(ext4)、引导信息以及相关分区信息的img,一般是两个分区,可以把它看成是硬盘镜像,直接dd到某个磁盘openwrt-x86-generic-rootfs-ext4.img.gz    # rootfs分区镜像,可以直接dd到某个分区,或者mount -o到某个目录openwrt-x86-generic-rootfs-squashfs.img    # 同上openwrt-x86-generic-vmlinuz    # kernelopenwrt-x86-generic-Generic-rootfs.tar.gz    # rootfs用gz打包后的文件    # 可以看出,要让系统启动,需要引导器(x86是使用grub,好比是路由中的uboot,当然uboot管的内容更多)、kernel、rootfs三者。

7. 安装:

步骤①:准备好img文件以及physdiskwrite这个工具。如果你是CF卡或者硬盘,可以在PE下写入,也可以挂载到其他电脑或多硬盘的环境下。
physdiskwrite工具下载:http://blog.ich8.com/file/53

准备好所需文件

步骤②:通过 Windows徽标键 + R 调出 运行 窗口,输入cmd,回车打开命令行窗口。使用x:命令进入相关盘符 cd为进入相关文件夹。x为驱动器盘符。

运行 窗口

步骤③:使用命令:physdiskwrite.exe -u openwrt-ext4.img,回车

使用physdiskwrite来恢复镜像文件

步骤④:回车后会显示以下内容,让你选择对应的要恢复img文件的驱动器。 非常重要!请确认你选择的磁盘,选错将覆盖掉所有分区,导致所有数据丢失。

选择要恢复的驱动器

步骤⑤:选择y,同意将img文件恢复到该驱动器上。回车后就会进行写入操作了。写入完成后你可以将你的磁盘设备放到需要启动的设备上去。

8. 设置

设置密码passwd root设置LuCI端口#/etc/config/uhttpd0.0.0.0:80设置静态IP#vi /etc/config/networkoption proto 'static'option ipaddr '192.168.11.71'option netmask '255.255.255.0'option gateway '192.168.11.1'option dns ‘114.114.114.114 8.8.8.8’重启网卡#ifup wan设置pppoeconfig 'interface' 'wan'        option 'ifname' 'eth1'        option 'proto' 'pppoe'        option 'username' '你的ADSL账号'        option 'password' '密码'设置DHCPconfig interface 'wan'        option ifname 'eth1'        option proto 'dhcp'设置VPNconfig 'interface' 'vpn'         option 'ifname'    'pptp-vpn'          option 'proto'     'pptp'        option 'username'  'vpnusername'        option 'password'  'vpnpassword'        option 'server'    'vpn.example.org or ipaddress'         option 'buffering' '1'        option 'pppd_options' 'mppe required'修改VPN配置文件vi /etc/ppp/options.pptp    refuse-eap    refuse-pap    refuse-chap    refuse-mschap 

9.修改分区大小

用GParted 修改分区大小

10.问题解决

  1. make: * [world] Error 2
recipe for target 'world' failed#make clean#make dirclean#make tools/clean#make defconfig#make menuconfig
0 0
原创粉丝点击