From patchwork Mon Nov 11 18:09:42 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Ivan Baktsheev X-Patchwork-Id: 1193048 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.openwrt.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="R70MPbRu"; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="uGsxdbw3"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47Bf6k22rXz9sPf for ; Tue, 12 Nov 2019 05:10:05 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Subject:To:Date:Message-Id:Mime-Version :From:Reply-To:Cc:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=YSQU+pr7Famd2GEFfHDQFJZ+sA5ba7h/XKirS0QEsKw=; b=R70MPbRuov4dkq fk5Rz4vR8stOLGanR9fAd02Xb8vFpdqDvgO+jsFPjMhxrzoyE52s23cDmHCfray7CSnwmM5La3SsZ irIe92tvVGX42S7bOcgJRtf+GI42RYvgR3+nUAUKG5v3oZ/20AbgHzdYkjiGgVaSLjLe+Wgsn1c10 IGHhdA47dPI4SrrU1Hvqy+U/slrg6QYMDSdGenbnhAze5yt8r5r2/0IGcMS5xrpMfyY5NN8DJ/L35 1RH0nGw6j/0vq0InitLVNn4MVEfjqT+LwqZLS+OSNGdriTiMIVe7+3icReGstOkAhfUGRMfMRkTOj aWT3DLsAJT0BgvxStcWw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1iUE8N-0006Lo-MG; Mon, 11 Nov 2019 18:09:51 +0000 Received: from mail-lj1-x22d.google.com ([2a00:1450:4864:20::22d]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1iUE8K-0006L4-BL for openwrt-devel@lists.openwrt.org; Mon, 11 Nov 2019 18:09:49 +0000 Received: by mail-lj1-x22d.google.com with SMTP id r7so14840972ljg.2 for ; Mon, 11 Nov 2019 10:09:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:content-transfer-encoding:mime-version:subject:message-id:date :to; bh=na34BySuKHfxr/u/zQcEfJnLigL4YaIzNRxG/58uhVU=; b=uGsxdbw3BKYBDhmRHVoRMHARUshjQdCsBJVuOcAVXlVnpAm/ABnB1ZtJCn6UPY0tnI 8aaH3YyvhraKpA9QwILWYWB7J+zKFaORzj0/alZo3PHiZ/BPbosffiqK9Irt5bqGPRQ3 QPGScV1vdy0bCMrGcPjNPr6O4QC5MSl0yEeDT2FbZGLGFU5QUD+mGz1gMR+/DBNop0F6 gzX9zOI+hPgyd3XHphCGqvplK/z9x23pjGq6roDcppJJg8YkqA/tJujRKZyHA7sXTnA0 H5NkJh1TI94rVqsY3dy4QKsYPh0iLrWBbZOyoFe3/eaJSqFOEtRQhncnx2eVt0qQgPwT a8Fw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:content-transfer-encoding:mime-version :subject:message-id:date:to; bh=na34BySuKHfxr/u/zQcEfJnLigL4YaIzNRxG/58uhVU=; b=fMHDF1vX/H2D/9oN+heF2Whm/AYCNIht1aHoJAM3UsOlR3rxxmvqVRtrzGpScZq7Mk bZXHtc54RL+A5BJ40vVWyZn4XBiQrWjtey9BirMQjxux5nrVYBjfAyR3LbSVSvEK0cE4 VC+1GbaUeXuzQilmUgsUMfQ1JoCODbhQGOABLuF4oeYfYj6620bAzU2xlo4ErWjKJAs7 v5txOk8DrrjSUVosOJM8EB858vGrcjmtQtfl6KumvRXV6yTU7JILlK3AV6vx6bvW/DCX vyjMqJa8ExQ1b4AqyI/WluyZLNWkeq7DjKyYzzPOCjPycYOg1U4BswTcvj9omv35PFmk J9Xg== X-Gm-Message-State: APjAAAXILvgGkEgeFlQX3lGqcOW4CkDZObxOvFTmohXTTUA4Ipmlgicc vrRwP2PWUu7yoAPmU6KEF+k497Cio38= X-Google-Smtp-Source: APXvYqxOPwBDbE7w/v18IZUpltRcYi2RidNcuriAQrHGx5t7CbIkMgLQjSeoULHhYAjW4Z/REaRyOQ== X-Received: by 2002:a2e:9a41:: with SMTP id k1mr16495393ljj.11.1573495785625; Mon, 11 Nov 2019 10:09:45 -0800 (PST) Received: from terminarch.lan (dotandthing.static.corbina.ru. [95.31.10.209]) by smtp.gmail.com with ESMTPSA id s11sm6920542ljo.42.2019.11.11.10.09.44 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 11 Nov 2019 10:09:44 -0800 (PST) From: Ivan Baktsheev X-Google-Original-From: Ivan Baktsheev Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\)) Message-Id: <9146E54F-C4CD-4E4E-AFA0-180B36AFDE59@gmail.com> Date: Mon, 11 Nov 2019 21:09:42 +0300 To: openwrt-devel@lists.openwrt.org X-Mailer: Apple Mail (2.3445.9.1) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191111_100948_408984_5123AD41 X-CRM114-Status: UNSURE ( 8.80 ) X-CRM114-Notice: Please train this message. X-Spam-Score: -0.2 (/) X-Spam-Report: SpamAssassin version 3.4.2 on bombadil.infradead.org summary: Content analysis details: (-0.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2a00:1450:4864:20:0:0:0:22d listed in] [list.dnswl.org] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (dot.and.thing[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain Subject: [OpenWrt-Devel] wlan factory defaults X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "openwrt-devel" Errors-To: openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org Hi, I want to add new device, but as of now I can upload firmware wirelessly and then I need to connect using wired connection, because in stock OpenWrt image wireless is disabled. For my router (and probably many others) default WiFi SSID stored in factory partition and it’s quite easy to extract. Unfortunately, wireless setup takes place in different time than wired/gpio/leds setup from /etc/board.d and defaults are hardcoded in /lib/wifi/mac80211.sh Currently, I have /etc/board.d/04_factory_defaults, which extracts factory defaults for root password and WiFi. WiFi settings written into /etc/factory_80211, which then read at /lib/wifi/mac80211.sh I would like to integrate this into OpenWrt, please take a look at full example at https://gist.github.com/apla/a81cad0a1dc9fedfeff19941116da369 and share your thoughts. Diff for /lib/wifi/mac80211.sh: diff --git a/package/kernel/mac80211/files/lib/wifi/mac80211.sh b/package/kernel/mac80211/files/lib/wifi/mac80211.sh index be9c537..3c88c81 100644 --- a/package/kernel/mac80211/files/lib/wifi/mac80211.sh +++ b/package/kernel/mac80211/files/lib/wifi/mac80211.sh @@ -1,10 +1,12 @@ #!/bin/sh . /lib/netifd/mac80211.sh append DRIVERS "mac80211" +. /etc/factory_80211 + lookup_phy() { [ -n "$phy" ] && { [ -d /sys/class/ieee80211/$phy ] && return } @@ -95,25 +97,49 @@ detect_mac80211() { dev_id="set wireless.radio${devidx}.path='$path'" else dev_id="set wireless.radio${devidx}.macaddr=$(cat /sys/class/ieee80211/${dev}/macaddress)" fi + eval radio_i_disabled=\$radio${devidx}_disabled + radio_i_disabled=${radio_i_disabled:-${radio_disabled:-1}} + eval radio_i_country=\$radio${devidx}_country + radio_i_country=${radio_i_country:-$radio_country} + if [ ! -z "$radio_i_country" ] ; then + uci_radio_country="set wireless.radio${devidx}.country=${radio_i_country}" + else + uci_radio_country= + fi + + eval wlan_i_ssid=\$wlan${devidx}_ssid + wlan_i_ssid=${wlan_i_ssid:-${wlan_ssid:-OpenWrt}} + eval wlan_i_encryption=\$wlan${devidx}_encryption + wlan_i_encryption=${wlan_i_encryption:-${wlan_encryption:-none}} + eval wlan_i_key=\$wlan${devidx}_key + wlan_i_key=${wlan_i_key:-$wlan_key} + if [ ! -z "$wlan_i_key" ] ; then + uci_wlan_key="set wireless.default_radio${devidx}.key=${wlan_i_key}" + else + uci_wlan_key= + fi + uci -q batch <<-EOF set wireless.radio${devidx}=wifi-device set wireless.radio${devidx}.type=mac80211 set wireless.radio${devidx}.channel=${channel} set wireless.radio${devidx}.hwmode=11${mode_band} ${dev_id} ${ht_capab} - set wireless.radio${devidx}.disabled=1 + set wireless.radio${devidx}.disabled=${radio_i_disabled} + ${uci_radio_country} set wireless.default_radio${devidx}=wifi-iface set wireless.default_radio${devidx}.device=radio${devidx} set wireless.default_radio${devidx}.network=lan set wireless.default_radio${devidx}.mode=ap - set wireless.default_radio${devidx}.ssid=OpenWrt - set wireless.default_radio${devidx}.encryption=none + set wireless.default_radio${devidx}.ssid=${wlan_i_ssid} + set wireless.default_radio${devidx}.encryption=${wlan_i_encryption} + ${uci_wlan_key} EOF uci -q commit wireless devidx=$(($devidx + 1)) done