Radenku.com – Kali ini aku buat post cara build firmware openwrt menggunakan openwrt image builder. Karena berhubung openwrt 21.02.2 sudah release jadi waktunya upgrade firmware openwrt.
Jadi sekalian aja aku buat tutorialnya ini, build firmware ini tidak perlu compile openwrt dari source, jika butuh ipk custom bisa diambil dari custom feeds My Opkg Repo. Jadi tidak perlu butuh waktu yang lama & caranya juga tidak sulit silakan baca tutorialnya dibawah.
Openwrt Imagebuilder
Apa itu Openwrt Image Builder? Openwrt Image Builder (sebelumnya dikenal Image Genarator) adalah pre-compiled environment untuk membuat custom image tanpa perlu compile dari source. Openwrt image builder akan mendownload pre-compiled package dan mengintegrasikan ke satu image.
Dibandingkan dengan compile openwrt dari source, membuat firmware openwrt menggunakan openwrt builder jauh lebih cepat, hanya butuh waktu kurang dari 15 menit. Karena dengan imagebuilder openwrt tidak perlu compile package lagi.
Jika kalian membutuhkan ipk custom yang akan dimasukkan ke image firmware harus di buat / compile terlebih dahulu menggunakan openwrt SDK.
Persiapan Menggunakan Image Builder
Sebelum openwrt build image yang harus disiapkan
- Linux
- Koneksi internet
Untuk menggunakan openwrt-imagebuilder kita harus menggunakan OS linux. Jika kalian menggunakan windows tinggal install linux di windows menggunakan Virtualbox, jadi OS linux bisa berjalan diatas windows, tanpa menghapus OS windows.
Tinggal sesuaikan distro yang akan kalian pakai, rekomendasi untuk yang baru belajar linux bisa menggunakan linux mint karena masih turunan ubuntu dan ramah dengan user yang baru di linux.
Setelah OS linux sudah terinstall, pertama update terlebih dahulu
sudo apt update && sudo apt upgrade -y
Baru install dahulu dependencies untuk image builder openwrt
sudo apt install build-essential libncurses5-dev libncursesw5-dev \ zlib1g-dev gawk git gettext libssl-dev xsltproc rsync wget unzip python
Untuk distro selain ubuntu/debian install dependenciesnya bisa cek di bawah
https://openwrt.org/docs/guide-user/additional-software/imagebuilder
Cara Menggunakan Image Builder openwrt
Untuk cara menggunakan openwrt image builder, kita download image buildernya dari https://downloads.openwrt.org/. Download image builder sesuaikan versi firmware & target cpu arsitektur router yang akan kita buat imagenya.
Jika sudah terdownload, tinggal extract saja, setelah di extract file didalamnya seperti ini.
- bin: hasil dari image builder nantinya akan ada disini
- files: untuk memasukkan file kedalam firmware bisa taruh disini
- packages: jika mempunyai package ipk yang akan dimasukkan ke image
- repositories.conf: jika menggunakan custom feeds seperti My Opkg Repo bisa di masukkan
- .config: mengedit confignya, untuk memperbesar ukuran firmware/rootfs bisa disetting disini
Untuk build image openwrt dengan image builder menggunakan perintah seperti ini. Untuk input command harus menggunakan user non-root, tidak boleh menggunakan sudo atau user root.
make image \ PROFILE="profile-name" \ PACKAGES="pkg1 pkg2 pkg3 -pkg4 -pkg5 -pkg6" \ FILES="files"
Yang perlu diperhatikan yaitu PROFILE, PACKAGES & FILES
PROFILE
Untuk profile bisa di cek dari buildroot menggunakan command make info
neo@neo-Ubuntu:~/openwrt-imagebuilder-21.02.2-rockchip-armv8.Linux-x86_64$ make info Current Target: "rockchip/armv8" Current Revision: "r16495-bf0c965af0" Default Packages: base-files ca-bundle dropbear fstools libc libgcc libustream-wolfssl logd mtd netifd opkg uci uclient-fetch urandom-seed urngd busybox procd uboot-envtools partx-utils e2fsprogs mkf2fs kmod-gpio-button-hotplug dnsmasq firewall ip6tables iptables kmod-ipt-offload odhcp6c odhcpd-ipv6only ppp ppp-mod-pppoe Available Profiles: friendlyarm_nanopi-r2s: FriendlyARM NanoPi R2S Packages: kmod-usb-net-rtl8152 hasImageMetadata: 1 SupportedDevices: friendlyarm,nanopi-r2s pine64_rockpro64: Pine64 RockPro64 Packages: hasImageMetadata: 1 SupportedDevices: pine64,rockpro64 radxa_rock-pi-4: Radxa ROCK Pi 4 Packages: hasImageMetadata: 1 SupportedDevices: radxa,rockpi4
Karena kita akan membuat image untuk Nanopi R2S maka profilnya diisi seperti ini
make image \ PROFILE="friendlyarm_nanopi-r2s" \ PACKAGES="pkg1 pkg2 pkg3 -pkg4 -pkg5 -pkg6" \ FILES="files"
PACKAGES
Package yang akan kita include kedalam firmware tinggal kita tuliskan saja, jika kita ingin tidak perlu dimasukkan maka tinggal kasih tanda minus “-” didepan packagenya.
Contoh disini firmware akan include luci, luci-theme-material, dnsmasq-full sedangkan dnsmasq tidak akan dimasukkan ke firmware.
make image \ PROFILE="friendlyarm_nanopi-r2s" \ PACKAGES="luci luci-theme-material dnsmasq-full -dnsmasq" \ FILES="files"
Jika kalian mempunyai custom file ipk yang akan dimasukkan ke dalam firmware maka tinggal di taruh di folder packages.
FILES
Untuk file yang akan kita include di firmware maka bisa taruh di folder files, defaultnya tidak ada folder ini, tinggal kita buat saja.
Jika ingin membuat script yang berjalan pada saat router boot bisa taruh di scriptnya di files/etc/uci-defaults/
Contoh file simpelnya, untuk mengatur time zone ke Jakarta, tinggal buat file dengan nama 99-init-settings.sh
, jika script diakhiri exit 0, maka script hanya akan dijalankan saat pertama boot lalu akan dihapus.
#!/bin/sh # Set Timezone to Asia/Jakarta uci set system.@system[0].timezone='WIB-7' uci set system.@system[0].zonename='Asia/Jakarta' uci commit exit 0
Untuk memasukkan file lain misalnya seperti openclash core, maka file core bisa ditaruh di files/etc/openclash/core
Build Openwrt Image Nanopi R2S
Disini aku akan build openwrt 21.02.2 FriendlyArm Nanopi R2S. Pertama langsung download image buildernya dari https://downloads.openwrt.org/
di targets rockchip 21.02.2 , disini aku menggunakan terminal, bisa pula download dan extract seperti biasa seperti file explorer.
1. Download Imagebuilder Rockchip 21.02.2.
wget --no-check-certificate https://downloads.openwrt.org/releases/21.02.2/targets/rockchip/armv8/openwrt-imagebuilder-21.02.2-rockchip-armv8.Linux-x86_64.tar.xz
2. Setelah kita download openwrt image builder, tinggal extract image buildernya.
tar -J -x -f openwrt-imagebuilder-*.tar.xz
3. Masuk ke buildroot image builder.
cd openwrt-imagebuilder-*/
4. Pertama-tama kita cek terlebih dahulu profile yang ada di image builder tersebut menggunakan perintah:
make info
neo@neo-Ubuntu:~/openwrt-imagebuilder-21.02.2-rockchip-armv8.Linux-x86_64$ make info Current Target: "rockchip/armv8" Current Revision: "r16495-bf0c965af0" Default Packages: base-files ca-bundle dropbear fstools libc libgcc libustream-wolfssl logd mtd netifd opkg uci uclient-fetch urandom-seed urngd busybox procd uboot-envtools partx-utils e2fsprogs mkf2fs kmod-gpio-button-hotplug dnsmasq firewall ip6tables iptables kmod-ipt-offload odhcp6c odhcpd-ipv6only ppp ppp-mod-pppoe Available Profiles: friendlyarm_nanopi-r2s: FriendlyARM NanoPi R2S Packages: kmod-usb-net-rtl8152 hasImageMetadata: 1 SupportedDevices: friendlyarm,nanopi-r2s pine64_rockpro64: Pine64 RockPro64 Packages: hasImageMetadata: 1 SupportedDevices: pine64,rockpro64 radxa_rock-pi-4: Radxa ROCK Pi 4 Packages: hasImageMetadata: 1 SupportedDevices: radxa,rockpi4
5. Karena kita akan build firmware openwrt Nanopi R2S maka profile yang akan kita pakai yaitu friendlyarm_nanopi-r2s
6. Jika kalian ingin memasukkan custom file ipk seperti passwall, openclash, modemband, modeminfo dll, maka bisa taruh file ipknya di folder packages.
Karena aku disini custom ipk mau menggunakan custom feeds My Opkg Repo, maka tinggal edit file repositories.conf
, tambahkan My Opkg Repo dan juga disable option check_signature.
## Place your custom repositories here, they must match the architecture and version. # src/gz %n https://downloads.openwrt.org/releases/21.02.2 # src custom file:///usr/src/openwrt/bin/rockchip/packages ## Remote package repositories src/gz openwrt_core https://downloads.openwrt.org/releases/21.02.2/targets/rockchip/armv8/packages src/gz openwrt_base https://downloads.openwrt.org/releases/21.02.2/packages/aarch64_generic/base src/gz openwrt_luci https://downloads.openwrt.org/releases/21.02.2/packages/aarch64_generic/luci src/gz openwrt_packages https://downloads.openwrt.org/releases/21.02.2/packages/aarch64_generic/packages src/gz openwrt_routing https://downloads.openwrt.org/releases/21.02.2/packages/aarch64_generic/routing src/gz openwrt_telephony https://downloads.openwrt.org/releases/21.02.2/packages/aarch64_generic/telephony src/gz custom_generic https://raw.githubusercontent.com/lrdrdn/my-opkg-repo/main/generic src/gz custom_arch https://raw.githubusercontent.com/lrdrdn/my-opkg-repo/main/aarch64_generic ## This is the local package repository, do not remove! src imagebuilder file:packages # option check_signature
7. Untuk mengubah size partisi bisa edit file .config
, disini partisi kernel aku ubah 128MB dan ROOTFS 2048MB
# Image Options # CONFIG_TARGET_KERNEL_PARTSIZE=128 CONFIG_TARGET_ROOTFS_PARTSIZE=2048 # end of Target Images
8. Untuk yang ingin menambahkan script tinggal buat folder uci-default.
mkdir -p files/etc/uci-defaults
9. Buat file 99-init-settings.sh
dengan ini dibawah dan taruh di folder uci-defaults. Contoh script seperti berikut, silakan buat custom script kalian sendiri.
#!/bin/sh # Disable opkg signature check sed -i 's/option check_signature/# option check_signature/g' /etc/opkg.conf # Set Timezone to Asia/Jakarta uci set system.@system[0].timezone='WIB-7' uci set system.@system[0].zonename='Asia/Jakarta' uci commit # Set argon as default theme uci set argon.@global[0].mode='light' uci set luci.main.mediaurlbase='/luci-static/argon' uci commit # Disable /etc/config/xmm-modem uci set xmm-modem.@xmm-modem[0].enable='0' uci commit # Remove watchcat default config uci delete watchcat.@watchcat[0] uci commit # add cron job for modem rakitan echo '#auto renew ip lease for modem rakitan' >> /etc/crontabs/root echo '#30 3 * * * echo AT+CFUN=4 | atinout - /dev/ttyUSB1 - && ifdown mm && sleep 3 && ifup mm' >> /etc/crontabs/root echo '#30 3 * * * ifdown fibocom && sleep 3 && ifup fibocom' >> /etc/crontabs/root /etc/init.d/cron restart # remove huawei me909s usb-modeswitch sed -i -e '/12d1:15c1/,+5d' /etc/usb-mode.json # remove dw5821e usb-modeswitch sed -i -e '/413c:81d7/,+5d' /etc/usb-mode.json exit 0
10. Build firmware Nanopi R2S dengan mage builder.
Ketika semuanya sudah siap maka tinggal buat build imagenya. Packagenya tinggal sesuaikan dengan kebutuhan kalian. Disini aku build dengan dukungan driver modem, dan beberapa tools seperti passwall dan openclash.
make image PROFILE="friendlyarm_nanopi-r2s" \ PACKAGES="-dnsmasq dnsmasq-full cgi-io libiwinfo libiwinfo-data libiwinfo-lua liblua \ liblucihttp liblucihttp-lua libubus-lua lua luci luci-app-firewall luci-app-opkg \ luci-base luci-lib-base luci-lib-ip luci-lib-jsonc luci-lib-nixio luci-mod-admin-full \ luci-mod-network luci-mod-status luci-mod-system luci-proto-ipv6 luci-proto-ppp luci-ssl \ luci-theme-bootstrap px5g-wolfssl rpcd rpcd-mod-file rpcd-mod-iwinfo rpcd-mod-luci \ rpcd-mod-rrdns uhttpd uhttpd-mod-ubus usbutils usb-storage htop \ kmod-usb-net kmod-usb-net-huawei-cdc-ncm kmod-usb-net-cdc-ether kmod-usb-acm kmod-usb-net-qmi-wwan \ kmod-usb-net-rndis kmod-usb-serial-qualcomm kmod-usb-net-sierrawireless kmod-usb-ohci kmod-usb-serial \ kmod-nls-utf8 kmod-usb-serial-option kmod-usb-serial-sierrawireless kmod-usb-uhci kmod-usb2 \ kmod-usb-net-ipheth kmod-usb-net-cdc-mbim usbmuxd libusbmuxd-utils libimobiledevice-utils \ mbim-utils qmi-utils uqmi umbim modemmanager luci-proto-modemmanager luci-proto-3g luci-proto-ncm \ luci-proto-ncm usb-modeswitch nano picocom minicom wget luci-app-mmconfig luci-app-modeminfo \ xmm-modem kmod-usb-net-asix kmod-usb-net-asix-ax88179 kmod-usb-net-rtl8150 kmod-usb-net-rtl8152 \ luci-app-3ginfo luci-app-sms-tool ca-bundle ca-certificates luci-compat curl luci-app-watchcat \ luci-app-poweroff luci-app-ramfree luci-app-internet-detector atinout luci-app-openclash \ luci-app-passwall luci-app-ssr-plus luci-app-argon-config luci-app-diskman luci-theme-argon \ v2ray-example v2ray-extra v2ray-geoip v2ray-geosite v2ray-ctl v2ray-plugin xray-plugin" \ FILES="files"
11. Setelah selesai build image hasilnya ada di folder bin/target
12. Flash image ke micro SD dan pasangkan ke Nanopi R2S.
Begitulah cara membuat firmware openwrt menggunakan openwrt image builder. Untuk router STB Amlogic seperti HG680P, B860H, A95X menggunakan targer armvirt dan ada step tambahan yaitu harus di repack menggunakan ophub.
Semoga tutorial ini mudah pahami untuk semua orang. Silakan bagikan postingan ini jika bermanfaat.
cara ubah fw snapshot(ophub amlogic) ke stable openwrt.org juga mbah
tinggal buat pake image builder aja, pilih armvirt. tinggal repack dengan ophub tools
mbah,request cara repack fw buat stb dong
Sebenarnya mudah, tinggal buat rootfs pake image builder. repacknya pake github ophub, mungkin minggu depan aku coba buat tutorialnya.
siap dtggu mbah,
sekalian klu misal pakai kernel builder nya mbah @sibondt
Ditunggu tutorial buat stb hg bang
Tq.
Nunggu openwrt 22.03.0-rc1 release dulu baru buat tutornya, biar sekalian bisa install openclash terbaru yg butuh kmod-inet-diag
Mbah 22.03.0 rc1 ud release nih,
Tutor dong mbah cara build fw buat stb s905x
iya ini juga udah build. tinggal nulis tutorialnya ntar malem. semoga besok udah selesai
Siap,,, siap mantau web mbah
🙏🙏
sudah dibuat, bisa cek di post terbaru
oke mbah, nyimak dan slalu stay di mari 👍🙏🙏
king bolehkah saya jadikan firmware dari sini > https://github.com/morrownr/88x2bu-20210702 kedalam openwrt saya. bagaimana ya
Mbah 22.03.0 rc1 ud release nih,
Tutor dong mbah cara build fw buat stb s905x
kalo buat opi r1 plus lts gimana mas?
gapunya device, compile sendiri aja pakai source lede/immortal
Bang
Kalau untuk Transvision Xstream 2nd bisa ?
kurang tau