I used the first default Debian/GNU/Linux Woody CD to boot the machine. The Bios is capable of booting of the i.Link DVD/CD-RW including the kernel + ramdisk. Afterwards the DVD is not usable anymore as the default kernel does not include any i.Link aka iee1384 drivers. The default kernel (bf24) will hang on boot because of the ALI driver trying to autoprobe for UDMA which is not possible until 2.4.20 because of North/Southbridge issues. I used the 2.2 kernel to boot and install and later upgraded to a 2.4.20.
Here are some pictures of the interieur of my C1MHP.
For kernel 2.4.19 i was using the a couple of patches to enable battery status, suspend, framebuffer and suspend/resume capabilities of the sonypi module.
sonypi-suspend-resume-2.4.19 Patch for enabling suspend/resume capability to the sonypi driver needed for brightness control and the jogdial.
acpi-20020918+swsusp.diff acpi + swsusp 14 patch for 2.4.19
patch-radeon Workaround for a bug in the Radeon M6 reporting its size as 0MB
patch-sonypi-removedelay Decrease a delay which should only happen if something goes wrong. Looking in the kernel for 300sec is definitly a bug.
patch-memorystick A patch for the usb-storage unusual device list to prevent the bootup hang for the memory stick slot which is a usb-storage device.
acpi-20021212-2.4.20.diff acpi 2.5 backport
patch-acpi-acpi20021212-swsusp19 software suspend beta 19
patch-acpi-acpi20021212-swsusp16 software suspend beta 16 - more stable than 19 - use one or the other
2.4.20-rc1-sonypisuspend.patch sonypi suspend fix
radeonfb-041103-2.4.20.diff RadeonFB patch collection by Benjamin Herrenschmidt. Fixes at least the 8MB bug
patch-radeon-sync-polarity RadeonFB patch against the above to fix the sync polarity issues needed for LCDs
patch-usb-storage-memorystick Memorystick usb storage unusual fix
patch-2.4.20-mh7 BlueZ update
You definitly need newer modutils and module-init-tools. Please look at Adrian Bunks page for more infos on woody backports.
2.5.x | radeonfb gets detected but does not switch to radeonfb |
2.5.x | /etc/init.d/hotplug stop does hang the machine |
2.5.70 | does not boot - Hassles with IRQ 9 |
2.5.x | echo 3 >/proc/acpi/sleep set the machine to S3 - Wakeup does not work |
2.5.x | alsas oss mixer/pcm emulation is non existant - warning messages |
You definitly need newer modutils and module-init-tools. Please look at Adrian Bunks page for more infos on woody backports.
I am personally using sarge and 2.6 works like a charm. Included in thie kernel image is the latest swsusp patchset.
The USB part is quite simple. The controller is a OHCI type so simply load the usb-ohci driver. Be sure to have "hotplug" installed as its needed to load the modules.
The problem with no devices getting detected after resume is fixed by a hotplug stop/start while suspend/resume
The problem with the hang on boot in case the usb-storage driver get loaded is fixed by the little patch above
IDE currently runs on multiword DMA as probing for UDMA with the ALI driver lets the machine hang. This is because the driver assumes an ALI Northbridge which is not the case in the PCG-C1 - Different hacks have shown up which all seem not to be real fixes. Voices have been that Alans 2.4 ac series supports UDMA.
The Winmodem seems to be manufactured by Ambit Microsystems. The Datasheet can be found here. The Chipset used is the Agere Scorpio chipset for AC/MC 97 based Softmodems. A small Datasheet can be found here.
I mailed Ambit about Linux drivers and got this reply:
I tried the Connexant HSF driver which gives this output.
I also tried the SmartLink driver slmdm-2.7.14.tar.gz which compiled loads and seems to do something to the modem. It goes off-hook but complains NO CARRIER after a while. In the syslog it outputs this:
After writing the last paragraph i got mail saying that the current driver does not work but an slight older one - the slmdm-2.7.10.tar.gz should work. I just verified and it worked. The driver also complains about codec incompatibility but nevertheless you get a connect.
I had no luck getting APM to work or suspend/hibernation. I started using swsusp which is a in kernel software suspend patch. It works astonishingly well with a accurate sized swap partition. WIth 2.4 i do however have sometimes the problem to resume. The machine simply hangs copying back pages which seems to be USB related.
For initiating suspend on closing the lid one can use the acpid (Probably you also need the acpi backport patch i am using).
Put this file into /etc/acpi/events/lidbtn which directs the lid button events to the appropriate shell script
Additionally you need a suspend script. I wrote my own suited to my needs and the Picturebooks specialities. You can find the lidbtn.sh.
With kernel 2.6.10 even ACPI S3 (Suspend-To-Ram) works. There are some quirks necessary as the Radeon will not get initialized. You need to use VGA Console and a small tool to reinitialize the radeon after resume. I am meanwhile using the debian hibernate package and wrote myself a little scriptlet to put into /etc/hibernate/scriptslets.d to boot the radeon. My hibernate config looks like this.
With some tweaking bluetooth works as expected. Depending on the kernel version you might need some addtional patches to get it to work - At least 2.4.20 does not work out of the box. See the patch section.
Current userspace utils can be found at the below mentioned apt sources. Install bluez-utils and probably bluez-sdp.
As i don't need the daemons all the time i removed the startup scripts to bluez-utils and bluez-sdp and put this bluetooth.agent into the /etc/hotplug directory. This will start the daemons in case you switch on the bluetooth and get a usb insert event.
To get the memory stick slot to work you will need the above mentioned patch. Otherwise usb-storage will hang on boot. After that the whole memory stick issue is straight forward. On insertion of the stick you will see a sonypi event and will be able to mount the memory stick as an scsi device
All Sony Vaio notebooks have a special char interface for the special functions like the jogdial, capture button and other interesting features. For this one needs to compile the sonpi char driver into the kernel and create a special char device in /dev for it
To automatically load the sonypi module i use this file /etc/modutils/sonypi. Don't forget to run update-modules.
I am using the Debian sjog package and the sonypi module to get this to work. My .sjogrc looks like this:
To start sjog i created a file /etc/X11/Xsession.d/92sjog running sjog before even running the window manager - So you can tune down your volume before the KDE splash screen comes.
The Motion Eye itself is a simple device one could access through the hardware mpeg encoder. In former C1 models this had been a Kawasaki MPeg chip. With the C1MHP and probably other C1Mxx models Sony decided to switch to a different chip.
Citicorp does not seem to exist anymore and it seems Fujitsu/Siemens has bought the leftovers.
Rumors have been around on the c1 mailinglist that Fujisu
the IP owner of the MB86393 is handing out documentation for interested
partys under NDA. Contact Miguel.Estevez@fme.fujitsu.com
for more informations.
Longrun and powersaving i do with an ACPI powerchange event. Just let the ACPId run this script for you
I got this with googleing forgot from whom - Please not that you might need to change the sed line in case you are not using the 2.5 ACPI Backport as file names and content changed
The firewire controller is straight forward. Just load the ohci1394 driver and you will see it as an SCSI Device. XCDRoast is happy to use it for burning. The only problem i see currently is that unloading the ohci1394 driver sometimes hangs so suspending fails.
The sound device is the ALI 5451 chip with an Yamaha YMF753 AC97 Codec. The Ali is supported either in OSS as the trident driver or in alsa as the Ali5451. The YMF753 is unknown to the trident driver thus the trident does not support any special features. The datasheet can be found here.
Using alsa use this as /etc/modutils/alsa and run update-modules.
To get the framebuffer to work you need the above patch as the onboard Radeon M6 falsely advertises as a 0MB device. After applying the patch the RadeonFB works flawless. To enable the framebuffer put the following into your lilo.conf.
The only problem remaining the framebuffer is that the vsync polarity is set as low which causes the screen to be shifted up by roughly 3mm which makes the lowest 3mm unusable and shifts the upper 3mm off script. My solution would be to issue a fbset -a -vsync 1 before running XFree.
To get XFree86 to work one needs XFree 4.2. I made Woody XFree4.2 packages To make it easy one only needs to install the server with these packages:
XFree does not turn off the backlight when it goes into DPMS modes. There are a couple of tools around to solve this outside of X. I made a patch against the Debian XFree 4.2.1 source package which resulted in a ATI Radeon driver which turns the backlight off. There is also a different approach available which has no effect for me YMMV.
There is also something called "Dynamic Power Saving" in the Mobility chipsets which seems to be a lot like "longrun". There is a patch available and here is some explanation.
To make most out of backlight poweroff and reduce the number of switches on the backlight (The lifetime expectation for backlight is reduced by the number of powercycles) i am using this script in /etc/X11/Xsession.d/94dpms
In case the system blanks the screen you hit any key and you saved one powercycle.
The ethernet is a standard rtl 8139 chipset - Kernel 2.4.19's driver is called 8139too. I tried to write a shell script which would automatically ifup and ifdown the interface but it seems the 8139too driver does not allow one to query the link state in case the interface is shut.