RUVIDEO
Поделитесь видео 🙏

树莓派4B 编译openwrt && Raspberry pi 4B compiler openwrt

# 2021年1月9日第三期
## 编译树莓派4Openwrt
### 准备
- linux系统或mac系统或linux子系统
- 存储空间大于10G,推荐20G的空闲目录
- openwrt源码
### 步骤
1. 下载openwrt到准备的目录
1. 下载命令:`git clone https://github.com/openwrt/openwrt.git`
1. 本文将openwrt下载到了`/usr/src/openwrt`
2. 这就开始下了,下完之后进入目录就可以了
2. 编译准备工作
```
./scripts/feeds update -a
./scripts/feeds install -a
```
3. 编译选项
```
make menuconfig
```
- 这个记录还留存上次编译的选项
- 首先找到树莓派的CPU型号,博通XXXX`Broadcom`树莓派是arm架构所以选择arm
- 下一步目标,简单来说就是具体型号和指令集架构,32和x64都行,32比较通用一些,如果是生产和新手尽量选**X64**,64虽然有些包是不兼容的,但毕竟是极少数,一般玩的人都碰不到兼容性问题。
- **Target Profile** 这个是厂商型号这次PI4就选4,这个32位默认吧234都勾选了,且去不掉,那就这样
- **Target Images** 目标镜像文件,我一般只选择[*] ext4 (NEW),`squashfs`这个选项是为了批量生产用的,自己用不要选择个,ext4可以后续自己分配空间,squashfs这个就不行了。
- Kernel partition size (in MB)默认就行了
- Root filesystem partition size (in MB)这个看你内存卡大小了,树莓派是插卡式的,所以,你如果买个100G的这里你可填90g,不过镜像会很大,ext4后期可以扩充,所以ext4默认就行了
- **Administration**
- HTOP:这个界面就是htop了,cpu和内存监控,和windows的任务管理器差不多吧。其他随便了,建议没经验的少选
- **Kernel modules**
- - USB Support
- 如果你要装usb转网卡,那这里有驱动,具体驱动看你买的商品,举个例子,我用的`毕亚兹 USB3.0`先看他芯片型号,藏得很深,如果买的时候,商品页没有写明型号,建议不要买了,或者去找找同价位的,基本都用的同一款芯片,这个就是用的 **RTL8153**
- 开始找,很不幸,这里没有,但是不要灰心,这个RTL8153和RTL8152用的是同一款驱动。
- kmod-usb-net-rtl8152就是这个了
- **LuCI**
- 这个就是大神们玩的地方了,我介绍几个基本的.
- Collections
- luci
- luci-nginx
- Modules
- Translations (系统语言)
- Chinese Simplified (zh_Hans)
- English (en)
- Applications
- luci-app-adblock
- luci-app-diskman 磁盘管理只能ramdisk和ext4可以用,用sq的选了也没用
- luci-app-mjpg-streamer 读取usb摄像头的,比如想自己话10块钱买个USB摄像头当监控,可以用这个,很简单,占用资源小,效果当然也很差。
- luci-app-passwall-plus 不说了,难受
- luci-app-uhttpd 端口管理工具,必装吧
- luci-app-upnp UDP透传 一般没大用,有些视频播放器会利用UDP加速,这个就有用了,简单说就是将内网UDP端口映射到外网地址上,以达到直连效果
- luci-app-ddns dns管理工具,不能细说
- 就这些吧,新手少装点吧,装多了出错、冲突解决起来很麻烦的,一般解决一个冲突,熟练的老鸟也得10~60分钟,**新人可能直接就会让你放弃了**。
- Themes
- luci-theme-argon 我个人比较喜欢这个,它会和你的windows锁屏一样,自动拉取bing图库,效果,这就是效果,这个也是手机和电脑自适应布局的。
- luci-theme-openwrt 稳妥的,我一般会装一个这个,为了防止,修改主题导致崩溃,直接就打不开路由器了,这个可以救急
- 其他的尽量少选,老鸟看需求吧,还是那句话冲突,虽然主题90%不会冲突
- 配置就到这吧,其他的自己按照我这个步骤多学学,自己搭配吧。
- 最后别忘了` Save - `
-
### 配置记录
```
Target System (Broadcom BCM27xx) ----
Subtarget (BCM2711 boards (64 bit)) ----
Target Profile (Raspberry Pi 4B (64bit)) ----

```
### 命令统计 没有管理员权限的,` /usr/src/`替换为` ~/`,
- 自己放到home下,`cd ~`这个命令就是进入你自己的home目录的,
- yum和apt二选一,哪个能用用哪个。不解释了,YUM是centos系用的命令,apt是小红帽系用的命令,ubuntn、麒麟也属于小红帽分支,
- `make download -j8`是先下载依赖,执行这一步会省你很多时间,第一次。
- `make -j36 V=s` j36大家量力而为,36≈cpu核心数X1.5,cpu为8核的台式机`make -j16 V=s`,cpu为8核的笔记本`make -j8 V=s`,过载会让你的笔记本过早降频,反而会影响编译速度,水冷的就不用看了
- 第一次编译会持续大约30分钟~8小时,我曾经用6700这颗U,编译了6+小时。5900X那就是30分钟了。
- 第一次以后,大约就是10分钟左右吧,如果过长那就是你新加的包有点多90%占比,或者您的网络有问题10%占比

### 编译错误
又报错了,看下错误原因
- 并没有具体原因,只清楚最后一步是`/usr/src/openwrt/package/libs/elfutils`

- 先搞掉它,没找到,怎么办呢,删包或者重新来,有可能误选了某个包

- 手误,看下是不是编译架构导致的,并不是。取巧还是不靠谱的

- 古老的办法`make -j1 V=s`错误原因有了

```
ERROR: package/feeds/small/trojan-go failed to build
```
- 简单点删掉就可以了,刚才应该是内存爆了,刚才开了一个tkf的服务端,32G工作和娱乐还是稍微欠缺一点,
包位置:
```
LUCI-- application-- luci-app-passwall-- config里面去掉trojan-go

Network-- trojan-go
即可
```
- 大意了,luci只是管理页面真正的包在Network下,所以不明确的不要点,点了之后openwrt会将包自动关联,你取消了它并不会帮你去取消依赖和实际包

- 又出错了,**今天超级不顺**
```
ERROR: package/feeds/small/v2ray-plugin failed to build.
```
- 按上面的步骤
```
LUCI-- application-- luci-app-passwall-- config里面去掉v2ray-plugin

Network-- PROject V -》v2ray-plugin
即可
```
- 这个luci-app-passwall建议不要装了,冲突有点多,浪费时间了,懂得还知道怎么找,不懂得就很难了。

- 老问题了
```
Package dnsmasq wants to install file But that file is already provided by package * dnsmasq-full
```
包冲突,去掉一个就可以了
位置
```
Base system-- dnsmasq或者 dnsmasq-full删掉一个,我一般会删dnsmasq,原因不说了,知道没错就行了
```
- 再来一次
```
make[2]: Leaving directory '/usr/src/openwrt'
make[1]: Leaving directory '/usr/src/openwrt'
```
- 这不是报错,这就代表成功了。

- 找到编译出来的固件,烧录一下
`/usr/src/openwrt/bin/targets/bcm27xx/bcm2711`
- 因为咱们编译的是树莓派4B也就是bcm2711,只拿这个就行了,当然,因为选的是32为,系统会把2、3都编译出来,这都是可以用的,如果你有2、3的话。

- 我看了下,不对的,32位是有bug的,4B并没有出来,2出来了,修改下参数再来一次

- 为了加快速度就不加V=s了。
```

make[2] json_overview_image_info
make[2] checksum
```
- 这就成功了。

- 去看下`cd /usr/src/openwrt/bin/targets/bcm27xx/bcm2711`

- 这个32位的确有bug,只会生成2,换成64的吧

- 又来了一次,配置已经改成64了,记个开始时间:00点27分

- 结束时间:00点32分又报错了,当没看见吧。

- 我点错了,应该装`luci-app-passwall-plus`而不是`luci-app-passwall` 我的错
- 剪辑中最后编译是失败的

- 解决方案:重新下载lib包,前提是网络正常,看是不是依赖没有下完
```
make download -j1 V=s
```

- 这次有点问题,剪辑导出半小时了才35%。太晚了,脑子不好使了。
### 代码整理
```
sudo yum install gcc binutils bzip2 flex python3 perl make find grep diff unzip gawk getopt
subversion libz-dev libc-dev rsync

sudo apt install gcc binutils bzip2 flex python3 perl make find grep diff unzip gawk getopt
subversion libz-dev libc-dev rsync

sudo git clone https://github.com/openwrt/openwrt.git /usr/src/
cd /usr/src/openwrt
./scripts/feeds update -a
./scripts/feeds install -a
make menucongfig
make download -j8
make -j36 V=s
cd /usr/src/openwrt/bin/targets/bcm27xx/bcm2711
```

Что делает видео по-настоящему запоминающимся? Наверное, та самая атмосфера, которая заставляет забыть о времени. Когда вы заходите на RUVIDEO, чтобы посмотреть онлайн «树莓派4B 编译openwrt && Raspberry pi 4B compiler openwrt», вы рассчитываете на нечто большее, чем просто загрузку плеера. И мы это понимаем. Контент такого уровня заслуживает того, чтобы его смотрели в HD 1080, без дрожания картинки и бесконечного буферизации.

Честно говоря, Rutube сегодня — это кладезь уникальных находок, которые часто теряются в общем шуме. Мы же вытаскиваем на поверхность самое интересное. Будь то динамичный экшн, глубокий разбор темы от любимого автора или просто уютное видео для настроения — всё это доступно здесь бесплатно и без лишних формальностей. Никаких «заполните анкету, чтобы продолжить». Только вы, ваш экран и качественный поток.

Если вас зацепило это видео, не забудьте взглянуть на похожие материалы в блоке справа. Мы откалибровали наши алгоритмы так, чтобы они подбирали контент не просто «по тегам», а по настроению и смыслу. Ведь в конечном итоге, онлайн-кинотеатр — это не склад файлов, а место, где каждый вечер можно найти свою историю. Приятного вам отдыха на RUVIDEO!

Видео взято из открытых источников Rutube. Если вы правообладатель, обратитесь к первоисточнику.