Monthly Archives: August 2009

Fixing Flash for Linux Firefox-3.5.2

If you have trouble with Flash segfaulting in Linux Firefox-3.5.2 (the symptom is a browser hang), I fixed that by downgrading Flash from Flash10 to Flash9. Of course Flash9 is full of security holes. In combination with the Flashblocker Firefox extension and only activating it on trusted sites it seems like a reasonable approach. Of course for all we know the newest Flash10 is full of security problems, too.

Patch to vmmouse to make it work in FreeBSD

Here’s a patch to the vmmouse port that activates the driver unconditionally. This makes the VMware mouse driver work in the default configuration in FreeBSD (7 and 8).

When xorg moved to use hal by default, the vmmouse driver needed to be registered with hal. This would work fine, except for the the current port version of hal (hal-0.5.11_25) not supporting a command line option that the probe script for vmmouse needs, and the matching code that determines whether to probe for VMware never matching on FreeBSD.

The patch unconditionally activates the vmmouse driver. This should be fine even when not running in VMware, as vmmouse should be compatible with the default xorg mouse driver.

FreeBSD ppp(8): work around invalid remote address

When connecting via a Huawai E169 UTMS USB stick through O2 Germany’s network, the data stick or the network suggests a PPP IPCP remote address of 0.0.0.0. FreeBSD refuses to ifconfig the tun interface with this endpoint address.

Fortunately, ppp(8) offers a configuration parameter to influence the IP addresses negotiated with the peer (ifaddr), and suggesting a different address will make the configuration work.

If you get this log output from ppp, you need to configure address selection:

IPCP: deflink: RecvConfigAck(4) state = Req-Sent
IPCP:  IPADDR[6] 10.68.235.57
IPCP:  PRIDNS[6] 193.189.244.197
IPCP:  SECDNS[6] 193.189.244.205
IPCP: deflink: State change Req-Sent – > Ack-Rcvd
IPCP: deflink: RecvConfigReq(47) state = Ack-Rcvd
IPCP:   [EMPTY]
IPCP: deflink: SendConfigAck(47) state = Ack-Rcvd
IPCP:   [EMPTY]
IPCP: deflink: State change Ack-Rcvd – > Opened
IPCP: deflink: LayerUp.
IPCP: myaddr 10.68.235.57 hisaddr = 0.0.0.0
Warning: iface add: ioctl(SIOCAIFADDR, 10.68.235.57 -> 0.0.0.0): Destination address required
Error: ipcp_InterfaceUp: unable to set ip address

Here’s my complete ppp.conf, with the ifaddr line included:

u3g:
	set device /dev/cuaU0.0
	set speed 115200
	set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0
	set authname internet
	set authkey  internet
	set log local phase ipcp
	set dial "ABORT BUSY TIMEOUT 2 \
		\"\" \
		AT OK-AT-OK \
		AT+CFUN=1 OK-AT-OK \
		AT+CMEE=2 OK-AT-OK \
		AT+CSQ OK \
		AT+CGDCONT=1,\\\"IP\\\",\\\"internet\\\" OK \
		AT+CGACT? OK-AT-OK \
		AT+CGATT? OK \
		AT+CGCLASS? OK \
		AT+COPS? OK \
		ATD*99***1# CONNECT"
	set crtscts on
	nat enable yes
	add default HISADDR
	disable dns

This applies to both 7-stable and 8-stable (with both the old and the new USB stacks). I’ve used u3g(4) on both occasions. The original ppp.conf for 3G modems is based off this one from Nick Hibma.

This is how it looks like when using ifaddr:

IPCP:  PRIDNS[6] 10.11.12.13
IPCP:  SECDNS[6] 10.11.12.14
IPCP:  PRINBNS[6] 10.11.12.13
IPCP: MS NBNS req 130 - NAK??
IPCP:  SECNBNS[6] 10.11.12.14
IPCP: MS NBNS req 132 - NAK??
IPCP: deflink: SendConfigReq(2) state = Req-Sent
IPCP:  IPADDR[6] 10.0.0.1
IPCP:  COMPPROTO[6] 16 VJ slots with slot compression
IPCP: deflink: RecvConfigReq(50) state = Req-Sent
IPCP:   [EMPTY]
IPCP: deflink: SendConfigNak(50) state = Req-Sent
IPCP:  IPADDR[6] 10.0.0.2
IPCP: deflink: RecvConfigRej(2) state = Req-Sent
IPCP:  COMPPROTO[6] 16 VJ slots with slot compression
IPCP: deflink: SendConfigReq(3) state = Req-Sent
IPCP:  IPADDR[6] 10.0.0.1
IPCP: deflink: RecvConfigNak(3) state = Req-Sent
IPCP:  IPADDR[6] 10.42.237.110
IPCP:  IPADDR[6] changing address: 10.0.0.1  – > 10.42.237.110
IPCP: deflink: SendConfigReq(4) state = Req-Sent
IPCP:  IPADDR[6] 10.42.237.110
IPCP: deflink: RecvConfigAck(4) state = Req-Sent
IPCP:  IPADDR[6] 10.42.237.110
IPCP: deflink: State change Req-Sent – > Ack-Rcvd
IPCP: deflink: RecvConfigReq(51) state = Ack-Rcvd
IPCP:   [EMPTY]
IPCP: deflink: SendConfigAck(51) state = Ack-Rcvd
IPCP:   [EMPTY]
IPCP: deflink: State change Ack-Rcvd – > Opened
IPCP: deflink: LayerUp.
IPCP: myaddr 10.42.237.110 hisaddr = 10.0.0.2
PPP ON freebsd-current>

Les Paul

Nun hat’s auch Les Paul erwischt. Nein, es handelt sich nicht um eine Gitarre, sondern um deren Erfinder. Außerdem verdankt man ihm das Mehrspur-Tonaufnahme-Verfahren, indem er zahllose Bandmaschinen zusammenschaltete und synchron laufen ließ, sowie – und daher auch sein Ruhm – die Solid-Body-Gitarre. Les Paul ist just im Alter von 94 Jahren gestorben.

Ein schöner Nachruf auf Spiegel-Online

Hier eins seiner berühmtesten Musikstücke, gespielt mit seinem unverwechselbaren Gitarrenspiel und wiedergegeben im 24-Spur-Verfahren plus zwei Live-Spuren (Video auf Youtube)

Hedy Lamarr co-invented spread spectrum

Hedy Lamarr in The Conspirators

Hedy Lamarr in The Conspirators

Hollywood actress Hedy Lamarr, well known for Boom Town and My Favorite Spy, co-invented frequency hopping to help make radio controlled torpedoes more resilient:

At a party in Hollywood, Lamarr met George Antheil, an avant-garde composer who also wrote film scores. While playing the piano with the composer, the actress suddenly has an important idea for her torpedo control system. Antheil sets up the system on 88 frequencies, as this number corresponds to the number of keys on a piano. To construct it, he employs something similar to the player piano sheet music that he used in his Ballet Mécanique.

In December 1940, the frequency-switching device developed by Lamarr and Antheil was sent to the National Inventors’ Council. A patent was awarded on August 11, 1942. The two inventors leave it to the American military to figure out how to use the device. Lamarr’s and Antheil’s Secret Communication System disappears into the U.S. Army’s filing cabinets.

Art Fag City via BoingBoing