I do not own TC1000 anymore, so do not expect any updates. You might be interested in Johannes Wilm's version of this document, though.
I expect you to have a general Linux knowledge. Preferably Gentoo Linux
knowledge. And I assume that you had installed some (preferably Gentoo)
Linux distribution on a "typical" PC at least once.
It's not a step-by-step guide. More like the Installation Instructions
extension and modification. You are expected to follow general Gentoo
Installation Instructions.
And please keep in mind, that I'm not a native english speaker and my english is... well - you'll see. My apologies.
I was talking to a friend once and I said that if I would buy myself a laptop computer, it would
definetely be a TabletPC. I had no idea how soon it came true.
After a month or so I got the opportunity to buy a used TC1000 cheaply
and I got it.
I played with preinstalled XP for some time. It's nice. It works. But I
wanted my GNOME on it, where I
feelt the most comfortable and I finally decided to try to install
Linux.
After some research I found a page describing all
components that I need to take care of. It looked good.
I also found some notes about Gentoo on
Transmeta Crusoe based computer. I had choosen my
favourite Gentoo Distribution and my favourite 2.6 series Linux
kernel.
Below is a record of the long journey I went... ;-)
I don't want to wipe the XP installation. I might find it usefull and I
want to migrate the data. So I have to resize the Windows partition.
There are several tools to do that. Use the one that best fits you.
I shrunk first partition to 20GB - 10GB is enough for Linux.
How do You install Linux on a floppyless and CD-ROMless computer?
The easiest way would bee to boot from external USB CD-ROM. I don't have one though.
First idea:
I got ZipSlack unpacked it and launched.
(I have leftovers of Windows 98, so I am able to boot DOS and use
loadlin.exe.) No bonus. Kernel complained about my 32 bit PCI bus
wanting me to set it to 16 bit in BIOS. Yeah, right - there is no such setting.
After some googling I found no solution.
Second Idea:
I already have Cooperative Linux installed.
So I configured the second partition under coLinux. Voila - I have a running
Linux that I can begin installation with. Great!
I'm just following The Great Gentoo
Linux/x86 Handbook...
with the following exceptions:
It looks that 2.6 series kernel has support for all TC1000 hardware
without patching. So I'm going "the hard way". ;-)
Tweaking all options took me some time after the actuall installation.
I'll save you the trouble. You'll find all the needed files in the
Appendix A.
I tried the Gentoo Patched 2.6 Linux sources - with good result.
# emerge sys-kernel/gentoo-dev-sources
You have to put ohci-hcd and usbhid to /etc/modules.autoload.d/kernel-2.6. And do it at the very beginning becouse if it does not load properly you end up with non-working keyboard! (been there, seen that)
We'll need a hotplug package, so:
# emerge hotplug # rc-update add hotplug default
# nano -w /etc/env.d/00lang: LANG=pl_PL LC_ALL=pl_PL LINGUAS=pl # env-update # source /etc/profile
Do it before emerging system, to choose/activate the Polish translations. Substitute your locale. ;-)
Installing GRUB on the HDD.
I couldn't do it from coLinux, becouse it does not have access to the whole hard drive.
I finally resorted to pulling out the HDD and connecting it to a "big" PC machine
and using GRUB Floppy. And... it didn't work. I created a Linux partition under Windows,
and it had a non-Linux type set. ARGH!
So I got a Tiny Linux UPX Bootdisk image and
launched my installed Gentoo Linux using it's kernel, changed the partition type with
fdisk and finally installed GRUB both on MBR and the Linux Partition (it saved me
later).
After inserting HDD back to the TC1000 it started with GRUB allowing me to launch my
Gentoo instalation. At last!
I'm unable to install Linux without an external CD-ROM drive and without help from another PC.
So maybe the easier way is to use PXE installation? Try it out. ;-)
Working hotplug should had already inserted all required modules for you, but I preffer to load them manually at boot, just to be sure I have them when for example I would brak the hotplug package later. :-)
I need to know "What's inside" to configure it.
# lspci 0000:00:00.0 Host bridge: Transmeta Corporation LongRun Northbridge (rev 03) 0000:00:00.1 RAM memory: Transmeta Corporation SDRAM controller 0000:00:00.2 RAM memory: Transmeta Corporation BIOS scratchpad 0000:00:05.0 VGA compatible controller: nVidia Corporation NV11 [GeForce2 Go] (rev b2) 0000:00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 40) 0000:00:07.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06) 0000:00:07.4 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 40) 0000:00:07.5 Multimedia audio controller: VIA Technologies, Inc. VT82C686 AC97 Audio Controller (rev 50) 0000:00:07.6 Communication controller: VIA Technologies, Inc. Intel 537 [AC97 Modem] (rev 30) 0000:00:08.0 Ethernet controller: Intel Corp. 82551QM Ethernet Controller (rev 10) 0000:00:0a.0 Ethernet controller: Atmel Corporation 802.11b Wireless Network Adaptor (at76c506) (rev 11) 0000:00:0b.0 CardBus bridge: Texas Instruments PCI1520 PC card Cardbus Controller (rev 01) 0000:00:0b.1 CardBus bridge: Texas Instruments PCI1520 PC card Cardbus Controller (rev 01) 0000:00:0c.0 USB Controller: NEC Corporation USB (rev 41) 0000:00:0c.1 USB Controller: NEC Corporation USB (rev 41) 0000:00:0c.2 USB Controller: NEC Corporation USB 2.0 (rev 02)
Some fine hardware. Carefully rewrite it on a scrap of paper for later
usage if you want to discover all software support for it by yourself.
If not, go on reading. ;-)
It is just working with the e100 driver. Add it to /etc/modules.autoload.d/kernel-2.6
Atmel card is supported by 2.6 kernels. But it requires some setup.
You need hotplug and firmware installed.
First step - module: add atmel_pci to
/etc/modules.autoload.d/kernel-2.6 (just after e100)
Second step - firmware: get
atmel-firmware-1.0.tar.gz, unarchive and ./install.sh
Reboot and check dmesg if it is working and does not complain about missing
firmware.
Third step - setup second ethernet adapter script:
# ln -s net.eth0 /etc/init.d/net.eth1
and edit /etc/conf.d/net
Fourth step - install wireless-config:
get wireless-config.ebuild and follow the instructions on
Gentoo Forum.
Setup /etc/conf.d/wireless.
# /etc/init.d/net.eth1 start
and if everything works:
rc-update add net.eth1 default
The driver is already in kernel.
# emerge alsa-utils
use /etc/modules.d/alsaand
# /etc/init.d/alsasound start # rc-update add alsasound defaultand unmute channels with alsamixer
# emerge longrun
Longrun kernel support does not create devfs entries, so I had to create device files manually:
# mkdir -p /dev/cpu/0 # mknod /dev/cpu/0/msr -m 0644 c 202 0 # mknod /dev/cpu/0/cpuid -m 0600 c 203 0
I want to be able to shutdown the machine with it's power switch and switch Longrun profiles when connecting/disconnecting AC Adapter.
# emerge acpi acpid # /etc/init.d/acpid start # rc-update add acpid default
I based my script on Gentoo Forums once again. You'll find it in Appendix A. Put /etc/acpi/action.sh startup to /etc/conf.d/local.start.
# emerge lm-sensors
and then
# sensors-detect
created perfectly fine /etc/conf.d/lm_sensors config
# rc-update add lm_sensors default
# emerge sys-apps/pcmcia-cs
Switch lines in /etc/conf.d/pcmcia to:
PCIC="yenta_socket" PCIC_ALT="i82365"
and
# /etc/init.d/pcmcia start # rc-update add pcmcia # lsmod Module Size Used by serial_cs 6888 1 ds 13284 5 serial_cs yenta_socket 13408 1 pcmcia_core 52676 3 serial_cs,ds,yenta_socket
As you can see yenta_socket is loaded and it loaded serial_cs subsequently. Let's see what it is. :-)
# cardctl config
Socket 0:
not configured
Socket 1:
Vcc 3.3V Vpp1 0.0V Vpp2 0.0V
interface type is "memory and I/O"
irq 3 [exclusive] [level]
speaker output is enabled
function 0:
config base 0x0100
option 0x41
io 0x02f8-0x02ff [8bit]
# cardctl ident
Socket 0:
no product info available
Socket 1:
product info: "Bluetooth BT0100M", "", ""
function: 2 (serial)
Yey! It's my D-Link DCF-650BT CompactFlash Bluetooth Card. :-)
I have succesfully set up my CF-card Bluetooth adapter.
It works perfectly with my Nokia 6600 mobile phone and Logitech MX900 BT Cordless mouse.
Details are out of scope of this document. If you want them though -
mail me. :-)
It's an Agere Modem on an AMR on VIA AC97.
It's supported with Smart
Link Driver/Daemon.
# FEATURES="-sandbox" emerge slmodem
edit /etc/conf.d/slmodem - use MODULE=slamr
# /etc/init.d/slmodem start # rc-update add slmodem default
and add your user to the group dialout
and something to test it out
# emerge minicom lrzsz
use /dev/ttySL0 as your modem device
It's a normal AT keyboard, but it sends unusual keycodes and the kernel complains:
atkbd.c: Unknown key released (translated set 2, code 0x84 on isa0060/serio0). atkbd.c: Use 'setkeycodes e004 <keycode>' to make it known.
so i did as it suggested (also created small side keyboard map):
setkeycodes e002 130 setkeycodes e003 131 setkeycodes e004 132 setkeycodes e005 133 setkeycodes e006 134 setkeycodes e007 135 loadkeys /etc/tc1000.map
in /etc/conf.d/local.start (rename tc1000.txt to tc1000.map)
I had a hard way with X though. The linux-tablet-pc xmodmaprc does not work for me - I have different
keycodes under X than under console.
After fixing it and putting at /etc/X11/Xmodmap it started working under
GDM, but not under GNOME.
GNOME is Using the new Xkb not Xmodmap.
I managed to create /etc/X11/xkb/symbols/tc1000 code-to-symbol mapping,
but I have no idea how to make it work under GNOME. :-(
I use the X.org XServer
# emerge x11-base/xorg-x11 # rc-update add xfs default # /etc/init.d/xfs start
with the following xorg.conf
I used to use nVidia provided binary only driver for the landscape mode.
But using it trashes the console, causing the machine to freeze when you switch back to text console.
And since shutting down X server means switching back to textmode, you cannot turn the machine off
normally when you use the nVidia binary driver.
Only with NVIDIA 1.0-5336 driver the console is working! It flickers horribly
but switching to it does not freeze the TC1000.
And since the X.Org nv driver works very fine now, I resorted to using only the nv driver.
Following is only for reference and completeness. DO NOT INSTALL IT!
Following the Gentoo nVidia Guide
# emerge nvidia-glx nvidia-kernel
didn't work, becouse Crusoe processor is lacking MTRR support,
but bliq had found a solution
for this problem.
# emerge --fetchonly =media-video/nvidia-glx-1.0.5336-r2 # sh /usr/portage/distfiles/NVIDIA-Linux-x86-1.0-5336-pkg1.run
I need to put via-agp and nvidia modules to /etc/modules.autoload.d/kernel-2.6.
Switching the orientation on-fly (XRandR extensions) does not work with nv driver. Only xorg.conf options work.
To be able to choose screen orientation at startup I had written an
/usr/X11R6/bin/X wrapper to select screen layout via kernel parameter.
Put the script in place of the existing X symlink and make it executable.
# chmod +x /usr/X11R6/bin/X
Also check the supplied /boot/grub/grub.conf file.
Grab my fpi2002-0.5.tar.gz port of the
fpi2002 enabler for kernel 2.6
and the tc1k-1.1.tar.gz driver for
XFree.
Compile and install fpi2002 and add it to /etc/modules.autoload.d/kernel-2.6.
It needs to be loaded before any other serial port driver for it to
work.
Unarchive tc1k pen driver and copy it to XServer modules dir
# cp tc1k-1.1/tc1k_drv.o /usr/X11R6/lib/modules/input/
and use my xorg.conf. ;-)
My favourite desktop :-)
# emerge app-admin/fam # rc-update add famd default # emerge gnome
Test it with startx and then
# rc-update add xdm default
# emerge gok # emerge xvkbd
# emerge xstroke
Some GNOME applications complained about lack of accesibility layer:
# emerge libgail-gnome
Next step - setting my Home-Dir as my Desktop:
$ gconftool-2 -s /apps/nautilus/preferences/desktop_is_home_dir true -t bool
This helps with the workspace metaphore and motivates me to keep my home dir
cleanly organised.
Then create some usefull dirs: Documents, Images,
Music, Media, Download; with proper emblems.
# uname -a Linux tabby 2.6.8-gentoo-r4 #3 Sun Sep 19 10:13:39 CEST 2004 i686 Transmeta(tm) Crusoe(tm) Processor TM5800 GenuineTMx86 GNU/Linux # rc-status Runlevel: default local [ started ] netmount [ started ] domainname [ started ] pcmcia [ started ] syslog-ng [ started ] hotplug [ started ] net.eth0 [ off ] net.eth1 [ started ] acpid [ started ] famd [ started ] xdm [ started ] xfs [ started ] bluetooth [ started ] sshd [ started ] slmodem [ started ] lm_sensors [ started ]
Everyone loves screenshots... :-)
There are still some things to set up.
Using GOK with
GDM login
Screen rotation - nv driver supports it, but lack of XRandR rotation support
gensplash
Journal program - http://www.adebenham.com/gournal/ - have to find .5h to write and test .ebuild
Author: Tomasz Sterna
Email: tomek@xiaoka.com
XMPP: smoku@xiaoka.com