Precise: 3.2.48 kernel

I have compiled the 3.2.48 kernel for Precise Puppy. It has the f2fs patch, non-PAE, SMP, i486. It does not have devtmpfs.

Thanks to Richard Erwin (rerwin on the Forum) who patched many analog modem drivers to compile with this kernel, and documented steps to compile them, I was able to automate the compiling of them all.

I also included the Broadcom 'wl' driver, thanks to rerwin and peebee who patched it especially for Puppy:
http://murga-linux.com/puppy/viewtopic.php?t=76495&start=16

All sources, patches, scripts and source .sfs file, are in my sources-repository:
http://bkhome.org/sources/kernel-3.2.48/
(the usual username and password!)

And for Woof developers, here are the PETs (30.1M, 831K):
http://distro.ibiblio.org/quirky/pet_packages-precise/linux_kernel-3.2.48-nopae-i486-f2fs-aufs-smp-isa-precise.pet
http://distro.ibiblio.org/quirky/pet_packages-precise/linux_headers-3.2.48.pet

...yes, it is massive, but it does have all of those analog modem drivers.


Posted on 11 Jul 2013, 22:43


Comments:

Posted on 12 Jul 2013, 4:31 by darry1966
Reply
Hi Barry,

I look forward to the first rest release.




Posted on 12 Jul 2013, 11:53 by 01micko
!Eureka moment!
Haha!

I just managed to boot a puppy FULL install ON USB F2FS to desktop this very moment! I had to post it right now. Note, thie is using udev-167, I reckon it might work even better with eudev.

The structure is a small vFAT partition which contains a /boot folder with the kernel (vmlinuz) and a full install type initrd.gz (based on yours and slackware's, it's very basic). The rest of the stick is formatted f2fs and I hacked a full install in there from the command line (basically following the universal installer). It bots with grub4dos and the root filesystem (f2fs) seems to need the UUID to be found. Using the device name (eg /dev/sda2) didn't work. Had to use the UUID of the vFAT fs to get grub4dos to work.

Ok, so there are problems, I cant use the touch pad on the lappy and the keyboard don't work! But the system is running because the time is ticking over. Initially I thought it froze. The problem is that /proc didn't get moved to the main fs, noted in initial boot erors. Hopefully an easy fix.

I'll keep working on it and when I have a working system I'll bleat even louder..

The menu.lst is something like this:

title slacko puppy
uuid F798-E260
kernel /boot/vmlinuz root sda2
initrd /boot/initrd.gz

Similar to a frugal.

More later...


Posted on 12 Jul 2013, 13:09 by 01micko
97% works
Found the silly problems and it seems to work mostly ok, posting from it now.

# cat /etc/rc.d/PUPSTATE
PUPMODE=2
#ATADRIVES is all internal ide/pata/sata drives, excluding optical, excluding usb...
ATADRIVES='sda '
#ATAOPTICALDRIVES is list of non-usb optical drives...
ATAOPTICALDRIVES='sr0 '
PUP_HOME='/'
PDEV1='sdb2'
DEV1FS='f2fs'

Has a firmware loading issue, so I had to plug in a wireless dongle. In a normal install of the exact same pup wireless works (ipw2200). Anyway, want my init script? You will likely be able to improve it, may even adapt it.

I'm going to leave it running a few days to test the stability.

Now off to document what I've done so far and to write some scripts to automate installation.


Posted on 12 Jul 2013, 14:08 by BarryK
Re f2fs
01micko,
Yes, this is probably the direction we will be heading in, that is, a full install on Flash media with f2fs.

Due to writes not bashing the same memory bits, but rolling through the memory, which is how f2fs does it, basically, means we don't have to be so paranoid with running everything in RAM.

I have been planning to update the Universal Installer. Now that I am getting Precise Puppy, "the new Wary" released with f2fs support, this will be a go-er and I'll move updating the Universal Installer to top of the to-do list.

I have been doing all ARM pups as full installs on Flash media, with first small vfat partition, 2nd a ext4 (without journal) 2nd partition. And anticipating adoption of f2fs for the 2nd partition.



Posted on 12 Jul 2013, 14:16 by BarryK
Re 3builddistro
01micko,
I should add that 3builddistro is already setup for building images for Flash media.
So far I have only done it for ARM pups, but soon intend --with f2fs-- to build full-install x86 pups for Flash media.

That is, ready to copy direct to a Flash media, no .iso.



Posted on 12 Jul 2013, 14:16 by 01micko
Re re f2fs
Great!

Anyway, here is my 'trail blazing' (lol) initrd skeleton effort.

http://murga-linux.com/puppy/viewtopic.php?p=713014#713014

Since it's at the top of your list (PUI update), I'll give it a rest. You might get some ideas from my initrd though.

Thanks!


Posted on 12 Jul 2013, 14:20 by 01micko
BTW
I think you may have forgotten that I released ZAP-6 for Pi (wheezy debian based) a while back so yeah, I know about the image stuff.


Posted on 12 Jul 2013, 14:22 by BarryK
Re initrd
01micko,
The full-install Flash builds created by 3builddistro do not have an initrd. It is not really needed.

A full install without initrd is PUPMODE=2.



Posted on 12 Jul 2013, 14:23 by BarryK
Re ZAP-6
Ha ha, our messages are overlapping. Yes, you did create something for the Pi!



Posted on 12 Jul 2013, 14:27 by 01micko
re initrd
It's a chicken and egg problem.

Rather than writing it all out again I'll link you to my blog.

F2fs stuff

The thing is, no bootloader supports f2fs. How else can you boot the full install? The initrd I have is very simple, not many modules in it, can actually get away with no modules if f2fs, and usb stuff is builtin. Does need busybox though of course.


Posted on 12 Jul 2013, 15:04 by BarryK
Re booting
You need a very small vfat partition, that has vmlinuz and a bootloader such as syslinux or grub.
The kernel commandline has something like "root=/dev/mmcblkop1" or whatever the 2nd partition is, and it goes straight there, no need for an initrd.

That is how the ARM images work. In that case, the 2nd partition is ext4, but it can just as well be f2fs.



Posted on 13 Jul 2013, 11:25 by 01micko
chicken and egg
I have wasted a few hours on this and no way no how can I get the thing to boot (without an initrd).

Lets take raspberry pi as an example.
On the vFAT partition we have the kernel.img (And obviously the broadcom firmware and other config files including the boot.txt (iirc) with the kernel line and the partition to mount. Where does the ext2, 3, 4 dirver come from to mount the root partition? The kernel.

So here is the problem with all the x86 bootloaders. Grub/extlinx/syslinux/lilo do not know about f2fs. Ok, we put vmlinuz on the small vFAT partiion, sure it loads then panics. Remember, we have to tell the bootloader what partition to boot off, in this case the VFAT so we out in the UUID for that. No matter what you do you can't get that f2fs partition recognised! You put the UUID of the f2fs partition and of course nothing happens because bootloaders haven't heard of f2fs (well I haven't found one yet, it will happen soon I guess).

With a small initrd (it need not have any drivers) at least you can tell mount what FS you want mounted and where then once switch_root takes over you are home and hosed. NOTE: no initrd folder gets transferred to the main FS because we didn't tell it to do that. It's still a perfect pupmode=2 install (see my cat /etc/rc.d/PUPSTATE in an earlier post.)

HTH