Difference between revisions of "Using NoN-Samsung USB WiFi dongles with TV"
m (→Hardware Way) |
(→Compiling Custom Kernel Modules that supports e2p for Hardware Hack) |
||
Line 49: | Line 49: | ||
e2p process might require you needed to compile new wifi from source drivers if your driver doesn't support e2p. | e2p process might require you needed to compile new wifi from source drivers if your driver doesn't support e2p. | ||
− | For Ubuntu Linux | + | |
+ | '''For Ubuntu/Debian Linux''' | ||
sudo apt-get update | sudo apt-get update | ||
sudo apt-get upgrade | sudo apt-get upgrade | ||
− | sudo apt-get install build- | + | sudo apt-get install build-essential |
− | sudo apt-get install linux-headers- $(uname -r) | + | sudo apt-get install linux-headers-$(uname -r) |
− | 1. | + | |
− | 2. Open | + | '''Compiling your own driver''' |
+ | |||
+ | 1. Go to http://www.ralinktech.com and download the ''RT2870USB(RT2870/RT2770)-Driver for Linux'' (site is very slow) | ||
+ | |||
+ | 2. Open '''/os/linux/config.mk''' and change (this step is '''not''' neccessary if you only want to patch the stick and do not install the driver): | ||
# Support ATE function | # Support ATE function | ||
HAS_ATE=y | HAS_ATE=y | ||
Line 64: | Line 69: | ||
# Support Native WpaSupplicant for Network Maganger | # Support Native WpaSupplicant for Network Maganger | ||
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y | HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y | ||
− | 3. Open | + | 3. Open '''/os/linux/usb_main_dev.c''', add this code: '''MODULE_LICENSE("GPL");''' (if it is not already there. This step is '''not''' neccessary for the driver listed above). |
So it should look like: | So it should look like: | ||
MODULE_AUTHOR("Paul Lin <paul_lin@ralinktech.com>"); | MODULE_AUTHOR("Paul Lin <paul_lin@ralinktech.com>"); | ||
Line 75: | Line 80: | ||
#endif // CONFIG_STA_SUPPORT // | #endif // CONFIG_STA_SUPPORT // | ||
4. Compiling driver: | 4. Compiling driver: | ||
− | + | make | |
− | sudo make install | + | # installation is not neccessary for patching |
+ | # sudo make install | ||
+ | # | ||
+ | 5. Insert the stick and ensure, that you unload every drivermodule that was loaded automatically. Otherwise you cannot load your custom driver | ||
sudo rmmod rt2870sta | sudo rmmod rt2870sta | ||
sudo rmmod rt2800usb | sudo rmmod rt2800usb | ||
sudo rmmod rt2x00usb | sudo rmmod rt2x00usb | ||
− | sudo rmmod rt2800lib[ | + | sudo rmmod rt2800lib |
− | + | sudo rmmod rt2x00lib | |
+ | sudo rmmod [all other ralinktech modules] | ||
+ | Check with "lsmod | grep rt" if all ralinktech-related modules are unloaded. Maybe you must also shutdown the wlan interface (ifconfig wlan0 down) if you get a "device busy" error. | ||
sudo rmmod [module-if-exists] | sudo rmmod [module-if-exists] | ||
6. Load your custom driver | 6. Load your custom driver | ||
− | insmod | + | sudo insmod os/linux/rt3070sta.ko |
+ | # bring the interface up (this is important, otherwise iwpriv quits with an error) | ||
+ | sudo ifconfig ra0 up | ||
7. Insert your wifi stick and look supported ioctl table like that | 7. Insert your wifi stick and look supported ioctl table like that | ||
− | + | user@localhost:~# sudo iwpriv ra0 | |
ra0 Available private ioctls : | ra0 Available private ioctls : | ||
set (8BE2) : set 1024 char & get 0 | set (8BE2) : set 1024 char & get 0 | ||
Line 106: | Line 118: | ||
9. change VID&PID with the commands. | 9. change VID&PID with the commands. | ||
− | + | user@localhost:~# sudo iwpriv ra0 e2p 208=04E8 | |
ra0 e2p:0208=0x04E8 | ra0 e2p:0208=0x04E8 | ||
− | + | user@localhost:~# sudo iwpriv ra0 e2p 20A=2018 | |
ra0 e2p:020A=0x2018 | ra0 e2p:020A=0x2018 | ||
10.Verify changed values | 10.Verify changed values | ||
− | + | user@localhost:~# sudo iwpriv ra0 e2p 0208 | |
ra0 e2p: | ra0 e2p: | ||
[0x0208]:0x04E8 | [0x0208]:0x04E8 | ||
− | + | user@localhost:~# sudo iwpriv ra0 e2p 020a | |
ra0 e2p: | ra0 e2p: | ||
[0x020A]:0x2018 | [0x020A]:0x2018 | ||
+ | |||
+ | Now the stick should be recognized by your TV | ||
=Software Way= | =Software Way= |
Revision as of 22:22, 22 May 2012
It's possible to you your WiFi dongle with Samsung TV's.
Samsung WiFi Dongles uses RaLink rt73, rt2570sta, rt2870sta chips. But their drivers in the TV doesn't include other brands ID's, thats why you cannot use other RaLink chipped USB dongles. Because TV thinks they are incompatible. So you can unload older drivers and install native drivers that we pre-compiled for you. Then your TV works with any WiFi USB dongle that uses RaLink chip compatible with rt73, rt2500, rt2870...
Now we have another alternative way (hardware way) that you don't needed to change anything on your TV!
Contents
Hardware Way
This is preferred way because it's compatible with B and C series.
Samsung TV's kernel module has just Samsung VID/PID values. Because of this, even if your hardware has supported chip (like rt2870sta) does not work on Samsung TVs because driver cannot recognize that PID and VID values and can't choose driver for that device. So there is two way to make your WiFi dongle works on TV.
- Changing your dongles PID/VID value (this requires your dongle has already supported chipset in it) or
- Installing new drivers (kernel module) for your WiFi dongles (this requires to install some programs to TV, which is more complicated).
This hardware hack works via changing USB WiFi dongles Vendor and Product Identifier Numbers. Overriding original values to Samsung Vendor Identifier Number (0x04E8) and Samsung WIS09ABGN dongle product Identifier Number (0x2018) makes dongle recognized by TV.
All you need is a dirt cheap USB WiFi dongle that has compatible chipset (rt) and allows eeprom PID/VID changing. Than you could disguise your dongle as original Samsung dongle camouflage with some commands at linux.
Those dongles will make same job as price premium Samsung's original dongles!
Tested dongle models are:
- It's reported that Edimax EW-7718Un dongle from this site has rt2870 chip inside and working! Just for £8.99 with Free delivery!!!
!!!DWA-125 lots of errors reported please check forum!!!
- Dlink DWA-140 UK - USA - AU (Notice: It's confirmed that HW Rev B1 recognized by C series without change. Also problem reported with HW Rev B2, looks like stick does not flash eeprom values properly.)
!!!Rev B2 flashes ok however wrong chipset will not work!!!
- Dlink DWA-160 UK - USA - AU ( Amazon.com has sale on this item! )
Before hacking/changing eeprom values, just plug that dongle into your TV. Some revisions might be working without any change.
Also you have better to save original PID/VID values to somewhere to reverting your dongles back later.
You can check dongle PID/VID numbers via using lsusb command
For hacking dongles, all you need is plug the dongle to your linux computer and issue this commands.
# iwpriv ra0 e2p 208=04E8 # iwpriv ra0 e2p 20A=2018
After you can look pid/vid values with lsusb command if they are changed or not... So your TV will think those dongles as original Samsung one because of changed PID and VID values.
Notice: Not all rt2870sta chipped dongles compatible with this hack and you could broke your dongle with this commands. At least one "Edimax-uN7711" broken with this hack...
Also keep in mind that, some USB dongles with same Model number might have different revisions and could have different chips in it or could incompatible with this hack. If you faced with one, please report us.
Compiling Custom Kernel Modules that supports e2p for Hardware Hack
e2p process might require you needed to compile new wifi from source drivers if your driver doesn't support e2p.
For Ubuntu/Debian Linux
sudo apt-get update sudo apt-get upgrade sudo apt-get install build-essential sudo apt-get install linux-headers-$(uname -r)
Compiling your own driver
1. Go to http://www.ralinktech.com and download the RT2870USB(RT2870/RT2770)-Driver for Linux (site is very slow)
2. Open /os/linux/config.mk and change (this step is not neccessary if you only want to patch the stick and do not install the driver):
# Support ATE function HAS_ATE=y # Support Wpa_Supplicant HAS_WPA_SUPPLICANT=y # Support Native WpaSupplicant for Network Maganger HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y
3. Open /os/linux/usb_main_dev.c, add this code: MODULE_LICENSE("GPL"); (if it is not already there. This step is not neccessary for the driver listed above). So it should look like:
MODULE_AUTHOR("Paul Lin <paul_lin@ralinktech.com>"); MODULE_DESCRIPTION("RT2870 Wireless Lan Linux Driver"); MODULE_LICENSE("GPL"); #ifdef CONFIG_STA_SUPPORT #ifdef MODULE_VERSION MODULE_VERSION(STA_DRIVER_VERSION); #endif #endif // CONFIG_STA_SUPPORT //
4. Compiling driver:
make # installation is not neccessary for patching # sudo make install #
5. Insert the stick and ensure, that you unload every drivermodule that was loaded automatically. Otherwise you cannot load your custom driver
sudo rmmod rt2870sta sudo rmmod rt2800usb sudo rmmod rt2x00usb sudo rmmod rt2800lib sudo rmmod rt2x00lib sudo rmmod [all other ralinktech modules]
Check with "lsmod | grep rt" if all ralinktech-related modules are unloaded. Maybe you must also shutdown the wlan interface (ifconfig wlan0 down) if you get a "device busy" error.
sudo rmmod [module-if-exists]
6. Load your custom driver
sudo insmod os/linux/rt3070sta.ko # bring the interface up (this is important, otherwise iwpriv quits with an error) sudo ifconfig ra0 up
7. Insert your wifi stick and look supported ioctl table like that
user@localhost:~# sudo iwpriv ra0 ra0 Available private ioctls : set (8BE2) : set 1024 char & get 0 connStatus (0004) : set 1024 char & get 2047 char driverVer (0005) : set 1024 char & get 2047 char bainfo (0006) : set 1024 char & get 2047 char descinfo (0007) : set 1024 char & get 2047 char radio_off (000A) : set 1024 char & get 2047 char radio_on (000B) : set 1024 char & get 2047 char show (0015) : set 1024 char & get 2047 char adhocEntry (0016) : set 1024 char & get 2047 char bbp (8BE3) : set 2047 char & get 2047 char mac (8BE5) : set 1024 char & get 1024 char rf (8BF3) : set 2047 char & get 2047 char e2p (8BE7) : set 1024 char & get 1024 char stat (8BE9) : set 0 & get 2047 char get_site_survey (8BED) : set 0 & get 1024 char
8. Watch lsmod to current PID/VID. Take note that values
9. change VID&PID with the commands.
user@localhost:~# sudo iwpriv ra0 e2p 208=04E8 ra0 e2p:0208=0x04E8 user@localhost:~# sudo iwpriv ra0 e2p 20A=2018 ra0 e2p:020A=0x2018
10.Verify changed values
user@localhost:~# sudo iwpriv ra0 e2p 0208 ra0 e2p: [0x0208]:0x04E8 user@localhost:~# sudo iwpriv ra0 e2p 020a ra0 e2p: [0x020A]:0x2018
Now the stick should be recognized by your TV
Software Way
Instructions
For B series only. Same approach will work on C series (with C series kernel modules, but except rt73 based dongles...)
- Open Telnet/Console Connection to your TV via SamyGO Telnet Enabler if it's not already enabled by Hacked firmware or you can use console approach too.
- Download the pre-compiled drivers from SamyGO WiFi Modules here
- Extract and copy required ko modules to usb, then TV's internal memory like "/mtd_rwarea/modules" (or you can leave them on USB...)
md /mtd_rwarea/modules cp /dtv/usb/sda/SamyGO/rt73.ko /mtd_rwarea/modules
Than load the modules to TV's kernel.
Basic Way
rmmod rt73 # remove old kernel module sleep 10 # wait some for detection insmod /mtd_rwarea/modules/rt73.ko # install new module, you can also replace with rt73 or rt2570sta.ko or rt2870sta
Advanced Way
If commands at top doesn't work properly, you can try this way.
killall -QUIT udhcpc # stops udhcpc ifconfig ra11n0 down # shut downs nw interface rmmod rt2870sta # removes original module rmmod rt73 # removes original module insmod /mtd_rwarea/modules/rt2870sta.ko # load new module, you can also replace with rt73 or rt2570sta.ko ifconfig ra11n0 up # fire up nw interface udhcpc -i ra11n0 -t 12 -T 5 -b # start udhcpc
After your TV recognizes USB WiFi dongle that you have. You can also use another chipped WiFi dongles too. But definitely you needed to find linux drivers compatible with 2.6.17/18 and needed to compile them via Toolchain provided by SamyGO Open Embedded.
You can check output by:
#dmesg | grep rtu <7>rtusb_disconnect: unregister_netdev(), dev->name=ra11n0! <4><--- rtusb 2870 1.002(1.4.0.0) exit <4>rtusb 2870 1.002(1.4.0.0) init ---> <4>rtusb 0.994 init ====> <4><=== rtusb 0.994 exit <7>rtusb_disconnect: unregister_netdev(), dev->name=ra11n0! <4><--- rtusb 2870 1.002(1.4.0.0) exit <4>rtusb 2870 1.002(1.4.0.0) init ---> <4>rtusb 0.994 init ====> <4><=== rtusb 0.994 exit <4>rtusb 0.994 [SamyGO] init ====> <4><=== rtusb 0.994 [SamyGO] exit <7>rtusb_disconnect: unregister_netdev(), dev->name=ra11n0! <4><--- rtusb 2870 1.002(1.4.0.0) exit <4>rtusb 2870 1.002(1.4.0.0) [SamyGO] init ---> <4>rtusb 0.994 [SamyGO] init ====>
Debugging
With creating file on dtv, triggers debug with USB connection. touch /dtv/debug_on
USB WiFi dongles that uses RaLink chip/driver
You can use any of rt73,rt2570 and rt2870 chipped dongles. Some of them could generate problems on connecting WPA/WEP protected networks.
Dongles that tested on forum
Edimax EW-7318USg Edimax EW-7711UAN (rt2870sta) <please fill here if your USB dongle that works with ralink driver, need specified model number>
Dongles that we insist working on this TV
Informations extracted from our compiled drirvers (this is the preferred version)
I search on internet and found this 2 lists:
uses rt2850.ko http://wiki.debian.org/rt2870sta uses rt73.ko http://wiki.debian.org/WiFi/rt73
also those that uses rt2870sta.ko:
USB: 0471:200F Philips 802.11n Wireless Adapter USB: 04E8:2018 Samsung Electronics Co., Ltd (Device name unknown) USB: 050D:8053 Belkin Components (Device name unknown) USB: 050D:805C Belkin Components (Device name unknown) USB: 0586:3416 ZyXEL Communications Corp. NWD-210N 802.11b/g/n-draft wireless adapter USB: 0789:0162 Logitec Corp. (Device name unknown) USB: 0789:0163 Logitec Corp. (Device name unknown) USB: 0789:0164 Logitec Corp. (Device name unknown) USB: 07AA:002F Corega K.K. CG-WLUSB2GNL USB: 07AA:003C Corega K.K. (Device name unknown) USB: 07AA:003F Corega K.K. (Device name unknown) USB: 07B8:2770 D-Link Corp. (Device name unknown) USB: 07B8:2870 D-Link Corp. (Device name unknown) USB: 07B8:3070 D-Link Corp. (Device name unknown) USB: 07B8:3071 D-Link Corp. (Device name unknown) USB: 07D1:3C09 D-Link System DWA-140 802.11n Adapter [ralink rt2870] USB: 07D1:3C11 D-Link System (Device name unknown) USB: 083A:6618 Accton Technology Corp. 802.11n Wireless Adapter USB: 083A:7522 Accton Technology Corp. 802.11N Wireless Adapter USB: 083A:A618 Accton Technology Corp. SMC EZ Connect N Draft 11n Wireless Adapter USB: 083A:B522 Accton Technology Corp. EZ Connect N Draft 11n Wireless USB2.0 Adapter USB: 0B05:1731 ASUSTek Computer, Inc. ASUS 802.11n Network Adapter USB: 0B05:1732 ASUSTek Computer, Inc. 802.11n Network Adapter USB: 0B05:1742 ASUSTek Computer, Inc. 802.11n Network Adapter USB: 0CDE:0022 Z-Com 802.11b/g/n Wireless Network Adapter USB: 0CDE:0025 Z-Com (Device name unknown) USB: 0DF6:0017 Sitecom Europe B.V. WL-182 USB: 0DF6:002B Sitecom Europe B.V. (Device name unknown) USB: 0DF6:002C Sitecom Europe B.V. (Device name unknown) USB: 0DF6:002D Sitecom Europe B.V. (Device name unknown) USB: 0DF6:0039 Sitecom Europe B.V. (Device name unknown) USB: 0DF6:003F Sitecom Europe B.V. (Device name unknown) USB: 0E66:0001 Hawking (Device name unknown) USB: 0E66:0003 Hawking (Device name unknown) USB: 1044:800B Chu Yuen Enterprise Co., Ltd GN-WB30N 802.11n WLAN Card USB: 129B:1828 CyberTAN Technology (Device name unknown) USB: 13D3:3247 IMC Networks 802.11 n/g/b Wireless LAN Adapter USB: 1482:3C09 (Vendor name unknown) (Device name unknown) USB: 148F:2770 Ralink Technology, Corp. (Device name unknown) USB: 148F:2870 Ralink Technology, Corp. (Device name unknown) USB: 148F:3070 Ralink Technology, Corp. (Device name unknown) USB: 14B2:3C06 Ralink Technology, Corp. (Device name unknown) USB: 14B2:3C07 Ralink Technology, Corp. (Device name unknown) USB: 14B2:3C09 Ralink Technology, Corp. (Device name unknown) USB: 14B2:3C12 Ralink Technology, Corp. (Device name unknown) USB: 14B2:3C23 Ralink Technology, Corp. (Device name unknown) USB: 14B2:3C25 Ralink Technology, Corp. (Device name unknown) USB: 14B2:3C27 Ralink Technology, Corp. rt2870 802.11n WLAN USB: 14B2:3C28 Ralink Technology, Corp. (Device name unknown) USB: 157E:300E TRENDnet (Device name unknown) USB: 15A9:0006 (Vendor name unknown) (Device name unknown) USB: 15C5:0008 (Vendor name unknown) (Device name unknown) USB: 1737:0071 Linksys (Device name unknown) USB: 1740:9701 Senao (Device name unknown) USB: 1740:9702 Senao (Device name unknown) USB: 18C5:0012 AMIT (Device name unknown) USB: 2019:AB25 PLANEX (Device name unknown) USB: 2019:ED06 PLANEX (Device name unknown) USB: 5A57:0280 Zinwell (Device name unknown) USB: 5A57:0282 Zinwell (Device name unknown) USB: 7392:7711 (Vendor name unknown) (Device name unknown) USB: 7392:7717 (Vendor name unknown) (Device name unknown)
and for rt73.ko
USB: 0411:00F4 MelCo., Inc. (Device name unknown) USB: 050D:7050 Belkin Components F5D7050 ver 1000 WiFi USB: 050D:705A Belkin Components F5D7050A Wireless Adapter USB: 050D:905B Belkin Components F5D9050 ver 3 Wireless Adapter USB: 050D:905C Belkin Components Wireless G Plus MIMO Network Adapter USB: 06F8:E010 Guillemot Corp. HWGUSB2-54-LB USB: 06F8:E020 Guillemot Corp. HWGUSB2-54V2-AP USB: 0769:31F3 Surecom Technology Corp. RT2573 USB: 07AA:002E Corega K.K. (Device name unknown) USB: 07B8:B21D D-Link Corp. RT2573 USB: 07D1:3C03 D-Link System DWL-G122 802.11g Adapter [ralink rt73] USB: 07D1:3C04 D-Link System WUA-1340 USB: 07D1:3C06 D-Link System (Device name unknown) USB: 07D1:3C07 D-Link System Wireless G DWA-110 Adapter USB: 0B05:1723 ASUSTek Computer, Inc. WL-167G v2 802.11g Adapter [ralink] USB: 0B05:1724 ASUSTek Computer, Inc. RT2573 USB: 0DB0:6874 Micro Star International RT2573 USB: 0DB0:6877 Micro Star International RT2573 USB: 0DB0:A861 Micro Star International RT2573 USB: 0DB0:A874 Micro Star International RT2573 USB: 0DF6:90AC Sitecom Europe B.V. WL-172 USB: 0DF6:9712 Sitecom Europe B.V. WL-113 rev 2 USB: 1044:8008 Chu Yuen Enterprise Co., Ltd GN-WB01GS USB: 1044:800A Chu Yuen Enterprise Co., Ltd GN-WI05GS USB: 1371:9022 Dick Smith Electronics RT2573 USB: 1371:9032 Dick Smith Electronics C-Net CWD-854 rev F USB: 13B1:0020 Linksys WUSB54GC 802.11g Adapter [ralink rt73] USB: 13B1:0023 Linksys WUSB54GR USB: 1472:0009 Huawei-3Com Aolynk WUB320g USB: 148F:2573 Ralink Technology, Corp. RT2501USB Wireless Adapter USB: 148F:2671 Ralink Technology, Corp. RT2601USB Wireless Adapter USB: 14B2:3C22 Ralink Technology, Corp. rt73 802.11g WLAN USB: 15A9:0004 (Vendor name unknown) (Device name unknown) USB: 1631:C019 Good Way Technology RT2573 USB: 1690:0722 Askey Computer Corp. [hex] RT2573 USB: 1740:7100 Senao (Device name unknown) USB: 18E8:6196 Qcom RT2573 USB: 18E8:6229 Qcom RT2573 USB: 18E8:6238 Qcom (Device name unknown) USB: 2019:AB01 PLANEX GW-US54HP USB: 2019:AB50 PLANEX GW-US54Mini2
Forum Page
You can leave comment on this related forum. http://forum.samygo.tv/viewtopic.php?f=3&t=14