PS3 Wireless HOWTO 2008.11.05 Copyright (c) 2008 Sony Computer Entertainment Inc. Copyright 2008 Sony Corporation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". DISCLAIMER THIS DOCUMENT IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE DOCUMENT ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE DOCUMENT OR THE PERFORMANCE OR IMPLEMENTATION OF THE CONTENTS THEREOF. TRADEMARK NOTICE "PLAYSTATION" and "PS3" are registered trademarks of Sony Computer Entertainment Inc. "Cell Broadband Engine" is a trademark of Sony Computer Entertainment Inc. Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries. Other company, product and service names may be registered trademarks, trademarks or service marks of others. ABOUT THIS DOCUMENT This note describes how to setup Fedora wireless networking on your PS3. You can always find the latest version of this document, and some other useful technical documents here: http://www.kernel.org/pub/linux/kernel/people/geoff/cell/ Please send comments to Masakazu Mokuno . PS3 WIRELESS HOWTO With a freshly installed Fedora 9 the PS3 Linux wireless lan (WLAN) does not work well, and even after updating to the latest packages the issue still exists as of today. This document tries to describe how to get the PS3 WLAN working properly. 1) Preparation To avoid complications, update the F9 system to the latest version using yum. # yum update -y As of today, the following rpms should be installed: kernel-2.6.26.3-29.fc9.ppc64 wpa_supplicant-0.6.3-6.fc9.ppc wireless-tools-29-2.fc9.ppc NetworkManager-0.7.0-0.11.svn4022.fc9.ppc NOTE: If you are using a freshly installed F9, update 'e2fsprogs' first, then update the rest of the system. The original e2fsprogs has a bug that does not recognize the swap partition, and the system will boot without swap. // update rpm key; Fedora updated their pgp key after F9 release # yum update -y fedora-release # yum update -y e2fsprogs* # swapon -a // iwl4965-firmware conflicts with the latest kernel // Intel 4965AGN is a mini-PCIe card, therefore it is not useful // on PS3: # yum remove -y iwl4965-firmware # yum update -y 3) The Kernel The complete driver for the PS3 WLAN was merged into the mainline 2.6.27 Linux kernel. Fortunately, the latest Fedora 9 kernel, kernel-2.6.26.3-29.fc9, includes almost all necessary patches as well, so we can use it instead of compiling a 2.6.27 kernel. Alternatively, PS3 Linux maintainer Geoff keeps the runnable PS3 kernel source tree at kernel.org. You can retrieve that version and compile it. 4) WPA Supplicant The PS3 WLAN driver is designed to be controlled and configured via the Linux Wireless Extension (WEXT) interface and tested with the user space program 'wpa_supplicant'. From version 0.6.4, wpa_supplicant has support for the PS3 Linux WLAN. F9 uses wpa_supplicant 0.6.3 for now, so we should upgrade it. 4.1) Getting the wpa_supplicant Source Get the source of wpa_supplicant version 0.6.4 or later. You should reach the source via wpa_supplicant's home page: http://w1.fi/wpa_supplicant/ Probably the archive can be reached with: http://w1.fi/releases/wpa_supplicant-0.6.4.tar.gz 4.2) Compiling wpa_supplicant Nothing special is required to compile wpa_supplicant. Extract the archive, setup the build options, then type 'make'. The build options are controlled by the .config file in the source directory. Please see README file in the archive for details of the compilation. The F9 SRPM includes the configuration file for its wpa_supplicant. The following is almost identical to the F9 configuration except that MadWiFi is disabled because compiling with MadWiFi enabled requires special header files which are not included in the wpa_supplicant archive. CONFIG_CTRL_IFACE=y CONFIG_CTRL_IFACE_DBUS=y CONFIG_DRIVER_HOSTAP=y //CONFIG_DRIVER_HERMES=y //CONFIG_DRIVER_MADWIFI=y CONFIG_DRIVER_ATMEL=y CONFIG_DRIVER_WEXT=y CONFIG_DRIVER_NDISWRAPPER=y CONFIG_DRIVER_PRISM54=y CONFIG_DRIVER_WIRED=y //CONFIG_DRIVER_BROADCOM=y //CONFIG_DRIVER_IPW=y //CONFIG_DRIVER_BSD=y //CONFIG_DRIVER_NDIS=y CONFIG_WIRELESS_EXTENSION=y CONFIG_IEEE8021X_EAPOL=y CONFIG_EAP_MD5=y CONFIG_EAP_MSCHAPV2=y CONFIG_EAP_TLS=y CONFIG_EAP_PEAP=y CONFIG_EAP_TTLS=y CONFIG_EAP_GTC=y CONFIG_EAP_OTP=y CONFIG_EAP_SIM=y CONFIG_EAP_AKA=y CONFIG_EAP_PSK=y CONFIG_EAP_PAX=y CONFIG_EAP_LEAP=y //CONFIG_PCSC=y CONFIG_PKCS12=y CONFIG_SMARTCARD=y CONFIG_DEBUG_FILE=y Depending on your setup of F9, you may need to install development RPMs, like gcc, openssl, X11, qt and so on, in order to build wpa_supplicant. 4.3) Testing wpa_supplicant After compilation, you may want to test the binary. To test: - Write a configuration file for wpa_supplicant. - Stop NetworkManager. - Run wpa_supplicant with your configuration file. The sample configuration file is shown in the later sections. # vi wpa_supplicant.conf (Write your own configuration file for your AP) # /etc/rc.d/init.d/NetworkManager stop # cd wpa_supplicant.0.6.4/wpa_supplicant # ./wpa_supplicant -dd -Dwext -iwlan0 -c ~/wpa_supplicant.conf If your wpa_supplicant connects to your AP successfully, a message like the following should be seen: CTRL-EVENT-CONNECTED - Connection to 00:11:22:33:44:55 completed ... RTM_NEWLINK, IFLA_IFNAME: Interface 'wlan0' added Then assign an IP address and test the connection with ping etc... # ifconfig wlan0 192.168.1.10 # ping 192.168.1.1 PING 192.168.1.1 (192.168.1.1) 65(84) bytes of data. 64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=5.80 ms ... 4.4) Installing Your Binaries The simplest way to install the compiled binaries is to overwrite the existing ones. As the F9 RPM supplies the following three binary files, just copy the new binaries onto them: /usr/sbin/wpa_supplicant /usr/sbin/wpa_cli /usr/sbin/wpa_passphrase To revert, re-install the F9 wpa_supplicant RPM. 4.5) Configuration Samples The following are the configuration file samples for wpa_supplicant. They assume the SSID of the AP is "your_ap" and the WPA-PSK pass phrase is "yourpasswd". - WEP 64bit hexadecimal ctrl_interface=/var/run/wpa_supplicant network={ ssid="your_ap" key_mgmt=NONE wep_key0=0123456789 } - WEP 64bit hexadecimal + Hidden SSID ctrl_interface=/var/run/wpa_supplicant network={ ssid="your_ap" scan_ssid=1 key_mgmt=NONE wep_key0=0123456789 } - WPA version 1 TKIP ctrl_interface=/var/run/wpa_supplicant network={ ssid="your_ap" key_mgmt=WPA-PSK proto=WPA pairwise=TKIP group=TKIP psk="yourpasswd" } - WPA version 2 AES ctrl_interface=/var/run/wpa_supplicant network={ ssid="your_ap" key_mgmt=WPA-PSK proto=WPA2 pairwise=CCMP group=CCMP psk="yourpasswd" }