Just a little eyecatcher: Joggler with Ubuntu and fully configured dvb-t stick.
There's no big howto. Just compile the modules for your tv stick, install an app like kaffeine and let it rock!
Sunday, 25 April 2010
Saturday, 24 April 2010
Running the original Software out from your linux distro!
Ok another smart how to, so you will be able to start the original software from your linux distro:
starting here:
1. mount mmcblk0p2 somewhere, if not already done:
"sudo mount /dev/mmcblk0p2 /mnt"
2. copy the whole openpeak folder to your root:
"sudo mkdir /openpeak"
"sudo cp -r /mnt/openpeak/* /openpeak"
3. unmount (if you want..)
"sudo umount /mnt"
4. mount mmcblk0p4, if not yet done:
"sudo mount /dev/mmcblk0p4 /mnt"
5. copy all its contents to /media:
"sudo cp -r /mnt/* /media"
6. copy and edit localrun:
"sudo cp /openpeak/tango/localrun /openpeak/tango/starto2"
7. edit starto2:
"sudo vi /openpeak/tango/starto2"
8. uncomment "export SDL_AUDIODRIVER=alsa":
move to the concerning line,
type "i" for insert mode,
type an "#"
type ESC, type ":wq" to save&quit
9. now you can run the software by double clicking on "starto2".
You can also create a shortcut to this. Quit the app typing "ALT+F4"
Note, that also mouse + keyboard are working this way :-)
No way yet to quit the app withouht keyboard.
-gforums-
starting here:
1. mount mmcblk0p2 somewhere, if not already done:
"sudo mount /dev/mmcblk0p2 /mnt"
2. copy the whole openpeak folder to your root:
"sudo mkdir /openpeak"
"sudo cp -r /mnt/openpeak/* /openpeak"
3. unmount (if you want..)
"sudo umount /mnt"
4. mount mmcblk0p4, if not yet done:
"sudo mount /dev/mmcblk0p4 /mnt"
5. copy all its contents to /media:
"sudo cp -r /mnt/* /media"
6. copy and edit localrun:
"sudo cp /openpeak/tango/localrun /openpeak/tango/starto2"
7. edit starto2:
"sudo vi /openpeak/tango/starto2"
8. uncomment "export SDL_AUDIODRIVER=alsa":
move to the concerning line,
type "i" for insert mode,
type an "#"
type ESC, type ":wq" to save&quit
9. now you can run the software by double clicking on "starto2".
You can also create a shortcut to this. Quit the app typing "ALT+F4"
Note, that also mouse + keyboard are working this way :-)
No way yet to quit the app withouht keyboard.
-gforums-
Dual Boot on the Joggler
How-To Setup a Dual Boot on the Jogger!
I prepared a little package for you to have a nice dual boot screen at bootup on your Joggler.
Without a USB stick plugged in, it boots the internal System after 5 seconds.
With a USB stick on the Joggler, the boot screen shows you two icons, one for the o2 Software and one for your USB linux, which will then be the default system!
All this can be controlled by a plugged kayboard after the 2nd boot!
Here we go:
1. Grab the following archive:
http://daten.gforums.de/joggler/efi_mmcblk0p1.tar.gz
2. Start your distro on the joggler, then mount mmcblk0p1, e.g.
"sudo mount /dev/mmcblk0p1 /mnt"
3. Copy and extract the archive onto /mnt, make a backup of your mmcblk0p1 partition if you want!
"sudo cp efi_mmcblk0p1.tar.gz /mnt"
"tar -xzvf efi_mmcblk0p1.tar.gz"
"sudo rm efi_mmcblk0p1.tar.gz"
"sudo mv boot.efi boot.efi.bak"
4. Reboot.
5. On booting, press several times "ESC" to stop autoboot. Now enter "fs0:boot" blindly and you should see refit coming up.
6. Choose the icon "EFI shell", press Enter, then ESC.
7. Now type:
bcfg boot add 01 fs0:\efi\refit\refit.efi "Refit"
(thanks to: TonyHoyle, http://hackthejoggler.freeforums.org/booting-from-different-sources-t72.html)
This way, Refit is added to the internal (nvram) bootloader list. That's needed to have a working keyboard.
8. Type "bcfg boot dump" and look if Refit is located on top.
9. Type "exit"
That's it - Refit now should always load automatically. In case, you have a USB stick plugged in, you can choose between USB and internal system. Otherwise, it just shows the internal system and boots it after 5 seconds!
Good luck :-)
-gforums-
I prepared a little package for you to have a nice dual boot screen at bootup on your Joggler.
Without a USB stick plugged in, it boots the internal System after 5 seconds.
With a USB stick on the Joggler, the boot screen shows you two icons, one for the o2 Software and one for your USB linux, which will then be the default system!
All this can be controlled by a plugged kayboard after the 2nd boot!
Here we go:
1. Grab the following archive:
http://daten.gforums.de/joggler/efi_mmcblk0p1.tar.gz
2. Start your distro on the joggler, then mount mmcblk0p1, e.g.
"sudo mount /dev/mmcblk0p1 /mnt"
3. Copy and extract the archive onto /mnt, make a backup of your mmcblk0p1 partition if you want!
"sudo cp efi_mmcblk0p1.tar.gz /mnt"
"tar -xzvf efi_mmcblk0p1.tar.gz"
"sudo rm efi_mmcblk0p1.tar.gz"
"sudo mv boot.efi boot.efi.bak"
4. Reboot.
5. On booting, press several times "ESC" to stop autoboot. Now enter "fs0:boot" blindly and you should see refit coming up.
6. Choose the icon "EFI shell", press Enter, then ESC.
7. Now type:
bcfg boot add 01 fs0:\efi\refit\refit.efi "Refit"
(thanks to: TonyHoyle, http://hackthejoggler.freeforums.org/booting-from-different-sources-t72.html)
This way, Refit is added to the internal (nvram) bootloader list. That's needed to have a working keyboard.
8. Type "bcfg boot dump" and look if Refit is located on top.
9. Type "exit"
That's it - Refit now should always load automatically. In case, you have a USB stick plugged in, you can choose between USB and internal system. Otherwise, it just shows the internal system and boots it after 5 seconds!
Good luck :-)
-gforums-
A patch for the IEGD kernel part to make it build and work in 2.6.33.2
I just spent some time getting IEGD kernel module working on 2.6.33.2 and got some fancy glxgears on my Xorg now.
For patching into a kernel:
Kernel patch
A patch against IEGD original sources (10.3.2) to make it work and build on 2.6.33.2
Have fun with it!
For patching into a kernel:
Kernel patch
A patch against IEGD original sources (10.3.2) to make it work and build on 2.6.33.2
Have fun with it!
Tuesday, 6 April 2010
GRUB2 on Joggler
We have been having some issues with ELILO and large initrds in the #mer channel on irc.freenode.net, so we started investigating GRUB2.
The problem with GRUB2 was that it did not initialize video correctly and hence did now show the framebuffer console when booting. Another problem was that it did not have a TextModeHack.
For the technical side of these problems: GRUB2 did not pass correct video information in the linux kernel parameters due to it only supporting UGA video. Thanks to 'bean''s patch, I was able to construct a working GRUB2. UPDATE: now with adq's updated patch, we no longer need to use screen.efi as it contains a TextModeHack now - thanks to him for the great hack!
To compile GRUB2:
To use it in practice:
Enjoy - if you're a Joggler hacker, come to #mer on irc.freenode.net, a good bunch of us there by now. Webchat here.
The problem with GRUB2 was that it did not initialize video correctly and hence did now show the framebuffer console when booting. Another problem was that it did not have a TextModeHack.
For the technical side of these problems: GRUB2 did not pass correct video information in the linux kernel parameters due to it only supporting UGA video. Thanks to 'bean''s patch, I was able to construct a working GRUB2. UPDATE: now with adq's updated patch, we no longer need to use screen.efi as it contains a TextModeHack now - thanks to him for the great hack!
To compile GRUB2:
- Grab the source and untar it
- Patch it with this patch (grub-gop-video-v1.patch, patch -p1 it)
- ./configure --with-platform=efi
- Run 'make'
- Make a .efi file: ./grub-mkimage -d . -o grub.efi part_msdos hfsplus fat ext2 normal sh chain boot configfile linux
- If you're too lazy or incapable of building, use this grub.efi
To use it in practice:
- Make a efi\grub directory and put grub.efi in there
- Put in the root of the FAT partition, file boot.nsh:
fs1:
cd \efi\grub
grub
And file startup.nsh:
fs1:boot2
fs0:boot - Put in a grub.cfg file in \efi\tools (sample one linked, not working, you need to edit it). See elilo config in the other post for inspiration.
- If you do not need interactivity with the menu (letting it time out to the default item), you do not have to press ESC at bootup.
Enjoy - if you're a Joggler hacker, come to #mer on irc.freenode.net, a good bunch of us there by now. Webchat here.
Sunday, 4 April 2010
From the past: How to dump the BIOS (EFI) on Joggler
This was originally discovered by JimboJones. You will need to be on 2.6.24 (the original OS).
modprobe fh
dd if=/dev/fh of=/tmp/bios.bin
The file /tmp/bios.bin will then be the BIOS.
modprobe fh
dd if=/dev/fh of=/tmp/bios.bin
The file /tmp/bios.bin will then be the BIOS.
Modifying your initrd
In the 'mer-efi.tar.gz' which gforums provided, there is a file in efi\elilo, named initrd-2.6.30.
This file is essentially a initramfs, or translated: a gzipped cpio archive. It is referred to in the elilo.conf and provides modules and a script to boot up the system.
However, this initramfs is very tied to a certain kernel version. So, how do you modify it?
To extract the archive, do the following in a directory called initfs, do this as root:
gzip -dc initrd-2.6.30 | cpio -id
This will extract the archive into the current directory (We'll call this /initfs from now on).
You can then modify it as you'd like.
To take a new kernel and update the kernel modules in the initramfs, you can make modules; make modules_install INSTALL_MOD_PATH=/initfs in the kernel source. This will install the updated modules into /lib/modules/ on your initfs and /lib/firmware.
The modules might be a bit big, so thin out any unneeded ones or old modules for kernel versions.
Then, from the same directory, find | cpio -H newc -o | gzip -c > initrd-newname
And you can put this initrd in your efi\elilo directory and change your elilo.conf initrd= line to point to it.
This file is essentially a initramfs, or translated: a gzipped cpio archive. It is referred to in the elilo.conf and provides modules and a script to boot up the system.
However, this initramfs is very tied to a certain kernel version. So, how do you modify it?
To extract the archive, do the following in a directory called initfs, do this as root:
gzip -dc initrd-2.6.30 | cpio -id
This will extract the archive into the current directory (We'll call this /initfs from now on).
You can then modify it as you'd like.
To take a new kernel and update the kernel modules in the initramfs, you can make modules; make modules_install INSTALL_MOD_PATH=/initfs in the kernel source. This will install the updated modules into /lib/modules/
The modules might be a bit big, so thin out any unneeded ones or old modules for kernel versions.
Then, from the same directory, find | cpio -H newc -o | gzip -c > initrd-newname
And you can put this initrd in your efi\elilo directory and change your elilo.conf initrd= line to point to it.
A kernel config for 2.6.33, for Joggler
I just succeeded in building Linux kernel 2.6.33.1 and booting it from Joggler.
For future reference, do -not-, I repeat, do NOT have CONFIG_RELOCATABLE in your .config. ELILO will not boot your kernel after 2.6.30 (such as 2.6.31+) with it.
You can download the config here, copy it to .config in your build directory and run make oldconfig and make bzImage and make modules. You'll need ELILO 3.12.
For future reference, do -not-, I repeat, do NOT have CONFIG_RELOCATABLE in your .config. ELILO will not boot your kernel after 2.6.30 (such as 2.6.31+) with it.
You can download the config here, copy it to .config in your build directory and run make oldconfig and make bzImage and make modules. You'll need ELILO 3.12.
Saturday, 3 April 2010
Building and using ELILO for the Joggler
One of the initial problems I had with Joggler was the source-less ELILO, which I could not seem to replicate. I've succeeded in doing that now, thanks to a patch from TonyHoyle.
First off, you will need at least GCC 4.3.3 (what I tested with), as well as gnu-efi 3.0i from http://sourceforge.net/projects/gnu-efi/files/ (This is a toolchain for EFI binaries)
In gnu-efi 3.0i you will need to edit Make.defaults:
INSTALLROOT=/usr/local
to
INSTALLROOT=/usr
and then make; make install
Then you need to grab elilo-3.12-source.tar.gz from http://sourceforge.net/projects/elilo/files/ and apply (patch -p1) this patch against it (patch -p1) I have provided a elilo.efi that works on my Joggler (not in the 'screen.efi' trick), downloadable here.
You need to after putting elilo.efi in place, in your boot.nsh put the following lines (only lines in the file):
fs1:
cd \efi\elilo
elilo
And provide in \efi\elilo , a elilo.conf not unlike the following. legacy-free is a VERY IMPORTANT OPTION and is required because there is no 'real' BIOS on the joggler. Hope this works for you, otherwise, show up on #mer at irc.freenode.net :)
First off, you will need at least GCC 4.3.3 (what I tested with), as well as gnu-efi 3.0i from http://sourceforge.net/projects/gnu-efi/files/ (This is a toolchain for EFI binaries)
In gnu-efi 3.0i you will need to edit Make.defaults:
INSTALLROOT=/usr/local
to
INSTALLROOT=/usr
and then make; make install
Then you need to grab elilo-3.12-source.tar.gz from http://sourceforge.net/projects/elilo/files/ and apply (patch -p1) this patch against it (patch -p1) I have provided a elilo.efi that works on my Joggler (not in the 'screen.efi' trick), downloadable here.
You need to after putting elilo.efi in place, in your boot.nsh put the following lines (only lines in the file):
fs1:
cd \efi\elilo
elilo
And provide in \efi\elilo , a elilo.conf not unlike the following. legacy-free is a VERY IMPORTANT OPTION and is required because there is no 'real' BIOS on the joggler. Hope this works for you, otherwise, show up on #mer at irc.freenode.net :)
# Command line options understood here are
#
# fixup - Apply fixups so the default joggler OS can boot the new kernel.
# recovery - Instead of booting stop in a diagnostic shell
legacy-free
default=usb
image=vmlinuz-2.6.30
label=linux2
read-only
initrd=initrd-2.6.30
append="acpi=force root=/dev/mmcblk0p2 fixup"
description="Standard joggler OS with new kernel"
image=vmlinuz-2.6.30
label=usb
initrd=initrd-2.6.30
append="acpi=force root=/dev/sda2"
description="Boot from USB"
image=vmlinuz
label=testing
read-only
append="acpi=force root=/dev/mmcblk0p2"
description="Test vmlinuz, no initrd"
image=vmlinuz-2.6.24-19-lpia
label=test
initrd=initrd-2.6.30
append="acpi=force root=/dev/sda2"
description="Boot from Test"
Getting into the EFI shell on the device
Requirements: USB stick, keyboard, hub
Make a USB stick with a FAT partition on it first.
Put in the root of the partition, file boot.nsh:
fs1:
cd \efi\screen
screen
And file startup.nsh:
fs1:boot2
fs0:boot
You will then need to make a directory 'efi' and underneath this, directories 'screen' and 'tools'.
>
In the 'screen' directory, put the file screen.efi and under 'tools', put the file 'Shell.efi'. Additional tools can be downloaded here (tools folder). Thanks to TonyHoyle for making these tools available and making them.
Now, because the Joggler does not load the USB keyboard driver automatically, you need to upon boot, to follow the following procedure:
* Plug in keyboard, USB stick into USB hub
* Plug USB hub into the Joggler
* Turn on the Joggler, press ESC several times on the until it is obvious the startup has stalled completely.
* Type blind, without quotes, 'fs1:boot'
* You will now see text, press ESC again, and you'll be in a shell.
* You should then see a shiny EFI shell with keyboard working.
Enjoy!
Make a USB stick with a FAT partition on it first.
Put in the root of the partition, file boot.nsh:
fs1:
cd \efi\screen
screen
And file startup.nsh:
fs1:boot2
fs0:boot
You will then need to make a directory 'efi' and underneath this, directories 'screen' and 'tools'.
>
In the 'screen' directory, put the file screen.efi and under 'tools', put the file 'Shell.efi'. Additional tools can be downloaded here (tools folder). Thanks to TonyHoyle for making these tools available and making them.
Now, because the Joggler does not load the USB keyboard driver automatically, you need to upon boot, to follow the following procedure:
* Plug in keyboard, USB stick into USB hub
* Plug USB hub into the Joggler
* Turn on the Joggler, press ESC several times on the until it is obvious the startup has stalled completely.
* Type blind, without quotes, 'fs1:boot'
* You will now see text, press ESC again, and you'll be in a shell.
* You should then see a shiny EFI shell with keyboard working.
Enjoy!
Subscribe to:
Posts (Atom)