Toshiba Satellite Pro 420CDT


Forum: Laptops
Topic: Toshiba Satellite Pro 420CDT
started by: DaCuBaN

Posted by DaCuBaN on Oct. 08 2004,21:33
Aloha, yet another 'newbie' trying to revive a piece of old hardware - in this case a P100 with a whopping 16Mb of ram and a hefty 1.3Gb HDD.

Anyway, after starting to boot with fb800x600 failsafe expert I get the following message:

Quote

Accessing DSL image at /dev/scd0...
Total memory found 13444 kB
Creating directories and symlinks on ramdisk....Unable to handle kernely paging request at virtual address 0168a4b4
printing eip:
c012dce5
*pde = 00000000
Ooops = 0000
CPU: 0
EIP: 0010:[<c012dce5>] Not tainted
EFLAGS: 00010286
eax: 0168a4b4 ebx: c00362d0 ecx: 00000020 edx: 00000020
esi: 0168a4b0 edi: c02a42bc ebp: 00000400 esp: c06adf24
ds: 0018 es: 0018 ss: 0018
Process cp (pid: 39, stackpage=c06ad000)
Stack: 00000000 c0b5b420 c00362d0 c01696e9 c0b5b420 c0c10070 c0b5b420 c0b59f90
c016c387 c0b5b420 c0c10070 c06ac000 c0c10070 ffffffff 000001ed c0149a17
c0c10070 c0b59f90 000001ed c0b59f90 000041ed c06adfa4 c0b59f90 c0149af4
Call Trace: [<c01696e9>] [<c016c387>] [<c0149a17>] [<c0149af4>] [<c0108997>]

Code: 39 46 04 74 0e 31 c9 ba 03 00 00 00 89 f0 e8 6c aa fe ff 5b
Segmentation Fault


Now I'll be blunt: I have little idea what I'm doing with a linux system. My previous experiences have all been either mandrake, fedora or SuSe, and all on 'new' equipment.

Am I simply in over my head? Is the hardware simply not compatible? (Although I'm getting hda and hdc picking up as Toshiba MK1301MAV and Toshiba CD-ROM XM-1402B and both seem to function) Have I done something ridiculously stupid?

I have the distribution both on a cd in the drive (0.8.1) and the contents of /knoppix/ have been copied over - in the above instance it was booted from the CD, but the same happens when booted from the HDD... ???

Posted by DaCuBaN on Oct. 08 2004,23:00
Just a quick update, when trying to boot with just failsafe, I can get to the following:

Quote
Done.
Starting init process.
<6>Freeing unused kernel memory: 140k freed
INIT: version 2.78-knoppix booting
INIT: No innittab file found

Enter runlevel:


...and irregardless of which runlevel I try to enter, it responds:

Quote

INIT: Enter runlevel: x
INIT: no more processes left in this runlevel


This is after I see the 'segmentation fault' error. Suffice to say I'm puzzled :D

Posted by ke4nt1 on Oct. 08 2004,23:09
with only 16 megs, and no swap yet to count on ..

Try these options as well to get to a prompt..

We can work on X later..

" dsl 2 "

or

" failsafe 2 "

Also, I have seen this when the cdrom is partially flakey..
In other words, it would read OK on my larger system,
but in my old laptop, it would not read well..
Burning a fresh copy of DSL at a slower burn speed, like 4x or 2x
on some fresh media, made a difference for me..

73
ke4nt

Posted by dbarl on Oct. 09 2004,00:01
I've gotten DSL working on a 420CDT with 100mhz/40MB RAM, so other than the RAM, the hardware will definitely support it.  Good luck with it.
Posted by DaCuBaN on Oct. 09 2004,00:12
Thanks for the advice - the only problem that remains is that it's 1am here, I live quite rurally and only have 1 CD left... :laugh:

I've copied the /knoppix/ files over onto a 200Mb fat partition (the only partition on the drive) and I'm still having the same problem, leading me to believe it's unrelated to the disk. However, I'll quite happily burn another copy of it - should I stick with the latest version however, or would I be more likely of success with a retro-fit?

Anyway, fb800x600 failsafe 2 and fb800x600 dsl 2 both produced the same "Segmentation fault" error output, although it continued:

Quote

Starting init process.
<6>Freeing unused kernel memory: 14k freed
INIT: version 2.78 knoppix booting
INIT: No inittab file found
INIT: Entering runlevel: 2
INIT: no more processes left in this runlevel


and sits there... ???  :laugh:

Posted by DaCuBaN on Oct. 09 2004,00:24
Quote
no swap yet to count on


Well this was my concern as well, what I'd like to do is boot up into the prompt and make a swap partition before installing - would dsl recognise and use one?

Posted by ke4nt1 on Oct. 09 2004,03:36
If you have a floppy drive on that box..
Get a copy of tomsrtbt linux.. It's only about 2 megs in size.

Follow the website instructions to write it to a FRESH floppy disk.
Trust me , pulling one outta the bottom of an old box o' floppys will give you grief.

Boot your system with the bootdisk, and use the cfdisk or fdisk utilities on it
to make a swap partition on your HD, and run mkswap /dev/hd?? (??=your swap )

Then try the DSL boot from CD..
DSL will recognize your swap, and give your system some needed room to operate.

And I'd still give the "dsl 2" command a try without the fb800x600 included..

73
ke4nt

Posted by DaCuBaN on Oct. 09 2004,05:00
Quote
I'd still give the "dsl 2" command a try without the fb800x600 included


I did, and I got a suspiciously similar looking error that I couldn't see the bottom or right hand side of :laugh:

As for tomsrtbt, I've got a copy of BootE here, and I've partitioned accordingly and mkswap /dev/hda2'd from there - now is there some method of kicking things off from within that, as rebooting from the dsl floppy (no cdrom boot on this oldie) there was no chance - still the same Unable to handle kernel paging request at virtual address xxxxxxxx and Segmentation Fault. The former would seem (with my limited knowledge) to intimate cache/memory...

Is there a method of installing dsl directly from a linux boot floppy like tomsrtbt/BootE ???

*EDIT*
I've just noticed that I've mistyped the version number in the title, it is in fact 0.8.2 I'm trying to install...

Posted by DaCuBaN on Oct. 09 2004,08:23
Just a quick note to give you all a little more info on what I'm now working with:

Quote

Disk /dev/hda: 1358 MB
Device     Boot  Start  End  Blocks     Id System
/dev/hda1   *       1    187 376960+ 83 Linux
/dev/hda2            1    187 127008   83 Linux swap
/dev/hda3            1    187 822528   83 Linux


I'm booting both 0.7.2 and 0.8.2 (from floppy) and receiving both the original error I've outlined above, and with some options such as failsafe or noacpi  I can get as far as the person in < this thread >, however I've long since exhausted the few options I can find documented...

I'm just a little at sea over this one; This machine runs NetBSD (the installation of which nothing remains, so much for self-confidence :laugh: ) without a problem, and it's (arguably) more demanding.

Of course, it's a different kettle of fish entirely...

Posted by DaCuBaN on Oct. 09 2004,17:52
Quote
Boot your system with the bootdisk, and use the cfdisk or fdisk utilities on it
to make a swap partition on your HD, and run mkswap /dev/hd?? (??=your swap )


This seems like the most sensible option to me, so as listed above I have two formatted ext2 partititions, plus swap. The problem is, how would I go about incorporating swapon /dev/hda2 into the non-existant /ect/fstab on the dsl boot disk? ??? I can boot into BootE without difficulty; is there any way to kick of the dsl boot-cd process from within here (where I can easily issue swapon)?

Posted by cbagger01 on Oct. 09 2004,18:41
The liveCD bootup process will scan your partition tables any dynamically build a new /etc/fstab on-the-fly.

So you just need to make sure that:

1) You have created a swap partition with a tool like cfdisk.

2) you have formatted it using a tool like mkswap or something like that.


Something like toms root boot floppy disk can get these tasks accomplished.

Then DSL will automatically detect the swap partition and start using it.

You can also go back in time and use DSL version 0.5.3.1 if you have no other choice.

Posted by DaCuBaN on Oct. 09 2004,18:56
Quote
So you just need to make sure that:

1) You have created a swap partition with a tool like cfdisk.

2) you have formatted it using a tool like mkswap or something like that.


fdisk returns:

Quote

/dev/hda1 83
/dev/hda2 82
/dev/hda3 83


All 83's are formatted to ext2, and I've mkswap'd /dev/hda2 - under boote I can swapon /dev/hda2 and free returns:

Quote

Swap: 127004


So it's definitely working, however I can't boot the system from the cd (although I can mount it in boote) so I'm using the boot floppy (which also picks up & reads the cdrom) - I've edited syslinux.cfg's userdef to read:

Quote

LABEL userdef
KERNEL vmlinuz
APPEND ramdisk_size=8192 init=/etc/init lang=uk vga=788 nosound noapic noscsi nodma noapm nousb nopcmcia nofirewire noagp nomce nodhcp xmodule=vesa initrd=miniroot.gz BOOT_IMAGE=knoppix


I'm just rebooting now to retrieve the error I recieve...

Posted by DaCuBaN on Oct. 09 2004,19:07
Here we go:

Quote
<1>Unable to handle kernel paging request at virtual address 7327e0f4
printing eip:
c012cc95
*pde = 00000000
Oops: 0000
cloop
CPU: )
EIP: 0010:[<c012cc95>] Not tainted
EFLAGS: 00010086

Hex here

Process linuxrc (pid: 7, stackpage=c0c69000)

More hex

<0>Kernel panic: Aiee, killing interrupt handler!
In interrupt handler - not syncing


After that, I'm confronted with a flashing caps lock. If I set ramdisk_size=0 in syslinux.cfg, I return a different error - rebooting now.

Posted by DaCuBaN on Oct. 09 2004,19:44
Quote

hda:task_no_data_intr: status=0x51 { DriveReady SeekCOmplete Error }
hda: task_no_data_intr: error=0x04 { DriveStatusError }
hda 2654280 sectors (1359 MB) w/129KiB Cache, CHS=658/64/63


CD all ok:

Quote

hdc: ATAPI 6X CD_ROM drive, 128kB Cache
Uniform CD-ROM driver Revision: 3.12


Quote

Partition check:
hda: hda1 hda2hda3
ide: late registration of driver.


Is this part of my problem? ??? Anyway, at the bottom:

Quote

Freeing initrd memory: 482k freed
EXT2-fs: unable to read superblock
FAT: unable to read boot sector
isofs_read_super: bread failed, dev=01:00 iso_blknum=16, block 32
kernel panic: VFS: Unable to mount root fs on 01:01


Now, the ONLY partitions in this system are two blank ext2's and a swap, so is it talking about the now 0 sized ramdisk?

If it's possible, I'm really beginning to think booting the CD from within a floppy distro is the best option. Any thoughts?

Posted by DaCuBaN on Oct. 09 2004,19:52
I've come to a conclusion, and I hope you concur: I don't have enough memory. I need more memory.

In the meantime however, If it were possible to get the boot floppies to use either a swap file from an ext2 partition or the swap partition itself, I could possibly get this thing to boot. I've been playing with the size of the ramdisk in syslinux.cfg, and I can trim it down to three Mb safely, leaving me a little over 12Mb of memory remaining...

I need swap. Damn this old non-bootable CD :(

Posted by DaCuBaN on Oct. 09 2004,20:25
When trying to boot with:

Quote
LABEL userdef
KERNEL vmlinuz
APPEND ramdisk_size=2304 init=/etc/init lang=uk vga=788 nosound noapic noscsi nodma noapm nousb nopcmcia nofirewire noagp nomce nodhcp xmodule=vesa initrd=miniroot.gz BOOT_IMAGE=knoppix


I receive the original...

Quote
Unable to handle kernel paging request at virtual address xxxxxxxx ... Segmentation fault"


...error (and a susbtantial quantity of hex!) I reported (it appears to do this thrice) - this is the furthest I have managed to get through the process yet. From here. it pops up:

Quote
<6>Freeing unused kernel memory: 132k freed
INIT: version 2.78-knoppix booting
INIT: No inittab file found

Enter runlevel:


Now I've been through this, and neither 2 nor 5 will allow me to process futher (neither will any other number, for that matter). It simply returns:

Quote

INIT: Entering runlevel: x
INIT: no more processes left in this runlevel


???  :laugh:

Now, I slept for six hours whilst it was at that screen (which has a flashing cursor underneath, but no prompt) and nothing happened. So I'm off to get drunk, and with any luck it'll have magically sorted itself out when I return.

Aloha :;):

Posted by DaCuBaN on Oct. 10 2004,05:18
Neither my attempt to get drunk, nor my attempt to further the dsl  install succeeded. :( I'm still simply hanging at the 'no more processes in this runlevel'

Is there anyway to start dsl from within something like tomsrtbt where I can set and activate a swap partition to alleviate my memory worries?

Posted by DaCuBaN on Oct. 11 2004,01:25
*cough*

Well, adding mem=16M to the syslinux.cfg seems to have done the job :laugh:

What can I say? < STFW? >

???  :laugh:  :cool:

Your patience in not flaming me to death for being an imbecile is appreciated, and I'm now up in X: DSL rocks :)

Posted by cbagger01 on Oct. 11 2004,19:04
Congratulations on getting things to work.

I believe the correct greeting here is:

Welcome to the revolution.

Seriously, nobody should get flamed for trying hard to get things to work right.  I think the frustrations come out when someone just types in a post with the message body of "It won't boot.  Help me or else I'll start using MS Windows™ again and you wouldn't want that, would you?"  that unleashes a can of whoop-a** on themselves.

Posted by ke4nt1 on Oct. 11 2004,19:33
Likewise, congrats...

We've been following your thread with interest ..
When these errors show up here from another 16MB system,
We'll have your excellent posts to refer to for info..

Thanks for sharing..

73
ke4nt

Posted by DaCuBaN on Oct. 12 2004,00:16
Cheers folks, but the fun doesn't stop here :D

I'll try and throw dsl-hdinstall on hda1 after work tomorrow, see how that goes. Gave it a shot tonight, and returned to the same segmentation error, so I wiped the drive to start again. I'm assuming it's another memory issue, in which case is the hd-install not carrying across my switches from the original boot?

hda3 is ready to go too - I might just boot from floppy and whack in tohd: This was how I initially setup, but for some reason I decided to wipe it and start again. I could have done the hdinstall from there, but that didn't occur to me until too late :laugh:

On general performance, given the puny amount of ram this thing has, I'm quite impressed. It's struggling a little running from the cd (it's only 6x), but on the hd it was surprisingly responsive. :cool: Afterwards, time to get it some form of connection and to get this thing mobile again :)

Quote
Welcome to the revolution


Hasta la victoria siempre!

Posted by DaCuBaN on Oct. 12 2004,21:20
More again:

I've redone all the partitions on the drive, into a hda1=swap, hda2=ext and hda3=ext2. When booting from the floppy and executing userdef dsl tohd=/dev/hda2 I receive the following error:

Quote

Accessing DSL image at /dev/scd0...
df: /cdrom2: can't find mount point
Copying DSL image failed. Not enough free space on /dev/hda2. Found: 0k Need: 52871k


Yet, so long as I don't specify dsl tohd=/dev/hda2, it will boot fine (but obviously, only from the CD). fdisk -l shows hda1 as 82, hda2 as 83 and hda3 as 83, and after mkfs.ext2 on /dev/hda2 and hda3, all fsck'd fine. ???

Overcame the memory error ('dsl' was overriding my 'userdef' boot in syslinux.cfg on the bootfloppy) by adding mem=16M to the 'dsl' kernel switches and vga=788 to force 800x600, so I'm back in X.

I can't understand though: why would firstly lilo refuse to accept mem=16M after the hdinstall, and secondly, why would the dsl boot disk think all my partitions have 0k free space even straight after I've fdisk'd and mkfs'd them? Am I forgetting something simple? :angry:

Posted by ke4nt1 on Oct. 12 2004,21:31
After partitioning and running mke2fs, did you reboot, so the new
partition tables would be re-read correctly at boottime?

73
ke4nt

Posted by DaCuBaN on Oct. 13 2004,00:23
Yes; I can run dsl-hdinstall without difficulty, and I've verified that the files are be copied across: It's definitely working. It only fails to write when I boot from the floppy and at the boot prompt: dsl tohd=/dev/hda2

Anyway, I rebooted from the cd and edited lilo.conf to include mem=16M - no change. I'm stumped... ??? It's late here anyway, work in the morning. Hopefully I'll get a chance tomorrow...

Posted by DaCuBaN on Oct. 14 2004,19:07
Haven't had a chance to look at it yet, been too busily involved in the heady world of wage-slavery :D

Is there somewhere I enter the kernel switches other than in the lilo.conf when booting an hd install? I'm at a bit of a loss (again! :laugh: )

Last shift tomorrow, with any luck I can have a few hours to dig around on Saturday - we all know that Friday nights are always a write of, productively speaking :cool: Now, I'm not desperate to get it on the drive for any reason other than the fact that the floppy drive in this unit is external - meaning it's another peice of hardware I'd have to carry round.

Not ideal, I'm sure you'd agree. I can copy the files across from the cd to the disk partition, and the thing will boot fine (from the  floppy) - Is there perhaps some way around this?

Posted by ke4nt1 on Oct. 14 2004,19:23
Quote
Yes; I can run dsl-hdinstall without difficulty, and I've verified that the files are be copied across: It's definitely working. It only fails to write when I boot from the floppy and at the boot prompt: dsl tohd=/dev/hda2


"dsl tohd=/dev/hda2" is NOT the command to create a
HDInstall...
You HAVE been speaking of a HDInstall, right?

"dsl tohd=/dev/hda2" is for creating a "poorman's" install
only copying the compressed cd data to the HD.
It emulates the cdrom data , but not the BOOT ..

It is RUNNING from the Hard Drive.., not BOOTING from it.

You STILL need either the floppy or the CDROM
to bootup a "dsl tohd= " , even after you have copied all the data.

73
ke4nt

Posted by DaCuBaN on Oct. 14 2004,19:36
It can't do either; I can get into X without a problem (booting from floppy, loading from cd), and I can kick of the hdinstall from in there, and it works, but I get memory failures (segmentation again) when I reboot. If I try a poormans install, it comes back with 0k available on partition - irregardless of the partition I try. ??? I've tried copying /knoppix/ across from another bootfloppy distro (This is how I first ran dsl), and when I rebooted from the floppy it picked up the files on the disk and booted without a problem.

It looks like for the meantime - at least until I can figure out how to get the kernel to accept my switches when booting from dsl installed on the hd - I'm going to have to go with that option - copying /knoppix/ manually, and booting from floppy.

Or is there another choice... ???

Posted by DaCuBaN on Oct. 14 2004,21:39
Quote
You STILL need either the floppy or the CDROM
to bootup a "dsl tohd= " , even after you have copied all the data.


Yeah, I'd thought about this also: The external floppy is interchangeable with the cd-rom, so if I do a poormans install from a seperate bootdisk I could swap the drives over, and work no problems at all.

However, given that currently the machine doesn't have net access, that leaves me unable to use any other input medium but floppy disks :laugh: Suffice to say, it's not ideal :D

Posted by zoto64 on Oct. 15 2004,02:09
Where in "syslinux.cfg" do I add "mem=16M"

Please Help

Posted by DaCuBaN on Oct. 15 2004,06:55
Quote
Where in "syslinux.cfg" do I add "mem=16M"


if you open it up in your favourite editor, you'll see it's broken into sections named after what you hit into the boot prompt - eg fb800x600, failsafe, that kind of thing. You'll notice that at the bottom there is a BLANK entry called USERDEF - simply fill in the necessary details/switches, boot from the floppy and at the boot prompt type userdef

To get this laptop booting I needed to start with vga=788 and mem=16M, eg:

Quote
LABEL userdef
KERNEL vmlinuz
APPEND ramdisk_size=2304 init=/etc/init lang=uk vga=788 mem=16M noapic nousb nopcmcia nomce nodhcp xmodule=vesa initrd=miniroot.gz BOOT_IMAGE=knoppix


The settings may vary, but this is what I required to boot up. In the case of the ramdisk, I found anything above an 8Mb disk would cause the machine to have a similar 'segmentation' error, so I've managed to trim it down to 2304k, but any smaller and you'll have trouble. You'll most likely have to 'play' with these settings to get it working for your machine.

Google for kernel switches to get a full list of what you can do.

Posted by zoto64 on Oct. 15 2004,14:33
Thank you so much DaCuBaN. You've made my life a lot easier! :D
Posted by DaCuBaN on Oct. 20 2004,20:46
Glad I could help :D

I've currently had to put my own project on the backburner, as I simply do not have the time at present to hunt around trying to find out how to get lilo to accept my mem=16M switch when booting from the hdd - hopefully, I'll get a chance to do this at some point during my run of night shifts (starting in 24hrs).

Hey; if my troubles can help anyone else get further, it's only a good thing...

right? ???  :laugh:

Posted by # Adriano # on Oct. 29 2004,19:28
First of all, I´m in Brasil and my english is not so good!!! Sorry about the erros ....
I´m trying to put DSL on a Toshiba 430CDS too. I change my syslinux.cfg and it´s work fine. I´m having some problems to use dsl from de HDA1, so I start to google to find the answer. In this fórum I see that DaCuBan have dsl in teh laptop, but couldn´t boot the laptop from HD. I try to change teh file lilo.conf to aceppt mem=16M but nothing happens like I would to be!!!!:(

I´m trying to change the lilo to load vmlinuz with my settings manually but I´m not sure how to do it.

Please, if anyone could help with this I promisse that never put RUIMDOWS (here in Brasil is something like BADWINDOWS- $RUIM = $BAD;) again in my computer...rsssssssss:p

tkx

Posted by # Adriano # on Oct. 29 2004,21:04
Achei!!...Ops....I found!!!!!
I just start de lilo with LINUX MEM=16M and the sistem start with no error, including de X.....

With anyone have any problem, please, contact me that I will try to help!!!

Bye:blues:

Posted by AwPhuch on Oct. 29 2004,21:15
Welcome to the Revolution!!!

Brian
AwPhuch

Posted by james on April 22 2005,05:49
I'm getting similar errors trying to run dsl on Toshiba 300 CDS with 16 mb ram.  

segmentation fault
<1>Unable to handle kernel paging request at virtual address 0e297df4
with dsl 2

Segmentation fault
Unable to handel kernel paging request at virtual address f0698db4
Enter runlevel: "2 (me)"
INIT: no more processes left in this runlevel
...with fb800x600 failsafe

It's also indicated it found 13,330 kb of memory.
I wondering if it simply doesn't have enough memory.

Posted by SaidinUnleashed on April 22 2005,14:12
Use < Tomsrtbt > to make a swap partition of at least 64mb.

Then, you should be able to work. Slowly.

-J.P.

Posted by grg on April 23 2005,18:17
Hi everyone!

I have Toshiba 300CDS too and I've just managed to run dsl-0.7.2 on it just from cdrom without any swap :) .

james: type dsl 2 mem=16M vga=788 and it should work for you if you have version 0.7.2. It also indicates for me that I have about 13000kb ram but I think it's normal (when I boot with mem=13M it finds about 10000kb so it's not all used ram).

I've even managed to run x on my laptop (boot: dsl mem=16M vga=788) and it ran not too slow so I could do "something" like play xTris  :;): (but if I open too many things it exits and I for example couldn't open Xmms).

Unfortunately I can't run dsl-1.0.1 on it - when I boot with dsl 2 mem=16M vga=788 or expert 2 mem=16M vga=788 it hangs after printing: Processor 0 is Pentium MMX 166MHz (probably on PCMCIA detection) and when I boot with failsafe 2 mem=16M vga=788 it runs but it doesn't switch to runlevel 2 (stays in runlevel 5) and opens x, which is extreeeeemly slow in version 1.0.1 on my laptop.

I haven't tried other dsl versions and I guess I'll stay with 0.7.2  :)

Posted by cbagger01 on April 23 2005,18:53
Try slimming down your X-Windows resources.

failsafe 2 mem=16M vga=788 base noicons norestore

and see if performance improves.

You may be able to use XMMS if you create a swapfile or swap  partition on your hard drive.

Or if you get more RAM, of course.

Posted by clivesay on April 23 2005,19:11
didn't we change to isolinux at 0.8.0? Maybe try the syslinux version.

Chris

Posted by NutherNewbie on Mar. 01 2006,01:30
oh my gosh i am having the same problem! and the same laptop! woooooww I have a toshiba 440cdx wiv 16mb ram and 2 gb hd!  the first time i tried it with the cd nothing happened at all and it wouldn't boot rite (it just froze) so I burned the cd to my cd drive's specifications (10x) and it got as far as the 'init runlevel'.  so.... ya.
Posted by NutherNewbie on Mar. 01 2006,01:39
YAY okay so mem=16m makes it work all the way YAY! and you try it before anything else whoever is viewing this post
Powered by Ikonboard 3.1.2a
Ikonboard © 2001 Jarvis Entertainment Group, Inc.