先說這是新手紀錄流程,最近想研究一下樹莓派當作開發板的使用情境。
於是開始了這個紀錄文章,想說說不定以後會有人也想以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是如何運作。
諸如此類,理論上你這套用基本清楚之後,日後用來工作也是一個很好的複習或入門。