Lenovo N100 and Gentoo

Gentoo logo After time full of glory spend on using KUbuntu distribution it is time for change. Everything worked there as should, so if you don’t have a time for file editing, you are happy for speed of your system stop reading this article now ๐Ÿ™‚
Gentoo… It’s like test of your linux skills. Actually the main reason why I installed parallel with Ubuntu is optimization. I’ve just thought is it some way for speed up my system. I tried apt-build but it didn’t read my compiler flags, hence Gentoo was very good choice for my purposes.
What are advantages of using this distro. Your system is maximally optimized for your hardware and libs which you like. You can adjust optimal flags for your compiler and create special dedicated system.

After one month of using hardware is working fine. System is indeed faster and more stable (I’m using unstable branch ~x86 :). I can be sure that packages are compiled with optimal dependencies which you defined by USE flags. Gentoo has great documentation. You can find information how to install system directly, via chroot, network etc. step by step. Please just start from http://www.gentoo.org.

SYSTEM

kernel
First we need to compile own kernel. I have system working quite well so of course I share it here. It is not optimized .config yet. But I will update final version as well in the future. At the time of writing this article I had kernel 2.6.33. I’m using also ext4 partition, actually converted from ext3 few days ago. It is a reason why in kernel ext4 and ext3 support has been compiled in image not as modules. In near future I’m going to replace kernel to zen-kernel…

make.conf
For compilation I use this make.conf file. I’m KDE enthusiast, so USE flags are optimized for that. Do not look at cpp flags. I’m constantly trying to optimize them.

lenovo linux # vi /etc/make.conf
# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
CFLAGS="-march=prescott -mtune=prescott -Os -pipe"
CXXFLAGS="${CFLAGS}"
LDFLAGS="-Wl,-O1 -Wl,-z,now -Wl,--as-needed -Wl,--enable-new-dtags -Wl,--sort-common -s"
# Additional optimization: -ffast-math -funroll-loops -fpeel-loops -fno-tree-vectorize
# WARNING: Changing your CHOST is not something that should be done lightly.
# Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.
CHOST="i686-pc-linux-gnu"
MAKEOPTS="-j8"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="mmx -3dfx -3dnow -Xaw3d -acl acpi -adns -afs -aim alsa -altivec -atm -birdstep -blas bluetooth bzip2 cdr -chasen -cjk clamav -coreaudio css dbus -debug -doc dri -dts dvd dvdr -eds -emacs -emboss -empress-bcs encode -esd -esoob -evo -examples exif ffmpeg firefox flac -frontbase -gcj gif gimp -gnome -gnome-keyring -gphoto2 gtk hal imagemagick -ibm -icq -ipod -ipv6 kde -kerberos -ldap lcms lame -lash -libgda -lirc -lua lzo mad -matrox mp3 mp4 mpeg mplayer -msn -mssql -mule -multilib -msql -nas networkmanager -nis nls -ocaml -ocamlopt -oci8 -oci-instant-client offensive ogg -old-linux opengl -oracle -oscar -oss -pch plasma png -postgres -prelude -qt3 qt4 quicktime x264 -radius raw -sapdb smp -snmp sockets -mysql sse sse2 sse3 -sybase syslog -tcl -timidity -v4l -v4l2 usb vcd -voodoo3 wifi -xemacs xinerama xcomposite -xinetd xosd xv xvid -yahoo -yaz zlib extras fts3 -gdbm upnp dlna samba gmplayer semantic-desktop lastfm wicd lzma kipi djvu chm ebook gadu lm_sensors threads sensord zip rar device-mapper rss ssl hddtemp thinkpad java nls bash-completion audacious -handbook nptl"
FEATURES="ccache distcc"
INPUT_DEVICES="synaptics mouse"
VIDEO_CARDS="intel"
LINGUAS="en en_GB pl"
PORTDIR_OVERLAY="/usr/local/portage"
ACCEPT_KEYWORDS="~x86"
ACCEPT_LICENSE="skype-eula"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
ALSA_CARDS="hda-intel intel8x0 intel8x0m usb-audio"

grub
By default in gentoo we install grub without ext4 support. I’m using newer from existing installation if Ubuntu but of course if your /boot directory is not as ext4 (which is actually preferred) you can use existing one. The best way is installing grub2. Very nice tutorial is here: http://en.gentoo-wiki.com/wiki/Grub2

HARDWARE

My processor:

lenovo linux # cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 14
model name : Genuine Intel(R) CPU T2050 @ 1.60GHz
stepping : 8
cpu MHz : 1600.000
cache size : 2048 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon bts aperfmperf pni monitor est tm2 xtpr pdcm
bogomips : 3191.55
clflush size : 64
cache_alignment : 64
address sizes : 32 bits physical, 32 bits virtual
power management:

Rest of stuff:

lenovo linux # lspci
00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (rev 03)
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 02)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 02)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)
00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA IDE Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02)
03:00.0 Network controller: Broadcom Corporation BCM4312 802.11a/b/g (rev 01)
05:01.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
05:04.0 CardBus bridge: ENE Technology Inc CB1410 Cardbus Controller (rev 01)
05:06.0 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 IEEE 1394 Controller
05:06.1 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 19)
05:06.2 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 0a)
05:06.3 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev 05)

Soundcard
Sound works properly. There is no issue with headphone jack. I think it was fixed some time ago in kernel driver. I don’t use any pulseaudio, only raw alsa from kernel and the following packages:

media-libs/alsa-lib-1.0.22-r1
media-sound/alsa-headers-1.0.22
media-sound/alsa-utils-1.0.22-r1

SD/MMC Reader
So far SD cards were read with high CPU usage during copying. Touchpad didn’t work smoothly until operation had finished. Few days ago I found reason and solution those problems. Fix is here.

Wireless network
We can use native kernel module b43 which recognizes Broadcom chipset, but there is problem with LED indication. I installed ndiswrapper drivers (mini how-to is on my “Lenovo N100 on SuSe” article) end they are working for me very well. As gui network manager please install wicd since KDE 4.4 doesn’t have native manager yet.

VGA
I have Intel 945GM chipset. Everything what you have to do is add appropriate entry in make.conf and recompile your X.

Multimedia keys
We don’™t have to install any extra software. After install distribution we have properly configured multimedia keys.

Sensors
gkrellm program indicate proper temperature on termal zone. After installing lm_sensors Core temp indicator will be activated as well. I’m still wondering why hddtemp doesn’t work properly with gkrellm.

Are you looking for more info? Take a look on:
http://en.gentoo-wiki.com/wiki/Lenovo_3000_N100
tuxmobil.org

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s