Installing Fedora Core 5 (6) and the ipw3945 wireless driver in a Samsung Q35 Notebook

Mike Cohler

Published: 11 April 2006 (updated: 21 March 2007)


This is a personal guide showing how I installed Fedora Core 5 and the ipw3945 wireless driver in a Samsung Q35 notebook. The hard drive in this notebook was repartitioned to allow both the original special AVS and XP partitions to remain but adding additional partitions to allow FC5 to be installed in a multiboot configuration. Since getting the ipw3945 wireless interface to work was something of an ordeal I thought it would be worth making this available so others will not have to endure the same pain! This works for me, but I hope this will work for others too even on different machines. Once installed then the ( amended ) grub menu allows FC5 to boot by default with options to boot XP or the special Audiovisual system (AVS).


Installing FC5 (or FC6)

In order to prepare the computer for installing FC5 there are already excellent guides available such as Mauriat Miranda's at http://www.mjmwired.net/resources/mjm-fedora-fc5.html or Stanton Finley's at http://stanton-finley.net/fedora_core_5_installation_notes.html.

First I installed Partition Magic 8 into XP and added 4 additional (logical) partitions as follows:

Note that I always keep the non-root files in the /opt partition and immediately after install make a symlink from /home to /opt/Local/home and is this way the initial configuration of the system is considerably simplified. In this case it was a fresh install into a new computer and therefore initially the /opt partition was empty. During the install at the disk partitioning page, I selected custom partitioning, and chose to alter the / partition to be reformatted and then mounted as / and the second ext3 partition to also be reformatted and then mounted as /opt - also I choose not to have the install define any additional users for reasons in the paragraph below. I had already noted the 1280x800 screen resolution so that when asked I could select an LCD generic screen with this resolution. Note that I select SELinux as disabled in the install.

The install was uneventful, and immediately after the install was completed I logged in as root, and got the ethernet interface running. The next step was to copy all files from another computer's /opt backup files to this machine using rsync. At this point I could then take the last few entries from the /etc/passwd, /etc/shadow /etc/group and /etc/gshadow files from the other computer's backups and append them to these files in the Samsung. At this point it is possible to logout and then back in as one of the users from the original system. Then all the key config files can be setup using the original machine's key files as templates.

The /boot/grub/grub.conf file was edited to add an additional section for the special AVS partition to boot as an option Hence the chainloader section for XP (changed from "Other" was reproduced and the title changed to "AVS" with the boot area changed from (hd0,1) to (hd0,0).

Now the system is basically installed.

The upgrade to FC6 was done in essentially the same way except that the HD did not need to be reformatted.

Top Home


Preparation for installing the ipw3945 wireless driver

First it is noted that this is a Centrino Duo processor machine and the kernel is an smp kernel. For recent kernels from 2.6.17 onwards it is not necessary to install the new version of the ieee80211 subsystem, but if you wish to to do this it is first necessary to install the kernel-smp-devel package using "yum install kernel-smp-devel". In any event you will need the kernel-smp-devel package installed in order to compile the ipw3945 driver

Doing yum install kernel-devel will not work since this will give files for the non-smp kernel only.

This is no longer necessary if FC6 since a single kernel handles both single processors and SMP machines.

Note that the install below was initially for the kernel that came with the distro. For some of the more recent kernels I do not need to install the ieee80211 subsystem at all but the instructions are left in if you want to install the most recent version (currently ieee80211 version 1.2.15). You should update to the latest kernel before installing the wireless files. However for the latest kernel 2.6.20-1.2925.fc6 I have not found it necessary to install the ieee80211 version 1.2.15 but I have amended these details to account for doing this

The ipw3945 drivers are currently in development and it is necessary to download various separate source files for the following:

You may need the ieee80211 version 1.2.15 or possibly none depending which kernel you are using. For the kernel 2.6.18-1.2200smp the stock version of the ieee80211 subsystem does not work so the section on installing iee80211 is necessary. For the current kernel 2.6.20-1.2925.fc6 this is not required.

Top Home


Installing the Wireless Driver

The files are prepared and installed in sequence.

Top Home


Getting the wireless interface running

Now we need to get three further mods done to get the wireless up and running:
  1. First we need to add three lines to the file /etc/modprobe.conf
    1. alias eth1 ipw3945
    2. install ipw3945 /sbin/modprobe --ignore-install ipw3945 ; sleep 0.5 ; /sbin/ipw3945d --quiet
    3. remove ipw3945 /sbin/ipw3945d --kill ; /sbin/modprobe -r --ignore-remove ipw3945
    The first line assumes that we will have the wireless interface as eth1.
  2. Next we need to add a line to the file /etc/rc.local

    /sbin/ipw3945d --quiet

    This is critical since although the modules do load at boot the regulatory daemon does not run unless this change is made

  3. Finally we need to prepare a file to handle the interface eth1.

    Go into the directory /etc/sysconfig/network-scripts and prepare a file called ifcfg-eth1 (it may already exist)

    The file will have various parameters depending on whether you have wep security and which options you wish to set. My file looks like:
    1. # Please read /usr/share/doc/initscripts-*/sysconfig.txt
    2. # for the documentation of these parameters.
    3. ONBOOT=no
    4. USERCTL=yes
    5. PEERDNS=no
    6. TYPE=Wireless
    7. DEVICE=eth1
    8. HWADDR=xx:xx:xx:xx:xx:xx
    9. BOOTPROTO=dhcp
    10. ESSID=xxxxxxx
    11. KEY='xxxxxxxxxxxxxxxxxxxxxxxxxx restricted'
    12. MODE=Managed
    13. RATE=Auto
    14. PEERNTP=no
    The xxx here will be replaced by the values appropriate to your system.
Once the system has booted with these changes, then first time after the re-boot you may need to do "depmod -a" as root, and then re-boot again. However if you are changing the driver or the regulatory daemon for a new version, you can do "modprobe -rv ipw3945" as root, then make the changes, and then "modprobe -av ipw3945" to reload the daemon. Then after logging on the wireless interface should be running and immediately give a network connection via the Access Point. Of course this presumes that the files /etc/resolv.conf, /etc/hosts, /etc/sysconfig/network have been amended to suit the network parameters of the local network. If network changes have been done, then as root type "service network restart" to update the system.

The wireless network can be started or stopped by any user (since USERCTL has been set to yes in the ifcfg file) by doing /sbin/ifup eth1 or /sbin/ifdown eth1.

In KDE a nice taskbar wireless monitor icon can be added using right click in the taskbar and then "add applet" - and selecting the Wireless Information applet

Top Home


The new driver - iwlwifi

Note that currently there is a new D80211 wireless stack (which needs to be compiled into the kernel, and a new driver called iwlwifi, which is in development. This may be ready for inclusion in Fedora 7 when it is released in about two months. This will not need a regulatory daemon and will be a much improved wireless system for Linux for the ipw3945 cards. This is not currently tested on this notebook.

Top Home


Using the Bluetooth Mouse

14 March 2005

To get the Logitech V270 Bluetooth mouse to work was simple.

As root in a terminal window type:
hidd --server --search
then push the reset button on the mouse and it will find it and pair.

You can check by doing (as user):
$ hidd --show
xx:xx:xx:xx:xx:xx Bluetooth HID Boot Protocol Device [046d:b002] connected 
[boot-protocol]
$

Then you only need: 
chkconfig --level 35 hidd on

From now on the mouse just pairs up after the system is booted by moving the mouse around until it responds.

Top Home


Installing FC6

Before starting the install I used rsync to copy /etc /var and /root to a new directory on the /opt partition to make the configuration after install easy.

Using the same technique as for installing FC5 previously above, I did a clean install of FC6 the same way as described above. The disc was of course already partitioned, and I ran the install from CD. For disc partitioning I asked the disc druid to reformat the root partition, but to leave the others untouched. The install went without a hitch except that anaconda took over two hours to do the install so perhaps this hit one of the known anaconda bugs. I did not ask anaconda to create any users apart from root, since I will use the pre-existing user partitions.

Then after firstboot I remade the link from /home to /opt/Local/home and copied the bottom lines with the user data from the backup of /etc for the 4 files passwd, group, shadow and gshadow. Then copied the main config files for networking and mail into the new root areas. After configuring the yum mirror definitions I ran yum update to get the system fully up to date.

Finally the ipw3945 radio - which took me several weeks as I tried to add all manner of patches which were not necessary! Finally the technique which gave success was to install the microcode and regulatory daemon as for FC5, and leave the ieee80211 subsystem from the stock kernel entirely alone.

Then I compiled the ipw3945 driver version 1.1.2 using the command make IEEE80211_API=2 EXTRA_CFLAGS=-DIEEE80211_API_VERSION=2 and changed permissions of the resulting file ipw3945.ko to 744, and copied it to /lib/modules/2.6.18-1.2949.fc6/kernel/drivers/net/wireless/ finally doing "depmod -a" as for FC5. After reloading the modules it worked just fine.

Top Home

Disclaimer: The author makes no claim to the accuracy of the information provided. This information is provided in the hope that it will be useful, but WITHOUT ANY WARRANTY. There is no implied support from referencing this guide. Use this information at your own risk. Always make proper backups and use caution when modifying critical system files.

Mike Cohler

Valid HTML 4.01!

Valid CSS!

Linux Counter #444062

TuxMobil - Linux on Laptops, Notebooks, PDAs and Mobile Phones

Linux On Laptops