User:Jebba/Fedora
I have installed Fedora 12 on my Nokia N900.
Screen reads:
Fedora release 12 (Constantine) Kernel 2.6.28-omap1-jebba5 on an arm7l (tty1) fedora-arm login: _
Contents |
HOWTO Install Fedora 12 on Nokia N900
It boots up happily. No GUI, no phonecalls, no battery charging support, etc. Wifi works. Testing xorg RSN.
Kernel
You will need to install a kernel that has a framebuffer console. You can use your own or use mine. See: Installing my custom kernel if you would like to use mine. Version 2.6.28-omap1-jebba5 is known to "work".
bootmenu
You need to have getbootstate version 1.0.35+0m5 or greater for this to work. These docs are basically the same as installing Mer.
dpkg -l getbootstate
(As a side note, getbootstate is closed software. Please vote for this bug and/or clamour for it to be released as free software.)
I have four partitions on my MicroSD card. The first one is 100M of VFAT just to shut up fremantle. The second is 1G of swap. The third is 7G of space for fremantle. The remaining space is around 7G of space for Fedora. You can install it in far less space, but I have a 16G card, so that's what I did. These docs assume you use my partitioning.
# Boot up into Maemo / Fremantle # Grab this package: wget http://www.daimi.au.dk/~cvm/bootmenu_1.6_armel.deb # Be root sudo gainroot # Install bootmenu dpkg -i bootmenu_1.6_armel.deb
Then tappy tap tap the bootmenu install icon and answer yes.
Now you need to set up Fedora in the menu for bootmenu. See also: Mer bootmenu docs.
I put everything on the forth partition on an ext3 formatted "external" MicroSD card (the one that's right next to the camera).
# edit/create this file to create a boot menu item for Fedora: vim /etc/bootmenu.d/fedora.ext.item # Make it look justa lika thisa: ITEM_NAME="Fedora 12 (external SD, partition 4)" ITEM_ID="fedora" ITEM_DEVICE="${EXT_CARD}p4" ITEM_MODULES="mbcache jbd ext3" ITEM_FSTYPE="ext3" ITEM_FSOPTIONS="noatime,rw"
Then shutoff the phone and reboot with KEYBOARD SLID OUT, so you get the bootmenu.
rootfs
Boot into your system like "normal" into Maemo fremantle.
Set up and download the needed files:
# This will be a nice place to keep things mkdir -p /home/user/MyDocs/Fedora/rootfs # go hence cd /home/user/MyDocs/Fedora/rootfs # grab the root image wget http://ftp.linux.org.uk/pub/linux/arm/fedora/rootfs/rootfs-f12.tar.bz2
fedora-setup-in-chroot
Make this file and put it here: /home/user/MyDocs/Fedora/fedora-setup-in-chroot
Note, in future revisions, I will have more in this script, this is just a starting point for now.
#!/bin/sh set -x echo "uh, set a root password!" passwd
freemoe-fedora-install
Make & run this script:
#!/bin/sh set -x echo "this is going to format your microsd, take care!" echo "THIS FORMATS PARTITION 4 ON YOUR MICROSD" read ok read ok exit 0 # you get this i hope echo sudo umount /dev/mmcblk1p4 sudo mkfs.ext3 -j -m1 /dev/mmcblk1p4 sudo fsck -vvv /dev/mmcblk1p4 sudo mkdir -p /media/mmc4 sudo mount -o noatime /dev/mmcblk1p4 /media/mmc4/ cd /media/mmc4/ bzcat /home/user/MyDocs/Fedora/rootfs/rootfs-f12.tar.bz2 | sudo tar x sudo mv rootfs-f12/* . sudo rmdir rootfs-f12 sudo cp -a /lib/modules/* /media/mmc4/lib/modules/ echo "WARNING WARNING WARNING!!!!" echo "Copying over NON-FREE FIRMWARE" echo "PAY PENANCE!!!!" sudo cp -a /lib/firmware/* /media/mmc4/lib/firmware/ sudo cp -p /home/user/MyDocs/Fedora/fedora-setup-in-chroot ./ sudo chmod +x fedora-setup-in-chroot sync echo echo "now run ./fedora-setup-in-chroot after you enter the chroot" echo "this is convenient too:" echo "export HOME=/root" echo sudo chroot /media/mmc4 /bin/bash
Disable watchdog
You have to disable the watchdog with the flasher tool or the system will just shut down on bootup:
./flasher-3.5 --set-rd-flags=no-omap-wd ./flasher-3.5 --set-rd-flags=no-ext-wd ./flasher-3.5 --enable-rd-mode
Wifi
(Will add this to script later)
I got wifi going by writing a simple script that I can run at boot. Can't use many of the keys, so no "0", "/" etc. I used iwconfig which I yum installed in the chroot, but this could easily be done with the more modern "iw" which comes installed.
[root@fedora-arm ~]# cat startiwconfig #!/bin/sh iwconfig wlan0 essid consume dhclient wlan0
You'll also need to add "." to root's PATH or put that somewhere it root's PATH.
[root@fedora-arm ~]# tail -1 /root/.bashrc PATH=$PATH:.
# cat /etc/sysconfig/network-scripts/ifcfg-wlan0 # WLAN Interface DEVICE=wlan0 #HWADDR=00:00:00:00:00:00 ONBOOT=no BOOTPROTO=dhcp TYPE=Wireless NM_CONTROLLED=no USERCTL=yes PEERDNS=yes IPV6INIT=no #MODE=Master RATE=auto ESSID=consume CHANNEL=
Note: I had wifi working fine, then I installed a bunch of apps and network config broke and can't find the device anymore. :(
X.org
X is up and running with XFCE, but I don't have the touchscreen working. I can do touchscreen calibration though...
# as root, I did this via ssh when networking was working yum groupinstall Base-X # grab a desktop. No openbox or lxde available at the moment for ARM. yum groupinstall XFCE # not sure if the above drags this in or not yum install tslib # fix /etc/hosts to this so XFCE doesn't complain: 127.0.0.1 localhost localhost.localdomain fedora-arm # since keyboard isn't working you have to set up this script from # chroot or ssh in: echo "TSLIB_TSDEVICE=/dev/input/event3 TSLIB_CONFFILE=/etc/ts.conf ts_calibrate" > /root/ts chmod +x /root/ts # then next time you boot up, log in as root and run "ts" to calibrate. # You may need to uncomment this line in /etc/ts.conf: module_raw input