This page is not maintained anymore.
The latest Linux kernel images and distributions (Lubuntu 12.04, Lubuntu 14.04, Debian Wheezy, Debian Jessie)
for Sam460ex (Lite),
Sam440ep
(Flex),
and AmigaOne 500
are maintained by Spectre660 and can be found at
http://www.supertuxkart-amiga.de/amiga/sam.html.
Index
Introduction
In this page you'll find the description of my attempt to create a comfortable Linux distribution for newbie Linux users (like me) for the motherboard Sam460ex.
The Sam460ex is a motherboard made by ACube Systems, mainly meant for AmigaOS4 users, as so it is equipped with a PowerPC CPU, with the SOC APM PPC460ex.
Yes, interesting... But why using Linux on a custom (=expensive) computer meant for AmigaOS?
Starting with the development of the 4.x series (now coordinated by Hyperion Entertainment) AmigaOS is simply great and it is coming up nicely, promising good stuff for the future.
Even on the hardware graphic side the future looks bright: Hans de Ruiter, a developer from New Zealand, already delivered an up-to-date RadeonHD driver for R6xx / R7xx chipsets (Radeon HD 2000-4000 series) and is now finalizing the support for the Radeon HD 5000, 6000 and even 7000 series.
The RadeonHD driver has a fully operational 2D hardware compositing and Hans is currently working on the 3D side.
The Amiga community still somehow alive: have a look at www.amiga.org, www.amigaworld.net, www.amigans.net, www.os4depot.net, www.os4coding.net.
Sadly AmigaOS has today a long way to go in order to catch up with modern standards, just remember that *real* AmigaOS development paused between let's say the 1995 and the 2005, and there is very little money around to pay full-time developers...
Having Linux up and running in the same computer is just an emergency remedy, which hopefully will stop being useful in the next couple of years (finger crossed), or maybe, it is just fun trying it out as I'm a stubborn bergamasque...
I'm not an expert Linux user nor a programmer so you may find some stupid stuff in here.
I really want to squeeze (...) my Sam460ex as I paid a lot for it: nobody else did an effort to create such a Linux distribution, so I've tried myself.
So far only one previous Linux distribution started supporting explicitly the Sam460ex, the CRUX PPC.
They were the only people answering (patiently) some initial question on their forum (thanks!):
Sadly CRUX PPC team decided to suspend the project on the 16 Feb 2012 "due a lack of active developers, modern hardware and resources".
You can find a discussion thread about Linux for Sam460ex on Amigaworld.
Please, leave your impressions, experience and advices in the Amigaworld mentioned thread or, more generally, in the Amigaworld forum dedicated to Linux, in such a way that all the infos are concentrated in one place only.
Don't be angry with me if while installing the ISO found in this page you'll burn your Sam460ex, you'll destroy all data on your harddisk and all devices attached to it: you've been warned!
Screenshot
A screenshot of an XFCE session. Please, note that 2D accelerated compositing is turned on.
The window shadow is smooth, fast and pleasant.
What do you need before starting
- the ISO is a network installer: you'll require a fast internet connection to download all what you need
- a PC with a serial port or a serial-to-usb adapter
I've tried hundreds solutions but so far I couldn't make the console working on the PCI-e RadeonHD nor in the
SM502: help welcome here! (drop a message on
Amigaworld)
- a serial terminal program on the PC side (I've only checked Putty on Windows)
- burn the ISO file found in this page to a cd-rom
-
both the PCI-e RadeonHD and the internal SM502 should be attached to a monitor (in my case I have a monitor with multiple inputs).
You may need to see both video outputs as I haven't figured out yet what it is shown where, surely some tweaking in the kernel boot parameters will fix that.
- an harddisk where you can put two partitions: the main Linux system and the linux swap partition
Customised Debian Squeeze Network install ISO
Customised Linux kernels
Latest kernel compiled with
framebuffer for both RadeonHD (4xxx, 5xxx and 6xxx series) and SM501:
Latest kernel compiled with
DRM support for RadeonHD (4xxx, 5xxx and 6xxx series), framebuffer for SM501:
Both kernel packages contains:
- the kernel, named as "uImageXXX"
- the kernel modules, contained in "lib/modules/"
- the supported hardware firmwares, contained in "lib/firmware/"
- kernel configuration used for compiling
- the file "System.map"
- the Device Tree Blob file "canyonlands.dtb"
Note for RadeonHD 6xxx users:
modern Linux distributions requires a KMS kernel when using a RadeonHD 6xxx video card.
Unfortunately every time I try to create a kernel with KMS support the Sam460ex ends up with a kernel panic (see this log for example).
Phase 1: Prepare your partitions
WARNING! Changing the partition scheme of your hard disk will destroy all of your data!
Do a backup of your disk content or use a blank hard disk.
For testing Squeeze I'm using a SATA-to-CompactFlash adapter, which make my life much easier.
It's maybe a bit slower but I'm able to read and write its content (it is a standard ext2 formatted disk after all) on any Linux installation, also from a PC Linux intallation.
What to do:
- use the intuitive Media Toolbox on AmigaOS and install the Parthenope boot loader on the bootblock of your harddisk (found on the ACube website)
- create the two partitions, the main Linux system and the linux swap partition, it doesn't matter which filesystem you select, it will be re-formatted later
- be sure to set the bootable flag in the partition you are going to use for the main Linux system
- insert the cd-rom with the Debian distribution
You can find some more hint on the DualBoot (AmigaOS 4.1 - Debian) setup guide (from ACube).
Phase 2: Begin the installation
- plug the serial cable and turn on the terminal on the PC, set the serial speed at 115200
- reboot the Sam460ex and select the cdrom as boot device
- start booting from the cdrom
- you will be prompted with the Parthenope boot loader list of available boot settings
- select which desktop environment you want, you can choose from
- when the kernel is loaded you should see the output coming up in the PC serial terminal
- more kernel details can be obtained by pressing CTRL+ALT+F4: the console output should coming from the SM502 VGA port
Phase 3: Step-by-step debian installer guide
- don't mind the missing kernel alert
- when prompted for selecting the ethernet port, select "eth0"
- choose your Sam460ex hostname
- if you don't know what it is, leave the domain empty
- create the root user password
- creare your normal user account, select a name
- insert the password for the normal user account
- continue with the partitioning
- don't mind the missing RAID stuff
- select a manual partitioning procedure
- choose the partition where you want to install the Linux system
-
use it as ext2 or ext3
you're stuck to such filesystems as otherwise U-Boot will NOT see the partition for booting
- choose to format the partition
- select the mount point as "/", the root system folder
- check that the bootable flag is turned "on"
- scroll down and select "Done setting up the partition"
- scroll down and select "finish partitioning and write chages to disk"
- confirm in order to write changes to disk
- continue without installing a kernel, we will copy it later, manually, sorry...
- select a Debian mirror close to where you live
-
when prompted, decide if you want to participate in the package survey.
The survey will be used to update the Debian Popularity Contest
-
choose the software to install, typically you require:
- a graphical desktop environment (will install what you did choose at boot)
- the standard system utilities
- select the keyboard, usually the Generic 105 key (intl) is fine
- choose your keyoboard layout
- don't mind the missing boot loader, we will install Parthenope later, manually, sorry...
- when you will be greeted with the "finished installation" DO NOT CONTINUE, press the ESC button instead
- a menu will appear, scroll down and select "execute a shell", then select "continue"
Phase 4: Install the kernel, its modules and the bootloader
- from the shell of the installer mount your partition where X is the number of partition if the folder "/mnt" does not exist, create it entering "mkdir /mnt"
mount /dev/sdaX /mnt
and mount you cdrom (if the folder "/cdrom" does not exist, create it entering "mkdir /cdrom")
mount /dev/cdrom /cdrom
copy the files canyonlands.dtb, System.map, uImage334drm, uImage334drm.config, uImage334fb and uImage334fb.config into "/mnt/boot/"
cp canyonlands.dtb /mnt/boot/
cp System.map /mnt/boot/
cp uImage334drm /mnt/boot/
cp uImage334drm.config /mnt/boot/
cp uImage334fb /mnt/boot/
cp uImage334fb.config /mnt/boot/
copy the file "menu.lst" to "/mnt/"
cp menu.lst/ /mnt
edit the file "/mnt/menu.lst" and modify "root=/dev/sda4" reflecting the device where you installed the main Linux partition;
nano /mnt/menu.lst
enter the folder "/lib/modules/"
copy the folder "3.3.4-Sam460ex" into "/mnt/lib/modules/"
cp -R 3.3.4-Sam460ex/ /mnt/lib/modules
unmount your partition
umount /dev/sdaX
reboot the system
reboot
from the Parthenope boot menu choose the kernel with frame buffer.
DO NOT SELECT THE KERNEL WITH DRM SUPPORT, you'll most probably end up with a kernel panic unless you've updated the Xorg Radeon driver as explained below
If you want to try the Radeon DRM (video hardware acceleration)
Bare in mind that DRM is unstable on PowerPC, at least in my experience!
(but it will give you a real *BUMP* in video performance if it will work...)
- edit your file "/etc/apt/sources.list" and add this software source:
deb http://backports.debian.org/debian-backports squeeze-backports main
- logout (do not switch off) from the desktop environment (gnome, kde, xfce or lxde)
- login as root in the console on the serial port (or if it doesn't allow to login, try pressing CTRL+ALT+F1 and see what's the output from the SM502 VGA)
- stop your currently working window manager
Gnome, older releases (Debian Squeeze and older Ubuntus)
service gdm stop
Gnome, newer releases (Wheezy Squeeze and modern Ubuntus)
service gdm3 stop
KDE
service kdm stop
- update from the Net the list of remotely available updates, type in the serial terminal:
apt-get update
- update all debian squeeze stable packages (there should be no updates as we installed from the Net), type:
apt-get upgrade
- update the radeon driver from the unstable backports source, type:
apt-get -t squeeze-backports install xserver-xorg-video-radeon
-
the installation process is a three steps process:
- each package will be checked, dependancies will be resolved and the check result will be clearly explained before installing anything
- all packages will be downloaded
- packages will be uncompressed, configured and installed
- if a text is displayed, just press "q" to exit the readme
- restart your window manager
Gnome, older releases (Debian Squeeze and older Ubuntus)
service gdm start
Gnome, newer releases (Wheezy Squeeze and modern Ubuntus)
service gdm3 start
KDE
service kdm start
- turn off the computer (rebooting Linux always leaded to a seriously corrupted video output in my experience)
shutdown -h now
- turn on the computer
- from the Parthenope boot menu select the DRM kernel and keep your finger crossed
- you will notice if the 2D is accelerated simply by moving windows: if it is much faster than before the hardware acceleration is enabled.
Good luck and let me know your experience on this! (drop a message on Amigaworld)
In case of problems booting the kernel, have a look at the kernel output that is coming from the serial port.
Modern serial terminals such as Putty for Windows can be configured in order to save the complete log file of each session, a text file listing all kernel operations that you can read later.
What to do if your mouse pointer is pretty much invisible
- logout (do not switch off) from the desktop environment (gnome, kde, xfce or lxde)
- login as root in the console on the serial port (or if it doesn't allow to login, try pressing CTRL+ALT+F1 and see what's the output from the SM502 VGA)
- stop your window manager
Gnome, older releases (Debian Squeeze and older Ubuntus)
service gdm stop
Gnome, newer releases (Wheezy Squeeze and modern Ubuntus)
service gdm3 stop
KDE
service kdm stop
- create a new temporary configuration file for Xorg
cd /etc/X11/
Xorg -configure
-
edit the as root the generated xorg.config.new:
nano xorg.config.new
-
delete all sections, except the radeon device section (note the in nano you can use the combination <ctrl>+"k" to delete an entire line)
- amon the available radeon settings, change only the option "SWcursor" setting it to "True" and save (<ctrl>+"x" for the nano text editor)
- rename the old "xorg.config.new" as "xorg.config"
mv xorg.config.new xorg.conf
- restart your window manager
Gnome, older releases (Debian Squeeze and older Ubuntus)
service gdm start
Gnome, newer releases (Wheezy Squeeze and modern Ubuntus)
service gdm3 start
KDE
service kdm start
-
You should now see a cursor without transparency
The above procedure apply also to the Ubuntu distribution for Sam460ex released by ACube.
The only difference are:
-
you don't need a terminal on the serial port, you can do the editing directly on the screen switching to the text console by clicking <ctrl>+<alt>+<f1>.
Note that is the first console, but you can switch to any other console by changing the the <f> key (from 1 to 6);
-
ubuntu doesn't come with a root user, instead you should add before every command the command "sudo".
The procedure will look therefore like this:
sudo service gdm stop
cd /etc/X11/
sudo Xorg -configure
sudo nano xorg.config.new
(edit the file as explained above)
sudo mv xorg.config.new xorg.conf
sudo service gdm start
Currently known issues
-
KMS (Kernel Mode Setting) is not supported. Any attempt I've tried generates a machine check exception. See the following examples:
- No sound, nothing I can do here as I couldn't find any sound driver for the SM501 / SM502
-
No text console on the RadeonHD; at the moment the text console can only be used via a serial terminal (port RS-232) and (sometimes) via the SM502 video card from the VGA on the motherboard.
The Linux kernel documentation reports quite a few parameters which (in theory) should solve this issue,
but to me it simply seems a lack of support of the VESA drivers for RadeonHD on the PCI-e on the PowerPC platform, mostly due to the fact that developers might rely on the Openfirmware video fallback available on common old PowerPC Apple Macs. Sadly the Sam460ex uses U-Boot and not OpenFirmware.
- No support for the following kernel modules, any attempt I've tried simply lead to a hard reset (without any serial debug output at all!)
- no Memory Technology Device (MTD) support, the Sam460ex gets a serious kernel panic everytime I try to include it; sorry no SSD support; [fixed with kernel 3.4.24, Dec 2012];
- FUSE (filesystem in userspace) [fixed with kernel 3.4.18, Nov 2012];
- Bluetooth [fixed with kernel 3.4.24, Dec 2012].
- When you shutdown Linux, the system does not power off: you have to do it manually
- Rebooting Linux lead to a seriously corrupted video output. Just shutdown and power off, then manually power on the system
In order to solve some problems, you may also have a look at:
About compiling the Linux kernel for theSam460ex
The PowerPC kernel can be cross-compiled on an x86 computer but you need a cross-compiling toolchain.
At this page you have an overview of what it implies setting up a cross-compilation toolchain on a Debian system, and in this page how to use it in order to compile a kernel.
The alternative for me is to compile on a real PowerPC, such as the Sam460ex itself (half of a day!), on my MacMini G4 (several hours) or on my iMac G5 (couple of hours).
Result taking into account my spare time: the cross-compilation is the only viable solution!
In order to cross-compile my own PowerPC 4xx kernel I've chosen the DENX ELDK 5.2.1 package.
By using this out-of-the-box solution for cross-compilation, I can now easily compile an up-to-date kernel directly tweaking its many settings.
First of all I should say that these instructions are related to my hardware configuration, a laptop with an Intel i7 and a Kubuntu 12.04, but they should work on most Linux systems.
If you want further information about booting Linux on the Canyonland board have a look at the DENX U-Boot and Linux Guide (DULG) for canyonlands.
You can download the DENX ISO file eldk-5.2.1-powerpc-4xx.iso from their FTP server, mounted it and installed.
Beware that I've just tried out (January 2013) the ELDK version 5.3, but it fails to compile the kernel because of some sort of GCC issues. Further investigations will be reported on this issue.
Installation is pretty simple, just logged in a console as a root user and typed
./install.sh powerpc-4xx
Everytime I want to compile a kernel, I enter a console as a normal user and enter
. /opt/eldk-5.2.1/powerpc-4xx/environment-setup-ppc440e-linux
In order to check if the
ELDK is working correctly I type
echo ${CFLAGS}
Before compiling a kernel for a platform you should first know what you are dealing with.
Here the logic scheme of the Sam460ex (from the Sam460ex manual)
At the Embedded Developer website you can find a complete AMCC 460ex [PDF] embedded processor data sheet (the PDF is marked as "preliminary", but I couldn't find any better document).
The Linux kernel is freely dowloadable from www.kernel.org.
Before compiling it, you must:
- [only if your CPU is not a PowerPC] setup your cross-compiling toolchain
-
have the ncurses development files installed on your system , otherwise just install them by typing (as root)
apt-get install libncurses5-dev
-
have the mkimage tool installed on your system, as the kernel image is not standard and must be readable by U-Boot. The package can be installed typing (as root)
apt-get install uboot-mkimage
-
patch the SM501 (which is pretty much the same as SM502 that we've got) kernel file "/include/linux/sm501.h" and change from
#if defined(CONFIG_PPC32)
#define smc501_readl(addr) ioread32be((addr))
#define smc501_writel(val, addr) iowrite32be((val), (addr))
#else
#define smc501_readl(addr) readl(addr)
#define smc501_writel(val, addr) writel(val, addr)
#endif
into
#if defined(CONFIG_PPC32)
#define smc501_readl(addr) ioread32((addr))
#define smc501_writel(val, addr) iowrite32((val), (addr))
#else
#define smc501_readl(addr) readl(addr)
#define smc501_writel(val, addr) writel(val, addr)
#endif
-
have some proprietary licensed firmware for the radeon cards, otherwise you will not get DRM (Direct Rendering Manager) in any way.
I discovered this by reading the useful Xorg guide for the radeon drivers.
You can download those firmware from the freedesktop site.
Once downloaded put these firmware files into the folder "firmware" of the uncompressed kernel folder.
> Click here for a list of proprietary AMD firmware for RadeonHD cards
- RadeonHD 2000, 3000, and 4000 series
- radeon/R600_rlc.bin
- radeon/R700_rlc.bin
- RadeonHD 5000 series (Evergreen)
- radeon/CEDAR_me.bin
- radeon/CEDAR_pfp.bin
- radeon/CEDAR_rlc.bin
- radeon/CYPRESS_me.bin
- radeon/CYPRESS_pfp.bin
- radeon/CYPRESS_rlc.bin
- radeon/JUNIPER_me.bin
- radeon/JUNIPER_pfp.bin
- radeon/JUNIPER_rlc.bin
- radeon/REDWOOD_me.bin
- radeon/REDWOOD_pfp.bin
- radeon/REDWOOD_rlc.bin
- Radeon HD 6000 series (Northern Island)
- radeon/BARTS_mc.bin
- radeon/BARTS_me.bin
- radeon/BARTS_pfp.bin
- radeon/BTC_rlc.bin
- radeon/CAICOS_mc.bin
- radeon/CAICOS_me.bin
- radeon/CAICOS_pfp.bin
- radeon/CAYMAN_mc.bin
- radeon/CAYMAN_me.bin
- radeon/CAYMAN_pfp.bin
- radeon/CAYMAN_rlc.bin
- radeon/TURKS_mc.bin
- radeon/TURKS_me.bin
- radeon/TURKS_pfp.bin
- Radeon HD 7700-7900 series (Southern Island)
- radeon/PITCAIRN_ce.bin
- radeon/PITCAIRN_mc.bin
- radeon/PITCAIRN_me.bin
- radeon/PITCAIRN_pfp.bin
- radeon/PITCAIRN_rlc.bin
- radeon/TAHITI_ce.bin
- radeon/TAHITI_mc.bin
- radeon/TAHITI_me.bin
- radeon/TAHITI_pfp.bin
- radeon/TAHITI_rlc.bin
- radeon/VERDE_ce.bin
- radeon/VERDE_mc.bin
- radeon/VERDE_me.bin
- radeon/VERDE_pfp.bin
- radeon/VERDE_rlc.bin
- use a kernel configuration file.
Mine is derived from the ACube kernel configuration file contained into their 2.6.38.2 Linux kernel.
So far I've created two different configurations:
In order to use a configuration file to setup a kernel, put the file in the root of the uncompressed kernel folder and rename it into ".config".
Kernel configuration warnings fot the Sam460ex:
-
DRM for PowerPC is *very* sensitive to the hardware configuration and (to my experience) to the position of some remote star in the sky at the time you are building the kernel, so don't get too nervous if the kernel start panicking.
-
I'm having problems when activating the FUSE kernel module, which leads to a kernel panic, investigating...
-
also problems if I activate the bluetooth module, again it lead to a kernel panic.
The funny thing is that it only occurs when using the RadeonHD 4650 (RV730) and not when using the RadeonHD 4550 (RV710), investigating...
A configuration file is tied to each kernel release and older configurations used on a newer kernel release may lead to problems when used as is.
Luckily older configurations can be adapted to a newer kernel, simply typing
make ARCH=powerpc CROSS_COMPILE=powerpc-linux- oldconfig
When prompted what to do you can investigate on the net what these settings are, but generally speaking it is usually safe to answer "no".
The 3.4.18 kernel configuration above can be used for compiling other 3.4.x kernels releases quite safely, just be sure to parse them with the "oldconfig" parameter first.
You can as well use them as a base for creating new configuration files for compiling other kernels releases, but in that case you should carefully check any new setting, again with the "oldconfig" parameter first.
If you want to change some setting, you can now start the configuration tool with
make ARCH=powerpc CROSS_COMPILE=powerpc-linux- menuconfig
-
once you kernel is configured, you can finally start compiling the kernel, type
make ARCH=powerpc CROSS_COMPILE=powerpc-linux- uImage
-
then you must create the kernel modules
make ARCH=powerpc CROSS_COMPILE=powerpc-linux- modules
-
then you must create the DTB, which in our case is the same as the canyonland evaluation board
make ARCH=powerpc CROSS_COMPILE=powerpc-linux- canyonlands.dtb
-
when you finished compiling the kernel stuff, grab what you need and put it into a destination folder:
- grab the kernel image from "kernel_folder/arch/powerpc/boot/uImage"
- grab the DTB file from "kernel_folder/arch/powerpc/boot/canyonlands.dtb"
- grab the system description from "kernel_folder/System.map"
- transfer the compiled modules into your output folder typing
make ARCH=powerpc CROSS_COMPILE=powerpc-linux- modules_install INSTALL_MOD_PATH=/my_output_folder/
Note that you can avoid entering "CROSS_COMPILE=powerpc-linux-" each time, just be sure to set "powerpc-linux-" into the variable
"general setup / cross compiler tool prefix" (CONFIG_CROSS_COMPILE=powerpc-linux-) in the kernel configuration tool.
By doing so the above commands change into:
make ARCH=powerpc oldconfig
make ARCH=powerpc menuconfig
make ARCH=powerpc uImage
make ARCH=powerpc modules
make ARCH=powerpc canyonlands.dtb
make ARCH=powerpc modules_install INSTALL_MOD_PATH=/my_output_folder/
Dealing with a ramdisk boot file
While playing for creating a customised Linux distribution, you may want to modify an existing ramdisk file.
A ramdisk file is a folder containing all the stuff for booting a system.
Such a folder is then compressed in two steps, first using gz and then using cpio.
U-Boot ramdisk files (usually called "uRamdisk")
U-Boot uses a modified Linux ramdisk using the the tool mkimage tool and it is usualy called "uRamdisk".
You can find a complete description at the DENX website:
The text below is a copy & paste from such DENX page (page accessed 15th October 2012).
The uRamdisk
image contains two parts:
- a 64 byte U-Boot header
- a (usually
gzip
compressed) ramdisk image
To modify the contents you have to extract, uncompress and mount the ramdisk image. This can be done as follows:
- Extract compressed ramdisk image (
ramdisk.gz
)
bash$ dd if=uRamdisk bs=64 skip=1 of=ramdisk.gz
21876+1 records in
21876+1 records out
- Uncompress ramdisk image (if it was a compressed one)
bash$ gunzip -v ramdisk.gz
ramdisk.gz: 66.6% -- replaced with ramdisk
- Mount ramdisk image
bash# mount -o loop ramdisk /mnt/tmp
Now you can add, remove, or modify files in the /mnt/tmp
directory. If you are done, you can re-pack the ramdisk into a U-Boot image:
- Unmount ramdisk image:
bash# umount /mnt/tmp
- Compress ramdisk image
bash$ gzip -v9 ramdisk
ramdisk: 66.6% -- replaced with ramdisk.gz
- Create new U-Boot image (
new-uRamdisk
)
bash$ mkimage -T ramdisk -C gzip -n 'Simple Embedded Linux Framework' \
> -d ramdisk.gz new-uRamdisk
Image Name: Simple Embedded Linux Framework
Created: Sun May 4 13:23:48 2003
Image Type: PowerPC Linux RAMDisk Image (gzip compressed)
Data Size: 1400121 Bytes = 1367.31 kB = 1.34 MB
Load Address: 0x00000000
Entry Point: 0x00000000
Instead of re-packing into a U-boot ramdisk image you can of course also just extract the contents of the SELF image and re-use it as base of a (known to be working) root filesystem.
Standard Linux ramdisk files (usually called "initrd.gz")
Every hardware configuration is different and the boot ramdisk file must reflect such configuration.
The ramdisk cannot contains every possibile package, so it is commonly generated on the fly.
There is a Debian tool called "update-initramfs" which is provided by the initramfs-tools.
The available command option are:
- -c, this mode creates a new initramfs;
- -u, this mode updates an existing initramfs;
- -d, this mode removes an existing initramfs;
- -t, allows to take over an custom initramfs with a newer one;
- -v, this option increases the amount of information you are given during the chosen action;
- -b, set an different bootdir for the image creation;
- -h, print a short help page describing the available options in update-initramfs.
update-initramfs -c -k "kernel-version"
creates a new ramdisk for the specified kernel version
update-initramfs -u -k "kernel-version"
updates the existing ramdisk for the specified kernel version
More information about update-initramfs.
Alternatively you can decompress, change the folder content and then re-compress again manually the ramdisk file as follow:
find . | cpio --create --'format=newc' | gzip >../ramdisk.img.gz
-
the ramdisk is now compressed in one file but it is not yet ready to be used by U-Boot, so type:
cd ..
mkimage -T ramdisk -C gzip -n 'Ramdisk Image' -d ramdisk.img.gz uRamdisk
Tweaking an existing squashed file
Squashfs is a compressed read-only filesystem for Linux. Squashfs is intended for general read-only filesystem use, for archival use (i.e. in cases where a .tar.gz file may be used), and in constrained block device/memory systems (e.g. embedded systems) where low overhead is needed.
[from the SQUASHFS sourceforge website]
Using squashed files is possibile by installing its tools, type (as root):
apt-get install squashfs-tools
- unpack a squashed folder file called "filesystem.squashfs"
unsquashfs filesystem.squashfs
- re-squash the folder "filesystem.squashfs" into a file "filesystem.squashfs"
mksquashfs squashfs-root filesystem.squashfs
- store the squashed folder size into "filesystem.size"
printf $(du -sx --block-size=1 squashfs-root | cut -f1) > filesystem.size
Creating an ISO with the Parthenope bootloader
When you want to create an ISO image file
you can use a variety of tools on Linux.
In order to boot a cd-rom, the Sam460ex requires the Parthenope bootloader: not all tools let you do that.
Using K3B
I've successfully tested k3b 2.x, which was preinstalled on my KDE 4.8 installation.
It is the tool used for creatin the ISO file in this page.
-
installing the Parthenope boot loader
While creating the ISO data image, it is enough to click "edit boot images", then select the Parthenope bootloader file, which is usually called "ub2lb".
Once selected, the following message will appear:
The file you selected is not a floppy image (floppy images are of size 1200 KB, 1440 KB, or 2880 KB). You may still use boot images of other sizes by emulating a harddisk or disabling emulation completely.
If you are not familiar with terms like 'harddisk emulation' you most likely want to use a floppy image here. Floppy images can be created by directly extracting them from a real floppy disk:
dd if=/dev/floppy of=/tmp/floppy.img
or by using one of the many boot floppy generators that can be found on the Internet.
Select "use no emulation"
- remember to add all the hidden files
- add symbolic links, do not let k3b follow them
- specify an appropriate volume name
- burn directly the data to the cd-rom or create an ISO image file
Using genisoimage
genisoimage is a pre-mastering program for creating ISO-9660 CD-ROM filesystem images,
which can then be written to a CD-ROM (or DVD-ROM) using the wodim program. genisoimage now includes support for making bootable
"El Torito" CDROMs, as well as CDROMs with support for many formats, including Rock Ridge, Joliet, and Apple HFS.
[from the Debian page about genisoimage]
Using genisoimage is possibile by installing it, type (as root):
apt-get install genisoimage
- download the file "map.hfs" into the folder "hfs"
mkdir hfs
wget http://people.ubuntu.com/~cjwatson/hfs.map -O hfs/map.hfs
- create the ISO image file "my_image.iso" from the folder "my_content/" using the bootloader "ub2lb"
genisoimage -r -V ISOtitle -iso-level 4 -chrp-boot -hfs -part -probe -no-desktop
-map hfs/map.hfs -b ub2lb -no-emul-boot -hide-rr-moved -o my_image.iso my_content/
My ACube Sam460ex configuration
Here a picture.
I've tested both RadeonHD cards but they behave quite differently,
for example I could use the text console a couple of times on the 4650, but never on the 4550.
Want to leave a comment?
Please go for it at the Amigaworld forum dedicated to Linux on PPC Amigas.