airstar 2 dvb-t

So Sep 12 23:17:22 CEST 2004

smc 2602w v3

Ever tried to get a SMC 2602Wv3 wireless card run under linux and finally gave up on it ? Seems to be a common problem. After some experimentation I got mine to work.

Quick description:
The card has an Am1771 chipset for which drivers exist at http://emota.com.br/wireless/am1772.html. My system happened to be a fresh installed Debian unstable with a custom 2.4.27 kernel. I tried the same card with the same drivers under different conditions ( Debian stable, Knoppix 3.4(?) ) and had no luck, the system froze when I inserted the module. On the other hand, as mentioned, Debian unstable worked fine.

Quick install guide:

	aptitude install libreadline4-dev bison flex
tar xjvf Am1771.tar.bz2 cd Am1771/Linux bash source x86_setup.script make set_platf_x86 set_pci_on set_release make # the make did not encounter any errors (using gcc 3.3.4) mknod /dev/nautilus c 254 0 logout cd .. cd obj/x86/2.4.27 insmod ./Nautilus.o
After successfully executing the code above you should be able to use the Httpserver to scan for a net. DHCP did not work in my case, but I can live with that. While struggling with the card I encountered a bug or at least some strange behaviour in the drivers: Before joining a net you have to perform a search for it, otherwise the join command will result in an invalid_parameters(!) error.

Once this whole mess is set up successfully you might want to automate the procedure. I wrote a small init.d-script which loads the module, runs an expect-skript which uses Nshell to configure the card and join the net and finally sets an ip and a default route. The script to join the net is as follows:

	#!/usr/bin/expect

	set timeout 10

	spawn /usr/local/src/Am1771/Linux/Applications/obj/x86/2.4.27/Nshell
	expect {
	timeout {set ERROR 1
	exit $ERROR}
	"SUCCESS" {send "\r"}}
	expect "nsh> " {send "MLME MLME_RESET.request(00:04:E2:9B:87:37, TRUE)\r"}

	expect "SUCCESS" {send "MLME MLME_SET.request(dot11FragmentationThreshold,2346)\r"}
	expect "SUCCESS" {send "MLME MLME_SET.request(dot11RTSThreshold,2347)\r"}
	expect "SUCCESS" {send "MLME MLME_SET.request(dot11ShortPreambleOptionImplemented, FALSE)\r"}
	expect "SUCCESS" {send "MLME MLME_SET.request(dot11PrivacyInvoked,TRUE)\r"}
	expect "SUCCESS" {send "MLME MLME_SET.request(dot11WEPDefaultKeyID, 0)\r"}
	expect "SUCCESS" {send "MLME MLME_SET.request(dot11WEPDefaultKeyIndex,1)\r"}
	expect "SUCCESS" {send "MLME MLME_SET.request(dot11WEPDefaultKeyValue,FF:EE:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF)\r"}
	expect "SUCCESS" {send "MLME MLME_SET.request(dot11WEPDefaultKeyIndex,2)\r"}
	expect "SUCCESS" {send "MLME MLME_SET.request(dot11WEPDefaultKeyValue,\"\")\r"}
	expect "SUCCESS" {send "MLME MLME_SET.request(dot11WEPDefaultKeyIndex,3)\r"}
	expect "SUCCESS" {send "MLME MLME_SET.request(dot11WEPDefaultKeyValue,\"\")\r"}
	expect "SUCCESS" {send "MLME MLME_SET.request(dot11WEPDefaultKeyIndex,4)\r"}
	expect "SUCCESS" {send "MLME MLME_SET.request(dot11WEPDefaultKeyValue,\"\")\r"}
	expect "SUCCESS" {send "MLME MLME_SCAN.request(ANY_BSS, FF:FF:FF:FF:FF:FF, \"\", ACTIVE, 10, \[11\], 1000, 3000)\r"}
	expect "SUCCESS" {send "MLME MLME_JOIN.request((00:30:F1:B6:31:14, \"WLAN\", INFRASTRUCTURE, 100, 1, 0x0000000000000000, 0x000
	0000000000000, (11), (0,0,0,0), (0), 0x0011, \[2,4,11,22\]), 10, 10, \[2,4,11,22\])\r"}
	expect "SUCCESS" {send "MLME MLME_AUTHENTICATE.request(00:30:F1:B6:31:14, OPEN_SYSTEM, 1000)\r"}
	expect "SUCCESS" {send "MLME MLME_ASSOCIATE.request(00:30:F1:B6:31:14, 1000, 0x0011, 1)\r"}
	expect "SUCCESS" {send "MLME MLME_POWERMGT.request(ACTIVE, FALSE, TRUE)\r"}
	expect "SUCCESS" {send "quit\r"}
	
This script will join a WEP-encrypted net on channel 11 with essid WLAN. Note that you will have to change the first row to your own mac adress and the last few adresses (00:30..) to your access-point's adress. Also put in the right key (FF:EE:..)

In case you need more info: Linuxquestions:smc2602w.


Posted by iso | Permanent Link | Tags: nerd stuff, linux | comments >>

So Sep 12 10:59:58 CEST 2004

airstar 2 dvb-t

In case you own a Technisat Airstar2 DVB-T card as I do here is a very quick install guide:

  1. Upgrade to kernel 2.6.10 or later as the required drivers are integrated into it. ( If you cannot afford upgrading then you have to patch your kernel sources with the files found in the CVS at linuxtv.org ).
  2. Do a make menuconfig, choose: Device Drivers > Multimedia devices > Digital Broadcasting devices and select DVB For Linux, DVB Core Support and as module mark B2C2/Technistat Air/Sky/CableStar 2 PCI, Frontends/Zarlink MT352 based. After installing the kernel and the new modules reboot into it.
  3. You now have some devices in /dev/dvb/adapter0/. To make use of it you will first have to create a channels.conf file. Download the dvb-apps from linuxtv.org. After compilation use the util/scan/dvbscan utility together with a file from util/scan/dvbscan/dvb-t/ corresponding to your local area. For example: ./dvbscan dvb-t/de-Hamburg > ~/.tzap/channels.conf (be sure to create the ~/.tzap directory beforehand)
  4. If dvbscan was successful you now have some channels listed in the channels.conf file. Now use util/szap/tzap to tune in to a selected channel by doing f.e.: ./tzap "Das Erste" -r
  5. As the card does not have a MPEG-Decoder we need some software to substitute that. Of course the almighty mplayer can do that by running mplayer - < /dev/dvb/adapter0/dvr0
  6. If you find that zapping through the channels has become an impossible task you should check out kaxtv as well as vdr (which you might want to install anyway!).

Edit: A very promising application is Kaffeine - unfortunately you'll have to install KDE to use it, though. But it definetely is worth the waste of HD space.

Edit2: In case you need a working channels.conf, i put mine up for download: channels.conf ( 3,7 kb )


Posted by iso | Permanent Link | Tags: warez, nerd stuff, video, linux | comments >>