树莓派3安装openwrt

1.在编译openwrt之前,需要先安装依赖包,命令如下:

sudo apt-get install autoconf binutils bison bzip2 flex gawk gettext make libncurses5-dev patch unzip wget zlib1g curl libcurl3 openssl libssl-dev perl libperl-dev cpio libexpat1 gettext openssh-client subversion cmake libtool

2.然后新建用户

#adduser openwrt

3.再开始编译openwrt源码生成镜像文件

3.1.首先下载openwrt源码,
下载地址:https://github.com/openwrt/openwrt/tree/chaos_calmer
或者使用git工具(要先装git工具),输入下列命令:

git clone git://git.openwrt.org/openwrt.git

参考:https://dev.openwrt.org/wiki/GetSource

3.2.然后解压下载的文件

解压zip格式的压缩文件的话使用:

unzip openwrt***.zip

如果使用git联网下载就不需要解压。
3.3.然后进入openwrt文件夹

#cd openwrt

3.4.添加软件扩展包

./script/feeds update -a #更新所有附加的包(如:luci 等等)
./script/feeds install -a #安装所有更新的包

3.5.接着,测试编译环境

#make defconfig

3.6.进入定制界面,配置编译选项

make menuconfig #设置编译配置

选项配置参考:blog.csdn.net/xingyuzhe/article/details/48976501(其中有的选项位置和图片不一样,应该是版本不同,耐心找找就能找到位置,主要在"base system" "kernel modules" "luci" "network" "utilities")

上面的参考是树莓派的配置且用来制作无线路由的,自己的需要根据自身需要选择。

这里需要注意
1."target system"要根据自己板子的实际来选择,否则编译出来的系统放到开发板上也是跑不起来的,如果"target system"中没有完全匹配的可以,在"subtarget"中选择,然后在"target profile"中选择开发板名称
例如,我的是树莓派3,就应该在"target system"选择"Broadcom BCM2708",在"subtarget"中选择"Broadcom BCM2710",在"target profile"中选择"raspberrypi3 B"
2.其他配置中,下面列出部分自己找到的说明:
我配置的选项是:(后面跟default表示,没有修改,选择默认的选项)
target system-----------------------------Broadcom BCM2708
subtarget---------------------------------Broadcom BCM2710
target profile----------------------------raspberrypi3 B(default)
Global build settings---------------------compile with support for patented functionality(default)
enable shadow password support
enable support for prink
support for paging of anonymous memory
compile the kernel with debug filesystem enabled
...
base system-------------------------------wireless tools
Luci:
Applications----------------------------luci-app-samba
kernel module
block device------------------------------kmod-block2mtd(MTD:memory technology device内存技术设备)
Cryptographic API modules-----------------kmod-crypto-ccm
kmod-crypto-cmac
file systems------------------------------ext4
kmod-fs-ntfs
kmod-fs-vfat
USB Supprot-------------------------------kmod-usb-ohci
kmod-usb-uhci
kmod-usb-storage-extras
kmod-usb2
mount-utils
ntfs-3g
block-mount
video support-----------------------------kmod-video-core
kmod-video-uvc
Wireless Drivers--------------------------kmod-ath
kmod-ath9k-common
kmod-ath9k-htc
kmod-brcmfmac
network-------------------------------------netperf
wpa-supplicant
SSH---------------------------------------openssh-sftp-server
utilities-----------------------------------usbstils
disc--------------------------------------fdisk
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

关于其中的配置的部分说明如下

Base system—> <*> block-mount (用于自动挂载的工具)
Kernel modules—> Filesystems—> <*> kmod-fs-ext4 (ext4分区格式支持组件)
Kernel modules—> Native Language Support—> <*> kmod-nls-utf8 (编码格式)
Kernel modules—> Sound Support—> <*> kmod-sound-core (声卡)
Kernel modules—> Sound Support—> <*> kmod-usb-audio (声卡)
Kernel modules—> USB Support—> <*> kmod-usb-cm109 (声卡)
Kernel modules—> USB Support—> <*> kmod-usb-serial (串口)
Kernel modules—> USB Support—> <*> kmod-usb-serial-ch341 (ch341)
Kernel modules—> USB Support—> <*> kmod-usb-serial-cp210x (cp210x)
Kernel modules—> USB Support—> <*> kmod-usb-serial-ftdi (ftdi)
Kernel modules—> USB Support—> <*> kmod-usb-storage (u盘)
Kernel modules—> USB Support—> <*> kmod-usb-storage-extras (u盘)
Kernel modules—> Video Support—> <*> kmod-video-core (视频)
Kernel modules—> Video Support—> <*> kmod-video-uvc (视频)
Kernel modules—> Video Support—> <*> kmod-video-videobuf2 (视频)
Libraries—> <*> alsa-lib (视频)
LuCI设置界面,其中Applications
luci-app-ahcp..................................... LuCI Support for AHCPd
luci-app-ddns..........动态域名.......... Dynamic DNS configuration module
luci-app-diag-core......................... LuCI Diagnostics Tools (Core)
luci-app-diag-devinfo....磁盘信息.... LuCI Diagnostics Tools (Device Info)
luci-app-epg-oscam.......卫星电视.......... epg-oscam configuration module
luci-app-filebrowser......文件浏览............... File browser tool module
luci-app-firewall.......防火墙.... Firmware and Portforwarding application
luci-app-freifunk-policyrouting.......... Policy routing for mesh traffic
luci-app-guide...........应用向导.............. guide configuration module
luci-app-hd-idle.........磁盘休眠......... Hard Disk Idle Spin-Down module
luci-app-ipid.................................. ipid configuration module
luci-app-lqtapifoss.......................................... Lantiq voip
luci-app-mentohust.......校园认证................. mentohust confi
luci-app-meshwizard...... Shellscript based wizard to setup mesh networks
luci-app-mldonkey......mldonkey下载服务..... mldonkey configuration module
luci-app-mmc-over-gpio................ MMC-over-GPIO configuration module
luci-app-multiwan............ LuCI Support for the OpenWrt MultiWAN agent
luci-app-n2n.................................... n2n configuration module
luci-app-nfsd........................ Network Shares - NFS SERVERS module
luci-app-ntpc.............. NTP time synchronisation configuration module
luci-app-nwan..............多拨服务 ....... nwan configuration module
luci-app-openvpn................................ LuCI Support for OpenVPN
luci-app-p2pblock.......... LuCI Support for the Freifunk P2P-Block addon
luci-app-p910nd........打印服务............ p910nd - Printer server module
luci-app-polipo........................ LuCI Support for the Polipo Proxy
luci-app-pppoeserver.................... pppoeserver configuration module
luci-app-pptpd................................ pptpd configuration module
luci-app-qos..................... Quality of Service configuration module
luci-app-qosv4........QOS平衡服务.............. qosv4 configuration module
luci-app-radvd.................................... LuCI Support for Radvd
luci-app-samba.........共享服务.... Network Shares - Samba SMB/CIFS module
luci-app-siitwizard............. SIIT IPv4-over-IPv6 configuration wizard
luci-app-splash......................... Freifunk DHCP-Splash application
luci-app-statistics.......................... LuCI Statistics Application
luci-app-tinyproxy............... Tinyproxy - HTTP(S)-Proxy configuration
luci-app-transmission.......BT下载器.... transmission configuration module
luci-app-upnp................. Universal Plug & Play configuration module
luci-app-ushare.....流媒体服务....... uShare - UPnP A/V & DLNA Media Server
luci-app-vnstat.................................. LuCI Support for VnStat
luci-app-voice-core........................... LuCI Voice Software (Core)
luci-app-vsftpd..........FTP服务.............. vsftpd configuration module
luci-app-webcam.............................. webcam configuration module
luci-app-webshell.......WEB命令控制台........ webshell configuration module
luci-app-wol..........网络唤醒............... LuCI Support for Wake-on-LAN
luci-app-wshaper................................ LuCI Support for wshaper
Multimedia—> <*> mjpg-streamer (视频)
Utilities—> Filesystems—> <*> badblocks (u盘)
Utilities—> <*> alsa-utils-tests (声卡)
luci-i18n-chinese //luci中文支持
luci-app-ushare //媒体服务
luci-app-ddns //ddns
luci-app-qos //qos
luci-app-hd-idle //usb硬盘自动休眠
luci-app-samba //samba
luci-app-upnp //upnp端口映射
ushare //媒体服务
usbutils //usb工具如lsusb
nfs-kernel-server //NFS文件服务器
fdisk
e2fsprogs //分区管理工具
kmod-usb-storage //USB存储设备支持
kmod-fs-ntfs //ntfs,只读
kmod-fs-vfat //fat,fat32文件系统支持
ntfs-3g //可读写NTFS支持
kmod-fs-ext4 //ext2,ext3,ext4
kmod-nls-utf8 //文件系统语言支持
kmod-fs-nfs-common
kmod-fs-nfs //NFS
//摄像头
kmod-video-core //视频支持
kmod-video-gspca-core
kmod-video-uvc //免驱摄像头
kmod-i2c-core
kmod-input-core
motion //监控软件
block-mount //自动挂载,可在luci的系统->挂载点查看相关信息

network中wpa-supplicant和wpa-psk的区别
WPA-PSK是指Pre-Shared Key,就是用户已经有了一个Key,通过这个Key来进行WPA认证,不需要认证服务器。如果不是PSK的话,需要认证服务器来产生Key。
WPA和WPA-PSK采用了相同的加密机制,其区别仅在于WPA-PSK的认证机制只有简单的一般密码,而非针对用户特定的身份认证。虽然这种一般密码式的方法存在被暴力破解的可能性,但是,与WEP相比,无线网络的安全性仍然大大强化。
从技术角度看,WPA主要解决了WEP在共享密钥上的漏洞,添加了用户级的认证措施。Wi-Fi联盟给出的WPA定义即为:
  WPA = 802.1X + EAP + TKIP + MIC
WPA只是在802.11i正式推出之前的Wi-Fi企业联盟的安全标准,802.11i,该标准通过使用CCM (Counter-Mode/CBC-MAC)认证方式和AES(Advanced Encryption Standard)加密算法,更进一步加强了无线局域网的安全和对用户信息的保护。

以上是配置中的选项的部分解释,备注一下。
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
3.7.最后是编译的过程,如下:

注意:编译的时候尽量使用root用户,否则,可能出现没有创建某个文件的权限,没有删除某个文件的权限等问题,此时,即便使用chmod改变所有文件的权限也行不通,因为,里面部分文件是临时创建的,创建出来的文件可能会没有权限。

make download #提前下载需要编译软件的源代码(可以跳过)
make V=99 #V=99表示显示编译详情(便于调试编译错误)
#等待编译完成,编译完成后所有的输出镜像和ipk包会在openwrt/bin目录下。
注意:部分安装包可能会很难下载,可以FQ下载下来,然后放到openwrt/dl目录下边。

下面给出地址,里面有我安装时需要的安装包:

下面是我编译出来的镜像(我的是树莓派3):

链接:http://pan.baidu.com/s/1jI21Ll0 密码:nbwc

编译过程有几个问题需要注意
1.you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)
解决方法
输入命令:export FORCE_UNSAFE_CONFIGURE=1
2.编译的时候尽量使用root用户,否则,可能出现没有创建某个文件的权限,没有删除某个文件的权限等问题,此时,即便使用chmod改变所有文件的权限也行不通,因为,里面部分文件是临时创建的,创建出来的文件可能会没有权限。
3.编译到后面,会有一个选择是否安装Broadcom BCM2835 camera interface driver的选项,此时要选N,如果选择Y,就会遇到
config.status: error: cannot find input file: `po/Makefile.in.in‘
Makefile:198: recipe for target ‘/home/openwrt/openwrt/build_dir/target-arm_arm1176jzf-s+vfp_musl-1.1.16_eabi/transmission-mbedtls/transmission-2.92+git/.configured_yyyyyyyy‘ failed
make[3]: *** [/home/openwrt/openwrt/build_dir/target-arm_arm1176jzf-s+vfp_musl-1.1.16_eabi/transmission-mbedtls/transmission-2.92+git/.configured_yyyyyyyy] Error 1
make[3]: Leaving directory ‘/home/openwrt/openwrt/feeds/packages/net/transmission‘
package/Makefile:196: recipe for target ‘package/feeds/packages/transmission/compile‘ failed
make[2]: *** [package/feeds/packages/transmission/compile] Error 2
make[2]: Leaving directory ‘/home/openwrt/openwrt‘
package/Makefile:193: recipe for target ‘/home/openwrt/openwrt/staging_dir/target-arm_arm1176jzf-s+vfp_musl-1.1.16_eabi/stamp/.package_compile‘ failed
make[1]: *** [/home/openwrt/openwrt/staging_dir/target-arm_arm1176jzf-s+vfp_musl-1.1.16_eabi/stamp/.package_compile] Error 2
make[1]: Leaving directory ‘/home/openwrt/openwrt‘
/home/openwrt/openwrt/include/toplevel.mk:192: recipe for target ‘world‘ failed
make: *** [world] Error 2
等问题,配置失败导致缺乏文件。
4.如果编译成功,也生成了镜像,但是写到板子上却无法启动,就要检查前面选择树莓派时的配置("target system")是否正确。
5.如果烧写到树莓派启动发现系统是read-only filesystem时,就要检查启动时,文件系统有没有问题,可能是镜像损坏了,重新写一个系统就能解决。

启动openwrt

整个编译过程结束后,可以在bin/brcm2708的目录下找到编译成功的镜像,使用工具烧写到SD卡上,然后插入到树莓派上通电就可以启动了。

参考博客:

http://blog.csdn.net/dissipated_man/article/details/52572624

http://blog.csdn.net/xingyuzhe/article/details/48976501

http://www.cnblogs.com/merlindu/p/6435211.html

https://wiki.openwrt.org/toh/raspberry_pi_foundation/raspberry_pi#boot_log_raspberry_pi_3

时间: 2024-10-12 19:49:05

树莓派3安装openwrt的相关文章

树莓派3B安装LEDE

本来想安装openwrt的,但是op官方没有支持pi3,甚至op都不怎么发新版了,仅LEDE分支有缓慢的更新..离题了,之前给pi3装过LEDE,体验不是很好.今天到openwrt官网看了下,发现之前lede不支持pi3,之前刷的固件是为pi2准备的.好在现在已经为pi3做了适配. 根据官方的说法, The Raspberry Pi is supported in the brcm2708 target. Subtargets are bcm2708 for Raspberry Pi 1, bc

wr720n v4 折腾笔记(一):安装Openwrt

好久没有写过文章了,今天先来个引子:wr720n v4版本安装openwrt 最近弄了个路由器wr720n,想抓包做点东西,于是就先从刷固件openwrt开始吧. 所需工具: 1.wr720n v4路由器 2.网线一根 3.下载附件:固件合集 4.电脑一台 0x01 刷入openwrt 网上教程很多,就是针对openwrt的资源文件太少了,因为这个GB百度云的网盘都给取消掉了.这里我就再次将资源打包下,见附件. 首先刷入openwrt固件. 正常连接路由器,访问192.168.1.253,随便设

写一下自己一个星期玩树莓派的经验,如何安装系统,如何在树莓派中安装opencv,如何运行代码。

在树莓派上安装opencv最简单的方法是: sudo apt-get update sudo apt-get install libopencv-dev sudo apt-get install python-opencv 如果你还想了解更多,下面提供的那么多链接中你一定找到方法的,饭都送到你面前你不会吃,那么你活该饿着. 平时自己习惯用vim 所以在树莓派上安装了vim编辑器 安装命令  sudo apt-get  install  vim 就可以了. 好了,可以运行一个opencv的例子来检

给树莓派IIraspberrypi安装emacs+ecb+cedet+session+color-theme+cscope+linum

类似这篇文章写的不多,为了避免以后大家转来转去而忽略了写文章的时间,这些特别加上是2014年6月28日,省的对不上一些软件的版本(下文中有些"最新"的说法就对应这个时间).如果转发的时候能够加上我老顾的原文链接就更好了:) 还是在2008~2010年的时候,比较粉Emacs,然后花了很多时间在上面,编程效率的确高了,但是在上面花的时间也不少.2010年底的时候,放弃Emacs,而是选用所有支持emacs key的IDE,比如Eclipse,NetBean,VS等,说到底Emacs的编程

GO语言.树莓派.环境安装和测试

Go是Google开发的一种静态强类型.编译型.并发型,并具有垃圾回收功能的编程语言.为了方便搜索和识别,有时会将其称为Golang 记录一下如何在树莓派上安装语言环境 第一步: 下载安装包 https://golang.org/dl/ 这里我们要安装在树莓派里, 所以下载上图所示的版本 第二步: 安装 将下载的源码包解压至 /usr/local目录 sudo tar -C /usr/local/ -xzf go1.9.2.linux-armv6l.tar.gz 将 /usr/local/go/

树莓派 -- mysql 安装

树莓派 -- mysql 安装 linux mysql Yesterday is a history, tomorrow is a mystery, but today is a gift. 前序 mysql 在树莓派 raspberry pi 上的安装和在 Linux 上的差不多,因为网上的教程只是记述了一部分且遇到了情况,就整理下来 安装 因为不知道突然执行了什么操作,然后系统执行什么命令都要权限了,都要加上 sudo 才能执行,这个看个人情况吧 更新软件库 sudo apt-get upd

树莓派编译安装 EMQ 服务器

前言 EMQ 是一款开源的物联网 MQTT 消息服务器,使用 Erlang/OTP 语言平台设计,在 DIY 智能家居时可以作为网关,前几天摸索了一下在树莓派中安装 EMQ 的方法,记录一下. 步骤 安装 Erlang sudo apt-get install erlang-dev erlang-edoc erlang-eunit erlang-reltool erlang-crypto erlang-eldap erlang-public-key erlang-runtime-tools er

在树莓派上安装YCM(YouCompleteMe)

? 太折腾了!如果你搜索到了这篇文章,建议直接使用SpaceVim作为替代品. 0x0.第一个坑--不支持Python ? 我的树莓派的系统是基于Debian Stretch的Raspbian Stretch.使用apt-get安装的vim不支持python脚本.你可以通过输入: 1 vim --version | grep python 来检查,如果发现python/python3前面出现了加号,恭喜你,你可以跳过本步骤了.它说明你的vim支持python.如果都是减号,你需要重新编译安装vi

树莓派中安装teamviewer

在树莓派上安装teamviewer,就可以在windows甚至手机上监控树莓派了,同时也解决了树莓派通过手机卡上网而不能被远程控制的烦恼了. 第一步: 输入网址:https://www.teamviewer.cn/cn/download/windows/ 找到Raspberry Pi 右击“下载Host“,复制下载链接 第二步: 输入以下命令: sudo su wget 链接地址 sudo dpkg -i teamviewer-host_armhf.deb sudo apt-get -f ins