Linux on m:robe

From M:Robe 500i Development Wiki

Jump to: navigation, search

Contents

Main Story

First I want to thank DNZ for his HUGE help - without him none of this could have happened!

I've managed to compile Neuros linux kernel and got my m:robe to boot linux kernel 2.6.15.

In order to control the kernel, I have made a small voltage converter (3V to 15V) and got the serial input/output of my m:robe connected to my PC, so now I have a fully working serial interface to the kernel.

I've repartitioned my hard-drive, created a 2 Gigs ext2 partition for my linux stuff, and moved my rootfs to it (so I'm booting from my HD).

Afterwards, I have ported the touchscreen driver made for the OMAP SoC, modified it, and got it fully working as well.

I was able to run a full working QTopia software, and control it with my touchscreen.

The setup of my system can be seen in the following picture:

Image:Serial_side.jpg

Screenshots

OPIE's main screen: Image:Opie_main_screen_014.jpg

OPIE's drawpad: Image:Opie_drawpad_015.jpg

A small game: Image:Opie_game_013.jpg

How To

DISCLAIMER: Do at your own risk !!!


The first thing you need to do is to download a live linux cd for the harddrive tools. You can get one from: http://downloads.sourceforge.net/gparted/gparted-livecd-0.3.3-0.iso?modtime=1165447791&big_mirror=0 Once you have that follow the step-by-step guide below...:

Code: 1. Burn the downloaded iso to CD.

2. Keep the cd in your drive.

3. Put your mrobe on the dock with the external power (but don't put the usb plug in just yet).

4. Reboot your pc to boot from the CD. (if the live CD doesn't auto-boot you need to reboot and setup your BIOS to boot from cd) 5. Once it starts plug-in your m:robe usb cable. choose (good computer/new computer) by clicking or typing. 6. Once again just click enter.

7. Pick a language(English).

8. Pick a keyboard Layout(qwerty(US) is the standard one).

9. Screen depth(24).

10. Screen resolution(1024 x 768)

11. Wait... It will take a while...

12. Click on the dialog box on the top right corner and select "/dev/sdb(18.62gb)"

13. Pick the partition, then the resize tool.

14. Select the bottom box that (space after repartitioning). Enter the size in mb e.g.: 1024mb = 1gb, or 1536mb = 1.5gb* (whatever size you want to spare on the linux partition. Should work just fine with 200 Megs + )

15. Click on the unallocated partition, and then click the "New" button.

16. Use all of the free space to make an ext2 partition.

17. Click on the apply box, and then again in the dialog window.

18. Wait for the repartitioning to be complete, and then reboot your computer - take your CD out before it boots to linux again...

19. That's it - now follow the installation guide.

Log file of the kernel boot procedure

<5>Linux version 2.6.15 (root@P2600) (gcc version 3.4.6) #293 PREEMPT Fri Dec 15 18:59:39 IST 2006

CPU: ARM926EJ-Sid(wb) [41069263] revision 3 (ARMv5TEJ)

Machine: IT DM320-20

<4>Warning: bad configuration page, trying to continue

Memory policy: ECC disabled, Data cache writeback

<7>On node 0 totalpages: 10240

<7> DMA zone: 0 pages, LIFO batch:0

<7> DMA32 zone: 0 pages, LIFO batch:0

<7> Normal zone: 10240 pages, LIFO batch:1

<7> HighMem zone: 0 pages, LIFO batch:0

CPU0: D VIVT write-back cache

CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets

CPU0: D cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets

Built 1 zonelists

<5>Kernel command line: console=ttyS1,115200n8 root=/dev/hda2 rw mem=0x2800000

PID hash table entries: 256 (order: 8, 4096 bytes)

Console: colour dummy device 80x30

[42949372.960000] Linux version 2.6.15 (root@P2600) (gcc version 3.4.6) #293 PREEMPT Fri Dec 15 18:59:39 IST 2006 [42949372.960000] CPU: ARM926EJ-Sid(wb) [41069263] revision 3 (ARMv5TEJ)

[42949372.960000] Machine: IT DM320-20

[42949372.960000] Warning: bad configuration page, trying to continue

[42949372.960000] Memory policy: ECC disabled, Data cache writeback

[42949372.960000] CPU0: D VIVT write-back cache

[42949372.960000] CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets

[42949372.960000] CPU0: D cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets

[42949372.960000] Built 1 zonelists

[42949372.960000] Kernel command line: console=ttyS1,115200n8 root=/dev/hda2 rw mem=0x2800000

[42949372.960000] PID hash table entries: 256 (order: 8, 4096 bytes)

[42949372.960000] Console: colour dummy device 80x30

Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)

[42949372.970000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)

Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)

[42949372.990000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)

<6>Memory:[42949373.030000] Memory: 40MB 40MB = 40MB total = 40MB total

<5>Memory: 37996KB available (2011K code, 402K data, 96K init)

[42949373.060000] Memory: 37996KB available (2011K code, 402K data, 96K init)

<7>Calibrating delay loop... 43.72 BogoMIPS (lpj=218624)

Mount-cache hash table entries: 512

[42949373.300000] Mount-cache hash table entries: 512

<6>CPU: Testing write buffer coherency: [42949373.320000] CPU: Testing write buffer coherency: ok

ok

<6>NET: Registered protocol family 16

[42949373.360000] NET: Registered protocol family 16

<5>SCSI subsystem initialized

[42949373.410000] SCSI subsystem initialized

<4>NetWinder Floating Point Emulator V0.97 (double precision)

[42949373.450000] NetWinder Floating Point Emulator V0.97 (double precision)

<6>Initializing Cryptographic API

[42949373.500000] Initializing Cryptographic API

<6>io scheduler noop registered[42949373.520000] io scheduler noop registered


<6>io scheduler anticipatory registered[42949373.540000] io scheduler anticipatory registered


<6>io scheduler deadline registered[42949373.580000] io scheduler deadline registered


<6>io scheduler cfq registered[42949373.600000] io scheduler cfq registered


Console: switching to colour frame buffer device 80x58

[42949373.780000] Console: switching to colour frame buffer device 80x58

__init ide_generic_init-----

[42949374.160000] __init ide_generic_init-----

<7>Probing IDE interface ide0...

ATA DISK drive

[42949374.500000] ATA DISK drive

ide0 at 0xe2400000-0xe2400007,0xe28c0000 on irq 32[42949375.230000] ide0 at 0xe2400000-0xe2400007,0xe28c0000 on irq 32


<6>hda: max request size: 128KiB

[42949375.250000] hda: max request size: 128KiB

<6>hda: 39063024 sectors (20000 MB)[42949375.630000] hda: 39063024 sectors (20000 MB), CHS=38753/16/63, CHS=38753/16/63


<6>hda: cache flushes supported

[42949375.670000] hda: cache flushes supported

<6> hda:[42949375.690000] hda: hda1 hda1 hda2 hda2


<6>ts: omap_ts_init

[42949375.740000] ts: omap_ts_init

<6>ts: omap_ts_probe

[42949375.760000] ts: omap_ts_probe

<6>ts: omap_ts_probe,2

[42949375.780000] ts: omap_ts_probe,2

<6>ts: hx_ts_probe!

[42949375.800000] ts: hx_ts_probe!

<6>ts: omap_ts_probe,2.5

[42949375.830000] ts: omap_ts_probe,2.5

<6>ts: omap_ts_probe,3

[42949375.850000] ts: omap_ts_probe,3

<6>ts: omap_ts_probe,4

[42949375.870000] ts: omap_ts_probe,4

<6>input: omap_ts as /class/input/input0

[42949375.890000] input: omap_ts as /class/input/input0

<6>OMAP READ BATTERY1: 1282[42949375.910000] OMAP READ BATTERY1: 1282<6>OMAP READ BATTERY2: 0<6>OMAP READ BATTERY2: 0<6>OMAP READ X: 2087<6>OMAP READ X: 2087<6>OMAP READ Y: 2087<6>OMAP READ Y: 2087<6>OMAP READ Z: 2087<6>OMAP READ Z: 2087<6>ts: hx_ts enabled!!

<6>ts: hx_ts enabled!!

OMAP touchscreen driver initialized

[42949376.030000] OMAP touchscreen driver initialized

<6>ts: omap_ts_init, 2

[42949376.050000] ts: omap_ts_init, 2

<6>NET: Registered protocol family 2

[42949376.070000] NET: Registered protocol family 2

IP route cache hash table entries: 512 (order: -1, 2048 bytes)

[42949376.190000] IP route cache hash table entries: 512 (order: -1, 2048 bytes)

TCP established hash table entries: 2048 (order: 1, 8192 bytes)

[42949376.220000] TCP established hash table entries: 2048 (order: 1, 8192 bytes)

TCP bind hash table entries: 2048 (order: 1, 8192 bytes)

[42949376.240000] TCP bind hash table entries: 2048 (order: 1, 8192 bytes)

<6>TCP: Hash tables configured (established 2048 bind 2048)

[42949376.260000] TCP: Hash tables configured (established 2048 bind 2048)

<6>TCP reno registered

[42949376.280000] TCP reno registered

<6>TCP bic registered

[42949376.300000] TCP bic registered

<6>NET: Registered protocol family 1

[42949376.320000] NET: Registered protocol family 1

<6>NET: Registered protocol family 17

[42949376.340000] NET: Registered protocol family 17

<6>NET: Registered protocol family 15

[42949376.360000] NET: Registered protocol family 15

EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended

[42949376.470000] EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended

VFS: Mounted root (ext2 filesystem).

[42949376.490000] VFS: Mounted root (ext2 filesystem).

<6>Freeing init memory: 96K

[42949376.510000] Freeing init memory: 96K

<4>Warning: unable to open an initial console.

[42949376.570000] Warning: unable to open an initial console.

modprobe: FATAL: Could not load /lib/modules/2.6.15/modules.dep: No such file or directory

Familiar Linux v0.8.4 (none) ttyS1

(none) login:

Personal tools