Reply
Thread Tools
Stskeeps's Avatar
Posts: 1,671 | Thanked: 11,478 times | Joined on Jun 2008 @ Warsaw, Poland
#1
So, as some of you may have seen I've made a .deb based fanoush-boot menu installer that has support for /etc/bootmenu.d/*.item configuration (so you dont have to hand write full bootmenu.conf's anymore, and installers can put in .item's that will appear on boot menu after refresh_bootmenu.d).

I've also worked on a more GUIish Deblet installer, and I'm interested in having people test this obviously and share their experiences as I don't have a Diablo installation at home and can't test on there.

These .install files require either becomeroot or rootsh (making sudo gainroot possible):

http://trac.tspre.org/svn/deblet/tru...hinook.install <- for Chinook

http://trac.tspre.org/svn/deblet/tru...diablo.install <- for Diablo

This will drag in dependancies for the installer such as cfdisk, debootstrap, python, roxterm, zenity etc, and the boot menu installer. It will also use Diablo extras and a deblet repository (on diablo), and the usual bunch of repos in Chinook.

This will produce two icons in Utilities, "Install Bootmenu" and "Install Deblet". Install Bootmenu will start the initfs flasher in a terminal and guide you through it. It is important that you say yes to cleaning out stuff for more space, and say yes to including bootmenu.conf

WARNING: You should either have a clean initfs before installing bootmenu or have fanoush's bootmenu installed (we've seen trouble with penguinbait initfs?)

If you have other bootable systems, you can set them up by putting a /etc/bootmenu.d/some.item of this form:
/etc/bootmenu.d/*.items are on this form:

ITEM_NAME="Deblet" # Name of entry
ITEM_ID="deblet" # id if you want to autoboot sometime to this
ITEM_DEVICE="mmcblk1p2" # partition the fs is on
ITEM_MODULES="mbcache jbd ext3" # modules needed to be loaded to mount filesystem
ITEM_FSTYPE="ext3" # filesystem type
ITEM_FSOPTIONS="noatime,ro" # filesystem mount options
ITEM_LINUXRC="linuxrc.mine" # OPTIONAL. Will boot using /linuxrc.mine on the partition instead of using the usual Maemo initfs boot method (will break on non-linuxrc systems like Maemo)

It is important not to have ITEM_LINUXRC line if you use Maemo

To refresh the boot menu items, run refresh_bootmenu.d afterwards (will require reboot)

If anyone have the guts to try, they can try out running the Install Deblet as well. I've done my best to make it properly viewable on tablet screen without too many issues. I'd love some comments on how far you get, especially with the diablo .install, since it's not obvious if something is wrong with it. Deblet installer automatically adds a bootmenu item at the end of the install (remember to install bootmenu first!)

Thanks to fatalsaint for trying this out as a guinea pig at first, and thanks in advance to anyone else willing to try this out.
__________________
As you go on to other communities, remember to build them around politeness, respect, trust and humility. Be wary of poisonous people and deal with them before they end up killing your community.. Seen it happen to too many IRC channels, forums, open source projects.

Last edited by Stskeeps; 2008-08-22 at 11:25. Reason: Removed current bug
 

The Following 13 Users Say Thank You to Stskeeps For This Useful Post:
qwerty12's Avatar
Posts: 4,274 | Thanked: 5,358 times | Joined on Sep 2007 @ Looking at y'all and sighing
#2
Originally Posted by Stskeeps View Post
These .install files require either becomeroot or rootsh (making sudo gainroot possible):
Go on, you know you want to change the depends line from:

Depends: bootmenu, python2.5, wget, binutils, libslang2, e2fsprogs, libreadline5, libncurses5, ncurses-base, debootstrap, zenity, cfdisk, roxterm

to

Depends: bootmenu, python2.5, wget, binutils, libslang2, e2fsprogs, libreadline5, libncurses5, ncurses-base, debootstrap, zenity, cfdisk, roxterm, rootsh | becomeroot | easyroot | GodMode

:P

(Yes, there is a GodMode package, I didn't know about it at the time I uploaded rootsh or I would have set a conflict with GodMode too)

Anyway, great work, look forward to trying it out when my charger arrives
 

The Following User Says Thank You to qwerty12 For This Useful Post:
Stskeeps's Avatar
Posts: 1,671 | Thanked: 11,478 times | Joined on Jun 2008 @ Warsaw, Poland
#3
Originally Posted by qwerty12 View Post

Depends: bootmenu, python2.5, wget, binutils, libslang2, e2fsprogs, libreadline5, libncurses5, ncurses-base, debootstrap, zenity, cfdisk, roxterm, rootsh | becomeroot | easyroot | GodMode
Would this actually pull in rootsh if none of the others exist?

Oh, and thanks very much for the roxterm port Only thing i have a problem with it's impossible to do Ctrl-something with on screen keyboard :> But i removed that part of install
__________________
As you go on to other communities, remember to build them around politeness, respect, trust and humility. Be wary of poisonous people and deal with them before they end up killing your community.. Seen it happen to too many IRC channels, forums, open source projects.

Last edited by Stskeeps; 2008-08-21 at 08:24.
 
qwerty12's Avatar
Posts: 4,274 | Thanked: 5,358 times | Joined on Sep 2007 @ Looking at y'all and sighing
#4
Originally Posted by Stskeeps View Post
Would this actually pull in rootsh if none of the others exist?
Yeah, that's how the | works, it wants either one of those packages.
 

The Following User Says Thank You to qwerty12 For This Useful Post:
Stskeeps's Avatar
Posts: 1,671 | Thanked: 11,478 times | Joined on Jun 2008 @ Warsaw, Poland
#5
Originally Posted by qwerty12 View Post
Yeah, that's how the | works, it wants either one of those packages.
Done and regenerated
__________________
As you go on to other communities, remember to build them around politeness, respect, trust and humility. Be wary of poisonous people and deal with them before they end up killing your community.. Seen it happen to too many IRC channels, forums, open source projects.
 

The Following User Says Thank You to Stskeeps For This Useful Post:
Posts: 2,152 | Thanked: 1,490 times | Joined on Jan 2006 @ Czech Republic
#6
Well, I don't want to stop or slow down anyone, you can of course reuse bootmenu code as you wish :-) Here are just few random comments:

- with deb package one doesn't need sudo gainroot, you can modify sudoers and get rid of the hack

- it may be good to have basic bootmenu flasher deb with no dependencies on gui stuff and python (actually with no dependency at all if possible), the gui can be separate deb for those who really need it EDIT: oh, the deblet gui installer is separate so disregard this

- current code with merging ITEM_WHATEVER is hardcoded in the script, this can be made generic by not including it directly via '.' but parsing/evaluating it to rewrite any 'WHATEVER=xxx' line automatically into MENU_X_WHATEVER=xxx line

- would be nice to modularize both support for different versions of initfs (devices, firmwares) and also optional features (dropbear, telnet, framebuffer console, in future also some advance recovery tools in initfs) current way of including everything inside is not ideal. Also patching Nokia linuxrc should be done differently, currently full modified linuxrc is stored for each different firmware. This could allow autopatching unknown new firmware.

- merging final bootmenu.conf can be done already in flasher, not at boot time (for speed and smaller initfs runtime code with less bugs, bugs at boot time are nasty), those parts can be still kept separate (in initfs) for future merging. Still some on the fly modification when already booted into menu would be nice too, so maybe the merging could stay in initfs too but not in normal execution path.

- I'd like to keep simple .tar.gz format too, some people prefer it, sometimes you don't have system with full debian installed or you don't want to mess with repositories so the code should be written to be both buildable into deb with /var /lib /bin /etc paths and one directory

So these are things I have planned. I certainly cannot tell people what they should do but if you want to help with some of those ideas instead of doing yet another quick bootmenu flasher hack, it would be nice ;-)
__________________
Newbies click here before posting. Thanks.

If you really need to PM me with troubleshooting question please consider posting it to the forum instead. It is OK to PM me a link to such post then. Thank you.

Last edited by fanoush; 2008-08-21 at 09:00.
 

The Following 3 Users Say Thank You to fanoush For This Useful Post:
Stskeeps's Avatar
Posts: 1,671 | Thanked: 11,478 times | Joined on Jun 2008 @ Warsaw, Poland
#7
Originally Posted by fanoush View Post
- with deb package one doesn't need sudo gainroot, you can modify sudoers and get rid of the hack
Ah - I think you're thinking that my deb package installs right away -it doesn't, it has a icon that runs it using osso-xterm -e /usr/sbin/install_bootmenu - which isn't run as root. I agree modifying sudoers could work too, but you also have the sudo gainroot hack in initfs_flash which is why I decided on this solution

- it may be good to have basic bootmenu flasher deb with no dependencies on gui stuff and python (actually with no dependency at all if possible), the gui can be separate deb for those who really need it
The bootmenu.deb has no dependancies - it even uses osso-xterm -e, it's just the deblet installer that has them.

- current code with merging ITEM_WHATEVER is hardcoded in the script, this can be made generic by not including it directly via '.' but parsing/evaluating it to rewrite any 'WHATEVER=xxx' line automatically into MENU_X_WHATEVER=xxx line
Yeah, that's also a possibility - I took the current solution due to the simplicity and that it's easy to understand what goes on. It's all a matter of how to implement it

- would be nice to modularize both support for different versions of initfs (devices, firmwares) and also optional features (dropbear, telnet, framebuffer console, in future also some advance recovery tools in initfs) current way of including everything inside is not ideal. Also patching Nokia linuxrc should be done differently, currently full modified linuxrc is stored for each different firmware. This could allow autopatching unknown new firmware.
Indeed - One possibility that the _linuxrc setting has is that since it avoids using Maemo boot, .. think ext2.img file systems on fat fs MMC including optional features. Think LINUXRC="/dropbear/dropbear.linuxrc" that starts it up by mounting /dropbear/dropbear.img on the fat system and starting the dropbear file inside it..


- merging final bootmenu.conf can be done already in flasher, not at boot time (for speed and smaller initfs runtime code with less bugs, bugs at boot time are nasty), those parts can be still kept separate (in initfs) for future merging. Still some on the fly modification when already booted into menu would be nice too, so maybe the merging could stay in initfs too but not in normal execution path.
I have no direct preference on how to do it - i'm happy as long as there's a /etc/bootmenu.d/*.item thing that refresh_bootmenu.d refreshes initfs boot menu using.

- I'd like to keep simple .tar.gz format too, some people prefer it, sometimes you don't have system with full debian installed or you don't want to mess with repositories so the code should be written to be both buildable into deb with /var /lib /bin /etc paths and one directory
Yeah, there's nothing to stop you really from doing tar.gz's as such - I just did this modification to make things easier and more "deb" like - should obviously have both possibilities and share same code base


So these are things I have planned. I certainly cannot tell people what they should do but if you want to help instead of doing yet another quick bootmenu flasher hack, it would be nice ;-)
My intent has been all along as it to be patches for your bootmenu - I have no interest in maintaining bootmenu software - so I'm all ears on how to change things to improve upon your bootmenu and maybe include in the more "official" distribution - I've used your bootmenu for a long time myself and find it immensely useful.
__________________
As you go on to other communities, remember to build them around politeness, respect, trust and humility. Be wary of poisonous people and deal with them before they end up killing your community.. Seen it happen to too many IRC channels, forums, open source projects.
 
Posts: 2,152 | Thanked: 1,490 times | Joined on Jan 2006 @ Czech Republic
#8
Originally Posted by Stskeeps View Post
I agree modifying sudoers could work too, but you also have the sudo gainroot hack in initfs_flash which is why I decided on this solution
Yes, it is not that important. The hack is there because most people who can unpack tgz have sudo gainroot working. For deb such additional dependency on easyroot just because of this hack is not needed.

Originally Posted by Stskeeps View Post
think ext2.img file systems on fat fs MMC including optional features. Think LINUXRC="/dropbear/dropbear.linuxrc" that starts it up by mounting /dropbear/dropbear.img on the fat system and starting the dropbear file inside it..
I was more thinking about modularity at install time - flasher can discover installed extensions (where core bootmenu that patches Nokia linuxrc is one of them) and can call into them when creating jffs2 image to have custom jffs2 with selected tools. At runtime it adds complexity. Still for bigger things this may be possible too but you can as well consider such custom image as full rootfs and boot into it so I was more thinking about smaller things that can fit into initfs directly.

Originally Posted by Stskeeps View Post
My intent has been all along as it to be patches for your bootmenu - I have no interest in maintaining bootmenu software - so I'm all ears on how to change things to improve upon your bootmenu and maybe include in the more "official" distribution
Great :-) So what we need is
-place to share code and ideas, there is http://bootmenu.garage.maemo.org/ with svn, task tracker etc
- implement code to build the deb (or .tgz)
- improve code for the flasher and extensions
- improve code that runs in initfs
__________________
Newbies click here before posting. Thanks.

If you really need to PM me with troubleshooting question please consider posting it to the forum instead. It is OK to PM me a link to such post then. Thank you.
 
Stskeeps's Avatar
Posts: 1,671 | Thanked: 11,478 times | Joined on Jun 2008 @ Warsaw, Poland
#9
Originally Posted by fanoush View Post
Yes, it is not that important. The hack is there because most people who can unpack tgz have sudo gainroot working. For deb such additional dependency on easyroot just because of this hack is not needed.
Ah, it's because I have a fancy icon for the bootmenu i need it

- implement code to build the deb (or .tgz)
Is http://trac.tspre.org/bootmenu.src.tar.gz good enough for importing into SVN as a foundation? .deb is built using the tar.gz/source (build-deb script). Needs a working dpkg-deb to actually make the deb, which is not on maemo but prolly is on scratchbox.. I usually just do the dpkg-deb part in Debian chroot.

Fair warning though - I didn't check if the script works properly after adding $TOOLS_LOCATION and stuff, but i checked deb making works
__________________
As you go on to other communities, remember to build them around politeness, respect, trust and humility. Be wary of poisonous people and deal with them before they end up killing your community.. Seen it happen to too many IRC channels, forums, open source projects.

Last edited by Stskeeps; 2008-08-21 at 14:45.
 
Posts: 607 | Thanked: 296 times | Joined on Jun 2008 @ Finland
#10
I have diablo, and i am now running deblet installer. That .install file adds needed repositories, but after that it says that deblet-installer package is missing, so i need run "apt-get install deblet-installer" on xterm.

This new installer is really good. cfdisk has newer worked with my external memory-card, but this new installer does not stop if cfdisk shows fatal error. I am debootstrapping right now. I will post more later...
 
Reply

Tags
debian, deblet, deblet bootmenu installer

Thread Tools

 
Forum Jump


All times are GMT. The time now is 04:54.