Ubuntu编译openwrt

官方代码仓库

以下操作基于Ubuntu 20.04 LTS(建议硬盘大于20G)

系统配置

修改root密码
sudo -i
passwd
创建用户组test及用户tester
groupadd test
useradd -g test -d /home/tester -s /bin/bash -m test
passwd test
编辑/etc/sudoers文件
 vi /etc/sudoers
 tester    ALL=(ALL:ALL) ALL #在root    ALL=(ALL:ALL) ALL下一行添加

:wq!保存并强制退出

使用ssh连接
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
/etc/init.d/ssh restart#或重启
su tester
sudo whoami
#若显示root,就有root权限

2021年3月1日编译

替换国内镜像源
sudo sed -i 's/http:\/\/cn.archive.ubuntu.com\/ubuntu/https:\/\/mirrors.ustc.edu.cn\/ubuntu/g' /etc/apt/sources.list
更新源
sudo apt update
sudo apt upgrade
安装编译所需软件包
sudo apt install -y build-essential ccache ecj fastjar file g++ gawk \
gettext git java-propose-classpath libelf-dev libncurses5-dev \
libncursesw5-dev libssl-dev python python2.7-dev python3 unzip wget \
python3-distutils python3-setuptools rsync subversion swig time \
xsltproc zlib1g-dev \
screen
sudo timedatectl set-timezone 'Asia/Shanghai' #设置时间零点
#可选,生成iso需要
sudo apt install -y genisoimage 
sudo ln -s genisoimage /usr/bin/mkisofs
新建一个虚拟终端
screen -S openwrt_build
#进入虚拟终端
screen -r openwrt_build
#挂起终端
Ctrl+A+D
#列出虚拟终端
screen -ls
#退出(杀死)虚拟终端
exit
克隆openwrt代码到本机
git clone https://hub.fastgit.org/openwrt/openwrt.git
更新并安装feeds
cd openwrt
sed -i 's/github.com/hub.fastgit.org/g' feeds.conf.default
./scripts/feeds update -a
./scripts/feeds install -a
配置
make menuconfig
下载编译所需的代码
make -j$(nproc) download V=s
开始编译

不要用root用户编译否则,要设置环境变量

export FORCE_UNSAFE_CONFIGURE=1

第一次推荐单线程编译

time make -j1 V=s

首次编译用时
real 135m51.157s
user 246m10.528s
sys 55m30.574s

编译完成后输出路径:~/openwrt/bin/


第二次及以后推荐多线程编译

git pull
./scripts/feeds update -a && ./scripts/feeds install -a
make defconfig
make -j$(nproc) download V=s
time make -j$(nproc) V=s

第二次及以后编译用时很短


重新配置并编译

rm -rf ./tmp && rm -rf .config
make menuconfig
time make -j$(nproc) V=s

可能出现的问题

1.编译x86 固件报如下错误 bash: /home/adam/lede/staging_dir/host/bin/python: No such file or directory #6224

bash: /home/adam/lede/staging_dir/host/bin/python: No such file or directory
make[3]: *** [Makefile:107: /home/adam/lede/build_dir/target-x86_64_musl/zstd-1.4.5/.configured_68b329da9893e34099c7d8ad5cb9c940] Error 127
make[3]: Leaving directory ‘/home/adam/lede/feeds/packages/utils/zstd’
time: package/feeds/packages/zstd/compile#0.11#0.06#0.17
make[2]: *** [package/Makefile:113: package/feeds/packages/zstd/compile] Error 2
make[2]: Leaving directory ‘/home/adam/lede’
make[1]: *** [package/Makefile:107: /home/adam/lede/staging_dir/target-x86_64_musl/stamp/.package_compile] Error 2
make[1]: Leaving directory ‘/home/adam/lede’
make: *** [/home/adam/lede/include/toplevel.mk:224: world] Error 2

#软链接错误
rm /home/$USER/openwrt/staging_dir/host/bin/python
rm /home/$USER/openwrt/staging_dir/host/bin/python3
ln -s /usr/bin/python3.8 /home/$USER/openwrt/staging_dir/host/bin/python
ln -s /usr/bin/python3.8 /home/$USER/openwrt/staging_dir/host/bin/python3
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值