HARDWARE Samsung Q35
From Gentoo Linux Wiki
| Laptops • TV Tuner Cards • Wireless • Servers • Storage • Other Hardware • Motherboards • Related |
Contents |
[edit] Preface
I was configuring a Samsung Q35 these days for running Gentoo on it and want so share my experiences here. The hardware itself is very nice. Two cores running at 1.6 GHz, 1 GB RAM and a good 12.1 Inch Widescreen. This all at a weight of about 2 kilogram. The performance of the two cores while compiling packages under Gentoo was astonishing. Especially as it does neither get hot nor loud. Besides, many of the Laptop-features like brightness control work from the hardware side, such that you don't have to bother about them.
[edit] Quick Overview
The following results I could achieve using gentoo-sources-2.6.17-r4.
| Device | Status | Short description |
|---|---|---|
| Dual-Core-CPU | Working | SMP-Support and Multi-Core-Scheduler enabled in kernel |
| Intel 945GM VGA Controller | Working | DRI acceleration works, widescreen as well |
| Framebuffer | Working | vesafb-tng framebuffer selected in kernel, resolution 1280x800@60 working, splash working |
| Intel ICH7 Soundcard | working | use snd-hda-intel from the kernel (working since 2.6.22) |
| Broadcom BCM4401-B0 100 MBit LAN | working | Broadcom 4400 driver in kernel |
| Intel PRO/Wireless 3945ABG WLAN | working | ipw3945 package from portage |
| Broadcom USB Bluetooth Dongle | working | Broadcom Bluetooth USB driver from kernel |
| Firewire, USB, PCMCIA | working | corresponding kernel drivers and userspace utilities. PCMCIA requires "pci=assign-busses" kernel boot option. |
| Ricoh Cardreader for SD-Cards, Memory Stick etc. | not working | sdhci driver from kernel seems to be responsible and also detects something but no way to access SD-Cards (probably better using 2.6.18 with improved sdhci support) Update:Usable in kernel 2.6.19-suspend2-r2. May cause hibernate to hang at "Doing atomic copy" phase unless the card removed from the reader |
| Suspend-To-Ram | working | Enable CPU Hotplugging in kernel (2.6.17+). No Framebuffer, only plain text console. Use Xorg 7.1. Use hibernate-ram script. Enable Vbetool. Let Vbetool do _only_ POST initialisation, _dont_ save and restore register values (patch hibernate script). |
| ACPI implementation | okay | Power-/Sleep-Button events working, LID-Event not working, Battery is recognized. Update: Lid switch is actually working fine, it has a 10s delay. |
| CPU Frequency Scaling | working | Standard kernel drivers and userspace utilities |
| Modem | working | Use net-dialup/slmodem package from portage. Need the following in /etc/conf.d/slmodem: 1) MODULE=alsa 2) HW_SLOT=modem:0 Modem can be queried by kppp after slmodem service started. |
[edit] Detailed installation instructions
[edit] LinuxStats
The most important parts of my configuration can be looked up at linux-stats.org
[edit] Kernel
See my kernel config file. It is for gentoo-sources-2.6.17-r8 and should provide a good point to start from.
[edit] Framebuffer
Select the following options in the kernel
| Linux Kernel Configuration: |
Device Drivers --->
Graphics support --->
<*> Support for framebuffer devices
<*> VESA VGA graphics support
VESA driver type (vesafb-tng) --->
(1280x800@60) VESA default mode
|
And use the following command line in your grub.conf
| File: /boot/grub/grub.conf |
title Gentoo - current kernel root (hd0,5) kernel /kernel_current video=vesafb:ywrap,1280x800-32@60 root=/dev/hda7 |
This conf-file is NOT for splash.
Question: what would be necessary to set the fb splash in the beginning of the boot process? Using vesafb-tng and an initrd containing images with 1280x800 won't show the picture on bootup, VGA = 866 is not recognized as working VGA Mode by lilo.
[edit] Xorg / 945GM graphics card
See this HowTo.
[edit] Sound card (hda-intel)
The soundcard is straight forward for newer kernels (>=2.6.22):
| Linux Kernel Configuration: |
<*> Sound card support
Advanced Linux Sound Architecture --->
<*> Advanced Linux Sound Architecture
PCI-Devices --->
<*> Intel HD Audio
|
However, a good resource for soundcard issues is link Gentoo-Alsa-guide.
Note: you have to unmute the devices you want to use. If you want to unmute a microphone, start alsamixer and hit Tab which brings you to the capture device controlers.
[edit] Intel PRO/Wireless 3945ABG WLAN
You have to use the ipw3945 driver from portage. How to do this is covered here:
UPDATE: You don't need any more to emerge the driver from portage, as the kernel 2.6.24 is released You should choose it in the kernel configuration.
[edit] Suspend to Ram
Not tested, but try out the sys-kernel/suspend2-sources for advanced suspension capabilities.
[edit] ACPI
as said above, power button and sleep button events work, while lid-close-event doesnt (nevertheless the LCD is switched off from the hardware side). The battery works pretty well and you can use my script to query the battery state; just move it to /bin/ or whereever you want and it will be fine:
| File: /bin/battery_state |
#!/bin/bash
if [[-n `/bin/grep yes /proc/acpi/battery/BAT1/state `]]
then
echo "remaining capacity: $(( `/bin/grep remaining /proc/acpi/battery/BAT1/state | /bin/sed -e 's/^.*:\ *//' -e 's/...$//'`/48 ))%"
echo "estimated duration: $(( (`/bin/grep remaining /proc/acpi/battery/BAT1/state | /bin/sed -e 's/^.*:\ *//' -e 's/...$//'` * 60) / `/bin/grep rate /proc/acpi/battery/BAT1/state | /bin/sed -e 's/^.*:\ *//' -e 's/..$//'` )) min"
else
echo "battery not present";
fi
|
Don't forget to make it executable:
chown root:root /bin/battery_state chmod 755 /bin/battery_state
[edit] CPU frequency scaling
works out of the box, only activate the relevant modules in the kernel
| Linux Kernel Configuration: |
Power management options (ACPI, APM) --->
CPU Frequency scaling --->
[*] CPU Frequency scaling
Default CPUFreq governor (performance) --->
<*> 'powersave' governor
<*> 'userspace' governor for userspace frequency scaling
< > 'ondemand' cpufreq policy governor
<*> 'conservative' cpufreq governor
<*> Intel Enhanced SpeedStep
|
If you want your box to power up with performance governor but after boot continue in conservative mode, do the following:
echo "cpufreq-selector -g conservative" >> /etc/conf.d/local.start
