03.04.2013 18:25, KP Kirchdoerfer пишет:
> Am 01.04.2013 21:29, schrieb Andrew:
>> 01.04.2013 18:59, KP Kirchdoerfer пишет:
>>> Hi Andrew;
>>>
>>> Am 01.04.2013 17:24, schrieb Andrew:
>>>> 01.04.2013 16:40, KP Kirchdoerfer пишет:
>>>>> Hi;
>>>>>
>>>>> Am 31.03.2013 21:56, schrieb Andrew:
>>>>>> Hi.
>>>>>> 31.03.2013 20:26, KP Kirchdoerfer пишет:
>>>>>>> Hi all;
>>>>>>>
>>>>>>> with the help of David and based on the work of buildtool.org developers
>>>>>>> and many others, I was able to create a toolchain that produces a kernel
>>>>>>> and lrp's able to boot on a raspberry pi, to login, to get local net
>>>>>>> access and to ssh into the remote box.
>>>>>>>
>>>>>>> While it will be a long way to create images for the raspberry pi, it
>>>>>>> clearly shows that our toolchain is able to successfully cross-compile -
>>>>>>> something I've expected, but it's always good to see it really works.
>>>>>> Good work.
>>>>>>> Before I create a remote repository, so anyone has something to work
>>>>>>> with, I'm running rebuild from scratch.
>>>>>>>
>>>>>>> Some notes about what has been accomplshed and the remaining tasks:
>>>>>>>
>>>>>>> It's based on kernel version 3.6.11, because the patches are for 3.2 or
>>>>>>> 3.6, but not for our currently used 3.4 kernel.
>>>>>>> There is ongoing work to include the patches into the mainline kernel,
>>>>>>> so life will be easier in the future.
>>>>>> Maybe 3.2 patch (or 3.6) will lay on 3.4 kernel? Did you try?
>>>>> No; I wanted to start with something known to work.
>>>>> The rpi patches has been changed a lot between 3.2 and 3.6 AFAIK, so
>>>>> only option would be to test if the 3.6 patches can applied to 3.4
>>>>> kernel, but I believe we'll see errors. And can't be shure if it is
>>>>> reliable afterwards.
>>>> There is also 3.3 branch: https://github.com/lp0/linux/tree/raspberrypi-3.3
>>>> IMHO porting patches from near beanches aren't too painful.
>>> Maybe, but IMHO we should not look backwards (adding possibly outdated
>>> patches).
>>> As I said there is ongoing work to include patches for raspberry pi into
>>> the mainline kernel, and this AND a kernel update for LEAF will make it
>>> easier.
>>>
>>> Currently I think, that going with a working 3.6 kernel is enough to
>>> work on issues we do have maintaining other architectures than X86; and
>>> those issues are not related to the kernel version I choosed for the
>>> raspberry pi.
>> I don't like 3.6 kerel because 1) we should maintain 2 kernels for LEAF
>> and 2) 3.6 kernel is EOL - no fixes wil be available.
> I agree, and shurely have no intention to support two different kernel
> versions, esp not one that is outdated.
> I wanted to start with working code (successfully booting on the rpi...)
> and then work on remaining issues, like fixing packges that does not
> build, improving the toolchain where necessary, building images etc - I
> hope that in the meantime a mainstream kernel will be available that
> already includes support for the raspberry pi so we will have a unique
> kernel source for all images. That also means that I currently do not
> expect that a raspberry image will be available with 5.0, but probably
> with 5.1.
Ok.
>>>>>> Or, if initrd concatenation is possible - some modules like usb flash
>>>>>> may be external, in initmod.
>>>>> The above command works, maybe even if the file extension is lrp instead 
>>>>> gz.
>>>>>
>>>>> kp
>>>>>
>>>> If concatenated initramfs image is booted OK via boot loader - it's
>>>> good. But in generic case boot loader may fail to boot with such image,
>>>> or it'll extract just 1st part (initrd).
>>> I'll have to  take a closer look, but I assume the concatenated image is
>>> the same as we had before we splitted initmod from initrd (as in 4.x).
>> No, this isn't the same image. Think about initrd as .tar.gz package
>> (it's really .cpio.gz, but cpio archiver is enough similar to tar - if
>> we will not look into archive structure; both types of archives contain
>> uncompressed files with header that specifies place of file into archive).
> Ok, but then I do see the content of initmod on the rpi box in
> /lib/modules....?
This boot loader knows that initrd may consists of separate chains. 
Generally - we don't know if bootloader supports such hack.
>>> I'm starting to wonder about "multiple initrd files" when booting - see
>>> leaf-user and the 5.0-beta1 geode pb - the Alix geode based board
>>> supports multiple initrd, but _without_ the leading slash, where it
>>> seems to with the leading slash elsewhere, rpi does not support multiple
>>> initrd files, the same with qemu when booting arm-versatile, while it
>>> works if I test an i486 image in qemu...??
>>>
>>> kp
>> This isn't Geode bug.  This is syslinux bug/feature/specific behavior.
>> Also, w/o leading slashes even fresh syslinux should boot LEAF. So I
>> don't know why they are really needed.
> I'll change it.
>
>> Initmod package is actual only for platforms with multiple target
>> hardware - as I said, for embedded system we can just include required
>> drivers into kernel and remove initmod at all. We will not have any
>> memory profit from modular drivers - because all essential drivers will
>> be loaded at boot from modules (possible exclusion - USB flash driver
>> with SCSI subsystem, that is ~200 kb - but in most scenarios embedded
>> device will be useless w/o USB flash with packages, so it'll be loaded
>> in any way); and modular drivers have some overhead for function call
>> time and for memory footprint.
>>
>> x86, from other side, requires many drivers for different hardware - so
>> modular architecture will save RAM (unneeded drivers shouldn't be loaded).
> Yes, but the toolchain should be as seamless as possible.
> So it's the question where to make the cut:
> - We can add all drivers for rpi into the kernel (if you call the rpi as
> embedded box) and modify the toolchain not to build initmod and create a
> buildpacket setup to not search for initmod,
>
> - Or we don't touch the buildtool part (except configuration) and modify
> buildpacket to merge initrd and initmod into one file.
>
> at least that's how I understand it right now, maybe I'm simply wrong.
>
> kp
>
1st method is more common. 2nd is based in bootloader specific behavior, 
and may not be supported for all bootloaders.
And we need to add only boot-time drivers (FS/storage/flash), not all 
available.
RPi is something between embedded box and usual PC, closer to embedded 
platforms. AFAIK it hasn't onboard flash with OS and boots from SD/USB 
(like generic PC), but it's based on SoC with unique kernel (kernel will 
not work on other SoC) and it uses embedded bootloader.


------------------------------------------------------------------------------
Minimize network downtime and maximize team effectiveness.
Reduce network management and security costs.Learn how to hire 
the most talented Cisco Certified professionals. Visit the 
Employer Resources Portal
http://www.cisco.com/web/learning/employer_resources/index.html

_______________________________________________
leaf-devel mailing list
leaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/leaf-devel

Reply via email to