本篇單純作為一個筆記. 快速的將Unifi Controller塞到OpenWRT裡面..
這邊會使用LEDE的OpenWRT, 然後透過Hyper-V建置VM安裝LEDE...
既然要塞Unifi Controller, 那只能透過掛載其他的OS環境來執行... 這種情況下, RAM的要求不能太低. 意思是如果是非VM的產品... 那RAM最好不要太小. 來看以下掛載其他OS環境執行Unifi Controller的Memory Usage情況..
從上圖可以看出這個要求是系統記憶體最好在1GB以上. 在這樣的要求下, 大多AP產品都會被打槍...=_=" 除了建置VM以外的方案, 就只有軟體路由器符合這個條件.
當安裝LEDE後, 當然得確定internet能不能上的去了.
確認沒問題後, 這邊Hyper-V再掛載一個16GB的drive用來作為Unifi Controller使用.
往下執行opkg update來更新套件列表:
在執行df -h來看看分區表:
不過完全是新的drive當然是甚麼資訊都看不到, 執行ls /dev/[sh]d* 來查看:
可以看出有一個新得sdb儲存裝置, 為了確認. 使用fdisk檢查, 不過LEDE沒有安裝這個套件. 因此需要下載安裝:
安裝完成後, 使用fdisk -l /dev/sdb 確認這個新的sdb儲存裝置:
確認沒問題後, 格式化該裝置, 使用fdisk:
最後使用w參數進行寫入操作:
在使用fdisk -l /dev/sdb 確認是否建立一個partition:
得知這個partition為 /dev/sdb1.
LEDE應該是預設有安裝e2fsprogs的工具. 使用該工具建立ext4檔案系統.
應用 mkfs.ext4 /dev/sdb1
接下來安裝block-mount來掛載檔案系統:
然後再用block-mount去mount新的ext4檔案系統.
不過我在測試中發現有點問題. 按下Apply&Save後, LEDE整個就死掉了. 必須強制reboot. reboot完成後, 使用 df -h來查看, 發現已mount成功:
安裝debootstrap套件用來載入其他的OS環境:
安裝完成後, 這邊將安裝debian的Linux環境, 使用如下命令:
debootstrap --arch=amd64 jessie /mnt/sdb1/debian http://mirrors.163.com/debian/
這邊可能會遇到一個問題, 就是他下載的失敗率頗高的. 這個命令可能要多執行2~3次才會成功. 安裝debian完成後, 透過GUI的Startup, 寫入以下命令啟動時自動掛載(更新/etc/rc.local):
mount -o bind /proc /mnt/sdb1/debian/proc
mount -o bind /dev /mnt/sdb1/debian/dev
mount -o bind /dev/pts /mnt/sdb1/debian/dev/pts
Submit過後, 將LEDE進行reboot. 之後chroot進入debian環境:
chroot /mnt/sdb1/debian /bin/bash
為了下載Unifi Controller軟體, 首先要更新sources.list來源內容.
用vi編輯加入以下的來源:
deb http://www.ubnt.com/downloads/unifi/debian unifi5 ubiquiti
儲存後, 使用apt-get update進行套件資源更新:
增加GPG key, 使用如下命令:
apt-key adv --keyserver keyserver.ubuntu.com --recv C0A52C50
import完成後, 重點就是開始安裝Unifi Controller了. 使用如下命令:
apt install unifi
確認安裝完成後, 直接用browser測試是否能正常進入Unifi Controller的Web控制介面:
確認沒問題後, 進行最後的收工. 因為reboot過後, 相關的服務不會被啟用. 因此需要在GUI的Startup更新/etc/rc.local的內容, 添加如下命令. 注意跟mount執行的順序:
chroot /mnt/sdb1/debian service mongodb start
chroot /mnt/sdb1/debian service unifi start
上述命令加入後, 在下一次的reboot, Unifi等相關服務都會被自動啟用.
使得Unifi Controller能正常操作.