I’m unable to use prplWare in x86/64 QEMU, because the kernel crashes as soon as mcastd kernel module is loaded: detected buffer overflow in strncpy Kernel BUG at fortify_panic+0x13/0x20 [verbose debug info unavailable] invalid opcode: 0000 [#1] SMP NOPTI CPU: 3 PID: 3300 Comm: tr181-mcastd Tainted: G O 6.6.86 #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.17.0-5.fc42 04/01/2014 RIP: 0010:fortify_panic+0x13/0x20 Code: 84 00 00 00 00 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 55 48 89 fe 48 c7 c7 60 0c 20 82 48 89 e5 e8 7d 68 c8 ff <0f> 0b 90 66 2e 0f 1f 84 00 00 00 00 00 90 90 90 90 90 90 90 90 90 RSP: 0018:ffffc9000506bb78 EFLAGS: 00010246 RAX: 0000000000000023 RBX: ffff88800749401c RCX: 0000000000000000 RDX: 0000000000000000 RSI: ffff88801f59d5c0 RDI: ffff88801f59d5c0 RBP: ffffc9000506bb78 R08: 0000000000000000 R09: ffffc9000506ba00 R10: 0000000000000003 R11: ffffffff824b2f88 R12: 0000000000000031 R13: 0000000000001000 R14: ffffffffa08c2e20 R15: ffff888005a14780 FS: 00007f9eed74cb28(0000) GS:ffff88801f580000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f9eed4ec000 CR3: 0000000007afe003 CR4: 0000000000370ee0 Call Trace: <TASK> ? show_regs+0x60/0x70 ? die+0x32/0x90 ? do_trap+0xf7/0x100 ? do_error_trap+0x6c/0x90 ? fortify_panic+0x13/0x20 ? exc_invalid_op+0x4f/0x70 ? fortify_panic+0x13/0x20 ? asm_exc_invalid_op+0x1b/0x20 ? mcastdnl_register+0x60/0xa0 [mcastd_core] ? fortify_panic+0x13/0x20 ? fortify_panic+0x13/0x20 kvar_string_set+0x96/0xa0 [mcastd_core] mcastd_snooper_cleanup+0xea4/0x14d0 [mcastd_core] mcastd_function_unregister+0x190/0x1c0 [mcastd_core] mcastdnl_register+0x88/0xa0 [mcastd_core] netlink_rcv_skb+0x55/0x100 mcastdnl_multicast+0xe3/0x100 [mcastd_core] netlink_unicast+0x212/0x2f0 netlink_sendmsg+0x22c/0x480 __sys_sendto+0x1af/0x1c0 ? __vm_munmap+0xa4/0x110 __x64_sys_sendto+0x1f/0x30 x64_sys_call+0x15bf/0x1c90 do_syscall_64+0x3d/0x90 entry_SYSCALL_64_after_hwframe+0x78/0xe2 RIP: 0033:0x7f9eed72a10b Code: c3 8b 07 85 c0 75 24 49 89 fb 48 89 f0 48 89 d7 48 89 ce 4c 89 c2 4d 89 ca 4c 8b 44 24 08 4c 8b 4c 24 10 4c 89 5c 24 08 0f 05 <c3> e9 de c7 ff ff 41 54 55 48 89 f5 be 00 88 08 00 53 48 81 ec a0 RSP: 002b:00007ffc5a358f08 EFLAGS: 00000246 ORIG_RAX: 000000000000002c RAX: ffffffffffffffda RBX: 000000000000002c RCX: 00007f9eed72a10b RDX: 0000000000000114 RSI: 00007f9eed582320 RDI: 0000000000000007 RBP: 00007f9eed74cb28 R08: 00007ffc5a358f6c R09: 000000000000000c R10: 0000000000000000 R11: 0000000000000246 R12: 00007ffc5a358f6c R13: 00007f9eed57d120 R14: 00007f9eed57e0f8 R15: 00007f9eed57d17d </TASK> Modules linked in: mcastd_routing(O) mcastd_proxy(O) mcastd_core(O) pppoe ppp_async i915 video pppox ppp_generic nf_flow_table_inet mac80211_hwsim(O) mac80211(O) ipt_REJECT ebtable_nat ebtable_filter ebtable_broute cfg80211(O) xt_time xt_tcpudp xt_tcpmss xt_statistic xt_state xt_recent xt_quota xt_pkttype xt_owner xt_nat xt_multiport xt_mark xt_mac xt_limit xt_length xt_hl xt_helper xt_ecn xt_dscp xt_conntrack xt_connmark xt_connlimit xt_connbytes xt_comment xt_cgroup xt_addrtype xt_TCPMSS xt_REDIRECT xt_NFQUEUE xt_MASQUERADE xt_LOG xt_HL xt_DSCP xt_CT xt_CLASSIFY wmi ts_fsm ts_bm slhc sch_prio nft_reject_ipv6 nft_reject_ipv4 nft_reject_inet nft_reject nft_redir nft_quota nft_numgen nft_nat nft_masq nft_log nft_limit nft_hash nft_flow_offload nft_ct nft_chain_nat nfnetlink_queue nf_tables nf_reject_ipv4 nf_nat_tftp nf_nat_snmp_basic nf_nat_sip nf_nat_pptp nf_nat_irc nf_nat_h323 nf_nat_ftp nf_nat_amanda nf_log_syslog nf_flow_table nf_conntrack_tftp nf_conntrack_snmp nf_conntrack_sip nf_conntrack_sane nf_conntrack_pptp nf_conntrack_netbios_ns nf_conntrack_irc nf_conntrack_h323 nf_conntrack_ftp nf_conntrack_broadcast ts_kmp nf_conntrack_amanda nf_conncount iptable_raw iptable_nat iptable_mangle iptable_filter ipt_ECN ip6table_raw ip_tables forcedeth ebtables ebt_vlan ebt_stp ebt_snat ebt_redirect ebt_pkttype ebt_mark_m ebt_mark ebt_limit ebt_ip6 ebt_ip ebt_dnat ebt_arpreply ebt_arp ebt_among ebt_802_3 e1000e drm_display_helper drm_buddy crc_ccitt compat(O) cls_flower bnx2 asn1_decoder act_vlan sch_teql sch_sfq sch_multiq sch_gred sch_fq sch_ets sch_codel em_text em_nbyte em_meta em_cmp act_skbmod act_simple act_pedit act_csum libcrc32c sch_tbf sch_ingress sch_htb sch_hfsc em_u32 cls_u32 cls_route cls_matchall cls_fw cls_flow cls_basic act_skbedit act_mirred act_gact evdev i2c_dev xt_set ip_set_list_set ip_set_hash_netportnet ip_set_hash_netport ip_set_hash_netnet ip_set_hash_netiface ip_set_hash_net ip_set_hash_mac ip_set_hash_ipportnet ip_set_hash_ipportip ip_set_hash_ipport ip_set_hash_ipmark ip_set_hash_ipmac ip_set_hash_ip ip_set_bitmap_port ip_set_bitmap_ipmac ip_set_bitmap_ip ip_set nfnetlink dwmac_intel ip6table_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 ip6t_NPT ip6t_rt ip6t_mh ip6t_ipv6header ip6t_hbh ip6t_frag ip6t_eui64 ip6t_ah ip6table_mangle ip6table_filter ip6_tables ip6t_REJECT x_tables nf_reject_ipv6 dwmac_generic stmmac_platform stmmac ixgbe e1000 amd_xgbe ifb mdio ip6_tunnel tunnel6 veth nls_utf8 pcs_xpcs ena sha512_ssse3 sha512_generic seqiv sha3_generic jitterentropy_rng drbg md5 hmac geniv rng cmac nls_iso8859_1 nls_cp437 r8169 mdio_devres gpio_keys igb igc vfat fat button_hotplug(O) tg3 realtek phylink mii libphy ---[ end trace 0000000000000000 ]--- RIP: 0010:fortify_panic+0x13/0x20 Code: 84 00 00 00 00 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 55 48 89 fe 48 c7 c7 60 0c 20 82 48 89 e5 e8 7d 68 c8 ff <0f> 0b 90 66 2e 0f 1f 84 00 00 00 00 00 90 90 90 90 90 90 90 90 90 RSP: 0018:ffffc9000506bb78 EFLAGS: 00010246 RAX: 0000000000000023 RBX: ffff88800749401c RCX: 0000000000000000 RDX: 0000000000000000 RSI: ffff88801f59d5c0 RDI: ffff88801f59d5c0 RBP: ffffc9000506bb78 R08: 0000000000000000 R09: ffffc9000506ba00 R10: 0000000000000003 R11: ffffffff824b2f88 R12: 0000000000000031 R13: 0000000000001000 R14: ffffffffa08c2e20 R15: ffff888005a14780 FS: 00007f9eed74cb28(0000) GS:ffff88801f580000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f9eed4ec000 CR3: 0000000007afe003 CR4: 0000000000370ee0 Kernel panic - not syncing: Fatal exception Kernel Offset: disabled Rebooting in 3 seconds.. So lets disabled this feature until the issue is fixed. References: PPW-771 Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/merge_requests/1229#note_2560400819 Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org> |
||
|---|---|---|
| .devcontainer/ci-env | ||
| .github | ||
| .gitlab | ||
| .testbed | ||
| .vscode | ||
| config | ||
| include | ||
| LICENSES | ||
| package | ||
| profiles | ||
| scripts | ||
| target | ||
| toolchain | ||
| tools | ||
| .gitattributes | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| BSDmakefile | ||
| Config.in | ||
| COPYING | ||
| feeds.conf.default | ||
| Makefile | ||
| README.md | ||
| rules.mk | ||
OpenWrt Project is a Linux operating system targeting embedded devices. Instead of trying to create a single, static firmware, OpenWrt provides a fully writable filesystem with package management. This frees you from the application selection and configuration provided by the vendor and allows you to customize the device through the use of packages to suit any application. For developers, OpenWrt is the framework to build an application without having to build a complete firmware around it; for users this means the ability for full customization, to use the device in ways never envisioned.
Sunshine!
Download
Built firmware images are available for many architectures and come with a package selection to be used as WiFi home router. To quickly find a factory image usable to migrate from a vendor stock firmware to OpenWrt, try the Firmware Selector.
If your device is supported, please follow the Info link to see install instructions or consult the support resources listed below.
An advanced user may require additional or specific package. (Toolchain, SDK, ...) For everything else than simple firmware download, try the wiki download page:
Development
To build your own firmware you need a GNU/Linux, BSD or macOS system (case sensitive filesystem required). Cygwin is unsupported because of the lack of a case sensitive file system.
Requirements
You need the following tools to compile OpenWrt, the package names vary between distributions. A complete list with distribution specific packages is found in the Build System Setup documentation.
binutils bzip2 diff find flex gawk gcc-6+ getopt grep install libc-dev libz-dev
make4.1+ perl python3.7+ rsync subversion unzip which
Quickstart
-
Run
./scripts/feeds update -ato obtain all the latest package definitions defined in feeds.conf / feeds.conf.default -
Run
./scripts/feeds install -ato install symlinks for all obtained packages into package/feeds/ -
Run
make menuconfigto select your preferred configuration for the toolchain, target system & firmware packages. -
Run
maketo build your firmware. This will download all sources, build the cross-compile toolchain and then cross-compile the GNU/Linux kernel & all chosen applications for your target system.
Related Repositories
The main repository uses multiple sub-repositories to manage packages of
different categories. All packages are installed via the OpenWrt package
manager called opkg. If you're looking to develop the web interface or port
packages to OpenWrt, please find the fitting repository below.
-
LuCI Web Interface: Modern and modular interface to control the device via a web browser.
-
OpenWrt Packages: Community repository of ported packages.
-
OpenWrt Routing: Packages specifically focused on (mesh) routing.
-
OpenWrt Video: Packages specifically focused on display servers and clients (Xorg and Wayland).
Support Information
For a list of supported devices see the OpenWrt Hardware Database
Documentation
Support Community
- Forum: For usage, projects, discussions and hardware advise.
- Support Chat: Channel
#openwrton oftc.net.
Developer Community
- Bug Reports: Report bugs in OpenWrt
- Dev Mailing List: Send patches
- Dev Chat: Channel
#openwrt-develon oftc.net.
License
OpenWrt is licensed under GPL-2.0
