先说这是新手纪录流程,最近想研究一下树莓派当作开发板的使用情境。
於是开始了这个纪录文章,想说说不定以後会有人也想以OpenWRT当作研究Linux的敲门砖,顺便纪录最基本的系统建设流程。
顺便把自己踩过的雷给记录下来。
注意,目前OpenWRT於Raspberry Pi4上,似乎不是完全稳定,所以官方韧体曾经上架但目前是下架状态,若是要已经弄好的韧体,则需要上网爬文找,这里就不是我要记录的部分罗。
OS版本: Ubuntu 18.04 (VirtualBox, AMD CPU)
$ sudo apt update
$ sudo apt install 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
$ git clone https://git.openwrt.org/openwrt/openwrt.git
$ cd openwrt
-- 拉相关package tools source code --
$ ./scripts/feeds update -a
$ ./scripts/feeds install -a
$ make menuconfig
$ make -j1 V=s
在make menuconfig这段,你需要依据自己需求做一些客制化
这边有参考一些资料,最後捏出一个最基本的设定
最核心是libustream-wolfssl这个会干扰Build Code结果,但我主要只需要openssl所以要先关掉
1. Target System = Broadcom BCM27xx
2. Subtarget = BCM2711 boards 64bit
3. Target Profile = Raspberry Pi 4b
4. Target Images = squashfs
5. Kernel Modules -
-- USB Support = kmod-usb-hid
= kmod-usb-net
= kmod-usb-net-asix
= kmod-usb-net-asix-ax88179
= kmod-usb2
= kmod-usb3
6. Libraries
-- libssh
-- libssh2
-- (N) libustream-mbedtls
-- (Y) libustream-openssl
-- (N) libustream-wolfssl
7. LUCI -
-- Collections -
= luci
= luci-ssl-openssl
9. Exit
10. save
最後存好设定,make就好哩~
放FW image的方式就可以依循树莓派一般的做法(Win32DiskImager),又或是Linux DD进去。
下设定的方式可以直接SSH或是直接接TTL Console出来,我这边设定会是以TTL设定为主。
Console Software: minicom
刚初始化的Openwrt预设ip为192.168.1.1,你如果自己家里上面Gateway有自己设定subnet,那请记得要改成subnet内的合法ip。
比如我这边GW subnet是192.168.100.1/24,那我就要先想办法设定成192.168.100.X
root@OpenWrt:/# ifconfig br-lan 192.168.100.200 netmask 255.255.255.0
最後用浏览器进到192.168.100.200,应该就可以看到OpenWRT的网页设定页面哩~
如果无法联外,可以尝试直接用GUI设定interface成DHCP应该就可以哩~
你可能会想问,啊这个弄好之後要干吗?
恩,你可以研究基本的linux嵌入式开发流程,甚至看看相关你有兴趣tool是如何运作。
诸如此类,理论上你这套用基本清楚之後,日後用来工作也是一个很好的复习或入门。
<<: Day3:String Formatting 字串格式化
嗨嗨 又过了一周 刚刚打完了忘了存挡.....哭呀 那我废话不多说了 本日学习 Stack&...
Redis 资料型态SortedSet Sorted Set与Hash一样,可以存放很多key an...
Redis持久化 Redis是一个in-memory的data store,在记忆体中操作与储存让其...
原本记忆体部分打算在实作 Load/Store 的前一篇写。 但为了阅读方便,调整顺序让接下来指令集...
原企业信箱是由虚拟主机方Serverzoo提供,但常常遇到ip被ban的问题,客服建议把合约升级,让...