No edit summary |
No edit summary |
||
Line 4: | Line 4: | ||
U-Boot is factory preprogrammed in internal flash. There is no need to reflash U-Boot as the default U-Boot version is very open and friendly configured. But you may do so if you wish, following instructions from TrimSlice. One very nice thing is that the device allows easy recovery using the SD slot if the boot flash gets corrupted, eleminating the need for JTAG in such cases. | U-Boot is factory preprogrammed in internal flash. There is no need to reflash U-Boot as the default U-Boot version is very open and friendly configured. But you may do so if you wish, following instructions from TrimSlice. One very nice thing is that the device allows easy recovery using the SD slot if the boot flash gets corrupted, eleminating the need for JTAG in such cases. | ||
== Kernel & Initrd == | |||
The kernel & initrd needs to be converted to U-Boot images. This is done by running | |||
<code>mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n 2.6.40.3-0.fc15.armv7hl -d ../boot/vmlinuz-2.6.40.3-0.fc15.armv7hl.tegra uImage</code> | |||
<code>mkimage -A arm -O linux -T ramdisk -C none -n 2.6.40.3-0.fc15.armv7hl -d ../boot/initramfs-2.6.40.3-0.fc15.armv7hl.tegra.img uInitrd</code> | |||
== U-Boot behavior == | == U-Boot behavior == |
Revision as of 15:02, 3 September 2011
How to install Fedora on TrimSlice PRO
he TrimSlice PRO developer kid comes delivered with a 32GB SSD containing anoter Linux distribution, but can boot from pretty much any media (SD. USB, MicroSD, SSD) and you are free to experiment without voiding warranty.
U-Boot is factory preprogrammed in internal flash. There is no need to reflash U-Boot as the default U-Boot version is very open and friendly configured. But you may do so if you wish, following instructions from TrimSlice. One very nice thing is that the device allows easy recovery using the SD slot if the boot flash gets corrupted, eleminating the need for JTAG in such cases.
Kernel & Initrd
The kernel & initrd needs to be converted to U-Boot images. This is done by running
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n 2.6.40.3-0.fc15.armv7hl -d ../boot/vmlinuz-2.6.40.3-0.fc15.armv7hl.tegra uImage
mkimage -A arm -O linux -T ramdisk -C none -n 2.6.40.3-0.fc15.armv7hl -d ../boot/initramfs-2.6.40.3-0.fc15.armv7hl.tegra.img uInitrd
U-Boot behavior
The TrimSlice U-Boot automatically tries to boot from the first partition of any of the above boot sources and expects a boot.scr u-boot script file in / or /boot on the boot device.
When starting boot.scr the following variables are set for convenience
fs filesystem type (ext2 or fat) interface u-boot interface type (mmc or usb) bus bus number of the interface prefix boot prefix (/ or /boot)
enabling a generic boot.scr script to be used to boot from any of the possible boot devices. (see below)
Fedora boot script
Save this as boot.cmd in /boot and convert it to a uboot image by using
mkimage -A arm -O linux -T script -C none -d boot.cmd boot.scr
echo starting Fedora boot.scr if test -z "${rootpart}" && test -z "${rootuuid}"; then rootpart=4 #rootuuid=3e6be9de-8139-11d1-9106-a43f08d823a6 fi #if test -z "${kernel}" && test -z "${kernelver}"; then # kernelver=2.6.40.3-0.fc15.armv7hl.tegra #fi if test -z "${kernel}"; then kernel=uImage initrd=uInitrd if test -n "${kernelver}"; then kernel=${kernel}-${kernelver} initrd=${kernel}-${kernelver} fi fi if test -z "${console}"; then console="console=ttyS0,115200n8" fi setenv initrdaddr 1600000 if test -n "${rootuuid}"; then echo booting with UUID selected root rootfs="ro root=UUID=${rootuuid}" elif test "${interface}" = "mmc" && test "${bus}" = "1"; then echo booting from internal microSD echo booting from internal microSD rootfs="ro root=/dev/mmcblk0p${rootpart}" elif test "${interface}" = "mmc" && test "${bus}" = "0"; then echo booting from external SD if mmc init 1; then rootfs="ro root=/dev/mmcblk1p${rootpart}" else rootfs="ro root=/dev/mmcblk0p${rootpart}" fi mmc init 0 elif test "${interface}" = "usb" && test "${bus}" = "1"; then echo booting from internal SSD rootfs="ro root=/dev/sda${rootpart} nohdparm rootwait" else echo booting from external USB rootfs="ro root=/dev/sdb${rootpart} rootwait" fi setenv bootargs ${console} ${rootfs} echo bootargs ${bootargs} echo kernel ${fs}load ${interface} ${device} ${loadaddr} ${prefix}uImage${kernelver} echo initrd ${fs}load ${interface} ${device} ${loadaddr} ${prefix}uImage${kernelver} ${fs}load ${interface} ${device} ${loadaddr} ${prefix}uImage${kernelver} ${fs}load ${interface} ${device} ${initrdaddr} ${prefix}uInitrd${kernelver} bootm ${loadaddr} ${initrdaddr}