Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
soc:2009:pravin:notes:start [2009/06/01 10:31]
less1
soc:2009:pravin:notes:start [2009/12/27 06:18] (current)
less1
Line 1: Line 1:
-====== ​Pravin Shindeboot.kernel.org - Universal ​remote ​network booting ​for the masses ​======+====== ​place to log useful random commands ====== 
 + 
 +Useful to find the dependency of given executable on other shared libraries. 
 +<​code>​ 
 +ldd 
 +</​code>​ 
 + 
 +===== Useful information ===== 
 +AndyTimBy the way, if you ever get the ^M problem again. 
 + Try following it by a ^J 
 + 
 + 
 +===== Links to watch-out ===== 
 +  - [[http://​unit.aist.go.jp/​itri/​knoppix/​http-fuse/​index-en.html|HTTP-FUSE-KNOPPIX]] someone has done if before also. 
 +  - [[http://​paste.etherboot.org/?​page=view&​id=1239849078]] script to create automatic gpxe bootable USB 
 + 
 +===== For Shell script ===== 
 +If you want to terminate execution of a shell script on encounter any error then 
 +<​code>​ 
 +#​!/​bin/​bash 
 +set -e 
 +</​code>​ 
 + 
 +===== Useful git commands ===== 
 +To create  
 +<​code>​ 
 +git clone --bare git://git.kernel.org/​pub/​scm/​boot/​syslinux/​syslinux.git syslinux.git 
 +</​code>​ 
 +The "--bare" means you don't need a working tree, only the internal .git/ files. ​ Since you'll never been working directly in this directoy on rom, it makes sense not to have a working tree. 
 + 
 +==== creating blank repository on remote ​server ==== 
 +<​code>​ 
 +git init --bare 
 +</​code>​ 
 + 
 +Adding remote head to cloned repository 
 +<​code>​ 
 +git remote add master git+ssh://​pravin@git.etherboot.org//​pub/​scm/​people/​pravin/​BKO.git 
 +</​code>​ 
 + 
 +For pushing the local master repository from local to remote server repository, it can be done with 
 +<​code>​ 
 +git push master master 
 +</​code>​ 
 + 
 +Where you are pushing local branch called "​master"​ onto remote branch called "​master"​ 
 + 
 +===== git submoduling ===== 
 + 
 +to register the git submodules 
 +<​code>​ 
 +git submodule init 
 +git submodule update 
 +</​code>​ 
 + 
 +==== git bisect ==== 
 +This command is quite useful ​for finding broken commit. 
 +Here is the [[http://​jbowes.wordpress.com/​2007/​02/​18/​git-bisect-a-practical-example-with-yum/​|blog]] which mentions how to use it. 
 + 
 +===== useful commands for qemu ===== 
 +One can use qemu monitor for debugging.\\ 
 +Here is the [[http://​en.wikibooks.org/​wiki/​QEMU/​Monitor|wikibook]] for using monitor with qemu.
  
 ===== Notes ===== ===== Notes =====
  
-==== My understanding ​of HTTP boot with HTTPFS ​==== +I will start with exploring following pages\\ 
-  ​- Download the Linux kernel with fuse support ( or insert fuse module later + * http://​www.babytux.org/​articles/​howto/​how2netknoppix.php \\ 
-  ​- download ​initramfs with fuse modulehttpfs executable script ​to set root filesystem ​to the HTTPFS+ * http://​openlab.jp/​oscircular/​inetboot/​ \\ 
-  - Boot with this setup.+ * http://​www.kegel.com/​linux/​pxe.html \\ 
 + * http://​unit.aist.go.jp/​itri/​knoppix/​http-fuse/​index-en.html \\ 
 + * com32/​lib/​syslinux/​initramfs*.c \\ 
 + * Linux Terminal server project.. LTSP \\ 
 + * http://​www.mjmwired.net/​kernel/​Documentation/​early-userspace/​buffer-format.txt \\ 
 + * http://​www.mjmwired.net/​kernel/​Documentation/​filesystems/​ramfs-rootfs-initramfs.txt \\ 
 + * http://​en.gentoo-wiki.com/​wiki/​Initramfs \\ 
 + * com32/​modules/​linux.c \\ 
 + * http://​git.kernel.org/?​p=boot/​syslinux/​syslinux.git;​a=blob;​hb=HEAD;​f=com32/​modules/​linux.c \\ 
 + 
 + 
 +=== My ToDo list === 
 +  - Get QEMU + PXE working. -- Done [[wiki:​QemuPxe]]. 
 +  - Get QEMU + PXE + HTTP working -- Done . 
 +  - Get QEMU + PXEKnife working. [[wiki:​QemuPxeKnife]] -- Done 
 +  - Get QEMU + PXEKnife + HTTP working. [[wiki:​QemuPxeKnifeHTTP]] -- Stuck :-( 
 +  - Explore the ability ​of PXE and SYSLinux to dynamically create INITRAMFS. 
 +  - Get PXE-Knife working over HTTP
 +  - Check how can I use com32 module from inside syslinux to modify inintramfs files. 
 + 
 + 
 +=== Questions that I need to find answers ​=== 
 +  ​* In case of linux distribution,​ Will entire distriibution run from RAM as initRAMfs ​or it will use root filesystem from NFS of server? 
 +    * **warthog9:​** a normal distribution will very unlikely run out of ram, in particular when you consider a "​normal"​ distribution is going to need a couple of gig's of data to be complete. ​ That said there are smaller distributions (like Damn Small Linuxwhich are only in the 50M range of size.  It might be more possible to run these straight out of ram.  I have not tested DSL specifically for this but it was the thing that seemed the most likely as a '​live'​ distribution for BKO for the time being. ​ The possibility of running a '​live'​ distribution out of NFSv4 has also been discussed as a not horrible option, but may have adverse consequences for the server. 
 +  ​* Can we exploit the PXE/​SYSLinux ability to dynamically create INITRAMFS? this way, server will send the part of initramfs whenever user makes any selection and SYSLinux will merge newly downloaded part on initramfs with orinial one. This may reduce the workload on server. 
 +    * **warthog9:​** This should be doablejust stacking the initrd'​s together would make things a lot simpler, particularly for Linux based utilities. ​ Treat each piece as an individual package (like an rpm of sorts), keep a dependency tree of what each package needs and we should be able to completely build a minimal ​set of files needed ​to run a specific component dynamically (or pre-generated if the selection would be static anyway, but the pre-generation would just be the list of things to include) 
 +  * In case, we need to use NFS root filesystem, what about scalability?​ many users may not have outgoing NFS port accessCan NFS service provided on HTTP? 
 +  ​* **warthog9:​** NFSv3 from a public internet perspective is off the table for a whole host of reasons the least of which is individual ports, security, etc.  NFSv4 would be a consideration,​ but the scalability might be a bigger issue here.  Investigation into the access patterns, load, etc would need to be done.  For now a Proof-of-concept for nfsv4 could be done, but actual full implementation should be looked after basic framework is up and running. 
 +  * Whats the difference between initrd and initramfs ?
  
  
  
  

Navigation

* [[:start|Home]] * [[:about|About our Project]] * [[:download|Download]] * [[:screenshots|Screenshots]] * Documentation * [[:howtos|HowTo Guides]] * [[:appnotes|Application Notes]] * [[:faq:|FAQs]] * [[:doc|General Doc]] * [[:talks|Videos, Talks, and Papers]] * [[:hardwareissues|Hardware Issues]] * [[:mailinglists|Mailing lists]] * [[http://support.etherboot.org/|Bugtracker]] * [[:contributing|Contributing]] * [[:editing_permission|Wiki Edit Permission]] * [[:wiki:syntax|Wiki Syntax]] * [[:contact|Contact]] * [[:relatedlinks|Related Links]] * [[:commerciallinks|Commercial Links]] * [[:acknowledgements|Acknowledgements]] * [[:logos|Logo Art]]

QR Code
QR Code soc:2009:pravin:notes:start (generated for current page)