iT邦幫忙

0

Build OpenWRT於Raspberry Pi4

前言

先說這是新手紀錄流程,最近想研究一下樹莓派當作開發板的使用情境。
於是開始了這個紀錄文章,想說說不定以後會有人也想以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 

Build自己的OpenWRT Firmware

先說這個需要的基本需求:

  1. Raspberry Pi4上需要能夠可以跑OpenWRT
  2. 至少要有能執行luci web GUI的能力
  3. 能夠上網

接著開始Build FW吧~

	$ 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的網頁設定頁面哩~
https://ithelp.ithome.com.tw/upload/images/20210307/20135722bXNNqzQ3PI.png
如果無法聯外,可以嘗試直接用GUI設定interface成DHCP應該就可以哩~


結語

你可能會想問,啊這個弄好之後要幹嗎?
恩,你可以研究基本的linux嵌入式開發流程,甚至看看相關你有興趣tool是如何運作。
諸如此類,理論上你這套用基本清楚之後,日後用來工作也是一個很好的複習或入門。


參考文件

  1. https://openwrt.org/docs/guide-developer/build-system/install-buildsystem#examples_of_package_installations
  2. https://openwrt.org/docs/guide-developer/quickstart-build-images
  3. https://www.youtube.com/watch?v=_MFkbcNFIqo
  4. https://www.right.com.cn/forum/thread-209584-1-1.html

尚未有邦友留言

立即登入留言