OpenWrt 编译相关

使用ubuntu18.04编译先执行

export FORCE_UNSAFE_CONFIGURE=1

重新编译:

rm -rf build_dir/ tmp/ && make clean

安装依赖:

apt-get install subversion build-essential libncurses5-dev zlib1g-dev gawk git ccache gettext libssl-dev xsltproc gcc g++ binutils patch bzip2 flex bison make autoconf texinfo unzip sharutils ncurses-term liblzma-dev git-core quilt libxml-parser-perl mercurial bzr ecj cvs

在 ubuntu 终端中输入以下命令:

cd openwrt
./scripts/feeds update -a
./scripts/feeds install -a

编译检查命令:

make defconfig

查看安装模块:

lsmod

调整中文页面
一、概述
openwrt 源码最开始是只支持英文的,所以需要自己配置添加中文显示,有两种方式可以实现web 中文界面显示:

① 直接编译进固件,并设置默认中文;
② 在串口终端在线更新中文包,并在web端设置;
第一种适合产品化时使用;第二种适合调试用。

二、实现2.1 中文包编译进入固件
① make menuconfig 选中下面中英文选项。保存退出

LuCI --->
    Translations--->
            <*> luci-i18n-chinese //支持中文
            <*> luci-i18n-english
LuCI --->
    Modules --->
        Translations --->
            <*> English (en)
            <*> Chinese (zh-cn)
            
!!!不同版本的luci 对应的界面也不相同,上面两个可以参考;

!!!若没有luci 选项,请先执行这两条命令:	
./scripts/feeds update -a
./scripts/feeds install -a

② 修改配置文件,配置默认中文

vim feeds/luci/modules/luci-base/root/etc/config/luci
修改内容为 zh_cn

③ make V=s 编译好的镜像烧写入开发板,进入Web页面即可。2.2 在线安装中文包

① 在串口终端输入 opkg update (从官网更新可以安装的ipk软件列表,确保网络连接畅通)
② 登录进入web界面 ,在System ——> Software ——>Software-Actions

③ 在Download and install package右边的文本框里输入:luci-i18n-chinese,点击OK,系统即会自动下载并安装。
&& 也可以在Find package 中找到相关的中文包进行安装,因为openwrt后面版本更新,中文包名字不一定为 luci-i18n-chinese
④ 安装完后到语言设置的位置(路径为:System——>System——>Language and Style——>Language)选择chinese,然后刷新页面即可。

3、编译支持USB自动mount功能

make menuconfig

1). 添加USB相关支持

Kernel modules —> USB Support —> <> kmod-usb-core. ##默认已经选了
Kernel modules —> USB Support —> <> kmod-usb-ohci. ##默认已选 old usb1.0
Kernel modules —> USB Support —> <> kmod-usb-uhci. ## usb1.1
Kernel modules —> USB Support —> <> kmod-usb-storage.
Kernel modules —> USB Support —> <> kmod-usb-storage-extras.
Kernel modules —> USB Support —> <> kmod-usb2. ##默认已经选了 usb2.0
添加文件系统支持
Kernel modules —> Filesystems —> <> kmod-fs-ntfs(NTFS 格式 选择)
Kernel modules —> Filesystems —> <> kmod-fs-ext4 (移动硬盘EXT4格式选择)
Kernel modules —> Filesystems —> <> kmod-fs-vfat(FAT16 / FAT32 格式 选择)
添加UTF8编码,CP437编码,ISO8859-1编码
Kernel modules —> Native Language Support —> <*> kmod-nls-utf8

2). 添加USB挂载
Base system —> <*>block-mount

3). 添加自动挂载工具

Utilities —> Filesystem —> <*> badblocks
Utilities —> disc —> <> fdisk… manipulate disk partition table
Utilities —> <> usbutils… USB devices listing utilities

退出保存

4、修改flash容量支持

文件位置示范:./target/linux/ramips/dts
之前在开发板上,使用了支持32M flash的修改,现在支持了64M,只是对
固件中dts设备树又进行了修改 如下 主要是对partion@50000这项

RAM:
reg = <0x0 0x10000000>     // 256M RAM
reg = <0x0 0x8000000>     // 128M RAM
reg = <0x0 0x4000000>     // 64M RAM

FLASH:
reg = <0x50000 0x7b0000>;      // 8M FLASH
reg = <0x50000 0xfb0000>;      // 16M FLASH
reg = <0x50000 0x1fb0000>;     // 32M FLASH

附:关于dts 32Mflash的支持

原来的
partion@50000{
label = “fireware”
      reg = <0x50000 0x7b0000>;
};

改为了
partion@50000{
label = “fireware”
    reg = <0x50000 0x1fb0000>; 
};
如果需要16M则是:

partion@50000{ 
label = “fireware” 
     reg = <0x50000 0xfb0000>;
};

这个0x1fb0000是怎么计算出来的,基于第二个参数表示大小32M = 32 * 1024 *1024 Byte = 0x200000
还有这些分区地址我在手册中没有看到,是不开放吗?
答:0x7b0000 是7.6875M的固件 8M的flash是0x800000 32Mflash的要改的话就是把固件的大小增加24M 即增加0x1800000 加上之前的0x7b0000就等于0x1fb0000
答:0x1fb0000是用0x2000000减去0x50000得到的。

现在使用的硬件板子是64Mflash的,所以按照上面理解,做如下修改
64M flash = 64 1024 1024 Bytre = 0x40000000
然后减去前面的0x50000 = 0x3fb0000
修改好以后,可以启动了,一切正常

5、添加SFTP支持

network -> SSH -> openssh-sftp-avahi-service

6、添加Rndis-net 和 串口支持

Kernel modules -> USB support -> kmod-usb-serial -> kmod-usb-serlal-ch341  and cp210x
Kernel modules -> USB support -> kmod-usb-net -> kmod-usb-net-rndis

7、添加 minicom 和 tmux 功能

Utilities->Terminal->tmux   或者   Utilities->tmux 
Utilities->Terminal->minicom

8、添加 openvpn 功能

Network->VPN->openvpn-openssl

9、支持 block-mount 和 ext4格式化功能(18.06 自带)

block:
Base system->block-mount
ext4:
Libraries->Filesystem->libex2fs
Utilities->Filesystem->e2fsprogs

10、添加htop功能

Administration->htop

11、添加zip功能

Utilities->Compression->unzip
Utilities->Compression->zip

12、添加vim功能

Utilities->Editors->vim-full

13、添加fdisk功能

Utilities —> disc —> fdisk

14、开启串口ttyS1 + ser2net

已 open18为例:
参考:https://blog.csdn.net/liupeng08304/article/details/100986790
编辑 /openwrt18/target/linux/ramips/dts/mt7628an.dtsi
修改:

uart1: uart1@d00 {
     ***

    //status = "disabled";  // 修改成 okay
    status = "okay";
};

再检查使用的 MT7628-xxx.dts 中 pinctrl 配置里没有“uratf”:

&pinctrl {
    state_default: pinctrl0 {
        gpio {
            ralink,group = "gpio", "p0led_an"; // 这里会配置成gpio口
            ralink,function = "gpio";
        };
    };
};
重新编译 make V=s 即可;

15、修改默认网络配置 netwrok

network文件配置文件地址为:
     package/base-files/files/bin/config_generate
wireless文件配置:
     package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
    或者
     package/kernel/mac80211/files/lib/wifi/mac80211.sh
还可以在编译目录新建 files/etc/config/network  和 wireless 文件 ,写入默认配置。

16、添加自定义型号

自定义型号主要包含以下3个方面:

添加设备信息到openwrt。
添加设备树dts配置硬件。

修改文件路径: 源码目录/target/linux/ramips/image/mt76x8.mk

添加设备信息,模板如下(不代表所有选项,具体参考其它设备的配置信息):

define Device/设备型号名称
     DTS := DTS文件名(可自定义,但一般与设备型号一致)
     IMAGES :=sysupgrade.bin
     IMAGE_SIZE := 固件大小
     DEVICE_TITLE := 设备型号信息(可自定义,但一般与设备型号一致)
     DEVICE_PACKAGES := 设备需要的packages
endef
     TARGET_DEVICES += 设备型号名称

配置板子兼容性:
文件例如:"/openwrt18/target/linux/ramips/dts/U7628-01-128M-16M.dts"

兼容型号:compatible = "u7628-01-128M-16M", "unielec,u7628-01", "mediatek,mt7628an-soc";
板子名称:model = "UniElec U7628-01";

查找错误命令:find / -type f|xargs grep "错误关键词"

16、添加rz命令

支持 rz 命令: utilities -> lrzsz

卓钛JS9331配置

1、修改flash容量
文件:lede_AR9331_zhuotk_source_64bit/target/linux/ar71xx/image/tp-link.mk  748行
define Device/tl-wr720n-v3
$(Device/tplink-8mlzma) // 修改 为tplink-16mlzma
DEVICE_TITLE := TP-LINK TL-WR720N v3

2、添加声卡支持
Kernel modules -> Sound Support -> kmod-sound-core -> kmod-usb-audio
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值