openwrt x86 版安装纪实

2023-11-15

1. 下载源码

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

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

附编译环境的搭建

sudo apt-get update

sudo apt-get install gcc 
sudo apt-get install g++ 
sudo apt-get install subversion
sudo 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 gawk
sudo apt-get install asciidoc
sudo apt-get install libz-dev
sudo apt-get install libssl-dev  

sudo apt-get upgrade

sudo apt-get install gcc g++ subversion binutils patch bzip2 flex bison
sudo apt-get install gcc make autoconf gettext texinfo unzip 
sudo apt-get install sharutils libncurses5-dev ncurses-term
sudo 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)
                [*] udpsvd
kernel 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-supplicant

Utilities  --->#自选  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-zip
LuCI  --->
    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
    # kernel
openwrt-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/uhttpd

0.0.0.0:80


设置静态IP

#vi /etc/config/network

option 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

设置pppoe

config 'interface' 'wan'
        option 'ifname' 'eth1'
        option 'proto' 'pppoe'
        option 'username' '你的ADSL账号'
        option 'password' '密码'

设置DHCP

config interface 'wan'
        option ifname 'eth1'
        option proto 'dhcp'

设置VPN

config '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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

openwrt x86 版安装纪实 的相关文章

  • ZeroTierr的moon云服务器搭建和使用

    搭建moon 本质上是在云服务器上建立一个moon服务器 也加入zerotier的Network ID 服务器记录请求路径来做类似于DNS的解析 让设备之间p2p直连 问题是ZeroTier One本身的服务器都在国外访问速度很慢 可以通过
  • [OpenWrt] Flash 由4M改8M(或者16M), openwrt源码的修改

    http www right com cn forum thread 75309 1 1 html trunk tools firmware utils src mktplinkfw c 只修改fw max len为0xfc0000 16M
  • OpenWrt一些小问题的解决方法

    OpenWrt中文文档并不完善 国内论坛也不太照顾新人 有时遇到问题无从下手 这里整理一些常见错误提示和解决方法 我也是新手整理的不全有问题可以在评论里提出 satisfy dependencies for Cannot satisfy t
  • ubuntu18.04编译Openwrt出现的问题解决

    ubuntu18 04编译Openwrt出现的问题解决 问题1 Build dependency Please install Git git core gt 1 6 5 问题2 gdate c 2497 7 error format no
  • Openwrt编译python3时出现错误:No rule to make target `package//host/compile'

    步骤 1 在package目录下添加python3 包含Makefile files和相关patches文件 2 执行make package python3 compile V s make 1 No rule to make targe
  • luci的国际化(多语言)

    语言的选择在dispatch函数入口出完成 如果配置文件 etc config luci中配置的lang为auto 则根据浏览器所带的信息选择一个合适的语言 否则就使用lang定义的语言 然后使用i18n lua中的setlanguage设
  • 启明智显分享

    提示 作为Espressif 乐鑫科技 大中华区合作伙伴及sigmastar 厦门星宸 VAD合作伙伴 启明智显不仅用心整理了你在开发过程中可能会遇到的问题以及快速上手的简明教程供开发小伙伴参考 同时也用心整理了乐鑫及星宸科技的新产品 新方
  • 在K2P路由器,非官方openwrt固件,安装软件遇到的坑!

    手上有一台斐讯K2P A2版本的路由器 一直空闲在宿舍 最近发现这个路由器被破解了 可以刷上不死breed 还有很多大神做的固件 因此我想用它刷上openwrt系统后 安装某软件 从而直接在路由器上完成学校的宽带验证登陆 接下来我就介绍我在
  • 编译 openwrt 及初始配置-及部分排错

    主机为 ubuntu 14 x64 硬件 优酷土豆宝 cpuMT7620A 内存128M flash 32M 有2个源 用哪个也可以 git clone https github com openwrt openwrt git git cl
  • UCI常用说明

    UCI常用函数说明 结构体 API函数 参考文章 安装完成后在 加粗样式 usr local include 目录下存放UCI h文件可以进行参考 结构体 1 struct uci package 包结构体 它对应一个配置文件内容 stru
  • 从零开始学习OpenWrt完美教程

    Cisco Linksys在2003年发布了WRT54G这款无线路由器 同年有人发现它的OS是基于Linux的 然而Linux是基于GPL许可证发布的 按照该许可证Cisco应该把WRT54G 的OS的源代码公开 2003年3月 Cisco
  • OpenWrt系统无法进入Luci解决办法之一

    当在OpenWrt系统重启后 打开Luci后台时有时可能会遇到以下错误报告 usr lib lua luci dispatcher lua 577 bad argument 1 to pairs table expected got nil
  • 【openwrt学习笔记】dnsmasq源码阅读

    目录 一 DHCP Dynamic Host Configuration Protocol 1 1 前置知识 1 2 参考链接 1 3 IP地址分配代码分析 rfc2131 c dhcp common c dhcp c 1 4 几个小问题
  • openwrt中计划任务的设置

    寝室的供网规则为周一到周五零点断网 六点开网 双休日通宵供网 故设置一套计划任务提高路由器使用效率 crontab命令常见于Unix和类Unix的操作系统之中 用于设置周期性被执行的指令 操作符号 在一个区域里填写多个数值的方法 逗号 分开
  • Ubuntu16.04下交叉编译适配openwrt(CC版本)的swoole扩展库(swoole-1.10.3)

    Ubuntu16 04下交叉编译适配openwrt CC版本 的swoole扩展库 swoole 1 10 3 文章目录 Ubuntu16 04下交叉编译适配openwrt CC版本 的swoole扩展库 swoole 1 10 3 一 简
  • 红米ac2100 刷openwrt以及刷回记录

    redmiac2100 刷机 参考 手动升级漏洞固件 https wwx lanzoux com i6iqxhqp98f 或者百度网盘链接 https pan baidu com s 1H355Ym9p TLrVOux2w2b7Q 提取码
  • 编写 LuCI CBI 模型

    编写 LuCI CBI 模型 CBI模型是描述UCI配置文件结构的Lua文件 并且CBI解析器将lua文件转为HTML呈现给用户 所有 CBI 模型文件都必须返回类型为luci cbi Map的对象 CBI 模型文件的范围由 luci cb
  • 从零开始编译OpenWrt固件

    从零开始编译OpenWrt固件 前言 进来阅读这篇文章的相信都是对OpenWrt有一定的了解的 对于OpenWrt的介绍这里就不再赘述 可以自行查找相关百科了解 OpenWrt是适合于嵌入式设备的一个Linux发行版 可以通过其提供的相关工
  • openwrt下使用SDK编译ipk包遇到Package hiOpenwrt is missing dependencies for the following libraries: libc.so.

    openwrt下使用SDK编译ipk包遇到Package hiOpenwrt is missing dependencies for the following libraries libc so 6 问题 缺少 libc so 6 库 但
  • 刷新完固件后opkg update报错的解决方法

    刷新完固件后opkg update报错的解决方法 一 更改设备ip 当你使用lan口接入局域网后 如果你ping不通局域网上的其他设备ip 那么需要更改ip vim etc config network 修改lan口的ip为局域网下同一网段

随机推荐

  • c语言输入一行未知个数数字存入数组

    转载https www cnblogs com wd1001 p 4826855 html 一直有个疑问输入一行数字存入数组时若不知道数字的个数怎么办 最容易想到的办法就是接收字符然后转化为数字 但这样太过麻烦 今天上网查了下 说可以用un
  • Eigen::aligned_allocator

    如果STL容器中的元素是Eigen库数据结构 例如这里定义一个vector容器 元素是Matrix4d 如下所示 vector
  • Apifox接口测试工具详细解析

    最近发现一款接口测试工具 apifox 我我们很难将它描述为一款接口管理工具 或 接口自测试工具 官方给了一个简单的公式 更能说明apifox可以做什么 Apifox Postman Swagger Mock JMeter Apifox的特
  • 怎么加入Microsoft Cloud Partner Program?

    目录 一 Microsoft Cloud Partner Program是什么 二 Microsoft Cloud Partner Program的优势 1 技术支持 2 销售和市场支持
  • 微信小程序分享实现拉新绑定(用户关系绑定)

    分享人此时已经是登陆状态 所以在分享的时候直接从本地存储中拿到用户的userId并拼接到分享链接上 其他用户在点击链接打开详情页之后会判断当前链接参数中有无uid有的话则直接存入本地中用作新用户登录注册时候请求接口的判断 最后在砍价记录列表
  • 黑盒测试与白盒测试

    边界值测试的效率有四个评价指标 用例数量 是否冗余 用例的覆盖范围和是否方便错误追踪 根据这四个指标我们对不同的边界值测试进行了评估 等价类测试则有强组合形式的覆盖和弱组合形式的覆盖 可根据用例的规模和数量选用合适的形式进行测试的覆盖 同时
  • 华为OD机试真题 Java 实现【喊7的次数重排】【2022Q2 200分】,附详细解题思路

    一 题目描述 喊7是一个传统的聚会游戏 N个人围成一圈 按顺时针从1到N编号 编号为1的人从1开始喊数 下一个人喊的数字为上一个人的数字加1 但是当将要喊出来的数字是7的倍数或者数字本身含有7的话 不能把这个数字直接喊出来 而是要喊 过 假
  • PHP实现个人免签约微信支付接口原理+源码

    什么是个人免签支付 个人免签支付就是给个人用的支付接口 一般的支付接口都需要营业执照才能申请 个人很难申请的到 或者是没有资质去申请 要和支付商进行签约的 免签 顾名思义就是不需要签约 那么个人免签支付就有市场了 就是为了解决个人无法轻易申
  • T-Engine 编程入门

    都是日文的介绍 T Engine 環境 構築 割 込 7 LED 制御 必修技術 制御 対策 開発 仕様 MP T Kernel 実力 ITRON API T Engine T Kernel SMP実装登場 其他一些介绍 Day 1 Apr
  • elementui 级联选择器的用法

    1 级联选择器的html结构
  • 配置NFS固定端口

    我的个人博客 逐步前行STEP NFS启动时会随机启动多个端口并向RPC注册 为了设置安全组以及iptables规则 需要设置NFS固定端口 NFS服务需要开启 mountd nfs nlockmgr portmapper rquotad这
  • java利用Base64编码和解码图片文件

    1 编码与解码代码如下所示 import java awt image BufferedImage import java io ByteArrayOutputStream import java io File import java i
  • SQL 中OPENQUERY的使用

    OpenQuery 是SQL Server用来与其他Server交互的一种技术 通过OpenQuery SQL Server 可以直接访问其他数据库资源 而其他数据库在OpenQuery 表达式中是以Linked Server 存在的 1
  • SpringBoot+SpringSecurity+Mybatisplus+JWT实现权限控制

    看了一篇关于springSecurity的不错的实战blog 代码比较全 供以后学习 地址 springboot springSecurity实现权限控制
  • 6. Redis缓存设计与性能优化

    分布式缓存技术Redis 1 多级缓存架构 2 缓存设计 2 1 缓存穿透 2 2 缓存失效 击穿 2 3 缓存雪崩 2 4 热点缓存key重建优化 2 5 缓存与数据库双写不一致 3 开发规范与性能优化 3 1 键值设计 3 1 1 ke
  • spring系列文章(一) 关于IDEA中 add framework support没有web application选项的问题

    今天在回顾smm框架时发现一个问题 也就是在add framework support没有web application选项的问题 问题原因 说明你未完全添加web支持 但是系统认定你有web支持 为什么你没有web application
  • 云安全技术——Hyper-V虚拟化技术

    目录 5 1 了解Hyper V 5 2 安装Hyper V 5 3创建虚拟机 Hyper V虚拟化技术 实验目的 了解 Windows 虚拟化的概念 了解 Hyper V的背景及发展 了解 Hyper V 的功能特性 了解 Hyper V
  • 虚幻4学习笔记(5)开关门、使用蓝图开关门、按键和鼠标点击开关门

    开关门 开关门 前置准备 单独设置开关门 设置时间轴 定义蓝图类 完成开关门 针对中心轴 在物体中心 不在右下角的调整方法 世界坐标轴 绝对坐标轴 不会改变 设置按键开关门 鼠标开关门 B站UP谌嘉诚课程 https www bilibil
  • 华为招公关总监:接触近10位路透记者 年薪20万美元

    原标题 华为招聘公关总监 接触近10位路透资深记者 年薪高达20万美元 TechWeb 3月7日消息 据国外媒体报道 华为正在招聘公关总监 开出的年薪最高达20万美元 最近华为招聘人员接触了近10位路透资深记者 为公关总监职位招人 给其中几
  • openwrt x86 版安装纪实

    1 下载源码 已有编译环境 直接在ubuntu 中 git openwrt 源码 https dev openwrt org wiki GetSource git clone b chaos calmer git github com op