Toshiba Satellite A105-S4094

From Gentoo Linux Wiki

Jump to: navigation, search




Please format this article according to the guidelines and Wikification suggestions, then remove this notice {{Wikify}} from the article


This article is part of the Hardware series.
Laptops TV Tuner Cards Wireless Servers Storage Other Hardware Motherboards Related

Contents

[edit] Introduction

This article exists to provide detailed instruction on how to install and configure Gentoo Linux for the Toshiba Satellite A105-S4094 Laptop. Much of this article is derived from this article on the Toshiba Satellite M105 Series. Much thanks goes to its respective author(s).

This article assumes that you are not a first time Gentoo user, that is, this isn't your first install, hence you are not a 'newb'.


[edit] Disclaimer

To be honest, I've been toying with Gentoo Linux on a desktop for several years, but I've never even compiled Gentoo on an INTEL platform...don't laugh. Some of the stuff is the same, but some of it's very different. In short, this article will really help those of you coming from a desktop world like myself, and help configure everything that can be configured.

[edit] Hardware / Specs

To be filled in later

[edit] Initial Installation

For basic installation instructions, please refer to the Gentoo Installation Handbook. The text that follows is only supplimental, not step-by-step.

[edit] Initial Setup

Depending on what install method you use/prefer, the network (ethernet) card may be detected but not activated. Since I prefer command line installs (minimal install cd), running net-setup eth0 quickly fixed my ethernet connection to active. By the way, for documentation's sake, the driver for the ethernet card is e100

[edit] Disk partitioning

Your partitioning will vary upon your needs. Just keep in mind that the included hard disk is SATA, you will access it via /dev/sda. Also keep that in mind when compiling your kernel.

[edit] /etc/make.conf configurations

Again, your USE variables will depend upon your needs as will specific CFLAGS. That said, what you should know is that for your CFLAG entry, your processor type is prescott. Also, there are some very important USE flags you may want to include, as well as specific flags for modular Xorg configuration. Included is my basic /etc/make.conf from which you can adapt to your needs.

File: /etc/make.conf
CFLAGS="-O3 -march=prescott -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j3"
CLEAN_DELAY="1"

########## USE and UNUSED #######################
USE="   -arts -ipv6 -apm
        bzip2 mmx samba ieee1394 dvdread dvdr cdr a52 aac theora threads
        sse sse2 java sndfile 3dnow directfb browserplugin v4l mozilla
        mjpeg v4l2 nsplugin audiofile flac ffmpeg cdparanoia cpudetection
        dvd real win32codecs firefox wmf cddb acpi avi "
INPUT_DEVICES="evdev keyboard mouse synaptics"
VIDEO_CARDS="i810 i915 i940 intel vesa"
#################################################

GENTOO_MIRRORS="http://gentoo.mirrors.tds.net/gentoo http://gentoo.netnitco.net "
SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage"
 

At this point, now that all appropriate /etc/make.conf entries have been taken care of, we can move on to our first emerge --sync


[edit] Sync n Stuff

Nothing special really goes on here, but whilst some of the documentation defers you from doing a emerge --update --deep system -va I prefer to do one right after the sync. Go for it, and grab a beer. This whole process will take about an hour or so...chances are you'll have to update GCC and glibc.

[edit] Kernel Internals

Now onto the difficult part, including all the right stuff into the kernel. Grab your specific kernel flavor (gentoo-sources for me) and get on to making that menuconfig. Hopefully you have configured and compiled a kernel before, because this isn't the place to learn how. Heres what to make sure you have included in your kernel (2.6.17-gentoo-r4)

Code: Configuring your kernel

---Processor type and features

  [*] Symmetric multi-processing support
  Subarchitecture Type (PC-compatible)  --->
  Processor family (Pentium M)  --->
  [*] HPET Timer Support
  (2) Maximum number of CPUs (2-255)
  [*] Multi-core scheduler support
  Preemption Model (Voluntary Kernel Preemption (Desktop))  --->
  [*] Preempt T  he Big Kernel Lock (I hear pre-empting on desktop systems in a good thing)
  [*] Support for hot-pluggable CPUs (EXPERIMENTAL)

--- Power Management support

  [*] Software Suspend
  (/dev/hda3) Default resume partition ***Change this to your swap partition***
  Power management options (ACPI, APM)  --->
 ACPI (Advanced Configuration and Power Interface) Support  --->
   [*] ACPI Support
   [*]   Sleep States
   <*>   AC Adapter
   <*>   Battery
   <*>   Button
   <*>   Video
   < >   Generic Hotkey (EXPERIMENTAL)
   <*>   Fan
   <*>   Processor
   <*>     Thermal Zone
   < >   ASUS/Medion Laptop Extras
   < >   IBM ThinkPad Laptop Extras
   < >   Toshiba Laptop Extras
   (0)   Disable ACPI for systems before Jan 1st this year
   [ ]   Debug Statements
   [*]   Power Management Timer Support
 APM (Advanced Power Management) BIOS Support  --->
   < > APM (Advanced Power Management) BIOS support
 CPU Frequency scaling  --->
   [*] CPU Frequency scaling
   [ ]   Enable CPUfreq debugging
   <*>   CPU frequency translation statistics
   [*]     CPU frequency translation statistics details
         Default CPUFreq governor (performance)  --->
   ---   'performance' governor
   <*>   'powersave' governor
   <*>   'userspace' governor for userspace frequency scaling
   <*>   'ondemand' cpufreq policy governor
   <*>   'conservative' cpufreq governor
   ---   CPUFreq processor drivers
   <*>   ACPI Processor P-States driver
   < >   AMD Mobile K6-2/K6-3 PowerNow!
   < >   AMD Mobile Athlon/Duron PowerNow!
   < >   AMD Opteron/Athlon64 PowerNow!
   < >   Cyrix MediaGX/NatSemi Geode Suspend Modulation
   <*>   Intel Enhanced SpeedStep
   [*]     Use ACPI tables to decode valid frequency/voltage pairs
   [ ]     Built-in tables for Banias CPUs
   <*>   Intel Speedstep on ICH-M chipsets (ioport interface)
   < >   Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)
   < >   Intel Pentium 4 clock modulation
   < >   nVidia nForce2 FSB changing
   < >   Transmeta LongRun

--- PCCARD (PCMCIA/CardBus) support --->

   < > PCCard (PCMCIA/CardBus) support (If you have PCMCIA cards to use, enable this)

--- Networking Support

   <*>   Bluetooth subsystem support  --->

--- Device Drivers

   Generic Driver Options --->
       <*> Userspace firmware loading support (for our wireless drivers later on)
   SCSI device support  --->
        <*>   SCSI disk support  (???)
        <*>   SCSI CDROM suppor   (for the CD/DVD WRITER)
        <*>   SCSI generic support (also needed for cd/dvd writer)
        SCSI low-level drivers  --->
            <*> Serial ATA (SATA) support (For the hard drive)
            <*>   AHCI SATA support (???)
   IEEE 1394 (FireWire) support  --->
       <*> IEEE 1394 (FireWire) support [elaborate]
    Network device support  ---> 
        [*] Network device support
        Ethernet (10 or 100Mbit)  ---> 
             [*] Ethernet (10 or 100Mbit)
                 [*] EISA, VLB, PCI and on board controllers
                      <*>   Intel(R) PRO/100+ support
         Wireless LAN (non-hamradio)  --->
            [*] Wireless LAN drivers (non-hamradio) & Wireless Extensions 
            (Do not select anything else!!!!)
   Input Device Support --->
       <*>   Event interface
       [*]   Mouse  --->
   Graphics support --->
       <*> Support for frame buffer device
       [*]   Enable firmware EDID
       <*>   VESA VGA graphics support 
         VESA driver type (vesafb)  --->
       <M> Intel 830M/845G/852GM/855GM/865G support (EXPERIMENTAL) [haven't got this working yet]
   Sound --->
       <*> Sound card support
       Advanced Linux Sound Architecture  ---> (allow the defaults)
           PCI devices  ---> 
               <*> Intel HD Audio
    MMC/SD Card support  --->    
        <M> MMC support (for that 5 in 1 reader if thats your thing)

--- Cryptographic options ---> (these are for the wireless

      <*>   AES cipher algorithms
      <*>   AES cipher algorithms (i586)
      <*>   ARC4 cipher algorithm
       <*>   Michael MIC keyed digest algorithm
      

That should be just about everything to get you started. Go ahead and make and copy over to /boot as necessary.

[edit] Finishing the install

The last thing you will want to do is install all of your specific programs to your laptop. Not necessarily the x server and gnome, but things like slocate, dhcpcd, cron, coldplug....etc. So go for it. Don't forget about a boot loader. Now reboot, and lets make sure everything came up fine...kernel wise.

[edit] Post-Installation Configuration

[edit] Configuring Xorg for your laptop, and screen resolution

Once we have xorg-x11 installed, we can start configuring it. As a window manager, I prefer [fluxbox], its a fast easy install, and it's great for initial testing. Anyways, for configurations sake, follow the initial instructions located [ http://www.gentoo.org/doc/en/xorg-config.xml here]. Specifically, run Xorg -configure which will give us a basic xorg.conf file that we will edit for our own interests. Said command will leave us with an xorg.conf.new file in our working directory. We can test our configuration changes with X -config /root/xorg.conf.new. But like I said, refer to the X setup guide for details.

Without any editing, we should have a basic working config file that should get xorg up and running. We can go ahead and copy our test conf file over to /etc/X11/xorg.conf. Our next task, as you may have noticed is to setup our proper screen resolution (1280x800).

Since there is no native support for vesa mode 1280x800, we need to add a mode line to our Monitor section of of /etc/X11/xorg.conf. Detailed instructions of how to do so can be found at Widescreen wiki.

Included here is my basic /etc/X11/xorg.conf which should get you going, in case your stuck or need some guidance.

File: /etc/X11/xorg.conf
Section "ServerLayout"
        Identifier     "X.org Configured"
        Screen      0  "Screen0" 0 0
        InputDevice     "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
        RgbPath      "/usr/share/X11/rgb"
        ModulePath   "/usr/lib/xorg/modules"
        FontPath     "/usr/share/fonts/misc"
        FontPath     "/usr/share/fonts/75dpi"
        FontPath     "/usr/share/fonts/100dpi"
        FontPath     "/usr/share/fonts/TTF"
        FontPath     "/usr/share/fonts/Type1"
EndSection

Section "Module"
        Load  "extmod"
        Load  "dbe"
        Load  "record"
        Load  "xtrap"
        Load  "dri"
        Load  "glx"
        Load  "freetype"
        Load  "type1"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
EndSection

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Protocol" "auto"
        Option      "Device" "/dev/input/mice"
        Option      "ZAxisMapping" "4 5 6 7"
Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        ModelName    "Monitor Model"
        ModeLine        "1280x800" 68.9 1280 1296 1344 1408 800 801 804 816
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
        ### [arg]: arg optional
        #Option     "ShadowFB"                  # [<bool>]
        #Option     "DefaultRefresh"            # [<bool>]
        #Option     "ModeSetClearScreen"        # [<bool>]
        Identifier  "Card0"
        Driver      "vesa"
        VendorName  "Intel Corporation"
        BoardName   "Mobile Integrated Graphics Controller"
        BusID       "PCI:0:2:0"
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        SubSection "Display"
                Depth 24
                Modes   "1280x800"
        EndSubSection
EndSection
 

An x server restart should show you just how good 1280x800 looks.....yay

[edit] Wireless Networking

Yet another tricky part of our configuration sequence. First things first, we need to clean out some of the source before we plop our new drivers on in. Then we're gonna go ahead and install the necessary drivers and tools.

Code: Wireless magic
localhost ~ # /bin/bash /usr/portage/net-wireless/ieee80211/files/remove-old /usr/src/linux
localhost ~ # emerge ieee80211 ipw3945 ipw3945d wireless-tools

Now if your missing something in your kernel, one of the emerges will fail with a warning. Thats why we had to add so much stuff to our config.

Also, if you haven't emerged coldplug at this time, you might wanna go ahead and do that, or you can edit modules.autoload or however you prefer....As a side note, make sure that your wireless card is enabled (hey it's on the right side of your laptop). If it isn't, your laptop may freeze [well at least for some distros it has...no seriously it happened to me]

Okay, now theres a lot of documentation on how to get your wireless networking up and running, but for a quick and dirty intro I'll show you how to get it going and make sure that it works.

Code: Quick and Dirty wireless

Step 1: make sure modules are loaded

localhost ~ # lsmod
Module                  Size  Used by
ohci1394               26800  0 
ipw3945               102304  1 
ieee80211              25992  1 ipw3945
ieee80211_crypt         4608  1 ieee80211

Step 2: make sure your card is detected

localhost ~ # iwconfig 
eth0      no wireless extensions.

lo        no wireless extensions.

eth1      unassociated  ESSID:off/any  
          Mode:Managed  Frequency=nan kHz  Access Point: Not-Associated   
          Bit Rate:0 kb/s   Tx-Power:16 dBm   
          Retry limit:15   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

Step 3: Now that we know our wireless card is eth1, lets go ahead and scan for some networks or aps (addresses removed obviously)

localhost ~ # iwlist eth1 scanning
eth1      Scan completed :
          Cell 01 - Address: XX:XX:XX:XX:XX:XX
                    ESSID:"SR21"
                    Protocol:IEEE 802.11g
                    Mode:Master
                    Channel:6
                    Encryption key:on
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 9 Mb/s
                              11 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
                              48 Mb/s; 54 Mb/s
                    Quality=79/100  Signal level=-55 dBm  Noise level=-55 dBm
                    IE: WPA Version 1
                        Group Cipher : TKIP 
                        Pairwise Ciphers (1) : TKIP 
                        Authentication Suites (1) : PSK  
                    Extra: Last beacon: 230ms ago
          Cell 02 - Address: XX:XX:XX:XX:XX:XX
                    ESSID:"BabyVersusRhino"
                    Protocol:IEEE 802.11bg
                    Mode:Master
                    Channel:11
                    Encryption key:on
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 9 Mb/s; 11 Mb/s
                              6 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
                              48 Mb/s; 54 Mb/s
                    Quality=55/100  Signal level=-75 dBm  Noise level=-75 dBm
                    Extra: Last beacon: 50ms ago

Step 4: Gather data about the specific network you would like to connect to and specify flags to iwconfig (private info filtered out....man iwconfig for options

localhost ~ # iwconfig eth1 essid any mode Managed channel 11 rate auto key XXXXXXXXXX

Step 5: Verify settings, bring up wireless interface.

localhost ~ # iwconfig eth1
eth1      IEEE 802.11g  ESSID:"BabyVersusRhino"
          Mode:Managed  Frequency:2.462 GHz  Access Point:XX:XX:XX:XX:XX:XX
          Bit Rate:24 Mb/s   Tx-Power:14 dBm
          Retry limit:15   RTS thr:off   Fragment thr:off
          Encryption key:XXXXXXXXXXXX   Security mode:open
          Power Management:off
          Link Quality=72/100  Signal level=-59 dBm  Noise level=-60 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:110   Missed beacon:0

localhost ~ # ifconfig eth1 up && ifconfig eth1
eth1      Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:XX
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:102 errors:0 dropped:110 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:43 (43.0 b)
          Interrupt:18 Base address:0xc000 Memory:da000000-da000fff

 --- the interface is active, but we don't have an ip address or anything so lets grab one via dhcpcd ---

localhost ~ # dhcpcd eth1
localhost ~ # ifconfig
eth1      Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:XX
          inet addr:192.168.0.12  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:415 errors:0 dropped:110 overruns:0 frame:0
          TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:594 (594.0 b)  TX bytes:1007 (1007.0 b)
          Interrupt:18 Base address:0xc000 Memory:da000000-da000fff

--- okay so now we got an ip address, try pinging a site or opening a browser, it should work. yay us

Now that we have verified that we can connect to a wireless network, we can do the wireless dance. Of course you may want to setup something so that it works right on boot, check out the [gentoo wireless network setup] for more info.

[edit] Battery, ACPI, and power saving etc

How goes it?

[edit] Firewire