Making boot speak Russian

For efforts in internationalising Puppy and solving problems in this area
Post Reply
Message
Author
tarmo
Posts: 8
Joined: Sat 05 Jan 2008, 21:08

Making boot speak Russian

#1 Post by tarmo »

Hello, ladies and gentlemen,

My current obsession is Puppy Linux, thanx to malvix, and I'm trying to figure out how do I make (say: what do I need to fix to make) boot/shutdown messages such as Xorg/Vesa selection, savefile dialogs, etc. appear in Russian.

It's obviously the following:

1) Which files require localization?
2) How do I make this layer of system recognize utf8/cp1251/koi8?

I know it's possible, 'cause I've see the thing in openSuSE.

Well, else I remember windows 95/98 ( :lol: ) when booted like step-by-step reported of some codepage loaded and then all Cyrillic symbols became pretty nice.

So, am... Feel free to suggest anything from change-this-line-for-that-one to kernel compiling or whatever.

Thanx a lot, Tarmo.

P.S I guess it's an essential question, 'cause everyone who has ever worked with windows/macos can navigate gui, but those "Type booting parameters which you want to apply below..." or similar really make people o_O, if you know what I mean.

User avatar
Dougal
Posts: 2502
Joined: Wed 19 Oct 2005, 13:06
Location: Hell more grotesque than any medieval woodcut

Re: Making boot speak Russian

#2 Post by Dougal »

tarmo wrote:how do I make (say: what do I need to fix to make) boot/shutdown messages such as Xorg/Vesa selection, savefile dialogs, etc. appear in Russian.

It's obviously the following:

1) Which files require localization?
2) How do I make this layer of system recognize utf8/cp1251/koi8?
Most of that is done from scripts in /etc/rc.d, with the addition of things like the xorgwizard (in /usr/sbin).
All you need to do is find all the "echo" commands and replace the text with Russian text.
The only thing I'm not sure about is how to make it recognize the charset... do you know how to get Russian working outside of X?
What's the ugliest part of your body?
Some say your nose
Some say your toes
But I think it's your mind

tarmo
Posts: 8
Joined: Sat 05 Jan 2008, 21:08

#3 Post by tarmo »

Thanx for "echo" hint :) Gonna try tomorrow...
The only thing I'm not sure about is how to make it recognize the charset... do you know how to get Russian working outside of X?
Well, frankly, not really. But I'll do my best to find out... and post as soon as I do. Somewhere inside I hope it will work just as is.

Mmm... perhaps someone knows which of init scripts deals with encoding? Say: loads locale, defines encoding, enables utf8? :wink:

User avatar
Dougal
Posts: 2502
Joined: Wed 19 Oct 2005, 13:06
Location: Hell more grotesque than any medieval woodcut

#4 Post by Dougal »

tarmo wrote:Mmm... perhaps someone knows which of init scripts deals with encoding? Say: loads locale, defines encoding, enables utf8? :wink:
/etc/rc.d/rc.country does the little that Puppy does in that regard -- setting the keymap and encoding. You might want to have a look how other distros do it and let us know...

You might also try "modprobe nls_utf8" (or "modprobe nls_koi8-ru").
What's the ugliest part of your body?
Some say your nose
Some say your toes
But I think it's your mind

tarmo
Posts: 8
Joined: Sat 05 Jan 2008, 21:08

#5 Post by tarmo »

Roger that. 8)

tarmo
Posts: 8
Joined: Sat 05 Jan 2008, 21:08

#6 Post by tarmo »

Well, I made some progress... cannot post about it now in enough details.

Just want to ask for a .config file to compile kernel from source (Puppy Linux 301).

I compiled patched kernel with defaults but it didn’t go further uncompressing, just an incompatibility issue, I guess.

So, can anyone provide me with a .config? Or a link to puppy-compatible source with a config?

tarmo
Posts: 8
Joined: Sat 05 Jan 2008, 21:08

#7 Post by tarmo »

Thanx to Dougal's:
You might also try "modprobe nls_utf8" (or "modprobe nls_koi8-ru").
I found some peculiar lines in init files that say how this (nls_* ) modules are used. System loads them in the very beginning when line "Loading kernel modules" appears, and then you (with a large probability) get a) correctly displayed non-latin text anywhere b) support of read/write macos/windows partitions, and files than where not created in Linux and use special charsets.

Isn't that what we all deserve? 8)

Now, for more clearance "nls" or "NLS" states for Native Language Support, say defines which languages (charsets) kernel knows.

The only problem so far: Puppy is not shipped with all possible languages, that means you cannot add language support just using `modprobe` command to load modules, you need to get source and compile them yourself or ask somebody to do it for you.

But Puppy is a special linux, who knows why, but modules compiled with the same version (2.6.18.1 in my case) kernel but default config do not fit, reporting "Invalid module format".

I haven't tried everything yet, but it seems that I just need puppy-.config to compile kernel properly with built-in language support and enjoy it. :roll:

User avatar
Dougal
Posts: 2502
Joined: Wed 19 Oct 2005, 13:06
Location: Hell more grotesque than any medieval woodcut

#8 Post by Dougal »

tarmo wrote:The only problem so far: Puppy is not shipped with all possible languages, that means you cannot add language support just using `modprobe` command to load modules, you need to get source and compile them yourself or ask somebody to do it for you.
I don't know about all languages, but Russian does work, right? I got those modules I mentioned from modules.dep in Puppy...
But Puppy is a special linux, who knows why, but modules compiled with the same version (2.6.18.1 in my case) kernel but default config do not fit, reporting "Invalid module format".

I haven't tried everything yet, but it seems that I just need puppy-.config to compile kernel properly with built-in language support and enjoy it. :roll:
You mean you tried modules from a different distro? That wouldn't work.
If you want to recompile the kernel, there should be a kernel-sources .sfs file somewhere -- just put it next to your devx and it will appear after you reboot.

Note that if you want to have Russian in the init script, then you should recreate the initrd.gz, including the correct module and adding a line similar to those handling the other nls modules in the init script.
What's the ugliest part of your body?
Some say your nose
Some say your toes
But I think it's your mind

User avatar
melvix
Posts: 96
Joined: Sat 14 Jul 2007, 18:48
Location: Vilnius, Lithuania
Contact:

Re

#9 Post by melvix »

This item very impotent for PuppyRus Linux Project. We ask Puppy Linux Forum to help us with this question.
[url=http://www.puppyrus.org/]Free software for free people![/url]

tarmo
Posts: 8
Joined: Sat 05 Jan 2008, 21:08

#10 Post by tarmo »

I don't know about all languages, but Russian does work, right? I got those modules I mentioned from modules.dep in Puppy...
Nope, it dose not. That's what my module.dep reads regarding NLS:

Code: Select all

/lib/modules/2.6.21.7/initrd/kernel/fs/squashfs/squashfs.ko:
[b]/lib/modules/2.6.21.7/initrd/kernel/fs/nls/nls_cp437.ko:
/lib/modules/2.6.21.7/initrd/kernel/fs/nls/nls_iso8859-1.ko:[/b]
/lib/modules/2.6.21.7/initrd/kernel/fs/fuse/fuse.ko:
*First and last lines are just to show I don't miss anything.

So, you see just two latin modules are present. I use 301 (new kernel now) distro downloaded from ibiblio repo. That's why I need to somehow build my own modules. Even no utf8 :roll:
You mean you tried modules from a different distro? That wouldn't work.
Not exactly, I just downloaded same version kernel source (2.6.21.7) from kernel.org and compiled it (in Puppy) with default config, except I added required language support in NLS section. I did not apply kernel itself just modules. But it didn't work :cry: There is also no config info present in puppy's vmlinuz too.
Note that if you want to have Russian in the init script, then you should recreate the initrd.gz, ...
Yepp, I'm aware of the issue, but no need, I use full install. I've found all lines I need to edit, just no modules...
here should be a kernel-sources .sfs file somewhere
Ok, I'll google it.

P.S May be you could email those modules to me (maxim (at) greensun dot eu) or post them here.[/code]

muggins
Posts: 6724
Joined: Fri 20 Jan 2006, 10:44
Location: hobart

#11 Post by muggins »

If you're after the kernel .sfs file, it's available for download from ibiblio. For pup3.01 it's here(56Mbytes):

http://distro.ibiblio.org/pub/linux/dis ... rc_301.sfs

tarmo
Posts: 8
Joined: Sat 05 Jan 2008, 21:08

#12 Post by tarmo »

Thank you, I found everything... it's just, puppy is driving me wild sometimes. :lol: File sequence and hierarchy is so much different.

Can anyone tell me how do I make system use my own font for console? No setsysfont, you know... Is there any official docs that help understanding Puppy, not a how-to or tutorial, just a raw and dry technical description?

User avatar
Dougal
Posts: 2502
Joined: Wed 19 Oct 2005, 13:06
Location: Hell more grotesque than any medieval woodcut

#13 Post by Dougal »

tarmo wrote:Nope, it dose not. That's what my module.dep reads regarding NLS:

Code: Select all

/lib/modules/2.6.21.7/initrd/kernel/fs/squashfs/squashfs.ko:
[b]/lib/modules/2.6.21.7/initrd/kernel/fs/nls/nls_cp437.ko:
/lib/modules/2.6.21.7/initrd/kernel/fs/nls/nls_iso8859-1.ko:[/b]
/lib/modules/2.6.21.7/initrd/kernel/fs/fuse/fuse.ko:
*First and last lines are just to show I don't miss anything.

So, you see just two latin modules are present. I use 301 (new kernel now) distro downloaded from ibiblio repo. That's why I need to somehow build my own modules. Even no utf8
Oh, I'm using 2.14 and it has all of them -- I guess Barry disabled them when he compiled the new kernel (unless he just left them out of the zdrv?? didn't he want a smaller zdrv at some stage?)
You mean you tried modules from a different distro? That wouldn't work.
Not exactly, I just downloaded same version kernel source (2.6.21.7) from kernel.org and compiled it (in Puppy) with default config, except I added required language support in NLS section. I did not apply kernel itself just modules. But it didn't work :cry: There is also no config info present in puppy's vmlinuz too.
The kernel-config file in Puppy is in every iso: in /lib/modules.
If you have the devx addon, then it's also in it's right place in /usr/src/`uname -r`.
The problem with just compiling a vanilla kernel and trying to use the modules could be (except for if the patches Barry uses affect nls somehow), that the original kernel had nls turned off, thus there's nothing to handle those modules...
What's the ugliest part of your body?
Some say your nose
Some say your toes
But I think it's your mind

tarmo
Posts: 8
Joined: Sat 05 Jan 2008, 21:08

#14 Post by tarmo »

Well, I guess Barry just excluded all possible development-tools-and-resources to compensate distro growth made by Seamonkey suite. However I found all required files in source sfs file (thanks for idea), compiled and installed all extra nls modules, but... it didn't fix cyrillic letters display issue nor windows files reading. =(

Now I'm working on fonts and init-files encoding.
It took two days to figure out how to make system console use my fonts that supports cyrillic symbols... But as puppy has it's own ways of mastering system architecture it's still not clear for me which of my action affect russian text displaying.

Kazm
Posts: 29
Joined: Mon 14 Jan 2008, 21:53
Location: Russia, Ufa
Contact:

#15 Post by Kazm »

We made russian boot :)
1. We used new version of dialog for scripts in console
2. Some fonts and files from kbd-1.13 for MopLinux.
3. Now we make UTF-8 locale's.

My english bad, but russian good :)
See us in http://puppyrus.ru

Post Reply