The linux-framebuffer is an abstraction-layer that could be used to enlarge the capabilities of the commandline-interface. it could be used to display graphics (some of us know the tux on bootup) or to change the resolution of the cli. normally puppy is configured to boot with a resolution of 640 x 480. By using the framebuffer, you could enlarge this to use the native resolution of your monitor.
Puppy does not enable the framebuffer by default but at least for 430/431 it is 'relatively' easy to make the needed changes.
But be aware that you'll need to edit the initrd.gz and the pup-430.sfs / pup-431.sfs.
Read carefully and as STEP 1! Use at your own risk, maybe try it with a 'clean' system first.
1. Create a working-directory (Linux-Partition)
2. unpack initrd.gz
a) copy initrd.gz to you working directory
b) open a terminal in your working-directory
Code: Select all
mkdir initdir
cd initdir
zcat ../initrd.gz | cpio -i -d
3. unpack pup-430.sfs
Note: as you probably want to make changes for the version you're running, you cannot mount the sfs by clicking, as it is allready mounted.
a) copy pup-430.sfs to /tmp
b) rename it to pup-430x.sfs
c) click on pup-430x.sfs to mount it.
d) create a subdir pup-430 in your working directory.
e) open a terminal
Code: Select all
copy -r /mnt/pup-430x/* /WORKINGDIR/pup-430
you're now prepared to apply the changes. i will use INITDIR and PUPDIR as names for our subdirectories. If i only use pup-430.. in the following, it allways means pup-430/pup-431...
4. copy framebuffer-devices
we need the framebuffer-devices in initrd.gz to be able to use it on bootup.
a) open a terminal
Code: Select all
cp /PUPDIR/dev/fb* /INITDIR/dev
5. move modules
we need the kernel-modules in initrd.gz.
a) open a terminal
Code: Select all
mv /PUPDIR/lib/modules/2.6.30.5/kernel/drivers/video/console /INITDIR/lib/modules/2.6.30.5/kernel/drivers/video
a) open /INITDIR/lib/modules/2.6.30.5/modules.dep
b) paste the following at the end of the file
Code: Select all
/lib/modules/2.6.30.5/initrd/kernel/drivers/video/console/bitblit.ko: /lib/modules/2.6.30.5/initrd/kernel/drivers/video/console/softcursor.ko
/lib/modules/2.6.30.5/initrd/kernel/drivers/video/console/fbcon.ko: /lib/modules/2.6.30.5/initrd/kernel/drivers/video/console/bitblit.ko /lib/modules/2.6.30.5/initrd/kernel/drivers/video/console/softcursor.ko /lib/modules/2.6.30.5/initrd/kernel/drivers/video/console/tileblit.ko /lib/modules/2.6.30.5/initrd/kernel/drivers/video/console/font.ko
/lib/modules/2.6.30.5/initrd/kernel/drivers/video/console/font.ko:
/lib/modules/2.6.30.5/initrd/kernel/drivers/video/console/mdacon.ko:
/lib/modules/2.6.30.5/initrd/kernel/drivers/video/console/softcursor.ko:
/lib/modules/2.6.30.5/initrd/kernel/drivers/video/console/tileblit.ko:
7. Load module fbcon in init
a) open /INITDIR/init and add the following to line 253
Code: Select all
modprobe fbcon
Note: It does not need to be Line 253, but you should use a line at the beginning of the init as you'll have a black screen until fbcon is loaded.
8. resquash PUPDIR
a) open your working-directory in a terminal
Code: Select all
dir2sfs pup-430
Your new sfs is ready.
9. repack initrd.gz
a) open your working-directory in a terminal
Code: Select all
cd initdir
find . | cpio -o -H newc | gzip -9 > ../initrd.gz
10. Exchange Files
a) Boot from a Live-CD with puppy pfix=ram
b) Backup the 'old' initrd.gz and pup-430/431.sfs.
c) Copy the new initrd.gz and pup-430/431.sfs to your regular boot-drive (and subfolder).
11. Edit your boot-config file
You now have to edit your boot-config file. This could be menu.lst / syslinux.cfg /isolinux.cfg
a) backup the 'old' file.
b) add
Code: Select all
vga=[VGA-OPTION]
Code: Select all
append initrd=initrd.gz pmedia=usbflash vga=0x314
Code: Select all
vga=ask
If you want to remaster a cd (isolinux.cfg) it might be best, to always choose 'vga=ask'.
c) save
10.1 VGA-Options
There are 2 ways to call an vga-option, you will have to find out yourself, which one works for you. For me, values from the first list work. It might be a little trial and error.
Code: Select all
Colours |640x480 | 800x600 | 1024x768 | 1152x864 | 1280x1024
----------------------------------------------------------------
08 bits | 0x301 | 0x303 | 0x305 | 0x161 | 0x307
15 bits | 0x310 | 0x313 | 0x316 | 0x162 | 0x319
16 bits | 0x311 | 0x314 | 0x317 | 0x163 | 0x31A
Code: Select all
vga = normal
1024x768x64k: vga=791
1024x768x32k: vga=790
1024x768x256: vga=773
800x600x64k: vga=788
800x600x32k: vga=787
800x600x256: vga=771
640x480x64k: vga=785
640x480x32k: vga=784
640x480x256: vga=769
11. Reboot
If everything went well, you could now use your cli with a better resolution.
THANKS: My thanks go to Pizzasgood. Most parts of this howto is based on his docs for pebble http://www.murga-linux.com/puppy/viewtopic.php?t=26339.
aragon