iwconfig wlan0 txpower 30mW - ไม่ทำงาน


12

ฉันต้องการเพิ่มพลังของอแด็ปเตอร์ไร้สาย แต่เมื่อฉันเข้า

sudo iwconfig wlan0 txpower 30mW

ในเทอร์มินัลแล้วตรวจสอบกับiwconfigฉันเห็นว่า txpower ยังคงเป็นสิ่งที่มันเคยเป็นมาก่อนที่ฉันจะลองเปลี่ยนมัน

ตัวควบคุมเครือข่ายของฉันคือ:

02:00.0 Network controller: Intel Corporation Wireless 7260 (rev 73)

และนี่คือifconfigผลลัพธ์หากช่วยได้:

wlan0   
Link encap:Ethernet  HWaddr 80:19:34:f5:39:08  
inet addr:192.168.1.129  Bcast:192.168.1.255  Mask:255.255.255.0
inet6 addr: fe80::8219:34ff:fef5:3908/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:4474 errors:0 dropped:0 overruns:0 frame:0
TX packets:3726 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000 
RX bytes:2361924 (2.3 MB)  TX bytes:520175 (520.1 KB)

อย่างไรก็ตามเช่นเดียวกับข้อความด้านข้างsudo iwconfig wlan0 power offใช้งานได้เพื่อwlan0ปิดการจัดการพลังงานของ


sudo iwlist txpower wlan0 พูดว่าอะไร?
j0h

คำตอบ:


14

@ wie5Ooma ถูกต้องเกี่ยวกับการละเมิดกฎหมาย แต่เกี่ยวกับการตอบคำถาม เป็นไป:

คำเตือนการลบข้อ จำกัด ทั้งหมดเป็นสิ่งผิดกฎหมายในสหรัฐอเมริกา นี่เป็นเพียงเหตุผลทางการศึกษาและหากคุณเลือกที่จะใช้และฝ่าฝืนกฎหมายนั่นเป็นทางเลือกของคุณไม่ใช่ของฉัน โปรดใช้ความระมัดระวังในการดำเนินการนี้ นี่มีวัตถุประสงค์เพื่อการศึกษาเท่านั้น!

  • ก่อนอื่นเราจะต้องใช้แพ็คเกจ:

    • python-m2crypto
    • libgcrypt11
    • libgcrypt11-dev
    • libnl-dev
  • วิธีตรวจสอบว่าติดตั้งแล้วหรือไม่:

    dpkg -s python-m2crypto libgcrypt11 libgcrypt11-dev libnl-dev
    
  • หากไม่ต้องการติดตั้ง:

    apt-get install python-m2crypto libgcrypt11 libgcrypt11-dev libnl-dev
    
  • ตอนนี้คุณจะต้องใช้ฐานข้อมูลกฎระเบียบไร้สาย CRDA และwireless-regdbเครื่องมือในการสร้างฐานข้อมูลที่อ่านโดย CRDA เพื่อมอบโดเมนข้อบังคับให้กับเคอร์เนล Linux

  • นำทางไปยังโฟลเดอร์ดาวน์โหลดและแตกไฟล์

ตอนนี้ที่นี่เป็นส่วนที่น่าสนใจ นี่คือที่ที่เราจะต้องเปลี่ยนกฎ เปลี่ยนไดเรกทอรีของคุณไปยังโฟลเดอร์และในนั้นคุณจะพบไฟล์ที่เรียกว่าwireless-regdb db.txtนี่คือไฟล์ที่เราจะแก้ไข ลองมาดูกันสิ:

more db.txt

มากกว่าของ db.txt

  • ทีนี้ลองมาดูบางสิ่งที่นี่ ดูสิ่งที่ฉันขีดเส้นใต้ข้างต้น ก่อนอื่นมาสังเกตสิ่งแรก ( country 00) ซึ่งเป็นโดเมนการกำกับดูแลโลกและสิ่งนี้จะถูกนำไปใช้ก่อนสิ่งอื่นใด ดังนั้นเมื่อคุณเปิดระบบ BackTrack ของโดเมนโลกถูกนำไปใช้กับคุณก่อนและจากนั้นคุณสามารถเปลี่ยนโดเมนการกำกับดูแลจากที่นั่นไปยังประเทศอื่น ๆ เช่นประเทศAM

สิ่งที่สองที่ฉันขีดเส้นใต้ซึ่งสามารถไปได้สูงสุด20 dBmสิ่งที่สามที่ฉันขีดเส้นใต้บนความถี่ 2.4 กิกะเฮิร์ตซ์ หากคุณต้องการเปลี่ยนระดับความสูงที่สามารถไปได้นั่นคือจำนวนที่คุณต้องการเปลี่ยน

  • ตัวอย่างเช่นลองเปลี่ยนกฎของโบลิเวีย *

    nano db.txt เลื่อนลงจนกว่าคุณจะพบประเทศ BO ป้อนคำอธิบายรูปภาพที่นี่

  • ดูสิ่งที่ฉันเน้นไว้ นี่คือหมายเลขที่เราต้องการเปลี่ยน

หากบัตรของคุณสามารถไปได้ถึง2,000 เมกะวัตต์แล้วคุณจะเปลี่ยนหมายเลขที่33ซึ่งย่อมาจาก33 dBmซึ่งจะอยู่ที่ประมาณ2,000 เมกะวัตต์ หมายเลขที่คุณกำลังเปลี่ยนอยู่ในหน่วยเดซิเบล

ฉันไม่แน่ใจเกี่ยวกับการ์ดของคุณการ์ดไร้สายบางรุ่นเช่นAWUS036NHAอาจติดอยู่ในประเทศหนึ่งและไม่สามารถเปลี่ยนจากประเทศนั้นได้ ในกรณีดังกล่าวค้นหาว่าประเทศของคุณเชื่อว่าบัตรของคุณอยู่ในและเปลี่ยนแปลงการกำหนดค่าของประเทศนั้น

ความเข้าใจเดซิเบลอย่างรวดเร็ว:

ทุกๆ10เดซิเบลคือการเพิ่มพลังงาน10Xเริ่มจาก1 dBmเท่ากับ1mW ... 10 dBmเท่ากับ10 mW , 20 dBmเท่ากับ100 mW , 30 dBmเท่ากับ 1,000 mWและอื่น ๆ ความเข้าใจเดซิเบลอย่างรวดเร็ว:

ทุกๆ 10 เดซิเบลคือการเพิ่มพลังงาน 10X เริ่มจาก 1 dBm เท่ากับ 1mW ... 10 dBm เท่ากับ 10 mW, 20 dBm เท่ากับ 100 mW, 30 dBm เท่ากับ 1,000 mW และอื่น ๆ ทุกๆ 3 เดซิเบลจะเพิ่มขึ้นเป็นสองเท่าของกำลังก่อนดังนั้น 30 dBm คือ 1,000 mW หากเราเพิ่ม 3 dBm จากนั้นเราสามารถเพิ่มกำลังเป็นสองเท่าโดยที่ 33 dBm นั้นเท่ากับ 2,000 mW ทุกๆ3เดซิเบลจะเพิ่มขึ้นเป็นสองเท่า

อำนาจก่อนดังนั้นวันที่ 30 dBmเป็น1,000 เมกะวัตต์ถ้าเราเพิ่ม3 dBmแล้วเราสามารถดับเบิลอำนาจเช่นว่า33 dBmเป็นเรื่องเกี่ยวกับเท่ากับ2,000 เมกะวัตต์

ตอนนี้ให้ความสนใจ

ป้อนคำอธิบายรูปภาพที่นี่

แจ้งให้ทราบตอนนี้ผมเปลี่ยนหมายเลขที่33 เมื่อเราดำเนินการเสร็จสิ้นที่นี่เมื่อฉันเปลี่ยนโดเมนกฎระเบียบของฉันไปBOฉันสามารถตั้งค่าของฉันtxpowerไป33

  • ตอนนี้บันทึกการเปลี่ยนแปลงเมื่อคุณทำโดยการกดครั้งแรกCtrl+ Xแล้วและสุดท้ายYEnter

ตอนนี้คุณต้องสลับไฟล์ข้อบังคับเดิมของเรากับไฟล์ที่คุณดาวน์โหลด ในขณะที่ยังคงอยู่ในไดเรกทอรีเพียงป้อนคำสั่งwireless-regdbmake

คุณจะสังเกตเห็นว่าคุณมีไฟล์ใหม่บางไฟล์ในไดเรกทอรีนั้น ดีจัง. regulatory.binไฟล์ของคุณในไดเรกทอรีนี้จะต้องถูกแทนที่ด้วยไฟล์เก่า

การสำรวจครั้งแรกที่จริงregulatory.dbสถานที่ตั้งของ

cd /usr/lib/crda

และขอทำสำเนาสำรองของเก่าในกรณี (แนะนำ)

mv regulatory.bin regulatoryOLD.bin

ตอนนี้ขอนำมาใหม่ กลับไปที่ไดเรกทอรีของคุณจากกฎระเบียบใหม่ของเราและลองคัดลอกมันมาและตรวจสอบมันที่นั่น

cd {path to your new regulatory.bin}
cp regulatory.bin /usr/lib/crda/regulatory.bin
cd /usr/lib/crda
ls

การตรวจสอบ ตอนนี้เรามีข้อบังคับใหม่ของเรา แต่มันยังไม่ถูกต้อง กลับไปที่ไดเรกทอรี wireless-regdb และคุณจะสังเกตเห็นว่าคุณมีไฟล์บางไฟล์ที่มีนามสกุลเป็น. pem คัดลอกไฟล์ทั้งหมดที่ลงท้ายด้วย a .pemลงในcrdaไดเรกทอรีที่คุณดาวน์โหลดpubkeysมา เหล่านี้เป็นไฟล์ที่ CRDA จะใช้เพื่อตรวจสอบว่าregulatory.binถูกต้อง

cd ~/Desktop/wireless-regdb-2013.10.11
cp root.key.pub.pem ~/Desktop/crda-1.1.3/pubkeys/root.key.pub.pem
cp linville.key.pub.pem
~/Desktop/crda-1.1.3/pubkeys/linville.key.pub.pem

และยืนยัน:

cd ~/Desktop/crda-1.1.3/pubkeys
ls

สุดท้ายคุณก็จะเห็นไดเร็กตอรี่ที่คุณจะกลับไปที่ไดเรคทอรี่ที่ดาวน์โหลดcrdaและติดตั้งลูกสุนัขตัวนี้

cd ..
make
make install

คุณควรเห็นอะไรแบบนั้น ป้อนคำอธิบายรูปภาพที่นี่

หากเป็นเช่นนั้นให้รีบูตเครื่อง: sudo reboot

หลังจากรีบูต:

iw reg set BO
iwconfig wlan0 txpower 33

3
john_s มีปัญหาด้านเสถียรภาพของการ์ด Intel และไม่ใช่ปัญหาเกี่ยวกับพลังงานไร้สาย (ปัญหา XY meta.stackexchange.com/questions/66377/what-is-the-xy-problem ) อย่างไรก็ตามคำตอบของคุณคือคำตอบที่ดีที่สุดสำหรับ คำถามมันใช้ได้กับเสาอากาศกำลังสูงเท่านั้น แต่คำตอบของคุณสมควรได้รับความโปรดปราน
Helio

@ j0h กล่าวไว้ด้านล่าง: เคล็ดลับของโบลิเวียควรใช้งานได้ถ้าฐานข้อมูลมีค่าน้อยกว่า 30 หากคุณดูการตั้งค่าโบลิเวียระดับ จำกัด คือ 30 หากคุณต้องการเปลี่ยนเป็นโบลิเวียและเพิ่มขึ้นคุณต้องแก้ไขและคอมไพล์ใหม่ ฐานข้อมูลที่มีการตั้งค่าภูมิภาค ทำไมคุณไม่ใช้ US ฉันไม่รู้มีฐานข้อมูลสหรัฐอเมริกาอยู่ ลองสิ่งนี้: null-byte.wonderhowto.com/how-to/…คุณจะต้องค้นหาแหล่งที่แท้จริงสำหรับ CRDA ฉันพบหน้านี้ใน man page สำหรับwireless.wiki.kernel.org/en/developers/Regulatory#crda
Helio

1
ไฟล์กฎข้อบังคับอยู่ที่ไหน บน Ubuntu 16.04 ฉันไม่มีโฟลเดอร์ / usr / lib / crda ฉันพบมันในโฟลเดอร์ / lib / crda
wordoforthewise

ไม่เคยสร้างคีย์ linville.key.pub.pem สำหรับฉัน
wordoforthewise

ฉันพยายามลด txpower (เพื่อทดสอบ) และยังคงไม่เปลี่ยนแปลงเป็น 20dBm ความคิดใด ๆ
chefarov

6

คุณกำลังพยายามเพิ่มพลังในการส่งอย่างไรก็ตามมันอาจมีข้อ จำกัด ทั้งทางกฎหมายและทางเทคนิค การส่งสัญญาณแบบไร้สายปฏิบัติตามกฎ CRDA ซึ่งทำให้เป็นรายการที่อธิบายว่าอนุญาตให้ใช้กำลังส่งสูงสุดเท่าใด อุปกรณ์ / ระบบปฏิบัติการของคุณมีรหัสประเทศจึงรู้ว่าต้องทำอย่างไร หากไม่มีรหัสประเทศมันจะทำงานที่ค่าทั่วไปที่ปลอดภัยต่อการใช้งานเสมอ

มีมากกว่านั้น: การ์ดบางใบมีข้อ จำกัด ทางเทคนิค พวกเขามีรหัสประเทศแบบคงที่ที่สร้างขึ้นและถูกสร้างขึ้นเพื่อให้พวกเขาไม่สามารถใช้พลังงานที่สูงขึ้นไม่ว่าคุณจะพยายามทำอะไร

ฉันมีการ์ดไร้สายของ Intel เช่นกันและกำลัง Tx อยู่ที่ 16 สิ่งที่ฉันพยายามเพิ่ม


สวัสดี wie5Ooma ที่สำคัญฉันไม่ต้องการละเมิดกฎหมายและฉันไม่ได้ตั้งเป้าหมายไว้ที่ 30wM อย่างไรก็ตามภายใต้ Windows ความแรงของสัญญาณที่แสดงและความเร็วสักหลาดของการเชื่อมต่อนั้นดีขึ้นและมีเสถียรภาพมากขึ้น มีคำแนะนำอื่น ๆ เกี่ยวกับสิ่งที่ฉันจะลองได้ไหม
johann_ka

ตอนนี้คุณเปลี่ยนคำถามเล็กน้อยไปสู่ขอบเขตของความคิดเห็น หากไม่มีหลักฐานเชิงตัวเลขฉันไม่สามารถบอกได้ว่ามีความแตกต่างระหว่าง Windows และ Linux หรือไม่เพราะฉันไม่ได้ใช้ Windows ฉันต้องคิดอีกเล็กน้อยเกี่ยวกับเรื่องนี้ ในหมายเหตุด้านข้าง: คุณรู้หรือไม่ว่าคุณกำลังเขียน wM แทนที่จะเป็น mW? ดังนั้นมันควรจะเป็น M ตัวเล็กก่อนตามด้วยตัวพิมพ์ใหญ่การสะกดคำ mW ซึ่งหมายถึงมิลลิมิลลิวัตต์
wie5Ooma

2

อาจเป็นเพราะคุณอยู่ในประเทศที่มีกฎหมาย จำกัด คุณสามารถเพิ่มอำนาจเกินขีด จำกัด ในท้องถิ่นของคุณ แต่ตอนนี้มีแนวโน้มที่จะทำผิดกฎหมาย นี้เป็นเพียงสำหรับเสาอากาศกำลังสูง

วิธีที่ 1:

เปิดเทอร์มินัลแล้วคัดลอกวางคำสั่งต่อไปนี้:

ifconfig wlan0 down
iw reg set BO
iwconfig wlan0 txpower 30
ifconfig wlan0 up

ถ้าวิธีการด้านบนให้ข้อผิดพลาดต่อไปให้ไปที่วิธีที่ 2

Error for wireless request "Set Tx Power" (8B26) :
SET failed on device wlan0 ; Invalid argument.

วิธีที่ 2:

เปิดเทอร์มินัลแล้วคัดลอกวางคำสั่งต่อไปนี้:

ifconfig wlan0 down
iw reg set BO
iwconfig wlan0 channel 13
iwconfig wlan0 txpower 30
ifconfig wlan0 up

แหล่งที่มา: หน้านี้


1
โอ้ฉันหมายถึง sudo iwconfig wlan0 txpower 30mW แม้ว่าฉันจะทำ sudo iwconfig wlan0 txpower 20mW แทนที่จะเป็น 30mW มันก็ไม่ทำงาน
johann_ka

คุณจะรู้ได้อย่างไรว่ามันไม่ทำงาน
Helio

@ Helio: ขอบคุณที่กลับมา สำหรับทั้งสองวิธีขั้นตอนที่ 2 sudo iw reg set B0สร้างข้อความแสดงข้อผิดพลาดต่อไปนี้: ไม่ใช่ ISO / IEC 3166-1 alpha2 ที่ถูกต้องรายการพิเศษที่ไม่สามารถใช้ได้ alpha2: 00 โดเมนกฎระเบียบโลก
johann_ka

@ Helio: ฉันคิดว่าฉันจะได้เห็นว่ามันทำงานได้โดยเพียงแค่ป้อน iwconfig และตรวจสอบหมายเลขที่อยู่เบื้องหลัง Tx-Power = จำนวนที่นี่ dBm
johann_ka

1
มันเป็นBOกับ O เช่น BOlivia ไม่ใช่ B-zero
Helio

2

พิมพ์คำสั่งเหล่านี้พวกเขาจะเปิดใช้งาน AGG TX และสามารถปรับปรุงประสิทธิภาพของเครือข่ายไร้สาย N ได้อย่างมาก รายงานข้อผิดพลาดนี้บอกว่าประสิทธิภาพลดลง 85% โดยไม่ต้องใช้11n_disable=8

sudo rmmod iwlmvm
sudo rmmod iwlwifi
sudo modprobe iwlwifi 11n_disable=8

ตอนนี้ให้ลองใช้คอมพิวเตอร์ของคุณตามปกติ หากสัญญาณยังคงต่ำโซลูชันนี้อาจไม่ใช่วิธีแก้ปัญหาสำหรับกรณีของคุณ ในกรณีนี้เพียงรีสตาร์ทคอมพิวเตอร์เพื่อย้อนกลับการเปลี่ยนแปลงที่คุณทำ หากเป็นปกติและรวดเร็วให้ทำอย่างถาวรโดยพิมพ์บรรทัดต่อไปนี้ในเทอร์มินัล:

sudo gedit /etc/modprobe.d/iwlwifi-disable11n.conf

ไฟล์จะถูกเปิด (อาจไม่มีอยู่ก่อนหน้านี้) ในตอนท้ายของไฟล์วางบรรทัดต่อไปนี้แล้วบันทึก:

options iwlwifi 11n_disable=8

หลังจากบันทึกเพียงแค่ออกและรีบูต


หากวิธีนี้ใช้ไม่ได้ให้แทนที่11n_disable=8ด้วย11n_disable=1และทำซ้ำขั้นตอน


สวัสดี Helio ขอบคุณสำหรับสิ่งนี้ เมื่อเข้าสู่sudo rmmod iwlwifiฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้: rmmod: ERROR: Module iwlwifi is in use by: iwlmvmฉันจะยกเลิกการใช้งาน iwlmvm ได้หรือไม่
johann_ka

ฉันไม่เห็นว่าคำตอบนี้เกี่ยวข้องกับคำถามต้นฉบับหรือไม่ เคล็ดลับ '11n_disable' นี้ไม่ปรับปรุงความแรงของสัญญาณและในเครือข่าย 11n ทำให้การเชื่อมต่อมีประสิทธิภาพลดลงเนื่องจากคุณปิดการใช้งานความสามารถของ N-speed ที่นี่จึง จำกัด ความเร็วไว้ที่ 11g เนื่องจากเป็น 54Mb / s แทน 150 หรือขึ้นอยู่กับอุปกรณ์ของคุณ / s
wie5Ooma

@ wie5Ooma คุณมีเหตุผล แต่มันจะช่วยเพิ่มความมั่นคงในการเชื่อมต่อและเกี่ยวกับความเร็วที่ผมคิดว่าจะไม่เป็นความสูญเสียที่ยิ่งใหญ่ แต่เป็น john_s ซึ่งจะมีคำพูดสุดท้าย ;-)
เฮลิโอ

@john_s ใช่คุณสามารถลบออกได้iwlmvmถ้ามันถูกโหลด ใช้คำสั่งนี้: sudo rmmod iwlmvm. ฉันอัพเดทโพสต์แล้ว
Helio

1
เคล็ดลับของโบลิเวียควรทำงานเมื่อ db น้อยกว่า 30 หากคุณดูการตั้งค่าโบลิเวีย จำกัด คือ 30 หากคุณต้องการเปลี่ยนเป็นโบลิเวียและสูงขึ้นคุณจะต้องแก้ไขและคอมไพล์ฐานข้อมูลที่มี การตั้งค่าภูมิภาค ทำไมคุณไม่ใช้ US ฉันไม่รู้มีฐานข้อมูลสหรัฐอเมริกาอยู่ ลองสิ่งนี้: null-byte.wonderhowto.com/how-to/…คุณจะต้องค้นหาแหล่งที่แท้จริงสำหรับ CRDA ฉันพบหน้านี้ใน man page สำหรับ crda: wireless.wiki.kernel.org/en/developers/Regulatory#crda
j0h

1

สวัสดีฉันใช้ Kali linux 2 โดยส่วนตัวกับการ์ดเครือข่าย ALPHA awus036nh และฉันใช้วิธีที่ 1 เพื่อเปลี่ยนพลังงานของการ์ด tx

สำหรับคนที่มีปัญหากับชุดBO reg ให้ลองใช้ชุดGY reg แทน มันทำงานได้อย่างสมบูรณ์สำหรับฉันในขณะที่มันล้มเหลวด้วย BO หวังว่ามันจะช่วย!

ifconfig wlan1 down
iw reg set GY
iwconfig wlan1 txpower 30
ifconfig wlan1 up

0

สำหรับ Ubuntu 16.10, CRDA /lib/crda/อยู่ภายใต้ เพื่อรวบรวม 'crda' ใหม่ให้ทำ:

sudo su
cp -r /lib/crda /usr/lib/crda
cd /usr/lib/crda
mv regulatory.bin regulatory.bin.bak
cd {path to your new regulatory.bin}
cp regulatory.bin /usr/lib/crda/regulatory.bin

จากนั้นย้ายไฟล์ * .pem ที่สร้างไปยังไดเรกทอรี crda ที่คุณดาวน์โหลด:

cd {path to downloads folder}/wireless-regdv-YYYY.MM.DD
cp {path to your new regulatory.bin}/*.pem pubkeys/
make
make install

ตอนนี้คัดลอกโฟลเดอร์ crda กลับจาก '/ usr / lib / crda' ไปยังพา ธ เริ่มต้นใน Ubuntu 16:

cp -r /usr/lib/crda /lib/ 

sudo rebootiw reg set {country-code}และ

ฉันใช้วิธีนี้เพื่อตั้งค่า wifi ให้ใช้ช่วงความถี่และระดับพลังงานตามกฎหมายที่จัดสรรให้กับบริการวิทยุสมัครเล่นในประเทศของฉัน สิ่งนี้จำกัด เฉพาะผู้ประกอบการวิทยุสมัครเล่นที่ได้รับอนุญาตเท่านั้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.